<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>databricks Archives - Vijay Gokarn</title>
	<atom:link href="https://vijay-gokarn.com/category/databricks/feed/" rel="self" type="application/rss+xml" />
	<link>https://vijay-gokarn.com/category/databricks/</link>
	<description>&#34;Ignite Curiosity. Fuel the Future.&#34;</description>
	<lastBuildDate>Sun, 19 Apr 2026 03:49:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://i0.wp.com/vijay-gokarn.com/wp-content/uploads/2023/09/cropped-ideogram.jpeg?fit=32%2C32&#038;ssl=1</url>
	<title>databricks Archives - Vijay Gokarn</title>
	<link>https://vijay-gokarn.com/category/databricks/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">230943525</site>	<item>
		<title>Creating AI Storytelling Agents Using Flowise: A Step-by-Step Guide</title>
		<link>https://vijay-gokarn.com/creating-ai-storytelling-agents-using-flowise-a-step-by-step-guide/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=creating-ai-storytelling-agents-using-flowise-a-step-by-step-guide</link>
		
		<dc:creator><![CDATA[Vijay Gokarn]]></dc:creator>
		<pubDate>Fri, 24 Jan 2025 16:51:01 +0000</pubDate>
				<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[databricks]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[generative-ai]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://vijay-gokarn.com/?p=227</guid>

					<description><![CDATA[<p>GenAI Mastery Series · Agentic AI · Flowise Walkthrough Building an AI Storytelling Agent with Flowise — No Code Required StackFlowise · OpenAI GPT-4 · Supervisor/Worker Nodes DeploymentLocal · Cloud-ready OutputIBM the Robot&#8217;s Marshmallow Party Concepts Covered AI Agents Flowise Workflows Supervisor / Worker Pattern ChatOpenAI Node No-Code Orchestration Prompt Engineering In today&#8217;s AI landscape, [&#8230;]</p>
<p>The post <a href="https://vijay-gokarn.com/creating-ai-storytelling-agents-using-flowise-a-step-by-step-guide/">Creating AI Storytelling Agents Using Flowise: A Step-by-Step Guide</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;family=DM+Mono:wght@400&#038;display=swap" rel="stylesheet">

<style>
.vg4 {
  --ink: #0e0e0e; --paper: #f7f4ef; --paper-dark: #ede9e1;
  --teal: #0f6e56; --teal-light: #1d9e75; --teal-muted: #e1f5ee;
  --amber: #ba7517; --amber-light: #fac775; --amber-muted: #faeeda;
  --charcoal: #2c2c2a; --muted: #888780;
  --border: rgba(14,14,14,0.12); --border-strong: rgba(14,14,14,0.25);
  font-family: 'DM Sans', sans-serif; font-weight: 300;
  color: var(--ink); background: var(--paper); line-height: 1.75; font-size: 16px; overflow-x: hidden;
}
.vg4 *, .vg4 *::before, .vg4 *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* HERO */
.vg4-hero { background: var(--ink); padding: 5rem 4rem 4rem; position: relative; overflow: hidden; }
.vg4-hero::before {
  content: '⬡'; font-family: 'Cormorant Garamond', serif; font-size: 24rem;
  color: rgba(255,255,255,0.025); position: absolute;
  right: -2rem; bottom: -5rem; line-height: 1; pointer-events: none;
}
.vg4-hero-inner { position: relative; z-index: 1; max-width: 900px; }
.vg4-eyebrow {
  font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--teal-light); font-weight: 500; margin-bottom: 1.25rem;
  display: flex; align-items: center; gap: 0.75rem;
}
.vg4-eyebrow::before { content: ''; display: inline-block; width: 1.5rem; height: 1px; background: var(--teal-light); }
.vg4-hero h1 {
  font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 300; line-height: 1.1; color: var(--paper); letter-spacing: -0.02em;
  margin-bottom: 1.5rem; max-width: 26ch;
}
.vg4-hero h1 em { font-style: italic; color: var(--amber-light); }
.vg4-meta-row { display: flex; gap: 2rem; flex-wrap: wrap; }
.vg4-meta { font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.35); }
.vg4-meta span { color: rgba(247,244,239,0.7); margin-left: 0.4rem; }

/* PILL BAND */
.vg4-pill-band {
  background: var(--teal); padding: 1.25rem 4rem;
  display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center;
}
.vg4-pill-band-label { font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(247,244,239,0.5); font-weight: 400; margin-right: 0.5rem; }
.vg4-band-pill { font-size: 0.7rem; letter-spacing: 0.06em; padding: 0.3rem 0.9rem; background: rgba(247,244,239,0.12); color: var(--paper); border: 0.5px solid rgba(247,244,239,0.2); }

/* INTRO */
.vg4-intro { background: var(--teal-muted); padding: 2.5rem 4rem; border-left: 4px solid var(--teal); }
.vg4-intro p { font-size: 1.05rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; max-width: 80ch; }
.vg4-intro strong { color: var(--teal); font-weight: 500; }

/* BODY */
.vg4-body { max-width: 900px; margin: 0 auto; padding: 4rem; }
.vg4-section { margin-bottom: 3.5rem; }
.vg4-section-label {
  font-size: 0.63rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--teal); font-weight: 500; margin-bottom: 0.5rem;
  display: flex; align-items: center; gap: 0.6rem;
}
.vg4-section-label::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg4-section h2 {
  font-family: 'Cormorant Garamond', serif; font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 300; line-height: 1.2; color: var(--ink); margin-bottom: 1.25rem;
}
.vg4-section h2 em { font-style: italic; color: var(--teal); }
.vg4-section p { font-size: 0.93rem; line-height: 1.9; color: var(--charcoal); font-weight: 300; margin-bottom: 1rem; }
.vg4-section p strong { color: var(--ink); font-weight: 500; }
.vg4-divider { border: none; border-top: 0.5px solid var(--border); margin: 3rem 0; }

/* CALLOUT */
.vg4-callout {
  background: var(--paper-dark); border-left: 3px solid var(--amber);
  padding: 1.25rem 1.5rem; margin: 1.5rem 0;
  font-size: 0.87rem; line-height: 1.8; color: var(--charcoal);
}
.vg4-callout strong { color: var(--amber); font-weight: 500; }
.vg4-callout.teal { border-color: var(--teal); }
.vg4-callout.teal strong { color: var(--teal); }
.vg4-callout code { font-family: 'DM Mono', monospace; font-size: 0.8rem; background: rgba(14,14,14,0.07); padding: 0.1rem 0.4rem; }

/* CODE BLOCK */
.vg4-code { background: var(--ink); padding: 1.5rem 2rem; margin: 1.5rem 0; overflow-x: auto; }
.vg4-code-label { font-family: 'DM Sans', sans-serif; font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(247,244,239,0.3); margin-bottom: 0.6rem; display: block; }
.vg4-code code { font-family: 'DM Mono', monospace; font-size: 0.85rem; color: var(--amber-light); white-space: pre; display: block; line-height: 1.8; }
.vg4-code code .vg4-comment { color: rgba(247,244,239,0.3); }
.vg4-code code .vg4-cmd { color: var(--teal-light); }

/* NODE CARDS — WORKFLOW STEPS */
.vg4-nodes-section { background: var(--paper-dark); padding: 4rem; }
.vg4-nodes-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg4-nodes-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg4-nodes-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--ink); margin-bottom: 2.5rem; }
.vg4-nodes-section > h2 em { font-style: italic; color: var(--teal); }
.vg4-node-flow { display: flex; flex-direction: column; gap: 0; }
.vg4-node-item { display: grid; grid-template-columns: 80px 1fr; gap: 2rem; padding: 2rem 0; border-top: 0.5px solid var(--border); align-items: start; }
.vg4-node-item:last-child { border-bottom: 0.5px solid var(--border); }
.vg4-node-left { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.vg4-node-num {
  width: 44px; height: 44px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 300;
  background: var(--ink); color: var(--paper); flex-shrink: 0;
}
.vg4-node-num.teal { background: var(--teal); }
.vg4-node-num.amber { background: var(--amber); color: var(--paper); }
.vg4-node-connector { width: 1px; flex: 1; min-height: 20px; background: var(--border); }
.vg4-node-right {}
.vg4-node-type { font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.35rem; }
.vg4-node-right h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.35rem; font-weight: 400; color: var(--ink); margin-bottom: 0.6rem; }
.vg4-node-right p { font-size: 0.85rem; line-height: 1.8; color: var(--charcoal); font-weight: 300; margin-bottom: 0.75rem; }
.vg4-node-right p strong { color: var(--ink); font-weight: 500; }
.vg4-config-list { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; }
.vg4-config-chip { font-family: 'DM Mono', monospace; font-size: 0.7rem; padding: 0.25rem 0.75rem; background: var(--paper); border: 0.5px solid var(--border-strong); color: var(--charcoal); letter-spacing: 0.04em; }
.vg4-config-chip.teal { border-color: var(--teal); color: var(--teal); background: var(--teal-muted); }
.vg4-prompt-box { background: var(--ink); padding: 1.1rem 1.25rem; margin-top: 0.75rem; font-family: 'DM Mono', monospace; font-size: 0.78rem; color: var(--amber-light); line-height: 1.7; }
.vg4-prompt-box .vg4-prompt-label { font-family: 'DM Sans', sans-serif; font-size: 0.58rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(247,244,239,0.3); margin-bottom: 0.4rem; display: block; }

/* STORY OUTPUT */
.vg4-story-section { background: var(--ink); padding: 4rem; }
.vg4-story-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg4-story-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--amber-light); }
.vg4-story-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--paper); margin-bottom: 2rem; }
.vg4-story-section > h2 em { font-style: italic; color: var(--amber-light); }
.vg4-story-card { border: 0.5px solid rgba(247,244,239,0.12); padding: 2.5rem; position: relative; }
.vg4-story-card::before { content: '"'; font-family: 'Cormorant Garamond', serif; font-size: 8rem; font-weight: 300; color: rgba(250,199,117,0.1); position: absolute; top: -1rem; left: 1.5rem; line-height: 1; pointer-events: none; }
.vg4-story-title-row { margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 0.5px solid rgba(247,244,239,0.1); }
.vg4-story-title-label { font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(247,244,239,0.3); margin-bottom: 0.4rem; }
.vg4-story-title { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; color: var(--amber-light); line-height: 1.2; }
.vg4-story-body { font-size: 0.9rem; line-height: 1.95; color: rgba(247,244,239,0.7); font-weight: 300; font-style: italic; }
.vg4-story-body p + p { margin-top: 1rem; }
.vg4-story-meta { display: flex; gap: 1.5rem; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 0.5px solid rgba(247,244,239,0.1); flex-wrap: wrap; }
.vg4-story-meta-item { font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.3); }
.vg4-story-meta-item span { color: var(--amber-light); margin-left: 0.35rem; }

/* INTERVIEW */
.vg4-interview-section { background: var(--teal-muted); padding: 4rem; }
.vg4-interview-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg4-interview-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg4-interview-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--ink); margin-bottom: 2.5rem; }
.vg4-interview-section > h2 em { font-style: italic; color: var(--teal); }
.vg4-qa-list { display: flex; flex-direction: column; }
.vg4-qa-item { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; padding: 1.5rem 0; border-top: 0.5px solid rgba(14,14,14,0.1); align-items: start; }
.vg4-qa-item:last-child { border-bottom: 0.5px solid rgba(14,14,14,0.1); }
.vg4-qa-q { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 400; color: var(--ink); line-height: 1.4; }
.vg4-q-badge { font-family: 'DM Mono', monospace; font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--teal); color: var(--paper); padding: 0.15rem 0.5rem; margin-bottom: 0.5rem; display: inline-block; }
.vg4-qa-a { font-size: 0.83rem; line-height: 1.8; color: var(--charcoal); font-weight: 300; }
.vg4-qa-a strong { color: var(--teal); font-weight: 500; }
.vg4-qa-a code { font-family: 'DM Mono', monospace; font-size: 0.77rem; background: rgba(14,14,14,0.07); padding: 0.1rem 0.35rem; color: var(--ink); }
.vg4-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.vg4-pill { font-size: 0.67rem; letter-spacing: 0.06em; padding: 0.25rem 0.75rem; border: 0.5px solid var(--border-strong); color: var(--charcoal); }
.vg4-pill.t { border-color: var(--teal); color: var(--teal); background: var(--teal-muted); }
.vg4-pill.a { border-color: var(--amber); color: var(--amber); background: var(--amber-muted); }

/* FOOTER */
.vg4-footer { background: var(--ink); padding: 3rem 4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; }
.vg4-footer p { font-size: 0.82rem; color: rgba(247,244,239,0.35); font-weight: 300; }
.vg4-footer p strong { color: rgba(247,244,239,0.65); font-weight: 400; }
.vg4-back-btn { display: inline-block; padding: 0.65rem 1.75rem; background: var(--teal); color: var(--paper); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 400; }

/* REVEAL */
.vg4-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
.vg4-reveal.vg4-vis { opacity: 1; transform: translateY(0); }
.vg4-d1 { transition-delay: 0.1s; } .vg4-d2 { transition-delay: 0.2s; } .vg4-d3 { transition-delay: 0.3s; }
</style>

<div class="vg4">

<!-- HERO -->
<div class="vg4-hero">
  <div class="vg4-hero-inner">
    <p class="vg4-eyebrow">GenAI Mastery Series · Agentic AI · Flowise Walkthrough</p>
    <h1>Building an AI Storytelling Agent with Flowise — <em>No Code Required</em></h1>
    <div class="vg4-meta-row">
      <p class="vg4-meta">Stack<span>Flowise · OpenAI GPT-4 · Supervisor/Worker Nodes</span></p>
      <p class="vg4-meta">Deployment<span>Local · Cloud-ready</span></p>
      <p class="vg4-meta">Output<span>IBM the Robot&#8217;s Marshmallow Party</span></p>
    </div>
  </div>
</div>

<!-- PILL BAND -->
<div class="vg4-pill-band">
  <span class="vg4-pill-band-label">Concepts Covered</span>
  <span class="vg4-band-pill">AI Agents</span>
  <span class="vg4-band-pill">Flowise Workflows</span>
  <span class="vg4-band-pill">Supervisor / Worker Pattern</span>
  <span class="vg4-band-pill">ChatOpenAI Node</span>
  <span class="vg4-band-pill">No-Code Orchestration</span>
  <span class="vg4-band-pill">Prompt Engineering</span>
</div>

<!-- INTRO -->
<div class="vg4-intro">
  <p>In today&#8217;s AI landscape, agents are becoming powerful tools to automate complex tasks — from chatbots to interactive storytelling. <strong>Flowise</strong> is a no-code AI workflow builder that makes it easy to design, deploy, and manage AI agents for a wide range of applications. This walkthrough builds a fully functional storytelling agent, locally deployable and cloud-ready.</p>
</div>

<!-- BODY -->
<div class="vg4-body">

  <!-- WHAT ARE AI AGENTS -->
  <div class="vg4-section vg4-reveal">
    <p class="vg4-section-label">Concepts</p>
    <h2>What are AI agents <em>in Flowise?</em></h2>
    <p>AI agents in Flowise are intelligent modules that can handle tasks <strong>autonomously</strong> by combining logic, AI models, and external tools. They process inputs, make decisions, and generate tailored outputs — without manual intervention at each step.</p>
    <p>In this project we use the <strong>Supervisor and Worker node pattern</strong> with OpenAI Chat. The supervisor coordinates the overall workflow; worker nodes each own a specific sub-task — here, storytelling and title assignment.</p>
    <div class="vg4-callout teal">
      <strong>Why multi-agent?</strong> Splitting responsibilities between nodes keeps each prompt focused and small. A dedicated Storyteller node generates better stories than one giant prompt trying to write a story, title it, and format it all at once. This mirrors how real engineering teams work — one job per role.
    </div>
  </div>

  <hr class="vg4-divider">

  <!-- SETUP -->
  <div class="vg4-section vg4-reveal">
    <p class="vg4-section-label">Step 1</p>
    <h2>Setting up <em>Flowise</em></h2>
    <p>Flowise runs as a local Node.js server you access through a browser-based canvas. Two commands are all you need to get started.</p>
    <div class="vg4-code">
      <span class="vg4-code-label">Terminal — Install &#038; Run</span>
      <code><span class="vg4-cmd">npm install</span> flowise
<span class="vg4-cmd">npx flowise</span> run</code>
    </div>
    <p>Once running, open your browser, log in, and click <strong>&#8220;New Workflow&#8221;</strong> to open the interactive canvas. You&#8217;ll drag, drop, and wire nodes together visually — no boilerplate code.</p>
    <div class="vg4-callout">
      <strong>Local vs Cloud:</strong> The setup above runs entirely on your machine. For cloud deployment, Flowise supports Railway, Render, and self-hosted Docker. The workflow JSON is portable — build locally, deploy anywhere.
    </div>
  </div>

</div><!-- /vg4-body -->

<!-- NODE WALKTHROUGH -->
<div class="vg4-nodes-section">
  <p class="vg4-nodes-eyebrow">Step 2 — Workflow Design</p>
  <h2>Building the agent — <em>node by node</em></h2>
  <div class="vg4-node-flow">

    <div class="vg4-node-item vg4-reveal">
      <div class="vg4-node-left">
        <div class="vg4-node-num teal">1</div>
        <div class="vg4-node-connector"></div>
      </div>
      <div class="vg4-node-right">
        <p class="vg4-node-type">Chat Model Node</p>
        <h3>ChatOpenAI — The Brain</h3>
        <p>Drag a <strong>ChatOpenAI Node</strong> onto the canvas and connect it as the model backend for all worker nodes. Configure GPT-4 with elevated temperature for imaginative outputs.</p>
        <div class="vg4-config-list">
          <span class="vg4-config-chip teal">Model: GPT-4</span>
          <span class="vg4-config-chip teal">Temperature: 0.9</span>
          <span class="vg4-config-chip">Max Tokens: 400–500</span>
        </div>
      </div>
    </div>

    <div class="vg4-node-item vg4-reveal vg4-d1">
      <div class="vg4-node-left">
        <div class="vg4-node-num teal">2</div>
        <div class="vg4-node-connector"></div>
      </div>
      <div class="vg4-node-right">
        <p class="vg4-node-type">Worker Node · Role: Storyteller</p>
        <h3>Storytelling Agent</h3>
        <p>Add a <strong>Worker Node</strong> and connect it to the ChatOpenAI node. Set its role as the Storyteller. This node owns the core creative generation task — it receives the theme prompt and writes the full story.</p>
        <div class="vg4-prompt-box">
          <span class="vg4-prompt-label">Worker Prompt</span>
          You are a storyteller. Write a fun and engaging story for kids aged 5–8. The main character is a robot named IBM. Make it funny, magical, and include a twist. Limit the story to 400 words.
        </div>
      </div>
    </div>

    <div class="vg4-node-item vg4-reveal vg4-d2">
      <div class="vg4-node-left">
        <div class="vg4-node-num amber">3</div>
        <div class="vg4-node-connector"></div>
      </div>
      <div class="vg4-node-right">
        <p class="vg4-node-type">Worker Node · Role: Title Assigner</p>
        <h3>Title Assigner Agent</h3>
        <p>Add a second <strong>Worker Node</strong> downstream of the Storyteller. This node&#8217;s sole job is to extract a short, engaging title from the generated story — a focused single-responsibility task.</p>
        <div class="vg4-prompt-box">
          <span class="vg4-prompt-label">Worker Prompt</span>
          Extract the title of the story you just created. Keep it short and engaging.
        </div>
      </div>
    </div>

    <div class="vg4-node-item vg4-reveal">
      <div class="vg4-node-left">
        <div class="vg4-node-num">4</div>
        <div class="vg4-node-connector"></div>
      </div>
      <div class="vg4-node-right">
        <p class="vg4-node-type">Format Prompt Values Node</p>
        <h3>Output Formatter</h3>
        <p>Use the <strong>Format Prompt Values Node</strong> to combine the story and title from the two worker nodes into a clean, structured output ready for display.</p>
        <div class="vg4-config-list">
          <span class="vg4-config-chip">Title: {&#8216;{&#8216;}Title Extracted{&#8216;}&#8217;}</span>
          <span class="vg4-config-chip">Story: {&#8216;{&#8216;}Generated Story{&#8216;}&#8217;}</span>
        </div>
      </div>
    </div>

    <div class="vg4-node-item vg4-reveal vg4-d1">
      <div class="vg4-node-left">
        <div class="vg4-node-num teal">5</div>
      </div>
      <div class="vg4-node-right">
        <p class="vg4-node-type">Chat Output Node</p>
        <h3>Chat Output — Delivery</h3>
        <p>Connect the formatted output to the <strong>Chat Output Node</strong>. This is the interface layer — the final assembled story and title are surfaced here for users to read, copy, or embed.</p>
        <div class="vg4-config-list">
          <span class="vg4-config-chip teal">Displays story + title</span>
          <span class="vg4-config-chip">Embeddable chat widget</span>
        </div>
      </div>
    </div>

  </div>
</div>

<!-- BODY CONTINUED — RUNNING -->
<div class="vg4-body">
  <div class="vg4-section vg4-reveal">
    <p class="vg4-section-label">Step 3</p>
    <h2>Running the <em>agent</em></h2>
    <p>With all nodes configured and wired together, save your workflow — name it something like <strong>&#8220;AI Storytelling Agent&#8221;</strong> — and hit Run. Enter a theme prompt or use the default storytelling instructions, and the agent pipeline fires automatically: ChatOpenAI powers the Storyteller worker, its output flows to the Title Assigner, both outputs merge in the Formatter, and the Chat Output displays the result.</p>
    <div class="vg4-callout teal">
      <strong>Tip:</strong> Experiment with different <code>temperature</code> values. At 0.7 the stories are coherent but predictable. At 0.95 you get genuinely surprising plot twists — which for kids&#8217; stories is exactly what you want.
    </div>
  </div>
</div>

<!-- STORY OUTPUT -->
<div class="vg4-story-section">
  <p class="vg4-story-eyebrow">Example Output</p>
  <h2>IBM&#8217;s <em>Marshmallow Party</em></h2>
  <div class="vg4-story-card vg4-reveal">
    <div class="vg4-story-title-row">
      <p class="vg4-story-title-label">Generated Title</p>
      <p class="vg4-story-title">IBM the Robot and the Marshmallow Party</p>
    </div>
    <div class="vg4-story-body">
      <p>Once upon a time, in a land of giggles and sparkles, there lived a silly little robot named IBM. Now, IBM wasn&#8217;t your everyday robot who danced or painted; oh no! He was known as a &#8220;computer,&#8221; which is a magic box that helps people do all sorts of amazing things!</p>
      <p>One sunny day, IBM decided to throw a party for all his robot friends. He said, &#8220;Let&#8217;s make it the best party ever! I&#8217;ll invite my buddy, Printer Pete, and my bestie, Codey the Coder!&#8221; But IBM accidentally ordered 1,000 bags of rainbow-colored marshmallows instead of snacks — and chaos ensued!</p>
      <p>The party turned into a marshmallow-filled adventure with pillow fights, marshmallow towers, and lots of laughs. In the end, IBM and his friends agreed: whether it&#8217;s chips or marshmallows, any party is fun when friends are around!</p>
    </div>
    <div class="vg4-story-meta">
      <p class="vg4-story-meta-item">Model<span>GPT-4</span></p>
      <p class="vg4-story-meta-item">Temperature<span>0.9</span></p>
      <p class="vg4-story-meta-item">Word Count<span>~150 words</span></p>
      <p class="vg4-story-meta-item">Nodes Used<span>5</span></p>
    </div>
  </div>
</div>

<!-- INTERVIEW CHEAT SHEET -->
<div class="vg4-interview-section">
  <p class="vg4-interview-eyebrow">Interview Prep</p>
  <h2>Cheat sheet — <em>quick definitions to remember</em></h2>
  <div class="vg4-qa-list">

    <div class="vg4-qa-item vg4-reveal">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Define</span><br>What is an AI agent?</div>
      <div class="vg4-qa-a"><strong>An autonomous module</strong> that combines a language model, logic, and optionally external tools to complete a task without step-by-step human instruction. It receives a goal, plans sub-steps, and executes them independently.
        <div class="vg4-pills"><span class="vg4-pill t">Autonomous</span><span class="vg4-pill t">Goal-driven</span><span class="vg4-pill">Tool-using</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal vg4-d1">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Explain</span><br>What is the Supervisor / Worker pattern?</div>
      <div class="vg4-qa-a">A <strong>Supervisor node</strong> coordinates the overall workflow and delegates tasks to <strong>Worker nodes</strong>, each of which handles one focused sub-task. This mirrors microservices architecture — single responsibility per agent, composable into larger pipelines.
        <div class="vg4-pills"><span class="vg4-pill t">Supervisor = orchestrator</span><span class="vg4-pill t">Worker = specialist</span><span class="vg4-pill a">Single responsibility</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Define</span><br>What does temperature control in an LLM?</div>
      <div class="vg4-qa-a"><strong>Randomness in token sampling.</strong> Low temperature (0.1–0.4) = deterministic, factual, conservative outputs. High temperature (0.8–1.0) = creative, surprising, occasionally incoherent. For storytelling, 0.9 hits the sweet spot of imaginative without losing coherence.
        <div class="vg4-pills"><span class="vg4-pill">Low = deterministic</span><span class="vg4-pill a">High = creative</span><span class="vg4-pill t">0.9 for stories</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal vg4-d1">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Compare</span><br>No-code (Flowise) vs code-first (LangChain) — when to use which?</div>
      <div class="vg4-qa-a">Use <strong>Flowise</strong> for rapid prototyping, demos, non-developer stakeholders, or when the workflow is straightforward and visual. Use <strong>LangChain / LangGraph in code</strong> when you need version control, CI/CD, complex branching, custom tool integrations, or production-grade observability.
        <div class="vg4-pills"><span class="vg4-pill t">Flowise = prototype fast</span><span class="vg4-pill a">LangChain = production</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Explain</span><br>Why split story generation and title extraction into separate nodes?</div>
      <div class="vg4-qa-a"><strong>Focused prompts outperform omnibus prompts.</strong> A prompt that must write a story, extract a title, and format output all at once tends to trade off quality across tasks. Separate nodes give each sub-task its own context window, model parameters, and success criteria — and makes each step independently testable and replaceable.
        <div class="vg4-pills"><span class="vg4-pill t">One node, one job</span><span class="vg4-pill">Better quality</span><span class="vg4-pill a">Independently testable</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal vg4-d1">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Use Case</span><br>What other use cases suit a Flowise multi-agent setup?</div>
      <div class="vg4-qa-a"><strong>Any pipeline with distinct sequential sub-tasks:</strong> customer support (intent classification → knowledge retrieval → response drafting), content pipelines (research → outline → write → SEO optimize), data workflows (extract → validate → transform → summarize).
        <div class="vg4-pills"><span class="vg4-pill t">Customer support</span><span class="vg4-pill t">Content pipelines</span><span class="vg4-pill t">Data workflows</span><span class="vg4-pill">Code review agents</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Gotcha</span><br>What are the main limits of no-code agent builders?</div>
      <div class="vg4-qa-a">Three key limitations: <strong>(1) Observability</strong> — debugging visual workflows is harder than reading stack traces. <strong>(2) Version control</strong> — workflow JSON doesn&#8217;t diff cleanly in Git. <strong>(3) Custom logic</strong> — complex conditional branching, stateful memory, and custom tool integrations are much easier in code-first frameworks.
        <div class="vg4-pills"><span class="vg4-pill a">Hard to debug</span><span class="vg4-pill a">No clean Git diff</span><span class="vg4-pill a">Limited branching</span></div>
      </div>
    </div>

  </div>
</div>

<!-- FOOTER -->
<div class="vg4-footer">
  <p><strong>GenAI Mastery Series</strong> — vijay-gokarn.com · Vijay Gokarn</p>
  <a href="https://vijay-gokarn.com" class="vg4-back-btn">Back to Blog ↗</a>
</div>

</div><!-- /vg4 -->

<script>
(function(){
  var obs = new IntersectionObserver(function(e){
    e.forEach(function(x){ if(x.isIntersecting) x.target.classList.add('vg4-vis'); });
  }, {threshold: 0.08});
  document.querySelectorAll('.vg4-reveal').forEach(function(el){ obs.observe(el); });
})();
</script><link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;family=DM+Mono:wght@400&#038;display=swap" rel="stylesheet">

<style>
.vg4 {
  --ink: #0e0e0e; --paper: #f7f4ef; --paper-dark: #ede9e1;
  --teal: #0f6e56; --teal-light: #1d9e75; --teal-muted: #e1f5ee;
  --amber: #ba7517; --amber-light: #fac775; --amber-muted: #faeeda;
  --charcoal: #2c2c2a; --muted: #888780;
  --border: rgba(14,14,14,0.12); --border-strong: rgba(14,14,14,0.25);
  font-family: 'DM Sans', sans-serif; font-weight: 300;
  color: var(--ink); background: var(--paper); line-height: 1.75; font-size: 16px; overflow-x: hidden;
}
.vg4 *, .vg4 *::before, .vg4 *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* HERO */
.vg4-hero { background: var(--ink); padding: 5rem 4rem 4rem; position: relative; overflow: hidden; }
.vg4-hero::before {
  content: '⬡'; font-family: 'Cormorant Garamond', serif; font-size: 24rem;
  color: rgba(255,255,255,0.025); position: absolute;
  right: -2rem; bottom: -5rem; line-height: 1; pointer-events: none;
}
.vg4-hero-inner { position: relative; z-index: 1; max-width: 900px; }
.vg4-eyebrow {
  font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--teal-light); font-weight: 500; margin-bottom: 1.25rem;
  display: flex; align-items: center; gap: 0.75rem;
}
.vg4-eyebrow::before { content: ''; display: inline-block; width: 1.5rem; height: 1px; background: var(--teal-light); }
.vg4-hero h1 {
  font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 300; line-height: 1.1; color: var(--paper); letter-spacing: -0.02em;
  margin-bottom: 1.5rem; max-width: 26ch;
}
.vg4-hero h1 em { font-style: italic; color: var(--amber-light); }
.vg4-meta-row { display: flex; gap: 2rem; flex-wrap: wrap; }
.vg4-meta { font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.35); }
.vg4-meta span { color: rgba(247,244,239,0.7); margin-left: 0.4rem; }

/* PILL BAND */
.vg4-pill-band {
  background: var(--teal); padding: 1.25rem 4rem;
  display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center;
}
.vg4-pill-band-label { font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(247,244,239,0.5); font-weight: 400; margin-right: 0.5rem; }
.vg4-band-pill { font-size: 0.7rem; letter-spacing: 0.06em; padding: 0.3rem 0.9rem; background: rgba(247,244,239,0.12); color: var(--paper); border: 0.5px solid rgba(247,244,239,0.2); }

/* INTRO */
.vg4-intro { background: var(--teal-muted); padding: 2.5rem 4rem; border-left: 4px solid var(--teal); }
.vg4-intro p { font-size: 1.05rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; max-width: 80ch; }
.vg4-intro strong { color: var(--teal); font-weight: 500; }

/* BODY */
.vg4-body { max-width: 900px; margin: 0 auto; padding: 4rem; }
.vg4-section { margin-bottom: 3.5rem; }
.vg4-section-label {
  font-size: 0.63rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--teal); font-weight: 500; margin-bottom: 0.5rem;
  display: flex; align-items: center; gap: 0.6rem;
}
.vg4-section-label::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg4-section h2 {
  font-family: 'Cormorant Garamond', serif; font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 300; line-height: 1.2; color: var(--ink); margin-bottom: 1.25rem;
}
.vg4-section h2 em { font-style: italic; color: var(--teal); }
.vg4-section p { font-size: 0.93rem; line-height: 1.9; color: var(--charcoal); font-weight: 300; margin-bottom: 1rem; }
.vg4-section p strong { color: var(--ink); font-weight: 500; }
.vg4-divider { border: none; border-top: 0.5px solid var(--border); margin: 3rem 0; }

/* CALLOUT */
.vg4-callout {
  background: var(--paper-dark); border-left: 3px solid var(--amber);
  padding: 1.25rem 1.5rem; margin: 1.5rem 0;
  font-size: 0.87rem; line-height: 1.8; color: var(--charcoal);
}
.vg4-callout strong { color: var(--amber); font-weight: 500; }
.vg4-callout.teal { border-color: var(--teal); }
.vg4-callout.teal strong { color: var(--teal); }
.vg4-callout code { font-family: 'DM Mono', monospace; font-size: 0.8rem; background: rgba(14,14,14,0.07); padding: 0.1rem 0.4rem; }

/* CODE BLOCK */
.vg4-code { background: var(--ink); padding: 1.5rem 2rem; margin: 1.5rem 0; overflow-x: auto; }
.vg4-code-label { font-family: 'DM Sans', sans-serif; font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(247,244,239,0.3); margin-bottom: 0.6rem; display: block; }
.vg4-code code { font-family: 'DM Mono', monospace; font-size: 0.85rem; color: var(--amber-light); white-space: pre; display: block; line-height: 1.8; }
.vg4-code code .vg4-comment { color: rgba(247,244,239,0.3); }
.vg4-code code .vg4-cmd { color: var(--teal-light); }

/* NODE CARDS — WORKFLOW STEPS */
.vg4-nodes-section { background: var(--paper-dark); padding: 4rem; }
.vg4-nodes-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg4-nodes-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg4-nodes-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--ink); margin-bottom: 2.5rem; }
.vg4-nodes-section > h2 em { font-style: italic; color: var(--teal); }
.vg4-node-flow { display: flex; flex-direction: column; gap: 0; }
.vg4-node-item { display: grid; grid-template-columns: 80px 1fr; gap: 2rem; padding: 2rem 0; border-top: 0.5px solid var(--border); align-items: start; }
.vg4-node-item:last-child { border-bottom: 0.5px solid var(--border); }
.vg4-node-left { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.vg4-node-num {
  width: 44px; height: 44px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 300;
  background: var(--ink); color: var(--paper); flex-shrink: 0;
}
.vg4-node-num.teal { background: var(--teal); }
.vg4-node-num.amber { background: var(--amber); color: var(--paper); }
.vg4-node-connector { width: 1px; flex: 1; min-height: 20px; background: var(--border); }
.vg4-node-right {}
.vg4-node-type { font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.35rem; }
.vg4-node-right h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.35rem; font-weight: 400; color: var(--ink); margin-bottom: 0.6rem; }
.vg4-node-right p { font-size: 0.85rem; line-height: 1.8; color: var(--charcoal); font-weight: 300; margin-bottom: 0.75rem; }
.vg4-node-right p strong { color: var(--ink); font-weight: 500; }
.vg4-config-list { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; }
.vg4-config-chip { font-family: 'DM Mono', monospace; font-size: 0.7rem; padding: 0.25rem 0.75rem; background: var(--paper); border: 0.5px solid var(--border-strong); color: var(--charcoal); letter-spacing: 0.04em; }
.vg4-config-chip.teal { border-color: var(--teal); color: var(--teal); background: var(--teal-muted); }
.vg4-prompt-box { background: var(--ink); padding: 1.1rem 1.25rem; margin-top: 0.75rem; font-family: 'DM Mono', monospace; font-size: 0.78rem; color: var(--amber-light); line-height: 1.7; }
.vg4-prompt-box .vg4-prompt-label { font-family: 'DM Sans', sans-serif; font-size: 0.58rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(247,244,239,0.3); margin-bottom: 0.4rem; display: block; }

/* STORY OUTPUT */
.vg4-story-section { background: var(--ink); padding: 4rem; }
.vg4-story-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg4-story-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--amber-light); }
.vg4-story-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--paper); margin-bottom: 2rem; }
.vg4-story-section > h2 em { font-style: italic; color: var(--amber-light); }
.vg4-story-card { border: 0.5px solid rgba(247,244,239,0.12); padding: 2.5rem; position: relative; }
.vg4-story-card::before { content: '"'; font-family: 'Cormorant Garamond', serif; font-size: 8rem; font-weight: 300; color: rgba(250,199,117,0.1); position: absolute; top: -1rem; left: 1.5rem; line-height: 1; pointer-events: none; }
.vg4-story-title-row { margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 0.5px solid rgba(247,244,239,0.1); }
.vg4-story-title-label { font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(247,244,239,0.3); margin-bottom: 0.4rem; }
.vg4-story-title { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; color: var(--amber-light); line-height: 1.2; }
.vg4-story-body { font-size: 0.9rem; line-height: 1.95; color: rgba(247,244,239,0.7); font-weight: 300; font-style: italic; }
.vg4-story-body p + p { margin-top: 1rem; }
.vg4-story-meta { display: flex; gap: 1.5rem; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 0.5px solid rgba(247,244,239,0.1); flex-wrap: wrap; }
.vg4-story-meta-item { font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.3); }
.vg4-story-meta-item span { color: var(--amber-light); margin-left: 0.35rem; }

/* INTERVIEW */
.vg4-interview-section { background: var(--teal-muted); padding: 4rem; }
.vg4-interview-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg4-interview-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg4-interview-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--ink); margin-bottom: 2.5rem; }
.vg4-interview-section > h2 em { font-style: italic; color: var(--teal); }
.vg4-qa-list { display: flex; flex-direction: column; }
.vg4-qa-item { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; padding: 1.5rem 0; border-top: 0.5px solid rgba(14,14,14,0.1); align-items: start; }
.vg4-qa-item:last-child { border-bottom: 0.5px solid rgba(14,14,14,0.1); }
.vg4-qa-q { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 400; color: var(--ink); line-height: 1.4; }
.vg4-q-badge { font-family: 'DM Mono', monospace; font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--teal); color: var(--paper); padding: 0.15rem 0.5rem; margin-bottom: 0.5rem; display: inline-block; }
.vg4-qa-a { font-size: 0.83rem; line-height: 1.8; color: var(--charcoal); font-weight: 300; }
.vg4-qa-a strong { color: var(--teal); font-weight: 500; }
.vg4-qa-a code { font-family: 'DM Mono', monospace; font-size: 0.77rem; background: rgba(14,14,14,0.07); padding: 0.1rem 0.35rem; color: var(--ink); }
.vg4-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.vg4-pill { font-size: 0.67rem; letter-spacing: 0.06em; padding: 0.25rem 0.75rem; border: 0.5px solid var(--border-strong); color: var(--charcoal); }
.vg4-pill.t { border-color: var(--teal); color: var(--teal); background: var(--teal-muted); }
.vg4-pill.a { border-color: var(--amber); color: var(--amber); background: var(--amber-muted); }

/* FOOTER */
.vg4-footer { background: var(--ink); padding: 3rem 4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; }
.vg4-footer p { font-size: 0.82rem; color: rgba(247,244,239,0.35); font-weight: 300; }
.vg4-footer p strong { color: rgba(247,244,239,0.65); font-weight: 400; }
.vg4-back-btn { display: inline-block; padding: 0.65rem 1.75rem; background: var(--teal); color: var(--paper); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 400; }

/* REVEAL */
.vg4-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
.vg4-reveal.vg4-vis { opacity: 1; transform: translateY(0); }
.vg4-d1 { transition-delay: 0.1s; } .vg4-d2 { transition-delay: 0.2s; } .vg4-d3 { transition-delay: 0.3s; }
</style>

<div class="vg4">

<!-- HERO -->
<div class="vg4-hero">
  <div class="vg4-hero-inner">
    <p class="vg4-eyebrow">GenAI Mastery Series · Agentic AI · Flowise Walkthrough</p>
    <h1>Building an AI Storytelling Agent with Flowise — <em>No Code Required</em></h1>
    <div class="vg4-meta-row">
      <p class="vg4-meta">Stack<span>Flowise · OpenAI GPT-4 · Supervisor/Worker Nodes</span></p>
      <p class="vg4-meta">Deployment<span>Local · Cloud-ready</span></p>
      <p class="vg4-meta">Output<span>IBM the Robot&#8217;s Marshmallow Party</span></p>
    </div>
  </div>
</div>

<!-- PILL BAND -->
<div class="vg4-pill-band">
  <span class="vg4-pill-band-label">Concepts Covered</span>
  <span class="vg4-band-pill">AI Agents</span>
  <span class="vg4-band-pill">Flowise Workflows</span>
  <span class="vg4-band-pill">Supervisor / Worker Pattern</span>
  <span class="vg4-band-pill">ChatOpenAI Node</span>
  <span class="vg4-band-pill">No-Code Orchestration</span>
  <span class="vg4-band-pill">Prompt Engineering</span>
</div>

<!-- INTRO -->
<div class="vg4-intro">
  <p>In today&#8217;s AI landscape, agents are becoming powerful tools to automate complex tasks — from chatbots to interactive storytelling. <strong>Flowise</strong> is a no-code AI workflow builder that makes it easy to design, deploy, and manage AI agents for a wide range of applications. This walkthrough builds a fully functional storytelling agent, locally deployable and cloud-ready.</p>
</div>

<!-- BODY -->
<div class="vg4-body">

  <!-- WHAT ARE AI AGENTS -->
  <div class="vg4-section vg4-reveal">
    <p class="vg4-section-label">Concepts</p>
    <h2>What are AI agents <em>in Flowise?</em></h2>
    <p>AI agents in Flowise are intelligent modules that can handle tasks <strong>autonomously</strong> by combining logic, AI models, and external tools. They process inputs, make decisions, and generate tailored outputs — without manual intervention at each step.</p>
    <p>In this project we use the <strong>Supervisor and Worker node pattern</strong> with OpenAI Chat. The supervisor coordinates the overall workflow; worker nodes each own a specific sub-task — here, storytelling and title assignment.</p>
    <div class="vg4-callout teal">
      <strong>Why multi-agent?</strong> Splitting responsibilities between nodes keeps each prompt focused and small. A dedicated Storyteller node generates better stories than one giant prompt trying to write a story, title it, and format it all at once. This mirrors how real engineering teams work — one job per role.
    </div>
  </div>

  <hr class="vg4-divider">

  <!-- SETUP -->
  <div class="vg4-section vg4-reveal">
    <p class="vg4-section-label">Step 1</p>
    <h2>Setting up <em>Flowise</em></h2>
    <p>Flowise runs as a local Node.js server you access through a browser-based canvas. Two commands are all you need to get started.</p>
    <div class="vg4-code">
      <span class="vg4-code-label">Terminal — Install &#038; Run</span>
      <code><span class="vg4-cmd">npm install</span> flowise
<span class="vg4-cmd">npx flowise</span> run</code>
    </div>
    <p>Once running, open your browser, log in, and click <strong>&#8220;New Workflow&#8221;</strong> to open the interactive canvas. You&#8217;ll drag, drop, and wire nodes together visually — no boilerplate code.</p>
    <div class="vg4-callout">
      <strong>Local vs Cloud:</strong> The setup above runs entirely on your machine. For cloud deployment, Flowise supports Railway, Render, and self-hosted Docker. The workflow JSON is portable — build locally, deploy anywhere.
    </div>
  </div>

</div><!-- /vg4-body -->

<!-- NODE WALKTHROUGH -->
<div class="vg4-nodes-section">
  <p class="vg4-nodes-eyebrow">Step 2 — Workflow Design</p>
  <h2>Building the agent — <em>node by node</em></h2>
  <div class="vg4-node-flow">

    <div class="vg4-node-item vg4-reveal">
      <div class="vg4-node-left">
        <div class="vg4-node-num teal">1</div>
        <div class="vg4-node-connector"></div>
      </div>
      <div class="vg4-node-right">
        <p class="vg4-node-type">Chat Model Node</p>
        <h3>ChatOpenAI — The Brain</h3>
        <p>Drag a <strong>ChatOpenAI Node</strong> onto the canvas and connect it as the model backend for all worker nodes. Configure GPT-4 with elevated temperature for imaginative outputs.</p>
        <div class="vg4-config-list">
          <span class="vg4-config-chip teal">Model: GPT-4</span>
          <span class="vg4-config-chip teal">Temperature: 0.9</span>
          <span class="vg4-config-chip">Max Tokens: 400–500</span>
        </div>
      </div>
    </div>

    <div class="vg4-node-item vg4-reveal vg4-d1">
      <div class="vg4-node-left">
        <div class="vg4-node-num teal">2</div>
        <div class="vg4-node-connector"></div>
      </div>
      <div class="vg4-node-right">
        <p class="vg4-node-type">Worker Node · Role: Storyteller</p>
        <h3>Storytelling Agent</h3>
        <p>Add a <strong>Worker Node</strong> and connect it to the ChatOpenAI node. Set its role as the Storyteller. This node owns the core creative generation task — it receives the theme prompt and writes the full story.</p>
        <div class="vg4-prompt-box">
          <span class="vg4-prompt-label">Worker Prompt</span>
          You are a storyteller. Write a fun and engaging story for kids aged 5–8. The main character is a robot named IBM. Make it funny, magical, and include a twist. Limit the story to 400 words.
        </div>
      </div>
    </div>

    <div class="vg4-node-item vg4-reveal vg4-d2">
      <div class="vg4-node-left">
        <div class="vg4-node-num amber">3</div>
        <div class="vg4-node-connector"></div>
      </div>
      <div class="vg4-node-right">
        <p class="vg4-node-type">Worker Node · Role: Title Assigner</p>
        <h3>Title Assigner Agent</h3>
        <p>Add a second <strong>Worker Node</strong> downstream of the Storyteller. This node&#8217;s sole job is to extract a short, engaging title from the generated story — a focused single-responsibility task.</p>
        <div class="vg4-prompt-box">
          <span class="vg4-prompt-label">Worker Prompt</span>
          Extract the title of the story you just created. Keep it short and engaging.
        </div>
      </div>
    </div>

    <div class="vg4-node-item vg4-reveal">
      <div class="vg4-node-left">
        <div class="vg4-node-num">4</div>
        <div class="vg4-node-connector"></div>
      </div>
      <div class="vg4-node-right">
        <p class="vg4-node-type">Format Prompt Values Node</p>
        <h3>Output Formatter</h3>
        <p>Use the <strong>Format Prompt Values Node</strong> to combine the story and title from the two worker nodes into a clean, structured output ready for display.</p>
        <div class="vg4-config-list">
          <span class="vg4-config-chip">Title: {&#8216;{&#8216;}Title Extracted{&#8216;}&#8217;}</span>
          <span class="vg4-config-chip">Story: {&#8216;{&#8216;}Generated Story{&#8216;}&#8217;}</span>
        </div>
      </div>
    </div>

    <div class="vg4-node-item vg4-reveal vg4-d1">
      <div class="vg4-node-left">
        <div class="vg4-node-num teal">5</div>
      </div>
      <div class="vg4-node-right">
        <p class="vg4-node-type">Chat Output Node</p>
        <h3>Chat Output — Delivery</h3>
        <p>Connect the formatted output to the <strong>Chat Output Node</strong>. This is the interface layer — the final assembled story and title are surfaced here for users to read, copy, or embed.</p>
        <div class="vg4-config-list">
          <span class="vg4-config-chip teal">Displays story + title</span>
          <span class="vg4-config-chip">Embeddable chat widget</span>
        </div>
      </div>
    </div>

  </div>
</div>

<!-- BODY CONTINUED — RUNNING -->
<div class="vg4-body">
  <div class="vg4-section vg4-reveal">
    <p class="vg4-section-label">Step 3</p>
    <h2>Running the <em>agent</em></h2>
    <p>With all nodes configured and wired together, save your workflow — name it something like <strong>&#8220;AI Storytelling Agent&#8221;</strong> — and hit Run. Enter a theme prompt or use the default storytelling instructions, and the agent pipeline fires automatically: ChatOpenAI powers the Storyteller worker, its output flows to the Title Assigner, both outputs merge in the Formatter, and the Chat Output displays the result.</p>
    <div class="vg4-callout teal">
      <strong>Tip:</strong> Experiment with different <code>temperature</code> values. At 0.7 the stories are coherent but predictable. At 0.95 you get genuinely surprising plot twists — which for kids&#8217; stories is exactly what you want.
    </div>
  </div>
</div>

<!-- STORY OUTPUT -->
<div class="vg4-story-section">
  <p class="vg4-story-eyebrow">Example Output</p>
  <h2>IBM&#8217;s <em>Marshmallow Party</em></h2>
  <div class="vg4-story-card vg4-reveal">
    <div class="vg4-story-title-row">
      <p class="vg4-story-title-label">Generated Title</p>
      <p class="vg4-story-title">IBM the Robot and the Marshmallow Party</p>
    </div>
    <div class="vg4-story-body">
      <p>Once upon a time, in a land of giggles and sparkles, there lived a silly little robot named IBM. Now, IBM wasn&#8217;t your everyday robot who danced or painted; oh no! He was known as a &#8220;computer,&#8221; which is a magic box that helps people do all sorts of amazing things!</p>
      <p>One sunny day, IBM decided to throw a party for all his robot friends. He said, &#8220;Let&#8217;s make it the best party ever! I&#8217;ll invite my buddy, Printer Pete, and my bestie, Codey the Coder!&#8221; But IBM accidentally ordered 1,000 bags of rainbow-colored marshmallows instead of snacks — and chaos ensued!</p>
      <p>The party turned into a marshmallow-filled adventure with pillow fights, marshmallow towers, and lots of laughs. In the end, IBM and his friends agreed: whether it&#8217;s chips or marshmallows, any party is fun when friends are around!</p>
    </div>
    <div class="vg4-story-meta">
      <p class="vg4-story-meta-item">Model<span>GPT-4</span></p>
      <p class="vg4-story-meta-item">Temperature<span>0.9</span></p>
      <p class="vg4-story-meta-item">Word Count<span>~150 words</span></p>
      <p class="vg4-story-meta-item">Nodes Used<span>5</span></p>
    </div>
  </div>
</div>

<!-- INTERVIEW CHEAT SHEET -->
<div class="vg4-interview-section">
  <p class="vg4-interview-eyebrow">Interview Prep</p>
  <h2>Cheat sheet — <em>quick definitions to remember</em></h2>
  <div class="vg4-qa-list">

    <div class="vg4-qa-item vg4-reveal">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Define</span><br>What is an AI agent?</div>
      <div class="vg4-qa-a"><strong>An autonomous module</strong> that combines a language model, logic, and optionally external tools to complete a task without step-by-step human instruction. It receives a goal, plans sub-steps, and executes them independently.
        <div class="vg4-pills"><span class="vg4-pill t">Autonomous</span><span class="vg4-pill t">Goal-driven</span><span class="vg4-pill">Tool-using</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal vg4-d1">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Explain</span><br>What is the Supervisor / Worker pattern?</div>
      <div class="vg4-qa-a">A <strong>Supervisor node</strong> coordinates the overall workflow and delegates tasks to <strong>Worker nodes</strong>, each of which handles one focused sub-task. This mirrors microservices architecture — single responsibility per agent, composable into larger pipelines.
        <div class="vg4-pills"><span class="vg4-pill t">Supervisor = orchestrator</span><span class="vg4-pill t">Worker = specialist</span><span class="vg4-pill a">Single responsibility</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Define</span><br>What does temperature control in an LLM?</div>
      <div class="vg4-qa-a"><strong>Randomness in token sampling.</strong> Low temperature (0.1–0.4) = deterministic, factual, conservative outputs. High temperature (0.8–1.0) = creative, surprising, occasionally incoherent. For storytelling, 0.9 hits the sweet spot of imaginative without losing coherence.
        <div class="vg4-pills"><span class="vg4-pill">Low = deterministic</span><span class="vg4-pill a">High = creative</span><span class="vg4-pill t">0.9 for stories</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal vg4-d1">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Compare</span><br>No-code (Flowise) vs code-first (LangChain) — when to use which?</div>
      <div class="vg4-qa-a">Use <strong>Flowise</strong> for rapid prototyping, demos, non-developer stakeholders, or when the workflow is straightforward and visual. Use <strong>LangChain / LangGraph in code</strong> when you need version control, CI/CD, complex branching, custom tool integrations, or production-grade observability.
        <div class="vg4-pills"><span class="vg4-pill t">Flowise = prototype fast</span><span class="vg4-pill a">LangChain = production</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Explain</span><br>Why split story generation and title extraction into separate nodes?</div>
      <div class="vg4-qa-a"><strong>Focused prompts outperform omnibus prompts.</strong> A prompt that must write a story, extract a title, and format output all at once tends to trade off quality across tasks. Separate nodes give each sub-task its own context window, model parameters, and success criteria — and makes each step independently testable and replaceable.
        <div class="vg4-pills"><span class="vg4-pill t">One node, one job</span><span class="vg4-pill">Better quality</span><span class="vg4-pill a">Independently testable</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal vg4-d1">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Use Case</span><br>What other use cases suit a Flowise multi-agent setup?</div>
      <div class="vg4-qa-a"><strong>Any pipeline with distinct sequential sub-tasks:</strong> customer support (intent classification → knowledge retrieval → response drafting), content pipelines (research → outline → write → SEO optimize), data workflows (extract → validate → transform → summarize).
        <div class="vg4-pills"><span class="vg4-pill t">Customer support</span><span class="vg4-pill t">Content pipelines</span><span class="vg4-pill t">Data workflows</span><span class="vg4-pill">Code review agents</span></div>
      </div>
    </div>

    <div class="vg4-qa-item vg4-reveal">
      <div class="vg4-qa-q"><span class="vg4-q-badge">Gotcha</span><br>What are the main limits of no-code agent builders?</div>
      <div class="vg4-qa-a">Three key limitations: <strong>(1) Observability</strong> — debugging visual workflows is harder than reading stack traces. <strong>(2) Version control</strong> — workflow JSON doesn&#8217;t diff cleanly in Git. <strong>(3) Custom logic</strong> — complex conditional branching, stateful memory, and custom tool integrations are much easier in code-first frameworks.
        <div class="vg4-pills"><span class="vg4-pill a">Hard to debug</span><span class="vg4-pill a">No clean Git diff</span><span class="vg4-pill a">Limited branching</span></div>
      </div>
    </div>

  </div>
</div>

<!-- FOOTER -->
<div class="vg4-footer">
  <p><strong>GenAI Mastery Series</strong> — vijay-gokarn.com · Vijay Gokarn</p>
  <a href="https://vijay-gokarn.com" class="vg4-back-btn">Back to Blog ↗</a>
</div>

</div><!-- /vg4 -->

<script>
(function(){
  var obs = new IntersectionObserver(function(e){
    e.forEach(function(x){ if(x.isIntersecting) x.target.classList.add('vg4-vis'); });
  }, {threshold: 0.08});
  document.querySelectorAll('.vg4-reveal').forEach(function(el){ obs.observe(el); });
})();
</script>
<p>The post <a href="https://vijay-gokarn.com/creating-ai-storytelling-agents-using-flowise-a-step-by-step-guide/">Creating AI Storytelling Agents Using Flowise: A Step-by-Step Guide</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">227</post-id>	</item>
		<item>
		<title>Long Context LLM Comparison</title>
		<link>https://vijay-gokarn.com/long-context-llm-comparison/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=long-context-llm-comparison</link>
		
		<dc:creator><![CDATA[Vijay Gokarn]]></dc:creator>
		<pubDate>Mon, 19 Aug 2024 21:31:01 +0000</pubDate>
				<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[databricks]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[generative-ai]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://vijay-gokarn.com/?p=192</guid>

					<description><![CDATA[<p>GenAI Mastery Series · Long Context LLMs · Deep Dive Long Context LLMs — How They Work, How They Compare, and When to Use Which Models CoveredGPT-4 · Claude 2 · Mistral · PaLM 2 · LLaMA 2 FocusContext Length · Architecture · Use Cases 128k GPT-4 max tokens 100k Claude 2 max tokens 32k [&#8230;]</p>
<p>The post <a href="https://vijay-gokarn.com/long-context-llm-comparison/">Long Context LLM Comparison</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;family=DM+Mono:wght@400&#038;display=swap" rel="stylesheet">

<style>
.vg3 {
  --ink: #0e0e0e; --paper: #f7f4ef; --paper-dark: #ede9e1;
  --teal: #0f6e56; --teal-light: #1d9e75; --teal-muted: #e1f5ee;
  --amber: #ba7517; --amber-light: #fac775; --amber-muted: #faeeda;
  --charcoal: #2c2c2a; --muted: #888780;
  --border: rgba(14,14,14,0.12); --border-strong: rgba(14,14,14,0.25);
  font-family: 'DM Sans', sans-serif; font-weight: 300;
  color: var(--ink); background: var(--paper); line-height: 1.75; font-size: 16px; overflow-x: hidden;
}
.vg3 *, .vg3 *::before, .vg3 *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* HERO */
.vg3-hero { background: var(--ink); padding: 5rem 4rem 4rem; position: relative; overflow: hidden; }
.vg3-hero::before {
  content: '∞'; font-family: 'Cormorant Garamond', serif; font-size: 22rem;
  font-weight: 300; color: rgba(255,255,255,0.025); position: absolute;
  right: 2rem; top: 50%; transform: translateY(-50%); line-height: 1; pointer-events: none;
}
.vg3-hero-inner { position: relative; z-index: 1; max-width: 900px; }
.vg3-eyebrow {
  font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--teal-light); font-weight: 500; margin-bottom: 1.25rem;
  display: flex; align-items: center; gap: 0.75rem;
}
.vg3-eyebrow::before { content: ''; display: inline-block; width: 1.5rem; height: 1px; background: var(--teal-light); }
.vg3-hero h1 {
  font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 300; line-height: 1.1; color: var(--paper); letter-spacing: -0.02em;
  margin-bottom: 1.5rem; max-width: 26ch;
}
.vg3-hero h1 em { font-style: italic; color: var(--amber-light); }
.vg3-meta-row { display: flex; gap: 2rem; flex-wrap: wrap; }
.vg3-meta { font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.35); }
.vg3-meta span { color: rgba(247,244,239,0.7); margin-left: 0.4rem; }

/* STAT BAND */
.vg3-stat-band {
  background: var(--teal); display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1px; background-color: var(--teal);
}
.vg3-stat-item { background: var(--teal); padding: 1.75rem 2rem; }
.vg3-stat-n {
  font-family: 'Cormorant Garamond', serif; font-size: 2.4rem; font-weight: 300;
  line-height: 1; color: var(--paper); letter-spacing: -0.03em; margin-bottom: 0.3rem;
}
.vg3-stat-l { font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(247,244,239,0.55); }

/* INTRO */
.vg3-intro { background: var(--teal-muted); padding: 2.5rem 4rem; border-left: 4px solid var(--teal); }
.vg3-intro p { font-size: 1.05rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; max-width: 80ch; }
.vg3-intro strong { color: var(--teal); font-weight: 500; }

/* BODY */
.vg3-body { max-width: 900px; margin: 0 auto; padding: 4rem; }
.vg3-section { margin-bottom: 3.5rem; }
.vg3-section-label {
  font-size: 0.63rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--teal); font-weight: 500; margin-bottom: 0.5rem;
  display: flex; align-items: center; gap: 0.6rem;
}
.vg3-section-label::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg3-section h2 {
  font-family: 'Cormorant Garamond', serif; font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 300; line-height: 1.2; color: var(--ink); margin-bottom: 1.25rem;
}
.vg3-section h2 em { font-style: italic; color: var(--teal); }
.vg3-section p { font-size: 0.93rem; line-height: 1.9; color: var(--charcoal); font-weight: 300; margin-bottom: 1rem; }
.vg3-section p strong { color: var(--ink); font-weight: 500; }
.vg3-divider { border: none; border-top: 0.5px solid var(--border); margin: 3rem 0; }

/* CALLOUT */
.vg3-callout {
  background: var(--paper-dark); border-left: 3px solid var(--amber);
  padding: 1.25rem 1.5rem; margin: 1.5rem 0;
  font-size: 0.87rem; line-height: 1.8; color: var(--charcoal);
}
.vg3-callout strong { color: var(--amber); font-weight: 500; }
.vg3-callout.teal { border-color: var(--teal); }
.vg3-callout.teal strong { color: var(--teal); }

/* HOW IT WORKS - 4 PILLARS */
.vg3-how-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; margin: 1.5rem 0; }
.vg3-how-card { background: var(--paper); border: 0.5px solid var(--border-strong); padding: 1.75rem; position: relative; }
.vg3-how-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: var(--teal); }
.vg3-how-card .vg3-how-num { font-family: 'Cormorant Garamond', serif; font-size: 2.2rem; font-weight: 300; color: var(--border-strong); line-height: 1; margin-bottom: 0.5rem; letter-spacing: -0.03em; }
.vg3-how-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 400; color: var(--ink); margin-bottom: 0.5rem; }
.vg3-how-card p { font-size: 0.83rem; line-height: 1.75; color: var(--charcoal); font-weight: 300; }

/* MODEL CARDS */
.vg3-models-section { background: var(--paper-dark); padding: 4rem; }
.vg3-models-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg3-models-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg3-models-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--ink); margin-bottom: 2.5rem; }
.vg3-models-section > h2 em { font-style: italic; color: var(--teal); }
.vg3-model-list { display: flex; flex-direction: column; gap: 1.25rem; }
.vg3-model-card { background: var(--paper); border: 0.5px solid var(--border); display: grid; grid-template-columns: 220px 1fr; }
.vg3-model-left { padding: 1.75rem; border-right: 0.5px solid var(--border); position: relative; overflow: hidden; }
.vg3-model-left::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; }
.vg3-model-card:nth-child(1) .vg3-model-left::before { background: #10a37f; }
.vg3-model-card:nth-child(2) .vg3-model-left::before { background: #7c3aed; }
.vg3-model-card:nth-child(3) .vg3-model-left::before { background: #d97706; }
.vg3-model-card:nth-child(4) .vg3-model-left::before { background: #1a73e8; }
.vg3-model-card:nth-child(5) .vg3-model-left::before { background: #0668e1; }
.vg3-model-provider { font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.4rem; font-weight: 400; }
.vg3-model-name { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 400; color: var(--ink); line-height: 1.1; margin-bottom: 1rem; }
.vg3-ctx-badge {
  display: inline-block; font-family: 'DM Mono', monospace; font-size: 0.75rem;
  font-weight: 400; color: var(--teal); background: var(--teal-muted);
  padding: 0.3rem 0.75rem; letter-spacing: 0.04em; margin-bottom: 0.5rem;
}
.vg3-arch-label { font-size: 0.68rem; color: var(--muted); font-weight: 300; letter-spacing: 0.04em; }
.vg3-model-right { padding: 1.75rem; }
.vg3-model-right-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.vg3-model-col-head { font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); font-weight: 500; margin-bottom: 0.6rem; }
.vg3-model-col-head.strength { color: var(--teal); }
.vg3-model-col-head.challenge { color: var(--amber); }
.vg3-model-list-inner { list-style: none; display: flex; flex-direction: column; gap: 0.45rem; }
.vg3-model-list-inner li { font-size: 0.8rem; line-height: 1.6; color: var(--charcoal); font-weight: 300; padding-left: 1rem; position: relative; }
.vg3-model-list-inner li.s::before { content: '+'; position: absolute; left: 0; color: var(--teal); font-weight: 500; }
.vg3-model-list-inner li.c::before { content: '⚠'; position: absolute; left: 0; color: var(--amber); font-size: 0.65rem; top: 0.15rem; }
.vg3-use-cases { margin-top: 1.25rem; border-top: 0.5px solid var(--border); padding-top: 1rem; }
.vg3-use-case-label { font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.5rem; }
.vg3-use-case-pills { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.vg3-use-pill { font-size: 0.68rem; padding: 0.2rem 0.65rem; background: var(--paper-dark); border: 0.5px solid var(--border); color: var(--charcoal); letter-spacing: 0.04em; }

/* COMPARISON TABLE */
.vg3-table-wrap { overflow-x: auto; margin: 1.5rem 0; }
.vg3-table { width: 100%; border-collapse: collapse; font-size: 0.83rem; }
.vg3-table th { background: var(--ink); color: var(--paper); font-family: 'DM Sans', sans-serif; font-weight: 400; font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.75rem 1rem; text-align: left; }
.vg3-table td { padding: 0.75rem 1rem; border-bottom: 0.5px solid var(--border); color: var(--charcoal); vertical-align: top; line-height: 1.55; }
.vg3-table tr:nth-child(even) td { background: var(--paper-dark); }
.vg3-table td strong { color: var(--ink); font-weight: 500; }
.vg3-chip { display: inline-block; font-size: 0.65rem; letter-spacing: 0.06em; padding: 0.2rem 0.55rem; border-radius: 2px; font-weight: 400; }
.vg3-chip-green { background: var(--teal-muted); color: var(--teal); }
.vg3-chip-amber { background: var(--amber-muted); color: var(--amber); }
.vg3-chip-gray  { background: var(--paper-dark); color: var(--muted); border: 0.5px solid var(--border); }

/* CONSIDERATIONS */
.vg3-consider-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin: 1.5rem 0; }
.vg3-consider-card { padding: 1.75rem; border: 0.5px solid var(--border-strong); background: var(--paper); position: relative; }
.vg3-consider-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 3px; }
.vg3-consider-card:nth-child(1)::before { background: var(--teal); }
.vg3-consider-card:nth-child(2)::before { background: var(--amber); }
.vg3-consider-card:nth-child(3)::before { background: var(--muted); }
.vg3-consider-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 400; color: var(--ink); margin-bottom: 0.5rem; }
.vg3-consider-card p { font-size: 0.82rem; line-height: 1.7; color: var(--charcoal); font-weight: 300; }

/* INTERVIEW */
.vg3-interview-section { background: var(--ink); padding: 4rem; }
.vg3-interview-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg3-interview-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--amber-light); }
.vg3-interview-section h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--paper); margin-bottom: 2.5rem; }
.vg3-interview-section h2 em { font-style: italic; color: var(--amber-light); }
.vg3-qa-list { display: flex; flex-direction: column; }
.vg3-qa-item { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; padding: 1.5rem 0; border-top: 0.5px solid rgba(247,244,239,0.1); align-items: start; }
.vg3-qa-item:last-child { border-bottom: 0.5px solid rgba(247,244,239,0.1); }
.vg3-qa-q { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 400; color: var(--paper); line-height: 1.4; }
.vg3-q-badge { font-family: 'DM Mono', monospace; font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--teal); color: var(--paper); padding: 0.15rem 0.5rem; margin-bottom: 0.5rem; display: inline-block; }
.vg3-qa-a { font-size: 0.83rem; line-height: 1.8; color: rgba(247,244,239,0.65); font-weight: 300; }
.vg3-qa-a strong { color: var(--amber-light); font-weight: 400; }
.vg3-qa-a code { font-family: 'DM Mono', monospace; font-size: 0.77rem; background: rgba(247,244,239,0.08); padding: 0.1rem 0.35rem; color: var(--paper); }
.vg3-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.vg3-pill { font-size: 0.67rem; letter-spacing: 0.06em; padding: 0.25rem 0.75rem; border: 0.5px solid rgba(247,244,239,0.15); color: rgba(247,244,239,0.5); }
.vg3-pill.t { border-color: var(--teal-light); color: var(--teal-light); }
.vg3-pill.a { border-color: var(--amber-light); color: var(--amber-light); }

/* FOOTER */
.vg3-footer { background: var(--charcoal); padding: 3rem 4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; }
.vg3-footer p { font-size: 0.82rem; color: rgba(247,244,239,0.35); font-weight: 300; }
.vg3-footer p strong { color: rgba(247,244,239,0.65); font-weight: 400; }
.vg3-back-btn { display: inline-block; padding: 0.65rem 1.75rem; background: var(--teal); color: var(--paper); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 400; }

/* REVEAL */
.vg3-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
.vg3-reveal.vg3-vis { opacity: 1; transform: translateY(0); }
.vg3-d1 { transition-delay: 0.1s; } .vg3-d2 { transition-delay: 0.2s; } .vg3-d3 { transition-delay: 0.3s; }
</style>

<div class="vg3">

<!-- HERO -->
<div class="vg3-hero">
  <div class="vg3-hero-inner">
    <p class="vg3-eyebrow">GenAI Mastery Series · Long Context LLMs · Deep Dive</p>
    <h1>Long Context LLMs — How They Work, How They Compare, and <em>When to Use Which</em></h1>
    <div class="vg3-meta-row">
      <p class="vg3-meta">Models Covered<span>GPT-4 · Claude 2 · Mistral · PaLM 2 · LLaMA 2</span></p>
      <p class="vg3-meta">Focus<span>Context Length · Architecture · Use Cases</span></p>
    </div>
  </div>
</div>

<!-- STAT BAND -->
<div class="vg3-stat-band">
  <div class="vg3-stat-item vg3-reveal"><div class="vg3-stat-n">128k</div><div class="vg3-stat-l">GPT-4 max tokens</div></div>
  <div class="vg3-stat-item vg3-reveal vg3-d1"><div class="vg3-stat-n">100k</div><div class="vg3-stat-l">Claude 2 max tokens</div></div>
  <div class="vg3-stat-item vg3-reveal vg3-d2"><div class="vg3-stat-n">32k</div><div class="vg3-stat-l">PaLM 2 max tokens</div></div>
  <div class="vg3-stat-item vg3-reveal vg3-d3"><div class="vg3-stat-n">4k</div><div class="vg3-stat-l">LLaMA 2 base tokens</div></div>
</div>

<!-- INTRO BAND -->
<div class="vg3-intro">
  <p>A <strong>long context LLM</strong> can process and remember extended pieces of text or conversation history — maintaining continuity and coherence over longer interactions. This makes them particularly powerful for tasks that require understanding context across documents, extended dialogues, or complex multi-step reasoning.</p>
</div>

<!-- BODY -->
<div class="vg3-body">

  <!-- HOW IT WORKS -->
  <div class="vg3-section vg3-reveal">
    <p class="vg3-section-label">Fundamentals</p>
    <h2>How long context LLMs <em>actually work</em></h2>
    <p>Four core capabilities define what makes a model &#8220;long context&#8221; — and why it matters for real-world applications.</p>
    <div class="vg3-how-grid">
      <div class="vg3-how-card vg3-reveal vg3-d1">
        <div class="vg3-how-num">01</div>
        <h3>Extended Memory</h3>
        <p>These models hold a larger amount of text in working memory, allowing them to refer back to earlier parts of a conversation or document. Critical for maintaining context in complex, multi-turn discussions.</p>
      </div>
      <div class="vg3-how-card vg3-reveal vg3-d2">
        <div class="vg3-how-num">02</div>
        <h3>Context Awareness</h3>
        <p>The model uses extended context to provide more accurate and relevant responses, understanding nuances and how the conversation shifts over time — not just the last few exchanges.</p>
      </div>
      <div class="vg3-how-card vg3-reveal vg3-d1">
        <div class="vg3-how-num">03</div>
        <h3>Coherence</h3>
        <p>Long context LLMs strive to maintain logical coherence across many interactions, avoiding the contradictions and misunderstandings that arise in shorter-context models when earlier context is lost.</p>
      </div>
      <div class="vg3-how-card vg3-reveal vg3-d2">
        <div class="vg3-how-num">04</div>
        <h3>Broad Applications</h3>
        <p>Customer support, storytelling, technical support, legal document review, code review across large codebases — any scenario where understanding and maintaining context over time is critical.</p>
      </div>
    </div>
  </div>

  <hr class="vg3-divider">

  <!-- KEY CONSIDERATIONS -->
  <div class="vg3-section vg3-reveal">
    <p class="vg3-section-label">What Matters</p>
    <h2>Three factors that <em>define performance</em></h2>
    <div class="vg3-consider-grid">
      <div class="vg3-consider-card vg3-reveal vg3-d1">
        <h3>Context Length</h3>
        <p>Longer context allows models to maintain coherence across larger chunks of text. But more tokens in context means more computational resources — there is always a trade-off between window size and speed.</p>
      </div>
      <div class="vg3-consider-card vg3-reveal vg3-d2">
        <h3>Efficiency</h3>
        <p>Processing long contexts without a significant performance drop is crucial, especially for real-time applications. Architecture innovations like sliding window attention and sparse transformers directly address this.</p>
      </div>
      <div class="vg3-consider-card vg3-reveal vg3-d3">
        <h3>Use Case Fit</h3>
        <p>Each model has specific strengths. Whether you need creative writing, technical documentation, ethical guardrails, multimodal capabilities, or open-source flexibility — the right model depends on the task.</p>
      </div>
    </div>
  </div>

</div>

<!-- MODEL DEEP DIVES -->
<div class="vg3-models-section">
  <p class="vg3-models-eyebrow">Model Comparison</p>
  <h2>Five leading long context <em>LLMs compared</em></h2>
  <div class="vg3-model-list">

    <!-- GPT-4 -->
    <div class="vg3-model-card vg3-reveal">
      <div class="vg3-model-left">
        <p class="vg3-model-provider">OpenAI</p>
        <p class="vg3-model-name">GPT-4</p>
        <span class="vg3-ctx-badge">128k tokens</span>
        <p class="vg3-arch-label">Transformer · Proprietary</p>
      </div>
      <div class="vg3-model-right">
        <div class="vg3-model-right-grid">
          <div>
            <p class="vg3-model-col-head strength">Strengths</p>
            <ul class="vg3-model-list-inner">
              <li class="s">Excellent at complex, coherent long-form text</li>
              <li class="s">Strong context retention across long conversations</li>
              <li class="s">Widely applicable — writing, coding, research</li>
              <li class="s">Largest ecosystem and third-party integrations</li>
            </ul>
          </div>
          <div>
            <p class="vg3-model-col-head challenge">Challenges</p>
            <ul class="vg3-model-list-inner">
              <li class="c">Computationally intensive</li>
              <li class="c">Potential latency on very long inputs</li>
              <li class="c">Proprietary — no fine-tuning access</li>
            </ul>
          </div>
        </div>
        <div class="vg3-use-cases">
          <p class="vg3-use-case-label">Best Use Cases</p>
          <div class="vg3-use-case-pills">
            <span class="vg3-use-pill">Writing Assistants</span>
            <span class="vg3-use-pill">Dialogue Systems</span>
            <span class="vg3-use-pill">Long Doc Summarization</span>
            <span class="vg3-use-pill">Complex Automation</span>
          </div>
        </div>
      </div>
    </div>

    <!-- Claude 2 -->
    <div class="vg3-model-card vg3-reveal vg3-d1">
      <div class="vg3-model-left">
        <p class="vg3-model-provider">Anthropic</p>
        <p class="vg3-model-name">Claude 2</p>
        <span class="vg3-ctx-badge">100k tokens</span>
        <p class="vg3-arch-label">Transformer · Safety-optimized</p>
      </div>
      <div class="vg3-model-right">
        <div class="vg3-model-right-grid">
          <div>
            <p class="vg3-model-col-head strength">Strengths</p>
            <ul class="vg3-model-list-inner">
              <li class="s">Designed for ethical use and AI alignment</li>
              <li class="s">Coherent context over extended discussions</li>
              <li class="s">Strong on sensitive, high-stakes interactions</li>
              <li class="s">Excellent at processing entire documents at once</li>
            </ul>
          </div>
          <div>
            <p class="vg3-model-col-head challenge">Challenges</p>
            <ul class="vg3-model-list-inner">
              <li class="c">Less widely tested than GPT-4 at time of release</li>
              <li class="c">Can be more conservative on edge cases</li>
            </ul>
          </div>
        </div>
        <div class="vg3-use-cases">
          <p class="vg3-use-case-label">Best Use Cases</p>
          <div class="vg3-use-case-pills">
            <span class="vg3-use-pill">Conversational AI</span>
            <span class="vg3-use-pill">Content Moderation</span>
            <span class="vg3-use-pill">Legal / Compliance</span>
            <span class="vg3-use-pill">Summarization</span>
          </div>
        </div>
      </div>
    </div>

    <!-- Mistral -->
    <div class="vg3-model-card vg3-reveal">
      <div class="vg3-model-left">
        <p class="vg3-model-provider">Mistral AI</p>
        <p class="vg3-model-name">Mistral</p>
        <span class="vg3-ctx-badge">Extended (varies)</span>
        <p class="vg3-arch-label">Transformer · Efficient architecture</p>
      </div>
      <div class="vg3-model-right">
        <div class="vg3-model-right-grid">
          <div>
            <p class="vg3-model-col-head strength">Strengths</p>
            <ul class="vg3-model-list-inner">
              <li class="s">Efficient long context with reduced compute overhead</li>
              <li class="s">Strong long-form content generation</li>
              <li class="s">Sliding window attention — better memory use</li>
              <li class="s">Open weights available for self-hosting</li>
            </ul>
          </div>
          <div>
            <p class="vg3-model-col-head challenge">Challenges</p>
            <ul class="vg3-model-list-inner">
              <li class="c">Newer entrant — still gathering real-world benchmarks</li>
              <li class="c">Context length varies by variant</li>
            </ul>
          </div>
        </div>
        <div class="vg3-use-cases">
          <p class="vg3-use-case-label">Best Use Cases</p>
          <div class="vg3-use-case-pills">
            <span class="vg3-use-pill">Narrative Generation</span>
            <span class="vg3-use-pill">Technical Docs</span>
            <span class="vg3-use-pill">Research Synthesis</span>
            <span class="vg3-use-pill">Self-hosted Apps</span>
          </div>
        </div>
      </div>
    </div>

    <!-- PaLM 2 -->
    <div class="vg3-model-card vg3-reveal vg3-d1">
      <div class="vg3-model-left">
        <p class="vg3-model-provider">Google</p>
        <p class="vg3-model-name">PaLM 2</p>
        <span class="vg3-ctx-badge">~32k tokens</span>
        <p class="vg3-arch-label">Pathways Architecture · Multimodal</p>
      </div>
      <div class="vg3-model-right">
        <div class="vg3-model-right-grid">
          <div>
            <p class="vg3-model-col-head strength">Strengths</p>
            <ul class="vg3-model-list-inner">
              <li class="s">Strong multilingual and multimodal performance</li>
              <li class="s">Deep integration with Google Search and Knowledge Graph</li>
              <li class="s">Excellent at translation and cross-lingual tasks</li>
              <li class="s">Contextually rich long-form generation</li>
            </ul>
          </div>
          <div>
            <p class="vg3-model-col-head challenge">Challenges</p>
            <ul class="vg3-model-list-inner">
              <li class="c">Smaller context window than GPT-4 / Claude 2</li>
              <li class="c">Balancing multimodal vs long-context performance</li>
            </ul>
          </div>
        </div>
        <div class="vg3-use-cases">
          <p class="vg3-use-case-label">Best Use Cases</p>
          <div class="vg3-use-case-pills">
            <span class="vg3-use-pill">Multilingual Tasks</span>
            <span class="vg3-use-pill">Translation</span>
            <span class="vg3-use-pill">Multimodal Apps</span>
            <span class="vg3-use-pill">Research Tools</span>
          </div>
        </div>
      </div>
    </div>

    <!-- LLaMA 2 -->
    <div class="vg3-model-card vg3-reveal">
      <div class="vg3-model-left">
        <p class="vg3-model-provider">Meta</p>
        <p class="vg3-model-name">LLaMA 2</p>
        <span class="vg3-ctx-badge">4k tokens (base)</span>
        <p class="vg3-arch-label">Transformer · Open-source</p>
      </div>
      <div class="vg3-model-right">
        <div class="vg3-model-right-grid">
          <div>
            <p class="vg3-model-col-head strength">Strengths</p>
            <ul class="vg3-model-list-inner">
              <li class="s">Fully open-source and customizable</li>
              <li class="s">Efficient, runs on modest hardware</li>
              <li class="s">Strong research and academic community</li>
              <li class="s">Extensible — context length expandable via fine-tuning</li>
            </ul>
          </div>
          <div>
            <p class="vg3-model-col-head challenge">Challenges</p>
            <ul class="vg3-model-list-inner">
              <li class="c">Limited base context vs proprietary models</li>
              <li class="c">Requires significant setup for production use</li>
            </ul>
          </div>
        </div>
        <div class="vg3-use-cases">
          <p class="vg3-use-case-label">Best Use Cases</p>
          <div class="vg3-use-case-pills">
            <span class="vg3-use-pill">Research</span>
            <span class="vg3-use-pill">Open-source Projects</span>
            <span class="vg3-use-pill">Academic Work</span>
            <span class="vg3-use-pill">Custom Fine-tuning</span>
          </div>
        </div>
      </div>
    </div>

  </div>
</div>

<!-- COMPARISON TABLE -->
<div class="vg3-body">
  <div class="vg3-section vg3-reveal">
    <p class="vg3-section-label">At a Glance</p>
    <h2>Side-by-side <em>quick reference</em></h2>
    <div class="vg3-table-wrap">
      <table class="vg3-table">
        <thead><tr><th>Model</th><th>Provider</th><th>Max Context</th><th>Open Source</th><th>Key Edge</th><th>Main Constraint</th></tr></thead>
        <tbody>
          <tr>
            <td><strong>GPT-4</strong></td>
            <td>OpenAI</td>
            <td><span class="vg3-chip vg3-chip-green">128k tokens</span></td>
            <td><span class="vg3-chip vg3-chip-gray">No</span></td>
            <td>Best overall coherence, ecosystem</td>
            <td>Compute cost, latency</td>
          </tr>
          <tr>
            <td><strong>Claude 2</strong></td>
            <td>Anthropic</td>
            <td><span class="vg3-chip vg3-chip-green">100k tokens</span></td>
            <td><span class="vg3-chip vg3-chip-gray">No</span></td>
            <td>Safety, alignment, ethical use</td>
            <td>Less benchmark data vs GPT-4</td>
          </tr>
          <tr>
            <td><strong>Mistral</strong></td>
            <td>Mistral AI</td>
            <td><span class="vg3-chip vg3-chip-amber">Varies</span></td>
            <td><span class="vg3-chip vg3-chip-green">Yes (weights)</span></td>
            <td>Efficient compute, self-hostable</td>
            <td>Newer — fewer benchmarks</td>
          </tr>
          <tr>
            <td><strong>PaLM 2</strong></td>
            <td>Google</td>
            <td><span class="vg3-chip vg3-chip-amber">~32k tokens</span></td>
            <td><span class="vg3-chip vg3-chip-gray">No</span></td>
            <td>Multilingual, multimodal, Search integration</td>
            <td>Smaller context window</td>
          </tr>
          <tr>
            <td><strong>LLaMA 2</strong></td>
            <td>Meta</td>
            <td><span class="vg3-chip vg3-chip-amber">4k base</span></td>
            <td><span class="vg3-chip vg3-chip-green">Yes (fully open)</span></td>
            <td>Customizable, runs on consumer hardware</td>
            <td>Shortest base context</td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="vg3-callout">
      <strong>Bottom Line:</strong> GPT-4 leads for raw context management. Claude 2 wins where safety and ethical handling matter. Mistral and LLaMA 2 are the open-source options for teams that need full control. PaLM 2 is the pick for multilingual and multimodal workloads.
    </div>
  </div>
</div>

<!-- INTERVIEW CHEAT SHEET -->
<div class="vg3-interview-section">
  <p class="vg3-interview-eyebrow">Interview Prep</p>
  <h2>Cheat sheet — <em>quick definitions to remember</em></h2>
  <div class="vg3-qa-list">

    <div class="vg3-qa-item vg3-reveal">
      <div class="vg3-qa-q"><span class="vg3-q-badge">Define</span><br>What is a long context LLM?</div>
      <div class="vg3-qa-a"><strong>A model with a large token window</strong> — the amount of text it can hold in memory and reason over at once. Longer windows allow maintaining coherence over extended documents or multi-turn conversations without losing earlier context.
        <div class="vg3-pills"><span class="vg3-pill t">Token window = memory</span><span class="vg3-pill">Longer = more coherent</span><span class="vg3-pill a">Tradeoff: compute cost</span></div>
      </div>
    </div>

    <div class="vg3-qa-item vg3-reveal vg3-d1">
      <div class="vg3-qa-q"><span class="vg3-q-badge">Explain</span><br>What is a &#8220;token&#8221; and why does window size matter?</div>
      <div class="vg3-qa-a">A <strong>token</strong> is roughly ¾ of a word (~4 characters). 128k tokens ≈ ~100,000 words ≈ a full novel. Window size determines how much of a document or conversation the model can &#8220;see&#8221; at once. Once context overflows the window, earlier information is lost.
        <div class="vg3-pills"><span class="vg3-pill t">~4 chars per token</span><span class="vg3-pill">128k ≈ 100k words</span><span class="vg3-pill a">Overflow = forgetting</span></div>
      </div>
    </div>

    <div class="vg3-qa-item vg3-reveal">
      <div class="vg3-qa-q"><span class="vg3-q-badge">Compare</span><br>GPT-4 vs Claude 2 — when would you pick each?</div>
      <div class="vg3-qa-a">Pick <strong>GPT-4</strong> for breadth, ecosystem integrations, and the widest context window (128k). Pick <strong>Claude 2</strong> when safety, ethical handling, or processing very large documents in one shot matters (100k tokens, strong alignment focus).
        <div class="vg3-pills"><span class="vg3-pill t">GPT-4 = breadth + ecosystem</span><span class="vg3-pill a">Claude 2 = safety + alignment</span></div>
      </div>
    </div>

    <div class="vg3-qa-item vg3-reveal vg3-d1">
      <div class="vg3-qa-q"><span class="vg3-q-badge">Gotcha</span><br>Why doesn&#8217;t bigger context always mean better results?</div>
      <div class="vg3-qa-a">The <strong>&#8220;lost in the middle&#8221; problem</strong> — models tend to attend best to the beginning and end of a long context, with degraded recall in the middle. More tokens also means <strong>quadratic compute cost</strong> in standard attention, increasing latency significantly.
        <div class="vg3-pills"><span class="vg3-pill a">Lost in the middle</span><span class="vg3-pill a">Quadratic attention cost</span><span class="vg3-pill">Latency tradeoff</span></div>
      </div>
    </div>

    <div class="vg3-qa-item vg3-reveal">
      <div class="vg3-qa-q"><span class="vg3-q-badge">Use Case</span><br>When would you use LLaMA 2 over a proprietary model?</div>
      <div class="vg3-qa-a">When you need <strong>data privacy</strong> (no external API calls), <strong>full customization</strong> (fine-tune on your own data), <strong>cost control</strong> (no per-token pricing), or you&#8217;re in a <strong>regulated industry</strong> that prohibits sending data to third-party vendors.
        <div class="vg3-pills"><span class="vg3-pill t">Data privacy</span><span class="vg3-pill t">Fine-tuning control</span><span class="vg3-pill t">No API cost</span><span class="vg3-pill a">Regulated industries</span></div>
      </div>
    </div>

    <div class="vg3-qa-item vg3-reveal vg3-d1">
      <div class="vg3-qa-q"><span class="vg3-q-badge">Define</span><br>What is RAG and how does it relate to context length?</div>
      <div class="vg3-qa-a"><strong>Retrieval-Augmented Generation</strong> — instead of stuffing an entire knowledge base into the context window, you retrieve only the relevant chunks and inject them. RAG is often a better alternative to brute-force long context: cheaper, faster, and avoids the &#8220;lost in the middle&#8221; problem.
        <div class="vg3-pills"><span class="vg3-pill t">Retrieve → Inject → Generate</span><span class="vg3-pill">Alternative to long context</span><span class="vg3-pill a">Cheaper at scale</span></div>
      </div>
    </div>

    <div class="vg3-qa-item vg3-reveal">
      <div class="vg3-qa-q"><span class="vg3-q-badge">Name</span><br>Three applications where long context LLMs are essential</div>
      <div class="vg3-qa-a"><strong>1. Legal / contract review</strong> — entire agreements must be held in context simultaneously. <strong>2. Codebase analysis</strong> — understanding how functions across many files interact. <strong>3. Medical record summarization</strong> — patient history spanning hundreds of pages must be synthesized in one pass.
        <div class="vg3-pills"><span class="vg3-pill t">Legal review</span><span class="vg3-pill t">Code analysis</span><span class="vg3-pill t">Medical records</span><span class="vg3-pill">Long doc summarization</span></div>
      </div>
    </div>

  </div>
</div>

<!-- FOOTER -->
<div class="vg3-footer">
  <p><strong>GenAI Mastery Series</strong> — vijay-gokarn.com · Vijay Gokarn</p>
  <a href="https://vijay-gokarn.com" class="vg3-back-btn">Back to Blog ↗</a>
</div>

</div><!-- /vg3 -->

<script>
(function(){
  var obs = new IntersectionObserver(function(e){
    e.forEach(function(x){ if(x.isIntersecting) x.target.classList.add('vg3-vis'); });
  }, {threshold: 0.08});
  document.querySelectorAll('.vg3-reveal').forEach(function(el){ obs.observe(el); });
})();
</script>
<p>The post <a href="https://vijay-gokarn.com/long-context-llm-comparison/">Long Context LLM Comparison</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">192</post-id>	</item>
		<item>
		<title>Long Context LLM&#8217;s vs RAG</title>
		<link>https://vijay-gokarn.com/llms-large-language-context-vs-rag/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=llms-large-language-context-vs-rag</link>
		
		<dc:creator><![CDATA[Vijay Gokarn]]></dc:creator>
		<pubDate>Mon, 19 Aug 2024 11:47:57 +0000</pubDate>
				<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[databricks]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[generative-ai]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[long-context-llm]]></category>
		<category><![CDATA[RAG]]></category>
		<guid isPermaLink="false">https://vijay-gokarn.com/?p=168</guid>

					<description><![CDATA[<p>Retrieval-Augmented Generation. It is a method that combines the strengths of retrieval-based models and generative models to improve the performance and accuracy of AI systems, particularly in natural language processing tasks. How RAG Works: Applications: RAG models help in grounding the limitations of generative AI and removing the hallucinations from the responses. Why We Needed [&#8230;]</p>
<p>The post <a href="https://vijay-gokarn.com/llms-large-language-context-vs-rag/">Long Context LLM&#8217;s vs RAG</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" width="1365" height="768" loading="lazy" src="https://i0.wp.com/vijay-gokarn.com/wp-content/uploads/2024/08/image-2.png?fit=1024%2C576&amp;ssl=1" alt="" class="wp-image-270" srcset="https://i0.wp.com/vijay-gokarn.com/wp-content/uploads/2024/08/image-2.png?w=1365&amp;ssl=1 1365w, https://i0.wp.com/vijay-gokarn.com/wp-content/uploads/2024/08/image-2.png?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/vijay-gokarn.com/wp-content/uploads/2024/08/image-2.png?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/vijay-gokarn.com/wp-content/uploads/2024/08/image-2.png?resize=768%2C432&amp;ssl=1 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>



<p class=""><strong>Retrieval-Augmented Generation</strong>. It is a method that combines the strengths of retrieval-based models and generative models to improve the performance and accuracy of AI systems, particularly in natural language processing tasks.</p>



<h3 class="wp-block-heading">How RAG Works:</h3>



<ol class="wp-block-list">
<li class=""><strong>Retrieval Step</strong>: The system first retrieves relevant documents or pieces of information from a large corpus based on the input query. This retrieval process helps to bring in contextually relevant information that the generative model might need to generate a more accurate response.</li>



<li class=""><strong>Generation Step</strong>: After retrieving the relevant information, the generative model (often a large language model like GPT) uses this information as a basis to generate a coherent and contextually appropriate response.</li>
</ol>



<p class=""></p>



<h3 class="wp-block-heading">Applications:</h3>



<ul class="wp-block-list">
<li class=""><strong>Question Answering</strong>: RAG models can be used to answer questions by retrieving relevant text from a knowledge base and then generating an answer based on that information.</li>



<li class=""><strong>Chatbots</strong>: In conversational AI, RAG models help to provide more accurate and context-aware responses by pulling in relevant information before generating a reply.</li>



<li class=""><strong>Content Creation</strong>: For generating content such as articles, reports, or summaries, RAG models can retrieve relevant data and then generate content that integrates this information effectively.</li>
</ul>



<p class="">RAG models help in grounding the limitations of generative AI and removing the hallucinations from the responses.</p>



<h3 class=" wp-block-heading">Why We Needed RAG</h3>



<p class="">Before the advent of long context LLMs, traditional language models had severe limitations in processing and understanding large amounts of text. This constraint hindered their ability to perform tasks like:</p>



<ul class="wp-block-list">
<li class="">Summarizing lengthy documents</li>



<li class="">Answering complex questions requiring extensive knowledge</li>



<li class="">Generating text based on large datasets</li>
</ul>



<p class=""></p>



<p class="">RAG emerged as a solution to this problem. By retrieving relevant information from external knowledge bases, RAG could effectively expand the model&#8217;s access to information, improving its performance on these tasks.</p>



<h3 class=" wp-block-heading">Long Context LLMs New Kid on the block</h3>



<p class="">With the development of long context LLMs, the landscape has changed significantly. These models can now process and understand much larger amounts of text directly, reducing the reliance on external knowledge sources.</p>



<h3 class="wp-block-heading">Long Context LLMs</h3>



<p class=""></p>



<ul class="wp-block-list">
<li class=""><strong>Core concept:</strong> Directly process and understand a larger amount of text within a single input.</li>



<li class=""><strong>Strengths:</strong>
<ul class="wp-block-list">
<li class="">Can capture complex relationships within the text. &nbsp; </li>



<li class="">Potentially better at understanding nuances and context.</li>
</ul>
</li>



<li class=""><strong>Weaknesses:</strong>
<ul class="wp-block-list">
<li class="">Limited by the maximum context window size.</li>



<li class="">Can be computationally expensive for very long inputs</li>
</ul>
</li>
</ul>



<p class=""></p>



<p class=""><strong>This has led to a debate about whether long context LLMs will render RAG obsolete.</strong> Here is <a href="https://vijay-gokarn.com/long-context-llm-comparison/">comparison of long context LLM by major players</a></p>



<p class=""></p>



<h3 class=" wp-block-heading">The Reality: A Complex Interplay</h3>



<p class="">While long context LLMs are impressive, they are not a panacea. Here&#8217;s why:</p>



<ul class="wp-block-list">
<li class=""><strong>Computational Costs:</strong> Processing extremely long contexts is computationally expensive and time-consuming.</li>



<li class=""><strong>Attention Limitations:</strong> Attention mechanisms, essential for long context models, can still struggle with capturing complex relationships within massive amounts of text.</li>



<li class=""><strong>Information Overload:</strong> Feeding an LLM with an overwhelming amount of information can lead to dilution of focus and potential hallucinations.</li>
</ul>



<p class=""></p>



<p class=""><strong>Therefore, RAG is not entirely obsolete.</strong> It still offers several advantages:</p>



<ul class="wp-block-list">
<li class=""><strong>Efficiency:</strong> RAG can be more efficient in retrieving and processing specific information.</li>



<li class=""><strong>Scalability:</strong> RAG can handle virtually unlimited amounts of data.</li>



<li class=""><strong>Focus:</strong> By providing the LLM with targeted information, RAG can improve accuracy and reduce hallucinations.</li>
</ul>



<p class=""></p>



<p class=""><strong>In conclusion, the relationship between long context LLMs and RAG is complex and evolving.</strong> The optimal approach often involves a hybrid strategy, combining the strengths of both technologies. The specific choice depends on the task, the available resources, and the desired level of performance.</p>
<p>The post <a href="https://vijay-gokarn.com/llms-large-language-context-vs-rag/">Long Context LLM&#8217;s vs RAG</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">168</post-id>	</item>
		<item>
		<title>AWS Sagemaker Jumpstart and AWS Bedrock Choosing the Right AI Tool for Your Needs</title>
		<link>https://vijay-gokarn.com/aws-sagemaker-jumpstart-and-aws-bedrock-choosing-the-right-ai-tool-for-your-needs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=aws-sagemaker-jumpstart-and-aws-bedrock-choosing-the-right-ai-tool-for-your-needs</link>
		
		<dc:creator><![CDATA[Vijay Gokarn]]></dc:creator>
		<pubDate>Thu, 01 Aug 2024 11:19:23 +0000</pubDate>
				<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[databricks]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[generative-ai]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://vijay-gokarn.com/?p=160</guid>

					<description><![CDATA[<p>AWS · Cloud AI · Service Comparison SageMaker JumpStart vs Amazon Bedrock — Choosing the Right AWS AI Tool ServicesSageMaker JumpStart · Amazon Bedrock FocusUse Cases · Architecture · Decision Guide StackAWS Cloud AI SageMaker JumpStart The Swiss Army Knife of Machine Learning vs Amazon Bedrock The Generative AI Powerhouse AWS offers two powerful tools [&#8230;]</p>
<p>The post <a href="https://vijay-gokarn.com/aws-sagemaker-jumpstart-and-aws-bedrock-choosing-the-right-ai-tool-for-your-needs/">AWS Sagemaker Jumpstart and AWS Bedrock Choosing the Right AI Tool for Your Needs</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;family=DM+Mono:wght@400&#038;display=swap" rel="stylesheet">

<style>
.vg5 {
  --ink: #0e0e0e; --paper: #f7f4ef; --paper-dark: #ede9e1;
  --teal: #0f6e56; --teal-light: #1d9e75; --teal-muted: #e1f5ee;
  --amber: #ba7517; --amber-light: #fac775; --amber-muted: #faeeda;
  --charcoal: #2c2c2a; --muted: #888780;
  --border: rgba(14,14,14,0.12); --border-strong: rgba(14,14,14,0.25);
  --aws-orange: #ff9900; --aws-blue: #232f3e;
  font-family: 'DM Sans', sans-serif; font-weight: 300;
  color: var(--ink); background: var(--paper); line-height: 1.75; font-size: 16px; overflow-x: hidden;
}
.vg5 *, .vg5 *::before, .vg5 *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* HERO */
.vg5-hero { background: var(--aws-blue); padding: 5rem 4rem 4rem; position: relative; overflow: hidden; }
.vg5-hero::before {
  content: 'AWS'; font-family: 'Cormorant Garamond', serif; font-size: 16rem;
  font-weight: 300; color: rgba(255,255,255,0.03); position: absolute;
  right: -1rem; bottom: -3rem; line-height: 1; pointer-events: none; letter-spacing: -0.05em;
}
.vg5-hero-inner { position: relative; z-index: 1; max-width: 900px; }
.vg5-eyebrow {
  font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--amber-light); font-weight: 500; margin-bottom: 1.25rem;
  display: flex; align-items: center; gap: 0.75rem;
}
.vg5-eyebrow::before { content: ''; display: inline-block; width: 1.5rem; height: 1px; background: var(--amber-light); }
.vg5-hero h1 {
  font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 300; line-height: 1.1; color: var(--paper); letter-spacing: -0.02em;
  margin-bottom: 1.5rem; max-width: 26ch;
}
.vg5-hero h1 em { font-style: italic; color: var(--amber-light); }
.vg5-meta-row { display: flex; gap: 2rem; flex-wrap: wrap; }
.vg5-meta { font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.35); }
.vg5-meta span { color: rgba(247,244,239,0.7); margin-left: 0.4rem; }

/* VS BAND */
.vg5-vs-band {
  background: var(--aws-orange); display: grid; grid-template-columns: 1fr 60px 1fr;
  align-items: center;
}
.vg5-vs-left { padding: 1.5rem 2.5rem; background: rgba(0,0,0,0.1); }
.vg5-vs-right { padding: 1.5rem 2.5rem; background: rgba(0,0,0,0.2); }
.vg5-vs-mid { text-align: center; padding: 1.5rem 0; }
.vg5-vs-mid span { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; color: var(--aws-blue); }
.vg5-vs-name { font-size: 0.65rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(35,47,62,0.65); margin-bottom: 0.25rem; }
.vg5-vs-title { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 400; color: var(--aws-blue); line-height: 1.2; }

/* INTRO */
.vg5-intro { background: var(--teal-muted); padding: 2.5rem 4rem; border-left: 4px solid var(--teal); }
.vg5-intro p { font-size: 1.05rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; max-width: 80ch; }
.vg5-intro strong { color: var(--teal); font-weight: 500; }

/* BODY */
.vg5-body { max-width: 900px; margin: 0 auto; padding: 4rem; }
.vg5-section { margin-bottom: 3.5rem; }
.vg5-section-label {
  font-size: 0.63rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--teal); font-weight: 500; margin-bottom: 0.5rem;
  display: flex; align-items: center; gap: 0.6rem;
}
.vg5-section-label::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg5-section h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 300; line-height: 1.2; color: var(--ink); margin-bottom: 1.25rem; }
.vg5-section h2 em { font-style: italic; color: var(--teal); }
.vg5-section p { font-size: 0.93rem; line-height: 1.9; color: var(--charcoal); font-weight: 300; margin-bottom: 1rem; }
.vg5-section p strong { color: var(--ink); font-weight: 500; }
.vg5-divider { border: none; border-top: 0.5px solid var(--border); margin: 3rem 0; }

/* CALLOUT */
.vg5-callout { background: var(--paper-dark); border-left: 3px solid var(--amber); padding: 1.25rem 1.5rem; margin: 1.5rem 0; font-size: 0.87rem; line-height: 1.8; color: var(--charcoal); }
.vg5-callout strong { color: var(--amber); font-weight: 500; }
.vg5-callout.teal { border-color: var(--teal); }
.vg5-callout.teal strong { color: var(--teal); }

/* SERVICE DEEP DIVE CARDS */
.vg5-service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin: 2rem 0; }
.vg5-service-card { border: 0.5px solid var(--border-strong); padding: 0; overflow: hidden; }
.vg5-service-header { padding: 1.5rem; }
.vg5-service-card.jumpstart .vg5-service-header { background: var(--aws-blue); }
.vg5-service-card.bedrock .vg5-service-header { background: var(--ink); }
.vg5-service-nickname { font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(247,244,239,0.4); margin-bottom: 0.3rem; }
.vg5-service-name { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 300; color: var(--paper); line-height: 1.2; margin-bottom: 0.75rem; }
.vg5-service-card.jumpstart .vg5-service-name em { color: var(--amber-light); font-style: italic; }
.vg5-service-card.bedrock .vg5-service-name em { color: var(--teal-light); font-style: italic; }
.vg5-service-tagline { font-size: 0.78rem; color: rgba(247,244,239,0.6); font-weight: 300; line-height: 1.5; }
.vg5-service-body { padding: 1.5rem; background: var(--paper); }
.vg5-attr-list { display: flex; flex-direction: column; gap: 0; }
.vg5-attr-item { padding: 0.85rem 0; border-bottom: 0.5px solid var(--border); display: grid; grid-template-columns: 90px 1fr; gap: 0.75rem; align-items: start; }
.vg5-attr-item:last-child { border-bottom: none; }
.vg5-attr-key { font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-weight: 400; padding-top: 0.1rem; }
.vg5-attr-val { font-size: 0.82rem; line-height: 1.65; color: var(--charcoal); font-weight: 300; }
.vg5-attr-val strong { color: var(--ink); font-weight: 500; }

/* TABLE */
.vg5-table-wrap { overflow-x: auto; margin: 1.5rem 0; }
.vg5-table { width: 100%; border-collapse: collapse; font-size: 0.83rem; }
.vg5-table th { background: var(--aws-blue); color: var(--paper); font-family: 'DM Sans', sans-serif; font-weight: 400; font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.75rem 1rem; text-align: left; }
.vg5-table td { padding: 0.75rem 1rem; border-bottom: 0.5px solid var(--border); color: var(--charcoal); vertical-align: top; line-height: 1.55; }
.vg5-table tr:nth-child(even) td { background: var(--paper-dark); }
.vg5-table td strong { color: var(--ink); font-weight: 500; }
.vg5-chip { display: inline-block; font-size: 0.65rem; letter-spacing: 0.06em; padding: 0.2rem 0.55rem; font-weight: 400; }
.vg5-chip-green { background: var(--teal-muted); color: var(--teal); }
.vg5-chip-amber { background: var(--amber-muted); color: var(--amber); }
.vg5-chip-gray  { background: var(--paper-dark); color: var(--muted); border: 0.5px solid var(--border); }

/* USE CASES SECTION */
.vg5-usecases-section { background: var(--paper-dark); padding: 4rem; }
.vg5-usecases-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg5-usecases-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg5-usecases-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--ink); margin-bottom: 2.5rem; }
.vg5-usecases-section > h2 em { font-style: italic; color: var(--teal); }
.vg5-uc-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.vg5-uc-col-header { font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 500; padding: 0.6rem 1rem; margin-bottom: 1rem; }
.vg5-uc-col-header.js { background: var(--aws-blue); color: var(--amber-light); }
.vg5-uc-col-header.br { background: var(--ink); color: var(--teal-light); }
.vg5-uc-list { display: flex; flex-direction: column; gap: 1rem; }
.vg5-uc-card { background: var(--paper); border: 0.5px solid var(--border); padding: 1.25rem 1.5rem; position: relative; }
.vg5-uc-card::before { content: ''; position: absolute; top: 0; left: 0; width: 3px; height: 100%; }
.vg5-uc-card.js::before { background: var(--amber); }
.vg5-uc-card.br::before { background: var(--teal); }
.vg5-uc-industry { font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.35rem; }
.vg5-uc-card h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 400; color: var(--ink); margin-bottom: 0.5rem; }
.vg5-uc-scenario { font-size: 0.78rem; line-height: 1.65; color: var(--muted); font-style: italic; margin-bottom: 0.6rem; font-weight: 300; }
.vg5-uc-solution { font-size: 0.82rem; line-height: 1.7; color: var(--charcoal); font-weight: 300; }
.vg5-uc-solution strong { color: var(--ink); font-weight: 500; }

/* INTERVIEW */
.vg5-interview-section { background: var(--ink); padding: 4rem; }
.vg5-interview-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg5-interview-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--amber-light); }
.vg5-interview-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--paper); margin-bottom: 2.5rem; }
.vg5-interview-section > h2 em { font-style: italic; color: var(--amber-light); }
.vg5-qa-list { display: flex; flex-direction: column; }
.vg5-qa-item { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; padding: 1.5rem 0; border-top: 0.5px solid rgba(247,244,239,0.1); align-items: start; }
.vg5-qa-item:last-child { border-bottom: 0.5px solid rgba(247,244,239,0.1); }
.vg5-qa-q { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 400; color: var(--paper); line-height: 1.4; }
.vg5-q-badge { font-family: 'DM Mono', monospace; font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--teal); color: var(--paper); padding: 0.15rem 0.5rem; margin-bottom: 0.5rem; display: inline-block; }
.vg5-qa-a { font-size: 0.83rem; line-height: 1.8; color: rgba(247,244,239,0.65); font-weight: 300; }
.vg5-qa-a strong { color: var(--amber-light); font-weight: 400; }
.vg5-qa-a code { font-family: 'DM Mono', monospace; font-size: 0.77rem; background: rgba(247,244,239,0.08); padding: 0.1rem 0.35rem; color: var(--paper); }
.vg5-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.vg5-pill { font-size: 0.67rem; letter-spacing: 0.06em; padding: 0.25rem 0.75rem; border: 0.5px solid rgba(247,244,239,0.15); color: rgba(247,244,239,0.5); }
.vg5-pill.t { border-color: var(--teal-light); color: var(--teal-light); }
.vg5-pill.a { border-color: var(--amber-light); color: var(--amber-light); }

/* FOOTER */
.vg5-footer { background: var(--aws-blue); padding: 3rem 4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; }
.vg5-footer p { font-size: 0.82rem; color: rgba(247,244,239,0.35); font-weight: 300; }
.vg5-footer p strong { color: rgba(247,244,239,0.65); font-weight: 400; }
.vg5-back-btn { display: inline-block; padding: 0.65rem 1.75rem; background: var(--aws-orange); color: var(--aws-blue); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 500; }

/* REVEAL */
.vg5-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
.vg5-reveal.vg5-vis { opacity: 1; transform: translateY(0); }
.vg5-d1 { transition-delay: 0.1s; } .vg5-d2 { transition-delay: 0.2s; } .vg5-d3 { transition-delay: 0.3s; }
</style>

<div class="vg5">

<!-- HERO -->
<div class="vg5-hero">
  <div class="vg5-hero-inner">
    <p class="vg5-eyebrow">AWS · Cloud AI · Service Comparison</p>
    <h1>SageMaker JumpStart vs Amazon Bedrock — <em>Choosing the Right AWS AI Tool</em></h1>
    <div class="vg5-meta-row">
      <p class="vg5-meta">Services<span>SageMaker JumpStart · Amazon Bedrock</span></p>
      <p class="vg5-meta">Focus<span>Use Cases · Architecture · Decision Guide</span></p>
      <p class="vg5-meta">Stack<span>AWS Cloud AI</span></p>
    </div>
  </div>
</div>

<!-- VS BAND -->
<div class="vg5-vs-band">
  <div class="vg5-vs-left">
    <p class="vg5-vs-name">SageMaker JumpStart</p>
    <p class="vg5-vs-title">The Swiss Army Knife of Machine Learning</p>
  </div>
  <div class="vg5-vs-mid"><span>vs</span></div>
  <div class="vg5-vs-right">
    <p class="vg5-vs-name">Amazon Bedrock</p>
    <p class="vg5-vs-title">The Generative AI Powerhouse</p>
  </div>
</div>

<!-- INTRO -->
<div class="vg5-intro">
  <p>AWS offers two powerful tools for businesses looking to leverage AI capabilities. While both services simplify AI adoption, they cater to fundamentally different needs. <strong>SageMaker JumpStart</strong> gives you control, customization, and the full ML lifecycle. <strong>Amazon Bedrock</strong> gives you immediate access to state-of-the-art foundation models with minimal setup. Knowing which to reach for is a core cloud AI skill.</p>
</div>

<!-- BODY -->
<div class="vg5-body">

  <!-- SERVICE CARDS -->
  <div class="vg5-section vg5-reveal">
    <p class="vg5-section-label">Service Deep Dive</p>
    <h2>What each service <em>actually does</em></h2>
    <div class="vg5-service-grid">

      <div class="vg5-service-card jumpstart vg5-reveal vg5-d1">
        <div class="vg5-service-header">
          <p class="vg5-service-nickname">Amazon SageMaker</p>
          <p class="vg5-service-name"><em>JumpStart</em></p>
          <p class="vg5-service-tagline">Pre-built ML solutions + full customization control within the SageMaker ecosystem</p>
        </div>
        <div class="vg5-service-body">
          <div class="vg5-attr-list">
            <div class="vg5-attr-item"><span class="vg5-attr-key">Scope</span><span class="vg5-attr-val">Part of the broader SageMaker ecosystem — notebooks, training, tuning, and deployment in one platform</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Models</span><span class="vg5-attr-val">Wide range of pre-built ML solutions: image classification, object detection, text analysis, and more</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Customization</span><span class="vg5-attr-val"><strong>Fine-tuning, transfer learning, and model retraining</strong> — you own the model weights</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Deployment</span><span class="vg5-attr-val">Seamless SageMaker integration; supports both batch and real-time inference endpoints</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">User Profile</span><span class="vg5-attr-val">Data scientists and ML engineers who want to customize models and build tailored solutions</span></div>
          </div>
        </div>
      </div>

      <div class="vg5-service-card bedrock vg5-reveal vg5-d2">
        <div class="vg5-service-header">
          <p class="vg5-service-nickname">Amazon</p>
          <p class="vg5-service-name"><em>Bedrock</em></p>
          <p class="vg5-service-tagline">Fully managed foundation model API — access top GenAI models without infrastructure</p>
        </div>
        <div class="vg5-service-body">
          <div class="vg5-attr-list">
            <div class="vg5-attr-item"><span class="vg5-attr-key">Scope</span><span class="vg5-attr-val">Standalone service dedicated to generative AI — no ML infrastructure to manage</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Models</span><span class="vg5-attr-val">Curated foundation models from Amazon, <strong>Anthropic (Claude)</strong>, AI21 Labs, Cohere, Meta, and Stability AI</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Customization</span><span class="vg5-attr-val">Fine-tuning available on select models; RAG via Knowledge Bases; no direct model weight access</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Deployment</span><span class="vg5-attr-val">API-first. Minimal setup to start generating text, images, or embeddings — serverless by default</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">User Profile</span><span class="vg5-attr-val">Developers and product teams integrating GenAI features fast — rapid prototyping and deployment</span></div>
          </div>
        </div>
      </div>

    </div>
  </div>

  <hr class="vg5-divider">

  <!-- COMPARISON TABLE -->
  <div class="vg5-section vg5-reveal">
    <p class="vg5-section-label">At a Glance</p>
    <h2>Side-by-side <em>quick reference</em></h2>
    <div class="vg5-table-wrap">
      <table class="vg5-table">
        <thead><tr><th>Factor</th><th>SageMaker JumpStart</th><th>Amazon Bedrock</th></tr></thead>
        <tbody>
          <tr>
            <td><strong>Primary Focus</strong></td>
            <td>Classical ML + customizable models</td>
            <td>Generative AI via foundation models</td>
          </tr>
          <tr>
            <td><strong>Setup Complexity</strong></td>
            <td><span class="vg5-chip vg5-chip-amber">Medium — SageMaker config needed</span></td>
            <td><span class="vg5-chip vg5-chip-green">Low — API call to start</span></td>
          </tr>
          <tr>
            <td><strong>Model Ownership</strong></td>
            <td><span class="vg5-chip vg5-chip-green">Full — fine-tune and own weights</span></td>
            <td><span class="vg5-chip vg5-chip-gray">No — managed by providers</span></td>
          </tr>
          <tr>
            <td><strong>Customization Depth</strong></td>
            <td><span class="vg5-chip vg5-chip-green">Deep — transfer learning, retraining</span></td>
            <td><span class="vg5-chip vg5-chip-amber">Limited — fine-tuning + RAG</span></td>
          </tr>
          <tr>
            <td><strong>Data Privacy</strong></td>
            <td><span class="vg5-chip vg5-chip-green">Full control in your VPC</span></td>
            <td><span class="vg5-chip vg5-chip-green">Data not used for model training</span></td>
          </tr>
          <tr>
            <td><strong>Inference Mode</strong></td>
            <td>Batch + real-time endpoints</td>
            <td>Serverless API (on-demand)</td>
          </tr>
          <tr>
            <td><strong>Model Variety</strong></td>
            <td>Vision, NLP, tabular, forecasting</td>
            <td>Text, image, embedding, multimodal</td>
          </tr>
          <tr>
            <td><strong>Best For</strong></td>
            <td>Tailored ML, regulated industries, data science teams</td>
            <td>Rapid GenAI features, chatbots, content generation</td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="vg5-callout teal">
      <strong>Decision rule of thumb:</strong> If you&#8217;re asking &#8220;how do I add AI to my app fast?&#8221; — reach for Bedrock. If you&#8217;re asking &#8220;how do I build a custom model on my proprietary data?&#8221; — reach for SageMaker JumpStart.
    </div>
  </div>

</div><!-- /vg5-body -->

<!-- USE CASES -->
<div class="vg5-usecases-section">
  <p class="vg5-usecases-eyebrow">Real-World Examples</p>
  <h2>Use cases — <em>side by side</em></h2>
  <div class="vg5-uc-columns">

    <div>
      <p class="vg5-uc-col-header js">SageMaker JumpStart Examples</p>
      <div class="vg5-uc-list">
        <div class="vg5-uc-card js vg5-reveal">
          <p class="vg5-uc-industry">E-Commerce · Computer Vision</p>
          <h4>Product Image Classification</h4>
          <p class="vg5-uc-scenario">An e-commerce company needs to automatically categorize product images uploaded by sellers.</p>
          <p class="vg5-uc-solution">Deploy a <strong>pre-trained image classification model</strong> via JumpStart. Products are routed into categories — Electronics, Clothing, Home Appliances — with minimal setup. Model can be fine-tuned on proprietary category taxonomy.</p>
        </div>
        <div class="vg5-uc-card js vg5-reveal vg5-d1">
          <p class="vg5-uc-industry">Retail · NLP</p>
          <h4>Customer Sentiment Analysis</h4>
          <p class="vg5-uc-scenario">A company wants to analyze customer reviews at scale to understand satisfaction trends.</p>
          <p class="vg5-uc-solution">Deploy a <strong>pre-trained sentiment analysis model</strong> that classifies reviews as positive, negative, or neutral. Integrates into customer feedback pipelines — no model training required, fine-tuning available if needed.</p>
        </div>
        <div class="vg5-uc-card js vg5-reveal vg5-d2">
          <p class="vg5-uc-industry">Financial Services · Fraud Detection</p>
          <h4>Real-Time Transaction Fraud Detection</h4>
          <p class="vg5-uc-scenario">A financial institution needs to flag fraudulent transactions in real time.</p>
          <p class="vg5-uc-solution">Use a <strong>fraud detection solution template</strong> from JumpStart. Deploys a ready-to-use model that analyzes transaction patterns and flags suspicious activities for investigation — with a real-time inference endpoint.</p>
        </div>
      </div>
    </div>

    <div>
      <p class="vg5-uc-col-header br">Amazon Bedrock Examples</p>
      <div class="vg5-uc-list">
        <div class="vg5-uc-card br vg5-reveal">
          <p class="vg5-uc-industry">Healthcare · Predictive AI</p>
          <h4>Patient Readmission Prediction</h4>
          <p class="vg5-uc-scenario">A healthcare provider wants to predict patient readmissions based on historical patient data.</p>
          <p class="vg5-uc-solution">Use Bedrock to access a <strong>foundation model</strong>, fine-tune on proprietary patient records, and deploy a readmission prediction API. Bedrock&#8217;s managed infrastructure handles scale without the provider managing ML infrastructure.</p>
        </div>
        <div class="vg5-uc-card br vg5-reveal vg5-d1">
          <p class="vg5-uc-industry">Retail · Forecasting</p>
          <h4>Demand Forecasting Across Stores</h4>
          <p class="vg5-uc-scenario">A retail chain needs to forecast product demand across hundreds of locations.</p>
          <p class="vg5-uc-solution">Build a <strong>custom demand forecasting model</strong> via Bedrock, incorporating historical sales, seasonal trends, and promotions. Train, validate, and deploy at scale — Bedrock handles the infrastructure entirely.</p>
        </div>
        <div class="vg5-uc-card br vg5-reveal vg5-d2">
          <p class="vg5-uc-industry">Manufacturing · Computer Vision</p>
          <h4>Production Line Quality Control</h4>
          <p class="vg5-uc-scenario">A manufacturer wants to identify product defects using images from production lines in real time.</p>
          <p class="vg5-uc-solution">Develop a <strong>custom computer vision model</strong> in Bedrock trained on defective vs. non-defective product images. Deploy for real-time inspection — reducing defect rates without managing GPU infrastructure.</p>
        </div>
      </div>
    </div>

  </div>
</div>

<!-- INTERVIEW CHEAT SHEET -->
<div class="vg5-interview-section">
  <p class="vg5-interview-eyebrow">Interview Prep</p>
  <h2>Cheat sheet — <em>quick definitions to remember</em></h2>
  <div class="vg5-qa-list">

    <div class="vg5-qa-item vg5-reveal">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Define</span><br>What is Amazon SageMaker JumpStart?</div>
      <div class="vg5-qa-a"><strong>A curated library of pre-built ML solutions and models</strong> within the SageMaker ecosystem. Lets you deploy, fine-tune, and retrain models for tasks like image classification, NLP, and fraud detection — with full control over the ML lifecycle.
        <div class="vg5-pills"><span class="vg5-pill t">Pre-built models</span><span class="vg5-pill t">Fine-tunable</span><span class="vg5-pill">SageMaker ecosystem</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal vg5-d1">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Define</span><br>What is Amazon Bedrock?</div>
      <div class="vg5-qa-a"><strong>A fully managed API service</strong> that provides access to foundation models from multiple providers (Anthropic, AI21 Labs, Cohere, Stability AI, Amazon). No ML infrastructure to manage — you call an API and get generative AI capabilities immediately.
        <div class="vg5-pills"><span class="vg5-pill t">Managed FM API</span><span class="vg5-pill t">Multi-provider</span><span class="vg5-pill a">Serverless</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Compare</span><br>JumpStart vs Bedrock — when do you pick each?</div>
      <div class="vg5-qa-a">Pick <strong>JumpStart</strong> when you need to customize a model on your own data, require full model weight ownership, or are building classical ML pipelines (vision, tabular, NLP). Pick <strong>Bedrock</strong> when you need GenAI features fast, want managed infrastructure, or are integrating LLMs into an application.
        <div class="vg5-pills"><span class="vg5-pill t">JumpStart = custom ML</span><span class="vg5-pill a">Bedrock = GenAI fast</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal vg5-d1">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Explain</span><br>What is a Foundation Model (FM)?</div>
      <div class="vg5-qa-a">A <strong>large model pre-trained on broad data</strong> that can be adapted for many downstream tasks. Foundation models (GPT-4, Claude, Llama) are trained once at massive scale and then fine-tuned or prompted for specific use cases. Bedrock provides access to these FMs as managed APIs.
        <div class="vg5-pills"><span class="vg5-pill t">Pre-trained at scale</span><span class="vg5-pill">Prompt or fine-tune</span><span class="vg5-pill a">Claude, Llama, Titan</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Gotcha</span><br>Can you use RAG with Bedrock? How?</div>
      <div class="vg5-qa-a">Yes — <strong>Bedrock Knowledge Bases</strong> lets you connect S3 data sources to an FM. Documents are chunked, embedded, and stored in a vector store (OpenSearch or Aurora). At inference, relevant chunks are retrieved and injected as context. This is Bedrock&#8217;s native managed RAG pipeline.
        <div class="vg5-pills"><span class="vg5-pill t">Bedrock Knowledge Bases</span><span class="vg5-pill t">S3 → Embed → Retrieve</span><span class="vg5-pill">Native RAG</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal vg5-d1">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Use Case</span><br>Which service suits a regulated industry (healthcare, finance)?</div>
      <div class="vg5-qa-a"><strong>SageMaker JumpStart</strong> for full data control inside your own VPC — no data leaves your environment. <strong>Bedrock</strong> is also enterprise-safe (data not used for model training, VPC endpoints available), but JumpStart gives deeper control for compliance-heavy workloads requiring model auditability.
        <div class="vg5-pills"><span class="vg5-pill t">JumpStart = full VPC control</span><span class="vg5-pill a">Bedrock = enterprise-safe API</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Name</span><br>Three Bedrock model providers and what they&#8217;re known for</div>
      <div class="vg5-qa-a"><strong>Anthropic (Claude)</strong> — safety-focused, long context, strong reasoning. <strong>AI21 Labs (Jurassic)</strong> — instruction-following, enterprise text generation. <strong>Stability AI</strong> — image generation (Stable Diffusion). Amazon&#8217;s own <strong>Titan</strong> models cover embeddings and text generation natively.
        <div class="vg5-pills"><span class="vg5-pill t">Anthropic = safety + reasoning</span><span class="vg5-pill t">Stability = images</span><span class="vg5-pill a">Titan = embeddings</span></div>
      </div>
    </div>

  </div>
</div>

<!-- FOOTER -->
<div class="vg5-footer">
  <p><strong>GenAI Mastery Series</strong> — vijay-gokarn.com · Vijay Gokarn</p>
  <a href="https://vijay-gokarn.com" class="vg5-back-btn">Back to Blog ↗</a>
</div>

</div><!-- /vg5 -->

<script>
(function(){
  var obs = new IntersectionObserver(function(e){
    e.forEach(function(x){ if(x.isIntersecting) x.target.classList.add('vg5-vis'); });
  }, {threshold: 0.08});
  document.querySelectorAll('.vg5-reveal').forEach(function(el){ obs.observe(el); });
})();
</script><link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;family=DM+Mono:wght@400&#038;display=swap" rel="stylesheet">

<style>
.vg5 {
  --ink: #0e0e0e; --paper: #f7f4ef; --paper-dark: #ede9e1;
  --teal: #0f6e56; --teal-light: #1d9e75; --teal-muted: #e1f5ee;
  --amber: #ba7517; --amber-light: #fac775; --amber-muted: #faeeda;
  --charcoal: #2c2c2a; --muted: #888780;
  --border: rgba(14,14,14,0.12); --border-strong: rgba(14,14,14,0.25);
  --aws-orange: #ff9900; --aws-blue: #232f3e;
  font-family: 'DM Sans', sans-serif; font-weight: 300;
  color: var(--ink); background: var(--paper); line-height: 1.75; font-size: 16px; overflow-x: hidden;
}
.vg5 *, .vg5 *::before, .vg5 *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* HERO */
.vg5-hero { background: var(--aws-blue); padding: 5rem 4rem 4rem; position: relative; overflow: hidden; }
.vg5-hero::before {
  content: 'AWS'; font-family: 'Cormorant Garamond', serif; font-size: 16rem;
  font-weight: 300; color: rgba(255,255,255,0.03); position: absolute;
  right: -1rem; bottom: -3rem; line-height: 1; pointer-events: none; letter-spacing: -0.05em;
}
.vg5-hero-inner { position: relative; z-index: 1; max-width: 900px; }
.vg5-eyebrow {
  font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--amber-light); font-weight: 500; margin-bottom: 1.25rem;
  display: flex; align-items: center; gap: 0.75rem;
}
.vg5-eyebrow::before { content: ''; display: inline-block; width: 1.5rem; height: 1px; background: var(--amber-light); }
.vg5-hero h1 {
  font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 300; line-height: 1.1; color: var(--paper); letter-spacing: -0.02em;
  margin-bottom: 1.5rem; max-width: 26ch;
}
.vg5-hero h1 em { font-style: italic; color: var(--amber-light); }
.vg5-meta-row { display: flex; gap: 2rem; flex-wrap: wrap; }
.vg5-meta { font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.35); }
.vg5-meta span { color: rgba(247,244,239,0.7); margin-left: 0.4rem; }

/* VS BAND */
.vg5-vs-band {
  background: var(--aws-orange); display: grid; grid-template-columns: 1fr 60px 1fr;
  align-items: center;
}
.vg5-vs-left { padding: 1.5rem 2.5rem; background: rgba(0,0,0,0.1); }
.vg5-vs-right { padding: 1.5rem 2.5rem; background: rgba(0,0,0,0.2); }
.vg5-vs-mid { text-align: center; padding: 1.5rem 0; }
.vg5-vs-mid span { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; font-weight: 300; color: var(--aws-blue); }
.vg5-vs-name { font-size: 0.65rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(35,47,62,0.65); margin-bottom: 0.25rem; }
.vg5-vs-title { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 400; color: var(--aws-blue); line-height: 1.2; }

/* INTRO */
.vg5-intro { background: var(--teal-muted); padding: 2.5rem 4rem; border-left: 4px solid var(--teal); }
.vg5-intro p { font-size: 1.05rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; max-width: 80ch; }
.vg5-intro strong { color: var(--teal); font-weight: 500; }

/* BODY */
.vg5-body { max-width: 900px; margin: 0 auto; padding: 4rem; }
.vg5-section { margin-bottom: 3.5rem; }
.vg5-section-label {
  font-size: 0.63rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--teal); font-weight: 500; margin-bottom: 0.5rem;
  display: flex; align-items: center; gap: 0.6rem;
}
.vg5-section-label::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg5-section h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 300; line-height: 1.2; color: var(--ink); margin-bottom: 1.25rem; }
.vg5-section h2 em { font-style: italic; color: var(--teal); }
.vg5-section p { font-size: 0.93rem; line-height: 1.9; color: var(--charcoal); font-weight: 300; margin-bottom: 1rem; }
.vg5-section p strong { color: var(--ink); font-weight: 500; }
.vg5-divider { border: none; border-top: 0.5px solid var(--border); margin: 3rem 0; }

/* CALLOUT */
.vg5-callout { background: var(--paper-dark); border-left: 3px solid var(--amber); padding: 1.25rem 1.5rem; margin: 1.5rem 0; font-size: 0.87rem; line-height: 1.8; color: var(--charcoal); }
.vg5-callout strong { color: var(--amber); font-weight: 500; }
.vg5-callout.teal { border-color: var(--teal); }
.vg5-callout.teal strong { color: var(--teal); }

/* SERVICE DEEP DIVE CARDS */
.vg5-service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin: 2rem 0; }
.vg5-service-card { border: 0.5px solid var(--border-strong); padding: 0; overflow: hidden; }
.vg5-service-header { padding: 1.5rem; }
.vg5-service-card.jumpstart .vg5-service-header { background: var(--aws-blue); }
.vg5-service-card.bedrock .vg5-service-header { background: var(--ink); }
.vg5-service-nickname { font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(247,244,239,0.4); margin-bottom: 0.3rem; }
.vg5-service-name { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 300; color: var(--paper); line-height: 1.2; margin-bottom: 0.75rem; }
.vg5-service-card.jumpstart .vg5-service-name em { color: var(--amber-light); font-style: italic; }
.vg5-service-card.bedrock .vg5-service-name em { color: var(--teal-light); font-style: italic; }
.vg5-service-tagline { font-size: 0.78rem; color: rgba(247,244,239,0.6); font-weight: 300; line-height: 1.5; }
.vg5-service-body { padding: 1.5rem; background: var(--paper); }
.vg5-attr-list { display: flex; flex-direction: column; gap: 0; }
.vg5-attr-item { padding: 0.85rem 0; border-bottom: 0.5px solid var(--border); display: grid; grid-template-columns: 90px 1fr; gap: 0.75rem; align-items: start; }
.vg5-attr-item:last-child { border-bottom: none; }
.vg5-attr-key { font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-weight: 400; padding-top: 0.1rem; }
.vg5-attr-val { font-size: 0.82rem; line-height: 1.65; color: var(--charcoal); font-weight: 300; }
.vg5-attr-val strong { color: var(--ink); font-weight: 500; }

/* TABLE */
.vg5-table-wrap { overflow-x: auto; margin: 1.5rem 0; }
.vg5-table { width: 100%; border-collapse: collapse; font-size: 0.83rem; }
.vg5-table th { background: var(--aws-blue); color: var(--paper); font-family: 'DM Sans', sans-serif; font-weight: 400; font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.75rem 1rem; text-align: left; }
.vg5-table td { padding: 0.75rem 1rem; border-bottom: 0.5px solid var(--border); color: var(--charcoal); vertical-align: top; line-height: 1.55; }
.vg5-table tr:nth-child(even) td { background: var(--paper-dark); }
.vg5-table td strong { color: var(--ink); font-weight: 500; }
.vg5-chip { display: inline-block; font-size: 0.65rem; letter-spacing: 0.06em; padding: 0.2rem 0.55rem; font-weight: 400; }
.vg5-chip-green { background: var(--teal-muted); color: var(--teal); }
.vg5-chip-amber { background: var(--amber-muted); color: var(--amber); }
.vg5-chip-gray  { background: var(--paper-dark); color: var(--muted); border: 0.5px solid var(--border); }

/* USE CASES SECTION */
.vg5-usecases-section { background: var(--paper-dark); padding: 4rem; }
.vg5-usecases-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg5-usecases-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg5-usecases-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--ink); margin-bottom: 2.5rem; }
.vg5-usecases-section > h2 em { font-style: italic; color: var(--teal); }
.vg5-uc-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.vg5-uc-col-header { font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 500; padding: 0.6rem 1rem; margin-bottom: 1rem; }
.vg5-uc-col-header.js { background: var(--aws-blue); color: var(--amber-light); }
.vg5-uc-col-header.br { background: var(--ink); color: var(--teal-light); }
.vg5-uc-list { display: flex; flex-direction: column; gap: 1rem; }
.vg5-uc-card { background: var(--paper); border: 0.5px solid var(--border); padding: 1.25rem 1.5rem; position: relative; }
.vg5-uc-card::before { content: ''; position: absolute; top: 0; left: 0; width: 3px; height: 100%; }
.vg5-uc-card.js::before { background: var(--amber); }
.vg5-uc-card.br::before { background: var(--teal); }
.vg5-uc-industry { font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.35rem; }
.vg5-uc-card h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 400; color: var(--ink); margin-bottom: 0.5rem; }
.vg5-uc-scenario { font-size: 0.78rem; line-height: 1.65; color: var(--muted); font-style: italic; margin-bottom: 0.6rem; font-weight: 300; }
.vg5-uc-solution { font-size: 0.82rem; line-height: 1.7; color: var(--charcoal); font-weight: 300; }
.vg5-uc-solution strong { color: var(--ink); font-weight: 500; }

/* INTERVIEW */
.vg5-interview-section { background: var(--ink); padding: 4rem; }
.vg5-interview-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg5-interview-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--amber-light); }
.vg5-interview-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--paper); margin-bottom: 2.5rem; }
.vg5-interview-section > h2 em { font-style: italic; color: var(--amber-light); }
.vg5-qa-list { display: flex; flex-direction: column; }
.vg5-qa-item { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; padding: 1.5rem 0; border-top: 0.5px solid rgba(247,244,239,0.1); align-items: start; }
.vg5-qa-item:last-child { border-bottom: 0.5px solid rgba(247,244,239,0.1); }
.vg5-qa-q { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 400; color: var(--paper); line-height: 1.4; }
.vg5-q-badge { font-family: 'DM Mono', monospace; font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--teal); color: var(--paper); padding: 0.15rem 0.5rem; margin-bottom: 0.5rem; display: inline-block; }
.vg5-qa-a { font-size: 0.83rem; line-height: 1.8; color: rgba(247,244,239,0.65); font-weight: 300; }
.vg5-qa-a strong { color: var(--amber-light); font-weight: 400; }
.vg5-qa-a code { font-family: 'DM Mono', monospace; font-size: 0.77rem; background: rgba(247,244,239,0.08); padding: 0.1rem 0.35rem; color: var(--paper); }
.vg5-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.vg5-pill { font-size: 0.67rem; letter-spacing: 0.06em; padding: 0.25rem 0.75rem; border: 0.5px solid rgba(247,244,239,0.15); color: rgba(247,244,239,0.5); }
.vg5-pill.t { border-color: var(--teal-light); color: var(--teal-light); }
.vg5-pill.a { border-color: var(--amber-light); color: var(--amber-light); }

/* FOOTER */
.vg5-footer { background: var(--aws-blue); padding: 3rem 4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; }
.vg5-footer p { font-size: 0.82rem; color: rgba(247,244,239,0.35); font-weight: 300; }
.vg5-footer p strong { color: rgba(247,244,239,0.65); font-weight: 400; }
.vg5-back-btn { display: inline-block; padding: 0.65rem 1.75rem; background: var(--aws-orange); color: var(--aws-blue); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 500; }

/* REVEAL */
.vg5-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
.vg5-reveal.vg5-vis { opacity: 1; transform: translateY(0); }
.vg5-d1 { transition-delay: 0.1s; } .vg5-d2 { transition-delay: 0.2s; } .vg5-d3 { transition-delay: 0.3s; }
</style>

<div class="vg5">

<!-- HERO -->
<div class="vg5-hero">
  <div class="vg5-hero-inner">
    <p class="vg5-eyebrow">AWS · Cloud AI · Service Comparison</p>
    <h1>SageMaker JumpStart vs Amazon Bedrock — <em>Choosing the Right AWS AI Tool</em></h1>
    <div class="vg5-meta-row">
      <p class="vg5-meta">Services<span>SageMaker JumpStart · Amazon Bedrock</span></p>
      <p class="vg5-meta">Focus<span>Use Cases · Architecture · Decision Guide</span></p>
      <p class="vg5-meta">Stack<span>AWS Cloud AI</span></p>
    </div>
  </div>
</div>

<!-- VS BAND -->
<div class="vg5-vs-band">
  <div class="vg5-vs-left">
    <p class="vg5-vs-name">SageMaker JumpStart</p>
    <p class="vg5-vs-title">The Swiss Army Knife of Machine Learning</p>
  </div>
  <div class="vg5-vs-mid"><span>vs</span></div>
  <div class="vg5-vs-right">
    <p class="vg5-vs-name">Amazon Bedrock</p>
    <p class="vg5-vs-title">The Generative AI Powerhouse</p>
  </div>
</div>

<!-- INTRO -->
<div class="vg5-intro">
  <p>AWS offers two powerful tools for businesses looking to leverage AI capabilities. While both services simplify AI adoption, they cater to fundamentally different needs. <strong>SageMaker JumpStart</strong> gives you control, customization, and the full ML lifecycle. <strong>Amazon Bedrock</strong> gives you immediate access to state-of-the-art foundation models with minimal setup. Knowing which to reach for is a core cloud AI skill.</p>
</div>

<!-- BODY -->
<div class="vg5-body">

  <!-- SERVICE CARDS -->
  <div class="vg5-section vg5-reveal">
    <p class="vg5-section-label">Service Deep Dive</p>
    <h2>What each service <em>actually does</em></h2>
    <div class="vg5-service-grid">

      <div class="vg5-service-card jumpstart vg5-reveal vg5-d1">
        <div class="vg5-service-header">
          <p class="vg5-service-nickname">Amazon SageMaker</p>
          <p class="vg5-service-name"><em>JumpStart</em></p>
          <p class="vg5-service-tagline">Pre-built ML solutions + full customization control within the SageMaker ecosystem</p>
        </div>
        <div class="vg5-service-body">
          <div class="vg5-attr-list">
            <div class="vg5-attr-item"><span class="vg5-attr-key">Scope</span><span class="vg5-attr-val">Part of the broader SageMaker ecosystem — notebooks, training, tuning, and deployment in one platform</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Models</span><span class="vg5-attr-val">Wide range of pre-built ML solutions: image classification, object detection, text analysis, and more</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Customization</span><span class="vg5-attr-val"><strong>Fine-tuning, transfer learning, and model retraining</strong> — you own the model weights</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Deployment</span><span class="vg5-attr-val">Seamless SageMaker integration; supports both batch and real-time inference endpoints</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">User Profile</span><span class="vg5-attr-val">Data scientists and ML engineers who want to customize models and build tailored solutions</span></div>
          </div>
        </div>
      </div>

      <div class="vg5-service-card bedrock vg5-reveal vg5-d2">
        <div class="vg5-service-header">
          <p class="vg5-service-nickname">Amazon</p>
          <p class="vg5-service-name"><em>Bedrock</em></p>
          <p class="vg5-service-tagline">Fully managed foundation model API — access top GenAI models without infrastructure</p>
        </div>
        <div class="vg5-service-body">
          <div class="vg5-attr-list">
            <div class="vg5-attr-item"><span class="vg5-attr-key">Scope</span><span class="vg5-attr-val">Standalone service dedicated to generative AI — no ML infrastructure to manage</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Models</span><span class="vg5-attr-val">Curated foundation models from Amazon, <strong>Anthropic (Claude)</strong>, AI21 Labs, Cohere, Meta, and Stability AI</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Customization</span><span class="vg5-attr-val">Fine-tuning available on select models; RAG via Knowledge Bases; no direct model weight access</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">Deployment</span><span class="vg5-attr-val">API-first. Minimal setup to start generating text, images, or embeddings — serverless by default</span></div>
            <div class="vg5-attr-item"><span class="vg5-attr-key">User Profile</span><span class="vg5-attr-val">Developers and product teams integrating GenAI features fast — rapid prototyping and deployment</span></div>
          </div>
        </div>
      </div>

    </div>
  </div>

  <hr class="vg5-divider">

  <!-- COMPARISON TABLE -->
  <div class="vg5-section vg5-reveal">
    <p class="vg5-section-label">At a Glance</p>
    <h2>Side-by-side <em>quick reference</em></h2>
    <div class="vg5-table-wrap">
      <table class="vg5-table">
        <thead><tr><th>Factor</th><th>SageMaker JumpStart</th><th>Amazon Bedrock</th></tr></thead>
        <tbody>
          <tr>
            <td><strong>Primary Focus</strong></td>
            <td>Classical ML + customizable models</td>
            <td>Generative AI via foundation models</td>
          </tr>
          <tr>
            <td><strong>Setup Complexity</strong></td>
            <td><span class="vg5-chip vg5-chip-amber">Medium — SageMaker config needed</span></td>
            <td><span class="vg5-chip vg5-chip-green">Low — API call to start</span></td>
          </tr>
          <tr>
            <td><strong>Model Ownership</strong></td>
            <td><span class="vg5-chip vg5-chip-green">Full — fine-tune and own weights</span></td>
            <td><span class="vg5-chip vg5-chip-gray">No — managed by providers</span></td>
          </tr>
          <tr>
            <td><strong>Customization Depth</strong></td>
            <td><span class="vg5-chip vg5-chip-green">Deep — transfer learning, retraining</span></td>
            <td><span class="vg5-chip vg5-chip-amber">Limited — fine-tuning + RAG</span></td>
          </tr>
          <tr>
            <td><strong>Data Privacy</strong></td>
            <td><span class="vg5-chip vg5-chip-green">Full control in your VPC</span></td>
            <td><span class="vg5-chip vg5-chip-green">Data not used for model training</span></td>
          </tr>
          <tr>
            <td><strong>Inference Mode</strong></td>
            <td>Batch + real-time endpoints</td>
            <td>Serverless API (on-demand)</td>
          </tr>
          <tr>
            <td><strong>Model Variety</strong></td>
            <td>Vision, NLP, tabular, forecasting</td>
            <td>Text, image, embedding, multimodal</td>
          </tr>
          <tr>
            <td><strong>Best For</strong></td>
            <td>Tailored ML, regulated industries, data science teams</td>
            <td>Rapid GenAI features, chatbots, content generation</td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="vg5-callout teal">
      <strong>Decision rule of thumb:</strong> If you&#8217;re asking &#8220;how do I add AI to my app fast?&#8221; — reach for Bedrock. If you&#8217;re asking &#8220;how do I build a custom model on my proprietary data?&#8221; — reach for SageMaker JumpStart.
    </div>
  </div>

</div><!-- /vg5-body -->

<!-- USE CASES -->
<div class="vg5-usecases-section">
  <p class="vg5-usecases-eyebrow">Real-World Examples</p>
  <h2>Use cases — <em>side by side</em></h2>
  <div class="vg5-uc-columns">

    <div>
      <p class="vg5-uc-col-header js">SageMaker JumpStart Examples</p>
      <div class="vg5-uc-list">
        <div class="vg5-uc-card js vg5-reveal">
          <p class="vg5-uc-industry">E-Commerce · Computer Vision</p>
          <h4>Product Image Classification</h4>
          <p class="vg5-uc-scenario">An e-commerce company needs to automatically categorize product images uploaded by sellers.</p>
          <p class="vg5-uc-solution">Deploy a <strong>pre-trained image classification model</strong> via JumpStart. Products are routed into categories — Electronics, Clothing, Home Appliances — with minimal setup. Model can be fine-tuned on proprietary category taxonomy.</p>
        </div>
        <div class="vg5-uc-card js vg5-reveal vg5-d1">
          <p class="vg5-uc-industry">Retail · NLP</p>
          <h4>Customer Sentiment Analysis</h4>
          <p class="vg5-uc-scenario">A company wants to analyze customer reviews at scale to understand satisfaction trends.</p>
          <p class="vg5-uc-solution">Deploy a <strong>pre-trained sentiment analysis model</strong> that classifies reviews as positive, negative, or neutral. Integrates into customer feedback pipelines — no model training required, fine-tuning available if needed.</p>
        </div>
        <div class="vg5-uc-card js vg5-reveal vg5-d2">
          <p class="vg5-uc-industry">Financial Services · Fraud Detection</p>
          <h4>Real-Time Transaction Fraud Detection</h4>
          <p class="vg5-uc-scenario">A financial institution needs to flag fraudulent transactions in real time.</p>
          <p class="vg5-uc-solution">Use a <strong>fraud detection solution template</strong> from JumpStart. Deploys a ready-to-use model that analyzes transaction patterns and flags suspicious activities for investigation — with a real-time inference endpoint.</p>
        </div>
      </div>
    </div>

    <div>
      <p class="vg5-uc-col-header br">Amazon Bedrock Examples</p>
      <div class="vg5-uc-list">
        <div class="vg5-uc-card br vg5-reveal">
          <p class="vg5-uc-industry">Healthcare · Predictive AI</p>
          <h4>Patient Readmission Prediction</h4>
          <p class="vg5-uc-scenario">A healthcare provider wants to predict patient readmissions based on historical patient data.</p>
          <p class="vg5-uc-solution">Use Bedrock to access a <strong>foundation model</strong>, fine-tune on proprietary patient records, and deploy a readmission prediction API. Bedrock&#8217;s managed infrastructure handles scale without the provider managing ML infrastructure.</p>
        </div>
        <div class="vg5-uc-card br vg5-reveal vg5-d1">
          <p class="vg5-uc-industry">Retail · Forecasting</p>
          <h4>Demand Forecasting Across Stores</h4>
          <p class="vg5-uc-scenario">A retail chain needs to forecast product demand across hundreds of locations.</p>
          <p class="vg5-uc-solution">Build a <strong>custom demand forecasting model</strong> via Bedrock, incorporating historical sales, seasonal trends, and promotions. Train, validate, and deploy at scale — Bedrock handles the infrastructure entirely.</p>
        </div>
        <div class="vg5-uc-card br vg5-reveal vg5-d2">
          <p class="vg5-uc-industry">Manufacturing · Computer Vision</p>
          <h4>Production Line Quality Control</h4>
          <p class="vg5-uc-scenario">A manufacturer wants to identify product defects using images from production lines in real time.</p>
          <p class="vg5-uc-solution">Develop a <strong>custom computer vision model</strong> in Bedrock trained on defective vs. non-defective product images. Deploy for real-time inspection — reducing defect rates without managing GPU infrastructure.</p>
        </div>
      </div>
    </div>

  </div>
</div>

<!-- INTERVIEW CHEAT SHEET -->
<div class="vg5-interview-section">
  <p class="vg5-interview-eyebrow">Interview Prep</p>
  <h2>Cheat sheet — <em>quick definitions to remember</em></h2>
  <div class="vg5-qa-list">

    <div class="vg5-qa-item vg5-reveal">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Define</span><br>What is Amazon SageMaker JumpStart?</div>
      <div class="vg5-qa-a"><strong>A curated library of pre-built ML solutions and models</strong> within the SageMaker ecosystem. Lets you deploy, fine-tune, and retrain models for tasks like image classification, NLP, and fraud detection — with full control over the ML lifecycle.
        <div class="vg5-pills"><span class="vg5-pill t">Pre-built models</span><span class="vg5-pill t">Fine-tunable</span><span class="vg5-pill">SageMaker ecosystem</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal vg5-d1">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Define</span><br>What is Amazon Bedrock?</div>
      <div class="vg5-qa-a"><strong>A fully managed API service</strong> that provides access to foundation models from multiple providers (Anthropic, AI21 Labs, Cohere, Stability AI, Amazon). No ML infrastructure to manage — you call an API and get generative AI capabilities immediately.
        <div class="vg5-pills"><span class="vg5-pill t">Managed FM API</span><span class="vg5-pill t">Multi-provider</span><span class="vg5-pill a">Serverless</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Compare</span><br>JumpStart vs Bedrock — when do you pick each?</div>
      <div class="vg5-qa-a">Pick <strong>JumpStart</strong> when you need to customize a model on your own data, require full model weight ownership, or are building classical ML pipelines (vision, tabular, NLP). Pick <strong>Bedrock</strong> when you need GenAI features fast, want managed infrastructure, or are integrating LLMs into an application.
        <div class="vg5-pills"><span class="vg5-pill t">JumpStart = custom ML</span><span class="vg5-pill a">Bedrock = GenAI fast</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal vg5-d1">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Explain</span><br>What is a Foundation Model (FM)?</div>
      <div class="vg5-qa-a">A <strong>large model pre-trained on broad data</strong> that can be adapted for many downstream tasks. Foundation models (GPT-4, Claude, Llama) are trained once at massive scale and then fine-tuned or prompted for specific use cases. Bedrock provides access to these FMs as managed APIs.
        <div class="vg5-pills"><span class="vg5-pill t">Pre-trained at scale</span><span class="vg5-pill">Prompt or fine-tune</span><span class="vg5-pill a">Claude, Llama, Titan</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Gotcha</span><br>Can you use RAG with Bedrock? How?</div>
      <div class="vg5-qa-a">Yes — <strong>Bedrock Knowledge Bases</strong> lets you connect S3 data sources to an FM. Documents are chunked, embedded, and stored in a vector store (OpenSearch or Aurora). At inference, relevant chunks are retrieved and injected as context. This is Bedrock&#8217;s native managed RAG pipeline.
        <div class="vg5-pills"><span class="vg5-pill t">Bedrock Knowledge Bases</span><span class="vg5-pill t">S3 → Embed → Retrieve</span><span class="vg5-pill">Native RAG</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal vg5-d1">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Use Case</span><br>Which service suits a regulated industry (healthcare, finance)?</div>
      <div class="vg5-qa-a"><strong>SageMaker JumpStart</strong> for full data control inside your own VPC — no data leaves your environment. <strong>Bedrock</strong> is also enterprise-safe (data not used for model training, VPC endpoints available), but JumpStart gives deeper control for compliance-heavy workloads requiring model auditability.
        <div class="vg5-pills"><span class="vg5-pill t">JumpStart = full VPC control</span><span class="vg5-pill a">Bedrock = enterprise-safe API</span></div>
      </div>
    </div>

    <div class="vg5-qa-item vg5-reveal">
      <div class="vg5-qa-q"><span class="vg5-q-badge">Name</span><br>Three Bedrock model providers and what they&#8217;re known for</div>
      <div class="vg5-qa-a"><strong>Anthropic (Claude)</strong> — safety-focused, long context, strong reasoning. <strong>AI21 Labs (Jurassic)</strong> — instruction-following, enterprise text generation. <strong>Stability AI</strong> — image generation (Stable Diffusion). Amazon&#8217;s own <strong>Titan</strong> models cover embeddings and text generation natively.
        <div class="vg5-pills"><span class="vg5-pill t">Anthropic = safety + reasoning</span><span class="vg5-pill t">Stability = images</span><span class="vg5-pill a">Titan = embeddings</span></div>
      </div>
    </div>

  </div>
</div>

<!-- FOOTER -->
<div class="vg5-footer">
  <p><strong>GenAI Mastery Series</strong> — vijay-gokarn.com · Vijay Gokarn</p>
  <a href="https://vijay-gokarn.com" class="vg5-back-btn">Back to Blog ↗</a>
</div>

</div><!-- /vg5 -->

<script>
(function(){
  var obs = new IntersectionObserver(function(e){
    e.forEach(function(x){ if(x.isIntersecting) x.target.classList.add('vg5-vis'); });
  }, {threshold: 0.08});
  document.querySelectorAll('.vg5-reveal').forEach(function(el){ obs.observe(el); });
})();
</script>



<p class=""></p>
<p>The post <a href="https://vijay-gokarn.com/aws-sagemaker-jumpstart-and-aws-bedrock-choosing-the-right-ai-tool-for-your-needs/">AWS Sagemaker Jumpstart and AWS Bedrock Choosing the Right AI Tool for Your Needs</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">160</post-id>	</item>
		<item>
		<title>FAST API</title>
		<link>https://vijay-gokarn.com/fast-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fast-api</link>
		
		<dc:creator><![CDATA[Vijay Gokarn]]></dc:creator>
		<pubDate>Wed, 17 Jul 2024 08:47:26 +0000</pubDate>
				<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[databricks]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[generative-ai]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://vijay-gokarn.com/?p=143</guid>

					<description><![CDATA[<p>FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints. Here are several reasons why FastAPI is an excellent choice for building APIs: 1. Speed FastAPI is one of the fastest web frameworks available, thanks to its use of Starlette for the web parts and [&#8230;]</p>
<p>The post <a href="https://vijay-gokarn.com/fast-api/">FAST API</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="">FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints. Here are several reasons why FastAPI is an excellent choice for building APIs:</p>



<h3 class="wp-block-heading">1. <strong>Speed</strong></h3>



<p class="">FastAPI is one of the fastest web frameworks available, thanks to its use of Starlette for the web parts and Pydantic for the data parts. It&#8217;s designed to be as fast as possible, ensuring that your API has minimal latency and high throughput.</p>



<h3 class="wp-block-heading">2. <strong>Ease of Use</strong></h3>



<p class="">FastAPI leverages Python&#8217;s type hints, making the code easier to write and understand. It automatically generates interactive API documentation (using Swagger UI and ReDoc), which simplifies testing and understanding of the API endpoints.</p>



<h3 class="wp-block-heading">3. <strong>Data Validation</strong></h3>



<p class="">FastAPI uses Pydantic for data validation and parsing. This ensures that the data sent to the API is correctly formatted and validated before any further processing.</p>



<h3 class="wp-block-heading">4. <strong>Automatic Documentation</strong></h3>



<p class="">FastAPI generates interactive API documentation from your code using OpenAPI. This is extremely helpful for developers, as they can see and interact with the API directly from the browser.</p>



<h3 class="wp-block-heading">5. <strong>Asynchronous Support</strong></h3>



<p class="">FastAPI has first-class support for asynchronous programming, making it easy to write asynchronous endpoints that can handle large numbers of concurrent requests efficiently.</p>



<h3 class="wp-block-heading">6. <strong>Dependency Injection</strong></h3>



<p class="">FastAPI provides a powerful dependency injection system that makes it easy to manage and inject dependencies into your endpoints, which can simplify the design of your application and improve its testability.</p>



<h3 class="wp-block-heading">7. <strong>Security</strong></h3>



<p class="">FastAPI includes tools to handle security and authentication, like OAuth2 and JWT tokens, right out of the box.</p>



<h3 class="wp-block-heading">8. <strong>Community and Ecosystem</strong></h3>



<p class="">FastAPI has a growing community and a rich ecosystem of plugins and extensions. It integrates well with other popular Python libraries and tools, such as SQLAlchemy for ORM, Celery for background tasks, and others.</p>



<h3 class="wp-block-heading">Example: Building a tasklist FastAPI</h3>



<p class=""></p>



<h3 class="wp-block-heading">1. Imports</h3>



<pre class="wp-block-preformatted"><code>from fastapi import FastAPI, HTTPException<br>from pydantic import BaseModel<br>from typing import List, Optional<br>from uuid import UUID, uuid4<br></code></pre>



<ul class="wp-block-list">
<li class=""><strong>FastAPI</strong>: The web framework for building APIs.</li>



<li class=""><strong>HTTPException</strong>: Used to raise HTTP errors.</li>



<li class=""><strong>BaseModel</strong>: A base class from Pydantic for creating data models.</li>



<li class=""><strong>List, Optional</strong>: Type hints for better code readability and type checking.</li>



<li class=""><strong>UUID, uuid4</strong>: For generating unique identifiers for each task or blog post.</li>
</ul>



<h3 class="wp-block-heading">2. Initialize FastAPI</h3>



<pre class="wp-block-preformatted"><code>app = FastAPI()<br></code></pre>



<ul class="wp-block-list">
<li class="">Creates an instance of the FastAPI application.</li>
</ul>



<h3 class="wp-block-heading">3. Define the Task Model</h3>



<pre class="wp-block-preformatted"><code>class Task(BaseModel):<br>    id: Optional[UUID] = None<br>    title: str<br>    description: Optional[str] = None<br>    completed: bool = False<br></code></pre>



<ul class="wp-block-list">
<li class=""><strong>Task</strong>: This is a data model for tasks with optional <code>id</code>, <code>title</code>, optional <code>description</code>, and <code>completed</code> status.</li>
</ul>



<h3 class="wp-block-heading">4. In-Memory Storage</h3>



<pre class="wp-block-preformatted"><code>tasks = []<br></code></pre>



<ul class="wp-block-list">
<li class=""><strong>tasks</strong>: A list to store the tasks. In a real application, this would typically be a database.</li>
</ul>



<h3 class="wp-block-heading">5. Create Task Endpoint</h3>



<pre class="wp-block-preformatted"><code>@app.post("/tasks/", response_model=Task)<br>def create_task(task: Task):<br>    task.id = uuid4()<br>    tasks.append(task)<br>    return task<br></code></pre>



<ul class="wp-block-list">
<li class=""><strong>@app.post(&#8220;/tasks/&#8221;)</strong>: This is a POST endpoint to create a new task.</li>



<li class=""><strong>create_task</strong>: A function that accepts a <code>Task</code>, assigns it a unique <code>id</code>, and adds it to the <code>tasks</code> list.</li>
</ul>



<h3 class="wp-block-heading">6. Read All Tasks Endpoint</h3>



<pre class="wp-block-preformatted"><code>@app.get("/tasks/", response_model=List[Task])<br>def read_tasks():<br>    return tasks<br></code></pre>



<ul class="wp-block-list">
<li class=""><strong>@app.get(&#8220;/tasks/&#8221;)</strong>: This is a GET endpoint to read all tasks.</li>



<li class=""><strong>read_tasks</strong>: A function that returns the list of all tasks.</li>
</ul>



<h3 class="wp-block-heading">7. Read Task by ID Endpoint</h3>



<pre class="wp-block-preformatted"><code>@app.get("/tasks/{task_id}", response_model=Task)<br>def read_task(task_id: UUID):<br>    for task in tasks:<br>        if task.id == task_id:<br>            return task<br>        <br>    raise HTTPException(status_code=404, detail="Task not found")<br></code></pre>



<ul class="wp-block-list">
<li class=""><strong>@app.get(&#8220;/tasks/{task_id}&#8221;)</strong>: This is a GET endpoint to read a specific task by its ID.</li>



<li class=""><strong>read_task</strong>: A function that searches for a task by its ID. If found, it returns the task; otherwise, it raises a 404 error.</li>
</ul>



<h3 class="wp-block-heading">8. Update Task Endpoint</h3>



<pre class="wp-block-preformatted"><code>@app.put("/tasks/{task_id}", response_model=Task)<br>def update_task(task_id: UUID, task_update: Task):<br>    for idx, task in enumerate(tasks):<br>        if task.id == task_id:<br>            updated_task = task.copy(update=task_update.dict(exclude_unset=True))<br>            tasks[idx] = updated_task<br>            return updated_task<br>        <br>    raise HTTPException(status_code=404, detail="Task not found")<br></code></pre>



<ul class="wp-block-list">
<li class=""><strong>@app.put(&#8220;/tasks/{task_id}&#8221;)</strong>: This is a PUT endpoint to update an existing task.</li>



<li class=""><strong>update_task</strong>: A function that updates a task&#8217;s information by copying the updated fields and replacing the old task. If the task is not found, it raises a 404 error.</li>
</ul>



<h3 class="wp-block-heading">9. Delete Task Endpoint</h3>



<pre class="wp-block-preformatted"><code>@app.delete("/tasks/{task_id}", response_model=Task)<br>def delete_task(task_id: UUID):<br>    for idx, task in enumerate(tasks):<br>        if task.id == task_id:<br>            return tasks.pop(idx)<br>    <br>    raise HTTPException(status_code=404, detail="Task not found")<br></code></pre>



<ul class="wp-block-list">
<li class=""><strong>@app.delete(&#8220;/tasks/{task_id}&#8221;)</strong>: This is a DELETE endpoint to delete a task by its ID.</li>



<li class=""><strong>delete_task</strong>: A function that removes a task from the list if found; otherwise, it raises a 404 error.</li>
</ul>



<h3 class="wp-block-heading">10. Run the Application</h3>



<pre class="wp-block-preformatted"><code>if __name__ == "__main__":<br>    import uvicorn<br>    uvicorn.run(app, host="0.0.0.0", port=8000)<br></code></pre>



<ul class="wp-block-list">
<li class=""><strong>if name == &#8220;main&#8221;</strong>: This ensures that the app runs only if the script is executed directly.</li>



<li class=""><strong>uvicorn.run</strong>: Runs the FastAPI app using Uvicorn, a lightning-fast ASGI server.</li>
</ul>



<h3 class="wp-block-heading"><a href="https://github.com/vijaygokarn130/fast-api-example">Git</a></h3>
<p>The post <a href="https://vijay-gokarn.com/fast-api/">FAST API</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">143</post-id>	</item>
		<item>
		<title>Analyzing Wikipedia Articles with Langchain and OpenAI in Databricks</title>
		<link>https://vijay-gokarn.com/analyzing-wikipedia-articles-with-langchain-and-openai-in-databricks/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=analyzing-wikipedia-articles-with-langchain-and-openai-in-databricks</link>
		
		<dc:creator><![CDATA[Vijay Gokarn]]></dc:creator>
		<pubDate>Tue, 16 Jul 2024 10:59:28 +0000</pubDate>
				<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[databricks]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[generative-ai]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[pandas]]></category>
		<guid isPermaLink="false">https://vijay-gokarn.com/?p=140</guid>

					<description><![CDATA[<p>GenAI Mastery Series · NLP · Databricks · LangChain Categorizing Wikipedia at Scale with OpenAI, LangChain &#038; Databricks Datasetwikimedia/wikipedia · 10,000 articles ModelChatOpenAI (GPT-4) Output50-category JSON classifier Stack Databricks Notebook LangChain Core langchain_openai HuggingFace Datasets ChatPromptTemplate Batch Inference JSON Parsing A complete walkthrough of a large-scale text classification pipeline built inside a Databricks notebook — [&#8230;]</p>
<p>The post <a href="https://vijay-gokarn.com/analyzing-wikipedia-articles-with-langchain-and-openai-in-databricks/">Analyzing Wikipedia Articles with Langchain and OpenAI in Databricks</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;family=DM+Mono:wght@400&#038;display=swap" rel="stylesheet">

<style>
.vg6 {
  --ink: #0e0e0e; --paper: #f7f4ef; --paper-dark: #ede9e1;
  --teal: #0f6e56; --teal-light: #1d9e75; --teal-muted: #e1f5ee;
  --amber: #ba7517; --amber-light: #fac775; --amber-muted: #faeeda;
  --charcoal: #2c2c2a; --muted: #888780;
  --border: rgba(14,14,14,0.12); --border-strong: rgba(14,14,14,0.25);
  --db-red: #e8353a; --db-dark: #1b1f23;
  font-family: 'DM Sans', sans-serif; font-weight: 300;
  color: var(--ink); background: var(--paper); line-height: 1.75; font-size: 16px; overflow-x: hidden;
}
.vg6 *, .vg6 *::before, .vg6 *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* HERO */
.vg6-hero { background: var(--db-dark); padding: 5rem 4rem 4rem; position: relative; overflow: hidden; }
.vg6-hero::before {
  content: '{ }'; font-family: 'Cormorant Garamond', serif; font-size: 18rem;
  font-weight: 300; color: rgba(255,255,255,0.025); position: absolute;
  right: 0rem; bottom: -4rem; line-height: 1; pointer-events: none; letter-spacing: -0.05em;
}
.vg6-hero-inner { position: relative; z-index: 1; max-width: 900px; }
.vg6-eyebrow { font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal-light); font-weight: 500; margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.75rem; }
.vg6-eyebrow::before { content: ''; display: inline-block; width: 1.5rem; height: 1px; background: var(--teal-light); }
.vg6-hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 300; line-height: 1.1; color: var(--paper); letter-spacing: -0.02em; margin-bottom: 1.5rem; max-width: 28ch; }
.vg6-hero h1 em { font-style: italic; color: var(--amber-light); }
.vg6-meta-row { display: flex; gap: 2rem; flex-wrap: wrap; }
.vg6-meta { font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.35); }
.vg6-meta span { color: rgba(247,244,239,0.7); margin-left: 0.4rem; }

/* STACK BAND */
.vg6-stack-band { background: var(--db-red); padding: 1.1rem 4rem; display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; }
.vg6-stack-label { font-size: 0.63rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.6); font-weight: 400; margin-right: 0.4rem; }
.vg6-stack-pill { font-size: 0.7rem; letter-spacing: 0.05em; padding: 0.28rem 0.85rem; background: rgba(255,255,255,0.12); color: #fff; border: 0.5px solid rgba(255,255,255,0.2); }

/* INTRO */
.vg6-intro { background: var(--teal-muted); padding: 2.5rem 4rem; border-left: 4px solid var(--teal); }
.vg6-intro p { font-size: 1.05rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; max-width: 80ch; }
.vg6-intro strong { color: var(--teal); font-weight: 500; }

/* PREREQS */
.vg6-prereqs { background: var(--paper-dark); padding: 2rem 4rem; display: flex; gap: 2rem; flex-wrap: wrap; align-items: center; border-bottom: 0.5px solid var(--border); }
.vg6-prereq-label { font-size: 0.63rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); font-weight: 500; flex-shrink: 0; }
.vg6-prereq-chips { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.vg6-prereq-chip { font-size: 0.72rem; padding: 0.3rem 0.9rem; border: 0.5px solid var(--border-strong); color: var(--charcoal); background: var(--paper); display: flex; align-items: center; gap: 0.4rem; }
.vg6-prereq-chip::before { content: '✓'; color: var(--teal); font-size: 0.65rem; font-weight: 600; }

/* BODY */
.vg6-body { max-width: 900px; margin: 0 auto; padding: 4rem; }
.vg6-step { margin-bottom: 3.5rem; }
.vg6-step-label { font-size: 0.63rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg6-step-label::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg6-step h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 300; line-height: 1.2; color: var(--ink); margin-bottom: 1rem; }
.vg6-step h2 em { font-style: italic; color: var(--teal); }
.vg6-step p { font-size: 0.93rem; line-height: 1.9; color: var(--charcoal); font-weight: 300; margin-bottom: 1rem; }
.vg6-step p strong { color: var(--ink); font-weight: 500; }
.vg6-divider { border: none; border-top: 0.5px solid var(--border); margin: 3rem 0; }

/* CALLOUT */
.vg6-callout { background: var(--paper-dark); border-left: 3px solid var(--amber); padding: 1.25rem 1.5rem; margin: 1.25rem 0; font-size: 0.87rem; line-height: 1.8; color: var(--charcoal); }
.vg6-callout strong { color: var(--amber); font-weight: 500; }
.vg6-callout.teal { border-color: var(--teal); }
.vg6-callout.teal strong { color: var(--teal); }

/* ── CODE BLOCKS ── */
.vg6-code-wrap { margin: 1.25rem 0; border: 0.5px solid rgba(255,255,255,0.06); overflow: hidden; }
.vg6-code-header { background: #2d333b; padding: 0.6rem 1.25rem; display: flex; justify-content: space-between; align-items: center; border-bottom: 0.5px solid rgba(255,255,255,0.06); }
.vg6-code-filename { font-family: 'DM Mono', monospace; font-size: 0.68rem; color: rgba(247,244,239,0.45); letter-spacing: 0.04em; }
.vg6-code-lang { font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--teal-light); font-weight: 500; }
.vg6-code-body { background: var(--db-dark); padding: 1.5rem; overflow-x: auto; }
.vg6-code-body pre { margin: 0; }
.vg6-code-body code { font-family: 'DM Mono', monospace; font-size: 0.82rem; line-height: 1.85; color: #e6edf3; white-space: pre; display: block; }

/* Syntax token colours */
.vg6-k  { color: #ff7b72; }   /* keyword: import, def, for, if */
.vg6-s  { color: #a5d6ff; }   /* string */
.vg6-c  { color: #8b949e; font-style: italic; } /* comment */
.vg6-f  { color: #d2a8ff; }   /* function / class call */
.vg6-n  { color: var(--amber-light); } /* number / constant */
.vg6-v  { color: #79c0ff; }   /* variable name */
.vg6-p  { color: #e6edf3; }   /* punctuation */
.vg6-m  { color: var(--teal-light); } /* magic / decorator */

/* ARCHITECTURE DIAGRAM */
.vg6-arch { display: flex; align-items: center; gap: 0; margin: 1.5rem 0; flex-wrap: wrap; }
.vg6-arch-box { background: var(--paper); border: 0.5px solid var(--border-strong); padding: 0.75rem 1.1rem; text-align: center; flex: 1; min-width: 100px; }
.vg6-arch-box .vg6-arch-icon { font-size: 1.25rem; margin-bottom: 0.25rem; }
.vg6-arch-box h5 { font-family: 'Cormorant Garamond', serif; font-size: 0.95rem; font-weight: 400; color: var(--ink); margin-bottom: 0.15rem; }
.vg6-arch-box p { font-size: 0.68rem; color: var(--muted); line-height: 1.4; font-weight: 300; }
.vg6-arch-box.highlight { background: var(--teal); border-color: var(--teal); }
.vg6-arch-box.highlight h5 { color: var(--paper); }
.vg6-arch-box.highlight p { color: rgba(247,244,239,0.6); }
.vg6-arch-arrow { font-size: 1rem; color: var(--muted); padding: 0 0.3rem; flex-shrink: 0; }

/* OUTPUT CARD */
.vg6-output-section { background: var(--db-dark); padding: 4rem; }
.vg6-output-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg6-output-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--amber-light); }
.vg6-output-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 300; color: var(--paper); margin-bottom: 2rem; }
.vg6-output-section > h2 em { font-style: italic; color: var(--amber-light); }
.vg6-output-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(247,244,239,0.06); border: 0.5px solid rgba(247,244,239,0.06); margin-bottom: 2rem; }
.vg6-output-stat { background: var(--db-dark); padding: 1.5rem; }
.vg6-output-stat-n { font-family: 'Cormorant Garamond', serif; font-size: 2.2rem; font-weight: 300; color: var(--teal-light); line-height: 1; margin-bottom: 0.3rem; letter-spacing: -0.02em; }
.vg6-output-stat-l { font-size: 0.65rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(247,244,239,0.35); }
.vg6-json-card { background: #161b22; border: 0.5px solid rgba(247,244,239,0.08); overflow: hidden; }
.vg6-json-header { background: #2d333b; padding: 0.55rem 1.25rem; display: flex; justify-content: space-between; }
.vg6-json-header span { font-family: 'DM Mono', monospace; font-size: 0.65rem; color: rgba(247,244,239,0.4); }
.vg6-json-header .vg6-json-tag { color: var(--teal-light); }
.vg6-json-body { padding: 1.5rem; font-family: 'DM Mono', monospace; font-size: 0.83rem; line-height: 1.9; color: #e6edf3; }
.vg6-json-key { color: var(--amber-light); }
.vg6-json-val-str { color: #a5d6ff; }
.vg6-json-val-num { color: #79c0ff; }
.vg6-json-punct { color: rgba(247,244,239,0.4); }

/* CATEGORIES CLOUD */
.vg6-categories { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.5rem 0; }
.vg6-cat-pill { font-size: 0.7rem; letter-spacing: 0.05em; padding: 0.3rem 0.85rem; border: 0.5px solid rgba(247,244,239,0.12); color: rgba(247,244,239,0.55); }
.vg6-cat-pill.active { border-color: var(--teal-light); color: var(--teal-light); background: rgba(29,158,117,0.1); }

/* INTERVIEW */
.vg6-interview-section { background: var(--teal-muted); padding: 4rem; }
.vg6-interview-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg6-interview-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg6-interview-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--ink); margin-bottom: 2.5rem; }
.vg6-interview-section > h2 em { font-style: italic; color: var(--teal); }
.vg6-qa-list { display: flex; flex-direction: column; }
.vg6-qa-item { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; padding: 1.5rem 0; border-top: 0.5px solid rgba(14,14,14,0.1); align-items: start; }
.vg6-qa-item:last-child { border-bottom: 0.5px solid rgba(14,14,14,0.1); }
.vg6-qa-q { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 400; color: var(--ink); line-height: 1.4; }
.vg6-q-badge { font-family: 'DM Mono', monospace; font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--teal); color: var(--paper); padding: 0.15rem 0.5rem; margin-bottom: 0.5rem; display: inline-block; }
.vg6-qa-a { font-size: 0.83rem; line-height: 1.8; color: var(--charcoal); font-weight: 300; }
.vg6-qa-a strong { color: var(--teal); font-weight: 500; }
.vg6-qa-a code { font-family: 'DM Mono', monospace; font-size: 0.77rem; background: rgba(14,14,14,0.07); padding: 0.1rem 0.35rem; color: var(--ink); }
.vg6-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.vg6-pill { font-size: 0.67rem; letter-spacing: 0.06em; padding: 0.25rem 0.75rem; border: 0.5px solid var(--border-strong); color: var(--charcoal); }
.vg6-pill.t { border-color: var(--teal); color: var(--teal); background: var(--teal-muted); }
.vg6-pill.a { border-color: var(--amber); color: var(--amber); background: var(--amber-muted); }

/* FOOTER */
.vg6-footer { background: var(--db-dark); padding: 3rem 4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; border-top: 0.5px solid rgba(247,244,239,0.06); }
.vg6-footer p { font-size: 0.82rem; color: rgba(247,244,239,0.35); font-weight: 300; }
.vg6-footer p strong { color: rgba(247,244,239,0.65); font-weight: 400; }
.vg6-footer-links { display: flex; gap: 1rem; }
.vg6-footer-btn { display: inline-block; padding: 0.65rem 1.75rem; font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 400; }
.vg6-footer-btn.primary { background: var(--teal); color: var(--paper); }
.vg6-footer-btn.ghost { background: transparent; color: rgba(247,244,239,0.55); border: 0.5px solid rgba(247,244,239,0.2); }

/* REVEAL */
.vg6-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
.vg6-reveal.vg6-vis { opacity: 1; transform: translateY(0); }
.vg6-d1 { transition-delay: 0.1s; } .vg6-d2 { transition-delay: 0.2s; }
</style>

<div class="vg6">

<!-- HERO -->
<div class="vg6-hero">
  <div class="vg6-hero-inner">
    <p class="vg6-eyebrow">GenAI Mastery Series · NLP · Databricks · LangChain</p>
    <h1>Categorizing Wikipedia at Scale with <em>OpenAI, LangChain &#038; Databricks</em></h1>
    <div class="vg6-meta-row">
      <p class="vg6-meta">Dataset<span>wikimedia/wikipedia · 10,000 articles</span></p>
      <p class="vg6-meta">Model<span>ChatOpenAI (GPT-4)</span></p>
      <p class="vg6-meta">Output<span>50-category JSON classifier</span></p>
    </div>
  </div>
</div>

<!-- STACK BAND -->
<div class="vg6-stack-band">
  <span class="vg6-stack-label">Stack</span>
  <span class="vg6-stack-pill">Databricks Notebook</span>
  <span class="vg6-stack-pill">LangChain Core</span>
  <span class="vg6-stack-pill">langchain_openai</span>
  <span class="vg6-stack-pill">HuggingFace Datasets</span>
  <span class="vg6-stack-pill">ChatPromptTemplate</span>
  <span class="vg6-stack-pill">Batch Inference</span>
  <span class="vg6-stack-pill">JSON Parsing</span>
</div>

<!-- INTRO -->
<div class="vg6-intro">
  <p>A complete walkthrough of a <strong>large-scale text classification pipeline</strong> built inside a Databricks notebook — from loading 10,000 Wikipedia articles to batch-classifying them into 50 categories using OpenAI&#8217;s language model via LangChain. Every step includes the real working code.</p>
</div>

<!-- PREREQS -->
<div class="vg6-prereqs">
  <span class="vg6-prereq-label">Prerequisites</span>
  <div class="vg6-prereq-chips">
    <span class="vg6-prereq-chip">Databricks Account</span>
    <span class="vg6-prereq-chip">Python (basic)</span>
    <span class="vg6-prereq-chip">OpenAI API Key</span>
    <span class="vg6-prereq-chip">HuggingFace Access</span>
  </div>
</div>

<!-- BODY -->
<div class="vg6-body">

  <!-- ARCHITECTURE -->
  <div class="vg6-step vg6-reveal">
    <p class="vg6-step-label">Overview</p>
    <h2>Pipeline <em>architecture</em></h2>
    <p>The full pipeline runs end-to-end inside a single Databricks notebook. Wikipedia articles are loaded from HuggingFace, cleaned to first-line summaries, batched, and sent to GPT-4 via LangChain&#8217;s chain interface. Responses are parsed from JSON into a DataFrame.</p>
    <div class="vg6-arch">
      <div class="vg6-arch-box"><div class="vg6-arch-icon">📦</div><h5>HuggingFace</h5><p>wikimedia/wikipedia dataset</p></div>
      <div class="vg6-arch-arrow">→</div>
      <div class="vg6-arch-box"><div class="vg6-arch-icon">✂️</div><h5>Clean</h5><p>First-line extraction</p></div>
      <div class="vg6-arch-arrow">→</div>
      <div class="vg6-arch-box highlight"><div class="vg6-arch-icon" style="color:var(--paper)">⛓</div><h5>LangChain</h5><p>Prompt + ChatOpenAI</p></div>
      <div class="vg6-arch-arrow">→</div>
      <div class="vg6-arch-box"><div class="vg6-arch-icon">🔄</div><h5>Batch (8)</h5><p>Rate-limit safe</p></div>
      <div class="vg6-arch-arrow">→</div>
      <div class="vg6-arch-box"><div class="vg6-arch-icon">📊</div><h5>DataFrame</h5><p>id + category</p></div>
    </div>
  </div>

  <hr class="vg6-divider">

  <!-- STEP 1 -->
  <div class="vg6-step vg6-reveal">
    <p class="vg6-step-label">Step 1</p>
    <h2>Install <em>required packages</em></h2>
    <p>In a Databricks notebook, use <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">%pip</code> magic commands to install packages into the cluster. The <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">%restart_python</code> command refreshes the interpreter to pick up the new packages without restarting the whole cluster.</p>
    <div class="vg6-code-wrap">
      <div class="vg6-code-header"><span class="vg6-code-filename">Databricks Notebook — Cell 1</span><span class="vg6-code-lang">Python / Magic</span></div>
      <div class="vg6-code-body"><code><span class="vg6-m">%pip install</span> langchain_openai
<span class="vg6-m">%pip install</span> <span class="vg6-v">--upgrade</span> langchain_core langchain_openai

<span class="vg6-m">%restart_python</span></code></div>
    </div>
  </div>

  <hr class="vg6-divider">

  <!-- STEP 2 -->
  <div class="vg6-step vg6-reveal">
    <p class="vg6-step-label">Step 2</p>
    <h2>Import <em>libraries</em></h2>
    <p>Standard Python utilities (<code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">json</code>, <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">time</code>, <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">os</code>) combined with <strong>LangChain</strong> for the LLM interface, <strong>HuggingFace Datasets</strong> for Wikipedia data loading, and <strong>tqdm</strong> for progress visibility during batch processing.</p>
    <div class="vg6-code-wrap">
      <div class="vg6-code-header"><span class="vg6-code-filename">Databricks Notebook — Cell 2</span><span class="vg6-code-lang">Python</span></div>
      <div class="vg6-code-body"><code><span class="vg6-k">import</span> json
<span class="vg6-k">import</span> time
<span class="vg6-k">import</span> os
<span class="vg6-k">import</span> getpass
<span class="vg6-k">import</span> pandas <span class="vg6-k">as</span> pd

<span class="vg6-k">from</span> datasets <span class="vg6-k">import</span> Dataset, load_dataset
<span class="vg6-k">from</span> tqdm <span class="vg6-k">import</span> tqdm
<span class="vg6-k">from</span> langchain_core.prompts <span class="vg6-k">import</span> ChatPromptTemplate
<span class="vg6-k">from</span> langchain_openai <span class="vg6-k">import</span> ChatOpenAI</code></div>
    </div>
  </div>

  <hr class="vg6-divider">

  <!-- STEP 3 -->
  <div class="vg6-step vg6-reveal">
    <p class="vg6-step-label">Step 3</p>
    <h2>Load &#038; clean <em>the dataset</em></h2>
    <p>The HuggingFace <strong>wikimedia/wikipedia</strong> dataset is massive — we take a 10,000 article slice from the English November 2023 snapshot. The cleaning step extracts only the first line of each article (the summary sentence), which is sufficient for category classification and drastically reduces token usage.</p>
    <div class="vg6-code-wrap">
      <div class="vg6-code-header"><span class="vg6-code-filename">Databricks Notebook — Cell 3</span><span class="vg6-code-lang">Python</span></div>
      <div class="vg6-code-body"><code><span class="vg6-c"># Load the Wikipedia English dataset (Nov 2023 snapshot)</span>
dataset = <span class="vg6-f">load_dataset</span>(<span class="vg6-s">"wikimedia/wikipedia"</span>, <span class="vg6-s">"20231101.en"</span>)

<span class="vg6-c"># Take a 10k article sample</span>
<span class="vg6-v">NUM_SAMPLES</span> = <span class="vg6-n">10000</span>
articles = dataset[<span class="vg6-s">"train"</span>][:<span class="vg6-v">NUM_SAMPLES</span>][<span class="vg6-s">"text"</span>]
ids      = dataset[<span class="vg6-s">"train"</span>][:<span class="vg6-v">NUM_SAMPLES</span>][<span class="vg6-s">"id"</span>]

<span class="vg6-c"># Clean: keep only the first line (article summary) to reduce tokens</span>
articles = [x.<span class="vg6-f">split</span>(<span class="vg6-s">"\n"</span>)[<span class="vg6-n">0</span>] <span class="vg6-k">for</span> x <span class="vg6-k">in</span> articles]

<span class="vg6-c"># Sanity check</span>
<span class="vg6-f">print</span>(<span class="vg6-f">len</span>(articles))   <span class="vg6-c"># → 10000</span>
<span class="vg6-f">print</span>(articles[<span class="vg6-n">99</span>])    <span class="vg6-c"># inspect a sample article</span></code></div>
    </div>
    <div class="vg6-callout teal">
      <strong>Why first line only?</strong> Wikipedia article summaries are dense and self-contained. Using the full article would cost ~10–50x more tokens per classification with minimal accuracy gain. At 10k articles × avg 150 tokens = ~1.5M input tokens — already significant. First-line only brings that to ~200k tokens.
    </div>
  </div>

  <hr class="vg6-divider">

  <!-- STEP 4 -->
  <div class="vg6-step vg6-reveal">
    <p class="vg6-step-label">Step 4</p>
    <h2>Configure <em>OpenAI + LangChain</em></h2>
    <p>Use <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">getpass</code> to securely prompt for the API key without echoing it to the notebook output. Then initialize <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">ChatOpenAI</code> — LangChain&#8217;s wrapper around the OpenAI Chat Completions API.</p>
    <div class="vg6-code-wrap">
      <div class="vg6-code-header"><span class="vg6-code-filename">Databricks Notebook — Cell 4 &#038; 5</span><span class="vg6-code-lang">Python</span></div>
      <div class="vg6-code-body"><code><span class="vg6-c"># Securely enter API key (won't echo to notebook output)</span>
os.environ[<span class="vg6-s">"OPENAI_API_KEY"</span>] = getpass.<span class="vg6-f">getpass</span>(<span class="vg6-s">"Enter your OpenAI API key: "</span>)

<span class="vg6-c"># Initialize the LangChain ChatOpenAI wrapper</span>
llm = <span class="vg6-f">ChatOpenAI</span>()
<span class="vg6-f">print</span>(llm.model_name)  <span class="vg6-c"># → "gpt-3.5-turbo" (default) or your configured model</span></code></div>
    </div>
  </div>

  <hr class="vg6-divider">

  <!-- STEP 5 -->
  <div class="vg6-step vg6-reveal">
    <p class="vg6-step-label">Step 5 — Core Logic</p>
    <h2>Define the <em>prompt template</em></h2>
    <p>The <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">ChatPromptTemplate</code> structures the conversation: a system message sets the classification task with all 50 categories, and the human message carries the article payload. The <strong>double curly braces</strong> <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">&#123;&#123; &#125;&#125;</code> in the JSON schema escape the literal braces so LangChain doesn&#8217;t treat them as template variables.</p>
    <div class="vg6-code-wrap">
      <div class="vg6-code-header"><span class="vg6-code-filename">Databricks Notebook — Cell 6</span><span class="vg6-code-lang">Python</span></div>
      <div class="vg6-code-body"><code>prompt = ChatPromptTemplate.<span class="vg6-f">from_messages</span>([
    (<span class="vg6-s">"system"</span>, <span class="vg6-s">"""Your task is to assess the article and categorize it
into one of the following predefined categories:

'History', 'Geography', 'Science', 'Technology', 'Mathematics',
'Literature', 'Art', 'Music', 'Film', 'Television', 'Sports',
'Politics', 'Philosophy', 'Religion', 'Sociology', 'Psychology',
'Economics', 'Business', 'Medicine', 'Biology', 'Chemistry',
'Physics', 'Astronomy', 'Environmental Science', 'Engineering',
'Computer Science', 'Linguistics', 'Anthropology', 'Archaeology',
'Education', 'Law', 'Military', 'Architecture', 'Fashion',
'Cuisine', 'Travel', 'Mythology', 'Folklore', 'Biography',
'Social Issues', 'Human Rights', 'Technology Ethics',
'Climate Change', 'Conservation', 'Urban Studies', 'Demographics',
'Journalism', 'Cryptocurrency', 'Artificial Intelligence'

Output ONLY a JSON object — no extra text:
{{
    "id": string,
    "category": string
}}"""</span>),
    (<span class="vg6-s">"human"</span>, <span class="vg6-s">"{input}"</span>)
])</code></div>
    </div>
    <div class="vg6-callout">
      <strong>Prompt engineering note:</strong> Listing all valid categories explicitly in the system prompt constrains the model to valid outputs — reducing hallucinated or free-form category names. The strict JSON output instruction combined with downstream <code>json.loads()</code> parsing creates a simple but robust structured output pipeline.
    </div>
  </div>

  <hr class="vg6-divider">

  <!-- STEP 6 -->
  <div class="vg6-step vg6-reveal">
    <p class="vg6-step-label">Step 6</p>
    <h2>Build the chain &#038; <em>test it</em></h2>
    <p>LangChain&#8217;s pipe operator <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">|</code> composes the prompt template and the LLM into a reusable chain. One call to <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">.invoke()</code> with a single article validates the whole setup before committing to batch processing.</p>
    <div class="vg6-code-wrap">
      <div class="vg6-code-header"><span class="vg6-code-filename">Databricks Notebook — Cell 7</span><span class="vg6-code-lang">Python</span></div>
      <div class="vg6-code-body"><code><span class="vg6-c"># Compose prompt → llm into a reusable chain</span>
chain = prompt | llm

<span class="vg6-c"># Test with article[0] before running the full batch</span>
content  = json.<span class="vg6-f">dumps</span>({<span class="vg6-s">"id"</span>: ids[<span class="vg6-n">0</span>], <span class="vg6-s">"article"</span>: articles[<span class="vg6-n">0</span>]})
response = chain.<span class="vg6-f">invoke</span>(content)
<span class="vg6-f">print</span>(response.content)
<span class="vg6-c"># → {"id": "1", "category": "History"}</span></code></div>
    </div>
  </div>

  <hr class="vg6-divider">

  <!-- STEP 7 -->
  <div class="vg6-step vg6-reveal">
    <p class="vg6-step-label">Step 7 — Core Loop</p>
    <h2>Batch processing <em>with rate-limit handling</em></h2>
    <p>Processing 1,000 articles one-by-one would quickly hit OpenAI&#8217;s requests-per-minute limit. The solution: accumulate inputs into batches of 8 and call <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">.batch()</code> with a <strong>1.5-second sleep</strong> between each batch. <code style="font-family:'DM Mono',monospace;font-size:0.82rem;background:rgba(14,14,14,0.07);padding:0.1rem 0.35rem">tqdm</code> wraps the loop to give live progress in the notebook.</p>
    <div class="vg6-code-wrap">
      <div class="vg6-code-header"><span class="vg6-code-filename">Databricks Notebook — Cell 8</span><span class="vg6-code-lang">Python</span></div>
      <div class="vg6-code-body"><code>results    = []
<span class="vg6-v">BATCH_SIZE</span> = <span class="vg6-n">8</span>
inputs     = []

<span class="vg6-k">for</span> index, article <span class="vg6-k">in</span> <span class="vg6-f">tqdm</span>(<span class="vg6-f">enumerate</span>(articles[:<span class="vg6-n">1000</span>])):

    inputs.<span class="vg6-f">append</span>(
        json.<span class="vg6-f">dumps</span>({<span class="vg6-s">"id"</span>: ids[index], <span class="vg6-s">"article"</span>: articles[index]})
    )

    <span class="vg6-k">if</span> <span class="vg6-f">len</span>(inputs) == <span class="vg6-v">BATCH_SIZE</span>:
        time.<span class="vg6-f">sleep</span>(<span class="vg6-n">1.5</span>)            <span class="vg6-c"># respect rate limits</span>
        response = chain.<span class="vg6-f">batch</span>(inputs)
        results += response
        inputs   = []               <span class="vg6-c"># reset buffer</span>

<span class="vg6-c"># Flush any remaining articles in the last partial batch</span>
<span class="vg6-k">if</span> inputs:
    response = chain.<span class="vg6-f">batch</span>(inputs)
    results += response</code></div>
    </div>
    <div class="vg6-callout">
      <strong>Rate limit strategy:</strong> Batch size 8 + 1.5s sleep = ~5 batches/sec = ~40 requests/sec. For the free OpenAI tier (3 RPM), reduce batch size to 1 and increase sleep to 20s. For production use, implement exponential backoff with <code>tenacity</code>.
    </div>
  </div>

  <hr class="vg6-divider">

  <!-- STEP 8 -->
  <div class="vg6-step vg6-reveal">
    <p class="vg6-step-label">Step 8</p>
    <h2>Parse results into <em>a DataFrame</em></h2>
    <p>Not every LLM response will be valid JSON — network hiccups, model refusals, and malformed outputs all happen at scale. The pattern below separates successful parses from failures so you can inspect and retry the failures without losing the successful results.</p>
    <div class="vg6-code-wrap">
      <div class="vg6-code-header"><span class="vg6-code-filename">Databricks Notebook — Cell 9</span><span class="vg6-code-lang">Python</span></div>
      <div class="vg6-code-body"><code>success = []
failure = []

<span class="vg6-k">for</span> output <span class="vg6-k">in</span> results:
    content = output.content
    <span class="vg6-k">try</span>:
        content = json.<span class="vg6-f">loads</span>(content)
        success.<span class="vg6-f">append</span>(content)
    <span class="vg6-k">except</span> ValueError <span class="vg6-k">as</span> e:
        failure.<span class="vg6-f">append</span>(content)  <span class="vg6-c"># keep for retry / inspection</span>

<span class="vg6-f">print</span>(<span class="vg6-f">f</span><span class="vg6-s">"Success: {len(success)} | Failure: {len(failure)}"</span>)

<span class="vg6-c"># Convert to DataFrame for analysis / export</span>
df = pd.<span class="vg6-f">DataFrame</span>(success)
df.<span class="vg6-f">head</span>(<span class="vg6-n">10</span>)</code></div>
    </div>
  </div>

</div><!-- /vg6-body -->

<!-- OUTPUT SECTION -->
<div class="vg6-output-section">
  <p class="vg6-output-eyebrow">Sample Output</p>
  <h2>What the <em>pipeline produces</em></h2>
  <div class="vg6-output-grid vg6-reveal">
    <div class="vg6-output-stat"><div class="vg6-output-stat-n">10k</div><div class="vg6-output-stat-l">Articles Loaded</div></div>
    <div class="vg6-output-stat"><div class="vg6-output-stat-n">1k</div><div class="vg6-output-stat-l">Articles Classified</div></div>
    <div class="vg6-output-stat"><div class="vg6-output-stat-n">50</div><div class="vg6-output-stat-l">Categories</div></div>
    <div class="vg6-output-stat"><div class="vg6-output-stat-n">8</div><div class="vg6-output-stat-l">Batch Size</div></div>
  </div>
  <div class="vg6-json-card vg6-reveal vg6-d1">
    <div class="vg6-json-header">
      <span>LLM Response — Single Article</span>
      <span class="vg6-json-tag">JSON output</span>
    </div>
    <div class="vg6-json-body">
<span class="vg6-json-punct">[</span>
  <span class="vg6-json-punct">{</span>
    <span class="vg6-json-key">&#8220;id&#8221;</span><span class="vg6-json-punct">:</span> <span class="vg6-json-val-str">&#8220;1&#8221;</span><span class="vg6-json-punct">,</span>
    <span class="vg6-json-key">&#8220;category&#8221;</span><span class="vg6-json-punct">:</span> <span class="vg6-json-val-str">&#8220;History&#8221;</span>
  <span class="vg6-json-punct">},</span>
  <span class="vg6-json-punct">{</span>
    <span class="vg6-json-key">&#8220;id&#8221;</span><span class="vg6-json-punct">:</span> <span class="vg6-json-val-str">&#8220;4&#8221;</span><span class="vg6-json-punct">,</span>
    <span class="vg6-json-key">&#8220;category&#8221;</span><span class="vg6-json-punct">:</span> <span class="vg6-json-val-str">&#8220;Computer Science&#8221;</span>
  <span class="vg6-json-punct">},</span>
  <span class="vg6-json-punct">{</span>
    <span class="vg6-json-key">&#8220;id&#8221;</span><span class="vg6-json-punct">:</span> <span class="vg6-json-val-str">&#8220;7&#8221;</span><span class="vg6-json-punct">,</span>
    <span class="vg6-json-key">&#8220;category&#8221;</span><span class="vg6-json-punct">:</span> <span class="vg6-json-val-str">&#8220;Biology&#8221;</span>
  <span class="vg6-json-punct">}</span>
<span class="vg6-json-punct">]</span>
    </div>
  </div>
  <p style="font-size:0.82rem;color:rgba(247,244,239,0.45);margin-top:1.5rem;font-weight:300;">All 50 available classification categories:</p>
  <div class="vg6-categories vg6-reveal vg6-d2">
    <span class="vg6-cat-pill active">History</span><span class="vg6-cat-pill">Geography</span><span class="vg6-cat-pill active">Science</span><span class="vg6-cat-pill">Technology</span><span class="vg6-cat-pill">Mathematics</span><span class="vg6-cat-pill">Literature</span><span class="vg6-cat-pill">Art</span><span class="vg6-cat-pill">Music</span><span class="vg6-cat-pill">Film</span><span class="vg6-cat-pill">Television</span><span class="vg6-cat-pill">Sports</span><span class="vg6-cat-pill active">Politics</span><span class="vg6-cat-pill">Philosophy</span><span class="vg6-cat-pill">Religion</span><span class="vg6-cat-pill">Sociology</span><span class="vg6-cat-pill">Psychology</span><span class="vg6-cat-pill">Economics</span><span class="vg6-cat-pill">Business</span><span class="vg6-cat-pill">Medicine</span><span class="vg6-cat-pill active">Biology</span><span class="vg6-cat-pill">Chemistry</span><span class="vg6-cat-pill">Physics</span><span class="vg6-cat-pill">Astronomy</span><span class="vg6-cat-pill">Environmental Science</span><span class="vg6-cat-pill">Engineering</span><span class="vg6-cat-pill active">Computer Science</span><span class="vg6-cat-pill">Linguistics</span><span class="vg6-cat-pill">Anthropology</span><span class="vg6-cat-pill">Archaeology</span><span class="vg6-cat-pill">Education</span><span class="vg6-cat-pill">Law</span><span class="vg6-cat-pill">Military</span><span class="vg6-cat-pill">Architecture</span><span class="vg6-cat-pill">Fashion</span><span class="vg6-cat-pill">Cuisine</span><span class="vg6-cat-pill">Travel</span><span class="vg6-cat-pill">Mythology</span><span class="vg6-cat-pill">Folklore</span><span class="vg6-cat-pill">Biography</span><span class="vg6-cat-pill">Social Issues</span><span class="vg6-cat-pill">Human Rights</span><span class="vg6-cat-pill active">Artificial Intelligence</span><span class="vg6-cat-pill">Cryptocurrency</span><span class="vg6-cat-pill">Climate Change</span><span class="vg6-cat-pill">Conservation</span><span class="vg6-cat-pill">Urban Studies</span><span class="vg6-cat-pill">Journalism</span><span class="vg6-cat-pill">Technology Ethics</span><span class="vg6-cat-pill">Demographics</span>
  </div>
</div>

<!-- INTERVIEW CHEAT SHEET -->
<div class="vg6-interview-section">
  <p class="vg6-interview-eyebrow">Interview Prep</p>
  <h2>Cheat sheet — <em>quick definitions to remember</em></h2>
  <div class="vg6-qa-list">

    <div class="vg6-qa-item vg6-reveal">
      <div class="vg6-qa-q"><span class="vg6-q-badge">Define</span><br>What is LangChain and what problem does it solve?</div>
      <div class="vg6-qa-a"><strong>A framework for composing LLM-powered applications</strong> from modular building blocks — prompts, models, chains, memory, tools, and agents. It solves the orchestration problem: how do you connect a prompt template to an LLM, parse the output, and chain multiple steps together cleanly?
        <div class="vg6-pills"><span class="vg6-pill t">Prompt + LLM + Output</span><span class="vg6-pill t">Composable chains</span><span class="vg6-pill">Pipe operator |</span></div>
      </div>
    </div>

    <div class="vg6-qa-item vg6-reveal vg6-d1">
      <div class="vg6-qa-q"><span class="vg6-q-badge">Explain</span><br>What is a ChatPromptTemplate?</div>
      <div class="vg6-qa-a">A <strong>reusable message template</strong> that structures the conversation for a chat model. Defines the system role (task instructions) and the human turn (variable input). The <code>{input}</code> placeholder gets filled at runtime. Separating instructions from data is a core prompt engineering best practice.
        <div class="vg6-pills"><span class="vg6-pill t">System = instructions</span><span class="vg6-pill t">Human = data</span><span class="vg6-pill">{input} placeholder</span></div>
      </div>
    </div>

    <div class="vg6-qa-item vg6-reveal">
      <div class="vg6-qa-q"><span class="vg6-q-badge">Explain</span><br>Why use <code>.batch()</code> instead of looping <code>.invoke()</code>?</div>
      <div class="vg6-qa-a"><code>.batch()</code> sends multiple requests <strong>concurrently</strong> using asyncio under the hood, while <code>.invoke()</code> is sequential. For 8 articles, batch is roughly 8x faster. The sleep between batches manages rate limits — you get concurrency within a batch, pacing across batches.
        <div class="vg6-pills"><span class="vg6-pill t">Concurrent within batch</span><span class="vg6-pill a">Sleep between batches</span><span class="vg6-pill">8x throughput gain</span></div>
      </div>
    </div>

    <div class="vg6-qa-item vg6-reveal vg6-d1">
      <div class="vg6-qa-q"><span class="vg6-q-badge">Gotcha</span><br>Why separate success and failure lists instead of crashing on parse error?</div>
      <div class="vg6-qa-a">At 1,000+ LLM calls, <strong>some will fail</strong> — network timeouts, content policy refusals, or models that occasionally output extra text before the JSON. A try/except pattern collects failures without losing the successful results. Failures can be inspected and retried separately.
        <div class="vg6-pills"><span class="vg6-pill a">Never crash on parse error</span><span class="vg6-pill">Inspect failures separately</span><span class="vg6-pill t">Retry pattern</span></div>
      </div>
    </div>

    <div class="vg6-qa-item vg6-reveal">
      <div class="vg6-qa-q"><span class="vg6-q-badge">Best Practice</span><br>How do you get reliable structured JSON from an LLM?</div>
      <div class="vg6-qa-a">Three layers: <strong>(1) Constrain in the prompt</strong> — list valid values, specify exact schema, say &#8220;output ONLY JSON&#8221;. <strong>(2) Use LangChain&#8217;s output parsers</strong> (<code>JsonOutputParser</code>) for automatic parsing and retry. <strong>(3) Validate with Pydantic</strong> — define a model and parse the JSON through it to catch type errors.
        <div class="vg6-pills"><span class="vg6-pill t">Constrain schema in prompt</span><span class="vg6-pill t">JsonOutputParser</span><span class="vg6-pill a">Pydantic validation</span></div>
      </div>
    </div>

    <div class="vg6-qa-item vg6-reveal vg6-d1">
      <div class="vg6-qa-q"><span class="vg6-q-badge">Explain</span><br>Why use Databricks for this pipeline?</div>
      <div class="vg6-qa-a">Databricks provides a <strong>managed Spark + Python environment</strong> that scales horizontally. For 10k–10M articles, you can parallelize across a cluster using Spark UDFs or <code>pandas_udf</code>. It also integrates with Delta Lake for storing results, MLflow for experiment tracking, and Unity Catalog for data governance.
        <div class="vg6-pills"><span class="vg6-pill t">Horizontal scale</span><span class="vg6-pill t">Delta Lake storage</span><span class="vg6-pill">MLflow tracking</span></div>
      </div>
    </div>

    <div class="vg6-qa-item vg6-reveal">
      <div class="vg6-qa-q"><span class="vg6-q-badge">Improve</span><br>How would you scale this to 10 million articles?</div>
      <div class="vg6-qa-a"><strong>Three upgrades:</strong> (1) Wrap the chain call in a <strong>Spark pandas_udf</strong> so it runs in parallel across the cluster. (2) Replace <code>time.sleep()</code> with <strong>exponential backoff</strong> via <code>tenacity</code>. (3) Use <strong>LangChain&#8217;s async batch</strong> with <code>chain.abatch()</code> and asyncio for maximum concurrency per node.
        <div class="vg6-pills"><span class="vg6-pill t">Spark pandas_udf</span><span class="vg6-pill t">chain.abatch()</span><span class="vg6-pill a">tenacity backoff</span></div>
      </div>
    </div>

  </div>
</div>

<!-- FOOTER -->
<div class="vg6-footer">
  <p><strong>GenAI Mastery Series</strong> — vijay-gokarn.com · Vijay Gokarn</p>
  <div class="vg6-footer-links">
    <a href="https://github.com/vijaygokarn130" class="vg6-footer-btn ghost">GitHub ↗</a>
    <a href="https://vijay-gokarn.com" class="vg6-footer-btn primary">Back to Blog ↗</a>
  </div>
</div>

</div><!-- /vg6 -->

<script>
(function(){
  var obs = new IntersectionObserver(function(e){
    e.forEach(function(x){ if(x.isIntersecting) x.target.classList.add('vg6-vis'); });
  }, {threshold: 0.08});
  document.querySelectorAll('.vg6-reveal').forEach(function(el){ obs.observe(el); });
})();
</script>
<p>The post <a href="https://vijay-gokarn.com/analyzing-wikipedia-articles-with-langchain-and-openai-in-databricks/">Analyzing Wikipedia Articles with Langchain and OpenAI in Databricks</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">140</post-id>	</item>
		<item>
		<title>RAG: Retrieval-Augmented Generation.</title>
		<link>https://vijay-gokarn.com/rag-retrieval-augmented-generation/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rag-retrieval-augmented-generation</link>
		
		<dc:creator><![CDATA[Vijay Gokarn]]></dc:creator>
		<pubDate>Mon, 15 Jul 2024 02:13:23 +0000</pubDate>
				<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[databricks]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[generative-ai]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://vijay-gokarn.com/?p=122</guid>

					<description><![CDATA[<p>GenAI Mastery Series · RAG · NLP · HuggingFace · FAISS Retrieval-Augmented Generation — Build a RAG Pipeline from Scratch RetrieverDPR + FAISS GeneratorBART (facebook/bart-large-cnn) StackHuggingFace Transformers · PyTorch Stack transformers faiss-cpu torch DPR Question Encoder DPR Context Encoder BART Generator datasets RAG (Retrieval-Augmented Generation) combines the factual accuracy of information retrieval with the fluent [&#8230;]</p>
<p>The post <a href="https://vijay-gokarn.com/rag-retrieval-augmented-generation/">RAG: Retrieval-Augmented Generation.</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;family=DM+Mono:wght@400&#038;display=swap" rel="stylesheet">

<style>
.vg7 {
  --ink: #0e0e0e; --paper: #f7f4ef; --paper-dark: #ede9e1;
  --teal: #0f6e56; --teal-light: #1d9e75; --teal-muted: #e1f5ee;
  --amber: #ba7517; --amber-light: #fac775; --amber-muted: #faeeda;
  --charcoal: #2c2c2a; --muted: #888780;
  --border: rgba(14,14,14,0.12); --border-strong: rgba(14,14,14,0.25);
  --code-bg: #161b22; --code-header: #2d333b; --code-border: rgba(255,255,255,0.06);
  font-family: 'DM Sans', sans-serif; font-weight: 300;
  color: var(--ink); background: var(--paper); line-height: 1.75; font-size: 16px; overflow-x: hidden;
}
.vg7 *, .vg7 *::before, .vg7 *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* HERO */
.vg7-hero { background: #0d1117; padding: 5rem 4rem 4rem; position: relative; overflow: hidden; }
.vg7-hero::before {
  content: 'RAG'; font-family: 'Cormorant Garamond', serif; font-size: 18rem;
  font-weight: 300; color: rgba(255,255,255,0.025); position: absolute;
  right: -1rem; bottom: -4rem; line-height: 1; pointer-events: none; letter-spacing: -0.05em;
}
.vg7-hero-inner { position: relative; z-index: 1; max-width: 900px; }
.vg7-eyebrow { font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal-light); font-weight: 500; margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.75rem; }
.vg7-eyebrow::before { content: ''; display: inline-block; width: 1.5rem; height: 1px; background: var(--teal-light); }
.vg7-hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 300; line-height: 1.1; color: var(--paper); letter-spacing: -0.02em; margin-bottom: 1.5rem; max-width: 26ch; }
.vg7-hero h1 em { font-style: italic; color: var(--amber-light); }
.vg7-meta-row { display: flex; gap: 2rem; flex-wrap: wrap; }
.vg7-meta { font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.35); }
.vg7-meta span { color: rgba(247,244,239,0.7); margin-left: 0.4rem; }

/* STACK BAND */
.vg7-stack-band { background: var(--teal); padding: 1.1rem 4rem; display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; }
.vg7-stack-label { font-size: 0.63rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.6); font-weight: 400; margin-right: 0.4rem; }
.vg7-stack-pill { font-size: 0.7rem; letter-spacing: 0.05em; padding: 0.28rem 0.85rem; background: rgba(255,255,255,0.12); color: #fff; border: 0.5px solid rgba(255,255,255,0.2); }

/* INTRO */
.vg7-intro { background: var(--teal-muted); padding: 2.5rem 4rem; border-left: 4px solid var(--teal); }
.vg7-intro p { font-size: 1.05rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; max-width: 80ch; }
.vg7-intro strong { color: var(--teal); font-weight: 500; }

/* BODY */
.vg7-body { max-width: 900px; margin: 0 auto; padding: 4rem; }
.vg7-step { margin-bottom: 3.5rem; }
.vg7-step-label { font-size: 0.63rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg7-step-label::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg7-step h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 300; line-height: 1.2; color: var(--ink); margin-bottom: 1rem; }
.vg7-step h2 em { font-style: italic; color: var(--teal); }
.vg7-step p { font-size: 0.93rem; line-height: 1.9; color: var(--charcoal); font-weight: 300; margin-bottom: 1rem; }
.vg7-step p strong { color: var(--ink); font-weight: 500; }
.vg7-divider { border: none; border-top: 0.5px solid var(--border); margin: 3rem 0; }
.vg7-ic { font-family: 'DM Mono', monospace; font-size: 0.82rem; background: rgba(14,14,14,0.07); padding: 0.1rem 0.4rem; color: var(--ink); }

/* CALLOUT */
.vg7-callout { background: var(--paper-dark); border-left: 3px solid var(--amber); padding: 1.25rem 1.5rem; margin: 1.25rem 0; font-size: 0.87rem; line-height: 1.8; color: var(--charcoal); }
.vg7-callout strong { color: var(--amber); font-weight: 500; }
.vg7-callout.teal { border-color: var(--teal); }
.vg7-callout.teal strong { color: var(--teal); }

/* RAG PILLARS */
.vg7-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border); border: 0.5px solid var(--border); margin: 1.5rem 0; }
.vg7-pillar { background: var(--paper); padding: 1.75rem 1.5rem; position: relative; }
.vg7-pillar::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; }
.vg7-pillar:nth-child(1)::before { background: var(--muted); }
.vg7-pillar:nth-child(2)::before { background: var(--amber); }
.vg7-pillar:nth-child(3)::before { background: var(--teal); }
.vg7-pillar-letter { font-family: 'Cormorant Garamond', serif; font-size: 3rem; font-weight: 300; line-height: 1; margin-bottom: 0.5rem; letter-spacing: -0.02em; }
.vg7-pillar:nth-child(1) .vg7-pillar-letter { color: var(--muted); }
.vg7-pillar:nth-child(2) .vg7-pillar-letter { color: var(--amber); }
.vg7-pillar:nth-child(3) .vg7-pillar-letter { color: var(--teal); }
.vg7-pillar h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 400; color: var(--ink); margin-bottom: 0.4rem; }
.vg7-pillar p { font-size: 0.82rem; line-height: 1.7; color: var(--charcoal); font-weight: 300; }

/* WHY RAG */
.vg7-why-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin: 1.5rem 0; }
.vg7-why-card { background: var(--paper); border: 0.5px solid var(--border-strong); padding: 1.25rem 1.5rem; display: flex; gap: 1rem; align-items: flex-start; }
.vg7-why-num { font-family: 'DM Mono', monospace; font-size: 0.68rem; color: var(--teal); min-width: 1.5rem; margin-top: 0.15rem; flex-shrink: 0; }
.vg7-why-body h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 400; color: var(--ink); margin-bottom: 0.3rem; }
.vg7-why-body p { font-size: 0.8rem; line-height: 1.65; color: var(--charcoal); font-weight: 300; }

/* ARCH DIAGRAM */
.vg7-arch { display: flex; align-items: center; gap: 0; margin: 1.5rem 0; flex-wrap: wrap; }
.vg7-arch-box { background: var(--paper); border: 0.5px solid var(--border-strong); padding: 0.9rem 1rem; text-align: center; flex: 1; min-width: 90px; }
.vg7-arch-box.hl { background: var(--teal); border-color: var(--teal); }
.vg7-arch-box.hl2 { background: var(--ink); border-color: var(--ink); }
.vg7-arch-box h5 { font-family: 'Cormorant Garamond', serif; font-size: 0.95rem; font-weight: 400; color: var(--ink); }
.vg7-arch-box.hl h5 { color: var(--paper); }
.vg7-arch-box.hl2 h5 { color: var(--paper); }
.vg7-arch-box p { font-size: 0.63rem; color: var(--muted); line-height: 1.3; font-weight: 300; margin-top: 0.2rem; }
.vg7-arch-box.hl p { color: rgba(247,244,239,0.6); }
.vg7-arch-box.hl2 p { color: rgba(247,244,239,0.5); }
.vg7-arch-arrow { font-size: 0.9rem; color: var(--muted); padding: 0 0.25rem; flex-shrink: 0; }

/* ── CODE BLOCKS ── */
.vg7-code-wrap { margin: 1.25rem 0; border: 0.5px solid var(--code-border); overflow: hidden; }
.vg7-code-header { background: var(--code-header); padding: 0.6rem 1.25rem; display: flex; justify-content: space-between; align-items: center; border-bottom: 0.5px solid var(--code-border); }
.vg7-code-filename { font-family: 'DM Mono', monospace; font-size: 0.68rem; color: rgba(247,244,239,0.45); letter-spacing: 0.04em; }
.vg7-code-lang { font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--teal-light); font-weight: 500; }
.vg7-code-body { background: var(--code-bg); padding: 1.5rem; overflow-x: auto; }
.vg7-code-body pre { margin: 0; }
.vg7-code-body code { font-family: 'DM Mono', monospace; font-size: 0.82rem; line-height: 1.85; color: #e6edf3; white-space: pre; display: block; }
/* syntax tokens */
.t-k  { color: #ff7b72; }
.t-s  { color: #a5d6ff; }
.t-c  { color: #8b949e; font-style: italic; }
.t-f  { color: #d2a8ff; }
.t-n  { color: #79c0ff; }
.t-v  { color: #ffa657; }
.t-m  { color: var(--teal-light); }
.t-p  { color: rgba(230,237,243,0.5); }
.t-cm { color: var(--amber-light); }

/* TERMINAL / PIP BLOCK */
.vg7-terminal { background: #0d1117; border: 0.5px solid rgba(255,255,255,0.1); padding: 1.25rem 1.5rem; margin: 1.25rem 0; font-family: 'DM Mono', monospace; font-size: 0.83rem; color: var(--teal-light); }
.vg7-terminal .t-prompt { color: rgba(247,244,239,0.25); margin-right: 0.5rem; user-select: none; }

/* INTERVIEW */
.vg7-interview-section { background: var(--ink); padding: 4rem; }
.vg7-interview-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg7-interview-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--amber-light); }
.vg7-interview-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--paper); margin-bottom: 2.5rem; }
.vg7-interview-section > h2 em { font-style: italic; color: var(--amber-light); }
.vg7-qa-list { display: flex; flex-direction: column; }
.vg7-qa-item { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; padding: 1.5rem 0; border-top: 0.5px solid rgba(247,244,239,0.1); align-items: start; }
.vg7-qa-item:last-child { border-bottom: 0.5px solid rgba(247,244,239,0.1); }
.vg7-qa-q { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 400; color: var(--paper); line-height: 1.4; }
.vg7-q-badge { font-family: 'DM Mono', monospace; font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--teal); color: var(--paper); padding: 0.15rem 0.5rem; margin-bottom: 0.5rem; display: inline-block; }
.vg7-qa-a { font-size: 0.83rem; line-height: 1.8; color: rgba(247,244,239,0.65); font-weight: 300; }
.vg7-qa-a strong { color: var(--amber-light); font-weight: 400; }
.vg7-qa-a code { font-family: 'DM Mono', monospace; font-size: 0.77rem; background: rgba(247,244,239,0.08); padding: 0.1rem 0.35rem; color: var(--paper); }
.vg7-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.vg7-pill { font-size: 0.67rem; letter-spacing: 0.06em; padding: 0.25rem 0.75rem; border: 0.5px solid rgba(247,244,239,0.15); color: rgba(247,244,239,0.5); }
.vg7-pill.t { border-color: var(--teal-light); color: var(--teal-light); }
.vg7-pill.a { border-color: var(--amber-light); color: var(--amber-light); }

/* FOOTER */
.vg7-footer { background: #0d1117; padding: 3rem 4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; border-top: 0.5px solid rgba(247,244,239,0.06); }
.vg7-footer p { font-size: 0.82rem; color: rgba(247,244,239,0.35); font-weight: 300; }
.vg7-footer p strong { color: rgba(247,244,239,0.65); font-weight: 400; }
.vg7-footer-links { display: flex; gap: 1rem; }
.vg7-btn { display: inline-block; padding: 0.65rem 1.75rem; font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 400; }
.vg7-btn.primary { background: var(--teal); color: var(--paper); }
.vg7-btn.ghost { background: transparent; color: rgba(247,244,239,0.55); border: 0.5px solid rgba(247,244,239,0.2); }

/* REVEAL */
.vg7-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
.vg7-reveal.vg7-vis { opacity: 1; transform: translateY(0); }
.vg7-d1 { transition-delay: 0.1s; } .vg7-d2 { transition-delay: 0.2s; } .vg7-d3 { transition-delay: 0.3s; }
</style>

<div class="vg7">

<!-- HERO -->
<div class="vg7-hero">
  <div class="vg7-hero-inner">
    <p class="vg7-eyebrow">GenAI Mastery Series · RAG · NLP · HuggingFace · FAISS</p>
    <h1>Retrieval-Augmented Generation — <em>Build a RAG Pipeline from Scratch</em></h1>
    <div class="vg7-meta-row">
      <p class="vg7-meta">Retriever<span>DPR + FAISS</span></p>
      <p class="vg7-meta">Generator<span>BART (facebook/bart-large-cnn)</span></p>
      <p class="vg7-meta">Stack<span>HuggingFace Transformers · PyTorch</span></p>
    </div>
  </div>
</div>

<!-- STACK BAND -->
<div class="vg7-stack-band">
  <span class="vg7-stack-label">Stack</span>
  <span class="vg7-stack-pill">transformers</span>
  <span class="vg7-stack-pill">faiss-cpu</span>
  <span class="vg7-stack-pill">torch</span>
  <span class="vg7-stack-pill">DPR Question Encoder</span>
  <span class="vg7-stack-pill">DPR Context Encoder</span>
  <span class="vg7-stack-pill">BART Generator</span>
  <span class="vg7-stack-pill">datasets</span>
</div>

<!-- INTRO -->
<div class="vg7-intro">
  <p><strong>RAG (Retrieval-Augmented Generation)</strong> combines the factual accuracy of information retrieval with the fluent language generation of large models. Instead of encoding all knowledge into model weights, it retrieves relevant documents at inference time and uses them as live context — producing more accurate, up-to-date, and traceable answers.</p>
</div>

<!-- BODY -->
<div class="vg7-body">

  <!-- WHAT IS RAG -->
  <div class="vg7-step vg7-reveal">
    <p class="vg7-step-label">Concept</p>
    <h2>What is <em>RAG?</em></h2>
    <p>RAG stands for <strong>Retrieval-Augmented Generation</strong>. It&#8217;s a three-stage technique that grounds a language model&#8217;s output in retrieved facts — dramatically reducing hallucinations and enabling access to knowledge that wasn&#8217;t in the model&#8217;s training data.</p>
    <div class="vg7-pillars">
      <div class="vg7-pillar vg7-reveal vg7-d1">
        <div class="vg7-pillar-letter">R</div>
        <h3>Retrieval</h3>
        <p>Search a large knowledge base to find documents relevant to the query. Uses dense vector similarity (DPR + FAISS) or sparse BM25.</p>
      </div>
      <div class="vg7-pillar vg7-reveal vg7-d2">
        <div class="vg7-pillar-letter">A</div>
        <h3>Augmentation</h3>
        <p>Inject the retrieved documents into the prompt as context — supplementing the original query with verified external knowledge.</p>
      </div>
      <div class="vg7-pillar vg7-reveal vg7-d3">
        <div class="vg7-pillar-letter">G</div>
        <h3>Generation</h3>
        <p>The language model generates its response conditioned on both the original query and the retrieved context — grounded, not hallucinated.</p>
      </div>
    </div>
  </div>

  <hr class="vg7-divider">

  <!-- WHY RAG -->
  <div class="vg7-step vg7-reveal">
    <p class="vg7-step-label">Motivation</p>
    <h2>Why RAG <em>matters</em></h2>
    <div class="vg7-why-grid">
      <div class="vg7-why-card vg7-reveal vg7-d1">
        <span class="vg7-why-num">01</span>
        <div class="vg7-why-body"><h4>Reduces Hallucinations</h4><p>Retrieved documents anchor the model to factual content, reducing fabricated answers that plague purely parametric models.</p></div>
      </div>
      <div class="vg7-why-card vg7-reveal vg7-d2">
        <span class="vg7-why-num">02</span>
        <div class="vg7-why-body"><h4>Up-to-Date Knowledge</h4><p>The knowledge base can be updated without retraining the entire model — keeping responses current without a costly fine-tune cycle.</p></div>
      </div>
      <div class="vg7-why-card vg7-reveal vg7-d1">
        <span class="vg7-why-num">03</span>
        <div class="vg7-why-body"><h4>Source Transparency</h4><p>Every response is traceable back to specific retrieved documents — critical for compliance, audit, and trust in enterprise deployments.</p></div>
      </div>
      <div class="vg7-why-card vg7-reveal vg7-d2">
        <span class="vg7-why-num">04</span>
        <div class="vg7-why-body"><h4>Domain Customization</h4><p>Swap the knowledge base to instantly specialize the system for healthcare, legal, finance, or any vertical — without model retraining.</p></div>
      </div>
      <div class="vg7-why-card vg7-reveal vg7-d1">
        <span class="vg7-why-num">05</span>
        <div class="vg7-why-body"><h4>Compute Efficiency</h4><p>It&#8217;s far cheaper to retrieve specific knowledge at inference than to encode it all into billions of model parameters during training.</p></div>
      </div>
      <div class="vg7-why-card vg7-reveal vg7-d2">
        <span class="vg7-why-num">06</span>
        <div class="vg7-why-body"><h4>Contextual Relevance</h4><p>Each query pulls its own specific context — the model isn&#8217;t constrained to a fixed knowledge snapshot, it adapts per-query.</p></div>
      </div>
    </div>
  </div>

  <hr class="vg7-divider">

  <!-- ARCHITECTURE -->
  <div class="vg7-step vg7-reveal">
    <p class="vg7-step-label">Architecture</p>
    <h2>Pipeline <em>overview</em></h2>
    <p>This implementation uses <strong>Dense Passage Retrieval (DPR)</strong> for encoding both questions and documents into a shared vector space, <strong>FAISS</strong> for fast nearest-neighbor search, and <strong>BART</strong> as the sequence-to-sequence generator.</p>
    <div class="vg7-arch">
      <div class="vg7-arch-box"><h5>Query</h5><p>User input</p></div>
      <div class="vg7-arch-arrow">→</div>
      <div class="vg7-arch-box hl"><h5>DPR Encoder</h5><p>Question embedding</p></div>
      <div class="vg7-arch-arrow">→</div>
      <div class="vg7-arch-box"><h5>FAISS Search</h5><p>Top-K similar docs</p></div>
      <div class="vg7-arch-arrow">→</div>
      <div class="vg7-arch-box"><h5>Concat</h5><p>Query + context</p></div>
      <div class="vg7-arch-arrow">→</div>
      <div class="vg7-arch-box hl2"><h5>BART</h5><p>Generate response</p></div>
    </div>
  </div>

  <hr class="vg7-divider">

  <!-- STEP 1 -->
  <div class="vg7-step vg7-reveal">
    <p class="vg7-step-label">Step 1</p>
    <h2>Install <em>dependencies</em></h2>
    <p>Four libraries cover everything: <strong>transformers</strong> for DPR and BART models, <strong>datasets</strong> for data loading, <strong>faiss-cpu</strong> for vector indexing, and <strong>torch</strong> as the deep learning backend.</p>
    <div class="vg7-terminal">
      <span class="t-prompt">$</span><span style="color:var(--teal-light)">pip install</span> transformers datasets faiss-cpu torch
    </div>
    <div class="vg7-callout teal">
      <strong>GPU note:</strong> Replace <code>faiss-cpu</code> with <code>faiss-gpu</code> for GPU-accelerated indexing on large corpora. For the retriever and generator models, ensure CUDA is available — BART on CPU is significantly slower for generation.
    </div>
  </div>

  <hr class="vg7-divider">

  <!-- STEP 2 -->
  <div class="vg7-step vg7-reveal">
    <p class="vg7-step-label">Step 2</p>
    <h2>Load models <em>&#038; tokenizers</em></h2>
    <p>RAG uses <strong>two separate encoders</strong> from DPR: a Question Encoder for query embeddings and a Context Encoder for document embeddings. These are trained jointly so their vectors are comparable in the same space. BART is the conditional generation model that produces the final answer.</p>
    <div class="vg7-code-wrap">
      <div class="vg7-code-header"><span class="vg7-code-filename">models.py</span><span class="vg7-code-lang">Python</span></div>
      <div class="vg7-code-body"><pre><code><span class="t-k">from</span> transformers <span class="t-k">import</span> DPRQuestionEncoder, DPRQuestionEncoderTokenizer
<span class="t-k">from</span> transformers <span class="t-k">import</span> DPRContextEncoder, DPRContextEncoderTokenizer
<span class="t-k">from</span> transformers <span class="t-k">import</span> BartTokenizer, BartForConditionalGeneration

<span class="t-c"># ── RETRIEVER: encodes the user's question into a dense vector ──</span>
question_encoder = DPRQuestionEncoder.<span class="t-f">from_pretrained</span>(
    <span class="t-s">'facebook/dpr-question_encoder-single-nq-base'</span>
)
question_tokenizer = DPRQuestionEncoderTokenizer.<span class="t-f">from_pretrained</span>(
    <span class="t-s">'facebook/dpr-question_encoder-single-nq-base'</span>
)

<span class="t-c"># ── RETRIEVER: encodes each document into a dense vector ──</span>
context_encoder = DPRContextEncoder.<span class="t-f">from_pretrained</span>(
    <span class="t-s">'facebook/dpr-ctx_encoder-single-nq-base'</span>
)
context_tokenizer = DPRContextEncoderTokenizer.<span class="t-f">from_pretrained</span>(
    <span class="t-s">'facebook/dpr-ctx_encoder-single-nq-base'</span>
)

<span class="t-c"># ── GENERATOR: seq2seq model that produces the final answer ──</span>
generator_tokenizer = BartTokenizer.<span class="t-f">from_pretrained</span>(<span class="t-s">'facebook/bart-large-cnn'</span>)
generator = BartForConditionalGeneration.<span class="t-f">from_pretrained</span>(<span class="t-s">'facebook/bart-large-cnn'</span>)</code></pre></div>
    </div>
  </div>

  <hr class="vg7-divider">

  <!-- STEP 3 -->
  <div class="vg7-step vg7-reveal">
    <p class="vg7-step-label">Step 3</p>
    <h2>Prepare <em>your documents</em></h2>
    <p>Each document needs a <strong>title</strong> and <strong>text</strong> field. In production this could be chunks from a PDF, database rows, web-scraped articles, or any domain corpus. Keep chunk sizes manageable — 256 to 512 tokens is a common sweet spot for retrieval quality.</p>
    <div class="vg7-code-wrap">
      <div class="vg7-code-header"><span class="vg7-code-filename">data.py</span><span class="vg7-code-lang">Python</span></div>
      <div class="vg7-code-body"><pre><code><span class="t-c"># Each document is a dict with title + text</span>
<span class="t-c"># In production: load from PDF, DB, S3, or a vector store</span>
documents = [
    {<span class="t-s">"title"</span>: <span class="t-s">"Document 1"</span>, <span class="t-s">"text"</span>: <span class="t-s">"This is the text of document 1."</span>},
    {<span class="t-s">"title"</span>: <span class="t-s">"Document 2"</span>, <span class="t-s">"text"</span>: <span class="t-s">"This is the text of document 2."</span>},
    <span class="t-c"># Add your real documents here...</span>
]</code></pre></div>
    </div>
    <div class="vg7-callout">
      <strong>Chunking strategy matters:</strong> For long documents, split into overlapping chunks of ~300 tokens. Too large = diluted retrieval signal. Too small = missing context for the generator. Overlap of ~50 tokens prevents cutting a sentence at a chunk boundary.
    </div>
  </div>

  <hr class="vg7-divider">

  <!-- STEP 4 -->
  <div class="vg7-step vg7-reveal">
    <p class="vg7-step-label">Step 4</p>
    <h2>Build the <em>FAISS index</em></h2>
    <p>Each document&#8217;s text is encoded by the DPR Context Encoder into a <strong>768-dimensional vector</strong>. These embeddings are stacked into a numpy array and added to a FAISS <code class="vg7-ic">IndexFlatL2</code> — a flat L2-distance index that does exact nearest-neighbor search.</p>
    <div class="vg7-code-wrap">
      <div class="vg7-code-header"><span class="vg7-code-filename">indexer.py</span><span class="vg7-code-lang">Python</span></div>
      <div class="vg7-code-body"><pre><code><span class="t-k">import</span> faiss
<span class="t-k">import</span> numpy <span class="t-k">as</span> np

context_embeddings = []

<span class="t-k">for</span> doc <span class="t-k">in</span> documents:
    inputs     = <span class="t-f">context_tokenizer</span>(doc[<span class="t-s">'text'</span>], return_tensors=<span class="t-s">'pt'</span>)
    embeddings = <span class="t-f">context_encoder</span>(**inputs).pooler_output.<span class="t-f">detach</span>().<span class="t-f">numpy</span>()
    context_embeddings.<span class="t-f">append</span>(embeddings[<span class="t-n">0</span>])

<span class="t-c"># Stack into (num_docs, 768) numpy array</span>
context_embeddings = np.<span class="t-f">array</span>(context_embeddings)

<span class="t-c"># Build FAISS flat L2 index — exact search, best for small-medium corpora</span>
index = faiss.<span class="t-f">IndexFlatL2</span>(context_embeddings.shape[<span class="t-n">1</span>])
index.<span class="t-f">add</span>(context_embeddings)

<span class="t-f">print</span>(<span class="t-f">f</span><span class="t-s">"Index built: {index.ntotal} vectors of dim {context_embeddings.shape[1]}"</span>)</code></pre></div>
    </div>
    <div class="vg7-callout teal">
      <strong>Scaling up:</strong> <code class="vg7-ic">IndexFlatL2</code> does exhaustive search — fine for thousands of docs. For millions, switch to <code class="vg7-ic">IndexIVFFlat</code> (inverted file) or <code class="vg7-ic">IndexHNSWFlat</code> (graph-based ANN) for approximate but fast search. Managed options: Pinecone, Weaviate, pgvector.
    </div>
  </div>

  <hr class="vg7-divider">

  <!-- STEP 5 -->
  <div class="vg7-step vg7-reveal">
    <p class="vg7-step-label">Step 5</p>
    <h2>Retrieve <em>relevant documents</em></h2>
    <p>For a given query, the Question Encoder produces a dense vector in the same space as the document embeddings. FAISS finds the <strong>top-K nearest documents</strong> by L2 distance — these are the most semantically similar docs to the query.</p>
    <div class="vg7-code-wrap">
      <div class="vg7-code-header"><span class="vg7-code-filename">retriever.py</span><span class="vg7-code-lang">Python</span></div>
      <div class="vg7-code-body"><pre><code><span class="t-k">def</span> <span class="t-f">retrieve_documents</span>(query, top_k=<span class="t-n">5</span>):
    <span class="t-c"># Encode the query into a dense vector</span>
    inputs            = <span class="t-f">question_tokenizer</span>(query, return_tensors=<span class="t-s">'pt'</span>)
    question_embedding = <span class="t-f">question_encoder</span>(**inputs).pooler_output.<span class="t-f">detach</span>().<span class="t-f">numpy</span>()

    <span class="t-c"># Search FAISS for the top_k nearest document vectors</span>
    _, indices = index.<span class="t-f">search</span>(question_embedding, top_k)

    <span class="t-c"># Return the actual document dicts</span>
    <span class="t-k">return</span> [documents[idx] <span class="t-k">for</span> idx <span class="t-k">in</span> indices[<span class="t-n">0</span>]]


<span class="t-c"># ── Test it ──</span>
query         = <span class="t-s">"What is the text of document 1?"</span>
retrieved_docs = <span class="t-f">retrieve_documents</span>(query)
<span class="t-f">print</span>(retrieved_docs)</code></pre></div>
    </div>
  </div>

  <hr class="vg7-divider">

  <!-- STEP 6 -->
  <div class="vg7-step vg7-reveal">
    <p class="vg7-step-label">Step 6</p>
    <h2>Generate the <em>response</em></h2>
    <p>The retrieved document texts are concatenated and prepended to the query. BART processes this combined input using <strong>beam search</strong> (<code class="vg7-ic">num_beams=4</code>) to generate a fluent, coherent response grounded in the retrieved facts.</p>
    <div class="vg7-code-wrap">
      <div class="vg7-code-header"><span class="vg7-code-filename">generator.py</span><span class="vg7-code-lang">Python</span></div>
      <div class="vg7-code-body"><pre><code><span class="t-k">def</span> <span class="t-f">generate_response</span>(query, retrieved_docs):
    <span class="t-c"># Concat all retrieved doc texts into one context string</span>
    context = <span class="t-s">" "</span>.<span class="t-f">join</span>([doc[<span class="t-s">'text'</span>] <span class="t-k">for</span> doc <span class="t-k">in</span> retrieved_docs])

    <span class="t-c"># Tokenize query + context together (truncate at 1024 tokens)</span>
    inputs = <span class="t-f">generator_tokenizer</span>(
        query + <span class="t-s">" "</span> + context,
        return_tensors = <span class="t-s">'pt'</span>,
        max_length     = <span class="t-n">1024</span>,
        truncation     = <span class="t-k">True</span>
    )

    <span class="t-c"># Generate with beam search for higher quality output</span>
    summary_ids = generator.<span class="t-f">generate</span>(
        inputs[<span class="t-s">'input_ids'</span>],
        num_beams     = <span class="t-n">4</span>,
        max_length    = <span class="t-n">512</span>,
        early_stopping = <span class="t-k">True</span>
    )

    <span class="t-k">return</span> generator_tokenizer.<span class="t-f">decode</span>(summary_ids[<span class="t-n">0</span>], skip_special_tokens=<span class="t-k">True</span>)


<span class="t-c"># ── End-to-end test ──</span>
query         = <span class="t-s">"What is the text of document 1?"</span>
retrieved_docs = <span class="t-f">retrieve_documents</span>(query)
response      = <span class="t-f">generate_response</span>(query, retrieved_docs)
<span class="t-f">print</span>(response)</code></pre></div>
    </div>
    <div class="vg7-callout">
      <strong>Beam search vs greedy:</strong> <code class="vg7-ic">num_beams=1</code> is greedy — fast but lower quality. <code class="vg7-ic">num_beams=4</code> keeps 4 candidate sequences at each step and returns the highest-scoring one. For production, <code class="vg7-ic">num_beams=4</code> with <code class="vg7-ic">early_stopping=True</code> is the standard BART configuration.
    </div>
  </div>

</div><!-- /vg7-body -->

<!-- INTERVIEW CHEAT SHEET -->
<div class="vg7-interview-section">
  <p class="vg7-interview-eyebrow">Interview Prep</p>
  <h2>Cheat sheet — <em>quick definitions to remember</em></h2>
  <div class="vg7-qa-list">

    <div class="vg7-qa-item vg7-reveal">
      <div class="vg7-qa-q"><span class="vg7-q-badge">Define</span><br>What is RAG in one sentence?</div>
      <div class="vg7-qa-a"><strong>Retrieve relevant documents, inject them as context, then generate a grounded response</strong> — combining the precision of information retrieval with the fluency of a language model to reduce hallucinations and enable access to external knowledge.
        <div class="vg7-pills"><span class="vg7-pill t">Retrieve → Augment → Generate</span><span class="vg7-pill a">Reduces hallucinations</span></div>
      </div>
    </div>

    <div class="vg7-qa-item vg7-reveal vg7-d1">
      <div class="vg7-qa-q"><span class="vg7-q-badge">Explain</span><br>What is DPR and why two encoders?</div>
      <div class="vg7-qa-a"><strong>Dense Passage Retrieval</strong> — two separate BERT-based encoders trained jointly: a Question Encoder and a Context Encoder. They&#8217;re kept separate because questions and documents have different linguistic structure. Joint training ensures their output vectors are comparable in the same embedding space.
        <div class="vg7-pills"><span class="vg7-pill t">Question Encoder</span><span class="vg7-pill t">Context Encoder</span><span class="vg7-pill">Same vector space</span></div>
      </div>
    </div>

    <div class="vg7-qa-item vg7-reveal">
      <div class="vg7-qa-q"><span class="vg7-q-badge">Explain</span><br>What is FAISS and when would you replace it?</div>
      <div class="vg7-qa-a"><strong>Facebook AI Similarity Search</strong> — a library for fast nearest-neighbor search over dense vectors. <code>IndexFlatL2</code> does exact exhaustive search — fine for thousands of docs but O(n) per query. For millions of docs, switch to <code>IndexIVFFlat</code> (approximate, partitioned) or a managed vector DB like Pinecone, Weaviate, or pgvector.
        <div class="vg7-pills"><span class="vg7-pill t">Exact: IndexFlatL2</span><span class="vg7-pill a">Approx: IVFFlat / HNSW</span><span class="vg7-pill">Scale: Pinecone / pgvector</span></div>
      </div>
    </div>

    <div class="vg7-qa-item vg7-reveal vg7-d1">
      <div class="vg7-qa-q"><span class="vg7-q-badge">Compare</span><br>RAG vs fine-tuning — when to use which?</div>
      <div class="vg7-qa-a">Use <strong>RAG</strong> when knowledge changes frequently, you need source attribution, or you want to avoid the cost of retraining. Use <strong>fine-tuning</strong> when you need the model to learn a new style, format, or reasoning pattern that retrieval can&#8217;t provide. In practice, the best systems combine both.
        <div class="vg7-pills"><span class="vg7-pill t">RAG = dynamic knowledge</span><span class="vg7-pill a">Fine-tune = style / reasoning</span><span class="vg7-pill">Combine for best results</span></div>
      </div>
    </div>

    <div class="vg7-qa-item vg7-reveal">
      <div class="vg7-qa-q"><span class="vg7-q-badge">Gotcha</span><br>What is the &#8220;lost in the middle&#8221; problem in RAG?</div>
      <div class="vg7-qa-a">When multiple documents are concatenated as context, LLMs tend to attend best to the <strong>beginning and end</strong> of the input — information in the middle gets underweighted. Mitigations: rerank retrieved docs by relevance before concatenation, or use a model with a longer, more uniform attention mechanism.
        <div class="vg7-pills"><span class="vg7-pill a">Middle docs underweighted</span><span class="vg7-pill t">Rerank before concat</span><span class="vg7-pill">Limit top_k to 3–5</span></div>
      </div>
    </div>

    <div class="vg7-qa-item vg7-reveal vg7-d1">
      <div class="vg7-qa-q"><span class="vg7-q-badge">Explain</span><br>What does beam search do in generation?</div>
      <div class="vg7-qa-a">Instead of greedily picking the single best next token at each step, <strong>beam search keeps the top N candidate sequences</strong> (beams) in parallel and returns the highest-scoring complete sequence. <code>num_beams=4</code> explores 4 paths simultaneously — better quality than greedy, with manageable compute overhead.
        <div class="vg7-pills"><span class="vg7-pill">num_beams=1 = greedy</span><span class="vg7-pill t">num_beams=4 = quality</span><span class="vg7-pill a">Higher beams = slower</span></div>
      </div>
    </div>

    <div class="vg7-qa-item vg7-reveal">
      <div class="vg7-qa-q"><span class="vg7-q-badge">Improve</span><br>How would you modernize this RAG stack for production?</div>
      <div class="vg7-qa-a"><strong>Three upgrades:</strong> (1) Replace DPR + BART with a <strong>single LLM via Bedrock or OpenAI</strong> — better quality, less infrastructure. (2) Replace FAISS with <strong>pgvector or Pinecone</strong> for managed, scalable retrieval. (3) Add a <strong>reranker</strong> (cross-encoder) between retrieval and generation to reorder results by relevance before injecting as context.
        <div class="vg7-pills"><span class="vg7-pill t">Bedrock / OpenAI LLM</span><span class="vg7-pill t">pgvector / Pinecone</span><span class="vg7-pill a">Cross-encoder reranker</span></div>
      </div>
    </div>

  </div>
</div>

<!-- FOOTER -->
<div class="vg7-footer">
  <p><strong>GenAI Mastery Series</strong> — vijay-gokarn.com · Vijay Gokarn</p>
  <div class="vg7-footer-links">
    <a href="https://github.com/vijaygokarn130" class="vg7-btn ghost">GitHub ↗</a>
    <a href="https://vijay-gokarn.com" class="vg7-btn primary">Back to Blog ↗</a>
  </div>
</div>

</div><!-- /vg7 -->

<script>
(function(){
  var obs = new IntersectionObserver(function(e){
    e.forEach(function(x){ if(x.isIntersecting) x.target.classList.add('vg7-vis'); });
  }, {threshold: 0.08});
  document.querySelectorAll('.vg7-reveal').forEach(function(el){ obs.observe(el); });
})();
</script>v
<p>The post <a href="https://vijay-gokarn.com/rag-retrieval-augmented-generation/">RAG: Retrieval-Augmented Generation.</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">122</post-id>	</item>
		<item>
		<title>Pandas Remove Duplicates</title>
		<link>https://vijay-gokarn.com/pandas-remove-duplicates/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pandas-remove-duplicates</link>
		
		<dc:creator><![CDATA[Vijay Gokarn]]></dc:creator>
		<pubDate>Tue, 09 Jul 2024 11:12:55 +0000</pubDate>
				<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[databricks]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[generative-ai]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[data-analysis]]></category>
		<category><![CDATA[gen-ai]]></category>
		<category><![CDATA[pandas]]></category>
		<guid isPermaLink="false">https://vijay-gokarn.com/?p=119</guid>

					<description><![CDATA[<p>Data Engineering · Python · Pandas · Data Cleaning Handling Duplicate Rows in Pandas — Identify, Remove &#038; Export Clean Data Librarypandas Methodsduplicated() · drop_duplicates() · reset_index() OutputCleaned CSV Stack Python pandas df.duplicated() drop_duplicates() reset_index() to_csv() Duplicate rows are one of the most common data quality issues — and one of the most damaging to [&#8230;]</p>
<p>The post <a href="https://vijay-gokarn.com/pandas-remove-duplicates/">Pandas Remove Duplicates</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;family=DM+Mono:wght@400&#038;display=swap" rel="stylesheet">

<style>
.vg8 {
  --ink: #0e0e0e; --paper: #f7f4ef; --paper-dark: #ede9e1;
  --teal: #0f6e56; --teal-light: #1d9e75; --teal-muted: #e1f5ee;
  --amber: #ba7517; --amber-light: #fac775; --amber-muted: #faeeda;
  --charcoal: #2c2c2a; --muted: #888780;
  --border: rgba(14,14,14,0.12); --border-strong: rgba(14,14,14,0.25);
  --code-bg: #161b22; --code-header: #2d333b; --code-border: rgba(255,255,255,0.06);
  font-family: 'DM Sans', sans-serif; font-weight: 300;
  color: var(--ink); background: var(--paper); line-height: 1.75; font-size: 16px; overflow-x: hidden;
}
.vg8 *, .vg8 *::before, .vg8 *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* HERO */
.vg8-hero { background: #0d1117; padding: 5rem 4rem 4rem; position: relative; overflow: hidden; }
.vg8-hero::before {
  content: '⊕'; font-family: 'Cormorant Garamond', serif; font-size: 22rem;
  font-weight: 300; color: rgba(255,255,255,0.025); position: absolute;
  right: 1rem; bottom: -5rem; line-height: 1; pointer-events: none;
}
.vg8-hero-inner { position: relative; z-index: 1; max-width: 900px; }
.vg8-eyebrow { font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal-light); font-weight: 500; margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.75rem; }
.vg8-eyebrow::before { content: ''; display: inline-block; width: 1.5rem; height: 1px; background: var(--teal-light); }
.vg8-hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 300; line-height: 1.1; color: var(--paper); letter-spacing: -0.02em; margin-bottom: 1.5rem; max-width: 28ch; }
.vg8-hero h1 em { font-style: italic; color: var(--amber-light); }
.vg8-meta-row { display: flex; gap: 2rem; flex-wrap: wrap; }
.vg8-meta { font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.35); }
.vg8-meta span { color: rgba(247,244,239,0.7); margin-left: 0.4rem; }

/* STACK BAND */
.vg8-stack-band { background: var(--teal); padding: 1.1rem 4rem; display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; }
.vg8-stack-label { font-size: 0.63rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.6); font-weight: 400; margin-right: 0.4rem; }
.vg8-stack-pill { font-size: 0.7rem; letter-spacing: 0.05em; padding: 0.28rem 0.85rem; background: rgba(255,255,255,0.12); color: #fff; border: 0.5px solid rgba(255,255,255,0.2); }

/* INTRO */
.vg8-intro { background: var(--teal-muted); padding: 2.5rem 4rem; border-left: 4px solid var(--teal); }
.vg8-intro p { font-size: 1.05rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; max-width: 80ch; }
.vg8-intro strong { color: var(--teal); font-weight: 500; }

/* BODY */
.vg8-body { max-width: 900px; margin: 0 auto; padding: 4rem; }
.vg8-step { margin-bottom: 3.5rem; }
.vg8-step-label { font-size: 0.63rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg8-step-label::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg8-step h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 300; line-height: 1.2; color: var(--ink); margin-bottom: 1rem; }
.vg8-step h2 em { font-style: italic; color: var(--teal); }
.vg8-step p { font-size: 0.93rem; line-height: 1.9; color: var(--charcoal); font-weight: 300; margin-bottom: 1rem; }
.vg8-step p strong { color: var(--ink); font-weight: 500; }
.vg8-divider { border: none; border-top: 0.5px solid var(--border); margin: 3rem 0; }
.vg8-ic { font-family: 'DM Mono', monospace; font-size: 0.82rem; background: rgba(14,14,14,0.07); padding: 0.1rem 0.4rem; color: var(--ink); }

/* CALLOUT */
.vg8-callout { background: var(--paper-dark); border-left: 3px solid var(--amber); padding: 1.25rem 1.5rem; margin: 1.25rem 0; font-size: 0.87rem; line-height: 1.8; color: var(--charcoal); }
.vg8-callout strong { color: var(--amber); font-weight: 500; }
.vg8-callout.teal { border-color: var(--teal); }
.vg8-callout.teal strong { color: var(--teal); }

/* STRATEGY CARDS */
.vg8-strategy-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin: 1.5rem 0; }
.vg8-strategy-card { background: var(--paper); border: 0.5px solid var(--border-strong); padding: 1.5rem; position: relative; }
.vg8-strategy-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; }
.vg8-strategy-card:nth-child(1)::before { background: var(--muted); }
.vg8-strategy-card:nth-child(2)::before { background: var(--amber); }
.vg8-strategy-card:nth-child(3)::before { background: var(--teal); }
.vg8-strategy-card .vg8-strat-tag { font-family: 'DM Mono', monospace; font-size: 0.65rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.5rem; display: block; }
.vg8-strategy-card:nth-child(2) .vg8-strat-tag { color: var(--amber); }
.vg8-strategy-card:nth-child(3) .vg8-strat-tag { color: var(--teal); }
.vg8-strategy-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 400; color: var(--ink); margin-bottom: 0.4rem; }
.vg8-strategy-card p { font-size: 0.82rem; line-height: 1.7; color: var(--charcoal); font-weight: 300; }

/* PIPELINE */
.vg8-pipeline { display: flex; flex-direction: column; gap: 0; margin: 1.5rem 0; }
.vg8-pipeline-step { display: grid; grid-template-columns: 52px 1fr; gap: 1.5rem; padding: 1.25rem 0; border-top: 0.5px solid var(--border); align-items: start; }
.vg8-pipeline-step:last-child { border-bottom: 0.5px solid var(--border); }
.vg8-pipeline-num { width: 36px; height: 36px; background: var(--teal); display: flex; align-items: center; justify-content: center; font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 300; color: var(--paper); flex-shrink: 0; }
.vg8-pipeline-body h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 400; color: var(--ink); margin-bottom: 0.3rem; }
.vg8-pipeline-body p { font-size: 0.83rem; line-height: 1.7; color: var(--charcoal); font-weight: 300; }

/* CODE BLOCKS */
.vg8-code-wrap { margin: 1.25rem 0; border: 0.5px solid var(--code-border); overflow: hidden; }
.vg8-code-header { background: var(--code-header); padding: 0.6rem 1.25rem; display: flex; justify-content: space-between; align-items: center; border-bottom: 0.5px solid var(--code-border); }
.vg8-code-filename { font-family: 'DM Mono', monospace; font-size: 0.68rem; color: rgba(247,244,239,0.45); letter-spacing: 0.04em; }
.vg8-code-lang { font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--teal-light); font-weight: 500; }
.vg8-code-body { background: var(--code-bg); padding: 1.5rem; overflow-x: auto; }
.vg8-code-body pre { margin: 0; }
.vg8-code-body code { font-family: 'DM Mono', monospace; font-size: 0.82rem; line-height: 1.85; color: #e6edf3; white-space: pre; display: block; }
/* tokens */
.t8-k { color: #ff7b72; }
.t8-s { color: #a5d6ff; }
.t8-c { color: #8b949e; font-style: italic; }
.t8-f { color: #d2a8ff; }
.t8-n { color: #79c0ff; }
.t8-v { color: #ffa657; }
.t8-b { color: var(--amber-light); }

/* FULL SCRIPT SECTION */
.vg8-full-section { background: var(--paper-dark); padding: 4rem; }
.vg8-full-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg8-full-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg8-full-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--ink); margin-bottom: 0.75rem; }
.vg8-full-section > h2 em { font-style: italic; color: var(--teal); }
.vg8-full-section > p { font-size: 0.9rem; color: var(--charcoal); font-weight: 300; line-height: 1.8; margin-bottom: 2rem; max-width: 70ch; }

/* INTERVIEW */
.vg8-interview-section { background: var(--ink); padding: 4rem; }
.vg8-interview-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg8-interview-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--amber-light); }
.vg8-interview-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--paper); margin-bottom: 2.5rem; }
.vg8-interview-section > h2 em { font-style: italic; color: var(--amber-light); }
.vg8-qa-list { display: flex; flex-direction: column; }
.vg8-qa-item { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; padding: 1.5rem 0; border-top: 0.5px solid rgba(247,244,239,0.1); align-items: start; }
.vg8-qa-item:last-child { border-bottom: 0.5px solid rgba(247,244,239,0.1); }
.vg8-qa-q { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 400; color: var(--paper); line-height: 1.4; }
.vg8-q-badge { font-family: 'DM Mono', monospace; font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--teal); color: var(--paper); padding: 0.15rem 0.5rem; margin-bottom: 0.5rem; display: inline-block; }
.vg8-qa-a { font-size: 0.83rem; line-height: 1.8; color: rgba(247,244,239,0.65); font-weight: 300; }
.vg8-qa-a strong { color: var(--amber-light); font-weight: 400; }
.vg8-qa-a code { font-family: 'DM Mono', monospace; font-size: 0.77rem; background: rgba(247,244,239,0.08); padding: 0.1rem 0.35rem; color: var(--paper); }
.vg8-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.vg8-pill { font-size: 0.67rem; letter-spacing: 0.06em; padding: 0.25rem 0.75rem; border: 0.5px solid rgba(247,244,239,0.15); color: rgba(247,244,239,0.5); }
.vg8-pill.t { border-color: var(--teal-light); color: var(--teal-light); }
.vg8-pill.a { border-color: var(--amber-light); color: var(--amber-light); }

/* FOOTER */
.vg8-footer { background: #0d1117; padding: 3rem 4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; border-top: 0.5px solid rgba(247,244,239,0.06); }
.vg8-footer p { font-size: 0.82rem; color: rgba(247,244,239,0.35); font-weight: 300; }
.vg8-footer p strong { color: rgba(247,244,239,0.65); font-weight: 400; }
.vg8-footer-links { display: flex; gap: 1rem; }
.vg8-btn { display: inline-block; padding: 0.65rem 1.75rem; font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 400; }
.vg8-btn.primary { background: var(--teal); color: var(--paper); }
.vg8-btn.ghost { background: transparent; color: rgba(247,244,239,0.55); border: 0.5px solid rgba(247,244,239,0.2); }

/* REVEAL */
.vg8-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
.vg8-reveal.vg8-vis { opacity: 1; transform: translateY(0); }
.vg8-d1 { transition-delay: 0.1s; } .vg8-d2 { transition-delay: 0.2s; } .vg8-d3 { transition-delay: 0.3s; }
</style>

<div class="vg8">

<!-- HERO -->
<div class="vg8-hero">
  <div class="vg8-hero-inner">
    <p class="vg8-eyebrow">Data Engineering · Python · Pandas · Data Cleaning</p>
    <h1>Handling Duplicate Rows in Pandas — <em>Identify, Remove &#038; Export Clean Data</em></h1>
    <div class="vg8-meta-row">
      <p class="vg8-meta">Library<span>pandas</span></p>
      <p class="vg8-meta">Methods<span>duplicated() · drop_duplicates() · reset_index()</span></p>
      <p class="vg8-meta">Output<span>Cleaned CSV</span></p>
    </div>
  </div>
</div>

<!-- STACK BAND -->
<div class="vg8-stack-band">
  <span class="vg8-stack-label">Stack</span>
  <span class="vg8-stack-pill">Python</span>
  <span class="vg8-stack-pill">pandas</span>
  <span class="vg8-stack-pill">df.duplicated()</span>
  <span class="vg8-stack-pill">drop_duplicates()</span>
  <span class="vg8-stack-pill">reset_index()</span>
  <span class="vg8-stack-pill">to_csv()</span>
</div>

<!-- INTRO -->
<div class="vg8-intro">
  <p>Duplicate rows are one of the most common data quality issues — and one of the most damaging to model accuracy and analysis reliability. <strong>Pandas</strong> gives you precise tools to detect, inspect, and remove duplicates with a single line of code. This guide walks through the full pipeline: load, detect, choose a strategy, clean, and export.</p>
</div>

<!-- BODY -->
<div class="vg8-body">

  <!-- WHY IT MATTERS -->
  <div class="vg8-step vg8-reveal">
    <p class="vg8-step-label">Context</p>
    <h2>Why duplicates <em>matter</em></h2>
    <p>Duplicate rows skew aggregations, inflate record counts, bias ML model training, and produce misleading visualizations. A sales total that counts the same transaction twice, a classifier trained on repeated samples — both produce results that look correct but aren&#8217;t. <strong>Clean data is the foundation everything else is built on.</strong></p>
    <div class="vg8-strategy-grid">
      <div class="vg8-strategy-card vg8-reveal vg8-d1">
        <span class="vg8-strat-tag">keep=&#8217;first&#8217;</span>
        <h3>Keep First</h3>
        <p>Drop all duplicates <em>except</em> the first occurrence. The original record is preserved. Most common default choice.</p>
      </div>
      <div class="vg8-strategy-card vg8-reveal vg8-d2">
        <span class="vg8-strat-tag">keep=&#8217;last&#8217;</span>
        <h3>Keep Last</h3>
        <p>Drop all duplicates <em>except</em> the last occurrence. Useful when later records represent updated values.</p>
      </div>
      <div class="vg8-strategy-card vg8-reveal vg8-d3">
        <span class="vg8-strat-tag">keep=False</span>
        <h3>Drop All</h3>
        <p>Remove every instance of a duplicated row — including the first. Use when any duplicated record is invalid.</p>
      </div>
    </div>
  </div>

  <hr class="vg8-divider">

  <!-- PIPELINE OVERVIEW -->
  <div class="vg8-step vg8-reveal">
    <p class="vg8-step-label">Pipeline</p>
    <h2>The four-step <em>deduplication pipeline</em></h2>
    <div class="vg8-pipeline">
      <div class="vg8-pipeline-step vg8-reveal">
        <div class="vg8-pipeline-num">1</div>
        <div class="vg8-pipeline-body"><h4>Load</h4><p>Read the raw CSV into a DataFrame with <code class="vg8-ic">pd.read_csv()</code>.</p></div>
      </div>
      <div class="vg8-pipeline-step vg8-reveal vg8-d1">
        <div class="vg8-pipeline-num">2</div>
        <div class="vg8-pipeline-body"><h4>Detect</h4><p>Use <code class="vg8-ic">df.duplicated()</code> to identify and inspect all duplicate rows before touching the data.</p></div>
      </div>
      <div class="vg8-pipeline-step vg8-reveal vg8-d2">
        <div class="vg8-pipeline-num">3</div>
        <div class="vg8-pipeline-body"><h4>Remove</h4><p>Call <code class="vg8-ic">drop_duplicates(keep=...)</code> with your chosen strategy. Reset the index for a clean sequential result.</p></div>
      </div>
      <div class="vg8-pipeline-step vg8-reveal vg8-d3">
        <div class="vg8-pipeline-num">4</div>
        <div class="vg8-pipeline-body"><h4>Export</h4><p>Write the cleaned DataFrame back to CSV with <code class="vg8-ic">to_csv()</code> for downstream use.</p></div>
      </div>
    </div>
  </div>

  <hr class="vg8-divider">

  <!-- STEP 1 — LOAD -->
  <div class="vg8-step vg8-reveal">
    <p class="vg8-step-label">Step 1</p>
    <h2>Load <em>your dataset</em></h2>
    <p>Start by reading your data into a pandas DataFrame. <code class="vg8-ic">pd.read_csv()</code> is the standard entry point for flat files. From here, all deduplication operations work on the in-memory DataFrame — your source file is never modified.</p>
    <div class="vg8-code-wrap">
      <div class="vg8-code-header"><span class="vg8-code-filename">load_data.py</span><span class="vg8-code-lang">Python</span></div>
      <div class="vg8-code-body"><pre><code><span class="t8-k">import</span> pandas <span class="t8-k">as</span> pd

<span class="t8-c"># Read the raw dataset into a DataFrame</span>
df = pd.<span class="t8-f">read_csv</span>(<span class="t8-s">'your_data_file.csv'</span>)

<span class="t8-c"># Quick shape check before cleaning</span>
<span class="t8-f">print</span>(<span class="t8-f">f</span><span class="t8-s">"Rows: {df.shape[0]:,}  |  Columns: {df.shape[1]}"</span>)</code></pre></div>
    </div>
    <div class="vg8-callout teal">
      <strong>Other sources:</strong> The same deduplication logic applies regardless of how you load your data. Use <code class="vg8-ic">pd.read_excel()</code> for XLSX, <code class="vg8-ic">pd.read_parquet()</code> for Parquet, or query a database with <code class="vg8-ic">pd.read_sql()</code> — all return a DataFrame you can clean the same way.
    </div>
  </div>

  <hr class="vg8-divider">

  <!-- STEP 2 — DETECT -->
  <div class="vg8-step vg8-reveal">
    <p class="vg8-step-label">Step 2</p>
    <h2>Detect <em>&#038; inspect duplicates</em></h2>
    <p><code class="vg8-ic">df.duplicated()</code> returns a boolean Series — <code class="vg8-ic">True</code> for every row that is a duplicate of an earlier row. Always <strong>inspect before you remove</strong> — understanding what the duplicates look like helps you choose the right strategy.</p>
    <div class="vg8-code-wrap">
      <div class="vg8-code-header"><span class="vg8-code-filename">detect_duplicates.py</span><span class="vg8-code-lang">Python</span></div>
      <div class="vg8-code-body"><pre><code><span class="t8-c"># Boolean mask: True for every row that is a duplicate</span>
duplicate_mask = df.<span class="t8-f">duplicated</span>()

<span class="t8-c"># How many duplicates exist?</span>
<span class="t8-f">print</span>(<span class="t8-f">f</span><span class="t8-s">"Duplicate rows found: {duplicate_mask.sum():,}"</span>)

<span class="t8-c"># Inspect the duplicate rows themselves</span>
duplicates = df[df.<span class="t8-f">duplicated</span>()]
<span class="t8-f">print</span>(duplicates)

<span class="t8-c"># See ALL occurrences of duplicated rows (including originals)</span>
all_dupes = df[df.<span class="t8-f">duplicated</span>(keep=<span class="t8-b">False</span>)]
<span class="t8-f">print</span>(all_dupes.<span class="t8-f">sort_values</span>(by=df.columns.<span class="t8-f">tolist</span>()))</code></pre></div>
    </div>
    <div class="vg8-callout">
      <strong>Subset duplicates:</strong> By default <code class="vg8-ic">duplicated()</code> checks all columns. To flag rows that are duplicates only on specific columns (e.g. same customer_id): <code class="vg8-ic">df.duplicated(subset=['customer_id'])</code>. This is useful for finding logical duplicates even when other columns differ.
    </div>
  </div>

  <hr class="vg8-divider">

  <!-- STEP 3 — REMOVE -->
  <div class="vg8-step vg8-reveal">
    <p class="vg8-step-label">Step 3</p>
    <h2>Remove duplicates — <em>three strategies</em></h2>
    <p><code class="vg8-ic">drop_duplicates()</code> returns a new DataFrame by default — the original is untouched. The <code class="vg8-ic">keep</code> parameter controls which occurrence survives. After removing, <code class="vg8-ic">reset_index(drop=True)</code> gives you a clean sequential index starting from 0.</p>
    <div class="vg8-code-wrap">
      <div class="vg8-code-header"><span class="vg8-code-filename">remove_duplicates.py</span><span class="vg8-code-lang">Python</span></div>
      <div class="vg8-code-body"><pre><code><span class="t8-c"># ── Strategy 1: keep the FIRST occurrence (default) ──</span>
df_keep_first = df.<span class="t8-f">drop_duplicates</span>(keep=<span class="t8-s">'first'</span>)

<span class="t8-c"># ── Strategy 2: keep the LAST occurrence ──</span>
<span class="t8-c">#    useful when later rows represent updated/corrected records</span>
df_keep_last = df.<span class="t8-f">drop_duplicates</span>(keep=<span class="t8-s">'last'</span>)

<span class="t8-c"># ── Strategy 3: drop ALL occurrences of any duplicated row ──</span>
<span class="t8-c">#    use when any repeated row is invalid data</span>
df_drop_all = df.<span class="t8-f">drop_duplicates</span>(keep=<span class="t8-b">False</span>)

<span class="t8-c"># ── Subset: deduplicate only on specific columns ──</span>
df_subset = df.<span class="t8-f">drop_duplicates</span>(subset=[<span class="t8-s">'customer_id'</span>, <span class="t8-s">'order_date'</span>], keep=<span class="t8-s">'first'</span>)

<span class="t8-c"># ── Reset the index after removal (clean 0-based index) ──</span>
df_cleaned = df_keep_first.<span class="t8-f">reset_index</span>(drop=<span class="t8-b">True</span>, inplace=<span class="t8-b">False</span>)

<span class="t8-c"># Confirm rows removed</span>
<span class="t8-f">print</span>(<span class="t8-f">f</span><span class="t8-s">"Before: {len(df):,}  |  After: {len(df_cleaned):,}  |  Removed: {len(df) - len(df_cleaned):,}"</span>)</code></pre></div>
    </div>
    <div class="vg8-callout teal">
      <strong>inplace vs assignment:</strong> <code class="vg8-ic">drop_duplicates(inplace=True)</code> modifies the DataFrame in place and returns <code class="vg8-ic">None</code>. Prefer the assignment pattern (<code class="vg8-ic">df_cleaned = df.drop_duplicates()</code>) — it preserves the original for comparison and makes your code easier to debug.
    </div>
  </div>

  <hr class="vg8-divider">

  <!-- STEP 4 — EXPORT -->
  <div class="vg8-step vg8-reveal">
    <p class="vg8-step-label">Step 4</p>
    <h2>Export <em>the clean data</em></h2>
    <p>Write the deduplicated DataFrame back to a CSV. Setting <code class="vg8-ic">index=False</code> prevents pandas from writing the row index as an extra column — your downstream consumers will thank you.</p>
    <div class="vg8-code-wrap">
      <div class="vg8-code-header"><span class="vg8-code-filename">export.py</span><span class="vg8-code-lang">Python</span></div>
      <div class="vg8-code-body"><pre><code><span class="t8-c"># Export to CSV — index=False keeps the file clean</span>
df_cleaned.<span class="t8-f">to_csv</span>(<span class="t8-s">'cleaned_data.csv'</span>, index=<span class="t8-b">False</span>)

<span class="t8-f">print</span>(<span class="t8-s">"Cleaned data exported to cleaned_data.csv"</span>)

<span class="t8-c"># Optional: also export to Parquet for better performance at scale</span>
df_cleaned.<span class="t8-f">to_parquet</span>(<span class="t8-s">'cleaned_data.parquet'</span>, index=<span class="t8-b">False</span>)</code></pre></div>
    </div>
  </div>

</div><!-- /vg8-body -->

<!-- FULL SCRIPT -->
<div class="vg8-full-section">
  <p class="vg8-full-eyebrow">Complete Reference</p>
  <h2>Full deduplication <em>script</em></h2>
  <p>Everything in one place — load, detect, remove (keep first), reset index, and export.</p>
  <div class="vg8-code-wrap vg8-reveal">
    <div class="vg8-code-header"><span class="vg8-code-filename">deduplicate.py — full script</span><span class="vg8-code-lang">Python</span></div>
    <div class="vg8-code-body"><pre><code><span class="t8-k">import</span> pandas <span class="t8-k">as</span> pd

<span class="t8-c"># ── 1. Load ─────────────────────────────────────────────</span>
df = pd.<span class="t8-f">read_csv</span>(<span class="t8-s">'your_data_file.csv'</span>)
<span class="t8-f">print</span>(<span class="t8-f">f</span><span class="t8-s">"Loaded {len(df):,} rows"</span>)

<span class="t8-c"># ── 2. Detect ────────────────────────────────────────────</span>
duplicates = df[df.<span class="t8-f">duplicated</span>()]
<span class="t8-f">print</span>(<span class="t8-f">f</span><span class="t8-s">"Duplicate rows found: {len(duplicates):,}"</span>)
<span class="t8-f">print</span>(duplicates)

<span class="t8-c"># ── 3a. Keep last occurrence of each duplicate row ───────</span>
df_cleaned = df.<span class="t8-f">drop_duplicates</span>(keep=<span class="t8-s">'last'</span>)

<span class="t8-c"># ── 3b. Keep first occurrence (swap in if preferred) ─────</span>
<span class="t8-c"># df_cleaned = df.drop_duplicates(keep='first')</span>

<span class="t8-c"># ── 3c. Reset the index to a clean 0-based sequence ──────</span>
df_cleaned.<span class="t8-f">reset_index</span>(drop=<span class="t8-b">True</span>, inplace=<span class="t8-b">True</span>)

<span class="t8-f">print</span>(<span class="t8-f">f</span><span class="t8-s">"Rows after cleaning: {len(df_cleaned):,}"</span>)

<span class="t8-c"># ── 4. Export ─────────────────────────────────────────────</span>
df_cleaned.<span class="t8-f">to_csv</span>(<span class="t8-s">'cleaned_data.csv'</span>, index=<span class="t8-b">False</span>)
<span class="t8-f">print</span>(<span class="t8-s">"Exported to cleaned_data.csv"</span>)</code></pre></div>
  </div>
</div>

<!-- INTERVIEW CHEAT SHEET -->
<div class="vg8-interview-section">
  <p class="vg8-interview-eyebrow">Interview Prep</p>
  <h2>Cheat sheet — <em>quick definitions to remember</em></h2>
  <div class="vg8-qa-list">

    <div class="vg8-qa-item vg8-reveal">
      <div class="vg8-qa-q"><span class="vg8-q-badge">Define</span><br>What does <code>df.duplicated()</code> return?</div>
      <div class="vg8-qa-a">A <strong>boolean Series</strong> the same length as the DataFrame — <code>True</code> for every row that is a duplicate of a previously seen row, <code>False</code> otherwise. The first occurrence is marked <code>False</code> by default.
        <div class="vg8-pills"><span class="vg8-pill t">Boolean Series</span><span class="vg8-pill">True = duplicate</span><span class="vg8-pill a">First = False by default</span></div>
      </div>
    </div>

    <div class="vg8-qa-item vg8-reveal vg8-d1">
      <div class="vg8-qa-q"><span class="vg8-q-badge">Compare</span><br>keep=&#8217;first&#8217; vs keep=&#8217;last&#8217; vs keep=False</div>
      <div class="vg8-qa-a"><strong>first</strong> — keeps the first occurrence, drops all subsequent duplicates. <strong>last</strong> — keeps the final occurrence, useful for updated records. <strong>False</strong> — drops every occurrence of any duplicated row, leaving only rows that were unique to begin with.
        <div class="vg8-pills"><span class="vg8-pill t">first = keep original</span><span class="vg8-pill a">last = keep latest</span><span class="vg8-pill">False = drop all copies</span></div>
      </div>
    </div>

    <div class="vg8-qa-item vg8-reveal">
      <div class="vg8-qa-q"><span class="vg8-q-badge">Explain</span><br>What does the <code>subset</code> parameter do?</div>
      <div class="vg8-qa-a">By default, <code>duplicated()</code> and <code>drop_duplicates()</code> compare <strong>all columns</strong>. The <code>subset</code> parameter restricts the comparison to specific columns — for example <code>subset=['customer_id']</code> finds rows with the same customer ID even if other columns differ.
        <div class="vg8-pills"><span class="vg8-pill t">Default = all columns</span><span class="vg8-pill">subset = logical dedup</span></div>
      </div>
    </div>

    <div class="vg8-qa-item vg8-reveal vg8-d1">
      <div class="vg8-qa-q"><span class="vg8-q-badge">Gotcha</span><br>Why call <code>reset_index(drop=True)</code> after deduplication?</div>
      <div class="vg8-qa-a">After dropping rows, the DataFrame retains the <strong>original row indices</strong> — you&#8217;d have gaps like 0, 1, 4, 7 instead of 0, 1, 2, 3. <code>reset_index(drop=True)</code> renumbers from 0 continuously. <code>drop=True</code> prevents the old index from being added as a column.
        <div class="vg8-pills"><span class="vg8-pill a">Index gaps after drop</span><span class="vg8-pill t">reset_index fixes gaps</span><span class="vg8-pill">drop=True prevents extra col</span></div>
      </div>
    </div>

    <div class="vg8-qa-item vg8-reveal">
      <div class="vg8-qa-q"><span class="vg8-q-badge">Gotcha</span><br>inplace=True vs reassignment — which is preferred?</div>
      <div class="vg8-qa-a">Prefer <strong>reassignment</strong> (<code>df_cleaned = df.drop_duplicates()</code>) — it preserves the original DataFrame for comparison and makes pipelines easier to debug. <code>inplace=True</code> modifies the object and returns <code>None</code>, which can cause confusion when chaining operations. Many pandas best-practice guides now recommend avoiding inplace.
        <div class="vg8-pills"><span class="vg8-pill t">Reassignment = safer</span><span class="vg8-pill a">inplace returns None</span></div>
      </div>
    </div>

    <div class="vg8-qa-item vg8-reveal vg8-d1">
      <div class="vg8-qa-q"><span class="vg8-q-badge">Best Practice</span><br>How do you handle duplicates in a production data pipeline?</div>
      <div class="vg8-qa-a"><strong>Three layers:</strong> (1) <strong>Detect and log</strong> before removing — store duplicate counts as data quality metrics. (2) <strong>Deduplicate at ingestion</strong>, not at query time — clean once, use many times. (3) Add a <strong>unique constraint</strong> in your database or Delta Lake table to prevent duplicates from re-entering at source.
        <div class="vg8-pills"><span class="vg8-pill t">Log before removing</span><span class="vg8-pill t">Clean at ingestion</span><span class="vg8-pill a">DB unique constraints</span></div>
      </div>
    </div>

    <div class="vg8-qa-item vg8-reveal">
      <div class="vg8-qa-q"><span class="vg8-q-badge">Use Case</span><br>When should you NOT remove duplicates?</div>
      <div class="vg8-qa-a">When the repeated rows represent <strong>legitimate repeated events</strong> — a customer placing the same order twice on different days, a sensor reading the same value consecutively, or audit log entries. Always validate with domain knowledge before dropping. Use <code>subset</code> to deduplicate on business keys, not entire rows.
        <div class="vg8-pills"><span class="vg8-pill a">Repeated events = valid</span><span class="vg8-pill t">Use subset= for business keys</span></div>
      </div>
    </div>

  </div>
</div>

<!-- FOOTER -->
<div class="vg8-footer">
  <p><strong>GenAI Mastery Series</strong> — vijay-gokarn.com · Vijay Gokarn</p>
  <div class="vg8-footer-links">
    <a href="https://github.com/vijaygokarn130" class="vg8-btn ghost">GitHub ↗</a>
    <a href="https://vijay-gokarn.com" class="vg8-btn primary">Back to Blog ↗</a>
  </div>
</div>

</div><!-- /vg8 -->

<script>
(function(){
  var obs = new IntersectionObserver(function(e){
    e.forEach(function(x){ if(x.isIntersecting) x.target.classList.add('vg8-vis'); });
  }, {threshold: 0.08});
  document.querySelectorAll('.vg8-reveal').forEach(function(el){ obs.observe(el); });
})();
</script>
<p>The post <a href="https://vijay-gokarn.com/pandas-remove-duplicates/">Pandas Remove Duplicates</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">119</post-id>	</item>
		<item>
		<title>Gavati Lemongrass Chai</title>
		<link>https://vijay-gokarn.com/chailemongrass/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=chailemongrass</link>
		
		<dc:creator><![CDATA[Vijay Gokarn]]></dc:creator>
		<pubDate>Thu, 21 Sep 2023 17:59:59 +0000</pubDate>
				<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[databricks]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[generative-ai]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://vijay-gokarn.com/?p=115</guid>

					<description><![CDATA[<p>Vijay Gokarn · Recipe · September 21, 2023 GavatiLemongrass Chai A fragrant, warming cup of homemade chai — aromatic spices, fresh ginger, and the subtle citrus lift of lemongrass. A recipe for two, ready in under 20 minutes. Serves2 Time15–20 min OriginIndia DifficultyEasy Key Spices Lemongrass Cardamom Fresh Ginger Cinnamon Cloves Black Pepper Star Anise [&#8230;]</p>
<p>The post <a href="https://vijay-gokarn.com/chailemongrass/">Gavati Lemongrass Chai</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;family=DM+Mono:wght@400&#038;display=swap" rel="stylesheet">

<style>
.vgc {
  --ink: #0e0e0e; --paper: #f7f4ef; --paper-dark: #ede9e1;
  --teal: #0f6e56; --teal-light: #1d9e75; --teal-muted: #e1f5ee;
  --amber: #ba7517; --amber-light: #fac775; --amber-muted: #faeeda;
  --charcoal: #2c2c2a; --muted: #888780;
  --border: rgba(14,14,14,0.12); --border-strong: rgba(14,14,14,0.25);
  --chai-brown: #6b3a2a; --chai-gold: #c8860a; --chai-cream: #f5ead8;
  font-family: 'DM Sans', sans-serif; font-weight: 300;
  color: var(--ink); background: var(--paper); line-height: 1.75; font-size: 16px; overflow-x: hidden;
}
.vgc *, .vgc *::before, .vgc *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* HERO */
.vgc-hero {
  background: var(--chai-brown);
  padding: 5rem 4rem 4rem; position: relative; overflow: hidden;
  min-height: 420px; display: flex; align-items: center;
}
.vgc-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 50%, rgba(200,134,10,0.35) 0%, transparent 65%),
              radial-gradient(ellipse at 20% 80%, rgba(107,58,42,0.8) 0%, transparent 60%);
}
.vgc-hero::after {
  content: '☕';
  position: absolute; right: 3rem; bottom: -1rem;
  font-size: 16rem; opacity: 0.06; line-height: 1; pointer-events: none;
}
.vgc-hero-inner { position: relative; z-index: 1; max-width: 900px; }
.vgc-eyebrow { font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.75rem; }
.vgc-eyebrow::before { content: ''; display: inline-block; width: 1.5rem; height: 1px; background: var(--amber-light); }
.vgc-hero h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.4rem, 5vw, 4.2rem); font-weight: 300; line-height: 1.05; color: var(--chai-cream); letter-spacing: -0.02em; margin-bottom: 1.25rem; }
.vgc-hero h1 em { font-style: italic; color: var(--amber-light); }
.vgc-hero-sub { font-size: 1rem; color: rgba(245,234,216,0.65); font-weight: 300; line-height: 1.7; max-width: 50ch; margin-bottom: 2rem; }
.vgc-meta-row { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.vgc-meta { font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(245,234,216,0.35); }
.vgc-meta span { color: rgba(245,234,216,0.7); margin-left: 0.4rem; }

/* SPICE VISUAL BAND */
.vgc-spice-band {
  background: var(--chai-gold);
  padding: 1.1rem 4rem; display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center;
}
.vgc-spice-label { font-size: 0.63rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.65); font-weight: 400; margin-right: 0.4rem; }
.vgc-spice-pill { font-size: 0.7rem; letter-spacing: 0.05em; padding: 0.28rem 0.85rem; background: rgba(255,255,255,0.15); color: #fff; border: 0.5px solid rgba(255,255,255,0.25); }

/* INTRO */
.vgc-intro { background: var(--amber-muted); padding: 2.5rem 4rem; border-left: 4px solid var(--amber); }
.vgc-intro p { font-size: 1.05rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; max-width: 80ch; font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; }
.vgc-intro strong { color: var(--chai-brown); font-weight: 600; }

/* BODY */
.vgc-body { max-width: 900px; margin: 0 auto; padding: 4rem; }
.vgc-section { margin-bottom: 3.5rem; }
.vgc-section-label { font-size: 0.63rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--chai-gold); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vgc-section-label::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--chai-gold); }
.vgc-section h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 300; line-height: 1.2; color: var(--ink); margin-bottom: 1.25rem; }
.vgc-section h2 em { font-style: italic; color: var(--chai-brown); }
.vgc-section p { font-size: 0.93rem; line-height: 1.9; color: var(--charcoal); font-weight: 300; margin-bottom: 1rem; }
.vgc-divider { border: none; border-top: 0.5px solid var(--border); margin: 3rem 0; }
.vgc-ic { font-family: 'DM Mono', monospace; font-size: 0.82rem; background: rgba(14,14,14,0.07); padding: 0.1rem 0.4rem; color: var(--ink); }

/* CALLOUT */
.vgc-callout { background: var(--amber-muted); border-left: 3px solid var(--amber); padding: 1.25rem 1.5rem; margin: 1.25rem 0; font-size: 0.87rem; line-height: 1.8; color: var(--charcoal); }
.vgc-callout strong { color: var(--amber); font-weight: 500; }
.vgc-callout.teal { border-color: var(--teal); background: var(--teal-muted); }
.vgc-callout.teal strong { color: var(--teal); }

/* CHAI VISUAL CARD — CSS illustration */
.vgc-visual-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border); margin: 2rem 0; }
.vgc-visual-card {
  position: relative; overflow: hidden;
  height: 200px; display: flex; align-items: flex-end; padding: 1.25rem;
}
.vgc-vc-1 { background: linear-gradient(135deg, #3d1f10 0%, #6b3a2a 40%, #c8860a 100%); }
.vgc-vc-2 { background: linear-gradient(135deg, #2c1a0e 0%, #5c3317 50%, #8b5e3c 100%); }
.vgc-vc-3 { background: linear-gradient(135deg, #1a3a1a 0%, #2d5a2d 50%, #4a7c4a 100%); }
.vgc-vc-label { position: relative; z-index: 1; }
.vgc-vc-label span { font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.5); display: block; margin-bottom: 0.2rem; }
.vgc-vc-label p { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 300; color: rgba(255,255,255,0.9); line-height: 1.2; }
/* floating steam circles */
.vgc-steam { position: absolute; top: 20%; left: 50%; transform: translateX(-50%); }
.vgc-steam::before, .vgc-steam::after {
  content: ''; display: block; width: 60px; height: 80px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.12);
  position: absolute; top: 0;
}
.vgc-steam::after { width: 40px; height: 55px; left: 12px; top: 15px; border-color: rgba(255,255,255,0.08); }
/* cup shape */
.vgc-cup { position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 50px; height: 40px; border: 2px solid rgba(255,255,255,0.2); border-top: none; border-radius: 0 0 12px 12px; }
.vgc-cup::before { content: ''; position: absolute; top: -2px; left: -8px; right: -8px; height: 2px; background: rgba(255,255,255,0.2); border-radius: 2px; }

/* INGREDIENTS GRID */
.vgc-ing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin: 1.5rem 0; }
.vgc-ing-card { background: var(--paper); border: 0.5px solid var(--border-strong); padding: 1.5rem; position: relative; }
.vgc-ing-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--amber); }
.vgc-ing-card.optional::before { background: var(--muted); opacity: 0.4; }
.vgc-ing-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 0.75rem; }
.vgc-ing-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 400; color: var(--ink); }
.vgc-opt-badge { font-size: 0.58rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); border: 0.5px solid var(--border); padding: 0.15rem 0.5rem; flex-shrink: 0; }
.vgc-ing-list { list-style: none; display: flex; flex-direction: column; gap: 0.4rem; }
.vgc-ing-list li { font-size: 0.82rem; line-height: 1.6; color: var(--charcoal); font-weight: 300; padding-left: 1.1rem; position: relative; display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; }
.vgc-ing-list li::before { content: '·'; position: absolute; left: 0; color: var(--amber); font-weight: 700; }
.vgc-ing-qty { font-family: 'DM Mono', monospace; font-size: 0.72rem; color: var(--chai-brown); white-space: nowrap; flex-shrink: 0; }

/* STEP FLOW */
.vgc-steps { display: flex; flex-direction: column; gap: 0; }
.vgc-step-item { display: grid; grid-template-columns: 64px 1fr; gap: 1.5rem; padding: 1.75rem 0; border-top: 0.5px solid var(--border); align-items: start; }
.vgc-step-item:last-child { border-bottom: 0.5px solid var(--border); }
.vgc-step-left { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.vgc-step-num {
  width: 40px; height: 40px; background: var(--chai-brown);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; font-weight: 300; color: var(--chai-cream);
  flex-shrink: 0;
}
.vgc-step-connector { width: 1px; flex: 1; min-height: 20px; background: var(--border); }
.vgc-step-right {}
.vgc-step-title { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; font-weight: 400; color: var(--ink); margin-bottom: 0.4rem; }
.vgc-step-right p { font-size: 0.87rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; }
.vgc-step-right p strong { color: var(--ink); font-weight: 500; }
.vgc-step-time { display: inline-block; font-family: 'DM Mono', monospace; font-size: 0.65rem; color: var(--chai-gold); letter-spacing: 0.08em; margin-top: 0.5rem; }

/* PAIRINGS SECTION */
.vgc-pairings-section { background: var(--chai-brown); padding: 4rem; }
.vgc-pairings-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vgc-pairings-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--amber-light); }
.vgc-pairings-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--chai-cream); margin-bottom: 0.75rem; }
.vgc-pairings-section > h2 em { font-style: italic; color: var(--amber-light); }
.vgc-pairings-section > p { font-size: 0.9rem; color: rgba(245,234,216,0.6); font-weight: 300; margin-bottom: 2.5rem; max-width: 65ch; line-height: 1.8; }
.vgc-pairings-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.vgc-pairing-card { border: 0.5px solid rgba(245,234,216,0.12); padding: 0; overflow: hidden; }
.vgc-pairing-visual {
  height: 140px; display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.vgc-pv-bunmaska  { background: linear-gradient(135deg, #5c3d1e 0%, #8b5e35 60%, #c4935a 100%); }
.vgc-pv-khari     { background: linear-gradient(135deg, #c8a96e 0%, #e8c98a 50%, #f5e4c0 100%); }
.vgc-pv-rusk      { background: linear-gradient(135deg, #8b6914 0%, #c49a28 60%, #e8c84a 100%); }
.vgc-pv-samosa    { background: linear-gradient(135deg, #6b4c1a 0%, #a87430 60%, #d4a055 100%); }
.vgc-pv-nankhatai { background: linear-gradient(135deg, #c4835a 0%, #e8a87a 50%, #f5cba0 100%); }
.vgc-pv-banana    { background: linear-gradient(135deg, #5a7a1a 0%, #8aaa2a 50%, #c4d855 100%); }
.vgc-pairing-visual .vgc-pv-icon { font-size: 3.5rem; opacity: 0.75; }
.vgc-pairing-caption { padding: 1rem 1.25rem; }
.vgc-pairing-caption h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; font-weight: 400; color: var(--chai-cream); margin-bottom: 0.3rem; }
.vgc-pairing-caption p { font-size: 0.78rem; line-height: 1.65; color: rgba(245,234,216,0.55); font-weight: 300; }
.vgc-pairing-tag { font-size: 0.58rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--amber-light); margin-bottom: 0.3rem; display: block; font-family: 'DM Mono', monospace; }

/* TIPS SECTION */
.vgc-tips-section { background: var(--paper-dark); padding: 4rem; }
.vgc-tips-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vgc-tips-eyebrow::before { content: ''; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vgc-tips-section > h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 300; color: var(--ink); margin-bottom: 2rem; }
.vgc-tips-section > h2 em { font-style: italic; color: var(--teal); }
.vgc-tips-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vgc-tip-card { background: var(--paper); border: 0.5px solid var(--border); padding: 1.25rem 1.5rem; display: flex; gap: 1rem; }
.vgc-tip-icon { font-size: 1.5rem; flex-shrink: 0; line-height: 1; margin-top: 0.1rem; }
.vgc-tip-body h4 { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; font-weight: 400; color: var(--ink); margin-bottom: 0.3rem; }
.vgc-tip-body p { font-size: 0.8rem; line-height: 1.65; color: var(--charcoal); font-weight: 300; }

/* RECIPE STATS BAND */
.vgc-stats-band { background: var(--ink); display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background-color: var(--ink); }
.vgc-stat { background: var(--ink); padding: 1.75rem 2rem; }
.vgc-stat-n { font-family: 'Cormorant Garamond', serif; font-size: 2.2rem; font-weight: 300; color: var(--amber-light); line-height: 1; margin-bottom: 0.3rem; letter-spacing: -0.02em; }
.vgc-stat-l { font-size: 0.65rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(247,244,239,0.35); }

/* FOOTER */
.vgc-footer { background: var(--chai-brown); padding: 3rem 4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; border-top: 0.5px solid rgba(245,234,216,0.1); }
.vgc-footer p { font-size: 0.82rem; color: rgba(245,234,216,0.35); font-weight: 300; }
.vgc-footer p strong { color: rgba(245,234,216,0.65); font-weight: 400; }
.vgc-back-btn { display: inline-block; padding: 0.65rem 1.75rem; background: var(--amber-light); color: var(--chai-brown); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 500; }

/* REVEAL */
.vgc-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
.vgc-reveal.vgc-vis { opacity: 1; transform: translateY(0); }
.vgc-d1 { transition-delay: 0.1s; } .vgc-d2 { transition-delay: 0.2s; } .vgc-d3 { transition-delay: 0.3s; }
</style>

<div class="vgc">

<!-- HERO -->
<div class="vgc-hero">
  <div class="vgc-hero-inner">
    <p class="vgc-eyebrow">Vijay Gokarn · Recipe · September 21, 2023</p>
    <h1>Gavati<br><em>Lemongrass Chai</em></h1>
    <p class="vgc-hero-sub">A fragrant, warming cup of homemade chai — aromatic spices, fresh ginger, and the subtle citrus lift of lemongrass. A recipe for two, ready in under 20 minutes.</p>
    <div class="vgc-meta-row">
      <p class="vgc-meta">Serves<span>2</span></p>
      <p class="vgc-meta">Time<span>15–20 min</span></p>
      <p class="vgc-meta">Origin<span>India</span></p>
      <p class="vgc-meta">Difficulty<span>Easy</span></p>
    </div>
  </div>
</div>

<!-- SPICE BAND -->
<div class="vgc-spice-band">
  <span class="vgc-spice-label">Key Spices</span>
  <span class="vgc-spice-pill">Lemongrass</span>
  <span class="vgc-spice-pill">Cardamom</span>
  <span class="vgc-spice-pill">Fresh Ginger</span>
  <span class="vgc-spice-pill">Cinnamon</span>
  <span class="vgc-spice-pill">Cloves</span>
  <span class="vgc-spice-pill">Black Pepper</span>
  <span class="vgc-spice-pill">Star Anise</span>
  <span class="vgc-spice-pill">Saffron</span>
</div>

<!-- INTRO -->
<div class="vgc-intro">
  <p>Making a delicious cup of chai for two is easy and enjoyable. Chai is a spiced tea popular in India, known for its rich, aromatic flavours — and this <strong>Gavati (lemongrass) version</strong> adds a bright, citrusy note that lifts the whole cup. Adjust the spices and sweetness to suit your taste.</p>
</div>

<!-- VISUAL STRIP -->
<div class="vgc-visual-strip vgc-reveal">
  <div class="vgc-visual-card vgc-vc-1">
    <div class="vgc-steam"></div>
    <div class="vgc-cup"></div>
    <div class="vgc-vc-label"><span>The brew</span><p>Spiced &amp; steamed</p></div>
  </div>
  <div class="vgc-visual-card vgc-vc-2">
    <div class="vgc-vc-label"><span>The spice</span><p>Cardamom · Clove · Cinnamon</p></div>
  </div>
  <div class="vgc-visual-card vgc-vc-3">
    <div class="vgc-vc-label"><span>The lift</span><p>Lemongrass &amp; ginger</p></div>
  </div>
</div>

<!-- RECIPE STATS -->
<div class="vgc-stats-band">
  <div class="vgc-stat vgc-reveal"><div class="vgc-stat-n">2</div><div class="vgc-stat-l">Servings</div></div>
  <div class="vgc-stat vgc-reveal vgc-d1"><div class="vgc-stat-n">15</div><div class="vgc-stat-l">Minutes</div></div>
  <div class="vgc-stat vgc-reveal vgc-d2"><div class="vgc-stat-n">12</div><div class="vgc-stat-l">Ingredients</div></div>
  <div class="vgc-stat vgc-reveal vgc-d3"><div class="vgc-stat-n">7</div><div class="vgc-stat-l">Steps</div></div>
</div>

<!-- BODY -->
<div class="vgc-body">

  <!-- INGREDIENTS -->
  <div class="vgc-section vgc-reveal">
    <p class="vgc-section-label">Ingredients</p>
    <h2>What you&#8217;ll <em>need</em></h2>
    <div class="vgc-ing-grid">

      <div class="vgc-ing-card vgc-reveal vgc-d1">
        <div class="vgc-ing-header"><h3>The Base</h3></div>
        <ul class="vgc-ing-list">
          <li>Water <span class="vgc-ing-qty">2 cups</span></li>
          <li>Milk (whole or preferred) <span class="vgc-ing-qty">2 cups</span></li>
          <li>Loose black tea leaves or tea bags <span class="vgc-ing-qty">2–3 tsp / 2 bags</span></li>
          <li>Granulated sugar (adjust to taste) <span class="vgc-ing-qty">2–3 tbsp</span></li>
        </ul>
      </div>

      <div class="vgc-ing-card vgc-reveal vgc-d2">
        <div class="vgc-ing-header"><h3>Core Spices</h3></div>
        <ul class="vgc-ing-list">
          <li>Green cardamom pods, crushed <span class="vgc-ing-qty">2–3 pods</span></li>
          <li>Whole cloves <span class="vgc-ing-qty">2–3</span></li>
          <li>Cinnamon stick <span class="vgc-ing-qty">~1 inch</span></li>
          <li>Fresh ginger, sliced <span class="vgc-ing-qty">1–2 slices</span></li>
          <li>Lemongrass stalk, bruised <span class="vgc-ing-qty">1 stalk</span></li>
        </ul>
      </div>

      <div class="vgc-ing-card optional vgc-reveal vgc-d1">
        <div class="vgc-ing-header"><h3>Optional Spices</h3><span class="vgc-opt-badge">Optional</span></div>
        <ul class="vgc-ing-list">
          <li>Black peppercorns (for heat) <span class="vgc-ing-qty">a pinch</span></li>
          <li>Fennel seeds (added flavour) <span class="vgc-ing-qty">a pinch</span></li>
          <li>Star anise <span class="vgc-ing-qty">a pinch</span></li>
          <li>Nutmeg <span class="vgc-ing-qty">a pinch</span></li>
          <li>Bay leaves <span class="vgc-ing-qty">1–2 leaves</span></li>
        </ul>
      </div>

      <div class="vgc-ing-card optional vgc-reveal vgc-d2">
        <div class="vgc-ing-header"><h3>Luxury Garnish</h3><span class="vgc-opt-badge">Optional</span></div>
        <ul class="vgc-ing-list">
          <li>Saffron strands <span class="vgc-ing-qty">a few strands</span></li>
          <li>Rose water (floral lift) <span class="vgc-ing-qty">a few drops</span></li>
          <li>Crushed pistachios (garnish) <span class="vgc-ing-qty">1 tsp</span></li>
        </ul>
      </div>

    </div>
    <div class="vgc-callout">
      <strong>Lemongrass tip:</strong> Bruise the lemongrass stalk by pressing it firmly with the back of a knife before adding — this releases the essential oils that give gavati chai its signature citrus fragrance.
    </div>
  </div>

  <hr class="vgc-divider">

  <!-- INSTRUCTIONS -->
  <div class="vgc-section vgc-reveal">
    <p class="vgc-section-label">Method</p>
    <h2>Step-by-step <em>instructions</em></h2>
    <div class="vgc-steps">

      <div class="vgc-step-item vgc-reveal">
        <div class="vgc-step-left">
          <div class="vgc-step-num">1</div>
          <div class="vgc-step-connector"></div>
        </div>
        <div class="vgc-step-right">
          <p class="vgc-step-title">Crush the spices</p>
          <p>Using a mortar and pestle, lightly crush the <strong>cardamom pods, cloves, and cinnamon stick</strong>. This releases their essential oils far more effectively than adding them whole. Bruise the lemongrass stalk firmly with the back of your knife.</p>
          <span class="vgc-step-time">⏱ 2 min</span>
        </div>
      </div>

      <div class="vgc-step-item vgc-reveal">
        <div class="vgc-step-left">
          <div class="vgc-step-num">2</div>
          <div class="vgc-step-connector"></div>
        </div>
        <div class="vgc-step-right">
          <p class="vgc-step-title">Boil water &amp; infuse spices</p>
          <p>In a saucepan, add the water and all crushed spices — cardamom, cloves, cinnamon, lemongrass — along with ginger slices, peppercorns, fennel, star anise, nutmeg, and bay leaves if using. Bring to a boil, reduce heat to low and <strong>simmer for 5–7 minutes</strong> to infuse fully.</p>
          <span class="vgc-step-time">⏱ 7 min</span>
        </div>
      </div>

      <div class="vgc-step-item vgc-reveal">
        <div class="vgc-step-left">
          <div class="vgc-step-num">3</div>
          <div class="vgc-step-connector"></div>
        </div>
        <div class="vgc-step-right">
          <p class="vgc-step-title">Add tea leaves</p>
          <p>Add the loose black tea leaves or tea bags to the spice-infused water. <strong>Simmer for 2–3 minutes</strong> — longer for a stronger brew. The spice water will have turned a deep amber by now.</p>
          <span class="vgc-step-time">⏱ 2–3 min</span>
        </div>
      </div>

      <div class="vgc-step-item vgc-reveal">
        <div class="vgc-step-left">
          <div class="vgc-step-num">4</div>
          <div class="vgc-step-connector"></div>
        </div>
        <div class="vgc-step-right">
          <p class="vgc-step-title">Pour in the milk</p>
          <p>Add the milk and stir well. <strong>Simmer for 3–5 minutes</strong>, allowing the chai to come together and the flavours to meld. Watch carefully — do not let it boil over. The colour should deepen to a rich caramel tone.</p>
          <span class="vgc-step-time">⏱ 3–5 min</span>
        </div>
      </div>

      <div class="vgc-step-item vgc-reveal">
        <div class="vgc-step-left">
          <div class="vgc-step-num">5</div>
          <div class="vgc-step-connector"></div>
        </div>
        <div class="vgc-step-right">
          <p class="vgc-step-title">Sweeten to taste</p>
          <p>Add <strong>2–3 tablespoons of sugar</strong> and stir until completely dissolved. Taste and adjust — some prefer it less sweet to let the spices come through, others like a richer sweetness to balance the heat of the ginger.</p>
        </div>
      </div>

      <div class="vgc-step-item vgc-reveal">
        <div class="vgc-step-left">
          <div class="vgc-step-num">6</div>
          <div class="vgc-step-connector"></div>
        </div>
        <div class="vgc-step-right">
          <p class="vgc-step-title">Strain &amp; serve</p>
          <p>Using a fine-mesh strainer, <strong>strain the chai directly into your cups or mugs</strong>. This removes all tea leaves and whole spices, leaving a smooth, clean, deeply aromatic liquid. Serve immediately while steaming hot.</p>
        </div>
      </div>

      <div class="vgc-step-item vgc-reveal">
        <div class="vgc-step-left">
          <div class="vgc-step-num">7</div>
        </div>
        <div class="vgc-step-right">
          <p class="vgc-step-title">Optional luxury garnish</p>
          <p>Crush a few strands of <strong>saffron</strong> between your fingertips and sprinkle over the top. A few drops of rose water and a pinch of crushed pistachios transform a simple cup into something truly special — perfect for guests or quiet mornings that deserve a little ceremony.</p>
        </div>
      </div>

    </div>
    <div class="vgc-callout teal">
      <strong>The Irani chai method:</strong> For a richer, creamier chai, simmer the milk and tea together from the start rather than adding them separately. This concentrates the flavours and produces the thick, caramel-toned chai served at Irani cafés in Mumbai and Hyderabad.
    </div>
  </div>

</div><!-- /vgc-body -->

<!-- PAIRINGS -->
<div class="vgc-pairings-section">
  <p class="vgc-pairings-eyebrow">Perfect Pairings</p>
  <h2>What to serve <em>alongside</em></h2>
  <p>No cup of chai is complete alone. These classic Indian café accompaniments — from the legendary Irani bun maska to crispy khari — are the traditional partners for a perfect chai session.</p>
  <div class="vgc-pairings-grid">

    <div class="vgc-pairing-card vgc-reveal vgc-d1">
      <div class="vgc-pairing-visual vgc-pv-bunmaska">
        <span class="vgc-pv-icon">🫓</span>
      </div>
      <div class="vgc-pairing-caption">
        <span class="vgc-pairing-tag">Irani Café Classic</span>
        <h4>Bun Maska</h4>
        <p>A soft, pillowy bun split and generously slathered with cold butter (maska). Dunked in chai — the bread soaks up the spiced liquid. The Mumbai café staple, non-negotiable.</p>
      </div>
    </div>

    <div class="vgc-pairing-card vgc-reveal vgc-d2">
      <div class="vgc-pairing-visual vgc-pv-khari">
        <span class="vgc-pv-icon">🥐</span>
      </div>
      <div class="vgc-pairing-caption">
        <span class="vgc-pairing-tag">Bakery Favourite</span>
        <h4>Khari Biscuit</h4>
        <p>Flaky, buttery puff pastry biscuits — savory and light. They shatter on the first bite and dissolve perfectly against a strong chai. Found at every Irani and Parsi bakery.</p>
      </div>
    </div>

    <div class="vgc-pairing-card vgc-reveal vgc-d3">
      <div class="vgc-pairing-visual vgc-pv-rusk">
        <span class="vgc-pv-icon">🍞</span>
      </div>
      <div class="vgc-pairing-caption">
        <span class="vgc-pairing-tag">Dunking Essential</span>
        <h4>Chai Rusk</h4>
        <p>Twice-baked bread slices — crispy, slightly sweet, designed for dunking. Hold a rusk in your chai for 3–4 seconds, pull it out before it breaks, and experience one of life&#8217;s small joys.</p>
      </div>
    </div>

    <div class="vgc-pairing-card vgc-reveal vgc-d1">
      <div class="vgc-pairing-visual vgc-pv-samosa">
        <span class="vgc-pv-icon">🔺</span>
      </div>
      <div class="vgc-pairing-caption">
        <span class="vgc-pairing-tag">Street Food</span>
        <h4>Samosa</h4>
        <p>Crispy pastry triangles filled with spiced potato and peas. The contrast of hot, crispy samosa with hot, spiced chai is a classic pairing found at every tapri (street tea stall) across India.</p>
      </div>
    </div>

    <div class="vgc-pairing-card vgc-reveal vgc-d2">
      <div class="vgc-pairing-visual vgc-pv-nankhatai">
        <span class="vgc-pv-icon">🍪</span>
      </div>
      <div class="vgc-pairing-caption">
        <span class="vgc-pairing-tag">Indian Shortbread</span>
        <h4>Nankhatai</h4>
        <p>Delicate, cardamom-scented shortbread cookies made with ghee and semolina. Crumbly, mildly sweet, and fragrant — they echo the spices in the chai itself perfectly.</p>
      </div>
    </div>

    <div class="vgc-pairing-card vgc-reveal vgc-d3">
      <div class="vgc-pairing-visual vgc-pv-banana">
        <span class="vgc-pv-icon">🍌</span>
      </div>
      <div class="vgc-pairing-caption">
        <span class="vgc-pairing-tag">Simple &amp; Natural</span>
        <h4>Elaichi Banana</h4>
        <p>A small, sweet Indian banana — the elaichi (cardamom) variety found at South Indian chai stalls. No preparation needed. The natural sweetness cuts beautifully through the spice.</p>
      </div>
    </div>

  </div>
</div>

<!-- TIPS -->
<div class="vgc-tips-section">
  <p class="vgc-tips-eyebrow">Brewing Tips</p>
  <h2>Tips for the <em>perfect cup</em></h2>
  <div class="vgc-tips-grid">
    <div class="vgc-tip-card vgc-reveal vgc-d1">
      <div class="vgc-tip-icon">🫙</div>
      <div class="vgc-tip-body"><h4>Use whole spices</h4><p>Always use whole spices and crush fresh — pre-ground spice powders lose their volatile oils quickly and produce a flat, dull chai.</p></div>
    </div>
    <div class="vgc-tip-card vgc-reveal vgc-d2">
      <div class="vgc-tip-icon">🌡️</div>
      <div class="vgc-tip-body"><h4>Don&#8217;t boil the milk hard</h4><p>Once milk is added, keep the heat at a gentle simmer. A rolling boil makes the milk taste scalded and can cause it to overflow suddenly.</p></div>
    </div>
    <div class="vgc-tip-card vgc-reveal vgc-d1">
      <div class="vgc-tip-icon">🍵</div>
      <div class="vgc-tip-body"><h4>Tea strength matters</h4><p>Use a strong Assam or CTC (crush-tear-curl) black tea — they hold up against milk and spices. Delicate teas like Darjeeling get overwhelmed.</p></div>
    </div>
    <div class="vgc-tip-card vgc-reveal vgc-d2">
      <div class="vgc-tip-icon">🫚</div>
      <div class="vgc-tip-body"><h4>Ratio is everything</h4><p>Equal parts water and milk (1:1) gives a balanced chai. More milk = creamier and milder. Less milk = stronger, spicier. Adjust the ratio before changing spice amounts.</p></div>
    </div>
    <div class="vgc-tip-card vgc-reveal vgc-d1">
      <div class="vgc-tip-icon">🎋</div>
      <div class="vgc-tip-body"><h4>Bruise the lemongrass</h4><p>For gavati chai, press the lemongrass stalk firmly before adding. The bruising releases the citrusy essential oils that give this chai its distinctive fragrance.</p></div>
    </div>
    <div class="vgc-tip-card vgc-reveal vgc-d2">
      <div class="vgc-tip-icon">🧂</div>
      <div class="vgc-tip-body"><h4>A pinch of salt</h4><p>An old Irani café trick — a tiny pinch of salt in the chai (not enough to taste) rounds out the sweetness and enhances the spice complexity. Try it once.</p></div>
    </div>
  </div>
</div>

<!-- FOOTER -->
<div class="vgc-footer">
  <p><strong>vijay-gokarn.com</strong> · Vijay Gokarn · September 21, 2023</p>
  <a href="https://vijay-gokarn.com" class="vgc-back-btn">Back to Blog ↗</a>
</div>

</div><!-- /vgc -->

<script>
(function(){
  var obs = new IntersectionObserver(function(e){
    e.forEach(function(x){ if(x.isIntersecting) x.target.classList.add('vgc-vis'); });
  }, {threshold: 0.08});
  document.querySelectorAll('.vgc-reveal').forEach(function(el){ obs.observe(el); });
})();
</script>
<p>The post <a href="https://vijay-gokarn.com/chailemongrass/">Gavati Lemongrass Chai</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">115</post-id>	</item>
		<item>
		<title>Unleash Your Creativity with Ideogram AI: The Future of AI-Powered Art Generation</title>
		<link>https://vijay-gokarn.com/generative-ai-ideogram/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=generative-ai-ideogram</link>
		
		<dc:creator><![CDATA[tawxfnmy]]></dc:creator>
		<pubDate>Mon, 04 Sep 2023 19:37:07 +0000</pubDate>
				<category><![CDATA[ai-agents]]></category>
		<category><![CDATA[databricks]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[generative-ai]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://vijay-gokarn.com/?p=99</guid>

					<description><![CDATA[<p>GenAI Mastery Series · Generative AI · Image Generation Ideogram AI &#38; Midjourney — Unleashing Creativity with Generative AI IdeogramFree · Text-in-image · Founded Aug 2023 Midjourney$149/mo · Photorealistic · Large community Tools Ideogram AI Midjourney Text-to-Image Typography in AI Prompt Engineering Creative AI Generative AI is reshaping visual creativity — and two tools are [&#8230;]</p>
<p>The post <a href="https://vijay-gokarn.com/generative-ai-ideogram/">Unleash Your Creativity with Ideogram AI: The Future of AI-Powered Art Generation</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;family=DM+Mono:wght@400&#038;display=swap" rel="stylesheet">

<style>
.vg9 {
  --ink: #0e0e0e; --paper: #f7f4ef; --paper-dark: #ede9e1;
  --teal: #0f6e56; --teal-light: #1d9e75; --teal-muted: #e1f5ee;
  --amber: #ba7517; --amber-light: #fac775; --amber-muted: #faeeda;
  --charcoal: #2c2c2a; --muted: #888780;
  --border: rgba(14,14,14,0.12); --border-strong: rgba(14,14,14,0.25);
  --idea-purple: #6366f1; --idea-purple-muted: #eef2ff;
  font-family: "DM Sans", sans-serif; font-weight: 300;
  color: var(--ink); background: var(--paper); line-height: 1.75; font-size: 16px; overflow-x: hidden;
}
.vg9 *, .vg9 *::before, .vg9 *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* HERO */
.vg9-hero { background: #0d1117; padding: 5rem 4rem 4rem; position: relative; overflow: hidden; }
.vg9-hero::before {
  content: "✦"; font-size: 20rem; color: rgba(255,255,255,0.02);
  position: absolute; right: 1rem; bottom: -4rem; line-height: 1; pointer-events: none;
}
.vg9-hero-inner { position: relative; z-index: 1; max-width: 900px; }
.vg9-eyebrow { font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal-light); font-weight: 500; margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.75rem; }
.vg9-eyebrow::before { content: ""; display: inline-block; width: 1.5rem; height: 1px; background: var(--teal-light); }
.vg9-hero h1 { font-family: "Cormorant Garamond", serif; font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 300; line-height: 1.1; color: var(--paper); letter-spacing: -0.02em; margin-bottom: 1.5rem; max-width: 26ch; }
.vg9-hero h1 em { font-style: italic; color: var(--amber-light); }
.vg9-meta-row { display: flex; gap: 2rem; flex-wrap: wrap; }
.vg9-meta { font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247,244,239,0.35); }
.vg9-meta span { color: rgba(247,244,239,0.7); margin-left: 0.4rem; }

/* PILL BAND */
.vg9-band { background: var(--idea-purple); padding: 1.1rem 4rem; display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: center; }
.vg9-band-label { font-size: 0.63rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.6); font-weight: 400; margin-right: 0.4rem; }
.vg9-band-pill { font-size: 0.7rem; letter-spacing: 0.05em; padding: 0.28rem 0.85rem; background: rgba(255,255,255,0.12); color: #fff; border: 0.5px solid rgba(255,255,255,0.2); }

/* INTRO */
.vg9-intro { background: var(--teal-muted); padding: 2.5rem 4rem; border-left: 4px solid var(--teal); }
.vg9-intro p { font-size: 1.05rem; line-height: 1.85; color: var(--charcoal); font-weight: 300; max-width: 80ch; }
.vg9-intro strong { color: var(--teal); font-weight: 500; }

/* BODY */
.vg9-body { max-width: 900px; margin: 0 auto; padding: 4rem; }
.vg9-section { margin-bottom: 3.5rem; }
.vg9-section-label { font-size: 0.63rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg9-section-label::before { content: ""; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg9-section h2 { font-family: "Cormorant Garamond", serif; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 300; line-height: 1.2; color: var(--ink); margin-bottom: 1.25rem; }
.vg9-section h2 em { font-style: italic; color: var(--teal); }
.vg9-section p { font-size: 0.93rem; line-height: 1.9; color: var(--charcoal); font-weight: 300; margin-bottom: 1rem; }
.vg9-section p strong { color: var(--ink); font-weight: 500; }
.vg9-divider { border: none; border-top: 0.5px solid var(--border); margin: 3rem 0; }

/* CALLOUT */
.vg9-callout { background: var(--paper-dark); border-left: 3px solid var(--amber); padding: 1.25rem 1.5rem; margin: 1.25rem 0; font-size: 0.87rem; line-height: 1.8; color: var(--charcoal); }
.vg9-callout strong { color: var(--amber); font-weight: 500; }
.vg9-callout.teal { border-color: var(--teal); }
.vg9-callout.teal strong { color: var(--teal); }

/* USE CASES GRID */
.vg9-uses-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 1.5rem 0; }
.vg9-use-card { background: var(--paper); border: 0.5px solid var(--border-strong); padding: 1.25rem; position: relative; }
.vg9-use-card::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--idea-purple); }
.vg9-use-card h4 { font-family: "Cormorant Garamond", serif; font-size: 1.05rem; font-weight: 400; color: var(--ink); margin-bottom: 0.3rem; }
.vg9-use-card p { font-size: 0.79rem; line-height: 1.6; color: var(--charcoal); font-weight: 300; }

/* EXAMPLES SECTION */
.vg9-examples-section { background: var(--paper-dark); padding: 4rem; }
.vg9-examples-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--teal); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg9-examples-eyebrow::before { content: ""; display: inline-block; width: 1.25rem; height: 1px; background: var(--teal); }
.vg9-examples-section > h2 { font-family: "Cormorant Garamond", serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--ink); margin-bottom: 0.75rem; }
.vg9-examples-section > h2 em { font-style: italic; color: var(--teal); }
.vg9-examples-section > p { font-size: 0.9rem; line-height: 1.8; color: var(--charcoal); font-weight: 300; margin-bottom: 2.5rem; max-width: 70ch; }
.vg9-example-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.vg9-example-card { background: var(--paper); border: 0.5px solid var(--border); overflow: hidden; }
.vg9-example-img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; }
.vg9-example-caption { padding: 1.25rem 1.5rem; }
.vg9-example-tag { font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--idea-purple); font-weight: 500; margin-bottom: 0.4rem; display: block; font-family: "DM Mono", monospace; }
.vg9-example-caption h4 { font-family: "Cormorant Garamond", serif; font-size: 1.1rem; font-weight: 400; color: var(--ink); margin-bottom: 0.35rem; }
.vg9-example-caption p { font-size: 0.8rem; line-height: 1.65; color: var(--charcoal); font-weight: 300; font-style: italic; }

/* SERVICE CARDS */
.vg9-service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin: 1.5rem 0; }
.vg9-service-card { border: 0.5px solid var(--border-strong); overflow: hidden; }
.vg9-service-header { padding: 1.5rem; }
.vg9-service-card.ideogram .vg9-service-header { background: var(--idea-purple); }
.vg9-service-card.midjourney .vg9-service-header { background: var(--ink); }
.vg9-service-nick { font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(247,244,239,0.4); margin-bottom: 0.3rem; }
.vg9-service-name { font-family: "Cormorant Garamond", serif; font-size: 1.6rem; font-weight: 300; color: var(--paper); line-height: 1.1; margin-bottom: 0.6rem; }
.vg9-service-name em { font-style: italic; color: var(--amber-light); }
.vg9-service-tagline { font-size: 0.78rem; color: rgba(247,244,239,0.6); font-weight: 300; }
.vg9-service-body { padding: 1.5rem; background: var(--paper); }
.vg9-attr-list { display: flex; flex-direction: column; gap: 0; }
.vg9-attr-item { padding: 0.75rem 0; border-bottom: 0.5px solid var(--border); display: grid; grid-template-columns: 90px 1fr; gap: 0.75rem; align-items: start; }
.vg9-attr-item:last-child { border-bottom: none; }
.vg9-attr-key { font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-weight: 400; padding-top: 0.1rem; }
.vg9-attr-val { font-size: 0.82rem; line-height: 1.65; color: var(--charcoal); font-weight: 300; }
.vg9-attr-val strong { color: var(--ink); font-weight: 500; }

/* COMPARISON TABLE */
.vg9-table-wrap { overflow-x: auto; margin: 1.5rem 0; }
.vg9-table { width: 100%; border-collapse: collapse; font-size: 0.83rem; }
.vg9-table th { background: var(--ink); color: var(--paper); font-family: "DM Sans", sans-serif; font-weight: 400; font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.75rem 1rem; text-align: left; }
.vg9-table td { padding: 0.75rem 1rem; border-bottom: 0.5px solid var(--border); color: var(--charcoal); vertical-align: top; line-height: 1.55; }
.vg9-table tr:nth-child(even) td { background: var(--paper-dark); }
.vg9-table td strong { color: var(--ink); font-weight: 500; }
.vg9-chip { display: inline-block; font-size: 0.65rem; letter-spacing: 0.06em; padding: 0.2rem 0.55rem; font-weight: 400; }
.vg9-chip-green { background: var(--teal-muted); color: var(--teal); }
.vg9-chip-amber { background: var(--amber-muted); color: var(--amber); }
.vg9-chip-gray  { background: var(--paper-dark); color: var(--muted); border: 0.5px solid var(--border); }
.vg9-chip-purple { background: var(--idea-purple-muted); color: var(--idea-purple); }

/* INTERVIEW */
.vg9-interview-section { background: var(--ink); padding: 4rem; }
.vg9-interview-eyebrow { font-size: 0.65rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--amber-light); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.6rem; }
.vg9-interview-eyebrow::before { content: ""; display: inline-block; width: 1.25rem; height: 1px; background: var(--amber-light); }
.vg9-interview-section > h2 { font-family: "Cormorant Garamond", serif; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; color: var(--paper); margin-bottom: 2.5rem; }
.vg9-interview-section > h2 em { font-style: italic; color: var(--amber-light); }
.vg9-qa-list { display: flex; flex-direction: column; }
.vg9-qa-item { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; padding: 1.5rem 0; border-top: 0.5px solid rgba(247,244,239,0.1); align-items: start; }
.vg9-qa-item:last-child { border-bottom: 0.5px solid rgba(247,244,239,0.1); }
.vg9-qa-q { font-family: "Cormorant Garamond", serif; font-size: 1.05rem; font-weight: 400; color: var(--paper); line-height: 1.4; }
.vg9-q-badge { font-family: "DM Mono", monospace; font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; background: var(--teal); color: var(--paper); padding: 0.15rem 0.5rem; margin-bottom: 0.5rem; display: inline-block; }
.vg9-qa-a { font-size: 0.83rem; line-height: 1.8; color: rgba(247,244,239,0.65); font-weight: 300; }
.vg9-qa-a strong { color: var(--amber-light); font-weight: 400; }
.vg9-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.vg9-pill { font-size: 0.67rem; letter-spacing: 0.06em; padding: 0.25rem 0.75rem; border: 0.5px solid rgba(247,244,239,0.15); color: rgba(247,244,239,0.5); }
.vg9-pill.t { border-color: var(--teal-light); color: var(--teal-light); }
.vg9-pill.a { border-color: var(--amber-light); color: var(--amber-light); }
.vg9-pill.p { border-color: #a5b4fc; color: #a5b4fc; }

/* FOOTER */
.vg9-footer { background: #0d1117; padding: 3rem 4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; border-top: 0.5px solid rgba(247,244,239,0.06); }
.vg9-footer p { font-size: 0.82rem; color: rgba(247,244,239,0.35); font-weight: 300; }
.vg9-footer p strong { color: rgba(247,244,239,0.65); font-weight: 400; }
.vg9-footer-links { display: flex; gap: 1rem; }
.vg9-btn { display: inline-block; padding: 0.65rem 1.75rem; font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; font-weight: 400; }
.vg9-btn.primary { background: var(--teal); color: var(--paper); }
.vg9-btn.ghost { background: transparent; color: rgba(247,244,239,0.55); border: 0.5px solid rgba(247,244,239,0.2); }

/* REVEAL */
.vg9-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.55s ease, transform 0.55s ease; }
.vg9-reveal.vg9-vis { opacity: 1; transform: translateY(0); }
.vg9-d1 { transition-delay: 0.1s; } .vg9-d2 { transition-delay: 0.2s; } .vg9-d3 { transition-delay: 0.3s; }
</style>

<div class="vg9">

<!-- HERO -->
<div class="vg9-hero">
  <div class="vg9-hero-inner">
    <p class="vg9-eyebrow">GenAI Mastery Series · Generative AI · Image Generation</p>
    <h1>Ideogram AI &amp; Midjourney — <em>Unleashing Creativity with Generative AI</em></h1>
    <div class="vg9-meta-row">
      <p class="vg9-meta">Ideogram<span>Free · Text-in-image · Founded Aug 2023</span></p>
      <p class="vg9-meta">Midjourney<span>$149/mo · Photorealistic · Large community</span></p>
    </div>
  </div>
</div>

<!-- BAND -->
<div class="vg9-band">
  <span class="vg9-band-label">Tools</span>
  <span class="vg9-band-pill">Ideogram AI</span>
  <span class="vg9-band-pill">Midjourney</span>
  <span class="vg9-band-pill">Text-to-Image</span>
  <span class="vg9-band-pill">Typography in AI</span>
  <span class="vg9-band-pill">Prompt Engineering</span>
  <span class="vg9-band-pill">Creative AI</span>
</div>

<!-- INTRO -->
<div class="vg9-intro">
  <p>Generative AI is reshaping visual creativity — and two tools are leading the conversation. <strong>Ideogram AI</strong> offers free, text-integrated image generation that anyone can use today. <strong>Midjourney</strong> delivers stunning photorealistic results with a large, established community. Here is how they compare, what they each do best, and how to choose.</p>
</div>

<!-- BODY -->
<div class="vg9-body">

  <!-- IDEOGRAM -->
  <div class="vg9-section vg9-reveal">
    <p class="vg9-section-label">Platform 1</p>
    <h2>Ideogram AI — <em>democratizing image generation</em></h2>
    <p>Founded in August 2023 by former Google Brain engineers, Ideogram has raised <strong>$16.5 million</strong> in seed funding. Its mission: make photorealistic AI image generation accessible to everyone — with a standout ability to render clean, legible <strong>typography inside generated images</strong>, something most other tools handle poorly.</p>
    <p>To use Ideogram, simply describe what you want in words — subjects, scenery, lighting, colors, and any text to embed. The AI generates an image matching your description. Results look like real photographs infused with your imagination.</p>
    <div class="vg9-callout teal">
      <strong>Key differentiator:</strong> Ideogram&#8217;s ability to render clean, legible text within generated images sets it apart from every other generative AI image tool. For posters, branded content, invitations, and apparel — this is a game-changer.
    </div>

    <div class="vg9-uses-grid">
      <div class="vg9-use-card vg9-reveal vg9-d1">
        <h4>Magazine &amp; Posters</h4>
        <p>Generate publication-ready covers, event posters, and book illustrations with embedded titles and copy.</p>
      </div>
      <div class="vg9-use-card vg9-reveal vg9-d2">
        <h4>Invitations &amp; Cards</h4>
        <p>Create visual invitations, announcements, and greeting cards with custom text fully integrated into the design.</p>
      </div>
      <div class="vg9-use-card vg9-reveal vg9-d3">
        <h4>Apparel Design</h4>
        <p>Design T-shirts and apparel mockups with custom text — prototype merch concepts without a designer.</p>
      </div>
      <div class="vg9-use-card vg9-reveal vg9-d1">
        <h4>Marketing Visuals</h4>
        <p>Produce on-brand social media visuals and ad creatives faster than any traditional design workflow.</p>
      </div>
      <div class="vg9-use-card vg9-reveal vg9-d2">
        <h4>Rapid Iteration</h4>
        <p>Remix and iterate new image versions instantly — explore 10 visual directions in the time it takes to sketch one.</p>
      </div>
      <div class="vg9-use-card vg9-reveal vg9-d3">
        <h4>Concept Exploration</h4>
        <p>Turn early-stage ideas into visual references before committing to full production — faster creative feedback loops.</p>
      </div>
    </div>
  </div>

  <hr class="vg9-divider">

  <!-- MIDJOURNEY -->
  <div class="vg9-section vg9-reveal">
    <p class="vg9-section-label">Platform 2</p>
    <h2>Midjourney — <em>photorealistic power</em></h2>
    <p>Created by San Francisco-based independent research lab Midjourney, Inc., Midjourney generates images from natural language prompts — similar to DALL-E and Stable Diffusion. It has built one of the largest generative AI communities and is known for producing some of the most aesthetically stunning AI images available.</p>
    <p>Midjourney is currently <strong>invite-only</strong> with a monthly subscription starting at <strong>$149/month for 100 credits</strong>. Additional credits are available in packs of 100, 250, or 500. The workflow is simple: create a prompt, click Generate, then save, share, or remix the result.</p>
    <div class="vg9-callout">
      <strong>Key differentiator:</strong> Midjourney produces some of the most visually stunning and photorealistic AI art available. Its large, established user base means extensive community resources, prompt libraries, and style guides to learn from.
    </div>
  </div>

  <hr class="vg9-divider">

  <!-- SIDE BY SIDE -->
  <div class="vg9-section vg9-reveal">
    <p class="vg9-section-label">Comparison</p>
    <h2>Side-by-side — <em>key differences</em></h2>
    <div class="vg9-service-grid">
      <div class="vg9-service-card ideogram vg9-reveal vg9-d1">
        <div class="vg9-service-header">
          <p class="vg9-service-nick">Ideogram AI</p>
          <p class="vg9-service-name"><em>Free &amp; Accessible</em></p>
          <p class="vg9-service-tagline">Text-in-image generation, no subscription required</p>
        </div>
        <div class="vg9-service-body">
          <div class="vg9-attr-list">
            <div class="vg9-attr-item"><span class="vg9-attr-key">Price</span><span class="vg9-attr-val"><strong>Free</strong> — no credit card required</span></div>
            <div class="vg9-attr-item"><span class="vg9-attr-key">Text in Image</span><span class="vg9-attr-val"><strong>Yes</strong> — clean, legible typography embedded in images</span></div>
            <div class="vg9-attr-item"><span class="vg9-attr-key">Stage</span><span class="vg9-attr-val">Beta / Early — active development</span></div>
            <div class="vg9-attr-item"><span class="vg9-attr-key">Community</span><span class="vg9-attr-val">Growing — smaller but fast-moving</span></div>
            <div class="vg9-attr-item"><span class="vg9-attr-key">Best For</span><span class="vg9-attr-val">Branded content, posters, apparel, casual creators</span></div>
          </div>
        </div>
      </div>
      <div class="vg9-service-card midjourney vg9-reveal vg9-d2">
        <div class="vg9-service-header">
          <p class="vg9-service-nick">Midjourney</p>
          <p class="vg9-service-name"><em>Established Power</em></p>
          <p class="vg9-service-tagline">Photorealistic quality, large creative community</p>
        </div>
        <div class="vg9-service-body">
          <div class="vg9-attr-list">
            <div class="vg9-attr-item"><span class="vg9-attr-key">Price</span><span class="vg9-attr-val"><strong>$149/mo</strong> for 100 credits — invite-only</span></div>
            <div class="vg9-attr-item"><span class="vg9-attr-key">Text in Image</span><span class="vg9-attr-val"><strong>No</strong> — typography rendering is a known limitation</span></div>
            <div class="vg9-attr-item"><span class="vg9-attr-key">Stage</span><span class="vg9-attr-val">Established — mature platform</span></div>
            <div class="vg9-attr-item"><span class="vg9-attr-key">Community</span><span class="vg9-attr-val">Large — extensive prompt library and guides</span></div>
            <div class="vg9-attr-item"><span class="vg9-attr-key">Best For</span><span class="vg9-attr-val">Fine art, concept design, photorealistic renders</span></div>
          </div>
        </div>
      </div>
    </div>
    <div class="vg9-table-wrap">
      <table class="vg9-table">
        <thead><tr><th>Feature</th><th>Ideogram AI</th><th>Midjourney</th></tr></thead>
        <tbody>
          <tr><td><strong>Price</strong></td><td><span class="vg9-chip vg9-chip-green">Free</span></td><td><span class="vg9-chip vg9-chip-amber">$149/mo+</span></td></tr>
          <tr><td><strong>Text in images</strong></td><td><span class="vg9-chip vg9-chip-green">Yes ✓</span></td><td><span class="vg9-chip vg9-chip-gray">No</span></td></tr>
          <tr><td><strong>Development stage</strong></td><td><span class="vg9-chip vg9-chip-amber">Beta / Early</span></td><td><span class="vg9-chip vg9-chip-green">Established</span></td></tr>
          <tr><td><strong>Access</strong></td><td><span class="vg9-chip vg9-chip-green">Open signup</span></td><td><span class="vg9-chip vg9-chip-amber">Invite-only</span></td></tr>
          <tr><td><strong>User base</strong></td><td><span class="vg9-chip vg9-chip-gray">Growing</span></td><td><span class="vg9-chip vg9-chip-green">Large</span></td></tr>
          <tr><td><strong>Photorealism</strong></td><td><span class="vg9-chip vg9-chip-amber">Good</span></td><td><span class="vg9-chip vg9-chip-green">Excellent</span></td></tr>
          <tr><td><strong>Prompt interface</strong></td><td>Web app</td><td>Discord bot</td></tr>
        </tbody>
      </table>
    </div>
    <div class="vg9-callout teal">
      <strong>Bottom line:</strong> If you need text embedded in images or want to start for free today — Ideogram AI. If you need the highest-quality photorealistic output and have the budget — Midjourney.
    </div>
  </div>

</div><!-- /vg9-body -->

<!-- EXAMPLES WITH REAL IMAGES -->
<div class="vg9-examples-section">
  <p class="vg9-examples-eyebrow">Live Examples</p>
  <h2>Generated with <em>Ideogram AI</em></h2>
  <p>Both images below were generated entirely by Ideogram AI from a single text prompt — no editing, no Photoshop. Notice how the text and characters are rendered cleanly inside the image itself.</p>
  <div class="vg9-example-grid">
    <div class="vg9-example-card vg9-reveal vg9-d1">
      <img decoding="async" class="vg9-example-img" src="data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAQGBAgDASIAAhEBAxEB/8QAHQAAAAcBAQEAAAAAAAAAAAAAAAECAwQFBgcICf/EAFIQAAEDAgUBBAgCCQEECAMHBQEAAgMEEQUGEiExQQcTIlEIFDJGYXGEw0KBFRcjUlaRoaTTMxZicrEkNENTgpKU0aLB0iU1NkRUY6Nks8Lw8f/EABsBAAIDAQEBAAAAAAAAAAAAAAABAgMEBQYH/8QAMhEAAgICAQMEAwEAAgIBAwUAAAECEQMEIQUSMRMyM0EUIlEGI2EVQvA0cYFDUqGx0f/aAAwDAQACEQMRAD8A9V5xzplnKHqv+0WJepet6+4/YSSa9GnV7DTa2pvPms9+ujs0/iX+xqP8a596Yvur9Z9hefFRPK4yoyZdiUJNI9ifro7NP4l/saj/ABofro7NP4l/saj/ABrx2jCg80iv8qf8R7D/AF0dmn8Sf2NR/jQ/XR2afxJ/Y1H+NePUEvXkL8uf8R7C/XR2afxJ/Y1H+ND9dHZp/En9jUf4149QR68g/Ln/ABHsL9dHZp/En9jUf40P10dmn8Sf2NR/jXj1BHryD8uf8R7D/XP2afxJ/Y1H+ND9c/Zp/En9jUf4149CBQs8g/Ln/Eewf10dmn8Sf2NR/jQ/XR2afxJ/Y1H+NePUEPPIPy5/xHsL9dHZp/En9jUf40P10dmn8Sf2NR/jXj1BHryD8uf8R7D/AFz9mn8Sf2NR/jQ/XP2a/wASf2NR/jXj0I0evIPy5/xHsH9c/Zr/ABJ/Y1H+ND9c/Zr/ABJ/Y1H+NePkEevIPy5/xHsH9c/Zr/En9jUf40P1z9mv8Sf2NR/jXj5BHryD8uf8R7B/XP2a/wASf2NR/jQ/XP2a/wASf2NR/jXj5BHryD8uf8R7B/XP2a/xJ/Y1H+ND9c/Zr/En9jUf414+QR68g/Ln/Eewf1z9mv8AEn9jUf40P1z9mv8AEn9jUf414+QR68g/Ln/Eewf1z9mv8Sf2NR/jQ/XP2a/xJ/Y1H+NePkEevIPy5/xHsH9c/Zr/ABJ/Y1H+ND9c/Zr/ABJ/Y1H+NePkEevIPy5/xHsH9c/Zr/En9jUf40P1z9mv8Sf2NR/jXj5BHryD8uf8R7B/XP2a/wASf2NR/jQ/XP2a/wASf2NR/jXj5BHryD8uf8R7B/XP2a/xJ/Y1H+ND9c/Zr/En9jUf414+QR68g/Ln/Eewf1z9mv8AEn9jUf40P1z9mv8AEn9jUf414+QR68g/Ln/Eewf1z9mn8Sf2NR/jRfro7NP4k/saj/GvHxRI9eQflz/iPYX66OzT+JP7Go/xofro7NP4l/saj/GvHqCPXkH5c/4j2F+ujs0/iX+xqP8AGh+ujs0/iX+xqP8AGvHlkBsn68hvbnXCPYf66OzT+Jf7Go/xofro7NP4k/saj/GvHqCXryIrbyfaR7C/XR2afxJ/Y1H+ND9dHZp/En9jUf4149QR68h/lz/iPYX66OzT+JP7Go/xofro7NP4k/saj/GvHqCPXkH5c/4j2F+ujs0/iX+xqP8AGh+ujs0/iX+xqP8AGvHaF7DdP15DezkrhI9ifro7NP4l/saj/Gh+uns0/iX+xqP8a8dsIde29uUbCXO0sv8AEWR68hw2Mr+j2J+ujs0/iX+xqP8AGiPbT2Z/xL/Y1H+NeRYcPqJj+zpXuPnurSkypjM5FoCxvxUfyJGrHHPPxE9S/rr7Mv4l/saj/GjHbT2ZnjMv9jU/4151ocgyOAM8tj8lb0uSsOg3lkDz5JfkyN2Pp+1Pwjuo7Zezc8ZiP/oKn/Gls7YOzt5s3MDj9BUf41xiLBsGgbYxNKMR4NT30RsBKX5M/wCHQx9C2peUdui7U8iSexjjj9FP/wDQn29pGTHcYw7/ANJN/wDQuDvrqKLdkbEyMehaT+zal+VP+G6H+aytcnoEdomTzxi5/wDSzf8A0JQ7QMonjFj/AOml/wDpXno5jjvZrGpuTMh6Maj8qf8AC1f5iX3f/wA//B6KOf8AKQFzix/9NL/9Kad2j5Mb7WMEfSTf/QvOv+05B3YCEZzLC7lrUntz/iLF/l1/X/8Ax/8A4egpO1LIsft424fRzn//AATJ7W+z4c487/0NR/jXB2Y5Rv5jYU+K/CZG+ONl0vy5/wARXP8AzMl4v/5/+Dtj+2Ps4Z7WYXD6Co/xov1zdm38Rn/0NR/jXDXjBJgQ+JiivwjA5TtpF1JbU/4jFk6Bmj4R3o9tHZoOcy/2NR/jQ/XR2afxL/Y1H+NeeZ8o4dLvBOGnyVfPkip3MMyl+TIwZek7cfCPSp7a+zIe8v8AY1P+ND9dXZl/Ev8AY1H+NeUq3LOLwHeEvHmq2ooaqD/Vhc38k1sSOdlwbOL3RPX47aezM+8v9jUf40r9c/Zr/En9jUf4144BsNwR+SeYCW36KXryMcs+WPlHsL9c3Zr/ABJ/Y1H+ND9c3Zr/ABJ/Y1H+NePzsi1JevIrW1kb8HsD9c3Zr/En9jUf40P1zdmv8Sf2NR/jXj8HZC4T9eRJ7lfR7APbP2ajnMn9jUf40X66OzT+Jf7Go/xrx+7dJsj15EXuP/1R7C/XR2afxL/Y1H+ND9dHZp/En9jUf4148CNL15CW3k+0j2F+ujs0/iT+xqP8aH66OzT+JP7Go/xrx6gj15D/AC5/xHsL9dHZp/En9jUf40P10dmn8Sf2NR/jXj1BHryD8uf8R7C/XR2afxJ/Y1H+ND9dHZp/En9jUf4149QR68g/Ln/Eewv10dmn8Sf2NR/jQ/XR2afxJ/Y1H+NePUEevIPy5/xHsL9dHZp/En9jUf40P10dmn8Sf2NR/jXj1BHryD8uf8R7C/XR2afxL/Y1H+ND9dHZp/Ev9jUf4148KJHryD8uf8R7E/XR2afxL/Y1H+ND9dHZp/Ev9jUf4147QR68g/Ln/EexP10dmn8S/wBjUf40P10dmn8Sf2NR/jXjwI0evIPy5/xHsL9dHZp/En9jUf40P10dmn8Sf2NR/jXj1BHryD8uf8R7C/XR2afxJ/Y1H+ND9dHZp/En9jUf4149QR68g/Ln/Eewv10dmn8Sf2NR/jQ/XR2afxJ/Y1H+NePUEevIPy5/xHsL9dHZp/En9jUf40P10dmn8Sf2NR/jXj1BHryD8uf8R7D/AFz9mn8Sf2NR/jQ/XP2a/wASf2NR/jXj0I0evIPy5/xHsH9c/Zp/En9jUf40X66OzT+JP7Go/wAa8fFEj15B+XP+I9h/rn7NP4k/saj/ABofrn7Nf4k/saj/ABrx6EaPXkH5c/4j2D+ufs1/iT+xqP8AGh+ufs1/iT+xqP8AGvHyCPXkH5c/4j2D+ufs1/iT+xqP8aH65+zX+JP7Go/xrx8gj15B+XP+I9g/rn7Nf4k/saj/ABofrn7Nf4k/saj/ABrx8gj15B+XP+I9g/rn7Nf4k/saj/Gh+ufs1/iT+xqP8a8fII9eQflz/iPYP65+zX+JP7Go/wAaH65+zX+JP7Go/wAa8fII9eQflz/iPYP65+zX+JP7Go/xofrn7Nf4k/saj/GvHyCPXkH5c/4j3Dk7OmWs3+tf7O4l676po7/9hJHo16tPttF76XceSC496HnvT9J95BaMcnKNs2YpucFJhemL7q/WfYXnxeg/TF91vrPsLz6s+X3sw7HyMJGESMKt+ClhoIIKBECCCIpoYd0LpKCdBQsIIBGoiCKJGUSAAggggAwjRBGgAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCACKKyUggBNkLJSCAEoEJSJFiSpibFHZKARE7osnTl4QVkLJTGve7SxpJ+SnQYLiM726InAH4JWXY9XLL6K78kYuei2FBkjEZ7Ol8Deuy0dFkTD2WdM8OcOiLOhi6RlyeEcxhpp53WjjcT8lc4ZlTFKw/8AVyG+d11KLB8NoowIqdpPVB9XLCNFPTgBFnZ1f83N8yMphfZ7Gy7qiUMPUeauosu4DQgGaFrned0/NLiE3AIPzVTiNBilRaxO3xQ5HotboOHEl3IvocRwWiYWxRxt/K6j1OaqGMECRnyAWLrMv40++kO/mq5+V8eJv3TiPmotnZx6erD6NXXZuY4kRs287qpmzC9zr6yPzVK/AMXjNnwuSHYHilv9ByjZshjwrwi5OPut7d1Clxgvd4t/zVccFxPjuHIhgmKf/p3INMXBEqfEyTZtx+aakrTp53TTsHxRu5pnKPPQ18Y8cDgg0LJAc9deDe6J1e7zKrZXTMNnBzT/AMKYfM++7j/JIccsLLSSud+8mjWO/e/qq52s7hJ8Y5Sot7U+UWjK94/EU63EpB+Mqk1nzR6z5oJfVF2cVkHDyg3GJwdnlUbnHzSC53mmReKMjVQY/O237QqypM1TRkWfqHVYQOcnGucOqdlctOEjpsOdGkBr2t+KlnGsMrQ0TRscOu1lylsjg7cqbBVEHwuOyalRhydLwyfKOkzYbl+sBEcTWH5qorcnwkOkpJ7n91ZyLEXtsRIQrPDsekjcNUlx1T7mc7Z/zevlVpESswHEIBcxFw81WywSxnxscPyW4izEyQhsrAWKXrwms2e1rb8I7jy+3/lHb7Dm+ocG6F2rf1uWKGpYTTvbfos7X5Uraa7mN1AKSkea2v8AP5sTfBRHZBLlp543Fr2OBHwSL6eU7OPPUyYX+yAUELgoIspbsCCCCBAQQQQAEEELpjAgggkICCCCACKFkaCACshZGggAgjQQQAEEEEABBBBAAQQQQAEEEEAGEaII0AEUVkpBABAI7IBGgAkECggAIIIIACCCCAAggggAIIIIACCCCAPQHoee9P0n3kEPQ896fpPvILdh9iOpr/GgemH7rfV/ZXn0gr0F6Yfut9X9lef1my+9mLY+RiLHyRgJSIqF2UhIWRhGkwE2QIKUggBFj5IWKWgnYWEEaCCiIIorJSCAE2QslIIAII0EEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEAFdAIboDZMbqg0EXyQ/NAKMmgIFBDogTTjywXRgE8ImgnhFo1yCOxLjxZDLMcHk9qFEEI2Nc82a0kq+wXKtdVnvJW2j6LXUGW8Ow+0kzmlw6KDZ2dTouXNTaMHQ4HiFY4BkLrHqtNhmRnNIfUbHyWpdilBEzTCGtLfgoM+YNRABtZR7j1mn/l0oqTRLocAw6is4sa5w+CtvWKWNoDadosspPjjnDZ6jy42/T7SXcd7D0bFjVUbNuItI07NCYfWMB9tYn9NOJ9pIkxdx/EizbDQjHwjb+vs6uRGtiJ6LCuxZ/wC8kNxl1/bRZb+KzeeuMB2KI17QeQsQMZI/GiOMk/jQS/HdUboV7PMJxtcw8WWB/Sx/fTzMXI/GkR/GZvxPERuG/wAkffQ6beD+SwzMZP7ykNxNxF9aVkXryRq+8jvw3+SWyaMfhb/JZMYker06yvNr6kWR9GSNX6xTEWfG3+SZLcOlJ72BpWcNcT+JAVxB3KLIvHMu6jAsDrNnU7bqsrsiYTL/AKVoz/NCnriHX1KeMRcW8oI9k07MpXdnTQ0mnm1Hyss/iGRsWpm62xlw+a6eyvJ/EpEVY0ts+zgmXRz5I8HB6vD6yndpmgeD8lEex7PaaQu/TR4fPdskLLHrZVOIZSwSvYdAAd5oLI7MjijyAL9ETTcXC6Ji3Z26MF1LJrHksjX4FX0b3NfCdIUjRDYRWCwSiUNLr2IIPxQeCBulRas3/YRKIOLUlrt7FBxATSLFOxzvilsqCAoqL80NE1IsmVbiRZxCmR1sjC1zHknqqIG3VONlcOqQfqzXUePTstd5Flc0mZtZDXkOHxXO2zHzT0dQWG4KjRVPBiyeUdNFVh1WbPgaCUifKtHWR66eQMd5LC0uJuZbxcK4osxVMRBBNvmpJnF3ehYcy8B4rlbEKQ3YzvG9SOipJIJoyQ+Mi3Oy3VHmpr2BsjQ4Hm6emkwysB1Ma0uT7jyG3/kHbeM5yHAkjyRh1zstfX5bgnBdTOGyoqrB6yC4MXhHVTUlR5ja6Jn15NNFdv5IFLMbmkhzSLJp5UjkzhKLqgEowkA3S2piUeAwLI/kjNkQCQmgrIWSrIjskRCQQKCAAggggAIIIIACCCCAAhZGEaAE2QslIIATZCyUggAgjQQQAEEEEAAI0QRoAIoIFBAAQQQQAEEEEABBBBAAQQQQAELIBGgD0B6HvvT9J95BD0Pven6T7yC3YfYjqa/xoL0w/db6v7K8/L0D6Yfut9X9lefis2VfuzFsfIw0SNBVFASNBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBABIFAoJih7gBDpdADqlWHtO2+CLE3JypCRubBK0PvYNupdFQ1FW8NijJaeT5La4Hl6mpojJVEXG4uotnb0OkZNmVNcGXwfLlbXjV3ZbH5la3D8DocMi1Shr3eZTldikdMwxxAMa3i3VZivxqeRxbc2UHI9907/AC0MVNmlqcahgaWRvDfgFRVuNvlcQZDZUFRVucdzYqK55J5UWz1+DSxYY9tFvLXEG7Xk35TLqx56qA0k8pRcBykbF2pUiUat/mk+sucLXKiue08FNPlDdwgh2oluqSxNPriVCfOHbEpl8rRtdFDpFg6scQd0z624OO6hGVMvkN9ipJCdFmax3mh6w53UqtZJ5lOCVoO5T7RcFiJnj8SdjqXDa6rWTtJsCEtz7HYpNCtFzDUG1y5SIqiS27tlRtn43UgVJ02BSoXDLplSQ7dykGtAGzlnBO7zRioP7yKE4o0sVWXHZyleskgXWXpqktdyrCKrv1RRBxRfQT34Kld+bcrPtqSNwbJ+KsJNiVEg4ovGVJva6kx1VhuVSxzNePinhJ8UWZZwLX1oX3T0VXI3h+ypg4k8p5shaL3RZS8bLpldIHWLtk+WUlVGRKxpvzsqNk9+U/HUBu10+4h2tETGsp0FQC6AhrljcWypXUl3MBe1dBbUXPtJUsoc2zrOHknZNNo45NTyxuIkYQQo72m+y6pieE0tY0kMAJWZrssSR3dGLhSs1QzUjIFpA3RKxq6KeF5bJGQFCfEWo8k/Usbukh4ulPFgmmt8RQyUZsdDronPsgG+aTIPJKixTHGSKTDUkbEqC0JY5QWKbZasqTcFpsVNixCYFtiTZULHOClU83mosnGrs1dDi8hABcQrmnxCKSwkIIPKw0crgdlOhqHixBUTPsa2LO/2RtKjDsPxCPwANcFm8Zy9VQbxR6mjyR0uIyxkWJV7h2LF5AlAcPirYyo8t1L/ADeHJcoIwUsUkTtMjC0/JHpNrrptbRYdikNnRtY62xCy2K5Wmpi6SnOtnKl3nht7oWbBbSM4AlcI5WPjeWvaQR5hIDwdlJM89LFli6kg7onJWyI7pkGJQRlEkICCCCAAhZGEaAE2QslIIAII0EEABBBBAAQQQQAEEEEABBBBAACNEEaAAUVkaCACshZGggArIWRoIAKyFkaCACQQKCAAEaII0AegPQ+96fpPvIIeh970/SfeQW7D7EdTX+NBemH7rfV/ZXn2y9BemH7rfV/ZXn9Z8r/dmLYf/IwIIIKkoAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggAijARdUpniNhymTjBt/qA+Ft7cLQZby9Nif7aRpbCOpUnKWXn1cpqKllomb79VosYxWloohT0tmBosQFBs9V0XobzzUpoNsdDhsXdsLbjqqTF8ZefDG/ZUuIYpJPIQHGyrpJXHkqB9S0em4cEEkh6srZJHbuKiOm2+Kbe65TZN1Bs6q48Cy+5+KcYwne2yKCMONz0Utwbos1BFoYBA2TchveyKWRrXEE7qNJNYGxTSFQckuk2TL5btIUeWUE83Se8GlSoixEktjymXzHzTFXLZ+xUZ89lKimWRomGdw4Resnqq41Lb8pBnB4KkkQ9UtmT34KcJvy5UZmNxZ1lKgnuLar2TD1Sy1tabhycZVACxKru9HUpQlYeqi0HqFkKgHqU9HPfgqqL9IuCijqbGwKVD7y574jqk+sW6qs9Zv1TjJQ7qkHcWUdTc8qXBUkdVShzR1RPnc0tIOyCLkallSdO6WyqcXWas/DVktBLuFOhqNdiNgotAX0dRMLEqRHVvKrIZ2FgBcnmyAcFQCizZVOHJT8dYXHm6qGyA9U+w9RsgTRcd/tcFGJnE7KrbI63KcimIO5QVOJbxzm26cdI5w2VZHOHbXUhklhymiiSp0TGyEDcojKTtyFGMl+qGoeadkaBV0kFQDqaLlZ7EcCcSTC260OsE8pTX9DupImmc3xGiqYX+OMhRGRm/C6fNTwTtIewG6qavLEEup8TrHoE0WLJXBh3WCQbdVbYjglXSvN4jp81A7h45agmpoY024QGxTrmEdElrbu3QXRkG3jdLYbFGB5o2t34UaLEyVCeFOg4Ve3YBTKZyi0T4JbTuptNIRayhMve1lMhYbXsotEGy4o61zWgEq4o8UYBpkGoHzWbhuQBZS4IXnxWKknRmz4seRfsjQVuFYbikJIDWydFjMZy3U0Uji1hLOhC0VI6pa+zAVoMOMkkTo6qIOB4upqR5LqfScM03FHH3sdG4g3FkWsLqWL5Qpq1j5YAGv5tZc/xbBKyhmcySIgX2KsTPB7fSsuKTaXBWkoAoOY5vKLZSOVNdvH2GggEEFab+wwjRBGkMJC6BRIANGiCNAAQQQQAEEEEABBBBAAQQQQAAjuiQQAaCII0ABBBBAAQQQQAEEEEAAorI0EAAIIIIA9Aeh970/SfeQQ9D73p+k+8gt2H2I6mv8aC9MP3W+r+yvP69AemH7rfV/ZXn9Zs3vZi2PkYEEEFUUAQRXQugA0ESNAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAMCCCCCNsI8XQHF0OtuiFjqI6IJK34CPK0mT8vyYnP3rxaJm91UYNRSV1eyJjSd910iN8GDUAijID7eJJyS4PS9E6XLYyJyXAWM4jHh1GKSABukWJCwOKVRlkc4nlP45iL56h7iduipnvLrkqps+u6OlHWikkMPlLXoGW/VMzX1JNwlZ0aX0PusRykMN32CYlc7bSnaUEuF+UgLSGMhlwEovDLgpyH/AEvyUeeyVibK6qsJHOJ2KYeQWXCfrGkt2UOQkRaRypxItkWU+LZMySaWmx3Qkc9t7hQ5HOLt1YiuTETuJduUw8+Epct7phztrKaRknLkjvPiKJpJ4RPB1JUYJBsmVPkLUfNGJCzgoixwO4QDb8hKyPItszj1S2yOuE3o+CkRMHTdIkk7HRIXBOQg8pLIyOQno2uPAQTSYuNpO9tlIiaQOEmEAAB2ykW22UWWKxNkiS3Cdsi7u5BtwkMbZr02AU2nmLWAHlNFrQBZJ+SKAsYJzflWlLMHCxO6z0biCplNI9rrqLigsvdVuSlNmttdQ45tTBqS2karqNATmvJF0/Tkm91Dje3Tyno5wwbbqNCfkmBwadjZONm4F1DZUNdzsjkeQQQmVuCfJZCQlK70W5UOGUEblO62nqgg4Id70A7bp2Oa+yjMc3yTzXs4TIuJKuCnY36VEYTfYpwH4J2VOLJp7qWMsewEFVVZlumqLvicAT0UtryOFLgeSEWCtGJxLL09MbgEqjnhfG4hzSPyXXWFj26ZGAqHiGB0lWLiMBOy2GWjlbQT0TzYidwtXiuV5YxqgbqCpvUZoSQ9h/kmWrMiNDCXbEKZBT2IuEqnidf2VZQRFxGygy1Zo0OUlMxzbkbqwpqLU4DTsnKGlJtsrqkptNrhRZXLKhimwuPSPDurCGgYABpUyFjQBsnbgIMk8r8CI6SFlg1oJPKlwQQx73ufJMhwTjXjqgpfPkkvmtbR+ah11HTVkbhK0aj8EoyNB3KMPb0U4yMWfBHLw0YDMOVJYnOlpG62nchZCpp5IZCx7CCF2uY6ha129QqbGMKwysjNowyUdVYpI811DokXcoo5SWubyOUV1fYzgNTTEujaXs6EKiexzTZzSD8Qp8HkM+lkxydoDSlJDfasloMTVMIokZRJCDCNEEaAAggggAIIIIACCCCAAggggAIIIIAAR3RIIAO6F0SCADQRBGgAIIIIACCCCAAggggD0B6H3vT9J95BD0Pven6T7yC3YfYjqa/xoL0w/db6v7K8/r0B6Yfut9X9lef1mze9mLY+RhIXQKJVFAEQRoIAMIXRIIANGiCNAAQQQQAEEEEABBBBAAQsgEaACshZGggAkECggAIIIIACCCCAAggggAIIIIACCCCAAgiQumFBptzS6RrRe5KWtDlDCvXJ3Tyt/Zx73UG6N3TtaWfL2o0OVsMZh9F628ASEbKpzNVudKSH+1yPJWeP4myKIQQHYCyxtbU6yS525VElbs+ydE6ZHXxxpckWeXU5MuddIJJcT0Rk2TSPRzdiJN+U0dk49wvuVFqXnbQiiC4HRuLp6jILz8FBie8mxUuLwEEclMC2DiGbKPLqJv0Sqd5I3S3kEcJCZBm3BUCbmysZmnewUCVp1cKSIkOVl1Fki3Vk5gtuo747mymmQkirnj8kyICeVaPgcXcIxTHyUzLOFsqH0/kgylJ+Ct/VT5I2wb8J2JQK2OjvynPUvgrNsI8k8Ib72UWWxxop/Uz5JyOm0HhXDYPgh3F+iLJemit7k/upQhI4Cse4+CW2H4KLH2IrWROvchS2Ri3CliD4JxsG3CQ+wr3xcWCcbDZvCl6G34TgYOqBOJWSREb2Tek34Vw+JpHRMPpx0CZBorgCHBTIx4b9UTqcgp0N0tAQRqhbHkAJ5ktlHB2Q38lFoaJrZQU6yXSq4E9E4JD1SoGiwbOCbWT7Hi3KqmPN0/G8+aKIstGvtwUrvfioDZDblOskHUpURaJrZSnWSF3Chh7T1TjJLcFIi0WMD3Bylh7SFVRSOBN08yU2QRZZxWcVPpw0DdUTJnNOylRVbrDdCZW0XdhbYp2GTTsVTtqneacbVO81NFbgXYfG4WcolVSUsxI0DdQ21JPVLFS5hvygqlFpjUmCsDrxtFkcWFaDciynU9cHix2TwnBUSH7CKWla0iytIoAGqFHK297qQKhobyojXcPloakOso8tR8U0Ki45QTUWyX3rAbEpMs7RwbquklOrlMy1GkbnlBL0ye+qF+UcdQXeyqV1R4uVIpJXHVZCJemqstjUmNheegWUxbNkDasxXAIU/HZ3MwyZwJDgNlwnFsQmOJvcXnZymolKjFy5O0UWPxyklwD2+SGIUdHirHGENZJ5Bcmw3GXscA2QnzWxwLFi6x12KmuCnc6bgzx8DeJUMtE/Q9trdfNQ2m62UksGKxdy9oDwNj5rL4hRupKhzD+Smj531jpH48nKBGKKyNGg80r+whshdAokAHdC6JBAB3QuiQQAaNEEaAAggggAIIIIACCCCAAggggABGiCNAAQQQQAELoiggA7oXRIIA9A+h770/SfeQReh570/SfeQW7D7EdTX+NA9MP3W+r+yvP69AemH7rfV/ZXn9Zs3vZi2PkYRRIyiVRQBBBBAAQQQQAYRogjQAEEEEABBBBAAQQQQAAjuiQQAd0LokEAAoIIIACCCCAAggggAIIIIACCCCAAggggAkSNAphFtuhynjM0zWN6ldFw2BuH4PYixcNz5rL5Ow6SqqTLou1iv8dqiGmBnDRZVT4Pof8AlOmRclORnsUk7yUnoqOp3crWseA0A8qsmBJvbZUW2fUYKOPhEcjZNyKRb4ImNaeVJMcpdzITgT0Se7vypk7ALaEmKO97p2CSIoYAU+xtwCnu6F0p0Za0WTItxTFw208pbiPmopk0dUplQ0/gJSI+pEdOkixFlEniu7wi6ddUAmzad5PyKfpIa6R94qJxQVSzxRXup5LewVHdG5p3aVtaPCcSnIa+kLQeqs48sMaf24AKlZU86ObiNx6H+SWIn/un+S6ScBo4+QP5JuTCKTo0I7iPqpnPhGbWLT/JAQi99JW6dhFOOAEy/CITwAn3B3oxZjAPsowPILWvwaEncJt2DQg83R3DU0ZkC3RLBC0X6Ig80l2CwHhyO4sUkUjGBye7keQVu3BYhw9LOERj/tErE5lG6PTyktsTpV1LhrGizXXUP1DQ4lKxd5VubpfYlGXN80nEYpI3ktuqKqqKljtgSixd5fvkYBcuAUV+JQNdpDrlZ50tVUP0AuCt8NwV7gHvupEXInsl74XARuFlKFGIGCyZmtZMVkVzw02Sdabm3fskX80ASDK0DcpQkaeqgyuATRlt1TQrLJ0wB2KcjqLmyqRMOpSmzi+xRQu5F22fblK7/wCKqGzm3KW2cnqk0Ky7ppBJfU61lIZcG7HXHVUtLOW3uVJjqTfYqNCLYTAm1+E42cAblVQmBOx3T7HG3iSoTRYipHQp2OoueVWah0KWx+k7FFEaLhsxtynGTm/KrBNsjbPZw3RZGi6jkdypDJRpOpVUVRZvKX32ra6BUT4qgNefJSmVbTwVUxuAvcpYk8kiDirLiOoDjsU93ptyqWKbSd08asAJDUUWL5wOSmzNYcqrmnLjsi78hu6CaiixNRfqo9VK42soTZjclKbJ3hNjwiiVIN8j7gqVSVDr2BUYAfiTkWkG7SpIjJUi4khZVUUkb9yRsuFZ7w92H4o8uYWsJ2K7bh07u90u4VD2k5firqB9Sxgu0XViMMo1KziEUpjku0q/wjECD4XbrNVTTDM5j7gg2TlDOWv8JTonHJzTOoYLijhKwk7q9xSMVtP3sdi8Ddc4wyrcW3B8QWzyzX65BE87P5TRk6jqY82J/wBILxoeWnkcogbqdj1OIKkkfiUBvCZ8o39V4JtBlEjRIMIEEEEABBBBABhGiCNAAQQQQAEEEEABBBBAAQQQQAAjRBGgAIIIIAIoIFBAAQQQQB6A9Dz3p+k+8gh6HnvT9J95BbsPsR1Nf40D0w/db6v7K8/r0B6Yfut9X9lef1mze9mLY+RhFEjKJVFAEEEEABBBBABhC6JBAB3QuiQQAd0LokEAHdC6JBABo0QRoACCCCAAggiKaACBRIKVAGEaII1FgBBBBIAroBFZGNkxvwGiKBKAQJJrlgCXCwvkDR1KSATuOAr3J1AazEAXN8IKRr0MH5GZJI1eX6f1DCw7TZzxyoVRTyzPe8i4V/ibAxrIWCzWjZRGsFtIHKqkz7F0vHHWxJGWqaMOfYtTEuGnTs1a52Hgu1EJ4YexwsQFVR0/Xb5Ofuw6UkgNRNwuoJ2YujswmntvZKOG048kUS/Ka4OayYVL+NqVFg8v7pXQn0NLr8RFk/HFQQgEaSpIX5TZz+LLdTUEaWkKwpMmVTxZzStsa+hhbdum6jvx+K2lhAKZTOc5PgoYshNaQZyArOkyhhNOQ5zw4+Vk5JjZeN3KHNi5A9pBD/kZcsocIhAa2Bht1sne9o4f9OJjfyWUdixc4+JJdiJcPaQL05M1M9fr2YWt+QUSR5NyX3WckxDSL6khmLC/tIH6TLeoeC7lRnX6FRHYix/UIhWNPUIJdkiRcjlEXNTBqmHkpLpoydimkTUWh55F0xJuUXegnYowQeUUWIb3SXOcOFIAulNhDuiQ7IfeO8kO8c7aysY6Zt/ENlNpqSm1XNkEJSKANeTayDoHuFi1auKgpy+4sn/0VE7ghIh3swVThz5NrKIMud8/cWHyXSHYOwDokyYYGsJDUJgps563LMED+8sCfkpJhbE2zW7BaKqgcCQWqDJARfw3Uk0TU0Z2r67KrnG52WmqaQyAnQquajs4jSpdyJd6M9Ls47KNM4gK5qqMk7NIKgVFHKPwlNNB3FVJL06pp8m2ylTUUmq4amJKWRrfZKlwRbIrprIMqDdKMLiTdpTZhdvZqVkGSG1O3KcjqRflV5DgfZQGsHhA0y7iqRblSIp/iqBr5B0KfjnI5UWiVl/DPZ53U0T+AWKzcE5L1Z08t27p0Flm2Uk7JxktjuVChdunnOB4UWFk5srSNiltu43Cr43AclPsqABYFKhMsmPAG5S2yC+xVV6zva6XHK690URZbiU25S2TEcqtbUGyX3yTRGizE7fNDvAeCq0SlKbKQUUSRZagOSkukaeCoRlDreLhH3x4simBMaQWndIjuXGxso3fHawS2ytBAB3KB2TYja9yltfY7KH3hCNkpJQhPknsmc14IKuoHMrKV0E24cFmu8IIKsKKp0EbqaM2WH8OX9qOW5aCs9Yij/ZuN7hYNh0Xde1l6axLD4MdwySmlALreElefs6ZZqsCxKQSxu7knYqxNMwOMk7GsMqnX5WtwKqcHammxCwNFI8PuT4ei1GBzO1CxQXwl3I6JW6avDo5D7YG6pvZNlOwyQuoXhx6bKA/2ymkeG/0uGMJWgwUSII0HjmBBBBIQEEEEAGEaII0ABBBBAAQQQQAEEEEABBBBAACO6JBAB3QuiQQACggggAIIIIA9Aeh570/SfeQQ9Dz3p+k+8gt2H2I6mv8aB6Yfut9X9lef16A9MP3W+r+yvP6zZvezFsfIwiiRlEqigCCCCAAggggAIIIIACCCCAAggggAIIIIAMI0QRoACCCIpoAIFEgpJABBAJSG6AII0EFFsAIIIJABEggUyH3wB2zbomnULt3S443zOEbWk3WuwDLccUYqZRe29ioOR19Dp09l8lFg+D1VdIC2M6OpW+wLDYcKp7m2s8pbZ4qeK0cbWKqxHEiXAa1ByPf9J6B+PUqLaqqGPd7W6YdPG0XLrFZ2prnAghx3TBrS4bkqu7PULWs0ZxLSdjcJDsWPnZZp1S48EojMTyVKi70a4NGcXf+8g7FX29tZl8xHDkgzP8ANJofpL7L2bEnk+0mn4g8t9pUzpnAXJQ7zWzYoJLFEly4g+9t3fmmTWb7AhRQDdKdGbXTJdqRI9bPmkyVJdtdRQlNagdIN0rgdii7946lB1h1TT7HcFFC4FPlc7kpAJG903qHmiMrONQUkgtIfZKL2Lk815/eVU+Qar6kYqbD2k+0g5ote9IHtJHrIvbUqmSsFralFNUQ/wBpOiNo0TKgtN9Se9ft1Wc9dJFtSbfWm/tJ9onNI1La8+aejxLSNyscMQP7yDsQv+JRcSLyI2Rxa34kQxgh2z1i3V/+8k+ukn2kdpDuTN/HjTxYh6lMx94t+0XPm4hZvtJLsS8nf1ScGHB0+LMmncvurCHNEErdErQB53XHxibv306zFXD8aXpsXajrpqsPqDcSjdNyU9M4XY8Fcuhxp7DfvCprMxuaNpSo+mwpG6kpL3DbEKNJh7OoF1lI80PH4/6qTBmkl3jcELGw4LafCSTcMUeTCCeWJyDNNMRaQgqSzMtAeoCOxkkymmwVxNxH/RMyYHdljGtM3MOGHktKX+mMKeN9IT7WMxj8Asf9NQZsGa2/gXQm4hhb9gGn80h8GHTC7C0IVhRzGXCN9o01+iv/ANtdJkoabe2lRJKCEXsArLCjnsuG2b7KhOonAldCnoGW2AVbPhbZL2FkDMc2FzDcKTG5wIVvLhJa7bdNnDy3oixkeKTa6fifqvdIlhEdgUIha/kkIfDgjDh1KjSvtbSUgSnqmhEzUNXKe7wBuxVb3jidkvvtuUUBPE1uSgZ/I3VcZr8FATW2ulVi4LNk7gd+E+2YEcqpEvxSjOR1RVAWpmA5KdjnDhzdUwmc7qnoJS29+qALcSsT0IBOo9FVMqLHi6ktqS6wG3mkwJTnOc86dwlwucHeJMwysIO+6cMjTwVEVksEWSmvI6qMyRpHKdaRdNBwW1BVvYQAbKXi2F0WYKF1NUsbrI2cqWKTSdlYUtU5jgQUyvPFOPBx3OGR67Aat74mukhcbiwVbgb3xvIeCF6Jmmo66nEFXC1+oWueiwWb8hiJ5rcNbcHfSFJMxRTiiHgkwdSm53sm5D4ymcJjkpWSNqAWuHROE6iSNwVNM8X/AKZ2wxyjSW8pSbPFy8gQQQSIgQQQQAAjuklAIAUjRBGgAIIIIACCCCAAggggAIIIIACCCCAAggggAIIIIA9Aeh570/SfeQQ9Dz3p+k+8gt2H2I6mv8aB6Yfut9X9lef16A9MP3W+r+yvP6zZvezFsfIwiislIKooEoIyiQAEEEEABBBBAAJsg0OduApGHMhdUjvx4Oq0LMMw2s8FLIA7yTOhq6MthWjLE2QWkq8o1rG64m6gqKqoqmmeWTRuaR8EUV5NDNjfKGEER2KF0GWS7XTDBQugLI+UEe5ACBRoIC7EoIyiUkwAjRIIasA0ESCVAGgiQRQBpylgfUSiNgJJTbQSbBbHJmHMax1TO3jhKXCOh0vSefNTH8CwdtG0SzMBfyAVa1FQYxqPh+Ccmc65eR4fwqjxmqIbZpueqztn1XpvS4YYrgRiNd1a7c8hUtTUl7huo1TO5z9iSgyMuFyonolFJDokLuSjDrpru7G90rvBxZNIt7uKFa7GyBDnclR537ixQM9wBdSIpjzhY2unAQBclQHSOLr3S3zeHcooTHqmQFlgmmT6GWUd0nxTZnARRBol+snUnXVQMdrqsdKHfBNSTaRa6KF3US5Koh2xRCsf5qpknIPKT6ztypUJzRZyVrr7lNurjb2lUy1Q33TLqkW5TSK3kRPlrnXI1JoVRO+pVUk+/KT6yB1Ukip5EWslV/vJo1e3tKqlqR5ph9SB+JSSKZTLR9QdXtIhUHzVQapv7yakrNPDkUQ9UvDU25cidUi2zln31jyLh9h1SW1YPG35qSRXPOkvJfOqf95I9aA5cqJtUZHlrLkjon6ekxWue1lHTSvJ2toO6l6dmWe9CK5ZaPqW2vrTRrmjh6t8K7M874i4d1hUjWnqTytXhvYHmqp3qGGAj5G6ksLMk+r4o/Zzv18/vpPr/wDvrsVP6OuLG3e1dvyVjF6Ori39rX7/APCrVhMr63C/Jw1teOdaL9JNvYSLuj/R028Nd/8ACq+q9HOpFzFWm/8AwpPEC65FfZxs4nbl/wDVKGJD9/b5rpGJej1jkY1QzmT8ll8V7G840YJZSvkAS9Iux9ZhLyygbiQv7aX+kz0eoWJZPzPh29Rh8rfkLqiqH1FM/TPHIwjzaVFwaNcOpwf2a+PEZHcPvb4p1uIS/v8A9Vi2VxI2P9U9HXObybfmoOLNcdyD+zZMxCW/tn+akMxGX98/zWLbiJv7SkMxH/eUGjRHZizaRYnOHeF5/mp8WL1LW+2f5rBxYjv7SmMxO4tqUHEsWeP9NuzHagcuP81JZjkh9orCNxEfvJ5uIC/tI7SxZYs2z8cLTzcInYyHWsseMRZ1KX+kI/NFD70ax2KMAvZNSYk17bABZd1cw/iSfXmD8aO0Xei+mlbKb7Jl8jWi11Smvb+8m311/wASKF3lpJJc8pp0tuqrHVl/xJt1VfqnRVLKi3FQPNEZwVTitsj9dBUlEh6pbiYeacjeCbkql9aS2VZHVLt5GspfCVvmh3rfNUjKtx5KcFT8UdpNZUXAkA4T8D73uqWOpueVLiqbdU3FE/VRbB4CBkc1wt1UJk7XdQpLCHAbqDQ+9E1stgDflL74+agucbC3RKjeSbFQoLJ8cxB5UyCcnlVTTZPRzFqVBZcRSi6lRS26qjZOb8qTDUdLoK3yaKlqA34q0pJ9Rs86mnoVl6eex5VnTVFrG6CmUSRjWXoKmGSanaNRHCwktFPSSvZI0ixXRqecvLTr2HI80quoaHEWESAMeOD5qSZ5zrPTfyI2jmYO6UrnHMBlon64gXMPBVI03eWHkcqadnzzZ1cmGbUkKuiKMjZFZSSMyAEaII0mAELIwjSEEEaCCAAggggAIIIIACCCCAAggggAIIIIACCCCAAggggD0B6HnvT9J95BD0PPen6T7yC3YfYjqa/xoHph+631f2V5/XoD0w/db6v7K8/rNm97MWx8jAgggqigIokZRIACCCCAAggggAFxaxxCqsGx11JmDQ9554urQkWIKwubQ+jxRtTHsL7qR6boWdQkos9L4FVtrsOiqGyBwI2Cm4hhVJidG4GBoktsVzjsjxwT0UdM99yAuqUkjQSAUHstvTx5MfBxzM2DzYXWEOaQxx8KqWm4Xac3YNHiuGvka0GWMbLj9Rh9VTyujfE4FpSPDb/Spwk5RI4ShdEWuYbOaR+SULoOJLFkj5iBBGQfgiQU8t+AFFdBySpInVCroXSUExCkEQRoACCCBIAJKTZKK7nRIoIjNUsY3kldWoKJtPhUQe3TcblYvs5wuWvxhjhHqY07rpOZXRU8Bgba7Rwqpuz2/wDm9flNmOxus7oFkZuAszJK6Z5sST1VvXAvkAffc7I4aCNrdVrXVB9Jxy4opo6XU7UQn3wtEdgd1OqjFE0hlrqjqalzHmx2TSLbDc12qx4TL3NabEpmatdpIuqqoqna9ypJBZaTFp4KjPJ33UD1o+ZSHVguRqTH3Ind64dUTpXOGxUB1UD1STV6RypJEZTRKknLeSmnVDTyVEkmD73KhTuLTfUnRU8iLOWpDeCo0lUT1VaamxIum31VkUUSmT5J/Mpo1DeNSrparUOVFfMb3BUkiuWRJFhPKb3uoz6geagyVJOxcmJZwN9SkkZJbCLF0/xTMk+/Kq31QHDky6qJPtKXgrewi1fUfFMPqLn2lVyVB8yjjiqpwO7Y4g+STkjPk2UidLNpFy4W+ajOqmk2DiT8Ar7LmQcw45M1lPTSFpPNl3/sr9HNj3MqccaQNjYhJJvk52Xqig6PPGC5exnG5AzD6SWR5Nh4SF17Jfo7ZkxeNk2Jk0zdjYi69Z5byLgOXqdjaOmiBA3JaFd1VTTwtAjc1pHQBa8eG42zjbHVXN8M4xlH0esrYWGvxJoqJBaxNxZdEw7J+VcKAbTYfC3TwbXU2rxJz/C0qvfUOubuV0YJHOluTl9li99PCdMUMekcWaAmJKpvRoCgun23KbMrRyVYqRnlJz8sluncTyi74jqoRmHQpt89uqlaIqKX2WBnPmidUkdVWmo+KS6e6TYdqLE1Oo7hLM0T22cG2/4VVCZDvfijgEq+yRV0GGVTCyWmieDzdoWQzB2XZTxhjg+hZG8/iC0/e/FKbN8VBpMujnnH7POWePR6fC18+CzX5IZZcPzJlHMeXpnMraGQAH2uV9AmTxEESM1k8Kpx7AMMxiF0NZTRlrx+6FFwL1vTX2fPF9VJG7TIC0/FLbXEdV6V7TuwimqWvq8GZZ4uS0Becc1ZVxnL1Q+Otp3taDsbKmWJWacfU5xVWJZiIH4k9FiP+8s4dYFynItTuLqLxpF0Oq5GzRHFCDYFKbizvNVMUTiN06IfgqHRvhvZWi1GLHzSv0q795VPd2STGeiXBauoZC6bihP4kZxEn8SojG8cIASDzUkkSXUZ/ZejED++lCvP7yoC6Ro3QEzh5p9qLF1GRoBXG/KUK0+azwqSDujFV8UdpNdSX2X5qyeqNtUR1VE2q+KdFR8VJRLI9Riy89cP7yebVE9VQd/8UttSRwUnAujtwl9l+ypPmnBUn95Z9tS8HlONqn+ajRbHZj/TQx1JDuVKjq79VmmVTvNPw1R1cpl0cqZqYan4qbFVWHKzENSfNS2VdtrqDLFkRo46vflSop2kgrMxVRvyp8FQSOVXRdHIjRh4IBCAeFWwznzT/etO4KKLFNMsWOCca+xvdQI5wBuU4JmqLQ/JbU81+CpsVSB1VDFUBuwPKkRyuJvdRpj7EzSU1YAD4t1Mp6l19ysvFO5vKlwVliBdNITiqo2ERZUwmOUA34Wax/LjmXmpRc8kBSaWtdtpKuKSsbI2z91NHD6l0mGdN0c5c1zXFj2kObzdJvvZb3HcEirad01M0CQc2WFqaWellcyZhaQpWfP9/pU8EnS4EXR3CSEEWcXleRQKO6SEaQg0aII0ABBBBAAQQQQAEEEEABBBBAAQQQQAEEEEABBBBAHoD0PPen6T7yCHoee9P0n3kFuw+xHU1/jQPTD91vq/srz+vQHph+631f2V5/WbN72Ytj5GBBBBVFARRWSkEAJQRlFZAAQQshZACHjdZnPNProg8DcLUOCg4zSipoXsIvsma9HK4ZkV3Y5WFuNR075CNR2C79FO6OXUPZ26rzLlqc4Vj8T76dLrL0F65rwynma6+sbqNn1XWyerhi0a+CpY9ti6224VDj8cEc3fSQN0u6oUNYx52dcpzHmmow1xbuWhKyb1oT8lLPh2G4gG2AZZNPyXTTNvDLcqvpasx+EncFXmGYkRe77JplWbpWCUfBncWyfXUTO8iYZG/NZ2eJ8L9EjS0/ELr1PiUcg0vIcPIqtzNgdPilK59OwNeNyQpJnl+pdDjGLlBHLnOF7Irp+upZqOcwPBBB5tymbO6m/5JnkMuvPHw0BCyPSbIkWVKEqtgCNEELpiD6XTkETpZmxNFySE2LcngLX9m2EGvr2zys/ZtKTNmjgeTIdCyNhzMIwbv3RASPaqvF3OrKx5aS4X3WnxeRscLYIRsBZUsbY6UOkmtdypkz6d0vWjhgqKuLD4tBfKALcXVZjNTTQxlrXgEJ/MmOwsYWxuAIXPMSxR0r3kuUKPQY5NMmYjiDdR0uuqaerL3HxKBNUhzjdyiy1AHDgpJF/dZZPl22Kj21G7lCbVF3G6cL3FtyppA2Oy6QNlAkd4uU69+yjPeL/FPtIOYoPseUeoEcqLK+290w+q0jlSSM85pEx8mnqmJZg4Wuq+WuYPacoE2INF7PRRRPNGKtssJpQ1x3UWWqbxqVRPiFybOUUzTSHw3Kn2xo52TdV/qXElUGi5coste3hrrqPT0tTObFpVlTYDJJuQVRLJGP2VPLkmrKqWeVxvugG1EuwBK1NLl11wDGST8Ff4flGd9iIDZZsm/jxK5MXoyatnO4qCqeRdhVvh+WKupItG7ddWwLJRfJ3ksVtPAtyugZfyrSmVo7tmryWP/wAqs0u3GjNmePGvJx7LfZtUVLrzU5LV2Ds+7HI6icOkpQY225XXMpZPhOl3cjSOdl0bD6Kmw+LZrYxbZdHX1s0v2l4OLn3GvBm8o5FwrBorRUzNQAubcLTyTU1JGQ3SPgq/FcXbC0tidzysvVYjLO4+Irs44JKjkZczm+S6xTFw4aW8fNUj6ouJO+/xUVzidyU2ZWjqrkiqMfsk94TuSgS5wvfZQ3ygC5Nh8VTYzmbCsMjc6rq2MLel0pNIHByZevk3tdNSSW5cB+a5DmjttwegZ3dGRM433HRcyxntmzDWvcKONzWH4rLPOoko4WepXVMbBd0rB/4go0mK0TdnVMY/8QXjuuzxm2tdd1TK35FV8uOZmmBJrZR+ao/LRYsDPaH6Yw4//m4v/MEuPFKF5syqiP8A4gvD5xbMOvxVkxPzKfix3M9OdTK+UfC6mtpA9dnuFtRE4XbKw/JwShI08G68VUnaHm+ieCKuRwHmtRg3bxmCkd3dbEXt87qazpi9Bo9WiRvmj1eS4jlzt0wKuIZiA7p229103Ac1YNizGmir43Bw2F1dHIiLg0aIS6eN0oSkEXN1GEkZALSDfqDdC6sU0LtJxkDhYEEdR5rL5wyNg2ZKV7KqnYHkbGyvCdO90tk5AsikxcI8gdqHY9iOB1ElTRxl9M43Nh7Kw1Dl2UMIcbEeYXu7EKSnroHwVMbXscLbrinaH2dyUMsldhzbxHctAWTYUl7TbqSi5VI4IMEqGni4QODzj/s1tooGGV0ZaWyDYgp80JG+hcmeScXyemw4YSj+pz+XCZw3/TUcYbUA/wCmV0WSiuPZUb1GxuWKC2UX/iL+GDfQysHiYQmzTu/dW/dQse3dgUU4ZG692BTWyimWorMK+IEWITJpxdbWfB4n3sLFV82DOaTsrI7CKnqmWdSg7qPLSuHsrRz4c9o4Kiinc292q+OdGXJquzPOY9vIKLvXNV/JTtcN2qHPh7TchXRzRZlya84+Cs9YdfcpxtTbqjnont4CimJ7TuCrlKLMvfli6J8dVfqn2zfFU5u1LbM4bXT7UyyG5OPkuWzG/KejmIPKpGzuvynoqnfcqqUGdHB1BfbNHDU7cp/1g3vdUMNQD1Upk1xyq2jqY9hT8Mvoqoee6lx1paBYrNRykHlSWzcbpUao5uTVwVxLfaUiOqdq5WZhnsAbqVDV78oo0LKahlQS0bp+OYE7lZ+CsAAuVNiqWuHKTRfDKXrHtBvdTGTtDdis42otw5SG1W3Ki4lqzIvRPfqltmIPKo4qrflSm1FxyiiSmmXUVW5h2KsaLEiD4isxHUC/KksnA3ukSfJuaHF+64N79LpeJwQ4tATpAeAsRHWOa8aSr7DsRcGjeyDBu6UM8O1lHX0slJMWPB5TAK2EkUWIRuuAXeazuJ4dJRvvYlpUkfO+p9Engk5R8EIFAoh8UZQec7WnTDBSkgBLQxuvoCCCCRECCCCAAggggAIIIIACCCCAAggggAIIIIA9Aeh570/SfeQQ9Dz3p+k+8gt2H2I6mv8AGgemH7rfV/ZXn9egPTD91vq/srz+s2b3sxbHyMCCCCqKAIIIIACCCCAAggggAikSAEEHqlpLxdMeNuMrMbmWidBVx1DBZuq667kCrZiGExQudqLWrCYxSippS0DxDhSOzKtfSVr6eV5Gk8JNH0f/AD236mPtZ0mRslLMebKypKsVERjPFvEmPXKaVo74WB4KdpI6OSQ93LYHlQZ6SHLZkcbHqtc4/gJ2SaervbSVp8cy6aoh1O4OVTBlXERLZt7IL4TilyP0Ep23V/QzlpA1bHkKJSZZxBke7dRSRRV1JN44zYcppleZwnGh7MtPRNiZUS0we0+0fJUEFJg9fG7uiGELSV7hU4TLGRc2/kuZNndSVz2NeQL8KaZysnS8GTlovq3KdQxhlpnd434Kgq6SppyRNG5tvgtPl3MEjKtkMpvGdtytxUUVDXRd46Fu42QcXc6BfMfBxYG44KAstnmnLrImmamG3ULGuFiR5Is8huaEteTTCcHPIY29iQF3ns7wmOgwCKSVlnube65PkTCn4pjMTNGpgdcrvFbJHh+HtiaA3Q2yi2dzoWs3+xS4vIxjnPdsG8LAZmzA1jXND+OFOzbmIRtey/8AVcsxrE3VEpcTYXUGe/1sXbHkPFMTdK9xc82KoKusa2/j5TVdVt41bqHS0k+ITjQ0loO6kkbrVUNuqJZpdEZJurOgwmV47yUndXmF4FBAwPeAXBS6uaOBmkWFkUTi0iqZRMi6JqrkjaLAgJqtxRu4uFQ1lbqJOpWRRVkzxj5J9RUNaDuquer8WzlW1lbt7ap6mvdvpcmonP2N+EFwX1RiAaD41Wy4lyNSpXzzSusLm6sMOwqqqXf6ZTySjBW2cmW/PM6Q3PWOcdiSkQwVVS8BjHG/wWxwfJr5XB8zCAt5gmV6eNgaIQXD4Lm5upY4cIUcOSbqT4OY4TlWrnOqWI2WuwvJ8Rbuy567Lo1FgZj5hAB4VzR4S1m+gLjbHV3fDNsdaGPyYDD8nwg7sC0NBlGDTfR/RbOnwxpIu21lcUlAyOxbYnyXGz9UyzdQJyz44LgyWG5Up2EHuwT0uFeUGFQh+gRtuFNzHM3D6EzB4Y/iyz7sUqcMwh+IVhs612XK36Ojm32nPwcvc6nGMaQ9nbGKPLWH6/D3zhZrQpPYThWMZlxh2K1TXsguC0HghYnJWB4n2l5uY+QPNIx/juNgvXuVsEoMsYKygpomx6Gi7h1XtNXpmHFFUjzWbbnlZaQx0lFA0NIFhus/j2LBztEb9gmMaxQku0nlZqolc9xJK6UYNcIxOTfA7WVJkO7lEdLbhNk6r2KZkqWQse4uDdPJKsaSVsikSHykNuTYKlxzM2FYLCZqyqYyw2HK5/2i9qFJhLX0tE4S1JuHWPC4zPUY7misdUVtS9sJOzVlnnknwXRR0DPHbFVVj302DML2i4DhsucSux7HZHS1lTI3UfZV/hOX6enN3Wd8wr+npIo7BrQsOWWSZojFGHpcoeIPfcn4q2iy5E1ttI/kthFCOjU+KUn8Kp9DJJGiM4Ixf6BhH4R/JKGBw2sGBbI0D7X0JDsOefwlQ/CyEvUhZh5MDDST3Qt5qLUYLGG3t/Rb+TDJNPslQZsNdvdqktXIianBnN63CG32aqerwvTfwLp1VhhN/CqmrwokHwprFNPkG4s5hNhpjeXC4SaHEcYwmYS0NTK0g/vFbTEcLIv4VQV1EWX2V8ZNFGTGvKNpkztuxjDpY6fEgZGXsXE8LvOTe0nA8wtYyKpYJiPZJsvHFZS3uQ3dRoJ6/DJm1FLM+ORpuLFXRlZjlBn0DbMJAHNIIPUFDVYrzF2X9tFTTujocZlJj2Gsr0TgmM0GL0bamila9hAOxWmE6KZRZbtejlbDPC6GZgcxw3umgRYHzQD1cqYotxOVdpWSe5ca/C4rgbussThTfWw6NzbPZsQV6KmayWF7XtDgRay5Nn/KkuG1wxbDWnu73e0Lm9Q104d0fJ2NDelBqMvBmDh9xfSkOw/wkaVpcGjhxGLW0jX+IeSmyYVY20rxeXLPFJqR63DnjkVmDfhpB9lRnYc4Hdq3suGWF9KjPw8H8KjDd5NFRZgJ6AtN7KLJSuAPhW9qcNDh7KhTYWLHwrTDaTYnGJg5aUm92qJJhrH38NltajCyL2aq6agc29mrdDOjPOKZi6vCi2+kKslpHtJu1bySldv4VDnoWv5atEcy/pRPCpGHkiA9oKLLTMf0WvqcJ1XICrZ8LeL2C1Q2EjDl1UjLTUIubBQ5aUjhaaalkZsWlRZKfVfwrRHZMWTTUlZmnxuadwk3I4V5UUfwVfNSkcBaYZVI5uTWlHwRmTFp5UqGq+KhyROHRNi7SrXFMrhs5Mbou46i/VSGT36qhilI6qXDUeZUHA62tv35LxlR4dynYp9+VUMmuOU7FNYqDidWG1GReMnd5qZBVEclUcU/xT7JrdVA1xyIvW1ljypEVZ4eVnu++KkQTm1rootUy+ZWWPKlR1o08rNmYgp+Oc6UqLYTZoY60X5UplZccrMxzG6mQTEi11Fo0xyGjpKsB2+6sYq517AWWVhmIcrKCoJCjRoUovya3DcRfG+99itFTSRV0RY8A3C57SVDtViVe4ZWiJ7XOfYIMe5ijlh20ScZwaWld3sbS5h5+CpiQ02K39FidJWw9w+xHBKrcYy3G8Gaid3nUhNM8F1PozVyijKAo7p2opZIHlj2EEJlFHlpYJQfId0aSEpBWwIIIJCAggggAIIIIACCCCAAggggAIIIIA9Aeh570/SfeQQ9Dz3p+k+8gt2H2I6mv8aB6Yfut9X9lef16A9MP3W+r+yvP6zZvezFsfIwIIIKooAggggAIIIIACCCCAEoWujsgnY3ygmNBeNXHVN01MyixyORuzZCnbf80jHRJFFHUtGzeqLPYf5ea7+1eTdesUzqYBr2lwG6Yo6xrZnAOt5Lmj8dmBDjIQE7FmgwuBG/nuo0fQOzsZ2jCqqSRzQHEgLUGYQ03eFu9vJcPwPP8FK/VML/AJrUVPa5g/qYhkaGm3mhIyZE07N7R4q6aoIGwCh4vmHDzOad0jNY53XK8X7U8LpqCU0hDpHjoeFyuXNdZUYlJWGVwDncXUqKIzj3eT0nPLAWv7l4LXDfdchxypMeOTNvtdIwfM9W6jL3OOm2xJVBWV/rOJOkvckoo1wkrNVSTkyRuDrWK65k6p9Yw6xdcgLhlLUhtrnhdb7N59dE8g9Emy3LHuRe4mGSski5Nly/FKSSnrJIXizidl0KpmcK13koU2BuxesjLB4yd1Gzy/VenrKrRpOyXCGUeEevyt8bt7lLzvjjAx7WyWsrPEpYsDwKOijIDmt3XGs2YrLPO8BxtffdBu6Np+lBWirzJiTp6hx1XCyuI1BttuSn8Rn6kprDcPmxKVrWtJZfcoSPRqqoh4bh8+JVHhBIad1tKOCHDaYDQNdt07DHTYJS6QGl5G5WdxfGDO8hp4U0iMnGKJmIYs8EhuyoKytmk1Wdf81DqK3nUVTYhiQjBDX7lDMWbbWNWP1lSWk6nKkrq6xsHKFV1skz7ApyhwyprHjSwkKz9YxtnDzbs87qBHfLLM6zblTsNweqqXjVGbFbDLuTnuc18kZXSsvZUiYATCCRbouVudUhi4iLFrN85DnmAZMDy18sXyXQMIyrHGGlkINltKDA2gtHdafyWlosIYxosP6Ly251lzXk3xWOHhGToMDs0fsQranwYN8QZZauDD2hvhH9FKioLhcHJuTl4YPNRmYMNcTYtVhBhpH4Ff0+HEuNgpraPT0VEZZMjohLJ92UtHhT5ZGxtZuU3nagmwDCTXRNL3tHshbDB2NZMXFosOvkmMwsiqqqOOUCSFx8QK930PpMJYVOa5Z57e22ptI4PPPieK04xfEWvhp4bkBw2cs5FPi2e8xx4RSBz4WuDbAbWXS+33MFG6jgytgVK0Su2Ohb30dezuDL+BxYrWxj1l41XI3XscOtjwxqByZ5XPybDsvyVQ5Py7HTxxtEr2gvfbe6l4/ilm9yHbDqpuPYi1kbmNfY+Sw1bUPlkJJ2V8I0imw6ioMry6/KhzyadgU3LMAC0m3xVPiWIMjjdqfZreSh2iK8kirrvV2ue94awDc3XHu03tCnlD8MweQukOxIQ7Q85SVH/wBn4e8uG4cQsRh9C4yd45uuVxuSVD9pcFySIGE4FJPUGsxEl0zjexK11HQNa0aGaR5Kbh2GGXSXDdaGjwq1ri6mtcfgqabDnSAbWVnTYQTa4V3S0LWj2VaQUoAuGrTDBFeSt5GmUUGEfBS24W0W2V02B3RqeZSvP4VascELvbKhlCwNtZGKFv7oV16m/q1GKR37qklALZRvoW6SNKjOwxrgfCFq2ULn/hQNDbbSq5KDBzl9GGqsHBFtPKpq3BXMBOg2+S6g+hb1ATM+F95GdICqljhIthOZxTEcLte7P6LN4nhAffS1dyxDAQ+923/JZjGMuuAvGxYcuvG/1NUdh1TOG4phjor/ALL81nKulcCbm48rLsuKYM5ocJGccbLE4zhbtTrMsskoygWJxkrOcVMLo3ktuB5rZ9mnaJieWq5kcsrn0twCCeFT19GWkgtVJU02h+/CsxzT4ZTOKqz3JkrNOH5jwplTSztc63iHULQMdqFwvEXZvnbEMrYzDIJXGlDvG2+y9f5LzLQZkw2OspJWlz2i7R0WmM6dIxy5ZoWHSdR6dEU7YKmCSKZoc14tY9ET9jukXVzprkVtHLMw4bNlnGDVQNPqs7t7dFp8Klir6Ns7LEEcq9xvDocUoX07wC8jwlc4wOsnwLGJMLrAWsc6zbryXXemSaeWB3+mbdRUGbGWmY5trKG6hbvsriMtcNLRcW5RuhsV8/jncG1Lyek701wZ2XDzv4VCloDv4Vr+5FrFMS0jTfZW49yXkSbMVLQE7abqDUYU7SToW3kobEm2yjz0cb27i9l0cW5KS4JcJWznc+GGziG7DlQJMOcWkhuy6DW01NAwyTaI2DklywGZ875ew8uja5s0jeGhdbVWbN4RRk28cPsgy0Dmgkt2UOSibuCAsziGdcWxSV0WHUrmMvsBurvLeCZzxuMMggldq58Nl28ehlrkwZOoRY1V4fBpJc5g/NUdXSUrSdLxf4LruX+wTM2JyiTEC+FvNvNdJwT0dcIp2NfWv1uWqGpJGOe6jyPLTXNmtcf/AAph+HTSA6YJD/4SvdNF2N5PpmgOpmPIVlF2bZRpx+zw+JbMeu0ZZbcWfPefCKo3Ippf/IVAmwir/wD00v8A5Svo3/sPlRrbPwuEqNLkHJs9wcLiutkcfBlnkhI+b8tFURneGQf+EpkslZy0j8l9Ea/soyVVNLX4ZG343WRxr0eso17Xeq6YH/Im6biZW+eDw/HMRyVKjqAeSvR2ZfRkqIi5+G1Wu1/DpXK8zdjWcsGe55oHvj6EKtxLse1LGY6OUdCpDJSRyoVVh2JUDy2rpZIyObtKFPN5qmUHZ2NbfUku4sRI5PwyOBuobJAQpELgTyoco62PKp+Cd3vF1KhdcKvuNlLgkaBymjbGVLklxlSqckO+Chxvb1KfY6w2KTRYpFixwJ2U2CSwCp4JtLrOU6KQEbFRouhJltDLbe6sYpwQ3dUMcnxUiOfSOVFouT/ppqOu7l3hdytDh+YDGWt17Hlc7FQQb6lKgrDfndIjPFGfDOlYg+ixOmFw1kltj5rKVtJJA83G3mq+PEpg5viNgruhr469hhlAuOCg831PouPJco+SrCClV9K6B1/w9CogIQfP9rVyYJ00GEaII0GR8MCCCCQWBBBBAwIIIIACCCCAAggggD0B6HnvT9J95BD0PPen6T7yC3YfYjqa/wAaB6Yfut9X9lef16A9MP3W+r+yvP6zZvezFsfIwIIIKooAggggAIIIIACCCCAAggggAA9FbxU0OI4ZJACDIBsFTp2mqX08gcw2QdjpG7HVypmbxLAKiGcsLTa+wTVPl2aoJGkiy6A2rp6sAvA19VOoI4mlxDBZCPput1DDmVtnO2ZNqXbhhUHG8kVfdNcGO2XZGVdGxhDrB3TZVmLVV47MsAVItytTVJnnfFsCraeQNDXEdVGp6OcSNa9pAC63ilMKh5JaHfkqebC7Xd3Slwc/8R91lMKkx4eI2i1gq+le4Tayeqt6uAlpbosq/uCy+yRqx43EsIaguvuuvdllTqw9+/RcSjcWmy6d2Y1mihkZq3soM03xRtKio1VxF+Stlk8xRRvqpANIHK5myqc6v56rb1VV6jgYa02L2qJGUFNUyozzjjJHSaZL32suTYxVuc57r8q4zRiDpJ3C+yykhkqqgRsF900i/HUFSQVBSzYhVBtjovuVqe9hwSl0R21OHKZgazC6Ml4AcRssvi9e+oed7gJkZ5O0XieKSTveS+4PCppZyA4kpuSXckqqxOsDRYO3Ukc7Y2WlYnEcQawEB25VI+SSeTYE3S445KycAAndbjKuU31ErTJEd1Xmzwwq5HFl37Ev+ijy9lybEJNTmEBdQyxk3u9J7u61+VcoGFg/Y2C6Dg+AMjDRoXkOp9bduMGdHBrwxL/szOC5ca1rbx2t8FraDCWRBull/PZaSjwloYNLPmrKHD2tt4V5eWfNnlbJZsqSKGHDwSPBYqyp8P0t3arllMxo2bune7FuElqzkzH6hWQ0bQOFLio2WUpsZNy0cJEhDWOc420rXh6dKcqRCeWKXkYmENMwvcQAOVR12ZKGAECQEdb9E9W1kdZriN/AuI9reYosPeaaA2kJ4BXtOmdAg0pSOTtbjXEWdahzFC8OdDMCCmKnHCWOBdcnhcMyjjddJHG0ayZTxyu+9meTqvEAK7EGFsAsRfqvUYsKwx7InJlN5OWVuQ8iSY3m79N10RfE11xqXd6ww0mHCGKzAwWACVhFHS00RZTMDWNCz+a60sfoafmr4rkrXCoocbrXT1LhewVLUyho5Squc6i48qqnkL3WB3KtARXVA0lpNr9VzDP+ZRDqo6d/i4Nlp88YozDMNkc99pCPCuOsfLiVY6ea5BO10u2ySQmjpXzyGZ27nHdaXCqACwI3803h1KGkADZaXDqTwjbdWwhQ2h3D6cNIaAr+mg2GyTh1Fxdq0FHSA2GlaLSItkSmpgeQralog5vsqxocPBtdquKaha0eyouaEUbMOPOlSGUIH4VoW0zbeyldwz91ZpTBIohRA/hRGjA/Cr6SFgbcbLnvajnajyvh77SgzEHbyUXOkSjFyZLzFjWFYHTGSrqGMdbYXXIc1duNFSOMNE0SnfcFcdzZmXGs04s95nk7px8LQVBosqVU7/ZcSebrO8zs1QxV5NvN22YvNMZI4S1o48Sl0PbxXRyBlTTam+epZQ5Eqmw6i02+Sqa3KMsYcQ0myayMv7Ynfcq9seAYq7uatzYHG3O91vqZ2E4xHqoJmSXF9ivD9bRT0Umppcxw4stFkftExnLlS1wlfJGCLglSjOnyUyxJs9TY3l9ronFzBbzXPcey6Bezdjxstx2edomEZvomQPc2OcixBPJVxjmDamvLGXb0KnljGcLK0nGR5qzFghYXAN3CxGJUTmkgt4XoTM2AOAc7RuuXZnwh0ZJDFyXF42a6Uo8HL6qAtu3i63/Yrnmoy3jsNJPKfVnusbnhZPE6ctLmkW+Kp3h8cgcy4cw3BWjHO0Y5wpn0Doq+DEaGGrp3B0b23BBS3A3A81wr0bs9+sR/obEJeLBmoru0zNMjiDfqFohNvhlTQ04uZIC3osr2jYO2sohX07P+kRb3C1Z3aHHlDumTxvhkAIcLJZcLypxfgljyPFKzF5Fxb1yjMEz/ANrFsQVq7XFwue11LPlzMffEEU8jlvcOnZUwtlaR4gvlnWOnPXzN15PW6Gypwtiy024RBjnbAJ6WwFnGzepWfx7GXQxGnoIjM83s69rLBqdPybEu1I0ZNuESdiVZSUULzVStY22+65hnDtRo6FrqXCYu+kNxquqrM78Qq5HNr6lwHRoPCgZYyLWY/Wtgo6V5aTu8hey6d/nHiqUzk7XUeKTMVjGLZszJUEGeVrCfCxoWr7POw7HswzsmnppAwkEl3VenOzfsQocKijqcSia99gbELrtFR0GGsbHBTsjYwbWXq8WHHiVJHDnnlN22cayN2A4Dg7Y5a+FssosbW4XV8Oy3g+ExgUtLFHYeQUjE8YihvotcrOVeNTSkjVYLYqaK+5/00U9fTwgi7RbyCqqjF7khqoJahzjcuumjMb8p9qIuTLabEHudyo0lcTzf+agmW/VJumkkQ5JT6suFhsmu/c03umronboGmx01BO7rlKFYb2DSPjdRUaKHZNNZIRs+35JJNPUNcyqiZIDxcKHqCMPT7EyLKPNXZ5ljH6YtnoIg+2zgFwzPno7GPvKnBZS4bkMAXpESHoUtkzhdt9jzdQlAcW4nz5zJlTHcu1BirqSRoBNjZVMFRvY7FfQXMmWMJx6lfFXU8bi4bHSNl567UOwWSES12A3cNyWALPLHZ0NbelBnDI5r9dlJY/yKhYpQV+D1Bpa6nfFI02Nwk085vYqvto9BrbscnktopXDlSopVWMeObp+J6TOtGargtGP1KVSOId8FXUzxvcqbG63Cgy6M+CyY8HhOayq+KQgqXHICEi6Mh4OclNe5u6Q0hLJUKLUyTHUOA3KlUlXIyTU0lVyejdYoHw/JsKDEG1bGwzcnhIracwP+B4WfpJnRvDmnccLV0ThW0oEgu8BB5rrXTI5cblHyVvRC6cqIXxSOBG3RNXSo+bzwuEmpCkEQRoK6AgggkAEEEEABBBBAAQQQQB6A9Dz3p+k+8gh6HnvT9J95BbsPsR1Nf40D0w/db6v7K8/r0B6Yfut9X9lef1mze9mLY+RgQQQVRQBBBBAAQQQQAEEEEABBBBACDcIWSiiQMDXFpuDZSoMRnhFm7g8qKgmase5lg00y0ZieoeMbpuZzJ3NGuyrii0km4KZ2df8A0eSPEi4FHC1oJIN0H0MUkRAAVWZZGi2oqTRVT2us51wotHa1f9EskqkVGI4VZ7rBUVfQOZG4tbwuhvjZURk9VSYlRtYx4cOUrZ6nXywzwUoM540s7wtJ8Q6LV5Iq/V5ZIXOs48BZ7EqUxVYLR7RUqimNLiAcdrplrUk6+zo+WI5azGmx2vvdanNtT3YMN/C1tlWdmdOXudWuHsi90xnCpJdJc9VFkkmvJgsblJJ87o8Gpe7h9ak+aZkBqMQsT4b7pGO4gKaH1eI9OikiTkkiJj+Kd8/Qx9w1Z+SYgE35RzPcbuPJVTiFVoBF91JLnk5uznrwCvrAxpAO6rqWmnr57NaTul4fR1GI1bWMaXAldhyDkaSR0bjBfzWfb2I4IdxzccZZZ3LwUmSMmGQsc6Ekm3Rdxylk6ONrHOit+S0uVcpQ0dOxxhGpbOloS0NDYwLLxG91LJnk0vBqnlhj/WBV4dgkcbAGt4VzS4cyMCzQSp1PT6RuFKaz4Lm4tVTdsyyzysjRw6Rs1PNjFtwnthygXssTcbLfDUS8Izzy35G9ASJAAomL4zh2HQOkqaljLDi65ZnLtfw/D2mGiGtzrguvwujh6dOXNGaeWMTqfrLTVsp43AvceApeNd3RUoEgs53IXKOwzMzsx5jldPNqNwWjyXRc+17IsT9VLubWXo+n9Phj5fk5mbak3SIWLxQQ4TJVMaNRaSvH2f6mfGM5vhY4vGuwAXrPtBkOH5BkqXu0uew2N1xXsByPHmfMjsYrCDCyS5J+a70F2rgxT/Z2zoHYd2ctGHRYjicIZCwaruXYqDFqaWcYdhtjC3YkBTqyjof0cMMhaGQBtg5qj5Swilw55ZANYefaKaQjSVDhSYaPOy5tjtU6aqdc7XW2zbUmKkEYPRc3q5P2hJ3U4oiRqstDSL7qrkkbHqkcbBoKkVMt3E9Fms6Yg3DsJlkLrEiwVqQHNs+4g/FsUdG15MTDsomGUwbGG6U1o7ypdKTfWbq8oIbgWC0wgqJp0S8LpvELhazC6UEDZVuF0tw3ZavDqQhrbDdOaoGyVh9MNbWgXWnoKFoI8KiYTRlulz27laWhhAAKyuREcp6VrWizVKawDolgW4Sw0lVOTGI0X6IGI23CkNaQinJDdkkBms24rFg2Fz1MrgNDSvG3aFjWIZrx6cR3fCHWAuu6ek/mL9H4R6qySz5QQuHdnFJ307ZZfE95vYrLnm0dDVxqXLJGWMpzxMY/uTd3mF1/LGTRJSiWWIA222UrB+6cIqdsTQ5nPxW4/SmGUdJDTSaYpniw3T1oLIrY9iTguDA47hVJQwHvSxgA6lYSc4PK97BUREn4hRfSZdi1PVsENf8AsXAkBpXnQ11dBUa21MhcDzqKslHtdGdNs7lmHK9PUs7yENdbyXNcyZblp9b2MNhyLcKdkvPVVT1bIq15ezgXXTcUpabGcLFXC0Wc27rKqbSRpxru8nEst41iGW8Thqqd7hpduL8r2J2R5xps4YKyMuaalrfGCV5Jzbhfq1VsLNvsVd9iubanLmaoGOlIge4BwUseS0LPipcHq/HcKZIHhrb/AJLmuZ8uh7JHaOPgu3xCLEsOjqogCHtB2WdxjCRJFIA3dV7EXJEMMlFcnkrNeF9xUPBaR+SxtVA0OIC772i4AQS8R25vsuMY3Rd1M63RVYY1Ggy03ZXZbxebAcZhrISQWvF7Fe1Oz7HYsy5ap6+KQPcW+MeS8PVkY0F3BC7d6Lubn02JSYHUyeCSwZcrXAyPyejHizrI2bJUzSHX6FJFlaruyE4dyoqM64a3EsGe8D9rELtWbyJWTTB1M82dEbOuVvSGvY6NwuHBcqzbDiOBYu+oo43d1Id7Ln7nTse07ma8Gw8KpHRKyopo6fU54JKxOPYg97tFMzW/gABNZeixzMUrYoIZNN7Xsu05F7M6XDy2rxQCWQ2JaRwp4tPHiVRQ57Ln5ZzDJnZhiGYZ46zEYnRRXuL9V33K2VcJy7SxshhZqaN3WU+eqocPg0RBkYAsAFnK/H3P1MY+4K2RTMryOzSV+LQxah3w+ACzNfjUrnFrSbFU0tUXEkvuock5cbgqztRG7LGaqJuS8uJUUzbk3UGSc2vq2Uaetp4ojJLIGAeZQ5Rig5ZZGp3tdDvTa5IA+a5zmftKwbCWGON4llPFui5fjnarj1W5zKKNzIz1us89hIkoSZ6NqMUpacXlqI2/+IKqqs64JTGz62P+a8p4ljOZMQeXSVkgB6XVVJT4rISZKqQ3+JVK20Xx12z1jL2lZcYbGtZdN/rNy2Tb1tq8nNwqtcbuqJD+ZSZcLrGi7Zn3+af5SJfjs9fU+f8AL02za1gVrR5lwiq/0q2M/mvETqbFojds8g/NOQ4tjtC7wVMv81JbSIvAz3XDUwTf6czHfIhO28WkHdeKsG7SswYVJqFRIfgSul5V7dZXaWV+/Q3KsjsWQeFno32TYkXSmvY24c29+Fh8u5/wTGWtMczWPPNythDKySMOa9rgeCCru9MqcWiW0NG4TgLXRljnAA83F1FD7BGXp2mRujE9pPZlgWaaCRrIGMq7HS8Dkryb2h9n2NZOrXipgeYL+FwHRe7oXMJs82+Kqcy5Zw3MVHLSVsLHsIsHEKDxpl2PNKDtHz+pqgEWJ2CnRSCwN9iug9sfZHXZYrJK6gY6SkJJ2HC5fBK4OLHC2nZUTjR3tPfbSTLuKTixUuOezbFU8TyLHopsUgcN1Qegx5YuFosYZtRUpjyOFVxvAdcFTY5ARyky6GTgsIZd91Ja64VY11t7qTDL0uijRGVomgp6I+JR43AhOR31BRaLEToT4gtRgdQIiByCspHdWuHSubYBRY8kVKNM0mMM71rXsbt1VKNnEFXFLUF8Wlwvsq2qjDZyQg+bf6DRWLI5w+xpKSRylIZ5pgQQQSIgQQQQDAggggjYEEEEDTPQHoee9P0n3kEPQ896fpPvILdh9iOrr/GgemH7rfV/ZXn9egPTD91vq/srz+s2b3sxbHyMCCCCqKAIIIIACCCCAAggggAIIIIAIokZRIACLdGgmMJAI0YRYcBFF1uEqyH5IIxkou0Pw1T47BLq5GVEfxCiEINkcw2Db35So9H0rrU9aSvwU2I0ge7Vp3B2VdjMLY5IC0eMlaqpDJWCw3SaTCG4li9NGRexTo91r9bxbXjydAyZH6plVryNLntWMzfVOMzgDsuhY2G4fg8VMwaQ1q5NmCoMkzhfqlR0U7VlQKhsb3PPKo6+YzTlxKm4nII2WB3KppXkAuJU0jNmyURsUn7qMEKmo4JcRrBG0E3KfrnSVc7YIgSSbLrfZF2fzVMkUskN7kE7KnazrDCzkTTnMk9mWQ5pCx5p9jbdejMo5Vho6ZmpgDgFZ5TyxT4bRxjQAQPJaQRBgs3heV2M72eGDzJLtRGjpWMaAANlIjiJ4AROIad1Fra6lpoi+WVrbfFZ8eqkqSMeScU7smPGj2kzLWQxNJdI0AeZXP8ANPaXQYdGYoJGucfiuT5j7RsRri5sUhY09QV09XpUp80UZNqKVo7xmHOeEYXAXS1DC62wBXK8y9rskgfHQbDi64/ieKVVU+89S53zKhNmjvp1bld3B0tQ5ZzZ7Um7L7Hc14pijnOqat7x0HksnVPqKkuaXl3kFKmaWjcHdP4TTXqrzABvxK6cMMIeEUTySl5Oo+ikw0+b9LgQH/8AsukZ1xEVHaRFROedQf7KxPo2tgGdw2NwIbzb5LaY7Rd521MJb4dz/RPtV2VUZj0rcyPosHpcFppNJcAHAfko/ZDV/oTJlHFC+01Sd7fNcy9LLGHy5pbC1xOg2K1no+GXMNPSRvcS2nV0VwRbPTGGSzsomukkuS0HdaPK5c+Fzn724WZq7Q0giby0ALV5cb3eC97bchNoRns5VLjMWE8LD1Ml3FaDNc7pKk79VmJjY7qaEQ5+VzjtPrO8qGUgdcDkLo1SQInPP4QuNZjqXV2YJATdrSrYK2BHoWBxBPRabCae4BVLQQXl24WuwunGltlqXCGXWE024uFrcKpuDZVGDUhJGy2GH02hrbhUZZAT6GABoJVnTtsmIGjSAFMjAaFj7gF2+CcaElu6caErAUAkTN8Q8rFOs3TVZdoBCETR5A9LmrfJmKjga8hocdQWXyLOyHQ/VYiy23pd4XJHV0uJMiJDXG5XOMp1PrM8VhZoG6ybJ0tM7PhFWAO9vd9vNc07Ss6V9PmmKLvT3UZ234WuwyW9mudbZck7aMOqIsW9aa06D1VOrtdr7TTtaqcbKTtAzjUY1Kdcpc0CwuVhnSAtBPKOZrrC53KacCtspdzs5dND1O5xeNJsV3rsVrjX4K+iqN3NHVcBhuDtyTsvQnYPhk1Phxq52aWOHKybL7VZr1YuTKHtLwpwMj2M8LeCuX0veQV7HjwuDgR/Nd37RmxaHXPhdfdcPxCJwr3OYfCHeFQ1Z9yNWxHt4Pa/Ybi7sSybSiQlzw2xK19dACHbLB+jRSSjJNPJI3kLp9fBZt7LpOKa5OTJ/scozzhInppSGXNtl53zphjqeeQubYXXrfHKNskT7tvsuD9qOEsDZHtbv8lm7X3Uid2jgdbCSx1gpeR8SfgmaKStBIDXgEqXXQBgdfos/XNfFOxzRu1wK0+nSM8uGe9cHq2YjgdNWtN+8YD/AETgWG7DMcGLZEpmuN3RNstuXBESFir9PPqmqilp6otE8YeG+aWHI9VlOyDs1eWsUwrCqdrI6aNjhybKfX5vLwWw2Id1WDc8eaT3gHVRYcl5WYhLO4l7yoLpT0cq98vk5JM1t7o8DSJ75vMpl9Q0NPi4UCpqmMbre8Bg5J6Lnuc85P1eqUD78gkKLkWJGkzNnCiwy7BKHSngBcrzHmnGcWmLGSuji8go7Y5amR0tQ4ve7zU2jw5pNy1ZM3fLwascUkZv9GOe7XIS5x5JU2nwkkb/AMrLVNw1u1mKwpsLaQPCs/42SRapRRjmYO0f9mjdhA/cW9bhQ/cSjhI/dSWlIn60Uc/fhYaPYUaWgFvYXR5sIBb7Cr5sJAv4E/w5D/Iic6qKNjRbQqupo43E3YF0Suwc86FS12EOAJDEPVkg9WLMBW4XC8G7FTVGFlhJiuCt5V4fIwEaSqarp3NJu1ChOAcMzVJieL4W68Uj22PIK6b2f9sddh5jp8Qe57AbFxKwlRE07OCgTUMZJLRYq1TZVLHZ7OydnnCMxU7TDVM7y3srVm/O1l4NwrFsSwCqbVUk7wGG5sV6I7Iu1+lxiKPDsVmDH8aitGLL9MzZMNcnbWvA3JTrJhqsDsVBbNFJE18Tw+Ii7XDqjbIG+K+wWq0zPyuBeOUEGMUEtDWQtfG8Wuei8jdt3ZhV5crX4lQRl9K4k7Bevo5S5txwoOYsJoMZw59JWRh4c0gX6KEo2PHklGVnz/p6jTs/Y9QVLZKNrFantnyRV5Wx187Ij6tK4lthwsRRya2lpKzzgo+D0WluWkmWsc+9rqVFN1VUxwvYHcKRDIRyqDtwyqRcRTFSoZDdVUD/AIqdC8eaDVDI1wWkTz0U+lIefiqmF44up9HJpeDdJmmMy4ihJAKsKKItI2Uakla5o3Cu8NYx56KLJOVonUMd27hMYnEQ7UArekjaGpvFIm9wTZBwutYI5MN/ZneqNE/Z9gjSZ80yKpNAQQQSKwIIIIACCCCBUBBBEgiegfQ896fpPvIIeh570/SfeQW7D7EdbW+JA9MP3W+r+yvP69AemH7rfV/ZXn9Zs3vZj2PkYEEEFUUAQQQQAEEEEABBBBAAQQQQARRWSkEAJQRlEgAIIIIAMlFdBBMfAYQKARpFf2JIKu8mR6saiPkVS9FeZLOnFWFM6/S8so5kkaLPtUIo9Jd0XIsQnD5nuJ2C6F2jzPdOQeLLluKztF2tO6E7dH1WCrEiqxGYvmO+yqMVqAyLS0+IqfUX0l6RlLAavM2PRU0EZcwu3U8kvTj3SObnyWafsfyVV49iLJ5IDoBFjZexMk5VpcGoIhpGq2+ygdlWTKbL+CQh0LWy6RdbCvraaji1SSBtuF5rPPJsSbRzsuwkqJBc223AVfiWJ0tHGXyTNbb4rGZs7QaSiiMcMgLt+FxrM2dsQxCV4bK7Qfirtfpc8i5Obk2K5R1bOPaVS0cemlkD3i4suRZgz3iGKOeDM5gPQFZOpmnmeXSuJumWQl99K7mv03HiSswZNiUmLqJJahxfJKXH4lQ3d6XaWtKkyupaRjn1cgaRwLrO4xnWmpB3VMwEnqulGKiqRmdvkvI6IyXMhDbeZTMkmGUTi+omaS34rAV+ZsRrLhjiwHyKqw2rqCe8le66b8UM2uMZzpI7spGh/wAVm8TzXXTyaoSWDrYqrGE1Dzs1ytsEynV1bzrjNgQopUgs9Geg5HU12YqytncXtABuemy65NI1/aTXVbztCNj+SpPREym/AsJrKostrYN/yV7WsY2pxquv4gOUAeVfSFnbXZlqZWnUWuXY/Q+oHHA5KossNrErkzcJ/wBrO0CWjc/mQ3Fl6m7K8sw5WwZtPAOR4lbHwVtmsxV1qiNv7x3WzpB3GAj/AIVg66XXVxXPVbmsOjL4I6tCbBM5zmGS9S4fFUNQd7KzxqQmqeqh5u5NCIOKv7uglcOjSuKRyGXEah/UuXZ8wnThUx/3SuLYaP8ApUh83FXY/IjQ4ZEbNPVbDBYr6bhZ3CGA6braYJE3w7LVLhBZp8IhtpsFp6RnhBIVPhTWC11fRFthpWLI7dDRLp2dVIG6ZiPgT0e6zkhxicbum2iydjBSAW1CQB0dihYoO4TJo5P2/wCWBjmUpmNZqkaLgW5XkTCKoYTiE1HLdkjXWsQvoFitIyrgdFI27SCF5D9IPIFVg+KOxmggLorkuACzZ4uSNmrmUZUxrA69jy1wfc9VdZny/Bj2FlkgAfbYrlWV8Yc6cWfYEgOB6Lp9BjAa1jb7Ebm64WWE8c24no4RjmgcUzL2d4vRVR9XgMkROxCo/wDZPGNekUjiV6g9ZpaiEEaHHrdRH01GX6tDL/JWQ6hOKpool0yNnDsp9nmIVdYx1ZEYmA3K7fh9PT4JhTaWB2wbuU5JVQ0bNg1oPVZLMOOtLnMgdqKTzTz+ScdSOLlFfneujmp3gv3C5jSwPrMXigiaXF8gFvzV9mGrlOpz+XdLraej1k+fGsytrqimJgY4HcLo6kO1JHO28nLs9RdlWDOwjKVLAY9I0ArSVLQ5hBUujiZFQsjYLNa2wUeccrqVwcdu5GexKEd264XJO0qgZJSynTvZdnr2AsN1zfO9KJaeYW6JwgiVnlrF6fTVvZbqs9W05Ju4Lf5moNFbKbdVlsQp/Dwrprgrlydk9F2Y/oirpi+4ZbbyXZHHcri3oy6WNrm+dl2h3tOVCRBoUCg5ybLrJJenQhZddIJSdaS4ooQouTFVPHAwyPcA0DdHUSNjhc9xsAFznN+PSVMhpKZ928OIKi4skkIzbmKatmdS0riGDYkLOU9GXuJfck9VIpKfcX3J5Ktqan1bBqaxNkyJSUe4aG3VxS0brABqm4dQ3I8Kv6Gg/wB1XQwryx97RVUtC4gXaralobDdquKahAAu1WUVG0D2VdwiHqMpG0Y/dTnqIIvpWibRt03sk1EMVPCZpZGsYPNRbiDTkuDOvohp9lRX4eCfEz+ih5o7RcuYOHMdKx8o8iuZ4x24PbJaigD2X5UHkgiUMTa5OpzYOx7fYCq6zAm6f9Jcsj7bqt0w105I678LV4D2wYXVvbHVgMJ81BzgyXZKJLxDLjnNJEXCyGN5dlDXaIzsuz4PieEY5GTSzxuNuLo6/BYZQ9gjCrlGDXBdCTXk8w4nh08Ljdh2VLK0gkeS77mnKTi1xbFsuU5jwKSle46SPyWLJjrwalNUYusOqIs81WUlRPRVjZoZHRuYbiys6qN8UpDuFFmiY8X6qqNornKzvvYt2piUsw7FpdhYNJK74JoJo45InhzHi9wvn9DPJQVbJoXluk3uF6V7BO0mGupP0XiUo7wgBhcVrxSb4MmTGvJ29shaS0cBOxyXNyozXBzAQbjzTjStFFD8Gb7S8rUmacDmhkjaZmtOg2XizNWCVmXMdnoqmMtDXHSfNe+m7m7t29Vw30jMix4jh0mLYfFeVm7rBVTRZgm4s80xSgnUFKa8HcKsAfHK6N40kGxCmQO2WSSp0ek083clZYQSKdBIVUxO8SnQOQdeEi2hkO26mwyHoquAmyn0xJ5SZsjLgt6OpczqtDgdWTILlZaDlXuEbWKgTjL+m+w97XNBJRYw+MQEAqmo6qRsfOyTVVDpNnG6DidZ2cePG0nyRHe2SlIkFFnzacu6VhoIkaRACCCCAAggiKaACBRIKVCo9Beh370/SfeQQ9Dv3p+k+8gteL2o6mt8aB6Yfut9X9lef16A9MP3W+r+yvP6zZvezHsfIwIIIKooAggggAIIIIACCCCAAggggAIIIIAIokZRIACFkYRoATZCyUggAggUaIpiS5CvZXWTTfFWfNUjlc5NIbirPmmdLpv/ANREc7TnObIXDi265BiUrn1G26672okaXHzC43WvaHOP4r7KMVUrPq059uFEGqe6aRsDCdbjYAL1J6NGQYqDC2YxiEIa4i4LlyDsgyXJjOLMxGrj0wQm+45Xf8bzVHhuHNw3DyI42NsSOqz7Pfnl2o8xt7TRtMzZsocNi7uKVupo3suPZwzvV1zyyKQhu6ocVxCeplL5ZXO1nZVM2hkbpJXBrfiVqwaMYK2cPJsSmyHXVU1S4ukeXWUExlwLhwPNRsVzJhVATaQPk6BZHGc4VtW1zaZulh8l0U1GNIoc21Rq6rEaGiY81ErdQ4CzFfnDZ7KVlx5rIukqZ5j38jiXcBT6bBaqUAiMgO4TVvyRRBxPEqytfaaZ1ugUOLDppn3ja5/ndbTDMrFztdQ21loYcOo6aEhrBf5J0MwuD5dnnmGtmkBbmDLdLTUfeSMAcApWDwD1jWQA3ojzZXiOMRR7CyTGUQEPrGhkYsCtXluNokDO7A1WWSwqMzSaut1t8uR3qo2jkEIA9QdlpbhuQZqsHSCzlZGSt73K2MVOq5dwf5rURxyUPZM5sTTrdHwFyumqZ4+z/ETOHMeL7EfFCA512LNE/abUPfy2TdesMPnbFA/qLBeVOwh186VM7m2GrleixiLWAtc6wNlYiplhXTF1dCLW8S6HV/8A4dF/3QuZ1Tw6pp5GnYldLqTry0D5MTBHL8XI9ZeQqt7rFT8XcO+d81VSO3QBDzHvglSR0auOYY20zif3iux4sO8wydnm1cho22rZGdA4q7H5EzV4OPZW1wRu7VjsFAsFtMDG7Vrl7RGtw8bhXVP7IVNQ+0Fc0/sBc+fkkifD7KfhPKjxeynmbKlk0SLpyNwF7pkFLBQSHtTfNAuBTN0YKAFEAixWfzbgFLjeHSUtRG1weLbhX90Tt0Pkgo1Kzxb2qdkOJ5cxJ+J4VE59OSXODeixGGY9Kxxhqg6N7TazgvfWJYfT11O6Coia9jtiCFybPXYjgOMNkmpmCGZ2+wWPJg7mdHBvSxnnqjx14Fo3g6vipP6fqGkt6n4q4x3sJzHQSF+HvdK3oPJZ+o7Ms7RlrW0r3HqbrO+nqTOlHqiaCr8QnkhJkkDWn/eWcqcTZCC1n7Rx4stZh/ZDmzEZNFSyRguuo5C7BKemlZJibtXUghTjqKBVl37OK5GyPi2asZZK+F/cBwJuOi9idneUKXLOERsjja17mi+ys8v5YwzBYRHS0jG2HI6q5cdrWstmLElycjNnc2CVwAszhQpiSFIeVGmI07LVRnTK6s3YbrD5lYHRyi3RbiqI0OWPx9rdLyVKC5LLPP2b4B69JcdVisUhGgi3K6JnSP8A6dKWjqsHjLdMD38aVokv1E2b30ZyTU1zP3bLtkh/aFcW9GFhdNiEoGxsuyvcDK4rIJgeU09yEjwmnOQRsEkhaLpPektukuOo2PChYhVtpaeR5Ng0JRdsCmztjJghFLE7xP8Aat0WGpYbyueTq1FP11RJXV8krt232Uuip9RFgtUIIaY/R017Gy0OF4eX2JGyLCqEvIJbstZhdDsLNsFbSQdwzh2HgEeFXVPR6fwqZRUm4s1XFLRF1vCq5SoTZXwUrtN9KmR0xcwENV5R0Yb7TdkqZkVNE5zgA1gJuqZz4JRSZl8dxCkwPDpa6skEbWC9j1XmHtP7W6/Fq19HhcjhDcgkKz9IbP8AVYrjT8KwyQ92w6XBq55lXLU9XOHvaSXG52WOWV2bMOKuWUseH4liNQZah0khebq/ocl1MjR3cTjq5uF1DD8uQYTQ+sTw3da7RZUGOZ9nwt+iLD7Naeuyra7nZdJpOkUbOzfEJGEsiI/LlUWL5JxCgu51O8OHBuuo5W7X6GJmjEKJrNXJvdaSuxjA8xUhmoxGTa5F1W40LhnnrCMbxjL9W10UsjSDuL8rvXZh2pQ4m1lFiVmymwBJXNs1YPTVMj+6aGuYsE01eE1zpYiQ5h2sVGE+2VDljuPB7Zq6KCvpWyMIcHDay59nfKQkiJZHcm/RQuw7tCjxKCPD62UGYbAErsWIUDamn1hoII2WtyUolEZOPDPHma8uy00r9UZCxNXTuicQQQvVuecqxVETnsb4uosuD5vy9JTyu8B2+CytMtpPk53LE1zXXQwfE58IxOCphkLdDuimVdO6NxbZUde0t5ClifJTl4R7P7Hc3R5iwaNkkoM7WgWvyt695bf4Lxd2L5umy/j0IkkIhe4Ai69iUVbDX0jKuFwLZWg7LZ3GMnRSOPi6JOK0bKyikp3sDmytIITDnljRZSIqg3aR0UXyEeGeOe2bJ0mXMxyPijPcSOJBWJgHhXrrt3yzDjWWZKuJoMsIvcDheTTA5ksjSPZdZVSidvRdhM5UymKjiMtNlLpmG24VLPRYVwWFPwp1MbKDBsFMpyCos020WMDxqV7hR2GyoqKMukF1qaCn0RByiyja2Fix9xYRu0Qpu9yhcnZGAo2fO+pb0s2V/wAAgUaIpHMQAjRBGhgwIIIJCAiKNBMArIkpBOwPQHod+9P0n3kEPQ896fpPvILZi9iOpr/GgemH7rfV/ZXn9egPTD91vq/srz+s2b3sxbHyMCCCCqKAIIIIACCCCACQugUSADRogjQAEEEEAEUVkpBABBGgggAIIIIAJAohylJg3TEnhWeWnCPFIyfNVh9lSaB5ZVtcPMJmzSn27CZI7XJe6huT0XOsk4FNmLG2RtYXQh3iK3vaXFLiRgpYWlzpNtlrchYBBljA2TyRXqXC6cYts+g7W6lhVFu9lNl/BmUVOAx2mxsFkaqUue+eeW0fNyVJzTjkcLZJ6qQC/A8lybMmZazEnGGBxZANiQVrx41E8vlzyyeTRZmzjQ0xENM8SOHNuiwmKZhxHECWtLms+aj0uHT1EvhjdKCfaK0OG5Zkf4pHaR5WViRmqjINoZ538OkcefgrOgy1VSuDntLGrf0GD0dI2+gavNKqHMZcNsFJQ5sVGeo8u0NPZ7mgvVh3TQBZoDQnQ/W8gG6ebHpjc6TZqkwDp2tERcbWVdX1dOI3t1jV0VZi2KFship33A5VLO98xuX2UbJWi/wyueZRG03JUfM0h76NrzbzUDApGQ4gwPfzwrPMMXezteCNPndAdyH8EiAYHN381u+z2ilrcXZ3bC5uoXXPqfEaOlbHG+YNudz5LoOBdpOWMoUwki01VUW7dLFK0LuPVMk9DQ5ejhmezS1g8JK5VnPEsPfg9c5kLGxOHna64xlztGzFnzNzoBJKymedmgbNAUTtXzdVU1S/Amg2iHi3tdOyNml7OTh+HYhWYkHtYwm/KuIs9R1+NmlilBa1wHK4zk7EZ6mgre7BZtv4lAyDWVIzBM57iTr81YhHsmGrbLSUr2uvxddSbPrywLHli4blCubV5ehdfxR+0ur4TXtmy5pY65a1AjE4oT377+arXlTsTeTO4HzVdIbBFgAASMkjPVp/5Lk8kRgxqaMi1nLqEMl6trehBWFzVS+r4y6UCwcd1dj8iZPwX2QtrgftNWJwQ3AWzwgkabLXL2iNhQ+0rmn9gKhwuTU7dXsB8AWCfkkidC4W5T11EgI3upDXA8Kpk0PNKcaQmQUprgOUUMdRhIaQb2SwojAjSSUAU0Ao6TyN+iJzWubZzvysiJREosHyqGH08ZPAITD6WAn/AEG/yUsmyQ4pWxJUMxQwx8QtB+SfaQOGgJslDULKSJN8UKe7zTT3BB5TTipJFdBSFRpHbFOzHZRJHbFWCItSfCVkMxuAifutLXyFrTusRmepHdPueFPGuR2cpzPZ1XKuZZxnMNHI1p5XQ8flJnlPRcrzlNeYQ8knhW5nUR2dm9F+MswGqqHNtqtuupv2Jd5lY/sMw4UOQmyFukvF/wCq1L5NrLEmRbDc65SHlI1WRl10WIAIDrFYnPmKaZvVInc8rW18gjpXyk2LQuWV1Q+txSQv30nZSguQHsNjJ2d1WowekBtsqjDYLkWC2WDUvhabLZ4QFthFG3bZabD6YbABQ8NpwGgDlaTDKb2bhVybAlYbSActVxDTjoEdLCGsGymMHkqHIkkBsbdFjwsR2s40MFydW1QdZ2mw/Nbq19hyuIelLXuosssiJ0tk5/mq8kuCeFfuea8Fo34ji0lVUtJkleTv812vs/wCB88YMYAbzsuSZbxKJlTG5zQBddmyZjcLNUjOjVk7kdl4/wBLR0Ohwakqp/V9LXM63C4z6SWWqHDSDFoYR0AWtwTtSoaXMLoJ3AaTuuWekbmyLMWNA0ct47bgH4KxONGLtalycZrpQy7WuuBwU7hWPVuHPYYZ3Bl/ELqBUtDRbVdRXkWsqyTS+jt2WJW5gph3VnSAbjzWezfg3cSu236qv7HMUmp8bjpySWvXQ84UYl1v07kLDmajM24IuUDl+W66TBMZhqYnlpDl7P7MsY/TeW4Jr63lviXinMFK6N+tpsWnZej/AEVsakq8OdSPOrTYBbcDsxbCo6xiuHte1928rkfaDl0SB7mxf0Xc65l3bhZfM2GsqaV3h3srssSGKSSo8e5qwh1PM8BqxOKUxB3HC77n/BO7le4M81x/HKJwkkFuFTHhkcvKMlTPMNQ17TYtN16t9HrNUeL4IaOaW88IAsV5PqWmOUgrf9huYX4Nm2HU+0Mhs8ea0xZjo9iSPBPwSqZ4sRdRmSNlgZIzgtBSWPs7ZToROraVtZRSU7yDG9pBHmvI3aTgrsHzTU0/d6GF1wvXtM/VGWk8rhvpF4I2GWLEY2X131FRmuDq9PyftRw6NtzchTIWeFM0wDhuN1Pga0DdZZHq8XgS1pHClUjTq4Qaxp4VjhlN3jxsoFsmoq2WeC03eXeRwtDF4Yw3yTVFA2GEADdPAb7KLZ47rO+5XCIYRoIKB5C7dgRFGiKETQAjRBGhgwIIIJCYEEAjQRsJBAoIGmegPQ896fpPvIIeh570/SfeQW7D7EdXX+NA9MP3W+r+yvP69AemH7rfV/ZXn9Zs3vZi2PkYEEEFUUBIXQKJAB3QuiQQAZRIIIAMI0QRoACCCCAAggggAIIIIACCCCAYQCCNEUyL5CKdpjZ4PW6aVhl+idXYiyEDa+6mkacC/dM1mDULZpoquWLXpHhJS855lpMHonPe5pkA8LEeYcbpcAwp0JIEjW+H4rjr4cXzXizpJGv7jUteOCSs7c88pKmVuJVOIZixCSduru3HZoU/DcqyBzX1DSxhXQMDy7SYZTW0Avsm69ha7cWb0VpUvBTUmH09M3TGBb5JZMbCSG2/NOVcjI2XDlQ12IxNeHCTdp4QgLqrkdFS94R4SNrrIYhipfK5rDwrDNGY467DaamiGh0QIdbqsc0SF5cN0+9IVMuIMQlicTzdKxHGJH0/di4v5KrYx5F3EN/NNzVLKfwgF7ncbKE80EThhnJkaSOWSUEX53T8scMMWp8oB8kgfpSoIENOQ13VSosp1tTZ9TIR5BZJ7uOP2aI9PnJlHLivcyXYLkcFRazGq2YEC+621Pktgb4xdPtybCPwLM+pwRvh0l0ZDIuXqvNWMChMxY5x8N11TDPR5xWat/6RM5zAQVV4Hg0mC18dZRgtew32XoPs37Q6d1O2kxZoZJawJ6qWPcjkl5M+fp04LhFn2U9muHZYpwI6Zhlc22qy4j6RmR6n9M1OIQxlhB3sOV6Or8+YdQ0v7ENL2+yQVx3tQzo7HIJmtY23Xhbo5I3SMDwyS5OGZWo5MNweqc5ti8WBvyl5LoHNxCSoeLC91KxCoD5vV4W2b1V7lqiIY6zeVo7itI6fkPEI20UtO11uNl1fJdcJKN8Oray8+0VWcPq42A2L+QunZOxUxzNGqwcotg0aLG7NrHAeaqqk+FWOLnXMJObqsnHhKLIkJkmioBVVnKkMsQnAuOpU+U2eCpM0baygdEdzZW458iZl8C2a1bbBzcBYujjNPVvicNmnZa/A3ggbrXdoianDnaXfNX1I8kKgobCyu6RzfNZ5rkkixi6p6MgcqPE4HhO3VTRNEgEI7prUEoOHVIkOB1uE5G/nUmNQHKMEJNAPl7fNDW3zTJKAKEIe1t80Re3zTRKIboaGLuEhyNIcQkATiAi1BIlPCRqCkkIW5wTT3gBE9wTMjvCVIQ3LITdRJpTYp0kWN1X1smlvKmhMh4lPZh3XOc4VVo3AHla/GKoBh3XMs4Vt3aWlaMKtkTE4xOdUnkFzqvY3EMxRxN8Wp4stxj9QKeimlI5Cp+yPBZcZzhTtDdbQ/U7/AJqnZlzQ7PRuV6M4bk2jpnN0P0bhG47WVljTmRiKGPZrGgW/JVLni6z1QBlETpFyi1pJdeRrehQIps6VYpsKcNVi7hYPDI9T+8O5cVo+02S8kUDTt1CrsLp293GQtOKIF1hENyNltsGhDWC4VBgtK0BritphcLTp2WiSpAWeFwkPF1q8PiaGg2VTh1OCQ6yvaZlgLLJJgTWAAAJ5uwTTeidYLhVPySTFNNjqPAXCvS5w+ebLDJ2t8Me5P5ru2na3RYftrwN2P5Mq6drNTtF1CaJY3+1nifAnl72tIsGrqeUKgxysYPZc0h38lzOhpHUFZJTSCz43kG/zW5wKoZG0ODrWXJzycWek1/3xpMxnaS2bDMfMzdTWyk2IWMq8QM0xMj72HK7fmPCKbMGGAWHetBsVxfMuVMUwmZ/7Bzo77FPXyxflmbawS/8AUzlTNq4PVRnOJIunxR1bpdHcvJ+S0OW8lYri1YxjqdzIr+JxWyWTHFeTFiwZb8Gh7FMOkqMa9Zcw6I+Suq5oMbY5A2xBCj5fwely3hohgsZHDxFV2O1QfE/UVyMslknwdnHFwhyc4zNGGOkcHXuu2+iBFJLLKGNvp5XCMyy65dLdwTuvU3ohYG6DLv6QMRbrHK6msv1RyNqX7M67VNOoghVtZDdhBWnr6RgbqaqWrjFiFsasw20ch7QcIa9j3Bq4JmzDu6fJtuvVma6MTUziG32XA89Ybplk8Kh6ZPutHAcdg0Sl1lGwWodTV8UzXadDwf6rS5ootDnG2yyFrS2B4KklRUz292bYvHjGUqerDru0Wd+SuHSaXalyn0bsTM+XZKNz76ANl1KcHgKyJBlnRzgi3VZHtmw39IZae4N1GMXWjoyBJyjzLTtqsFmjduC0pT8F2rNxmjx9pa2okDeAbKZCAbJ7MNL6njNRBptpchQs1ELHI9vrSThbJVLAHPC0mF0jW2dZRsMoSbOIV9FG2NgAVdnK6p1H04diFMCUAiCVsoM8NnyubsIoIFBRMvgCJGggdgAQsgEaBhWQsjQQAQ2R3RFBAqAd0LIBGgiegPQ996fpPvIIeh970/SfeQW7D7EdbW+JBemH7rfV/ZXn9egPTD91vq/srz+s2b3sx7HyMCCCCqKAiislIIATZCyUggBKCMoBAACNBAIAFkLI0EAEggUEABBBBAAQQQQAERQROcAmgoPTdpI5C2eVIYsOwt+J1DdIt4SsrhlNJVVLI4xck8Lb4lSSVEUGFRstE0eMrRjRs148mIxfDanNGKCdznCnY7b4rYYXQ0+HULYoIm+EeIqxgoo6OAshaNMY581GncQwzSkMYtSVHRIVdLqsGHfqs3jFVHH4ZXgO6KLmfMEcLnshkFxxZYx2IVNdIbEudflN0vI0m/A/i+Ju1uYxxICq46eorA54BsPPZXjMMghiFTWSB8h9lqiyRVtc7u4Gd3EqMu1ixx5ZoxauSb8cFFL6tBJomOp/kE7TQVVSdMFMQ09VpcOyvG14dKNbvitVh2Cs02bHpt8FwdnrUMbpHYw9KUlbOf0+U6mZ4fPMR5CyvqDK8EFi+MSFbimwOVx9lXFPgDrAuauFn693M6GPUx4lRiabB2M9mAfBTosEc8g6eFuafAwLDSrODBQB7C5eXquSXg0xlGHg5/Fgp6tsnmYHf8K6C3CG/upxuFt/dWX87I/JP1kc7OCW/CmZcJDdwC1w4IXSnYY0D2VX1eFh1wGqePqGSDtEZZIyVM5zV+uQt0Fzns87rGYy2aarZE0u0yusT5Lr2I4S8McQy9lj8XwgGQPY2xabhel6b1dypTObt6uNw7kU2KZT/RksM5OtkouDZSKUthcGs6crotfQjFMixzhv7WnbyuaR7XB5B3Xs8E1ONnmpxph4hJ+0Ev4m8LWZaxEvp4nsddzfaWQm8eykYBWGlndC52zjsk5EaOyw1pqKCOQb25KTrL2fNVOVqxkkPqwOrVwrqmpnMne16lCaugcK5KucG5CXQSlsoaeDynMRj0yGwUenIDxdWrhldIbxij0TidjfC7lTMIeWFp81OljZUUmnrZVkAkhn0EbArTGZXRtsLdqZurin2sszhNTsAtBRy60m7GkW1OeU+CosTtLU6HqMkSRIBR3KaD0u6qJJi7/FKuE0Cl3QwsWSjDk2XeSLUPNIVjt7onuI4TRf5IB3mgLDL3JDnuQLm+abe4eakkFgc+/KIlNveAk6x0KaQC3FNSEaSg94A5USaS4O6lQMbnksDYqnxCpAYd1LqZdLTcrNYxUWjcQVNIgymzBW2Y6zlzbGajvJ3EnZX+ZK0kkatljcUkEcDqiU2YFYpOHKBGWzxXNYxtGDfvD4vgut+jvlv9HYa/GJ4bOIuwnquSZXwybNmcYIo2l8OvfbheqaqmpcGwWnoaazWsZZ1llyScnYFLilQJapxv1UIm5RSv1OLgb3SQUiSDcbcJyhYZKpm2wumHqVhDgag/AIEYDP8ne5hEbTdrSncHiNxtso2bbPzHLboVbYIy7Wiy24VwI1WDw3jaei2OEQgW2Wawdlomha3C22spZXwBoqBjWsCtYAOVW0osxqsoPZWNjHgn4+FHun4yLWVbY6HCmqpolppIHAFkgsU5dEbKMiUeDyD255OnwHMk2I09ORSyuuXBYrD6rWGFrzbqvaedMs0OZMLko6qMOcR4Sei8mdofZ9jmUsRlkiic+ivcEDoufsYrOxqbKUUmP4dieizXC1uN1cOqKSuh7mpgY5h/EVzSlxC5HLSPPZXEGKPYwDV/VcfJinF2jsYs2OXk1jcHwJpD20sZIUuOopaYaII2t+QWNbjDgDdyYdirtV9aShkkiyUsUeUX+MV2l53vZZHGa9jon+PdMYliheXnWs3prMXrBSUDHySudbYLTgwv7MWfPEfythdRmPMtPSUsZlLpP/AJr312aYBFgGWaejjAa5rBqAHC5J6PHZO3Boo8XxKK07wDYjhd9e5kDdDNhbZdvDCo0cLYn3SbGMQI0WCoascq4qHF11VVY3K0JGZsocRj1wvFr7LjueKFrpJbtXbJ2+F4PVcxzzTgSuIHKsSEmed840A0yWbwuW1rO7qnD4rvuZMPErZtvkuLY/h8zMRfZmwKi4tgdY9GWtLMTqaZzvatYLvlZJpksvN/o/NlgzQ24sHL0ZXggaiklRBjlLKe8VnUEzUpaBcEbqiY/9tsrygu+I38kSVocH2yTPN/anRGLM8rmMsHFVWDUkpeCWrcdrlOxuPNNvaJVVg0DWR6iPksWVUephtRx4O77JtJH3cQBG6fHxSUFQmeK3tmWxkbFg7I0QRqFmFNoBQQQQKgIIIICgBGiCNAwIIIIBgKJGggjYAggggR6A9D73p+k+8gh6H3vT9J95BbsPsR1tb4kF6Yfut9X9lef16A9MP3W+r+yvP6zZvezHsfIwIIIKooAggggAIIIIAIoBAoBABoBBAIANBBBABFBAoIACCCCAAggggAkQYHPASkcILpWgHclShyyUOWbXs8wtskrqqVnhb7K1z6drNb9PiPBTWU6YQYNFGW2LhuVYVYEbPHYMAuXFbscTp4YUrKjENFPFrlIawDclcxzzmQyxyU1C7U3gkdE72lZwkqqz9C4c7W4m12rLfoySipw+oN5Du4Iy5Yw8m/DieRmXmFQ6T9qC8vO26tMGw6qaTLewPAVpR4U6pmbLo2PC2mB5dlqLMER2+C89v9UirUWd7W0IxVszVBhTnv1SNL1o6DBXyFtotNvLqt9hGT9DWl0XK1WHZcihAJjF15nPuZMn2b/Ux4/1SOf4dl0kDvI7eWy0OHZca3fTdbiDDGNHijAtwpUdG1vstXOeKU3ciEt1LhGUgwNjSPCrCPC4w2xatAKYeSV6uPJC1Y3ZT67ZRMw5jXbBSW0kYHCtDAB0RdyPJTWOEfoi5srTSM8kk0rP3VadyETogm4Qf0LvZVPpm24UGWlaTwtA+IEKDNAbnZVvHEmpGeq6IaSbX+CzGL4UHF0jWbjot9NFtuquvpNTXWCpXdDKmvBP3xooMrSCSldhs4AjcCFzPNtCMOxaWECzQdl0CsbLh85naLNBVN2hUzK/C2YjTC7mD9ovo/Tc6yYlRwdrGoyOfte3VclQaucQVAlLrC6OOXc6imq5rJY/Oy3uSXBVHEmjbZVxYaWPiddwXTMGrY6ymErXXcPaXAMqVxp6xzHn2T4R5rpeX8Z9Sr4pf/y8mzvILO83bMtnhTx0jZ18RJJIVRLeN60MkXfQ+sREPjeLgqhxJlrm3C34cinyc7scXRMoKi4AupcrGvIfYXWfpZiwg8K6o5xK2xO6vlwuBUWuHR7gjhXdG8sKzlPOYXhpKvqJ4c0Ouufk6h6bplyxpouYpLtCfY/oocDhblPtIurcXUMeTixSwySsmNcPNONcOqjNI806CFp9SFeSrtkPBwStQPCjuRxuAvcojNMKY8XDok3+CRqb5otbfNSoKF6kYN01rb5oi8DhOhC3bJtxCSZLpF1KhglPCS3zQkKZe/SOU0hNhVMgA5UGWawvdCpm8yquuqC1pN1NIjYziVVa/iWTxutAYRqT2N4k1od4t1i8QrJJpD4tlZcYoVWQsTJme4XusPnGtdIW4dBu9xtYLTZgqTSYfJM03dbZI7Gsm1eY8ZOK4gwiBrrjUFTLImTUaOgdiOT4sAwRuK1UQ7+UXF1ocZqu9qCA64P9FZ41WQwMFBTeGKIWFlmZn6nnyVLExL9zYcBBFcIwUIYJCA0kp/Bt53EeSjTbxkBOYM7RPY+SmkBhcxtvmSfbqFeYKzZuyq8yx6cekcRs4q6wVuzVqxvgRsMIb4RstZhrONlmcHaNLdlrMNaLNUsitBRdwN8DbKfCRayhw2DApEDhusjGkSbpyMgcpgOB4KcBVbJUPgo02HApYKQwzwouK4VhuI04irIGzBwIcCFJJCBUXFMipuLOIZ+7C8NxKWSpwsiF3LWgcrjmO9lOa8Ik/ZUz5Y77EFe0CLjlNvpoJNnsafmFTLBFmiGxJHhKpwHMMJ0yYfKHfK6jjAMfneI20Mtz8CvdMuD4e43NNET/AMIRR4PhYOo00QP/AAhC14o0flto8dZf7Isx4xK31infDHfcnqu99mXZFhOWI2zyRtkqDYkkLqQghYAI2NAHkEsCynHBFcmaeaTCgHcxNY0gAdAOEb3l3KImyae9XLgp7gTOAaq6oIKlzOuxQJTypIVkGp4K53nFgcZLroVW6wK57m9271fjjZCzluOwgudZcxzW2Nk77NF11TGWkucVybOcg9dc0eaulGkSTNB2JyD/AGqh+a9DYkf2YXnvsKi15ojcRwV6DxTZrfksj8iZXB1pgVfYZIbWHks1K46m2WhwYXjHnZIX2c+7TMNM9eKgtu1h3Ky8cYjYGhdQzTTCohqmkXO1lzOcBsrm3vYrLnQbGzJw7QmoyETUpYvBxo2uGGEaII1EYEEEE0AEEEEAAI0QRoACCCCAAggggVAQQQQRPQHofe9P0n3kEPQ+96fpPvILdh9iOtrfEgvTD91vq/srz+vQHph+631f2V5/WbN72Y9j5GBBBBVFAEEEEABBBBABFAIFABABIwjtsiBF07JdyQaNFdqIlAuGKKKyF0LooXawWQshdAFAdrQEELoX+KB9rYCpmAUklZjFPBGwuJPCh8gnyXS+xHBfXK+Wtlju2O2kq3EuS3FC5G1io2UuHxNf4S1u65f2rZt9UpnUFK/TLJs0Dquk9quJMwTAn1Js0gWbvyvO2FU9TmLG3V9aT6sw3JP9FrlkUFbOzhxd0u1D2C4NFQUzsVr3aqyTdoO6fpaKrxeqvoJBO4Vh6nUYhibYI2l8d7Cy6/kHJLYI2ySx7mx3C81v7bnNpHo8WCGGKozeVMl+Bhkj4+C6ZgeX4KaP/RAK0dFhUNOxoDRsphjDRYDZcB4blcgnnk+EVsdC1oHhATnq9uGqbZJIUZY4qXBQ22yN3XmERj8gpBCIhVyDwRix/klaU/pJ6JJYQoMsUhlzUktJ4TzmkoBtlW2SsjljvJJLHeSlFJI80hkVzSOQmnx+alyNJ6bJp7TZRaJJlfURCyq65haNleyt23CrqtgcDsoZa7SzG+TIY3S9/EW25CyMMthPh1Rw8WsV0Oqi2Nwuc5zhfR1XrbBZt9yu50LbeP8AWRk3MPdI5nmGnfQYjJF+EHZQIZdV78DlabOETayhZWxbn8SxMUpa4tdwV6mTtWZFCkKrXvpZ2VMfHVbnJ+ItqsP9WdZ2oc+Sw05ErDG7r7Kdy5WvpJ3M1kEFYNjxaLsUbdPwdvyXjU0dQcMqT4B7BJ5WlrqdsshYBsuX0j/XqFlZA4tni3AHVbXJGYBWsFLVW79uxBKNHdp9kjPt6tO4jddTvhkIA2R0dQWOG60eJ4eZNTmtFlmqqndDIbDhejVyimcymuGXsMgnYCPaCsaCqfG4MfsstQ1gieA42JV5HK2RgdfdZ9vXx5MdRRKEnE1dHNrAIKsGOuN1jqbEDAQHO2V1QYi2UeF17LyOfVy4W6OlhnGcakXbXWTjJPioDKgO4KW2VQxbmSHDZa9eL8E/vEYkaoXejzQ7wea2w6u8ZTLVJuseaIOBUIy7cpt9QRwVsxddTf7IremyxLh5oi5vmqw1B80g1fTUtses4SmWnIsy8dEXeCyrDW26pifEtLVdHquFkfxJlrJK0Am6r6irYASXAKnq8VcGmxWfxDFXm4DlL/yuBfYfiTL6vxOBoNpBcLL4tjdgQH3VPiNQ6Q7uJVU86b3vcqqXWcfiJKOlL7GcWxAvl3cRdVk09vaPKLGJA1w5JHQBXOSMn4jjtU2oqInMpWnk9Uo7eXNyhzwxxkbLuAz5iqmwiEvgB8ZOy6xSwUmW8KbQUQaHkbgBTnU2H5foWQUQaHgb2CzWJ1ZmfrcfEtkE65MkpcjFbO6aQ6hY9VFdujmkFhv4ig1pIuArUiImyMJRafJDSeoUgESeyioHaaxu/KVINlHjcWTgjzU48iKPOERbijHW5KtMEZZjSQnM0UwkZDNa9uUeEEaAAtMBGvwbhq1eHECyyODutZavDnAgKc/A2X0Z8AT0J5UaI+FPwnlZGCY+zZOgpm6WCq2TTHgl3TQKVqToBy6PUmtSGpRaItC7lDU3qLpGpESihUKc5vQWSLonOSS5Ohi7oXSA8dUC9vmgaQJDsoz3dE9I9pHKjPO6aQNBPN2lQZTupb3ANKgzOFyppEbIVb7BK55m1wLnLe4pLphPyXOcwyanvueVpwoX2YDH36WOsuMZol14q8auCux5oIZTyOJ6LguYZ3nFpnA7alZmfBI6/wCj1Rl+KzVTm+Flt12PGptLgL7dFzv0faXTgks5Fi4DdbfGZNUoBPCxAxhkmt4C0eFOIj26DdZVjwHAjlavBGkwXPUJCIdQDPLU3FxbdcuxOMMr5WjgFdBo8eoaPHKmirJQ3vNhdZ/MmG0jqx81LJrDt9lVlVooyw+zL2sUoISxmOQglE0rnyXJz5LkUEESMKsiGgggmAEEEEAAI7okEAHdC6JBAMNBEEaCNgQQQQI9Aeh970/SfeQQ9D73p+k+8gt2H2I62t8SC9MP3W+r+yvP69AemH7rfV/ZXn9Zs3vZj2PkYEEEFUUAQQQQAEEEEABEUaIpjEkm9lYU+E1FTHrjZcfNV49sD4rVYY9zKZoCG6N+rrLK6ZQT4bPCfG2yjuhkb0WnxR4Y1riL6lXOkY7lqg50dR9FvwVGlw5aUFbaYnixACBw1rxdrlH1UY8vSZx8FTsgFLqMPew+E3UV8UjPaaQpd6ZinpZYhGyGyFnW4SSbcqadmSUMkeGLFy4MaNyV6I7JaGPDstMne2xc0ly880el87Gk/iH/ADXovDqiOkyNre7QO63PlstGCm+TXpRfdbOM9s2PVGP5m/QlE8vYx1tI/qmpaSmw/B4MHpt5He08DkqNl6kH6Tr8freHO/Zk9ei2/ZhlmTMGM+uzNvBG6+6w9QzP2o9No4uz9maDstyUWUjausis924uuq0tIynYGtaAApNLTR00DIo2BrWiwS3BcJ4qfczTPK26GHJDt068JshU5mn4FFjbgkkJxwKSQVjGNkItJ6JxwKIKtjCaPNB4Sgicq5EkNEJLgnCEkhVMkIsisl2tygQgmhtwTUjT0T5CS4IAhzsJHCgTMI9oK2eLqFVRnmyqkrJRlRRVkdnb8FZbN+Gsq6GWPT4reFbWpiLmm3Kqa6APjIcNwFCGWWLInEtf7+Tz8QYJqjDpHF1+h6LH4nAaaocx3nsumdpGFPoqr1+Bnhv47LnuMvjqYBO32hyvbam36sEjHOFSK0Pu245bwmZSWSNkYdzyhE5oaSDylEtLDc79FdPGmyxRSVo2GUsb9XexjTq6ELT18UkDhjGHv8Z3kaOi5HQVT4K1rhsLro+W8VBAbKNUbhvuubsYXB+pEv7VKFHT8lZmjxSjbFK79oNnAq6xTDmvi7xguCuSVznYXUtxGhee7vdzWroeTM00+K0rf2gMoFi0ldXpvU+79JHF2dRqTaK+qpix58wlUVa+N+l/C0mJYd6w0zRDxHkLNV1OYnWcLFd+LjVnPaou2PjmaCSFJpnmA6mFZinqJI9jwrWjrAfbKzZ8Uc3FEoto01NW3AubFTmVNxys3FIHbtcpUU72dV5/a6RL/wBTXDYaLw1BHVBtRfkqqNUSEXrBXHyaGTH5RrhnT8lqageaaknudiq31lIdU/FZJKUfouUk/ssnTEDlRnTG/KiOqR+8mX1TAD4lBTb8kqv7Jr5/MqHVVAI2coklS03vuoks1rkCyIyk2Kl/QqycgHdVFQ5zyd1Jlc+Z2mMElOUuFVU7rd0d1vxYMs+UiLlFfZSzNcQTa9kKShrKw6KaIuv1twtjQ5X/AGgdUeFoV/BLh+GRlkLGk9Sunq9JlKXfIxZ9xRfajL5fyBE2dlZihG24aVrqrEIcPgFNRRNjjAtsqbEcZfK6zHmyqp6lzxu7+q9NhwrFGjBLI5j2J1jpHXc65KrJDq3vcpTnd4djeydpqGSdw8JsriqhmCB0zvC29lb0eFvmBAaQrXBsHMfiNmg83VnW5hyzlyIuxKtiDrcXSF4KVuATMj1GMlVddQywnxMICtqXthyXXVXqcNZHzbhaHEIqHE8OFTRva+NwuCE0ws5zK2wVbUOLZAR5q6xODupXMBvZU87bgghSToRLqAKnD3dSBsq7DH6XFnFip2DvDndy/e6RPSGCsJtseFoxysRfYU/hazDH7BYvD3FtrFanCZLgXKvmuBmpp3XYpUJ5VfTOGkW3U6I3CxskkSLpYKZCcBCrZJIeBR3TYISroTGKuhdJuhdMAyUlxROKSSkRYolJJSSURKBBkoiUm4KS5wHKaJCiU1KQg+QW2UaSQ7pgN1Ejr2UZ3FylSOJNyolVNpYd1ZBWyLKvHKhrYiLrnOOzanu3WrzBVAtcA5YXFpdyb7LXH9SJh8+Vgiw6VuqzrbLhNRMaisLib3f/APNdS7UKwMiIDubrneUMMfiOY6anDSWufcqnLJsaZ6b7JKN1DkuGRzdJe1TcRkLpTup9GwYfgkNGG6RGwKnldqkJWcY9Qt7yYNPN9l0DCIGtw8k7EBYbBI9dY3bquk0dLqphGOTYIF9mIxDJVLiEpxBzS5xPhI6JOIYLT4bh2q2p4HVdHxKmOCRRvLLsA3HzWOzfJE+gdVMILXDjyUMjSRKckonJMQuapxPUpgWT1a5rqhzQb2PKZXOm+TkZHchSMJIRqsrDRogjQAEEEEABBBBAAQQQQAAjRBGgVAQQQQRPQHofe9P0n3kEPQ+96fpPvILdh9iOtrfEgvTD91vq/srz+vQHph+631f2V5/WbN72Y9j5GBBBBVFAEEEEAEhdAokAGgSgETkAEz/UHzWnpyW07QOoWYiF3t+a11HEHRtB6BE+Edvpke5kSvL3RDUoFlbYqWCPSFAiYHBc/JN2eqxxbiR77qTBK5jd0owDUE6Yhtss7yNFrgmhibU+zh0TfeAnS9gKsNDNNkxNT7XCazMolrwY2aSKZu1go8uFHfSbp+LvAdIupcbncELRDZZjydPxz+im/R9RGQ7RazgbroVbmGSty3T4RSuLpHi0440gLNl5jbYi4KkwVMTJtTByNyrobTTsoXTYQfAiqjdiNZTYHRN/YsO9uq9B5CwCPBMGhjjFi9vj+C4nkerosOxz1yqAcHHr0XdcEzNhNYwNhnba3CzZZqcrZslFqCSL1oAjDebdU0+10etrheNwIPxTZvfdZs8rRQkIeEghOFJcVz5eCaEEJDgU4SklZ2SQkhIsnCkHZVMArIiClXQVUnyTQggorHyThRKtjsbIPkkkWTpSXAqNkkxspJCcIKSQix2Mub5BMzsuzhSbJDm3CiFlTIzc3VbWRjdXVSyzrhV9Yy7bgKtougzD5rwuKvopYi27iNl58zLQyYZVzU8wLWX2XqGsguCQOFy7tKywK2nknij8drrb0/f9PL6bDLjtHDC4A7cdEoO2TNdFLR1T4JQRpNt0Ubxbm69ep96soja4YoC71osuTuZdjjt0WfYN9lbYeCGE9VVlrtL8Xng6Fg9WAwxTtDmOFt1W4jR1uDYg3FcJeXMvdzAVXYbXaWFkpt8VcwtqpKV5h/bNI4uuXDF2z7i/PBThR0HIeeqLE42w1EoZUcOYVqMUo6eqYXxkF3K8r4s7EMJxV1VSl0MgN7LonZ12ohzRS4vLaUWAJ6rvYNpxSPP5dZXS8m6qqWWKRzXNIATDHlp5K1VHV0GMQB8b2Hboo9fg7Wi7W2HRdjFsRyL9THkwyx+Sppa3uzu5WlPXseLEqlqqGSM+EFR4zIw9RZWxUnyUKdmubNGbeJSIg1/VZOOreLXKmw4lot4lXLHF+5ElNo0vqrHdUTsMa8X12VNHjAHLlJZjUV/bVEtHBPyh+u0TTgpdxKkuwJx5m/oktxqK2z0b8ZZb2lT/AOI139E/zJBHAf8A97+iVDgsTSRI7XdNHGGfvpifGONLlOPScC+hPaky4p8OoabxhounJayONpDWNFuqzNRjDyALqDLiMrwQSQtEcEMXCRU5yl9l9XYqbFodZUs1T3r7l5URhfKTa5KkQ0UsnIsrO9IShzbETVBtpaEKeGSc9VZ0GEuLiXjZXVPQRxNvYfFQlljFW2WKn4KnDcJJdcjYrQMfh+EUxnq5GMaBfcrJ51z3hmVqF7nSNMpGwXmbtF7WcazDM6CGd0UNyNiq4Zu98COudrnbbT0GqhwiUOcbglvRebsyZsxnHKh0lXWyPaTsL8KnqppKh+uV5c48klMWVpBok0tXPDK2SOZ7XAg8r2V6Nebosay+KCWTvJI22cC7heLQCCt32OZtqMsZmhkEpbBI4CTfZThX2Kj2RmOla1/esbZruqytSAHLZ09dBjmDsqIdJaWAtIKyuJwlkhFlKTV8DoronmOYPb0V5OxtTRtlb7QVA7ZytMIqfEInnwlTg6FQ9Qkg6TyFosLkIsqWeHu36mbgqywwv2Nlc8qrkOTW0MuwBVpA5UFHKLDfdW9LJqCrdS8EkWLTslXTTDsl3VdUMdaQjvdIBSgQk/6MMI/kkl3ki1JcgG4pJKBN0klAqDJSHIEoiUwoIlNyFG51kzI9NIQHvACiSvJOyVO/omHHa6kkJsS9wA3KpsWqWsYd91Mr6ju4yVjsarSdXiV2NckbKrG6kEu8Sx2M1Nonm/CtcVn1Am6xuYqsMp5DqtstcqSFTOXdoVa6aq7u97FbHsAy8avEjiE0X7OKxBKwcsUuKZgFPG0uL3WC9KZCwRmXsrgOYGyyNFysE5WySRYY7Utc7QzYDZUxcPNFic5LueVDhL5JGtB5KiM12T6Yy1BeRwRZdNwWHvK1oI8I5WSyfRCOCM6dyN1vMGhLZtYG3VRlwhMtsVpoqmgc2VoI0+InovPfaBiDqDEZMPp3d4xx3+C7lnPFY8OwGokLrEt2XlzF6yWtxGaZ7i5xcVhzSZmzyaRGNrkg3HmiJshcdDsiKzR5OenYoI0QRoAMI0QRoACCCCAAggggAIIIIAAR3RIIAO6F0SCCLR6B9D33p+k+8gi9Dz3p+k+8gt2H2I6ut8SB6Yfut9X9lef16A9MP3W+r+yvP6zZvezHsfIwIIIKooAggggAiiRlEgAAoEgokQQAqG3fN+a10D9Ok9LLIQf6rPmtYwfsh8gjJ4O90nyNYtZ3CjwtIYpFYP2gRaDbZcjLL9j1WP2hN53T7Gg9U2YnAXsnoYHvFwqGyVgdH4tkb49QAS/V5W+aXHFL1CjYr5ER07R03QdAQdgpccbi6wF1I7kt9pqXc0TTRXPgc9o24SG0wOxNlbbMBAbuVGla8OGptroU2J9pXVELmWDHc8lSaHEKygsYHOv53Uh0BcL2TclObeEKSlYpKNUaLBM/YlROaJXF463K32CdouH1lmVDgxy4q+JwduEG62btuCpcMyyxL6PS9NiFJWNDqeVrr/FSCCF5ywjH8SwyQOZM4t8rrf5e7SI3aY6w2PBKolDngr9NnS3iySFX4fjdBXtDoZ2knpdWNri4ssuTGHbQEhwSiiO6yTtCYlBGUSzt2SQRRBG5EVGwASiugUVkmSQTikko3ApJBSsYSS7hKsicEDIc7b9FBlZsQVazNGlQZmpNE4OmUs8diQQqXEqZr43scLgrS1UdxdVVZGD0WLNiqXeae+1RwPtQykHh9VTx2I3NguQWlp53MeCLHqvXeN0EdREWPaCCN9lw/tCyTK+qMlFHsT0XpeldTjOKhMrywuPBisNtLe5Cu4Iw1gsqZmF1uFvHfRuAKt6KVskey7M5xb4YYINLkVMH6fAFb4Di0mHSMLxqHUKuTbwSVVOPcuDUjY4xQ0OYqN0kWlk1uFyPMWF1eG1Za6NzA07PC2VHiE1FK1zXEAdFoGVeHYzCY6uNoc4WuVHDN4X+xl2YKS4XJhMl9oGKYBUCGSV0kN+vRd8yX2hYXjlO1rpmiTqCVxXMeQGsY6qw92vVuWhYEVGKYTXiOPXG9rt7LoQrJ+2J0zkzwte89svjo6pl43NPyVVWYS15OkrkmRM/mLD44KuYl7RuSV0XCs4UFRYOmbuk+qZscu2SM0taL5iHNhc0TvC0lNPpZ2DxMIWmpK6iqxdkrSpXq0MzfDpK2Yup4pL92ZnrzT8GIcyQdCm/GDwVspcNb+4FHGFNJJLFrjt4JcpkfRl9ozDXPHmlGST4rQuwyMmwH9En9Fi+zVNbWJfYvSf8M8XS/FKibLJfY7LRswq49hPQYcwXs0fFRltYvPcHpS/hQU9O919TVLho9R3aruCljGq9kp7qWDd72hZZdSwx+y6Gs5KyFQ4eGkkt2VtDSsY29gqmvzLh1DGf2rT5rEZl7SIYGltNJqvzZYc/VlNduNGjHpX5Ol1dfBRQue97QB8VgM39ptFh1NIyCdrpCCLLkmZ8+V9Y1zGyuAPxXNsar6idxL5HG/xVWvHNm5n4LcmKGOJI7Qcz1mPV73yyOLSTYX4WQOq25uE9Jqe/a5KfioZpBdrCV3MSjiikYXBz5SIRCIhT5aGaMXLCFDe0tO4VqmpEJYmkCOKSS+hhdbmwSoi6N/UEEGy1nZVV0dPmNkddE18Ut27+ZCb7TcDdgWYpItGmOTxMPQ33UpMrSO4ejhndlbTfomtntIwANBK7HjNK2RneBoDTwV4ayljFTguLxVlO8jQ4FwHVe0shZgp81ZegrInAlrRrbdUSyPG/+iXba4KmqhDXEhMQvMcgI2Whxel1EuY38ln5oy1xuLLVCSkrRXTXk0VBOyaINNi5WuFytbOIZG2B6rHUMro5NQday1FLVRzwtdxIFXs32cAaOOn0S3afCrKnu0BUmF4g1zRHIbOCvYiC0WK4a3suKdM1ww90SZG/bdOawo0YunQF0MfUYy8kJ4JIkB3mla2+ai3IRhxK2RzwmuGUdsiQXt80NTfNM3HVEXtHVW96S4CmPFzfNJLm+aaL2+aDnDzSTsfItzh5pOoeaZlfa1k0X3U0A9I8dCmJHi6bklAFgVH13PKkkJsW43ddR6mUMad0J52sbyqLFa0Bhs5WJEPJHxyvYGEB26xeJVmom5UvEqrUXXcs1Xz3cQNyrVOEFyEYtshYjUEv0je6xGeH6afQHWcei2s0QZSyVEn4RsszhWCVWY8da4sLoGu3WXJsdzpGhx7UH2OZQNRWHFamLwRm4J6rq2OVQ/0ozZjRYBPinpsEw1lLAAwhvisstidYXuNilEqbsj1T9Uh32VllmlNRWt2uLqibJrfpv4idl0rIGEPETZpGWPKbdCNVQwmlpNQG7RsqkZ1noa18UjbMHW6tMxVcdLRlmoNBHK4rmXEzLUuZC+5vyqsk0kQnJRRqO0LOzsXiFLE+zRyueuP4xu48otRd7XtdUAsM5Wc/NlbDIF7DhER5I0FUuDPEMI0QRoGGEaII0ABBBBAAQQQQAEEEEABBBBAAQQQQB6A9Dz3p+k+8gh6HnvT9J95BbsPsR1Nf40D0w/db6v7K8/r0B6Yfut9X9lef1mze9mLY+RgQQQVRQBBBBABFEjKJABFCyNBAAgB75nzWsiH7MfILKQ/6zfmtZEC4NaPJLJ4O90kbrh4mkKRSRd5bZCeMNFypdFHZocOFxs3uPVY/aSW0gdFayegpAxlrJ2B4sApLeFnYmMR01zwpAo2adwAnIhuFJ7p5GwQBEoaJjJ76dlYPoYpTcCwR0sTgTqCmRjZKityZSYjhJJYYuByo7sOda1rlaKbhMQROdNuNk0iPezMTRzxP7vuyboGjc1uu/K2EtJCTctBKh1FCCLtF7dEw7mZj1ZxFyy6Yngt+Fad7mtZ3Yj3UN1GZCdkF0WjLzQkm/ko8oJNmixWmnw7SDdVs9GQ/YIRJtMjYfiNfQyNdHK7bpdbvLfaFOC2KtGw2uSsQ+leTwor2OjfYhNpMqlFHoTC8docQjDmStuel1Z3Fr3uF5zoMSnopA+OR23AutvlztAla5sNcduAVlzajkrRU4nVNQKF1BwzE6XEIBJC5vHmpYeL26rmTwSiKhZ3SSEpDosnKfICbFEl/mklT8jQkpLglkIrIodiLHyREJyyS/ZIaGJxsob23JU2XcKM5jt9kyUfJAnbcFVtRETfZXErTc3CiTR/BVSh3eS1GdrIjxbZUmJ0THsJ0By1tTFzcKrqoQCdlkyf8buJfDk5ZmDCIpdQfCAsPXYQ6lmcYmeE8rtuLULJGnbdZLEcM8Ru24XW0+otpRkXdqRzLQ5p8QISHdVrMVwtrmnQ3xLMVtHUU5/aMIHmvSa2eDVjUSFM4HYqNJUmEhzZC3SlTPDA4v28lncXr2NvZy2dkchnzzUFZpKXOVZA8Nb4mjkE8qpzFirMQmbN6sGPPNlkocQaJjd3VXFNUwyAG4Kujq+nyjj5M/qOmFFJOx923CtKXEK6LS5j37cptskW1gFKjqWMaA1gN+USj3+4IJR8Fxh+c6+mDQZ3tP/Na7BO0yqhIMkhcPiufl1LJGA9gBUZ9PG7Zj7Dosk9WMvouU/8Ao7jTdqsElg8Afmrel7RMOmADngFedm0jgPDOboCOujddsxVH4D+myX6/Z6YbnHDS27ZG/wA0ZzlQ9JGfzXmv1jErW9ZcEGzYkf8A805VvRn/APuDuxr6PSjs50gYSJGfzVTW57pW30zN+O64C+XEdNn1LrfNR3SvZfvZib/FRXTZt3bIuUfpHZ8R7RoImnRPuslivaDWVl2wSEgc7rnc09M3cvLj81CnxGOJpEZtdbcXTVdyKnn7eKNXiOY6yZpD5SPPdUVRjDQHB79RKztVXSSuAbdxUjDsJxKvcAxjtJ+C3LTw4+SPfPI+ByprmzGzOUVLhVbXPDmsIb52WtwTJToCJqrxX6LW0tBDBHpjjAUZ7CiqiacWq5P9jC0WUw0B0m58rKa7BWwN2ZZa8wHUbi3kmqiC7Cs35Dflm78SK8HPMQpXAnwbLO4jTNFyG2K6TWUm58PKzWMYdy4NWrDm5MOxq/wxtC98FU2SM6XNcCD+a69nulbmrs/psdiIkngZZ/n5LlNdCad1w3Yro3ZBXxTd/hNfIBT1DbMaeAQF1IzTVnGzYnBnKRdhLfxA7rrHYbn12AYiyiq5i2mebLA5ywiTCcbqIHDw6rt+SqKeQxSBw5BuFHPjWSFCx2ke+KWWHEMPjroHB8cguLKqxOjbu5o5XGOw3tMdG5mDYjJePhpJXfoe6njOmzmPF2EFZtfY9JrFMM+KXb3oyEkbozfhSqGqdG8G6nYlh5jcSN/gqmRhY7ZdaSTRlTtGnppmytD2mzgrnD8Ue2zHhYiiqzE4XKvqWZs7QWncLkbeoprhF+DI06Zt6SrZIBvurCN7SFiqWrfEQHdFeUeIRvbbULrzWxhyYZX9HVjPHJUXd2lE4AcKC2f4pXf25Krxbs4vyS/GT5RLITb9kw6p+KLvweSt8eruJRPV54HHOskOkKQ6ZnmmpJW22K0Q66vtFT02xUsl+qbdJYcqNNKB1UWaqAHtLZDreJlb05Et8lyd1HmqmMbuVWVFbp4cqqtrXEcq6PWcRF6kiyxGua1hIcspiNa97j4kqrqnOBuVWTPLjdKXW8a8DjpP7I1SHyHlRBTR6yXOu74p+uqWQQOcZA0dVQUdXVY5iAoqKJ2kGznqlbmTYlx4JvDHGTayjmxOQUVOCRezrBbvLmBU+X8LDnsaJCN1PwbDaXB8Oj7xrXTAblUWY8UdK5zWv28l1MGOlbM05WVOYK/vp32dss3VyeR5TtbMSXG6Yw2nfX1TY47k38lrTTKHwXOUcKfXV0bi0kA+S7Nh1NHR0LbbWG6qcnYVDh9Cx8jAH2UyuqXOGhpsAqM+VY/JOEG+TF9pmJPih7oH272N1yxznPuCbk9VsO0uZzq5jNVwFj2i3zWB5fUMO1+roNuwt5IwiCVso/RhAhdBESgjaDBRomowgO5BtSkQRoC7AgggkMCCCCAAggggAIIIIACCCCAPQHoee9P0n3kEPQ896fpPvILdh9iOpr/GgemH7rfV/ZXn9egPTD91vq/srz+s2b3sxbHyMCCCCqKAIIIIAIokZRIACCCCADh/1m/NbCi9ph+Cx8H+uz5rZUIu1nySyeD0PSUKqxeQDoplKPAAOExVgAqdhjA6MAjdcXN7j0ydRHoY3342U1jTbhPwwAN4TwjbdZ2VORFjic9wtdWUEJAtfdCGMN3CkQkF4TRFzYTGFt7pxg2uhLE5197X4SoYBps5ydFbmwrNPVLZpbeyDogPZN0QBToXcwzukkbbJRSA7fdSHY0IwZLuakvpw1+po2UlBRY+9lZWxm19NwmoaSOVty1XLdBGlzbhMuY3VZosEhqZUVWHxlhLdiFWT4cXNJLVqHQnyukPiDWHU1KiakYiSg032UGSB8cl/JbSpomvu5oVZU0ekWIU4yolSZCwjHq3D5AY3u09RddGyxnmCpAjrCGHoVzOooQ7duyhSR1FK7VG8hQyRUxOJ6NpKmCoYJIpQ4FPhwJsuF5WzRXYfJaWQuZ8V1TL2Z6XE4bOc1jx8Vzc2rfgi0aJEEljg8XBBS1glicCNCXbIgUbxdJaFBDQaTJ0S7JLwgmMSJtyelaTayZe0jlMaI0zCVHeywU0jzTUrbtQTTKqqZsVWVMWoK7nZccKBNHYnZZs2LuLIyoz1VDe9wqispAb7crT1MXOyrZ4uQQua1PHKzVCafkxOIYYHuJ4Wfr6JzCWuZqC6FWUwIOypa2k1EgtXV0t9p0y5nMsZwynkabt0HoLLmGaaI08jtIuCvQOJYUyVhBFj0WOxjKcVVqvu75L1ejvxvkxbWFzXB5+k1B5T1PUSxnYldHxTs/c7UYhYhZesyhiVO52mJzrL0cNvDNVZwJauWMvBEpsSdtqKtafEGFu7lSSYRiEROqBwsmDHVM20PFvgpduOXhg5zg6aNQ2tafxJxlWP3ll6WWVpd3gcPyT/fP5bq/koSxRJrM39GlbV2/EjNaR+JZj1qa9gHfyR97VvNmscfyUfToffJmkNbcX1BMvr+gkVKKPE5raYHkKXTZexeZw0QOb81BwX2x1L+EmetJb/qqtqK4k2DyVpaDJNfL/ANZBaFo8NyNQQOEkp1OHSyh+Rjx8NlscM5K6OZ0raupcWxxPdq+CucMyhX1cl5mmNq6rS4VRwABlO0W42UxsTWeywBZ8vUKdRNmLR7o2zH4Vkikp9MkzhI7ystHT0kFK0NhhaAp9ieAlCFx5CxT2nLyzbi1YwRFa25uT+SUWeQUwQfBLEFuipeazQoJFaWHqEhzARYq0dBtwo00BG4SWQmkU89OCTsqvEKEPYfCtIY/MKPUQXHCvxZaZXPGmcyxzCib2bss7TzVOHVQkbcOjN27rrFfQh7TdvKw+Z8IkaNTGG3Urq4M9vtOPua3NoXj9ZHmXCW1m3rUY8bVh3NLSQdiFOpZJaKosXFrTyPNKxURyu76NtgeV1ItJHElFp0T8q0veSieKQtkYb7L0V2Y5umjgZRVzibbNJXmbAKqSmrWOafBfddoy9V01TSNfGQ17QN7rlb8Oe5HS1O2cexnoYFlRTtfcHUNlUYhQEOJaFlcsZnMMLKeV9wdrlb2knjqoADbxDlT0N9v9ZlG30/0n3RMnURvjdaydo618Dhvt1VzX0Idqa0Xt1VFPTuY8i3C7ndGatHJm+TR0OIRyssTuVNZceNj1j6aZ0DiVcYfig1aZTYLLm1Vn4aHjnKMrNHBiD2izipTK0u/EqXXFKNTHBG3U3grz230aSf6nRx7hdurPigKsW3KpS5/R6S+V7W+1dcXJ0/Lj8o3Y88X5LiSsA6piWv6AqlfVEcqNLWbrM4S8UX9yfgupq3zcoM9aCPaVRPiDALF26gyVtzsSoxxSbHx/S1qKu4O6raipuCLqJLUOt1TcDZpn2DCfyV0dbI3wU5MkYjjnlxUWrmdHGQ1pLjwAraDBKuocA5ha3zV3DhNJRMb3gDz1XW1OnSk/2M2TZVcHNG5cxfHqthqGugpmnd1+VvsGocOwGkEMLGudbd9t09W1YZ4Y2BjRxZUldVucOV6bX1I4kkjl5MzkxeOYw++ljrhZusq2yAgu8RSq+ZouXOUBtNJVSN7oE34W9KLKrIsbXVFSYmAuJK6ZkbL0dHCKmdg1nexUPKmVg21RM2zjvutjMRDEIoxwqdnYx4IdzZbDE8ngXW1eloYw2Vc1z3Oc53Ft0HNkc4lw2TNXMIKKZ5NrNXlY70tnPwdWWGOPCv6cuzjU+sY3NZ12NOypuqkYlJ3tbK/zcoy7PYocHl9l90hTQjSQbIagUjL2SFdOUnV03R2unGMkeLNjJUlRKOOTfgQEd082iqegRmjqQLltwjgueu68DIKMIaS02IRpMztdvAEEEFEiBBBBAAQQQQAEEEEABBBBAHoD0PPen6T7yCHoee9P0n3kFuw+xHU1/jQPTD91vq/srz+vQHph+631f2V5+KzZV+7MWx8jAgUSCjRQGEaII1FgEUSMokgAggggBVML1DPmtnQizWfJY2k/6w35raUY2j+SWTwej6QP1bR3jb8FWFGAANKizBpljBVxHFG2Fpaem64ed/vR6N+0k08rXNtfdPFpuCVDpmHvNQ4VnIdUbdrWVRQJAvbdL73Q4NtukxP0uB5CU2QSPJa3hSSISJTSdIJSi+3JUczEiwHCdgGu9+ikVj7HB/BulFmyaIDNwUoy3AToYCLJBZdHrF7E7lOBpAv0KAsj6S0pdtrp1zLi6Zc/oojDYAdlHxDvGtHci5T0XN07oDkqAZo3u7kaxd3VPSBssRBG6Ix6UbNiigIWks8JCjVkcZbvsplQx5mBaLgoT0oka0HYoonGbRROo779FCraAubwtRNStijF1GMbHNIsmkWKVmKqaZ8e4TNJVVVNO18cjm2O481p66jIJNtlUVVLtcBOTTGbXJ+c2hzYK1+noCV0ajraeriEkUjXA/FedSx8T+SPir7AMyT4dI1rZHFnW5WXLgUlwFHc9QdsEALLPZdzJS4nAAXhsnVaFoOkO6FcrLrSgRDROF0Lo1lsY07ZNS72T0nKbcAiwI5CQRcWTsotaybTsaIsjd+FFniBHCsJG3TLmJ918E0ynni5BCr6mC99lfzxXHCgzQ87LNmxdyLIumZyoh5BCrZ6cXOy0tVTnyVbPAfJYPQlDlGuErM3WUoLbgKnmpASdlrZ4DvsoE1MN9lfj2ZQfJcpIyc9CCdwoc9BH/3IIWqnpbk2CiOpSNrLq6+8/wCjai/ox9ThFK/mBv8AJQZ8tYdIPFTtv8ltpaUX9lMvpR+6ulHqUl9lbwwflGBflHDnOv6uAiGTsMvcxgLeGlH7qQ6lHkro9Rk/sh+Nj/himZWwxp/6uCpbMvYbGBop2/yWoNMB+FD1Yfuqz89v7H+Pj/hQxYdDGP2cTW/klspiDu1v8ldGn+CHq/8AuqD3H/SSxQX0VgaS2xCAi3vZWYp7dEoQDyVMtm2WJRX0VoYfJLbHforFsA8ktsAvwqZZg/8AsVzYgDwnNDvJWDYB5JxsI8lW84FcIz5JXdu8lZdyPJLEI8lB7Ayq7on8KakgPkrvuR5JD4R5JrZHZQOpzfhNyU23CvTC2/CbkhbbhWw2qEZippb9FU4hhzZY3NLb3WwqKcE7BV9TTX6Lfg3ObITipKmcdzTgD4nGRjNlmIQY5e6l9ldyxPDmzxFjmXXOM1Zbkhc6VrSB8Au/rbcZ8M4u1qU7RSUeGiaRzouArjCKyqw+q0PJbGFnqCtkw6pDXE6b73WlNVT4rBZoDXAcq7Mm3f0ZsXbH/wC5q/8AaEOgYGnSbjcLr+R8aZU4bHHrubclebI5XUrhHKC4X2K61krG8JfSRxipEcjRwuPt4mv2gdLHOMlUjs0dQAzTIRbzS5KBs8XeMAIWD/2hbRSMEo7yJ34geFpsBxunqyHUFW13mwq3S6tPGlHIjlbfTl3OUPAmtou6FzwoGjcht1rmupKsftmhsnkotfg8jRqiIIPkvUYduGaCcHycjJGUOGiggnmgdcEq0psVa4BsqgVFNPAfHuFEeQTtsVNu0Uxj9mrhkp5Be4P5pzQx7T3ZAWRZNKzZrinYq+eInc7qDxQmv2RYpuJoH0Ze+znJRwqJw3O6pW4xL1unG4w/qVRLQwv/ANS5bMkTXYFE51yUuPAaYe04BQHY04fiQGMuP4lV/wCLxXdA9yRZHCKGMglwP5KS0UUDRoY3bqqGfE3vAsVHmrpHNsTZXw1McPCIS2JSNDPisbWlrbBVc1ZruS+6pJ6i2+q6iTV34WuJKuj2R8IqtlhiNW0EDUqarqPiiLKipkADSVc4Xl2oqGl00dm/NS7k2NJvwUNHSS10wboJbdbnL2X4YGCSRo+Cfw7DKaiHjsLKTLV3IZEdgudub0Nf7NWPVcvJZzTRQxNjjtdRAHuJLlGYX6rv2T7qynib4pAF4/d3su5P9fB19XXWHkW/bbzWezTKYqGQXHG6lYhjtPEw907WVlsUrxXMeJQd+AtXT8Ppcse3F5ImKlu6V1rkkpcdLM/ZrTdXcMFPECRHuUrXvZrbLuesji/+N7nbKluGvJs/YqQ3C2DkqeInu3KdEB+KredI14+lw+yHT0cUVyRdSGBouAwKSId+E+2lNr22UHsG7HpY4KqIBDr+HZGLhpDt7qVJER0UeUEdEo5m2WzwY68FRiEQDg5o26qErOu9gqs/EVrjyrPIdSgo5XQEaII1IwAQQQSEBBBBAMCCCCCNgQQQQNM9Aeh570/SfeQQ9Dz3p+k+8gt2H2I6uv8AGgemJ7rfV/ZXn1egvTE91vq/srz6qci/dmLY+RgQQCUqm6KAghcIFEotgAlC6IokgFIIgjQAuk/6w35ra0W7I/ksXSf67fmtpQ+yxLJ4PQ9JZIrNQljI4HKtaaT9i0OPKp8ScW6bK0wpzH041njhcLP8h6T/ANS1gDdIsU9USuEYa0XvymICACeieiLJJA2/zVZSLpoyWg+aktY1jTbkogGsNhwjupIrl5Cha4Fx03TrXO32shFwUTTe6kmRoW2RhNnGyN2nbSVGeDrBsnXh9m6QmIdbGXEG3yTwJB0u2TDHuDm7I2uJm3RYx5zha3VMhoLt0p/torIGHYBAvINgkt3KWxo5PKTFYmS5tqPPCEbbdUHvN7WumponFzXB1kUFj5JYQbXTUjpHOBDdkdzYA7owgYiUOfYFJELQOE6URNkEkyNUQtLbFVNTSckC6uZCCTumi3zUWTUjJ11MQ7dqgOgAJPC19XBHIOBdVNVRi52RHhliZU4fX1VHUB0bnAA+a6ZlLOQlY2CqdYcXK51NTDoN1GYZKaTUCQllqaphR6Ep545mCRjw5p4sU+FyHKOaXUcwZPISw+a6fhuJUtdEHwyh1xwuNm1e12iJNdukOCVqCJxBWNxa8gNvALbKO4EcqS5My2UQGjwmyNynTwmzymh2NPbdR5IrlSiQkPspNjUiuqILtOyrZoN+FfuAIsVGmguSlSaoujkZm56Ym+yg1FMd9lp5af4KJNTA9FnzaqkrRNZHZlZaZ1zsoslORyFqJKT4KFUUtjwskcU4F0MpmpId+E0+H4K8mpt+Ey6n+Ct75IuWRFI6H4JBgJ6K6dTjyTT4D0TWdosTTKk05RGnIVoYj5JJjtyFNbLJfqVZgPki7g+StO7v0Q7r4Ka2WRZVmA+SAgPkrLuj5IxD5p/kCsrmwHyShAfJWQi+CU2L4KL2hWV4gPknGwHyU/uvgnBF8FU9lsLK/wBXPklCA+Ss+6PkjdF8FW8zFZWdz5hNyQ/BWhj+CbfH8FD1pBZUuit0TUkYtwrOSMX4TEse3CvxZ2yaKmWP4KLLDc8K4dF8ExJFvwt8Mlcjoo5qYHoqvE8PjliLHsDgVqZIfgolRT6hay6OttdrIygpLk4xmzKurVJAz2fJYgmow+exuNJXoTEaC7XNLdisDmnKvrAdJCy5Xo9TfjJdsjkbOpzcTKUeJQVcQbKBqCcf3sD2ywSFoG4sVRYlQVOHS6XMc38kVDiz4XaZbuafNdOWKORd0Tmd7xyqRucKzlVUzWwVV3xcG6v6LFKd8ja3Bqww1H4o7rmrqqGpB7twF0wwSQS95G5zXDixWWejFrkthtS7ufB6Qy9neXwU+Ks0yDYPvyt9hmOxuaC2QSMd8eF5OwzNdTThrKlpfbgraYNm2ndG0sqjG89LrEsGbBK4+DROOLMj0mx1HWtubNcotZgUcu7T8rLkOG5wxGAtfcTRf8VrLVYR2nUjHCOR5id8RdbsfUZRf7I5uXSqVIv6vBammsWsLgVCnhmiHijO6u6LOeGVIDpXsffrdWcWIYNW3sWD810cXUMc1yY5604vgw8j5AP9MqO6Z5O7CF0KTDsNm9mRlimDl2jkNw9q0etF+GVvHJfRgzITy1GH/Arcvy1T9CCgMu0rd3loS9T/ALI9j/hiO8PQFACaTZrSVu4sGw5l7ualPpMJphqdIwInsY4RtsnHXm1aRiKbDKiov4CAFZ0OXbklzP5q2qMdwukBawNJ87qorc4RtBDHDT8FzsvVccFwjVj0XJWy4p8Kp6Zpc8NB6ITVzIwWROWNnzM6d1qdriTymm1WISngtB5XKz9Uz5VUVwa8WlGPLNHV1tzd8lgmxi0bWWjNz5qidDMSDJIXX6J6KJpFj4VzlrvK+7IzoQgokurxeUghzreSrX1M097vdZShSxkgl1/yTzYIxwFpx4seNUib5KoRvBvrP8k4IS/nf8ladww9EpsABuAru9fQVZWGl23agylaXbBWxjvtZCOnsbgKDyMdIhsphp9lONpm+SsWQXCcihGrhV9zYFd6pYg6U8yMFtrK4jijc2xCbfTNYdkWKykmpjYkBVtTDY7iy1MjWsbuFSYu5trtFvNacPkUvBl8XDWNAVQ3kq0xs3AKq2FdOPtPG9U+Vh9UaJGpHOAgggkICCCCAAggggVAQQQQRPQHoee9P0n3kEPQ896fpPvILdh9iOtrfEgemJ7rfV/ZXn1egvTE91vq/srz6qcj/ZmLZ+VgR3RIKpqymwyiQQUWARRIyiSANC6IlJ1jzTAfoz/0lgW1odgxYigN6uP5rb0Y3alk8HoOkjmJC+lT6GJ/q7DuAVBrWF0rDewHKuKWcdyyMNuAuDsP9z069hMhAZFa/KlQReHUouggg2sFYRuHd7KqJQxTGOJ23Tmhw5CKmkGoglSWBrlakUz8jDdQ4CcIACce0DhJKQhsmxFhdOOnbYCyKwRSMDQCevCaAXr8QNtkAbyXtsmY3nVYjZOjwkXSsYp3KHRESOiBTAJuzku5SA0ozcIFQb5GtG6QHNcbtN0mVpcW24ToY0NGnnqgdBsa117myN0bRw66JgI5SuU7AQlM0O8J5RgbJLGkPv0SC+SLVsc13hF00wkghwUqqcC5MMuy928pMkuWRZAS7YJqSO7TcJ+plcw30qJU1DiywG6g2XRIUsQLiAoVTCL281MiEmpxePkht3gJF0rLKKOohdG+7dla5dxyqw6paWuJZ13QqmNe42FlXSxFhNk3FSItHZcCzDR4hEP2oEluFdgi1weV5/pMQqaGYSROI333XT8mZljrou7nkAf0uubsa32iLNgSmpTslE+G4IITUjwWrmyxyj5IsRqTMsgB2SXvG+6iySEnZC8DfgkGQeaLW3zVFi2NU2HloncBdRIszUMvsOB/NaMetOatISlH7ZqLg9ULLOR5ioy4t7wAj4qZBjEEvsSApy15R8okm/otXx36JiWD4JptaHC4cP5pbKoHkiyj6ZK2MPg+CjSUoN7hWffwP/FukubH0KrlFfZJdxSS0IJ2CZfQADdqvixp4Tb4r32VUsMWSTaM6+iaeiYloi0XDVo3U297JD6W49lZ56TfKLFlaMu6nP7qakpj5LSSUdjctTT6YHoqHqTRNZTOGnI6Idx8FevpB+6kmkHkqnimmWLKik7j4IxD8Fc+qDyRerDyS7JkvURUCH4JQh+CtPVh5JTKYeSPTkL1CtbB8E8ynJ4CsW0w8k/BTgA3Cshib8i9UrRTE8NQdTH91XMVON9kp1OPJXegL1SgkpiOQo8kFui0M1Ne1gos1OPJQeD+ElkM/LEAeEzJG2yup6cEcKDLByqXjceSamVbo2pp0bbqwfELpoxi9k47ElwyxSsrpImlRpYRurOaO3CjPatmLLZIqKmAEbhV1VRMc0iy0Esd1Dni+C6OHO4sTimc/wAfwKGoY5rogT0NlzPMGVJoJHPiabfJd7qqcPvsqquwyKVha9o/kvR6vUJRSRh29WGSPg84SRS00haQ4EKRT17x4ZDcLqmYcoxVAJZGLrBYtlippHO0sJC7uLbhlXJwZ6U8fggulilHhdbzCac1zHAxEtt8VEmimgdZzSCETah4FitHaq4M/dKLplxS41iVKRomcGjnqrqDOLnhra2ISaeo2WQbUgmzkJSx24VcteM/KJ/k9vB0TDszUIJMVU6H4Ekq6o82zs/6vX3XHbC2zrJHfTMOz3fzVP4EbtE1upeUd8oM/wCJwmzqjWOniVtT9pVeB/q//EvN4ragcSO/mnGYlWM4ld/NS/El9MPzMb8o9JfrRrWcyf1Ru7UKuQW7zf8A4l5uGK1Z/wC1KkUkmIVkoZAJHOPldRetNfZOOxil9Hfpu0iqJLXTAE/7yrp87T1EoYapxJ4A3WLyzkDFsRtLWufEw+a6jl7JWEYaxpLe9l8ysWXAk7cjRGafhEGiZidfpkD36D5q/oMIa2zn3LuquI6UMaGtADRwAFIijA6LPUF9GhRvkitp2sAEbQ0/JPxxzW3O3yUoRjmyUSD4QN1FyX0S7RmKMG/h3TzIALlyegY8D2U6ymcTcqDaaH4I4YzqLIwxh4U5lIX7WtZHJQuYL2VLGRWRA8JzuD5J6Knc3cDlSI2OOzgkOyCIrdEvQfJTe73sj7rrZArIbQ8HjZOGzbeafDWo3NYeU7FYwL9E4dVt0sBo4RO4UkRbIdSdrKhxg2YVez7qgxu4YVpwvkf/AKmXxd3gaq2NT8WuQxQQLLqQ9p4/qXOVikEEEzmAQQQQAEEEEAwIIIII2BBBBAj0B6HnvT9J95BD0PPen6T7yC3YfYjra3xIHpie631f2V59XoL0xPdb6v7K8+qjL7mYtj5WBBBHZVlNBIIFBRYBFEjKJIAim9J8k4UnUE0A7QbVbD8VuaDct+SwtLvUMt5rc4UDpb8ksng9B0kkV21grPC7BoJF1W17TqBVlTNLYGnzXA2PeenXsNAxkcsfQJvuwy4BVa2qcAGtupcMjiAVVFlDHqZrhNc8KybpA+armSad1LZIHMBJViZVIfNncIi1Nh1+ClAuHKkQCeLC4TAqNyHDhPPIeRvayDwyws26TZJIZdNcXa3dORzuc3dqFmkX08IrC1wNlEBxr78JbvCLnhMFhPWyOJsgNncKSAkMIIuEzVv0AFGSWG3RG2zz4hdAApbyAl35J14DbX6prvTG4tDdjwlXcCCd7osA5g5oBtymtZHKfkaNIIN01c3FhdMBQLrJTTsUZeCBcWSQQeEC+xqQDWNSVKGaQbo3s18cprU5oc1wQSiMVcbXxXCqJ+beSuppWugI6hUsj9LztdVsuQgEWsmnDxXTr3aulkkhQLEyLK0l+q6aqbOj43Cmlgso1S0FulvKakSK2SIluq2yKlknpJBLE4iylEWAYQmp/B08Kla+xUbjKmbmvDaeqks7jda4ztkj7yN1wVxF5LXNlhNnBavLWZZA1sE5423VGbDHJHgi4m2kqPERdRpKjSDvuVDlq2PGtjgQVBqqwWvfgFcZYmp0Rl4MR2iV75K2KIG5BPVUba008DQL6jzum8z1ffYzISdmlUoqnvqSz8K+i9I1MctePcjz21OayOmaqkc2RokMhBd8Va005htolO/xWNilnZpaOFZwSTuYT5LqZOnYJKqKo7eWKqzZQYhOG+GS/wCafjxOsYepHzWKpaqqEhBvYK4hqnlo5usD6DhbstjvyXk00eNvG7wbqfTY9G8G5IssvC8kgvFgpT3QWb3Z36rHk/zmNytF8epNGogxmFzt3hT2YlTuH+oFiWRxP3ebEcJfq12khztviseb/NJcxLo9SX2bgVUZF9Y/mlNnYeCsEfXYhqhcbfNNjHsQpj+1abBcrP0XNDiJshuQlGzojiCPFZN90xx2WCbnVjXBst1a0WcKCWwMgaSuTk1M8HUkXQzwkzTSQDyTXdN8lFgxqkmHgnaQfinm1Mbj4XghZ5Q7fKNS7X4YvuWojAPJOCRpF7hDvW+apl2jGu4HklNhHklh7SbJQICq7kxchCEeSeihHkkteOE/GpxoiIMduAlMYDfUEs3PRAXHRWdyEIfE0jZRainuOFNKam9lV2u6xpspZoTfhQ5oPgrd43N1Hna0hVZZRb4LY2yklh3USaMtNwreojI3UORi588bu0aISpFVIL3uor2EFWU8dio0jNk8eRplqZBe26jyx3U17bJp7V08c+LHZWSxKHURauitahm3CiObutmLM0Oikq4DbYXVNXUMUwIcwfyWqqI/goc0LT0XXwbLRGUEznWL5ZppQ46QCeNlkMRys5jj3Y+S7FWUwPG6qKylb+6F1cO5JfZzs2mpvwcYqcEq4Sf2ZsoM1NNF7bCF12qo2OuC0EKrqsLprklgK6WPefhnPy9Na5Ry8h3kUmx6reVWCwSnU1gAbyov6AhlcGt5+S2R2E1ZiejJMxuknhP0lJPUyCOKNz3HyC6JgvZ5UV0ocGERjk2XTMs5IwzCWau5a+Q23KrybUYiWm0+TlWT+zTEsVkElSwwQi253uuxZdyVhmDRNDI2yP6khaSkh7ptmxho8gpbI9WywZNxs24taKIsUQsGgAAcWCkMgAduNk96u4EWClw0znDcLDkyuRrjCKGGwx28LLFONpzyApncBoBIUqCIObsFR3DfBWx0zybWUqOiDdy1TRGW7gJ6DxixS7iNkJjADaykMjGm9kJWaX7BO6h3drI7gsS4aWF4Gw5TYd3zDbdPiVrY9DhsUkOjAs3ZJsLGjES0Diycp4mtJLilPNgCeqSHtHVILEPuHuNtuiQZN7Ap5z4yLEpl7LG44QIWWXA0pmRtza9iE/G9o5KYe3VPcnZCCxvYG10iWQgWCkTQhviabqOyMOJJUkMiuedyVSY067Cr6paOGrO4weWrVh8j/wDVmaxQ+FqgKbim4HwUELqQ9p4/qHysWgggmcq+QIIIIGmBBBBAwIIIIFQEEEEET0B6HnvT9J95BD0PPen6T7yC3YfYjra3xIL0xPdb6z7K8/XXoH0xfdX6z7C8+hUZfczHsfIw0d0SCpbKAyiQQSAIokC6yS94A3NlJRY1FsM7cpuyZmraaPZ0oBTQxGjJt3wujtZJY2yxo/8ArDfmt1hXss+SwVBLG+Zpa8EXW6wqVulu/RQyJ0d/pcaZOxHZm3Kfop7wAOKg4rJ4dimaeoDIvE5cDPFuZ6PupUXbKhjH7qQa4DhZqStZ0cLpr9JFvLlGONlTaNRLWPLRZPwVRcwAutZY5mNjVpcVIjxYkXDtlbHGyttM2UNQWn2lMirGkEOKxNNi7Hu0691Yw1zb7lOSoFRpZLOOppTkchLdwqilqu8ka1p2Vsx7baLKqwHNtBRt9kJFhfZKbwgVCwLpzQ617Jkh5ILR806x7j4VJCCIB/JENJvbonJGjTt+aZjb7RJtZAD0egg6h8k3LqHsb3S2HW3YcIiQOUUAiIOAdq6oEuafCLpbTfhApgIu53tCyOLkpXRJj2cb9UADU4SfBG4MJO/KI8lJBF0DRGqIyBZo5VU+PTIdYsr51nOF+igVkIL7gKDRamisfpHCTa/Cmmmc7drbpBppB+FRrkmpIjOabJqKBxk1OGyl+ryE8JBiLdQc6xSaJqSINXG0PuFCluDpkGxVoYje53vwleqa2ElvyUe2yVlAYnNddvCJ4dF427FWM9K6N3Gyizsc5lrKcX2qheSRh2KzssHm4+al1lVqgdKDtZUXdOafJOmqPcmEjYhOGtGcu5lOW64MXiEpkxKd173KgNcRK4hWOIUcsVVI+12kqt0OMhsF7TpyjHCkjze1GXqNlxRyB7W35VnHJazRwqigY4AXCvaCJrnDV+S6Xjkx+STSsYTdW1FA15ACKkomuaCArvDKAbFVuVjUR2mwxkrACbEJ79AOLgWbqzo6R7T8FbU8DxbZHqVwS7TPfoKZoHgQqMOljisxtytc1htuEr1cO5ao99sKMZDSyhml7Cmp8Pic13eNt5bLceosP4VGr8NaYibAJ1B+SSbXg5Zi+F0jT4gBdUL8KhMhLJiLLoOMYa1z7eSoZ8Ic5/7MXVWTXw5FyicMsolBHSTRbxVTgrSjkxmOxY8uapD8ErGt1MjuB8Va4bBM2ANczcLl5ui4MjNMdzIhmmxPFG272Mkdd1YwYuCCZLtKNkTr+Jht8k46jjezZv8ARczL/l8cn+rNUOpyiqYqLGKYuP7Tj4KXFilM8bSjZUkmHwud4xZM1OGwNZ4JCw/81zsn+Wkn+poj1JNcmnZXROO0gKmxVcen2wubSwVcMn7GY2PKdZU4lA24kLr8rFl/zW1DleDRDdxyXLOjisj/AHkptS158JXNDj2I0/F3XTlHmqpEv7Zpsufl6Rs4/ouWzif2dLD79UUm7FlqDMtNJbU+3zVtFjFDIz/WaseTTzpeCUc0G+GPS3F7BRHElxunTiFLbadqjvqYnu2laVhlr5Y80aYO/DEz202KgvaN1JqHb3uLfNRpXNA55VdTflGhUvsiTgHooz2jyUySxTD2+SgsfNli8EF7QeiZe23RSpBumJBur0NESoaNKhuaLlWM7bhRJI3XWzE+A70QZ2hQ527KyniKhzxmy2YpuwuyqnHiUCrhB3CtZ2WduFCqW2XTwyZTJsop4BcqtqoQNleTROPCFJhElTMNTTZdGDa5KpTbM3T4XLVO0RtJuVr8CylHG1ks7BcLSYVhcNJELRgu81aRx3K0PI0jNIapKaKGIMiaG+e3Kkx0w1Czf6p6GA8kbKU2M7aenKzyyd32R7RDKfwjZPwU3i4T0TAbXVjSxx6Tc7qu0KqGoILW8N1MMQZHqc0BCHSH7nZPSvjeNN9lBsiRZGMfGLdeE/SwaY9wknQ0WvsOE0amxIB2UQJJ7t1wDuEkaYzclR2yC+x3KjVtTYaWk3RYyXLK1pvyCkGVruFEic+Rm44RSShhsSkKiS9wOyMA2uo8LtZuOFIfcR7JhQ0+VxNvJE15J3TTHEvN0pxs5AUPHkFKkd4ABym9QI5Tb3kcFSQUKGu5TkW4OpMNl33TrXi10gocJJFiocz3RmwUnUE1UgObdNMZE5uVnsa/1loBss9jbrTLVh8ib4M1iZs4hQQpuKe2CoK6sPaeR6h8rF3QRIwmcl+Q0EEEDXkCCCCCTAggEaCNhWQsjQQI9Aeh770/SfeQQ9D73p+k+8gt2H2I62t8SC9MT3W+r+yvPtl6C9MT3W+r+yvPqzZX+7Mex8jAgggqigK6IuFroWJVTjdYaVlm8lThFtlkIORIrsQhp2m7hdZTG8zEWZC6/mqnFq+eV5FyqN2ovJdutkcao3QxIlVWJVM7y4ykJltZO0370lMkJJCl2ItWJF3hGYqmjqm63ksJ3XaMnY1DiNICyQFwC8+6Q47rS5LxOXD6u3elrFXkx8GzVl6bOtZmxd8Dg1r1WQ48TFvJusnmzHO+0GHxHrustNjc7WWaCCudLS7nZ0ZbKZ0qoxwh20n9VDqMyNjadUoH5rmM+K1kl+R+agzTVkuznOsnHQoolsnSjnCmY4kzXKSzP7I3Wa+4XLjDNfkozTOte5Vn4SRU9hnXaDPdJJONc2krbYTmOmrQ1sczXH5rzdFTOBuHEFWeF4hXYdK2SOZxsVVl0YtDjs8nqzBqwNJLnAEcb8rT0NQ2UA6rlcEyTmR+KxNifLaUfFdYy/K+On8bru6LlZcHY6RuxTUjX943Va6ea4W2VLDOX2N91aU4c5lys5ofgVPMYxc8J6kla+Mvbum2Br7sIvdO6RG3SBZSXgrYVnyO24SnQ6WHxbpcVg3lHIQQgQyZHBrWgfNGQXDZJtuikk0W+KAHGeHnqlOIAvdRz3j7Fo4TrYTKLuNtKACMjB1QEjCdigY28eSGhoF0wDta5PVFGxziSBwktcT8k7E7ST8UAE1vi3RzNaG7C5KcfpI8J3SWgblx+SQckaNxZqDmWRxkOJDgAnZXattKZ7kl2xsigHG07b3Ci1VI0lxdtfhTSx7Ggg3TRIebO6JdpOLZEbRxMiD3fkmHse4+BvhVgd2ua7jom7Nayyi1RNMrKiG7SSN1XyQAXKuagWBJ4Ve+MOdqvskTTKmriOnUFXyN34V7VOa4abbBV74he9lbCXaSfJUVkIfHpeOVQVtA+F2pou1a+pY0loOx6KLNDG5pYRcrr6W44umc7b1+7wZ2lIFgTutHhUYdZUGIUklPJ3jG3YOfgp2C4rTF4j74Bw6Feihsxmjiy13HybughaGgK+w6DcLM4XWQvsA8FaiilsGlpU+5EO2jQUkLQAFZRRtA4VdQuLgCVZxgmyrkyXaL7oeScbCEoMcQNk8NQHCrYu0QIQEzXwB0RAT73kdEQIcLOQpMfaY3EaB4kJtcFVgpXMcbtWvxXuWEanAKlnY10jNBBB8kd7DtIMLCWubp5V1hFHCYjqZv8lIw2hif7XK0FDhzNJ0AI7mOijOHwuG0YTE+HQuFrWWsNEGN8QUGemYHcKSm0J9pj6nB43AkGx+Sp67CHAjcrfzUgcPCFBqcPfbduyfe27Id8Uc/qMGm7suZvZUr454JHNeDZdBxGlfE27f5LN1b2F7hIy1vgrO5y8kXy7M5UzxhhJZ81XOrKdh8UV78K3xXQ8AMb801T0tM9ga5u/yT9KD8okm19kOCqpnjaOyccabnvCPzVlBg0Dz4TuellLZl6NxsVVLTwS8onHJNeGUzIi5uqOU2+abeKlrxonIV5LgM7Ae6BLVVVOEVbX3sVll0rXl9F0dvLH7FxvxEN8D+889+E3NW4nFb9lq/NJe2qpWWYC6/Ki+tVrQ68RKwZP8AN685WaY9QlXLFVGN10bf2lOfyKr5M1ujfaSFwSZ8VljJEkYF1Clrqad37Rjbj4LHP/L4b4L4dVaVFtFmiilFnOMZ+SmQ4pSTezO38ys6W0sjbd2Leag1mF0TyHRyOa74Ern5/wDLc3E1Q6wkuTbGohd7MjT8ikuIdwQsCaWupwTTVpaPK10UWJ43Tv8AHL3rfK1lin0HLDhGzH1TFJWzczcWUSZtws5/tS6Nt6inLT80UebKKd+gu0H4qhdOzY3yjVDdxT8FtMy5N1Bliu6ykR1LKgAwu1BTaal1HU4K7DilF8kp5ItWisp6APeC4K9poI2NGlgBTzKVotYKZHTgDcLorhGbvsRDECLnlPsjAcnO7DWXCVC3Vv0Vc5MQ8y2lOM02N0gMKegZe91TyJhRjxbcKWx1m7Jvu9HTlKaNii2QEy1GggX5S+9LoiRz0TWhridXPRKY02sExNDrH3i8XPVND2il2LQdW102TYoELaHF408dUiqjdqDmtv5pLneRSe8IIBKixhucS23FlFcWteNZupkgGgEJnQLEvHyQAuN+keFG+Z1tkywAE2N0iWWwsOVJAG6TTd102+oGnVdRXzE3BOyrKmrs/Tq2V2PG5EZSSRbmsAFw5NPxEN5csTjOYoKJxBmAI+KzFb2gQhxaJQtUdVtGd7KR1lmKRudYlTYa6O12m64jS55idLvIFfYfnCKQgGRKeo0EdmLZ1Vla17k86djm2usHRZjp3/8AaBWMeMRyezIP5rO8LRpU0zSPsByszjLg6oIHRWNPXtlIBeLKrxgtErnDqtOGNCm+ChxSwLVBT9c8vk+CjhdKHg8l1D5WLQCCCDkvyGjRBGga8gQQQQSAEaII0CoCCCCCJ6A9D73p+k+8gh6H3vT9J95BbsPsR1tb4kJ9MT3W+s+yvP116B9MX3V+s+wvPiy5vezHsfIxV0RKJA8KCKRUdrqkzFAXlxtsrlt9WyZxRoMJNlqxm3AjndfTaSbhU9RHZ2wWwxGFridrLP1sTWkrRZsoqC0noiLCeE9IAHGyIIsaGCxw5Cep3Oa7fZLAB52S2sYeE3K1RIN00j9ibjzRiKN4ueUegJTGkcquiNMT6vEh6vH5J3hC4TChk07PIJEkDR0UjUPNNyubblMZEka1qbdYhKqXtJ2KZ1t80PkVc2WGAV8uG4jHIx5a2+69E5RxQVWHQS3vcbrzDUvNhpPVdu7Ja50+Dxxk3IXM28SSs2a83Z2GiILr9FfUsjDGG33Wcw5zXM8lYwF4IIXAl5OsvBawA97foE9O4XBUWCQkcbp4teRchCE0KBaRu6yPY8G6Zabut1TrQRymKhQaXcIhGHmx5HCDpAwWPVIjMhfqtsgTHG6oyW22KKQlliw3vykmSzjrNk6wB4uOE6AS03F0UlyLBKcA21+qU0C3iToBlosENNzzZSNMfwQtGEUAmOJzBc9UmSxPPCN+pxtewShE0db3SFYktcWg22TU4IA3snHF4dpA26IntNhrFvJAWNMc42F7pxzLWsNyisARZOSvbovfcIJoZGkuLSdwk1EdgLINAduTYlHI0hu5SZKyDNHrFnHZV88ZZsw3CuWxXBJ/JQqqMbgKDJplQW6jZwSXQkgloupjobG7glCzRYC90FkSmlj1C9twkNa0MNxuVcTQAtvpsq+aItPCFNpk+1MqqmDTfbUHchc+z1l/EqdpxLCnEubuWgrpszNTTfhVwIYXskGqN21l0NbbcXyzLsa6kjjWD9p+IYVKIq6JzS02dcrpOXO2LDJQzvJwL+azfaL2fQYnE+toYw2Qbho6riGIUFXh9Q+CojdG5hXexbEZxs42TWlFntzL/aTg9UzarYPzWzwnNuHVAuKlh/NfPCgxbEKFxMFQ9t+d1fUOfccoyNFU8/mru6yrto+ilBjdDODplYbc7qwir6V/D2fzXgDDu1/HKcC8rj+auaft2xqNtrO/8yO4Xae28SxfD4WEukZtzusFmftIwTCo3PNSwEX6ryRjnbHmLEAWskdG08+LlYbFMaxLE5C+pq3m/S6O4aid8z/27SSSFmGO1WPQqT2Y9swraxsGKv0G+1yvNDi6+5JSqeaWCUSROLXA3BCLH2H0jyvjFJiULHwSNcHDaxWuo36AR1Xgvsq7X8Qy/UxQ1chMV7Ekr1t2edouC5kpGOjqmCWwuCeUWRcTokklxuoUrS47BS4tEjGvaQQ7ixTzIPgnZGkU0zJGbgKM+V42IWklpvDctsFW1UMVzuAVJMhSKCuYJW+ys7X0DXu2YFr6yJjGnxBUtU9jb+IWVqYu1GRqcMBd7CZGHhjvZWncBIbtsQkiAF24VlkaIOFYaJJBcWVtLhhidcC6egYI7FvKvqen76mDnBRcmFGTkhIFtKhVdJZurStdLRNdJYBQ8TowyOwG6EwoxU1O25BaCquriYNQDAFrRh88ku0dwqvHaEw7hvKkpsjwc7xuAOeAG8KlbSDVdzbrWYlTOLyS1VErA0kWVipiaIfdR6LNFioVQyZh52ViGnUo+IbNGyk1aoi0Vkk4jB2IKiunvclOytDnbqO+lkneGxgqucscI/sThGUvBHke2R+gt1XU2gyt624Tvi0hvG6tcFwE3EkoWmipzG1rW7ALz+3txtqK4Ovqa0qTbK3CcOZT+BjbW5V1HGGDhLa0ADw2T8ceoXsuHPJ3M7EY9qoZjIDgpgIsijhBde3CnQwMI3Ue9+BkJ2p7bMF1KpoCI9xunxCwOGlSBEbCwUWwshmI/JLgjLSd1L7onogYyOAokW7Eu3ASQNrJxsbj0QdG4G1kqoVjBaeRwn6ZvgcT+SkUlOS7S8WB4TlRTmM6WhMTZVz3J3NgE3oOnUDcJ+qY7cW3RQRu0abJNiIpe29uqWxjHAl5t5J8whj/AGbkoVIFmi1kiSIz7N4NwmZnF1t7AJ58bn7NCV3H7MgjdCQDLA0MuDdRZXC5upr2aI1V1ztDCSVYkBAxCo0NOkrD5tx1lBTPc+XS7or3FK3u2yvPAC4dnnFH4hiL2h50MPC7GpiTVmDYy0VmO41VYnUuIlcGg/zVc1krvxE/mlRsAFwn4RyurGCSOTObciPolj8QJupVDidRC8B5OyUW34SfVg8puCYRk0zQUOOy3Gl5/mr6jx6bSPGf5rAugezdhT1JVzROs+5Cyy1U+TZDYaOq4NmR7ZgHP2WlmxFtTACHXuuOUtdZ4INitlgNa6aLTdUPX7XwaPyVRoJXajdIBCbaXHy/mj1sHLh/NWxgzh7cXkm5IduEe3mmRIz94fzSg9p6XSaaOZLE0x0I0kWA9myMIpke1oNBCyFkgAEaII0CbAggggiegPQ+96fpPvIIeh970/SfeQW7D7EdbW+JCfTF91vrPsLz7ZegvTE91vrPsLz7dZs3vZj2PkYXVESOEHm/h80ViLN5VaKoxbY/SgOdZKxSECE7JzDI9bztxymsfm0N09FrxnSxQpGQxVoYSsviBu4rRYpJqJ3WbrSLndXI0UVkps5ExwHKKoPiCZLgOU6DwSg4HqnIyAoQkb0KW2a3KQWTC63CSZbclRnTtHVMS1A2sUgJ5m+KQ6cb7qudUfFJM1+CnQFh34801LOLcqF3jkQcTygBckhJPkkC54RHdJcS0XQAp4Oldm7Go5GYa0uHK43RQSV1XFAwE6z0Xojs9w0UGEQxOb4gN1zt2a7aNmvB+TeYe42ACv6S2jdUlAwBoV3QtvyvPS8nVj4J1OWgEu28ksyOJsOEglps1vRKLHBt7bIQMVYB7SPzTxsSSmAbhPRkbpiEPDS4ak6SxrQAdymZd3CyVoD282IQRYUkOsXJ2TsOhjA0OueqjP7xhsNwUuJwHPJUgHJ3AvYBynSxxaNk1pGtrj0Tge4uNuEwE9bJ0NFt9k3O7SBpF78pMILiTf8AJADhYHeybW5RMba+90bw51rCwCDQ1oIBuSosVBahqG6cldG5gBKYsb36JEjb2N7WQMJzhewKS4En4IGS22lFpDjcOTJISdQdsNgniDJDcdEh58JaR8kiTU2IAG11FsLHrNEXxUR4YSbqXTsAi8R5TUsQuoMknyVczHF2w2TJY4G5CtXRXSXUzXN3NkE0yBqaW2UaeIOvspzqdjSbG6bc1vRRZNTKaoiIu22yhimaHEEbK9njBBUCZgBNkqaZcpJrkqJ4ywkX8PksZnTJtFjsD3RhrJiOQFvpaUyNJJsAoD6Z0J1je614M8oOyvLCMlR5ezRlqvwSpMc0LtF9neaoSN7L1fjeA0eM0746mJtyNjZcSzz2eV+FyPqKaMvhve4XdwbSmuTkZtZp8HPhbyR+E9LJUsT4nlkjS1w5SWi612Zu3+ihbqLpQt0FkAEpKySgEd0VkoBHZLuZLtGjsb9Ve5azTimBVLZqWoe2x4BVMW3SdKfcRcD032b+kZLRhlPipOlthqJXd8u9t+V8RhY41jGlw6r52nYbDdOU9bVwbR1D2D4FNMqljPpbUdouBSxao66ItI/eWdxPtHwWO5FVG7/xLwGzMWMRt0tr5bfMpD8cxV/tVkh/NSUqIeke08d7V8Ijaf8ApDf5rBYv2w0AeQ2YEX815hkrKyXeSqefzUeZ0j2/6hP5qayIXps9gZL7UMLxGXujUNBHmV0/DquKsaJIXtcD5FfPXDq6roJWywSOaR8V1Xs87Y8QwZ4jrHOczbclT9Ug8bPa2G0jpXDwrUQUzY6bQbA2XBMmduODVbGa52McebldCpu0DCq2LWyrjO3mk5kexmpki7uUuNkn1Xv36i3w+ayNVnCivds7f5o/9vadtPobI2/zU4uyNGrqqemgZdpF+qx2NMbNK4NsQq+qzaJyQZhY/FCgxCGckukHx3ViaQqKzEqBvcnZYyvpdMpAW7xzE6OCndeVq5zXYxHJVu0kEXU/VSGoNiCwtO4UWtaxwAJUp9UHts1vKYipHPl1O3HRU5tuGOPHkux6rm+fBXsonyPu1twrigw1rSHaN1MpqYbWCtaaCzeF5za6hLI2jrYNOEFZHjgcGgNald08dFPbGb2AT3q0hFw1cmc2zfH9fBXxRPJtZWFPTki1k5DA4G7m2U2na0A356KKJOdjVPRua8FzfCk1Mb2yWiFwp8Jc7U0j5JD2hrjr2PRMg2RYoJRu5qlCOQgaRdE28l97WSmjQ8HVsnRGxMYcSQRayPm46pb3an+AJfdHkBH2Kxtji3YDlLLWtIde58kRY6/CMtJttwlQWSGSOez2bEcJUZkLwXNSYtglOJHCKI9wVVA2U3aBdV4Y6KUhwsprnvLxpGw5Tc7b3J5SGnyRni7rqLOHE3I2TrpCySx/JKk8TOOVFk0R4y5ouG3uie97zYN4TxadAUchzXX6IToZFrJCwWPKpcSkc+MgKyrXl7yqyoHKvx8sTZgs51D6bDpieSFxGqcZKl7nb3O67X2lD/7Nkt1C4dMdMjvmu/qKkcfb8jkfJA4CeisL3UUSJ2J4de5W9+TAiRccJ6HlRNQvypVM5ruDwnQEkRX5CM0wcL23S2yMta6ea4KRJENsLmu4Vth+IyUjfCmWtDkZjZZQcUyViq7MWIFx7okBVFRj+Kl3+qQpc0Td1X1ELb8I7ERasVHj+KtdfvnFW+G5rrg4Nlfss49gBSGBwfcJPGmQ9NM6thOONqmWfJurqCTWL3XKsLq3ROBBst1gFcZWC5Vc8aSKc2ClaNFdC6ba4OSrLI1TOXLhi0EQRpEQIIIIA9Aeh970/SfeQQ9D73p+k+8gt2H2I62t8SG/TI2blY9B639hee3OAsCDcr0L6YwsMrPPDfXL/wD8C5p2VZUdjuItq6iK8LTfdYN7OsVsoeF5M7X0Z6iy3jFYwPgpHOa7cFKxGhGFxthkANS78K9DZh/RuA5dldHCxrw2wXnCprH4jjk1VMSGNd4Vi6ds5NlvuXB0JaUcSTHqRpggdM8aXO5Cy+O1ZfI4X2Vzi2INERa07dFi8RqC95sV3YLgTVcFfXyOc42VHWF1zdXMhJvdVtWzU0qwkU0t7piQgWUqoYb7BRZQUrExpx+KGs2RORBIQHPKRclKOyQXBNAAoA2RFwRtBe7S0ElO0H2DUL2SidIuVNpcFr6lw0RkfkryhyXiFQ9vftIAVM80Yuiag2ZNz9RAbclTcNwutxCYRRQuIJ32XUcE7OaO7XzOGodLLf4HliiowO5gaSOqz5NtR8GnFrd3kwmRMjNoHsqqlvjO4BC6rhtMW6fDYBTWYbqa0lgAHCsaKBoOkjhcbY2HkZ0ceJY1QugjFhcK6pY2gbhR6aAAg2UxpttwsdFzYHBrX36KQHB8ZDTcppoDuE7EAy/S6ZEQxhA8QSwLJZN+N0LbHZADR3O6IuLULEHdAv8AIXToVCmOcfw3S2tJ9ptvJIDnO9kWslRPJJB5TEEbi9+EuMgBCUHuybIoHWZsLosA3vjBGo/0SmvY0XB2Sm6XglzRsmnyWY7woHQ82Rhbymid0hjw9gsOEpIdC2m4KbcwucLJOvxC3HVSJC0Ram7u6IFQw+zTpeLFDSBwmiJXuBcFIYwkbosY09pLhbgJTma27dEt4089UQsfxWSqwExgtFiil4CMQOJvdB8Tmt80qAZLNXBTM7S0galJZ5JMjNRRQ0xpkTSLA7lR5Ygx9ip+mxaR05TMrO8l23SolZXVMdm3AUEM1ONwr2djQA08qN6i86nNalQ1Iq5YSBa2xVfLE4S6SLtWg9WkbcObsmTSaidk2rJRfJnamEt3bwq6shE8ZilaHMPIIWorKaws0KqqqV9iS1SxzcFSLm1JcnJs6dndPWNknoWgS8gDquSYvgVdhc7mVMLm2PkvU7mhm7m3I4VLjeB0OLtd6zG0H5Lq6+5xTMGbWt2jzCWlpsQUGgu4C7FX5Ap4akkNux58uFa4T2V4VWs1GQA+Vl0oTU1wZXBx8nDAw9Uos+C9Ds7DaGdp0T6D02vdQMT7AaxkJfSTaz0FuVPtZDuRwYAeSS4Lf5l7Lsy4PF3r6J5YL7jdYiqpKiB+maJzD8QhKiSaIuyTYdUp4sbFJCLHSDsENIQCUB5o8hXAnSENIThZskdUnZBpBaUWoAEEJyybkamiDSBHM+JwdHI4EcWKuaHNuN0g0xVkgHldUdrIjsVYmRaRtIO0fG4m2fK535p0dpuLfvO/msJp1JLmEGxU1OiiWOzoMfalijXblx/NWNL2v4nELAu/mub4bh1TXziKCJznE+S6RlPssrqmRs2I/s4uRccqM8yS5FDA5MJvaFmDGqhsEUMjtR2sV0HLGE4hJAKivu0ncBXGA5TwnBYP+jwsfJ1NlclnBa7QeosuVn3XF8HRw6d+SNFTMFgBwp0cAFrBLpo3uIDgrSCkJA2XLy7M8jtnShijCNDFLBvwrSCHw8JdPSEb2Uox6QFmfImNx0xuDZSxEA1NulLWiyQ2Vz72UATJHdtSgxoTMb/Mp1zwmmDY4wNDwQmasFz9k5EQSiePEVOyIzC0i9wn4yByEGu09LoE6nDaydgHKNwQLIRGS52SyNglRAi90Ii2Cx8rJLuqdKQ4bpsViSUrV4UTWuPASTcCxSAEbgHG6U+zo3E9E0wePfhPSgNiJURx8lJKXGc+QTrn3aLdOU2QXSuskkkO0hJliEzOc7Zp4TI7wX1cKQ8Acc9UGtBadSQytqGi6rK5rw0kBXdQwE+FRZYwW6XBW4nyKjnGcaZ9VhszdN3AbBcIxelnpqp4lYW7r07i9A2QkHhc8zhlFta1742bjrZdvWzqJztnC5eDjIcOhSw7SpmMYNU4dOWFjufJQCSPaFl0oZFJnMcGmOsfflONn0eyouoDqiLxdWkGifDUlxuSp0VSCNiqISWT9PNzugaZfRVPxTnf34Kp4phvupEchskOyaXk8pio3TfenzRF+rlMVjMo3RAbpx4BSoWt1bphYcQcAtjlJztA1KgpIWvsAtXgVM6NrbDZKa4Jt90TSweynhuo8OwUhq581ycPMv2FcIIFEFAqDQQRhAHf/Q+96fpPvII/Q/8Aej6T7yC3YfYjra3xIc9LWmfV1uUadv4zV3//AIFY9n2FxYNgDA2Md65u6se32lZUYvld77fszU2Hz7r/ANk9S+GhaALAN2XkP9HnlGfajp6WJSnZzHtsxd7MPNM1xaXcLjjZu5oRtdz+Stv22VoOINic7qVzOsrGiPRq4XW6DBRwWx7c7nRCxmrAJa11wqR8mpOV8pc8qIHgBdyKoyNi3nwqFKAbp+WTayiSSWTsZCqWDWbKHLER0U2U3ddNkXO6BEEU5PRNywub0Vs2NqKSIEbJAyhkBvwmn7cq4mpL9FXVdG93CCJEkdZtwtbkmjpp3NlqC381k/VJOLEp+CatprCG4AVckx2dyw6ClZtHGwjoVeUkLDY6QuE0OYcXgIs51gtbl3O9f6yyKo9knqsWbC27NWGaqjsNJA3U0E2vwriKEwaSDe6pcEq21kEU4IOy0kehzG6juuZmi0dLE0vBMpJe8GkqfFAB4mhQKNgBuFbQGzbFYi5ysegG3ySndUIdrozs1DEENYtpG3VTIixzfEd1HZ7ATsQ5RYD1m/hSHuAO5SXu0i3mksBuTILeSLAKVveWseElgMV773TwAI2ROAcCpDEMk1mzR8086MgX4KjxNcJvAL+alymw32QRaA1x7pzSNykR3t4gAmzKDs25Sdbul0mxolNIAI6lNEsAc1x3PCZ1uDgSh4nvuAlYDrGta1GbW2ROeWNFhdHGXyi+myaAbjjeX3tt1T+sN8IF0Wl7WmwSYHPaXXZe6AFl24FuUTy5pRA6pAR05SpuboARqu06jv0Ue0mvjZOnxmzeiO1h8UAKa5+n5JTSTYHrwkmMyRuseE3K10MbHEpgLezc26JBc1p3TvexGIEO8R5TQc2+4uigAXtI6pEQJkupPhP4UHAdBZAWRpW3kB69EppIcQB80tzSZGpWixJCQJhOa0t35TAhaL7J4kIfIpklIjGlYbkhQK2mY5pbYK3cNuVFli1XuotErMnWUZ3ACqJ6R0br3JW2mpb32VVX0dzcBR5T4L4ZE+GZzQziRu3ml0jhBMHNHhVjNSAxEW3UAxOYLFasGzKLIZsUZrg2OA4vTyDu3ANO3K1lFC2VuoPBC4+17mPBa8tKu8IzHW4Y/cl7T8V2se6nwcvJqOPg6fUYZBUQmOSFsjDyCOVzvP3Y7geO0ss1NC2Ge12gDqtVgmfKOXwVLQwlaeDFcOqo9bJWrXCUZmN90XR4L7Q+zrHMrVhbNTvdTknS4BYhzS02cLFfQvNeFYdjFM6CeCOZrxa/7q88Z67EDLiBlwXZrzcjyUnGKZNTf2ee2g3spdHRVVU8MhgkeTxZpXobKfYXTRBkmLu1PHRdPwfI+XcIa3uKeNxHm1OkDzHk7DMh5jrheLDpCPirgdkmbDHrGGOt816+pBSQeGOljb+QVhDNGSBpZbysFF0L1Gzwzi+RMwYWNVTh8jQfhdZepgkjeWPjc1w5BC+imI4fhldThtRBC7byC452pdlODVbH1VDJHG8gnSAk3FIlBOR5GLbpogl1gF0h3Zni/wCkXxAfsr7OWowPsuoYHtfXuEp6iyqlsQii5YZM45huFV9fJopqd7z8lvsrdmNXVvEmI3ibtsRddkwzBMNwuENpKZg28lMF9VtvkAsGbdrwaY6booMDyphODsaIoGl4/FblaNhEjdI2DeLJbackbjlSKSl52WCe5KRqx68YrkahhF+SVMhpHPIIYpFPROuDpVpSwCNt3bBZZzci5dsRimoQ0AubZTYoS2wspkDGSN8June5twooqnK/Ayxthwjc0HlOFpHKbemVXbEFjCbFLdExjLttuiaARvyknUfiFFokiPKHXuEUJc51kcz7G1knWGt1NO6jdEiTHdr08SHcKHDMCLuO5Twf+IcJqQqHdPwQbyjjeHtNuiIHxKVkGx1zm2SmkO4TYPwTjDsbiymiNiiCiI3APVJc/wDd3RNJLgSiwscYWi46pEjHXvZAj9pfonSQQLKLAhzNe21gkTOkdFpA3Ux7QeVAlLg82SZKJHZG6PxPG5TJB74u6J+WVwHF1HZIXlwIsotlqQYBe9xakPJBACbLy15aOqMvBNuqS5GKcB+aj1LLt2Tj5WtNii1hyti6EV0sGrkKvr6JrmEabq8naC3ZMvYBGS4K2E3YSafDOeY5lyCqBDogfjZYjGuz9sl3U/PlZdbrj+0IabKhxepfTxlwIJXQw5ZGHNjicSrsnYhTl1oiQ1UNZRz0xtIwhdaxDNFM1r45GjV1WJxzEKSu2Y0AhdPFOUjn5IxRktJtdAOI4U6eBgZ4TuVDfG5p4WpGYVHKQVLim1DYqEGOPRP07XC6BEnvClNeU0L9U5H1TAca4nlOwm7k0B5J6ADWEwNBgMbXTAu4W9oIG90NI6LB4MP2jbLoeENJgv8ABE/BJeGFGNynwmIj4nfNPArnT8nHyrkMoBAoBQKWGjCJGEAegPQ/96PpPvIIeh/70fSfeQW7D7EdXW+NF36R9Z6nimVXF1muNVf/APhUnCJxU4YyRrrjTys76XbiyXKjg61jVn/+wo3ZXjIr8LFKH3ewW36ryP8AoNWUpvJ9cf8A9HS6bm7c0os5N26tezFw61hcrlNbOR1XXvSJjdFWxG3U3XD66a1gTyuv0d3rqQbke3IIml1HlMEptzwkmQLtp3yZXX0Ke5R5HJb3AqPK8W5SZIS5w6FI1JBkbvukl4vymhEmOQW3KXqHmoJf+6boGUjlArJ9wUkxscojZ7dUoVA800gSHvV23vsnGU0fUBR/WB5pTKgHqkHglCli+CdZRscQ5uxCh+sfFPRVNjuVGSTQJ0dEyDiskEgppHXHTddVpJA9jCF55wrEDDWRva61iu55XqRUYbBJ1IXG3IUzqa0rNbRtJAsrABzbKBSXLQW/mpzXF1vguSbq5JbAdN/JHcOZsm2v4b0PKd0i9mqI6FR7MATsR5TI2Nilte1psTyhCfkdcTqFhdKfJYAaQklry27W3Qa1wN5BbyUqEKBuDtZNODtW3CcJuUEwCb4dxykTOdqanECA75oGJcCQLNsg27N7XSoSDrDuRwiLX2Nxt0SEAOa+4ItZGNI4TMXLktrgTa6VAHIQWpLJNDRvZHI0gb8JMcYkBubWUqAeY7vASXcIOmZpsdrJst7o2BvdG1rJHgA/NJsBOot8Q4KU1+rY8pVSy1gOAkQxu1h1vCEIVgYO7cde10bnN5QqDd4A6pUNmX1hMLDhmEZItcFCaQTkNIsAileAPC35ptsjTzskMRJF4xp4CdZbbULWRsGv2d0HscNiN07Adc5lhpPzTYe1xsDwmSTq0hPRxkglo+aLFQdwkPJPs8pRBGxRNBugdDJZI03eLXS426uCnag3aLKO0lt/iihjpZY2ukOaeLINBe9ribWT7ru4HCKCyM5m1iFAq4xe1lZTbKNIRfcXUGEV9lDVxOAJDVXGMvJBC1UnduYQWqukgbuQ2ygy+LZmKmlJJI6KLoeDY72WkkgaSbhQ5qTckBThNxLG01TKSQvaRpU6iramIDuqlw8wlvpCb7KO+lcOAtMNmS+yp4IyZdx49XxNsZC4KTDmKVwu6P8Aqs2xr7EOSxqaywC1R32Vy04s1H+0sFvEyx+abfmSAnZv9VlCyZ7tmlG2nmJsG7qX57KnowRqJcyxhvgZuoE2Zqgk6Wlo+apzBIDYtskPp5PJJ7zYLUiizfj1fLsKhzR5KvqK6pndaSVx/NIihc14uFLbSguvpVM9xsuhrxRFit1F05oN7xs0qbHTgHYKSyD4LHPNKRcoKJBZGXj9pun6ejY912tsrGGlB5CmU0DI9rKpybG2V7aW1rhSoIw0jZS22LtOlOMpgHXUEmR7hUTRpGycMQewgmyd7uzQAEprPNTSKpNsTTAQx2BShUgHcpelgaUy+NpaSFKyNEgP1i/RDQDyosT3NGkqTC4lpuiwoItbewROEjN9Nwm5X2eLJxsgdGRdRbJIjzujeD0KhPYSfCnZm3fe6NjrDhVsYzG0s3cpUclmjSLjqmKhxLbNG6OkcbaSE14AntkZpA4JTsLbXLuvCjxAAk2upAeXCxFrKxFbHAB0QOwTdygCVNEaCBc0kht0bJdV7iyS8kWsgNPQ7oChzUCQLo3mxskBrtYNtkuRpLgQmAYJtv1UObZxupxda2101I4OJu1RaJR8lW/clMxxjUS82Uyqbbe1k0wBzT5hVstTIzomsl1X2KDYw6QuHCDr6iCkuBtsbJpAImgY6S5KctHYADhMAODtyljYFTQBT6G7qlxHEmsdo8+ApuJTtiiLybALL1c0br1BPgbc3V+GHdIry0lY1X1bYw6SVwaPiVlMZxjDpQ5jpwVlc95nlrKt1NSyFrWGxt1WUD5nsu95JXcw6/Bysma2WmOR0cjy+GS9+VmKlndvJap79XUlIdE1/K3Qh2mObsrmyX9q4S9LXBTJKRhGybio3XNz8lN8sguCMWfupUbSL7KY2l0/FK7i3IQkBEsfJLjaRe4Unuh5JzugmAw0eSegYdY2TjYwFKomBzkAXGAQl0rRZdIwaNvdFnWyxGA93HJdxt5LYYTP/wBKFz4Twk+R3wImj7qVzSLG6AIUvF2aZQ+2zlEaDa6x5opeDmZ4NPgUEYSQlBVNNGVJhowiQBSJpHoH0P8A3o+k+8gh6H/vT9J95BbcPsR09f40F6YdwMr2/wD6v7K5JkTH34Pi0YMlo3Hddb9MP2MsfV/ZXns6hI1w6Ln7sPWuDKVmli2G/o6F6QdM3E8vNxWlGpjG3uF5bZirZZXMlNi02C9L4DikGI4XLglcdccrbAn8K5ZnDsYxaCtnq8Ld3sTjqAAWPTzQ1V6c3R2srWzFOJhNYcAQb3QcpNPlrMFLM6CejkJvbhS6/AsQo4WyywOAP9F1I7uJ8JkXpzUeCmncWt2VdJOQTdWFY1zY7kWVLK8FxstcZKSM04Tj5DEp1G6V3t1Hc4JDpAOCmQuyYJUYkB5Kg96UbnPFkDJ+oeaUCFXiUjlONmJ6osZMuPNHq8lE7xyMPcgRKD3JQkPmooe5HqNuUm0vIlbdIn00zhMwNO5K9C9nxcMChMvJGy4Rk3CKjE8Xhsw6GndejcDpGU9LDA38IXJ3WmuDp6kGnyaCglLTZ3BV3TBj23VVBA8NaWsuByrKJzmxgkWXDZ035HZA1rmgdU+BpZdR2DvPF5J8OuLFIi2GBcX6oFlzdAGydYNW4TRFsdpSbEFCpbq07pknewNkuxAu43upgJDbdUZIbyUk2ebA8IwwD2jdIBTSHcJTdjcomAfhKNzXvIDBfzQBHue/JB2Uh8rtOm23mm5YQRa9iEiJpbsTdMByKFviJdym3Qhr9ncp5gtdKABIugAg2zRvdEIxc72T0mnSNKSze6BWNvZYc3SaduhxLtrp57UixO1kEbFS2cDbdCOzY7FN7F+kGxRvboFieUUFgbIxr7ndNzPe6UeGzUcTNTiTwE7KYwBvuhjQJCGRXAv5qGQZTcbKQyQm4tcKJNK7vg1g2UWySFtc6Ha/KehkLjdyYmkADRa5KETA65DkJkqCnkdHOC0XBU5k4dGLbFRu6ba7jdIa/S6w6JiZI1Eu3Sw57d2i6aDw4i35qTpHdXafmmIZe5zvaFk2QiLwXEA8ImuBNh0TAO56IjO5m1tjyic8jwtFyVGex2olzkmA/I9rtw66YkcALpMmtw8IUaoL9FlBskiWwNfwUJIgdlCo5SHgHhWhDS3UEiSZUTxta5NGMEbKwmh1G9k22EX4UWTUyufTm11H9XdexCuJKcncJBYQLFqVMkplNJA1h3HKDIWO6Kzkp9e56JtsYYdhdKixTIXqzQ4EBIfCWyggbKyDSfwIg1vUWS5Q+5EDugTeyMxNvwpzo2uGySyn8SakxWiE6m4NlJjprtHhU10A7tSo4QIhspcsi5JFbHTAG9k53LR0U0xFIMLr3slRBzGxHtsFIp4gTdwTkMYcLJ4R24CaRDuC7hmoWCekpwGggo4htuN0b3E7FOhWMOc+3FrKK6pOqysAA4Fqivp42k35TAFNK11w4pyOaDW5hdY9FBaHNl42Syy8ocPzSYEiQNL7sN/NKLrNAHJTbNiU411jayjYmCKF7iS9vySpYbN8k4bhoIPKS52ppB5QKyrnBDvCbogXcWUkxHUS4W8kYiBSqx3ZE0uJFhdSYwQNwnWxgI3bJ9pIQCeikQh9jqCZaDcKU0+EKS4K2GGkoglNbqad7JEbdLjvdTQgpRwiiaSU6424F0V3/u2TAc4CblfptZH4uqDmg8osX2IY/Ud01O4h2ykCO+7enKZkDQ4h2yi+SUfJFmdrb8lFJeDZo+amOZv4eEw5tnEBRosQ24EhAMuDYJy1gmyCXeE7hIYzK3SVHqHljdlJlcSbEcKFVSBo4upoCurg6oic1YnN1V+j8ImaTZ1tls5ZnOcQ1qwHalcYNM624XR1FbMuzdHH3v76eSR3tE7o1DbMNyOb7ozOvRY1wcOd2PyIBMiW/KXram2RHbo7psOB6pWoJWA7qSSbpNwUYTsA0sJCW3fhAIVYqXQtIN1HAUiJ2gcpkki3imawDfcK2ocSdZul24WU7/pdTKSYi1kEkkdQwGphxFzIZpA2+1+VqsTyBWQ04qaZxka4X2C5RgVa6KpjINtwvVPZ7VxYtleMus86bFcDqWWeKfd9A9eORHnuaJ8MzopBZzTYhJWu7TsMjw/HZO74cVkQr8GX1YKRyMuPslQZ3RgIBGFaUt0egPQ/96fpPvIIeh/70fSfeQW3D7EdPX+NCfTD9nK/1f2V5+XoH0xDtlb6v7K8+hUZWu5mLa5m0O088lPK2SM2IK6zlDFYcQomslI1tHB6rkTT4t+Fc5bxZ9FXAXswlcDrGp6mG15Oh0rZ7J9rOp4rh1JUXcYI7jjwhYTNmDslpntELTb4LoGH1MVZRMe1wJI3VditGJGPAbe68Hj282tm7Wz3GH08sUeZ834Q+PUWR2t0XPqmB7JXAtsvQ+cMGkErh3dwVybMmEugqdbY9r7r6F0vqDyxSkYuoaSq4mSjw2pnALIyVKiy5XOaXGE2XQMjiklBgnjaHGwbdbKtwWGKkL2sGy7PrpeDzTxuMqOKDKmImPvBAbfNQavB6+D2oXWXboYGinADQbpt2GwSX1xg/kl+SjVDXbRwd0ErTZzHD8k04lpsQV3WbKtDVcsAPyVfWdntLICQLfkj8mIPWZxzU7lLDyulP7M3lxMcxaP+FOU3Zg97wHTk/wDhUvyokfxmcyZISbAElXuW8ArcWq2NZC7TfyXUsF7M6WklEk37X4WW8wbAaaksIYGtPyVGbbTXBPDrtMqslZWpcHgY7SDI4eL4LY4dSOZLrtseiXRYboeHuN1cQxgEADhcjJnbZ04wpEimYdI2+adDD3gB9lE2TuxYDlOsc5wJIssrdssXA6GsAswou6fe9kmNw1WUhzmuaPFaySBjGkjlOxEjbzTZIHW6cg3UqIMeLW6bpDbSXBPHCW7iyZHhuUAKjj0E78pwAFJabtuj6pgLDAlx3a8BIs43I6IoXEybpAKqgCSB15USNndOcS64KmSfiKgyvBu0JoB90rAASeeEbXt03vso7bPYB1CRFMwTd287JATg9paLHlBoBJubJDy3U3TwhI7jSmRaHbWHN0TXN1fJNxiR3RSGRC26BURtmz6z7KVLK0kFu91JMTC0g2RGBmgW5CdhQw2QNYS4WCbeO8aHM3CeMeq7LbJcbGxsIcbBIkiDK1zI7na/CYgiA8ZNyVJqw5wNvZ6KOCQ1oCgyS8jgaSTcXulxRhlyDe6jmQtNjypFO4m5cmiT4F6XOcAAkOg8dnGxT8bhqBuhKP2mropEGyO+J0ZBbvdSInuDDsnAARukvaLWamKyMCwufc2KDIyAXAbFFLGWNJHJSYHvtpcgQTb96CUU7Har9Cpga0MJtuVDe0l5JJQOxbHMDLclMSx6+idbe1iEtrHOvpHCgyVleKctdeykxHS2zk9ovcEJiWKS4DRcJAmFJUNbxuOqNjxI27AiNOSw7bp6FhhjII5SHY0De+ybdubAbqQAZSQ0IQsLHuD2oHZE0nVpTjI4W31Hf5J5sIExd0KUI2vc7z6JNDsY0R9FGnp9Txp4T8wcx9iEuFjnAkhKg7mRXU4DfBuUqGBwN3NspQAAJtwlsIeNkUHcxmSPwWaN1IgYO6s7ayUGX43Sgw24UkiLbCDYybDlL0xtBum2RkSXKE4JuiiNhMaLkt4SjK1hAKXG0NiG/KS2MOuT+SdDsUHgjhJcURBb02SXFx6J0FheIPu0bJiUOfLdSWm3OwTrWxFuoFRY0yDJHJYXbYJoN3NzZTJJm7tB4TLCHON0h3yNtLmez4k/AS65eLHokSMJILE5CTwUUDG6hszyCz2RylxttHe90uTUBYdUH6Ww2/ElREalIIBHCNjXadVtkmIm4FrjqnjIHEN4AToExIG1yicy5Fk4W2Pw6IDbhMlYI2NHKDnt1ab7o2uAO6ZIJn1DhFA0SGEg7cdUb9O1uUTCN0k7FSIMDm36o2NcL6TdAAu4RgPaeNkwCDjeyU4FoBPVLGgC55SRIwmzjxwgX2ILnAjTx1TczHOdcBPPczoU29xt4VFko+SNNG8EX2CjzaWm7XbqW8lwN+igS7u2UWy1IDZNjdMPe4SDTx1TzANJ1dEggWuOEh0E7e5UGdoddTSQRsobwdSkIhPb3ZuG3WMz7SyYhhlRFHHdwHC6AzTfxAKuxSkifqLQN1u18naVZY2jyXicM1FWyxysLQCmWTXF7rtfaBk2KvhdNBGBJybLi+K4dWYdUuhliIAOxXfwZVJHGzYndhPk2uCktlJKjXda/CHelaGrM1UTe+I6pTZ79VA7woCQhFAWjZj1KWJh5qr75yUJiihFn3w805FMBfdVPflOMmN0AXIn+KcEwIVZFJdSWlMdktr7uCsaY+FVEbvEFY077cojyJtltSvcAXh1i1ekvRxxR1VhzqWR27BwvMsMm4F9l3L0a6kjEalgPkuX1dJ4La8GzVZpO3ClbHVRzge3dcu4K6/24ROdRwyW2F7rkHLisPTpXiRyt9VlYq6MIgPJGFvZzPs9Aeh/70fSfeQQ9D/3o+k+8gtuH2I6ut8SEemKL/7K/WfYXn6y9BemH7rfV/ZXn6yzZvezHsfIwgCjZs66NBUTipqmUwbg7Rr8m446mmbC99weAuiSviqaZskdr23XDYnuieHtPiHC6FkjHY5B6vPJvxuvFde6R5yQPW9J6haUJEnH6ISxG7d1yzNWDMLZNvEeNl3DEImPjDhuCsZmbDGyML2N4XO6NuTxS7JHqozU49v0cLgjmoa1pbcFpXVMGqW4lgMjTYytaNlkccoB3znBtnA+SXgE81K7S1xAdsV7fFmU4nE2tBQn3IvqOLVFuOCpkVMHHhN4Z4/DZaSko22BISySoWONIg0lG1u5apwo2kewraCkj22U5tIwAbLP6xPtRnxQs/cUiGiY0+wrsUrPJKjhjDwLKt5GFIrW0oHRSqekIN7KfJC3awS7tY1JzbIpJMZbFpCXGLFLuHIWsbqKZMdMd2arcJMErmki1wnW+Nm3A5SWFouGi/mmJjupruBYpxkb7E22UZznXBAsnDM4NA80WIca1rnWS3MLNwozHHVqCkd5cbp2RYRcevCOS2gi6TL449I2WG7Y8x1eX8rzTUezyOQpYoucqDI1FWbqKWJrLGWMH/iCeY5p3BB+S8RTdomZX1Pe/pCQDVey6z2QdsNTUVjMLxaSwfYNeV0MmjKMbMS2bdHoZsm+kfmlNaBumYKlk8DXxuDgRe4RBxc+wK5zTTpmuL7kPtlABFrpmdkT7W2KUW6fmi1hjgSLoJjPcvjaSBcJh1I+Q94BYqzbM15AAuOqIXLjYWASERYQ6HZ45TrrkXskVWoubpF7cpcIc5h42+KYw2vtwl94Qmg3S46k43S5BFoTO8ubsbFM01RLC53ecHhPSN40psxauUCJLKhr/Z5SJwZG8pnunN8TBwlue4s2G6i2OhqSzYtOq5UcDcITF5PCa1Hoo2TQ6WaiT5IQl+uxGyTG9wO6VI9rS3SeeUWDJxaNAIO6S14cCOoTTHOcAAnxEQLgKSZBiozcFHe/CbuQDZMPdKDcBOxEu7QPEEyWFzrtbwkQve6+pOXcOEwFu2aAeUmKIAOL9vJEXuaLuCKKcyXBFrIAQWEOO2yXEHb6Rt1SnbhIEgYbJDQp4B456oRgb3Sg9jm+E7pLeqBgcWA7JDmtfuTayXG0XOpFLGHEBpSoBLQ0Pb0QkuXcIMhAdqc7hJZLrqNJ2CKAKyQA4PuE9IxxkdYbBNkgGxRQWKcwTM35CS6NzWjSNuqcja+92jZSJGEx2aN+qQ7IzYgYj5lN925jdgpbY36QLIntLfaCKFYzSm+q6dc0HrZE3SDsl2UqFY2G6SN7pTWtNy5GGkm1kekjw23QFjb9OwaUbWkDcJuRkgfsPmltJIseQgLFht0TxotYXugA6xPQImkvN+gQH2MzSAgi1iEbA8xjQPmkzQyF5IbsU6xj2xgAbjlRJLyNx09yS4JToo2A35Sg9wO6U0d5+SQPyRWNfqNhslODhwE5MNJAHVNubJ5IoLA0usSRv0RRtLnEvRta8m1ktrSDYjdMTYHsa1vh5TBiJIPCfdsbFHY2ugBBFgN7okbuUGi6CSEEXNggwFz9A5TjXtaxxG5QidvrIsUDDDSHFp5CXZnVNyPubjk8oRkuPHCaIvyPWDfzSmu2JAuhqs0bXQDtTSLWTEEHNcCCLJGlgO6S46HbnnhOCAyN1HolYvsTKNAFgDdNPkFvFsjIIJBN7JMjQYzdJkl5G7WFzw7hRaprW2LfzUpuvSPDcJqpIIu4WsoMsTIbXtva+ySBd9rbIy0Ekt4QiLQTflCJAkjAGygzNLXbhTXOOq/RJlAeNwpBRAMZd1UeopXHfUrJzNPARGMkcJxbRF8ooaija9p1fyWOzTlKhxNr7sDX9Nl0WppnDcBQZKcOJ1N3WrHsyj9lEsKkeccb7O8QhqHmmYXN6BUM+V8YhNnUrrr1DPRt4EYco/6KheCTC3+S3495/ZllqI8uuwPExt6q9KjwDFXbilcvSz8GhLtoW/yRHB4A3eFv8loW4Q/EPNL8DxOMXdTOCiSwSxG0jHD8l6QrMIpyCO5as3jeWqSWI/smg/JWw203RGWpSOHXCcjIJWkzTl00IL4x4QstGS19lrU7VmTJj7SwiNlKY65soUZUiI+JOylE2MbgqdA4XAUSIjSnWvDBquiLockifK4tZdp3XbvRfc59dO8g72Xns1uuUMB62XqP0asONJhHrLo7F4uSVyerz/4+1GvAqVs1XbWQcLib1dwuMtbZxuuh9sWL+s4iynjf4Y7rnYcXFZ9GHbiRxd3J3ZWKCNE1KK22YTv3of8AvR9J95BD0P8A3o+k+8gt2H2I6ut8SE+mH7rfV/ZXn669A+mJ7rfV/ZXn1Zs3vZj2PkYd0LhEiIVZSKuCnaWeSCUPjJBBTICO9lGeKGSLjItxZPTl3I6VlPHGV9OaeZ/jbxdT62DUHC1wVy2jq5KWYSRuI33XQ8v43DXwNie4d4BuvD9W6XLDLvxo9h0zqbmkpGTzXhmkl7GbHlY1kRhq7ni67Ji9G2aIjSDcbLmuMYc6DEDqbZt1PpW40lGZ6PNKOSFos8AAc4HyWri2a0LMYI0R2stVSPFhtddvJPuOS4dpNplPDgAo8RBDbCxUhjdQd5hUdomKDhoJSImOc/UBskwQvfNpds1WMMLGXAddCRW2NaTYIjFflSCGk2Cbla14AITkmkqIWIYwF+kcp5sWp2jqsJnPtKwLLE7KWbxS73G+yjZX7V8u41V+riUQyHYElaserKUO4XqpeTo0ZjaS0HlKDQy5aAb8pqB7JqOORkgc07tISoybLM00+SalfIsEONiLISxgWQNyb24S5TdjUiLYgNAQslNCVpQATCGg3bdcp9I2ZjcmTeG1/wD3XWABay456TkgZlEsvuf/AHW3RjeQo2H+p5VJ8R+alYbUSU9UyeJ5a5rgbhRXgWBCVBfvGjzIXpZJOJyI+49tdjte/Fsk0sz3ePTYnzWwjgljdr6LAdgUbo8i0mrbbj810qSqAi0Bu68vnruZ3MC/UitL3PJI2TzWt/EEqO2i5Fk28tvYFUFjHA5kYJASJZz3d2BFJGRHzdFE06LFBGwxJqiFx4jymGxu1Eh1k/ta10xZwf8ABBJMdbu06uU3GTqIUg6e625UXxazZMVDjnEOaPNSbMEYJO5UGR72kC17p1huNykKhud8oNmjYplzpR0UpzS7gcJh/iJaOQoMkhGoOHxSGksu4i4RtaWudqSZ9RYA3e6RIU2YONg0I3DVyACEiIaA3b5opY3Fxc0oCh+m1h13Dbop4IEZuVCh1uYAW+ynJHk2a381JEGHra5xseE5E3WHXTIjcBe3KMF7TspURDIEbjdKa4O4S2EHkXSnXYQQ1MaYhwDhZNtZouU7JINgRZC17eSKECFzHBwJ4SHtbfkJUkbdi079UkQ3aTq4SAKzWpLntbymSxwcdTvkjDW9SnQ0PMkaTYFORvAfxe3KYiMTXXcdkJZY2vu07FIYqpkD37bWST4gCwbhAPhd13Tw0tb4UUAbPZF+eqEsbLtI56pDHG5uEu10CASGgaUqF/N02+zSNQ36J6IvZC/cWPGyKb8DTV8jtnaNQURxe53iHyRSVjKWB8tRMGgcE9Fy3tD7X8GwS8NLK2eqF9h0V2LVy5OSGXJGPg6e57WG73NaPibInV1G02NRHceTgvH2Ze1zMmKyu0VDoo+gCz9PnnMMMveevyHe9rrbHps65Mj2T3TTyRyEOY4EfBKL2998l547HO12apqxhuKOuX2DSSvQNNKKiJptZhF9Sx5cEscqZox5FNDz/bcE2BYlKYdtJ3IQcPJUFgh79I0+acboDB5pLoSW36pprHuJB2skNDzntHJRB2o+HjqiEVuTdGNLWusd0DQUwa1oudykRjUCdVrJlznuJJGwR2aIjI/ZoCi0/obX2Alpfs69k6fFpA5KwuY+0bLWDmSnlnb3o5Hks7h/bZgc9bHRsAN3WDrrVHVm43RQ8q7qOutaWkOPCIkGS44TNNUxVtJFUQu8DxcfFKIa03Dt1npryWrkVILvul/hsmg66cDt7KDYxt7bblIuTxwn5oi5lwU2HaWaSNwmSQiSK7Ntkunj0ts4omuuU4CEDHAG+SM26CyRraDujPFxypIi/Ip7S0XKQ0a72PCS4yk+IbIOkawWB3KBBmFjj4n7hG9xjbZpuFGcXE3JsnacBwcCbqLBIRrBJSZXjTYlKkbpKaeSLbXQSoNswbHYC5TEjnSHSW2upDQ+19AROLg0u0bhRaJIY0Rsbp/EmXR6Te3Kmi7o9ZbumDqlvYeyokiK8cIwwC19rp5gj31nccInsEg2PCdhYl0bNh5onMDdtkIdTX25CN8ZMmoFFgNkbbhNup4n82CkVFy1oItZMkEJBRDqKFrTtwmXUl2nSpz3HUPglPeyw/qpJtBRRvpnNO4Tb4bgq9kbE9u3Kg1EAB2U+9klFGfq4LXVXV092laSth0svyqqWPU0rRik7FOHBzrOlCJaGQNbd3RclqcLrIJ3aoXWuu9YzTB92kbEqmxKhZHo1Qtc3zsuzgyNqjg9Qfpq0cd0PY3xMcLfBKEoYGl9wDxsuv0WB0VZKxjoW7/BZvtDwnDqTEGUtOGgt6Ba5ZFFGTUhLMzGGqYwlhO4Tc1ZqFmkrV4LlyCudeVlybLV0fZvS1OnSy1uViy9Sxw4kdSHTMk3Zgcj4PNi+MwhkZc0PF16+w6emyzlqOM2ZePb+SxuQ8l0GBj1gxts0XJVfnXF5K+t7tjiImbABcae1+ZOo+CG21rxoqcWrpa+vlmkJN3bKO0WCJlrJS6uKPbFI8tln3SbDajKII1bRWd/9D/3o+k+8gh6H/vR9J95BbsPsR1db4kJ9MT3W+r+yvPq9BemJ7rfV/ZXn1Zs3vZj2PkYEEEFUUNBhJcClBAormxUN2KlUVVLSyd5G4ghMWKOyhlhHN+skaMWeWLwbfBMwtqGaKggOHmncwUENVTd/GQXrB3c14c1xFlcUOKy6BE9xsuFm6QseTuh4PRaXU3KKjJkjD2GOTQRuOVo6LcBVNHG0u19SrunZYNspZU4rg78O2cbLSj0kjUp7GCzi1V1MQCAVZM1BoI4KqUrKp+eBnxMLiBunIJSWu8+qeDGuabcpMTGtLtW11NcopkClLnPcfJPQ6T4SL7FFA0APLUVIQ6cj+asTSqyLR5d9JXC5qPMTKtlzDKTZckp6iennbJG8se03BBXqb0isvCvwF9Sxt3RC4svKsjNLyL7g2K9JqOE8dI5W13Kbo9Oej/nt2L0ZwetnvNGAGXPK7WI2BjSHXJXhPJGMVODY7BUwPLQHDUB1XtPJuMx41gcNawixaOq5O7qqMm0aNTO2u1l1+AhGBdgRtAKPYFcyqN8lzwJDCg7U1t062yKZt47WQIbj3G3JXn70paw+rwUxfa97hegWXbHqH4V5T9JrEDPmw0ofcRcj5hdLp6uaMmy+Djl1MwqIzV0MbRcueBb81DstV2YYf8ApDNdJCW6vHdd7JKoM5uJXI9g9mtCcPynRwubpOi9lp49PVQqOAwYfTxMHssH/JSWNka28g2+a8nluc3R3INRgKke7gHZExtzclHpGnU0AD5ptzrN1BqgoST5F3WSe+0ixF0A4SGw2TEbg6wKlPh0x62lToCJLqiPN0bH6makUviZfql0zGAa3jfyS5b4HLhADidrI5WlguE7UMkj0PbpId0vwic98rLFvh81LskvJGE02MMJI8Qv8UYDWnY3JTzGjZnToi/ZmcMuNXkosnJ8hRPIcQBcdU1LYzagLeackIZK5o/NKaI3NJB3SEmRJWONyByjisxtnjdPvZbccJshrmnzCVErG5S1xAai679E3Gxz5N9gEtjLSOF7pA2OQyDVZqcdp1gDnqkNaxsjdPJRuGma54UkRbHnuAsEbNP4k2+QahYXTnftsNlIQT2kkd2L+aU4uIF+iVFMw3B2KX3TjcnhMBlkes38kuQsYAL7opG6RsbJqNhcSSboAWXA8JuVzgRp46pwtskOBO4SAaed2kpbjAbBp3KLSHGyV3OlwKAEvYwcohHGUlxJkcD0S2bIGmDumgeFJjc7UQeic1AcpBLdRtugY8CLboOdYEgJgl2ptht1Up0hiDdDNRPKVNukQk2hh7tbblVmZcyYfgGHuqaydrGtHBKre0PN+GZYw109RK0TOB0suvJ/aJnrEczVztU7hT3OloK6OpquXLM2bMkuDV9qHa/V4zO+jwwuiguQXA8rklTPJUSGSVznvO5JN7plx+NwOqIOC7ePGoKkc2WWUvIZREFHuUDcKxtldSZLwWqmocShqISQ5rx/zXuTs3xD9J5Mo5T/AKkjNzfyXhvCaSetrooKdhe9zhYBe1OyWhnwvJ9E2pBbK1vslcze7e3/ALN2rGS5ZsWNNyPLql8JcQ/ZNkdsXdEl+52XBOmxL3HayF2gXui0lJc1wHCAQT5QTZu/micW6djumtJYTqHKUx4HS6BiWA6rHgpU0Xe0c8em4LTb+SMv+CU13gcPMIUu2SHkl+lHiLtehmpM7V0T3O2dxdZOCYslY9tw5pve66t6S2FmjzX60GWEx5XJBuD5heq1mp402cTJJxmewOwLMD8YyoyGaTVJALFdLjDJACN7rzn6J1dIcSq6R7vAbbL0i4Rse0MNwFwN2PbkZ0dfI5R5GZA1jtJ5R6Te/RCXTdzndExJK5rNX4VhSs0tEqR9mbKGHan6ShC90zS5gOkc3Smx3eHBWdvBJAALH/BLIubhG8a3WCUxpAsVWMQ6+oIPe9rhq2Txa1ti828ky7xvJPHRSRFjjZGubsd0y4Xel7NCJjS65A45SbENVIfpBaNhyjpBIDqI2Sibu09OqDDaTTfZBJD8tnC4UVzSQbI6iYNk0g8pp4ed+AUDHITKLhw2PxQNw6zuCm2MeRyi4O5SYWOPcWnQODwmJg6E2/eTj57W7sBxCDwZtIPt+SrYJjAu3cjlG2Q3sG7I3MkbLoeLJ2drY2tA3JTRMS5txcCyIiwukvieW+A3JS44nshPec9EwESOY5vO4UMNkeTYbBORlveO7w28lJYQ5pDUAQJG6QPNEyPvOtrKTLEdW4+SQ+neLEbBA0INM5rbnhMPI3aQpokLG2O6akY15vZFk0V00LXAg8KoqYRHdaCoYGtuqWubuVowsJ+DKY2ADt5qDWMMkAsLhT8aDu8JA8I5VXrkbHrPsBdrXo4PUYd/A5TmLDaCWplNiB4VzmaSTFcUfPKdV3bK5zLjb6sijiNg3YqPgFBqmBt1RuZY41wbujadcs1GVsNLXBxb4RZdPwDD72IbsbWWayxhxdpFtuq6LhNOIGXts0LwXVtqU5VDyejyTjhg2QM2Ttw3B3MBs942XK3vc95e47krSZ9xV1ViDoA7wM4CzN16Does8eNSf2fPOq7LySFNSgkNKWCvQy8nHl5FBGiBRqII7/6H/vR9J95BD0P/AHo+k+8gt2H2I6ut8SE+mJ7rfV/ZXn1egvTE91vq/srz6s2b3sx7HyMCFkYRqooCCNBBABdUbUEFJu1QBOKdo7d8Eyn6IXqAoS4jRp1v1yJmow5ws0K+pi0MFysxSkteLK6ge4sC4ef9T3WBXBMu4nRlt77hOQ1lnaSVVwOc1pv1S4NZm4WOD+iyUOLNBHIHNvwkveGbuOyap2uLNunKOXdtjytcfBml5H4ZQ4EMPKMwPa9rm7XUMnQGlvTlTqeUyNAJSnHuVCKjNOG/pDCamnkNw5hXjPOmEy4VjtTTPjLNLivclXG7QHEXHC86+kxlr1WpGIwR2B3cQF1OnZO19pl2IKrOExvLXEt5XoX0as2agcDqZbgezc8rzu3Ym60ORMYlwbMNNWRvLQ14uB1XU2MffFnMxycZcHuWKS/i6HhPOIPCqsDrIsSwWmrYCLPYL2KnteLfJeYyJqbs7OKTcbJDDvyn9N2FV5ku7wG9uU+J3BlkFnkbrHiGineTYBpK8S9reIuxLONZOXam6rAr11n/ABA0OUq6oLtJDNl4jxqpNViM0xN7vP8AzXX6bC3ZztqXNEA7bLsPoz4Ma3NJq5Gfs4SN1yFgvIL+a9X+jRgTKbLHr7maXzcfGy27uVwx8GbXX7HW6p5pKZ0pNgxt7fkvPvaB21VdLXy0mHNvpJGq69B1UYraSWHXYlhA252XkDtOyLjNLmKqngppJYnOvcDhcvVx45SuR0MvclwWGF9teZYqkesSmSIn2fJeguy/OlNnHC7Rgd60eILyPheT8wV0wigoZdzYkhel+wXJNXlagM1c4tlkHslX7kMUY3EqxTndPwdPj0hpaNyElxcRu42Tkhja7Y7nlIEZeduFyYu0b0uAmOuNwsp2m5r/ANlMFNaGFxtstc5pYLkWCzHaVll+ZstVNCxoL9Oytwpd3JTls824v20ZnqqsyQ1DomA7NXV+xftYkx+RmE4nIBIeCeq885qyljOB4i+lqaSSwcdJDb3Wn7FMv4vNmynqY6eVkcZ8RIIXYzY8LxWjHjc+49i6oyw92bjoVHhpf2/eufujpoHxQsF7+EJb4XlvNlwn54OiqHJGMeSQd0x3LwHC6OGN4duVKbu2xQIZptmFrymphY+HqlnZyDmgjUTwgaEMGnomwD3jjZOCa7tFkiWYtNtKTBitDi0uA3HCOEEgmRFBU3dYiykuAJsOqREb0NLbhNvsOAluJbLbonppWOj06QD5pgQ9QDhYqY2XwWBUIx6TqBvdPtGyZKhbySlts0WSO6Lze9rIyzR1RZAN26K3gKF0xI92qw4QSTCBsT5pcbnOJv0RFm10posEEWMk/tCnXMIF0TWgHUdk492potwgaGyLpERte6fYzwuceAmA1wbqAvdJeS1USNbAwE8rK5+zphuWMNfLNM3viDoan85YzT4BgtRXVcgY5rfACeV4/wC0TNtZmPE5ZZZXdzqOgXW/U1u+Vsy7WdJdqB2iZvrsz4nJNLI7urnS26yViTwiBJ5V3lPAKrH8SjoqaNxc4gagOF3Uo41RyUpTZX0OHVVdMIaaJz5CbAALrGRuxHFcUEdViTjTxHexF12Hs17LcOwGiifWxNkqSASSF010ccUTI4mhrWjYBc7Y3u2VRNkNWLXJxmfsBwOWjLY6oCYDY6eq5NnLsdzDg9WW00Bnhvs4L12W3OzrIpGNJAfG2Udb9FlW/MvjrQqjg/YZ2VvpJ/0ri8el7bGNpC7uI2xi5bpsLNaEYuzZjA1vQBORON7ubdZcueWR2zRGKiqQpji5gvt8Eq6NxvyLItPxVBKgnEgJsPJTpIDbXTIAugAyNXKAa0IyiIQAprGO5RyRgRO08psD4oOcGEeK90mkqYOPB589KuhAjpavT57rzpH1K9VelLA2TLMElvZuvKg2J8l6XQleM422qnZ1n0bMR9Tzi2MusJT/APJetOmroV4y7Ci0Z6pHudax4XsiAtLGyNde4Gy5nUINzs1ab4Vini4v+Hqq/FsTocMpH1NZM1kTRcX6pvNuPUeXKB9ZWytYQ24YTyvKPal2jYhmSvkZTyujpQSNIPKz62pLJPnwas+dQ9p0bNXbi6lxV1PhzA+FrrEg8rpXZzmyDN+Gd42UNlaBqAXiyIvc7VuSV6V9F/CKilwuprpQ5oltpBW7a1MePHa8lGHYlJ8nbG3iGjn4pbX7X6pL4i0ayd3cjyQA8lxDemmBznuPiGw4RE2Nkt3CSWi26kgrkWbBtyijeADbqkx7u0u4S3NYJAG8KLIyQNgbgcpL2h/wIS3ENNk1PI0C6BoN1O2wcTcoFt2W6hR2Tuft0RmRwTGKMbiQAUp1J4bkpsSOvdSmP1M5SGV76NweCHJ9t2WtynnOuUm46lVsKGJGuc/c+11S3wuYwAHUD1ToDSbX3TbjIJNPQcoTGNBjmG4KXKXuYPIcp+ZoLGlvPVRZXkbBTQ34GGBpcRbdLDDFcg8pUDLuunJmkJMENs8W5/JKabghyYc/SeUA4k7oJJByxtcDYqG5sjCfJT2gJuoaLbKLGvJXTvJbYqorCN1b1Mbt7DZVFYxwuSLLRhJSRk8wOLXkdDysXj2LCJncxOuRytVnJ746WSRgvpC5ZTunq6qR7geV1cb7VZilrrJk5JdHA+eXvLXc47rfZVwzZh0Xd1VFl6gJLXOHK6hlTDDpDw35rj9W2lGLpnc18Swx4L3A6Exhh0WVhmetZhmFvGq0jhsrKhgZFT94bANHi+C5pnzFZKuuMbXfs2mwXmum4JbOx3S8HI6vtKMGkZ6tkdNMZXG5JTNijvflGvouOCxRUYngcmVy4A0eaWAiSgpEAwjCJGEhHoD0P/ej6T7yCHof+9H0n3kFuw+xHW1viQn0xPdb6v7K8+r0F6Ynut9X9lefVmze9mPY+RhhGiCNVFAEEEEABBBBACVIoNpxdMJ2j/1glk8GnW5yI0NMfGFd0ouAqbDQC/crQ00YAB6Li51bPdYXUESYY9QtZS4acxnU5tvJRmuDXNsrKKUFgBWZQV2TlNpBNc8eyNk6G3FyE5FEDuAnmsGk3VqZmuyEQHHS3lNgyRSBp5Tk/t3i3IREkuYXjdJslXBIc6WzQ8eE9VlO1bBWY1lapa5gc8NuCtwwRug8Wyg1NO2SJ8TxqjcCFq1pKLsoyR7lR4KxamfS4hNDICHNcRZR43Fjw5p3Buuk9vWXXYPmZ8zI9McpuLLmd916THNTxo4012So9PejdmoYhhrsLqZ7zR2DGldscG93cLxN2UZgdgGaaepMhbEXWcPNezcPq24jRw1lPYxytB2K4W/h7ZNo6mrNOCsepgS96ee0tsSOUpkZiGojlHMdUZedmt5K5UO5ujXN0uDknpHYyMPymaZklnzCwHnuvJ8h1OJ8zddi9JjG/XMxsoYpdTIb3A+K444gL1WlhWPGcXYm3NkzB6Z9VicEDGlxc8C35r3D2dYfHhWV6SlA0kM3HzXlXsKwj9KZvgc5mqON1zsvX5DYGRNYLNsAsnUMn/qadXEmu4k0+xIBs88Iqqnp5ATM2N9/NoSnBrWtlA1FvK5f2vdp1NluRlLDHqnN9r2XKw9+R1E25JJKjpNPBRRlojpYwejg0KZDIyTU0t0gdQuA5D7cBWYlHS4pGImuNmkld3w6rhng9YgcHxzAEEK/PinBfsVwlF+B6QNIc0dEiic4vcDx0RiRzrhzbJFNcSHSFiUi5Oh+Wzjbo3lKgYCCXP0v6DzUdrZDVjwamnndco7bO0isynicMVLD7V77rThg8jpCySSjbOm43h2HVlXeSmjJ2uS290/QUGGUnetpII4wbXcGgLhWR+3N9biDYMUiEbXkAEldyppI62iZV0sgcyUAiytzY5w4ZTCUZFjGyNkdxv8AFB7xoumG6oYdLuUpwvECdgsTstaX0IDw03Kfa7w36FNWaYidGr80y7E6eljtLPFD83BThCUgcoxQ89h5sm7XHkqt+Z8E73QMTiMnzCnsq45ohIyVr2nqCpSxzj9EI5U2HG20tyEKhhc+4S4wX722QLiHWVRa2huOE8lSbPDeNwq3MmNUmCYW+tq5RGxu+/Vcwxnt3wWJzooG6+hN1fjwSn4Id8UdedpJs5wDkxMC11rrmmW+1nLeNTthbKIZSbG5XSmzRTU0ckL2yNIvqBRkwTh5HGcX4HKZr3B1xwnXFrBd2yTFP3LD1BVRmnMVJgmGy1ldZjGi4JVONOboHLt8l7GXObdnCaMrTy9v815rzd284j3zoMIPdsabah1WGqe1PNlTUBzcRc27tgAuhDQm+WZnnjdI9mtcHC4II+CMtBF7LHdkFbiOJZQpqvEZTJI8ckLbRgW3WScO10XxfBHa+7rFOFwJsAidGNVwlNDRuVWDEzRFzOd0mNhYyxKdDiT8Eelp5KQ0MPkcBpHBRzOMMd7cAlPtjaXWWN7W8fOA5Qq6gP0yltmqzBj75jm+1WcA9IbPMuMYsMOgkIhhJDrHlcce7VspeM1cldXy1Mhu57iSojWlx2XpsGJQhRxM0+6bZKwihmxCuipYWlz3uAC9g9jfZ/R5cwNlVNG01j2ggkbhcU9G/KrsWx81tRF+whIOor1fBTiC4jN4wAAufvZ6fajdq401bFSew0H2hyUhjNR9u6XMNOzk3E6zlxJ+6zY1THe5Hlf80WhrDwlv0kAuvsk2vaz9X5JqLk+BqSQRbsSBsEGdNuVHxGvo8Op3TVsrGMAvu5c4zJ215cwsvipZmzPb0CthrZJPwQeaK8nUJWyNtYXukkSi4LeFzLs97YsOzXjDMLMHdvd7Jve66hIZBIQw2b1KrzQnilVE45FJWhnUSeEuMEutZODToDy8b9SsrmzPmBZeJFXWRvkH4QU445y+glkijTvFjZJK4Ti3pA0wqXNpKLvI2nnVZQofSCidM0S0GlvU61etTJ/Cr14noIe0G9Sm6gEPAtxyufZO7W8t43M2ndI2GQ8EldCp5IpwZIpmysPBCzZsE4vkmsqkcu9I2IT5McQL6QvIr9nHyuvanbrSCTItU8N4avF1QLSOFvxFeg6dxjo520rkbDsYnbDnqic42GpewMbxejwbBv0hPI1oYy5BPwXh/KmItwrGYK0j/Tde63Xaf2lzZkigp6Rzo4mNs8A+1srNjB6jI48iUKG+17tBqc0Yo9sUzhTsNmgHlc5iDppdIBJJ4G6ca107xoaXEncLt/YX2X+vVTMXxaDTCN2NcOVPuhhgQj3ZJlV2P9l1TjFRFiGIxmOmvdoI5Xp7CcNocKpo6aljaxjRY26p+CjpqGBkFNA2KNosLI9i7fhcHZ2ZZJNHUx4Eoi5HajfokamtTryLARut57ImadxJZ3l0ssijKXgttQQ257W8lJ71p4Ki1tZhdPd0tRE23ILwo9LiWG1Lr01RG63k4KbxzS8BHNFstALoEG+3KJj2ltwbhGHDTccqtRf2WtoBBPzTMsermyi4/ikOEYZJiE+7WC5XL2dtOByV/dSR6W3tquVfHXlLwQeRI60yKwu0IzGXOsAszS9oOXJcLNTHWMAaLkXWJx3twwaikLaQd675qa1Jvwip54o67IwMGkndHGCxvi4Xn2r7fPEDHRar8+JXeUe26hxOtbTV9OIdXBLk3pZEraIx2VZ2Te903Kx5PNknDK+LEKIVUOl8ZFwQVxftO7WK7AsdkoqeGxYeNShHUlN0i2WeKVnZ2CQX0klyV+10lzgBbm5suB4X29ltOfXKPVKPZ8XCz+ae23GsTifDSXgYdtiro9Nm/JS9pfR6MqswYbRSGOpq42H/AIgpVLiWGVrA+nqo338ivEFfj2K182uorJHEnzVjl3N2K4NVskjq5C1p3aTytEultR4fJCO2k+T2u8tjF2nlRZZ3Hqsh2X5uhzZg7S+Ud/GPEFru6DTuVy82GWN0zdiyrJyNM1PcU424NrJww6H6roCYF5GlUpFrdCXFyQXb7p5523CadGH7k2SYl5G5JAG8XVRiTtTTsrSZrWN5VViItEXdFdidMnZzzOuo0cwasNgFC9znHTyVvM1HVDI395Qsq4drbfTvdasudRhyW4orustsqYW52kOZwuoYDRRxxNYweI8hUGAUfcXcG8rRTVUdBRune4NNtl5HanLYn2o0be1HFiIedMZZh1A6mideV4sR5LlU7nSPL3uu4ndWWYsRlr610jjdt/CbqqAK9T0nRjhxK/J8/wCobbzTYVrJVkaFl3GcemgJQRBGEh2GjCJGEAegPQ/96PpPvIIeh/70fSfeQW7D7EdbW+JCfTE91vq/srz6vQXpie631f2V59WbN72Y9j5GGELokFUUBo0QRoACCCCACCdo/wDWTSeoyO9Ucng06fyov8NP7ULTwN1RjdZfCx+1C1MJ0xArkZvJ7vEv0Q5oLHC55U+IWAJUTU17QT0T9PIHPDTwsthMtGH9mNPCGp1iCkRkkFrdwlMvezlZFWjOhDmb3CAj8Y1/knO8DbghKia13iBuk0TslSxj1cBvKSGXiAdsUGSX2PRLsTdSjw+Ctrg5R285W/S+AOq44bzRAm68mVMBglcx2xBIK9945Stq8MmgezVqFl427Xsvy4HmeaN0elj3Xau3oZ2/1ZytnFUrRjqV2l172NwQV6k9HjNRxPBP0dNLeWAAC55XlY3C3fYzmGTBc0QOMmmF7gHC617mFThYtbJTpntKzywalX5hrW4fgVXK8gNDDupFFUOnpGSNHhc0ELmPpEY/JhWWPV4n2kmBA3XnteDlkpnUyTSgeYs7YicSzDVVLnF13ncqjtchOTSGWVz3ck3KmYBQvxDFYKWMEue8bL1EahHk4rvJM9DejFl/usJmxN8O77aCu6RxsMZ7w8cBUfZvhTMHyvT0kcQB0C6u5KV7TrJ56Lzm5P1MjOvhh2RSFBzXT6B7JXmD0oqZ0eZIpWt8BvuvTwDgQS21l5/9KykAbSVIGxvcqfT/ANZpEdmPFnn6J+gh7XWcCCCF7A9HPGXYvlOOKd+t8QtcrxuwaiTfheg/RSxktqaigc+3FguvuwUoHOwZH3npCVgDzbhMCPxE3spbiHDYpqRmxsvMyVOjsx5RFMjYpQTdxXnn0q6Yes0lQGWvfdeh44QZDqHC4R6WRa2mogOfEt2g/wDkRn23+lHm6KV8cgIcQQbgr1H6NmbqjEsOOGVTy8xjwkleWiLldo9FyoczM8kf4Tb/AJLsbsE8bZztaTuj1TEZHBriLg8pUk0DmPD3CNjBckpuV2mk16tIbuuF9u/al6sw4RhLwHgFr3NK4+DF6jo6c8nZGy27UO2LD8Dc6gwqUTzC4JHReesy55xvG6syzVcrQTsA6yzlbPNVVT5pXl7nm5JWmyhkLG8xB0lLA4MG9/NdeGvjxLk5ssssngoP0lXMk1irl1c31Fb3s+7UcYwWtiirKl0tPcA36LL5uyti2X5QyugcGDh1lnww3D+nRXOMMkfBFTlBnvfJ2Y6LMOBw1VM5pu3exU8Oa95svMno2ZplpcY/RVTMe7k2YCeF6chcHxjay4e3hWOfBvw5HkXJzr0haCesyVJJC5wMY3AXj17iJHB17g7r3xmOgixLCZ6WZuprmEW/JeIs+YS/BszVdC9ukMfcfmulouKVIo2VKLKaCeWGQSQvLXA7EFeq/RtxOtxDLmiukLwBs4leUOq9L+ivWxS4PVUZeO8FtIVu8v04RVq5P25O3sNorAat1zT0i3g5LmeW2DQOq6iQxh7sC4C4x6TuKwQ5cbRNk8cl7tXD04t5To7LXZZ5cnLHPOkWPVScEgNRiMEdr3kaP6qGSDv1Ww7IMKOLZzo4dN2B1yvSTfbDk5OHmZ7JyHhwoMsUcDG2AjBV07ZRKF8kNLFBps1rQApJNwCeq85nac3R2UuA9QBseqEjDa/RGzfa1z0TUjXiQXJsFQFChC5wv0RCI/vKTE8lum2yacw6uVEYTW920nVuvP8A6VONuZDTYfG/Z99YXoBzCxzet15f9LAOZmOnAHg3/wCS36KuZn2H+pw143v5o4j4gB1Nkkm6dogDVxB3BeP+a9B4RyUrZ6/9HXBo6LJUdQGgPnFzsumsEurTbZZvsshjpsl0LGfuLR1E3dASn2W8rzG73OZ19dVFDkIMmoSbOCQ5jWv2KwWbu1vLmCOfHLOHTN/AAuQ5n7e8SqWyR4XB3TOA/UpYtOeRWLJnjF0z0Tj2PYdg9KZ6ysjja0cXBXKs3du+F0UD4sMYJ5DcBwNrLztj+asYxufva2sklF+L2CpHiSR1w1xHlyulg6eo8szSzu+DXZv7QsdzBM501Y+OMk2YCsa5z5HkueXE9SUHsc02c0j5hBmwPmunjhGKMkpuU+Tqvo2UTp85MnsbRHleuJXMipXyueNGnxErgHopYWwRVlbLH7VtLlf+kPnf9DYOcLop9NQ/YgHcLi54+tnaN0H2wKXtg7XYqMuwrBXanC4e4HhefsTxOvxeoM1RNJK9x4uVFkmqK6uMriXSyH53XeexDsubJC3F8bhtEd2Bw5W7thgjf2Z7lkZx7CMoY/iYBpaKR7T8LLQM7KM2mMyDDnbC53Xr3DKHD6amZFTUEbGDbVYbqY0NBLGwN0nlZVvvupGpaq7bs8FYlT4jgeJOpqkPhqIj8rLsHYR2jVkeINwzEakua4gNLiqv0n6WGnzRG+ONrS8m9guXYDUSUmLU80RIc143HzWuUVmxWzK5PHKkeyO2R75Mg1jgdQLAQvFNUT37wf3j/wA17Fzc58/Y+6omedT4RyvHdc21VIb3BcVHR+0PYGmkdUYGp1gkgJTHFjwR5rf4sypU7OpdhWSJMfxhtbUxH1eEg79V61wyio6CkZT04DQ0WsAuUejlVUMuVWRRFoqAPGuqs8L3Am5HK85v5JylX0dbVxxcU/sedqkNhwEnu3ab2TZl30tPKpM8Zliy3gstdO4NeG+Ft+Vjx43OVGrLPsQ5mrMWGZcgM2I1TIw0X03vdcL7QO3Coqr0+Bnu4xcax1XL8+ZtxHMmKSTzzPMZcdLb7Klw7DayuqI4KWJz3OOwAXbw6cMauRzJ7E8n6on4zmbGcTl7yorZX9bhxCLCc1Yth0rXwVUmx4LitFVdl+Yo8N9dfC4NAuQsHUQyQTOikbZzTYhbIxxTVIz/APJB2z0h2Q9rRxOojwzFXhsvDCTyu20sjZrvBvcXFl4Iwuqloq2OeFxa9puCF7G7GsebjmVqeYya5Q2zlzN7VUVcTo62fvVMsO0undVZOrI2bv0bBeKq4vhq5WuvcPP/ADXuzGqf1jDpoHDljv8AkvEed6b1XMdXBa2mQ7fmp9Mn3LtZDb/TwV0dXUiJ0bJZAHcjUUzqkkB2Jsji1agWHxcBdz7HuyelxihGJYw2zDuAV0skoY+TDi7sjOFGOT90/wAlNwujrp5NNNTyPdfbSCvWj+ybKZaAaQOvwd1o8t5GwDBoiaaijDvMi6xZd6Kjwa1q/sYH0fZ8ZgwuekxWnkaxrfBqK4x28RmPPlWbEAkf8l6+bRsEhcwNAtwG2svJ/pExd3nic2sD/wCyq08/fPwPPi7InL1o8j5UxDM1aYqOMlrfaPks6xpc6w5XpL0ZcNjGFT1Tohrdax810NvKoQtGPDj75cs59mfsgxbCsOdXskMjWi7hbhcwljcx5a6+oGxXuvGKM12HS0ro+RYheQO1TCDg+aamAM0tvss2lsvKqka8+vGCtE/sczRLgOZIonPIp5XWfuvXNHIypoWVDTs4AheEMOlMNZFKHWLXj/mvZ2QK81uUKKVu5LdysfVodv7Iepkd0aN5LptBQexjH2HKZDnd+CnKiMj9oCuLibkuTrLkVJ4mqJM8tBASnzPIAATcrxpsRuiuSSK2sqHhpAUKrnL6QtPKmzw3NyVX14DYyByrYcEjIYwwSGx81pMo4UBC06eVTug72os795dJy/RMhpWSPADbcrm9T2O2PavJYsigrYcUDIYdZsGtG5WCzhjRqKn1WCQlo5WgztjkNLTer077v3vZc4vJI50rvbcU+i9O7335DzPVd9zdINtwS0m6WElgNrnnqlhevUVHweabalYQSkQRqT5Bu3YEYRBGkRYEYRIIA9A+h/70/SfeQReh970/SfeQW7D7EdbW+JBemJ7rfV/ZXn1egvTE91vq/srz6s2b3sx7HyMCCCCqKAwhdEggA7oXRIIACdov9UJm9k/RbyhRyeDVqfKjQ4WQJWrUBpMA0rLYaP27VsaRmqNoXJznt4S7YITRsJYQ4cKbSw+MWCWImANt+akROYxwssiVk5vglU0Wm90ZibrDjsAjbKwjlORljwd1YuDOiJO1klwDZLpacWtqTuhocbIOOlhINkyVCp2xxgWdulQuOnfgqGQeSb3UyPaMA8qPdQmLka0xuJXFvSKyrHW4K/FY47yxC+wXYaqUhhY03Kg45h8WJ4ZLTzsDmOYRY/JasGXtaZRlx2jwK9pZIQ4dU5QyOiqWSNcQWuButL2nZfmwDMc9O9mlhcS1ZS5G46r0kZd8DkSj2TPZnYrmf9OZOhkkfd8TbOXGPSUxx1bmL1Fkt2Q9PmoXYhnWHL8NVS1MlmOb4QfOywGc8XkxjHqmse4nW7b5LFj1u3K2aZZe7HyUzRyei6v6POXH4rj5rHRao4CDdcuo4jNK2NvJNl7B9H7LUWC5Thlnj0zSi7irdzKoQpENSLczoVNeCBgY3wkWCcYS53NyURG1ug4TchLRdnK8y5OzsSST4JGqIHQ82d0XH/SdoGzZR9YAuYv/AJldRlmkADg27lke2mikxDINY10fja0Gy2aUv3KdhXA8Wu8EhC6V6PVaafPdPEH6RId/5LnNa0Nnc0cgkFXvZxiBw3NNHUh2mzwLr0GVd2M5GJVkPeUTAyJpve4RPceihYVP6xh8MoNw5gP9FLF15bMqkztxdIDAXXK88elk7akb1F16Dc5wdpZ15Xnf0szpqKZt9zda9D5UZ9r2nnrquy+i2B/teQRsbf8AJcYGx3XcfRWhD8xzSW9m3/Jdrb+JnO1/cdp7bczxZbyvJpk0SSNs1eNcVrZa/EJaiZ5c95vuu/ellNOY6GIkiM6rrzoCNdzuqtKEfT7vst2Jycu36N/2S5Gqc04ux74j6rG4aivWWXcuUWB0jKamayNgaLusuJ+j/nvL+E4T6nXhsUrfaceq0naJ2xYNh9M+HB5O8keLCxVefvyPtHhjCPJX+kzjWGx4MyhayN05uA4WuvNLbhuonlXGZMerMfrzUVkhduTYnhUz93WHAWrXxvHBRZVmfdOy1yriT8Mx2lqo3EFrxuPmvcOUcQbiWBU9U1wLXMG68FRnRI13Fl619G/EjimURA+bU+AbrH1DHcbRZr5HdHVJtAIY82BXmD0osCdTYzDiccOlk19RC9PCHcFxuVznt9yzU4/lp7qKLvJIxsFg0M3bPk27C7oUjx1cLb9kucZcqY9HNqIgc4a/gsvi2E1+HSmOrp3sIPVqgkODQCbAr0U+zLA5Ci8bs99ZazThWPYZHUUk0bnltz4rLzP6T2MsrsyMpYJA5sROoBc6wLM+LYMzRRVkjW+V1W4tiNVidY+qqpC97upWHDqrHk7kWzzucaIIA1C/C736LOCMqMWqMRLLiG1j81wmCJ81RHGwXLnWXsj0fsu/oPKkTpI9MszbuPmrd2a9Oh6sbkdDmdrLSG2ASgQWod43SNIvblJEjXAjhecZ2GqFNcd9O5CdidZhLx4lHic5rjpF7pchl06i2wCBBmR+o7WCNri47pqN+vcIi83sogSZ3jRYC5Xn/wBKTCRPhkWItYSY76z5Lu4c4u2G9lmM7YO3MGXJ6SaIG7TYrXqT7Z2U54NxPDAG5T1OdMjX9WkFWWasInwbGp6GZpBY42uFVbgr0aalG0cd/qz1/wBg2baXF8sRUT5miohFi0ldLmAkidEd2vBBK8KZOzLW5exKOqppHNAI1AHlesuzTP2GZmw+JvrDW1drFpK4+3rtco6Ovm4pmC7RuxaoxjE5K2gqzeQ3ItwsHUdiOaoy5gg7wdDcBesJmuDgNGp3mEoQVGm7mgjoqsW5kgqLZ4YzdnlzAewrGqqdsdc/uGA77XW+j7I8t5TwyXE8RmZL3Tbi/muvV8sVFSumqpGQQ2u5xK8xdt3aM7EqibCsPnLqdhsSDyt2HPky8mXLCMDmudKylrcdnko4wyEOs0BVFLEZZ2xtFy4gBNi1tRNy7la/sqy/Lj+aaemZGXNDgXfBa5y7YtmSCcpnpbsYoW4D2dMqJItEj4yb+Vl5r7VMbkxvNlXUyyFzA6zQvWObAMMyNURQN0iKGwA+S8U4nIZcQmc/kvP/ADWLVXdJyN0/1jRsuw/LozBnKBkjNUUbruXsUUsdPSMoYIQI4WgbLgfon4aw+t172+IW0leibOJcXCwKy705OTSJ68U1ZBhkDWFpdcN+CfdYMEhNha4Ruijhf3w3cOAsF2q57pMsYPO3vGuq5WkMAPCwYMMpSNOWSiqOFektiEdbmoRRuDjGd7Fc6yzTurMepYo26tUg2/NNY5iNRi2JS1lTIXvkde5XTPR9yjUYjmWPE6mAinhNwSNivQ/FhpnMcXPJZ2rtKBouyUwO8NoRsvHdQS6d9/3ivavbHD3/AGf1pDLDQA0fJeK6japkH+8VVoO7HsqqChikkeGRsLnHgAJVVSz0zw2eNzD5ELfdhVDRYhnCGnrGB7SbgFb/ANIfJLTE3F8MpQyNo8QaOFqnnUZdpBYrjZzbsqztUZZxVjXvIpnkavgvXOWcWp8bwtldTva5r2jcFeEA3Qbu2IK692D58lwvF4sLrJz6vKbC52Cy7uBTjaL9bN6fB6e9hxMmzALk+S8w+kZm6bEMbODRPPdU53sebr0tXzXw2SWEh4MZII+S8TZ7kqZsyVj6oESd4b3WXQh+3P0XbWVzjZWYdAayrZA3mRwHyXrDslyBh2D4TBUzwNmqZG3F+i8l4fO+lq452csN12zAO3KqosMZTTU2p0bbA6lv2IuUaRjwSS5Z3TM9RSUmBVRkMccOgjey8WZnex+M1DmWsXm1vmtpnftMxTMUXqkN4WG9/FysAIKipcSyJ73DdxAuo6uFwVstz5e/hDANnArt3o1ZhkgxCXCtd9dtAXEXNc02IsVqey/FH4Xm2kmDtILrFXbMe/EynWfbOme1Y7y0j3P2JaV417ZaZlPnWsa3q5ev4Ly0ccjDZr2Dr8F5a9IbDnUmcJJgDok6/kuT0/ifJv24Jw7kc4oS0VURPIeNvzXtjs4MEuUqF8RGks3svEEZLZQ4dCvWXo8Yq6vygyN77mIWstnUI/pwZtKr5Onvdd4aBYDgqWw/slDcCHC6ecTZoH5rzdP+nXdd1iQXanEcdV5V9JePTm8vts7/ANl6sc3w2byeV5i9KCmezMEM2nwm+66XTvkMe27RxQEteCF6s9GxzY8mh4F3n/3XlR1g9q9UejZ48oBrdyOV1N9f8Zg1fcdba8SRkkWd1XmD0nMP9Wx6GoDbCW+69MNLu8DQN+q4b6U9ETS01SW7NvuuX06fbOjobK/U87M/1R8CvWHYDW+uZNij1XdENx5bryc0+IFd79GTFgyaegfL7dtLV0uoY+7GYtZ/segO7DW3PKadrLtJ9lGXue7fonSQQvOL9XR3IcojysDQob/EdlYTWLFUSaxIQ0pImIqHaRZVOIG7SVaVLCWqrrm/syrYcgyjhZqxGM3s0G5WozDmWGlwxlNSvu8CxsshUXa5zwbFqp5pXyyuLnEpT6as81I5HUNl400hVTPJUzOmmcSSUTfNJRruwwqEUkeRyTc3bFowkJTVOqRF8ikEEEiIAjRBGgAIIIIA9Aeh970/SfeQQ9D73p+k+8gt2H2I62t8SE+mJ7rfWfZXn24XoL0xfdX6z7C89lZsvvZj2PkYq4REhEgoFVBghHcJKCAoVcIXCSglQqDJFk/Qm0l1GPCfox4lHJ4NWn8iNJhW8zStnRvaIRc9Fi8G/wBULWU7C9gF1yM57av+NE2OQOJN9lJiBuD0KiNpS1g0nlTIW90G6issRyY+HtbsSlxvJuWpnuw9+onZSo3tDdIFlMq8CDNe46hG9z+5JDbhFLHbcdUfeN7nRfxJNkkNwDxXedkusn06NH5omtOlKEbXNOvooiaIDp3OlJUkSulYI28dUnu43OOneyDmujF2/mkm1Ib5Rxz0jsqGuw79LU8PjjHisvMszdDyzyXu7GaAYtQSUckepr2nlePu1PLdRl/Mc8T4y2Mu8JXo9HN3RpnJ28VPuRkWOcw6muIPwRAOdd3PmjcCNinKVpdM1o6my6cmkrMMU3wbXsgy5NjeZooiy8bHAu2XsjC4mUVGyHToaxoFlzD0fsqNwzAGVssP7eYXLiuuPpwYdjdx5C87uZu+TaOxqQcVyFGRI27dwkSDxgdE5EwxMAslyNbov1XN5+zXOgqmnYYWubys7nWF1Tl2uhte8fH5LRd54QCotZHHLDLE/iQWV+vPslZXlX6ngbHoHU+KTxPbpcHm4/NDBSY8Rp3DkSNt/Ndf7WOyjFW4zLWYXTmZshuQOir+z7snzDVYzBLX0JigY4E3PK7/AOTB47s5kMT9Sz05kl7nZYoi/wD1O7Fx+SuHOsFHw2jbQ4bBTtt4G2T5Y54Nui4GVpyOmhuJxEhJG3ReafSwqDJj1NFf2b3C9MgAB1+QvJ3pNTulzi5ruG/+y2dPX/IUbPtORyAE3C756JNhidY61z4VwJhuSu8+ifUCHF6hvU2XW2vjZztf3HU+27KgzRgEzoo7zwi7V5CxfC6zDat9NUQPYWEjdq+gErRI8eEaTyPNZnMuR8vY06R9bQMY48OC5eruem+1+Dbmw93J4biEjTqaXNI8k73VTUPAEcj3H4Er1uexbKrwHtpw8D4kK3wLs1yxhkwd6k026kXst73IVwVw1uDzJknszx/H6hjzSvjpgRdxVv2wdnL8pU1NUQ+OJw8RsvWlKyjp45IKSBrWi2mzbLG9rOAHHcoVILNb423b8FnW9LvoJ66SPFrxZ2krtHoxY8aLMEmGyS6WT20g/BcfxGndTVksT76muIKuMgVjqHM9JUtk0aXgfzW/ND1MRnxcZKPdkRJLXHgjZJka10Ra8Ag8jzTeEyx1GEU8jOrAb/kpMYa42K8y4OM+TrR5MrmvI+X8wUL6eShY2Qg2kHmvJ/ankmryni743xn1dxOgr282ONoJAu7oFzrt2ytTY9lKeQxhtTE27eq6Wpnd19GbaxRcbPF3WyCXUxuilfG7lriEVOA6VrSdiQu2n+pylxwdB7FcpTY/meF8kJNPC4F5PC9kxRClpYYIWhrGNAAC512EYNh9Lk+nqoWNM0g8RXRxqLrnhcDezSs6etiSXcGQwHbjqlHuRbfcogGj2kHBh45WE2N8gkbaxZuOqdik1eAjbqkQsJuX7DojneGAEIEE7TqLWjhMhjr8J8aTGHDk8pxrPASfySGRDqYQQm3RktJaLgdE5JqDtx8kkvsD5Jp0OTtUce7bOzqPHqV+JYfCBUtBLgF5jxbC6zDKl0NVE5jmmxuF74LGSNdbxeY81he0bs3wnM1A98ELY6m3I811NXbceGYcuqnyeNb2Fj1VlgGMVmD1kdVRzvY9huLFafOXZrj2ByPvTOfE07OHksQYZY3Fr2OaR5iy6zlDLExNSxvg9CZS7f5IaaODFae7mixeStDifpBYLFTE0sPeyEcXIsvLBDkmxVH4uNkvVyHTs/8Aazi+ZR3MT3U0O9wHXuubyv7yQyEku6knlMtGo2Cda3xaS0k/BXQxRh4IS7p+Q4YXzzNY0G7jYWXqf0dclnCcHGKVkWiqlFxdcx7Duz6txvFWYjVwFtJCQQXDler6Wkio6SOCFgaxjbCywbuwo3FGnWxNOypzfRPrcBqqZo1amGwXiPNmFVOE4vNDVRGN+s7H5r3m151WbYt/EuYdr3ZjSZojNVh7WtqgCTZZNHPTpmrNibRxXsR7Q4coTyw1Q/Yykb+S7hJ22ZSkpw4VgDgONJXm7Hez3MuGVDoZaKRwYdiAqVmXcadIYzSTAj/dK6U8eGflmWMsmPhI7vnHt2pm0jo8LHePcCAb2suD5jx2vx+udU1cz3uedm34VxhPZ3mbEJ2xx0MgBO5IXXcg9iUdJIKrHW94BYhvkox9HCuBuWTI+Tm/Zh2b4hmaujklgcylBuXEcr1ZlDAaLL2FMoKaJvgAu6ylYTRUOE0kVPQxNZGBYWCmzBzAHAX1LnbW25ypeDViwqJnO1djpcl1zIm3JZsAvD1cxzauXULeM/8ANe+q2n9eo5aeUfs3izgV5b7W+zTEcPxqoqsPpXPpnG4sFfoZox4ZRs43J2ZzsTqO4zxR3NgSd166xekpsSwSWnmiEjZGAAH5LxpkET0Ob6TVE9rmvsfCV7WwhrZsPiPXQDv8lX1KbhJSiT11caZ477W8m1GV8bce7IglcSzbhY2jmdBI2Zji17TdpC9odp2U6bM+DywyxN78NOh3kvHmZ8HqcExeWhnYWljiBdbdPYWaFS8mXPicJ2vB6M7AM7fpvDjg1fIHStbpGorLdt3ZnV+vy4jhkJeDu8DouW9nuOTYDmCnq2Ehusahde0MEqI8ZwmKtdG2RkrBsfkq8revJyiXQSyQo8MyYXXQOLZKaUEGx8JQjw6tkIDKaQk/7pXtrEctYROS6SgiufgEijyvgsZafUom2+AVa6ja5Q/xVVHlPLHZtmDGpmf9EfHGSPEfJegcndl+D4JgzmTxtmneze44Nl0BkMNOQyngYxo6gI4HPbu8XWXL1GffSL8GrFI8Xdp2EtwjNlVSRs0sDtlmqKV8NZHIw2LXA3XcvSfy6IamLGYGbPvrsFwe2xdex6Lta8/UxHP2Kjk4PanZNigxXJdG6R2qQNsSud+lRg16GmroYrlt9TgpXow4manAZaOV+7LaV1XN+XKPM2Evw+o5t4SQuK5+jsM3V34UjwmWm9hyV3z0WsQtVzYfJJzbZO4z2BzuqHGiqLC/FlreyTsuq8q4i+rqZdWrrbhbNjYx5MdGfXwSjI6lNf1h3l0Tjbk2so776xqPsp0z+CwC4jpHWQ7I1zCLLiXpQ4R3mFR1zWX7sHUfJdkM8hbe9ysl2s4U/H8pVUOjU5rbrRpz7chRs47jweKyDrsei9Oei5WFmCTscLtFrLzjVUMkFZNAWO1tda1l6X9GrCJaHAvWJLtMu9iF2tycXj5MGtjalZ1+oe1p1Ws5cz7eMKkxjKxEEfeSMBNl0ap7+R+oAODufgkiiglaY52B4kFiCvP4Z9mSzo5490TwRUQSQTvie0tLTYhbPser6ihzjRujvpLrOAXcM2diuG4piMlVSTCAuN3NDbqbkTsiwrAMQbWTTiSRpuPCu1l3scsdM5+LE4yOiR+OKN7WEBzQQltjcb26K0bDEWt0gBrRYKFJH+0fc2B4XCm03aOxjb7SK+PVsSoFREIX3ViGFj9zcJqpY15u7hQZKyBLETHqsqeub+zcLLRSuDGWHsqgxuRoju0W81bi8jsylaLF46lUgHjcrieTXKb9FU/jcuvrI8z1nhhWKABRo2rT4POrhAAKU1BGErHYaCCCQgBGiCNAAQQQQB6A9D73p+k+8gh6H3vT9J95BbsPsR1tb4kI9Mb3V+s+wvPi9B+mN7q/WfYXnxZ8vvZlzr/kYEEEarKAkECggAIIIIAI8KTQe3ZRzwn6AftVDJ4NOp8iNBg7x3oWxo/YBWMwYC4J5WspHPDQOi5Gc9x/+nEszJbTZSGtfIW2F1BmuGsLfzUullsw779FliEl9ksNLQb9ETZLEFougH3iOr2ikwtJ2AUyiySXmRnFrKK0/tD8FJiiLrg7JTaUMJPN0mgsYlu4N0nhFG2QAjlPShsZAPVJLeCTZIkmFFGTcgfNGQCCCie+QDwDbqja0ubqTfKATCCL25K5r26ZIZjeEOraaLVURgnZdNELpmkNNrclKiaHQvp3NEjTsbq7WzvFKijLHu4PAWI0VTSVMkM0TmvYbEELZ9j2UqjMWY4Y3U7nQtcC4kL0zjvZfljFq71ipgZqJvsrjLOVsJy44jDqZrXW5XVybvdCkY4a/bOy0oKQYdRRUsLQA1oBA6J+MysdqG/wRx6nN1OdclBziAuK21I6kUnEca4vNyLIOAO1002Qm4TIL+8vewUXIh4J1PDeTxcIqumaSXDgcIMk8F7pmasIPH5IB8jMXia8SRCT5p+GVscTmtgDLfBNxRaT3veaS/onZH7ASEW6J3ITgkhsTwCXQ0EEp5z9Nm8E8JJjhDQ9rrO+ScAEkd9Qc8cBK5CQ1G14mJkFgvJnpMf/AI4msdj/AOy9YSXc0hxs4Lyb6SjCzOjwTf8A/wCLpdMb9SjPtcROTDYrt/oq3dmGpb8lxEWXZ/RZkLM0ytHW3/JdnZ+NnO1/ceqiAGg2uQo7nyPa5rzfyUku1R26ppgc0nw3uvKuNs7aVxCbJJBGPDcHlPwztdGSbD8k02Nou5zr/BKMYB1t3+CcU4/YlxwJdu8O2skPg9YpJKZwBa8WKTOTcEcnokt7zUDuArO53YnBSPMvbX2ZYlQY2+sw6lMsEpJOnoufYJlHHpsQjEdHK1weLbfFe4paeCqhtMWuA6Ft1D9SpGCzKSPb8QaFuXUJRjRn/GipdxXdnkddDl2lpq5pEzG2IWjDSx+6jUbWwO7z+QspcxDi1/U8hYck3Mt8Bue1jdZ4C552rZvosEwupiqJW949hDW3U/tHzzh2V8JlMkrTOR4W3XkfPOaazNGLPqqh7tLneFt+F0dPWapspz5ItUZ3EJe/rZpQLNc8kfzTLNjf8QOyscTw2qpKSGeaMiOS+kqsB8QK7MfBy2qlR609GTEX12V3wvcT3VguyadIuRsVwb0VXOZgdTtsbLusj36AF5vd99HW1/Yg2OjJNkrS148I3ChN7xko1iwdwphcLDRueqoZe0Ic2XiyEVy8seEsPsfFsiY098XW2QRGqi0V9J2T9POO4PUpM8eu6QInhg0j5oGNNle57tTNuiURrBBbYo9r6R7SW28ZuQgYzHCWhxIskljC/Va7h0Vg+T9lfTsopuTqLbApEnK1RBrMPpq1pFTTte08ghYnNHZPlnGtbhTtpXngjddEsm5Abq3HmnDwyl40zz1jfYEWuJw+s134GlZqo7CcytedvB57L1N4w4WCek1GPxBa47s/6QeCLPLlF2B45JYyv0M6ustnlPsJw+mnEmIVHfFpBALV3Zsumn0Bm6aYbG9rKMtzI/sFgihjBsLoMMwttBRwtjDBa46qUdXdCM9OqbLnaiW/mgyTWbeSxZG8ku5l0EohGIaTva6jiN8biQVMsSL+SAa12xUYycfBY52R2Mimv3sEbr8ktCL9D4aTr9XhDv8AgCkhoaNkl7iOFZ6smV9qER08cVxGyNluLNCU0a2uY8WCIPJ5S4wXAkdFCU5P7EoJOxIjjY0NtfySmDRcv3B4RkNtzumnvIIB68KCdE7FvMbpWXbsOUmspoauB0c7GFjtiC1EWkkEJx7gG8pxm4u0Ra7jH/q/y63FP0hHSMZK03HxWkfdsdmN08CwTwc199J4TcgVmTPKa5Iwh2sKbQZBY3bZef8A0jcpwNeMWhbY8mwXfgCqXNuA02YsNfRzgXItdGplliyX9EtiCnHg8Q301LJxsL8fJevexLEX1GSqSV4LxYg/Bc6PYURi2v1i0Adciy7VljBqLLeDQYfTWcGjxLqbWfHkjwZdbDKMuS4lDZWh0TduqRFHqcWhtz805DNGWkAWCQI3PJ7v2ui4bXPB0JVYHxNBs8aT80gsa32XXS3wvHtnxdUI4rHc3UHC3ZFOjO57yzBmfBJKKWweR4TZea8wdkeY6HEHxwU5kiB8LvNeuni2yj1DI3sN2gnpst+HdliVIz5NWOR2zjnYFlLE8uGaavYWOfbS1dtbKAzW7wuPRQ6UMA8TACOE9IRpueSqsmX1ZdzLoQ7FQc8zHt0t3ceT5JbJZxCIwNQ81HYwN3G5S3SubwqHZbSDbAdWpyS7Z+hoRd+5/hBRSERt2N3KNCkqCdAQ7lG6na6J0TjdjxZw80pji5tzyjLrKzG+12Ku5GNq+zbLs1W6rfTNLibkWWlwzDqHC6cQUEYa0dAprnXao5a/VdqlkyykR7Uh2xvsUrUQ0ngjhJYSGkv2AROcHi7SqKLIofhlsw/tA0nkWTdi9x07qNJrb7IuihklY7jYpi7Fdk5hfDG4nhMMmEjiQeEmaZxhcCm6cAMuOqdkxyZ1m36KMZO8GkDbzT04Do9N0mEMbGW23QBXVLXx3JPhVNiml0Bsr6vuYyFQ1jbRuBVmLySRkpGkSvPQKsBBc4jzVxUiz5FSx+075rsYOFZ5rrfkWEYRBGFpPOhowiRhIA0EEEAAI0QRoACCCCAPQHofe9P0n3kEPQ+96fpPvILdh9iOtrfEhHpje6v1n2F58XoP0xvdX6z7C8+LPl97Mud/8jAjQCCrKAFFZGggArIWRoIAFtk/RbSpnonaT/UKhk8GnU+VF9g25HzWxoxeMbLEYK8lwt5rc0ZaKcea5Gfye4jzBC5bu0gFP0kZY4m97qHI86hpT9NP+1a0lZYkpeC1iLXeEndS6aINdqdwoUYa912ncKfAHabHdTRmY6A1riR1RPcOLpucltrJtjnOPxToiHOLj2bqOLtJvupgJDXbXtymtJkubWsotjTI8hdawHKk64mU4BO/VNPLWkAlEAHc8JWTQTpXRC42DkiOcAOF93IPFzZ3A4SoYmEE+STVjDpGvY90hk8Kfa7VIX6rhRw4h2kcHlLc0j2ShNoHTH2AhguieRa3mlMc58YbbhAs2ueibduwXCGYmPEl7cp7Q3VukxO/abpUzX6rtHKVEH5A50cQvfnomGCOSTvCd/JOOhkNtbfkkmAjfgBSXACqiIv0vBsAo2JPgpqR9RK/aFpKnsaBHcm4WB7aMTfhOSKucbPeLNV2CLnOiGafbGzE4n26UtHjgpfV9dO12kuvwutZSxnDcy4YK+hnG4uQCvB9dO+eofI43L3XXdPRcxit/S5w9znGnHIuupm04wx9yMmHYlKVM9GPheSwg6gTyvLXpQxCPObj5/8AsvVZJEo2sDwvKvpTvD857H//AGyz9OX/ACsnt+0418l2T0XQ92byGi/n/JccHku0+iwCzNz3u9kdfyXZ2+MbOfr+49VllmNPmm3RknmykSDTG26buCdl5g7cfA2Ii3cm4RMkPekDhPzh2lun81ElBDgWfmkDRKdEHHVZANaNnBMNmkYALFL70u6bpCHGtY3V8Uhoc5+lpsDyie+wu5LYP2Re1EfIpeAmPc2UsIDx/wAlke0nOtBlfC5Z5ZWicjwNurPNeOUuAYFU19VI1oa3a55XjntGzhV5nxqaSWR3cB37Nt10dXX9SVvwZM+dpJIi55zXW5mxSSpnldpJNm3Vp2VZLq8z4xE4wudSNN3lVeRcr1WYsbioYY3Frj43W4XsHImVMOyfl9kLImiQRkvP5Lp5cscaUUZscG5Wzzt6QdNSYY6hwmmaGtgBAsuRRMLnAAdVu+23GBimdaosfqjY6zVmso4c/FMfpaKMHxyC+3xVsG1C2V0nkPU/o74S+gydDPLHpMov/VdVbJfYNVdluijw7A6WkhjADGD/AJKx6bixXnNl90zqY49qoQWDvWkm6fLmxb2vdNtBLtk69pbYEcqssbEyXl0lo2TzGaY/Fz0TD3PaQLWHRPB12i6CIwJB3hafyTlyNh1SS1veakzIJHyXbewQMe7sMdrcme9c+YhjbjqlPDwB1tyjjmbq06bICxT5C5haRayGkiIEpvuSZib+EpTnsY7Rq2SAO2wKFmfiQ1C+3CS4E8JAmONMY43KQ+S7tJFkTWkG5GwRmEvOvp0QMUWOa3URsmb6yQzeyVI4tAbfZJia258VkAE3vWOtpvf4p140i5ba6SbDg3Kae6RxAtsnYCjJcENTMbpC87JbgW2t1TgZZupJgECeqM8JAkZci6DiXDwIAUY3W1W2KEbi0EDlKu8xt+HKKVpEYc3kpAJiLi52rayMhr9r7hKGkRA9eqZuRID0SoANBJcHG1kiS9wGHV5pVQerOqjtLwSbJDokxtAF+qTJsE0yR1z8E4HNfz0QTatBMuQQmmtdqNhwpMWlsgv1Ts0QDgW8OTfgI8Kirq3kgN03KNscpJcG6QVNlgYSCOUHNPdkjgKCj/2TsiNu02cbkqZS+B4c7YKK0Bzr+SkREkHyCdEWrF1T26y7omoy2T2XJzU0xuHKRHZovawRRGuRErmMNi65RAsIuSidI3vCNN7pE0Otoc11knFD7R9oj5CTNawsktIEYF9wi1h9wCmuAqmG3cbdE1K5oNieUsNsHFxsE00Bp1cpEkxcbHN8bhZqPwufrvcJTHmVpZZIYSxxaRwgHyOFw6InPsOEnvA4kDkJMnspgkGJmuNrJXQlR6d2lzjZPumY9lhyotg0JlYXx3BsijfZoaRayVrboAvumyx2+3KQ0OgxnkopA212m6bEbkTo3ttbe6YwCSxta46pL5XOJDG2ATmzGna5KZbreTpbwgBLnuB3CJ0h6I3B3VFa3KAGKoksJKosQd4SFeVR1RELP4ndg36qzH5JIzlYLOefNUrBYuv5q8rvZJCpbgudZdnD7UeZ615DQCJvKUrzz7AjCJGECDQQQQAAjuiQQAd0LokEAegfQ996fpPvIIvQ896fpPvILdh9iOtrfEhPpje6v1n2F58svQnpi+6v1n2F58WfL72ZNj5GABHZAI1WUhWQsjQQAVkLI0EAF0TtKfGU2eEum/1FDJ4NOp8qLjAh4h81s4tXcAhY7AwAQfitnROa+MNBvsuRnPcY/ahpheZBtsOVY08A1CQjw+aZqmGNg0C9+U5SuIhsTysiZOXgsqZ0YcdJVhC4WVZStaWA33UovIAAVi8WZnySnlh5KSA0ODhwOVFJ1OBd0T4kjLQ0ssixUNyzjvbNOx5Tc0r7gRbjqnXxR8sHzQEYHRRENsBeRrTzmgeEchJJAIPQIppHtmvG24tukTQru9TdXQJOzSA3gpNPJLLC8abWTbtbSLiyLGPl8TGm/KbidZ1ydncKJKe8lFzYKTTsDmOLDfTwkIf16DZLa5x6bJhrnNsXDlSWTta0XHKaAWAwC55QbLpvcX8kHEyW0hNOBF/gmRfkN1ZaZgeLNUh0jJnfs/ZHKi9yyRt3m1uEGwlrHGMk2TQDxe1jw13slcU9KjFDBgVPSxG7X31Bddilkln0Pbay86+lTXF1fT0oPs3uF0NFXNGbZdROEg3vtyvRfoq4QGR1GJStsDbSV53o43SSta0XJIC9j9h+Csock0zXDRM8XcF096VQoya0ebOj1OhrXPB2aNl439IauFXnqoAdqDD/APJercx4gMIwyorZXDu2sPJ+C8RZ2xR2L5gqqtxvqebLF0zG+7uLdqXFFI3d1l3f0WKB82NVE2k2baxXComOc9ukXJK9cejPgr8OyoaySDTLOLgn4Lobs6hRn1VbOoVU8zp2xaTtwpDGlttXKJsoc8Oc3cIOm7x9+gXnW+TseB6ZwDAopB1X6J6RzXM2O4TLLm4SEOGUNbbTdMvlLXXAujdET1RRsAO6BMW6TvWbi1koTMjjDnHSwA3Qexphc1vJsqTtCrWYZliqqw7ToZsrcMe50LK6iedPSIznLiOKvwimmPdRGzgDyuPUdPJVV8cETS5zzYAKTj9e+vxaoqZXFznvO/5rpHo75WGM5nZXVMd6eA3uRsvQQisUDj8yycnauxLJLMu5djqaiIeuvALrjcKb2wZwbl3ApoHvHfyts3fhaDNuYMPyrg5nmlY1zG+Fl+V5F7Uc6VWa8afO5x7hhOkXWKOKWTJf0bcsoKPBksUqn1mIS1Ehu57iV1r0Zssy4lmf9ISwaoIN7n4rlGG0ctfXRQQMLnyOAAAXs/sZy1DljLUEJjHflt3u87rVtZvTx9qMmDG27N2bBjGWtpFkm19kCdV3nYu6IwV51ty5OpFUh1sbXRusbOHCIxv7odXJIcUZkI5KAE1O0cZdyOUYI0goOu8WITMhLC1pTAfboJ3NkoysDS0DlAPDGWAvdMuY4uJtygBD7g3BuOqci0huoC5SHNIbbqUpoLY7HlRbAISOfIABsEJGNMiOB2h5JGycdJqcbNQMRKA1rbJLCBe6ORhJFtyUqGzA4OG6YvsJzh3brcpiKaUO0gXunrPfqu2w6JpjS2UEjhAw6knw6hYptjg3nqpMrY5Ny7jhNa2h4a5vyQMAd1sjMgFgQnZWlzQWtSYmsN9XThIVjc0lmg6QmmPdJs7wjonakXbYJuEs02J3CAsMQNbvflIljO2g/NO699ykSy6RdougYmLWw2dwU6xztdiPCm43ukHs7JyONulxc6yABOWMe0A8oiAQkMZd9ybjonJSxoG6AGZW+Sae19xYKQWOI1DgptzgDuqya8ghY0NN+SiEZBJATcrnaho3HVPtLnNGn800SYy94ZuU9BOJG7nYcI7RlzWuF7pFSNBAYLBMhY44i43RtFhZ2zSoet9wnS8ObYuIsihphyNYHHQU33oYbX5SW3JdoN033MznXLUDJTmtkYdDt0k6og1vtXTbmPFhwnI43AEv/JJifkTM0ktIalWOmyWwuBN23SnSW5akwshvZJfYbInMAbqvaylySBzbWsokrtOx6pDsb9ac5pYWmyeh7sR2BuSjZ3QbYjcoxEWm9vClYCWxmK7h1Twa0t1k7jlE4hwAHIRBt9ibJjQy4Na8uHBQb4jsifE4PIG4RxgsvqTJCnQsI2NimhAWXI3CU6VoOxSHTXaQCosBbGuBFm3unJZACGuFim4pQGeI7jhOsDJRqJ3CQxcbRoJd+SYuS434COd7vCGbgcpt4u3c2TAD3AjYpuMkarJDIyHclOAEm3BCAGnd5e/CQ15dcEp+a7W2czZRy9kQJERKAItSSL2VDixJvdXk0wffwaVR4qb3V2JckkUVWP2T1SMHicVe1P8AoyD4KkYNyCuvh8I8x1r3ACNC1kFoODLyBGESMJEQ0EEEABBBBAAQQQQB6A9Dz3p+k+8gh6HnvT9J95BbsPsR1tb4kF6Yvur9Z9hefF6D9MX3V+s+wvPiz5fezJsfIwwjRBGqykCCCCAAggggAHhOUo/aJs8I4SQ/ZQyeDTqfKi8whmuwBWtwpmloeTssjlx+p2/RbCibqpb3XIznu8a/40TZna2GyXSxPczYJoNMkFhtZP0B0bXv5rGkRlIkMDo7eakF+loLtks6dGoC/mmXvc9pAapoqodY7WLtOyLvATpD/wCiaY64A4IS3i+kgfNIBz/TBdr1X+CXHIC3frwkRlriGlHJNFG4gHcIsi0B5FiEnvgJfDuE4CySPU5qaDYwTp2KBocD3NaNItflJeQ9wHXqgwvsQ51x0SWgh2pIYdRC1rNvaKOAd1GAdtXKbL3GQl3ASpJGPADTe3KAEue/Vs24CV34cWh2xCS1wIdvxykwR63E2TAnNkDLb8pOo3eXdeExqJeGnkKS4OawGwKYqAHAsHwSopgxrhzdMumYNnbFJa4WN+qAoXC6Mz77E8Ly76UTJf8Aahhc2zTey9MTXLS1vJ6rmnbvkt2YsKbWxR2mgBNxyVv0cqhO2ZtnG3E8v5aMDMZp3VLtMYeC5ewcuZzynTYHE+OtjaGMAtf4LxvidJU0VS6GeNzHtNhcWTZqKnQB3z7eWoruZcUc0fJzIZvS4O49t3ajT4lTHC8Il1RuuHOBXCnuMjrW3PXzQIc/e5KvcoZYr8wYgyCmida4u63CWLHDXhQ3kllZbdk+VanH8wwgwk0zHftHeS9lZcomYXh8VFEAI42gCyy3Zfk6kyzhUcTYx30oHeGy3EYZG1wed+i4+5sOcmvo3YMKirGpHN75wZ14SxGWtBPVJDWXLhykzyPcWhm4HKwI1jvDTdIjlEbztdOw6XM8R3STEC7ayTAN8zXjZNNPi5SX6Wut1SQ7dAUSInhrwTx1XOfSHqJIMj1bYydJAufzXQw2/PCznaNggx/KlZh1tUj27D5LTqzqXJTluqPDjrd64O2ueV2Psu7SMKyXlCanZGJa6UfKy5pmfL+IYLiElPUUzxZxsbKme1zTZwIK9IlGcfJypd6fBqM8Z6xjM1U+SqmcIyfCy/CyrWOkcA0EucbWATtNTyTzMZHE6Qk2AAXeOxjslmqJ4cZxyHu4uWMcOVXOcMKCEJTfI56P/Z5I2ojxjEKezeW6gvRdNHYBgZYDr5pinpIKWFkNMwRsaLWCmxvDQAuDnzPJJs6eLGoqgpL342RF1k5Idk01zXLMXN2GHN6myGxIs66FmOaCEh1mkDzQJD7nWbsd0zKSSLoPie63RGIJGDU7hAMdY8abWulsYTcg3TMYudk+2Oa4DG3v8UWIbl9oJMzgGi6cnY6MjWLFNOewNOoXukAjW3bflO6tDbkbFNOkiIb0IQ74OYWjdBIca9gcHakmZ4LrtROeWRguaLJszsdayBUPRyuaDYXuk63OJuLJvvWAXJSTMzYgpryNIetqF78Jue9g62wSBKXPAZuDypLXt1CMhBKgqaUlhDvyRSBwBc0bJbxZ2wsAkTPY6O2qxHROiLQ212oG6aJDQ7zS4XamloHCAiJJuEhURmOkMm42UxzWd1udykmMNCbLXP5NgErGiRE5kcZbtumnx6zcO2TT2BttTrXQDnRkad7oHVDrCGXF7lNzh5bcC6eb4rEtsnnhjWg3SAixyO0taboqjSACPzUq7H2s0DyTToi7ULJUCZE1AWv1Umm9lyWKcFm43Cb0WuCbIomIcQJQSnvDISRvZR3ssebpyncGh1+qYUgFjL7JL26RsLoOLiTpCK5sQdlGwojl7mniyep3uN029ridhdJEb27g2TsZMsXbu5HCAa83uNgojTKL6bo2zSXsUmKh31hocWt3I5RyuLgCQofdudI517JcZlivrFwVFiocDwTYJLwHEJ1pY9t+Eh9rgA3QNBljS0EdE1LOSQ1u9uVIaCxvj2BSO7Y43bv5ooBnUdB0+0lESdxx4kb2vaRobfzSpnPs3U2yCSG2gljQ82cg9uhtyb3SSC8i5tZCdji0Bm/mgVjWhztwEuOI76gnmtDYh59UnvG3tfdFDC7lztmC6S4SRO025Ulgc2zgNkgPbLIbnhKgsRYgXKIm3AupDwxzNiNkw2wdynQ0w2h+oHQm52y6wQzZTA5jWgkoxNDY3KKCyJpe4bmyRIw25B/JOyvaX7cIEbXQNFPiMbmjUeFna3xalqcVN4SsxUiwJKux+SaKOp9mQKmb7b1b1e3efFVDR43LrYvCPLda9wDyjAQ6owtBwpBEIBH1QQNoCCCCQqAggggTAggggR6A9Dz3p+k+8gh6HnvT9J95BbsPsR1tb4kF6Yvur9Z9hefF6D9MX3V+s+wvPiz5fezJsfIwwjRBGqykCCCCAAggggAHhKi2O6SeEpouoZPBp1PlRZYE8tk2Wxw6R3qtisXhz+4kuBsVqsMqu8jDQLLlZ0e5xv8ARIt6afhhO6sqZrQ1ziq6mbG1wc82UtszPFpPhWF8DcUySycOuwKQIyIh5lQIy2+oHlSWTEObq4Ssi40Gw6Hm4Ulk40EBt7piTS4Et6pcUT+7BspIixUOnUSTueEzUwNknaS63mno2NL/ABG1kmcNbINJvdMrY7sxga11gmSCT4t0uVrtLSOEumDXtdc7hA0IaNI4tdGTsm5XPMmkDhO6Tp+KQxnUwEhxsibHuXNGyV3JLrkbJbnANs0/NAEaPV3zgPZPKfaRG649nqm3gtGpv5oN1GJzncJgLn3cHx7pDZZnnT0Ccj/0wTwnIjDq8Lt+qYDbTGb6z4gjA1k6UUlmynSL3R3eLeHlAC2WjvrHyRPDKhpbK0aR0805Gxx9oWQe0AbIXA5fsqOdZ/7L8JzFG6eKNsMzeLBcUxLsWzI2uMVK3vIb7HYWXq1p2I80UcMWq45W3FuzxqkY5aUZOzznlfsIxB07X4jLpj/ELLteUcl4VlyBkdJA0uA3dZawAMZvsmm7m6J7c8nkcdaMBtt4pBfg/wBEoxnWXargoSxucRYcJ24a3xLM3ZfGKoaGoGyejayxJKb1scbA7onyMjBDza6jY2OkxuvpdayEQa52z+FGjJcbt4Kd9gXHXlAgPjAkuTdE5g1CxRGQuFrJUMN331IAXI3UwNBsnCN7uaLAbHzRaADukNu99idkJ9vgHTKbGcqYJjkT3VlDG5x/que4v2HZeq5TJEe4ueLXXWnvJfobtp/qjcJZABp2HW6vjtZI8IpeNM57k7soy9gU7agQNme3gkcroYiZExscTQ1g4AHCU0aRZBxFlGexOa5CONIbJbq06t0YGkXvdR3j/pFwpQF472VSLaGRO4vIQpw4NOpJaWi5KXE7WPgnYqHoP9MDySJzuCOiDnWicG89EwSSzS/ZxQNEiOZziB5KRLIe734UNjxG1rX7W6p+R7ZI7NN0ERwSRtY2x3KXDLJqJA2CjMaLt1dFJbK2MnTuCgdDcsxkkseiIWILSEbpGiQHTympZbv2CAC7kB3PKGhgNibFKbquHEbJqZwL7hMA5YpbtHLSi0mP8Nwj75xAHki1vJAAugBP+q0tA3CEehvgI8SfA0DU4WUNxL6i7NwOUvskkSdg8bWRsI78G+yYIL3G5tZBwMbdQN0wJ0kouQ3fzUfu4y6+rdJicSy7kTXN1HdFjFumbFYW5RvmNmkjnhNTAPbt0Sd3NaPJJsjQ659gCeqQZPK6ElyBpNkTC9vUH8lEaQYHeG56J97GtYHkbJlznuG26ddIO40P5KaEJY9rgSDwlSgmE2/JRZIXOZ4ChGyVrLPKGFCoHSB242CdEjg4kpuKVrL9UqSRrrWUbAejcHtdd1ky4ta4+K6SH2KXeI9U0ya8CHkO4SWeJ1hynrtawlouOqYLybuaEwHWO7skEInvEnHRNh/gJfym2yN1GyVDH2tKDmkbpAcUHPNlGwEySkkDTZBzOLclMP1lwNlIp9TnD4IsBssIcL7WT73NfHY8hJkBMhsm5WvDbgJAPBjRCDwmG7PJvcBK16ogPJJZpIIvugA6iQOAA6JEc3dXJ3uiMb9zbYJgXe4i2wTAdbXOMpAbcJ+d4c1pHKjiNgF+qDSTe6Q0OjdF3jAbEptzXO3b0QAcXASC3kgVD4c0/JCRkZs5p3HKN7Q0NAtukO1A2QMUyU6SwC6ZNM8EuB2PKdbpG4RzSEMsggxoQGJzbP1B3KKRhjcDe907GHvaDbhPOYdIOm6kFkZjw4W6pXd6uEkB3eG7bJ3dhF+CkPuG+5235SQSDoKmvDTHqbuocgubhIkmV+JNOgrPVjDpO260+INvFws9iPhYbKzH5Joy1eNnnyVQ0g6rK3rb93LdU8XDl2cPtR5frfuDSgkhKbwtDOLNfqmA8oIHlBIQEEEEgAggggi/IEEEECPQHoee9P0n3kEPQ896fpPvILdh9iOtrfEgvTF91vrPsLz7Zeg/TE91vq/srz6s+X3sybHyMII0EFWUgQsjCNAxNkLJSCAoKxS4xuiKU3ZQyeDRqfKiwowHECy0eExFpGyzFDIWyggXWuwN5l3ItZcrOe6xL9EWMhtYdU5CPCR5pioP7ZPsPguOVhZY0SIiAAOqVMXEtsmoiLXPKeYdTglRCQ9Hr0WU2mktHpebFR4uEu4AuVJFTY5ySkzWuLpUe4v5pem+xF07INWNFz3t0tCQ0yxAtA8RS529y3WCm2ShzNd0DSJMd9I1N8RR33sVEE7tQJ4CIzXf80h0SyRbT1KZA8ZHVJlLjHqHRIYXkB1t0xMW17XS90DuOUUj2tcYyjhiOsyAb9Ubmku1WuUgDsRHt+SbjjkElwE4HOkGm3CU+KTvQOPNOwG2XLySpMYBG/ITQi7toudylN1cjogB1pOrSUmZ1naTygZiB4BdyBD5AHPbYpibC2tYIonDvdN9wn3gRw6gLqMx2oF1vEp3SI2xyuk9kMN7cpNK4uvdJkkDGgu5PKkUj4ng/BLuGkGJSwFoHtKNpJe4k3+CkVGnWzSmCHums0bdUDFxsJeCBsOUc4ubWunXlsbAG89VHZL4jcJCsX4XMDbgEcpQGhjreIlQ3C0peHKZDOHMLSExERr5C46m2Cfprl9yeEU8YY67Te6LdidgLqJ3F9mjZE2QjdKuBwLlHudtKQC4nAuIABLkb2lt3B3s8hNNp5GvDwU89jf3tzyEqIgje543Fh0QeRq09UkyBrdHVvCbBc92w8SKJJALCJ9wjnnLW6Gi6J7na9J9pRTI9lTZwuEyQ66J/c6vNLpnWjsUr1sFunTsmzJdpNrII0SAQG3KTc7Pa3VZHCXOhs1tylavDocNJQFCXhr2guNnHp5ImtAHtWSGgRuPi1av6ITQvJa5punYqHCCBcG6XDIdDza9kmMvcwhwtZNsJZqI46osaQqCdskrte2lPtMZc5zd0zEWPuS3SlEfucdUWAZnBuHbeSKNgIc5w2SJXtjsbX80p8pkgPdjjlFioUO60k32SS5lrsN0wwkQuDuqJjxpLb7pWOgSyvf4QdkumACDWPY0vLdkllS03DQgEKt+1Oo2BS3R3I3u1JDw/kWI4SHuk1ANGydgKqHhrbN4CjtLjuOFJMRLPENykANA0jkcoskCFx3BHKaaZQ9wcLDono3hjxccpMspdL4W380hMDHfvApwaSdm/wBUmV7SGgCx6pBLgRZIRKY3SL2smqhutzbHhG4vLQijBB3TsAbxjY3TUk1yBdKkD3OFhsmJtIc0Dnqk2SodeBYEIA7JJPhCXETY2F0goIHX7PRB3haSeeiSe8afZtdCz3C5GyBiaWR75C08J97QHEBNuj0R62cpcIc5upwRYmETYEAXTIDi+5bZPSvLfZF0UUjnXBYlYrFtB0puUB3W1k3JM8O02sErUNFyVGya8CSRe10/Tvay+o2uooBc+4TrgbBMKHDKzvCb88JM7/CAOqQGXBJHCbc67vklYUP2AjHmmSx2q4CEkrbAApcEwaHB3VNBQQL2ghySwNJOnlM1TyHjQb35TtNtdzkDG5yQ8NbyjpnkPLS3dImeRLdgun+YtYFnhKwFyFw/DZI1G3F0mNznAl3RCSxAJdZIQI45Hv1E7NTlgXmzrpEbgxjrOvdMwud3xvwpIVjwkYx1i7dKDjqva4Qcxhdc2ueE7C9jQWutdSSCgi9xb4G7dUt1QzSxgO/VOAMINzZV9VKO+a1nKBUWXdtLLnkqvrdRs1pOyfErmBhcdk2+pvMLMu3zSDtHMPDxHZ3CBbZxPRLExLbBtgmXFxJQNIiV8gLSFn8W2hcfgrytaACQs/jUgEDlZj8lkTMVZvFIqiPhytJXXidfqqwbErsYfajy/W/eBKbwkpTVoZxZe1APKCLqjSYMCCCCQgIWQCNBF+QrIWRoIEegPQ996fpPvIIeh970/SfeQW7D7EdbW+JBemJ7rfV/ZXn1egvTE91vq/srz6s+X3sybHyMCCCCrKQwjRBGgaAggggYZRtRFHH7X5KGTwaNT5UTcOfZ17XWqwaU22FllsHaXvtbqtXhxaxwZbdcnOe7w+xE1wcXElSKZxAsQicPDeybjkJdYBYSTJLWaXXvspNMN7pgEaVIpuCmQkTaM/td+CnpLGawHhUenBAcevRLkdZoPXqmipjkzhYBvRJDnDnZMEd64HVayf0OLBbeyCIHua9ha8pju+jeEU9uptZKgGkE3uCgaQpsLnA+HYJio0scOf5KaNTQHatISn6XxXuCfkgBmEFzAbeFG6Rxu0MGkdUt73FjW+SS9oLbXtdAhMZa1w0uvq5SJXOjmOrZp4TndtaGhh1OSpGseLOPjCYg4m8OHVKnc/v/AAhIL9LGtHPRONL2R63t3SGNan6fGLWRseNJseUislcYQWt2PKZjLWMDnE3KaAdh70SEht7p50rnPawi1uUiOVgjcb79EcZ1guHKaI/Y/IHOiI6dE0yNzY9RGyJpkLtLm3CIPBeWaTpHKLHQoaXbWvdKhIaS21ikSN/FGNhynou7LNV/F1SGCUHU09ETDpc74opXGx/oiiZI5t9KaATNMGOa3kuSnXLNm8ozDd4c4eyieAXbHhP7IjMMYDjqPKmQsZrLRyFHmeAzcWI4Sw8taZN7kJiGJe8743HhTzbOAuEIP2kOojlO2DI7J0AGsaBcI7k+yFFke6M7G4UqBx7q4CjYCgXahvt1TZ70SOs24PCQ2MukLi+ykOIs0eSYvsDaVxZr6nlR5iIjccqZJIQ1oaeU2xkb3EScoGiGNRBlPKS0tlBNtwpVQ1pY5sfRMQFscdtN3FBMLuyGagNkbS3QbhSIZWO/ZuCDY4jLpvsgA6dg0scDayFTcm9tgidFIXEM2a1NSh7HhruDygixUTY5b6nWI4RkNY6xfwhC39pZvTlCRp76yQhuaY3a1g5Smghp238lJbHGXNAcA7yTT3SMn0Ag3TALWXMALNOlLj9k/FOTyWj0kblRo3NZy7coAN8eprjZMPeGsDGc9VOaCWEjhMywtI1M3KACgsIiXBMyC7wQLBOxB+h4cPkkW2sk2CE184bCGg8qFSvaL3uLqc9gdyAUh7Gt/CErJJCWSs805qBFwVGks94DBwnNbWeFxsU7HQ9HM9r/ABC7UUs8Tn7bFCMsc03KakY0G6TYEiJgkdcdEh72Rz2tdRg6VrwRwlukc527UWAdQXPeHMGyU2+1wg1hZueqN7g1u5slYqFvniaAC5COVknsm9lHBad+UYNvZCLCiVfcFRZY3PlLmjYJQc4tKZL5A63mlYxUgfYBnTlHAZBe4S2xlw1XR6rci1v6p2AO8dfi6c1g2BFh1QZJrB0s45SDIHX8PHKVgCR3jAHs9Uc77ACPcdUw6dn8kRkAbqvsiwHmPYR4juktkDXE9E1cSi4PCDe7YCHO5SDtCfJ3j9uiDz4QAjjj1Elm6TL4PaSJJUGwkDZE+aT8Iv5pLCXW07gp+GMG46osBuOSWRrvDayaa67yCpJYWEi3zR0zI3SEu6IAj6WuJ3sQkP712wbsFOmZEwl1xZNuLNOtpuiwILJCJNJabqVJI5jB4eUZnjeBoYC4coxI07ORYyPHI4uJLFJ/1W2GxCWwNPDQjewkeAbhAiKaaUhwalR0zw20hsnmyOaDqFileLTr6JiGHRaRsb3URxvLpB3U17wRdQA1xqS4DZNBQ+XFpbvdJJL5RvYIy8B5FrlKjOo3It5I7h0TJC2NsdnXvymSxjnF3mikcdHGwTLHtN9Lr35S7gFOa65BdcI4ZO7dpLbgoFrGbh978pLZW6xp3TsKH5JST4RYJGsnYHdNzVNgW6VGikc2TUUrHQdXqawlyy2NvuxwWmrZe8jdZZmt0uLg5W4vJNIzsx/ZlV/UqdVkB7h/JQG8ldfD4R5XrfvDRtRI2rWjiS8IHVGiPKNJjYEEEFEQAjRBGgi/IEEEECPQHofe9P0n3kEPQ+96fpPvILdh9iOtrfEgvTE91vq/srz6vQXpie631f2V59WfL72ZNj5GBCyMI1WVBBGgggAIIIIGAnyRw7vSCCE5Te2oZPBfqfKi1wK8cly24K0dP4pw7hZ7CZmgBllf0jS540lcnOe8w+xFu6VrWtaeTwhHpNyBuosrHhmrnSpNKbx6j1WB+SbQ6FJp4zrG6Yi0va7fcJ+IuEyZVInOkJYNtgiaS4WI5RxWMBvz0Tcb7bO2spFbDLHMuTwltJ7suvsEuZ47nUBe6Zc9r4bXsR0Q2Kht8rHA69vJSY9L4LsNwOVEboeLP2AR+NpsNmFKyRKlljMAHJCcpDG+M7KDGGjUCb34UqNpYwW6poTHZA0cCyS4ENDrbIvE4W6qSLNhDSN06INiKYDS51vzSXUoc/vNVrpZkBZoYNxyivIWAAJgmE9rDpDTchLHiGhyig2ls86UJX927U0kgpUMVUxua0gC/kjYXPiDO6FwgJdY36JL5HD2EABzGstr2BSXSNY6zDylM1S31dEl7G6hblFioWZJI4y7z4RQve7dxsT8EiTvXWawXA5UqlAfG643agYxM97XNbe4PKMEt+Sbn1seDpulNIlHj8NkDFsJcd+OqddUaDpZukRRRhrjqSWsZZzgbphQ+yZ1jrFrpt7hq26omte7psgYn6gbbBAqHA+Mwv1ciyVDNHI0gDwhR2s1SG5s3qlulbG0tjF07ChbZgPAxuw5S5Iu8bdjuOVDpnkveXCyeIc/dhsBynZF+RMjQyRjB4tXPwUuJugWvsmAzdrndEJXu1bcIELLgxx1dUDK0dUw5xcRqS3hoaD0KB0JGt8mx2CcjBZIS888IU7mm4CkxNY65f0QNIiCUCR26HfUrR4n+M8bJUwiD3WKYjjhkcSTwo2MXE8a725QlY6OpDi5KAYbBp3TsjSZPFyAgBJqXEXtYJupnje4EG9udkgO/DqACU4MI8Mgv8k0xNCBLqqLxkpxtQ/vwHN280IoxG1znEfBPRMje3VfdBAcMbe8bLfwjlMl7W1Bki8SdfKwROZfdR4BdxsmNErV3x1OFj5JL4oyQ5zrWTMlwbXsUnQS03cgdEoSMkjcwG1khkdhfVwo0TXMc62908wvHPCBDpeDG48BvKiG0hu1yenNm6R+LlRXRhx0B2lJjQosN7at0Ric42J4RxMETrF1wOqBkBkJHHVIkNu0x/6Xid1SojqBMjbFIOkyOLUTyRwlYWOOka077BNyEyECPdBo1C7hZBrxG8aRe/KAEgPBs8Jw7C/VIfIXy7iyWHs0kOO6THQ058uobbI6mRvdgE7lNgSOLiBcBI9t3i6JWA9ERoQ74A2buUDpDbNRU8d3kkbIsYHSucbAWTrY9bbk2skujYXk3skmWQNLQ3b5oFQNboz4TdGZXS+2NOnj4pqKxJ3uUs8osKH4pbAiyJxH4evKa9nnqkSG5FjayTHQuZhY07e0kMZ+zI1bpTzsN7o42mS+neyQUFcMjDTsSo7onyOvfYKRIw2ueijip0O0lFjHWNdGPa5Ryt1R3ab+aSbSNNjZHTN0BwceU7AVQvjDtLzYhSDM1khczcDlRXwB4vGd0TYnx2vweUvsRIfMZn+EbJZjswm9ikwtDLm3yQvI4kuFh0TQiM5speRyER7xnhcLDonwQ08oO0v/ACToCPG9kVweXJUTGufcu5S3xM03NtkUTTqBA2SoYuU6bNjN/NE1xiN2uvfkI3sc0lxGxTbwbA2UkhEljmyHlFJrY6zh4EzHG87jhOyg6NN7lAgz3ennZNwPia91905G39nY8ph3dseQSlZJByaXPLmjhMSVb43AGPbzUjumSAODrBB8bdBFgVEY0+UOa2x2PKjvb47sOwQaDrLfLhFM8xWFuUAOuJlaGnayTFTytkDrbfNJa558RbYJzvg5ttVihkkhyTRq4BKS7QRa1kww2kve6KZx13CjZKhqoAYfgs7i9muNlfVDieVQ4xGSSQtOHljMvUm7yojeSpM/tuCjj2iuxh8I8p1v3ho2okpq1fRwpeEEeUAgeUaTZJgQQQURACO6JBAUHdC6JBAqPQPoe+9P0n3kEXoee9P0n3kFuw+xHU1vjQPTE91vq/srz6vQXpie631f2V59WfL72ZNj5GGEaII1WVICCCCBgQQQQAHI4vCUTkbBcqGTwX6nyomYabTBanDX2lBWUovDUALTUDgHD4rk5z3mH2Iti/USD1TkYcG7eyEy0Agk89E5GC9jhe3ksD8ljJEXsnRvflSInHXc/ko1HGYwdRU2MMcRblCKZ+R2lfK1jgW/JKYS/VqFj0SnXaG/FLDeoCmitj7LNhta6gzN1v22sphcBHYlQZJAJRvshght7nGRrAPmlu1iVgI8I5QdC2WZrg6xToD2SgOb4VEYZDCS4HYJ2NwlFg7YKHNM0ve3SbBP07Y+7BsQiwJcDLE73S5Z2t8Ld3BNRRltng+FOa4yTtz1UlIg0KDmloPB6pIfd408DlE4MaNnXukxWBN07Eg5+7DwSeUssZJH4d7Iixj+eQk3dGbdCmMZGlrtN90bzYpBY8zarbJT7E7KNgF3gaLX5QhDnSXPCalY213OtbhRzJpvZx2TJKJOILpCGut5pxp7r2Te/Kru8HhLX7nlSi5jYr6wSUWFEw20hzhdMPmivYbIoZCYTr46KOI3PkOkXSsCSZPAbcJTpWx092735TAIadLjbzTVQ8XDGm4KLCiwp5tcN+E0Kh93C1x5qvE749gNgiqK1+gNay10u4dFjCzWHEO5RQBrXuDnXKh00/dAFzueUsVDO+1A7HlHcBMkmY46QLEIaw1hHUqO0tkfdm/mpALWjxWupJkGg3OcWNASS4gXdsEQJkdfgBOy2MdnDhSsVBR6XsNjv0QOprAC1N2Fmlh45TzakFpaW3TGIjJ7wADlSnt20l1rqGD47pOmQzatRskxEoxwtBDn3SI4m2cY97poMfpe47hE2R2i0fPVIYiZkokaW7eacaZDNqJ2TDhM477I4JA17mOO6AHO6DnHX+SbcGMdZgLvNSCWmwB36pndkjiRykAHue4tDGm3VSYS4bDhJp3Nfe4sn3NDGE+aaItCJ2gAEfmk0xu/boo8k8jXW03CUx5fxsVICTMbOJtcFIjDXkkO46KPK8sIBPKkU5aGOd06oCxwHa1kiRjn203S2Txm9kO/adhsgKGSx8Q1u6KPDNJPU7Ms0dVKkcHbHg8pEQZHJdm56JMaQJ36ZNLRc9U42O7CS2yTUanPDi21uUTpSWFoUWMakYWHUBsUkSAbWupNM0ucA7jqmawM78BiAQYBcy9rKM+OVzwWC4HKkvlbE1oLbpxj2OZdnhSHRXtZMJ7luyffHqN2i6U+dsbrON78IpHFwBGyGF0Is6PY7XTZADilb6wSb2RFrnFzgNgojsDHhvS6dbMy1jsmmxvcLgJUbG7h/PRCAEjyPZF7puOJ/ic5LePFboE5raG2JUqGMxX1EEWSnciyONpeXFqMtKiApzthYXSHG/IskuJbyjYHOF7bICxLh4SUmOQs3HBSnbmw/NHG1ouCigFlxczwi5KiuF3WLd1Mi0NPKQWgzajwihWN0zYmE6nb+SlODHDZNd1G9xJNvJE6N7ON0BYsjT7O6IvLWEEXPRMu70OFgpTGgs8XKPsBqGbWNJFiFI0ktTfdtjJJ2vwgJCAR0QgAwAONxdNVgJALdrcpUb7l10ZdG8Ft91IQxEx5jceU7TyBgsRcp4wlsQKji5cRpSYD9TIJIwGjcJtjLx2KS46LatrpbC142cmhWPsLWRWFky6mMh16vkkysDG+J1rqREwd212vhAEQOc2TS7gJFUA4+De6fkDnyGwRRlrSQ4bpUHcxhzHiNo4RxAi5cdkuV5eRfYBNvDr7cJEu4i1rnah3Q3SY9bnDW1WEUTXggC7k06neyUakDAXMc0M4cmnw2duE4W2mBtsjmc2/KQ0xgR2SXs2TpAdwU5HGLblKiSkU9bqG4VJij3BhJ8lqa2Jug7hZjG26YytGFckrMlISZHXTY5KdlF3khM3Fyuzh9qPK9b9waNvVElALVRwprhBHkI0DyiuotDYaCTdC6VCFIIgUCUUMNBFdC6APQPoee9P0n3kEPQ896fpPvILbh9iOnr/GgemJ7rfV/ZXn1egvTE91vq/srz6s+X3sx7HyMMIXRIKspDRogjQMCCCCBhP4TlP/AKtk3J7Kcpx/0j8lDJ4NGp8qH6b/AKyLLT4fpuLhZWlm01I+a1VG9r2ggbrmZke5xexFy0MMeyVRQmR7rmw6KKC4N2TsBkvsbLntcljZbil0t2N0gMLXAhHSyvaAHbqRO5oaClRCSCe+4b8E/BI3SQeVBEgcdkouLW6gpIg0HUT2eW9E08MnLRE65HKlwxRzs8XJRQ0sUEp0OuTygiNsaYwd/Eg577XIuUsxPM5J4SxKxj9Lm3SYxkOEosBpd1UuNpbDa4uo9wXkhtgnA5KgHmveWaSbpzYMAG5PKjFxCeg1OBKaRBsU+JzYyep4QLS2C5HjS4nu3DghI3w7G90yNsZc+0Ox8aVCQ6Il3tBRxEWk73ulxki46JokgMe5zneQRVBDWtI6onAgO0dU26Q2a0i5UWCGZ3udawTb43Eiw26qQ6UhjiBayiMq5n6wzeyg7LUhDrNJvs0ITNjLARMb+SF5TGRIBum42FlYL7tKjY2ixoS/uTr46XSmTNjl3OxUaole9xib4R0Rh3dNay2pxUkyNMl1DWyOBYeVGlbo67qOahzZgHXACkyPY5hkJ4TsKGHOBZ8TykOds0WumH1jXv0gcJYfdt0DSCqtg2zkqhO51HZR6gucRbhPR+Fm3KaBouIxpjDmdeUC10guVFjdIIWgKZG9rY2hx3U0iti4GFjHklNiV4cQRseqOVzi39nvdIds1oPKlQkHJpBGl+55S2ta0gB1y5NsaHX8wnKYF8m/RKwH26o+W8pE0vG1kU8h128kgskeA4DYIsBb3O0AN68pUTLjwjfqm9bdQbfdOt1MN0AE/ZrgPaCYpo7Sl8gslh95XXPPCDntva+6VgCd7RqLDueEdO5rwC88cpt0JfuTYImxtDXAOQBJOlriWnY8Iu9cTY8JDY3Bg63Syx3kmgA9rCLoNaA244QILRqPARtGphkH8lIVCD4/ZFynaF2pz45Bp8kzG4seXW5RMld3+pzbBAmh2SAtkNth0Qe2Rrb6bDzTjn69/JMSOe4EeXCAsVDIWNddt7omAmS4RBziwBzbWRvieY+8bwEMExuaWZkukt8JSo7NBJKRZ4DXkXul99CW2eFAkFJUBg8JTcb2us9x3SmCB4dZG/uWMDb2JSGH3uprmx2KNh0ss83Kj37s3HVH3gKYCi2NzrkWSnkBvOwSGhr2nxWKaDDrs52xSYvI8DcXATjD+zcCLKPEQHOaDeyfYdQsOUUSoS1xAICQ0P13cNktuziCnN2i9rhFCGHkNcXO4SmFj2l3QI3kSkC2w5RNhu/SNggYH2aBZ1rpAjlHiAuClui0vte9uEHyOa2yiwGjCZT4nWI4T8YkY0s03CjMdI6S7Be3KlOmMdiRyhDGTF4zY+LyROLmnS7lBkrpZi5mwHKTMHvJOsAjhMBQcd/gjudN+iZe18cYJdcvT0LJO58QRQAicQ47XTol1u0nYhM924NLztbhO0lpnWtunREU5pJFuiMt1loB3CVPRFjtWvlFC8NcWpUFinaBZpdcoOEbW3JTb2tY5z3nnhNlzZG7usOiQxD3s12ab3T7IAQHXUZrGNcTqun45bggdFJMQ6XPjsOQUoygbBvzTTpL8o2NDhsUUAb2seLnnoozWSNfcDZSXjQLnhJJAbq6IChE5eYrWuVHjc8CxcU85+qRtvZ6oPa27nX8ITCgNeG7h1/NJg/bSvuU5HEHxlw3CYDhDL5XQFD74tJ2N0qJocbJtshc8nkFLkBaNQUWwoOVpjc0tUZ0jzNudk+HmQWKQ6O7jsgkKkaC0Fqaey/KVZ7W2Cb7wm4RQDUjgw2uiD9TSdVlFrHO13UOacsbynRJIfqJXb+K6oMbmDoyLpyprDv4lS4hUagd7q/CuSRVyvAbIVUCt0vJBurCpeG0szzwAsN+kxrcA/a5XbwLhHnOqYu+VmtbXXS21nxWSbif++nWYjc+0tfacN42axtUDyUv1lqy36QP7yWMQP7yg0HpGnEzXdUoPb5rNMrz+8n217v3kqD0jQah5oXHmqRta53VPRVTtW6VC7KLZBRY6jUE6190UQo9Deh370/R/fQRehyb/wC1X0f30Fqx+1HRwfGhXpie631f2V59XoL0xPdb6v7K8+rNl97Mex8jAgghZVlIYRogjQNAQQQsgApfZTtP/wBY/JNS+ynaf/rH5JTXBfqv/lQVPvUfmtRh50NBJ2WWicGSkk9VdUVW19muOy5meLPcYn+iNHFM3YFTInsHVUtLOx/hvwjNQTJpBXPa5LjUxkd1qCQXl5sTsq+nqSIQ0ndPQuub3SEWDIw1uoIHpfhFTS6vA7hJqSS7S0bJWJiopiJdLeFJhjPe63FR6dgaLkbqTE8u8KdlbQl7ZDPqa7ZR6xzxJcMUn1d7Dr1JuaawsW3SYBU79Q8YspI7vzUVh1i4CWRblAUSTHG/8VkUz2wAaTcHlIgcDfdLL4yCDumhNBskjcL6rJyKeJocA66i62Ahp2TzGw6dRKYqFOlY4ontJF28dUAYdN2m6SJGuB3tZFhQ282IDT80TgzZx4HKQXM1GzrpMpJsBx1SY0hszRPn0sGofi6JuaSCB7g1m7kVTBoGqM79U1p0RGSTdVsmht75C0lzNI6bpTCHTNc42CZNSHC79mdE3O65Y5p8PmoEh+pmd31m8Dg3T8c3ha/lzeir2wh7u8kJt0UyExtjOll00wFPkEri4Aaj0SmucInhw4UV7ryCwLUqB5a934h1UrGMxN7yXdtt1KmaGs0g7piSMatbHW+CmU9MZGB17lMQiIAMAcE5FT+O99kcsZY6wCdjJFlJEWx0ysaQy25RyU58MjzYICHU4PA4UsFjow1xUkVMZc5sbAQbgpLtT9LrbBHKG3A6JEcha/T0PClYILX3bzfYOT8L2hwc3jqo9TIC4WFyOUpk9gBpQDHp3NeSWb+aU2UdzpadxykCZgbxukCRpvfZIBlokdOCBsFKMhLwwHdMtsH3JtfhJDQ2fXq+SQ6JmhrSHO2HVId3bnFzTdE+VzmOa4W8k3EQ0b9UDFB7gbHhPNDHRuIO6i1MwiLQRfVwhC8StdqOm39UESSHuDAANk1Lr7xpB26o7tc1rQ7cIPZpAJPKLAla2yRDzag0sa299/JR436WkNF7pojx3e6107AlBlyXHa6UA1p4umHvaxgOq4QhnY++6LCiW9zC0Bo3UeSJwcHHYJbJItyXboGUPOx4TQqDIc9lg3hKMjGw6HFJDiAbFNOY952H9UMEgnvafCD8k26EtGp42KU6K27zZG4F0exukSSGXeAAt6pJjdMPiE8A3SA7ojY5gvpKQEdrXxmzhe/CUY5HD2U8/SRc9FG9b0PsNwgKHGtcz2ha6DwXNJbyEuedj2NPCjOlYTs7hA6FRtLQ57hbzS4ZA4nQb25SGzB5DHbApLo9LjoKBjrdQkc53CkCoj02G5Ve6V8ZsPFflOwS3B8O6Qh9jtRO1k81pDS7r0UV7nEizbJ0PdoN+iADle3a58SAc0DxC9+ExE4SOd5hBxIcNX5KLHQt0gjOzeUiWa5aC3lPagI/ZuojHnvrEbIQDpLNJ0i56phoDpPELD5pUxDSS08qIXv1+H80yVE2Roc9oj3snRI8ENITMMjAQXFFPKO8BaUCofe9weGuHgPVKYRC/U07JnvGll3HhIe9zmEN3CLDtsnvkmeL2u08bqLM8wkFwtdMMdNGy4N/NIke6Zni6cIsi4slySiWPwm6TG0lth0USKQsO6mQyxgXJtdIko8ChGfJLjY9rvC246pPfx/vhIkqWj2XXUkHayZMwuYLNF1GMbmnmybbW2Bu5MyVQcfaTI0yS91mG7rlF3kjobBuxVfPOAzZybFc0Qluo6kDotWQ6WAg3J5T0MRc1wI2VLSVj3XFypsFZpDg47oHTLJgDInNCr5A18tkcVUCXBx5SnOaxpeNygQuMtbs0XIT5PeR2IsQogk1NDgNzykmYtKVDpj7GlruEmV9jtskes+II5nMIuCnQg2y+aYe4B9whqaOqi1coHBTokkJrnMIus/ic4As0qwqpmlh8Sz1fK253U4K2TItTMVWVEhN90/PJquoM7rOstcIJEW6I+JG2EVJ8mrjUta9k0m+2orsOKPH6Iqv+FcPrX/tZP8Ai/8AmunrnG3HbLAYg4HlLbibxw5VD3eJE0rf2qjl9qLz9KyfvJwYtJ+8qLdS6OPvHgKLiiLikXlNij3m11aQ1Mjhe6gUGF3s6yumUJZHsFFpFMmKpJ3l4VxAdQBKqaaIsk4VzTN8IuFFlUmP092v+CnM3UaJhspMQVdmeTPQ/oce9X0f30Er0Over6P76C1Y/ajo6/xoP0xPdb6v7K8+r0F6Ynut9X9lefVmy+9mPY+RgslIIKooCRokaZJAsjQQSItiZPYTtP8A65+Sal9hPU/+sfkm/Bo1fkRDkP7Q/ApyGp8Vm7FNse0SSBw5KZPgN27rJkR7XDL9EaDDqshw1FWcc0ZnBBCzNObs1F1inYah0cwc52yxywWaUzbMkaXDdTIpg02G5WXZWtMQe1ymUdeC4XNys88bQzRGpNr2tZWFNK0xh/N1kp8SvLo4Cl0uJ+HQHKrsYGmdOxouQFHkxBrD4bKlqK4tb4nbKDJXMdtG+5R2MjRsRVmSHVfZQZalrrtvuqGLFXMi7slRxiJbJqKOxirk1tPL4LBKkkJHKz1PiwDbEp/9KNe2wcjsY6L6icNW55UtzWC5JCoKSrNtV01U4oe8IL9lLsZFouZpmMeOCkz1QcwBn5qkFUyZp0PuRymoazc3OwT7GFF7FVMLLX3S2zaA7URYrLuqwzfkpyPEtWzmm3zS7GKi4qZGhwLH7o45n6CSblVfrETm3ad/mkMxIsdYjZHYwJVTVTWPKTDM+VgY5ImqYporggFMvqGQw6tQuoPG2SRLma0RFvXohTf6Ya4Xso8U7ZIhISkmqaHaWlR9Nk0TBPbUzTt0UmCYCPawVcJo9NyRdF60yx8Qsj02BIqpzu3m/VHhMrWyOEm4KhTyB0Be14Fkz6y6GNj+9HiTWNistpJo3VWhp2UynndGRpF2rOUkj5agyF9wrWgrh3Ra8DbhTWNistvWGOBcWpmKXvH7cKGa+MtLRtdPUro2N1agjsaIMkvqe7fpupcT2ui53VW50b5NRKkxSsDdnBOiA+b3N0243FxyEh9S3jUEptTCxu5CdAkILr/NJ7xrRclIFRG+QkEKFUyMczZ3VFDLB8rb2aUbHX3KrdfdvDg64UyKaPRqvv5JUBYwys7s3AJUZziX3uoYmFy8Ot8EbZHyC4KO0dFnTzNDXB2/kmnVF5NgoXeua3dFBML7lKgJs8oe5hLeEGubI/wm1lHdO0NITEEgbNcOTURUWRlDXaTsQkh5lfpvwoUpLpdRdYIopO7nvqupdgFjcwG3N0DJ3gu4cKJU1Ly67Rsjhn1nSTujsAkElzSOiXHoawW/NNOcGi190wJrPsjsAnxvY4kJx/hAIKhh7A2990nvyTyjtESXuceqDHkfiUUynzSHSkG90+0EiwcbsNzdHBO2MEHe6qqys0QHSd0xDWO7m7uUu0kkXU0rCCbqNFKzUd1SireX7u2Uhrtbbh1ku0aRamUE6QeUkxxgEki6qZKowNuDcooKjvTqc/lLtCuS0DWvaTfYKOWND7hyZdW6T3Y4TB9vXrRRJIsu8FwLWIUkSMEZ1cqqlqmNi1ckKMytL+dkNCaLNslnOJ3CcjqACQAq9s12Xum2VFncpUFFwKnzAQfUAiyqxOD+JE6oDeqKCizika0OPUpsTapPFwFWGrA6ovXG+aXaSSLN1UWuc3kHhNd6GOvflV7qtvmkOqWu6o7Qom985r3Ove6R6wC63VRDKNPtKM2ZokuSjtGWxmANiU42UHclUT5y6W+rZLkqHWFnI7QLmqnHdgMKbiqSG2JVQJn9SjMzubo7QLk1XgcL3TQlL282VX6y4I/WyRZHaMsC+34t0Tqh+ki6q++fq5TjZPNyO0CZFPJc6nFPiYAe0qt84CQZSetk6GWz5QfxJHegcFVL6nTyUbK0WspKINWTpqzSQ2ycilYW3IVS+TU+6dNQAy10OIqLWOpja/YJb6locSqETEPvdLknc9tgUu0Rdw1sRJBdY9EuWrtYF2yzrbg3JS5JyWgXRQqL2DE2sk08hSXVrJCAFmISdVyVIZLofcnZHaMu31LRffdRZa119nKoqqi7rtco7qh37ymoipFy6td+8o0tbe4LlVSVBby5Qp6vxe0pemO0ixrKk2sHKmqpSSd0JqnV1USaQHrdWRhTIOQmSQqNKbuSnO3TTzdaUVtkfE98Jqf+FcPq95ZP+I/813DEf/ump/4VxGpH7Z//ABH/AJrfr+Dk7T5Gju66NvKKxTsDNTl0fo545Gwv4VlhkEneAhqGHUpkcAeFrMNoo2MGwuqyEmKoXmNjRp3VvTyF7d2pEVGLg2VhBTgCwCrbM8pL7I3dAvBAUyBh2FktsNjwpLGWCg2ZpS5DjbYJ1rUACUoBQZWz0H6HfvT9H99BD0Oven6P76C1Yvajpa/xoP0w/db6v7K8/EL0D6Yfut9X9lef1my+9mHYf/KwIIIKopAECEAjTCwIIIJAJk3Cdg2kJ+CRsUuPYlM0a7/dFfONL3H4pkPu4EcJ2RwkmczyTAaWyFvRZ5nscUv1RPjtpuEibVawSIZNIsSja6773UGaVNEqjc9zQ0kgKQyR8Uoc0k2UeF4HKmQPZbfdUTRNTQ86d0g1lu6XDO9guAU4zunsA4RSBjRYEFVdrH3oEdZLMHNfsBwfNLp3Na4kqMGlpukvLugUA70KqZX98S07IjUGyaIkPRBlr2fspIO5D7JyTypDHSHdqhyNbcaH6fyUqBzmgDvL/kou0HeibBWytjLd1GkmkLiXHZPhhIve6bkawts4XKVsfdEJlSY/ZPKJk0unZLjjp+7sRuifKyEW7u9/ipKx90BAmdeyUZ3m44TYcLFwbb80TxA1od3niPSylTI98BxkrwblxTxrozEWAeJMtidKLgbJM0Jt4WpUw7ohNqHjYORyyuc2zjdRQBqsRdSmaLeyP5qLv+El2io6tzWaBeyMVDhulw9yTYtBPzTxjp3bFo/mo93/AEPuivsZMr3tuHpipmkZH7SWQxshAaNPzSmNgkeGvA/mhP8A6Dvj/SM2okdFpLiEthLrBziUuZtMyTQxwH5psOhY/eQfzUlf8IOcf6To6jum+FpG3Kbpqx5Ok3G6NuJ07GaCGn80cc1G/wAWtoPzUrf8F3RHqidzY7t5SaeumNmklEyakcbOlbb5pueopI3DTK1Jpv6F6kC3iq3W0+aLvZe8s1xsq9mI0bG3Mzf5pUeKUdiW1LAVD05P6I98Cw72S9nEpEkjnbBxVfPi1IW/9ZYXKKMUpgbmdn80vRn/AAi8sC3a97LnUSozZJDsb8qK3Fqb/vmEf8QTVRjNGweGWP8A8wUlgn/A9aBesnAGo+SQyZ/el99vJZmXMdM0279n80luZaQczM/mn+PP+B60DSh8nrBdqs09FObWBjbXWNdmijH/AG7P5hMyZnojzOz/AMyf48/4R9eBtH1wDCbpDakOZ3gOyxLsz4fbSZ2D80bM1Yc0aPWm2+af40/4L14G3FW2RtibJMc4Y+4N1g5s10TH2bUtt80QzdQjmpb/ADTWtL+C9eJ0SSqa9u5RRytB2cCuePzhQf8A6pqZdnGjvtVBP8ef8F68TqL61rWaQQosVUWTai/Zc4bnOjHNUEb880DR/wBYaU1rT/gevE6gK1jn3LrBFLPHfUHhcrdn3D+s4Tb8+4bb/XH81Jasv4L8iJ1tlXCB43pZqqe3+oFyIdoGGBu8wJ+aSe0XDusot80/xZfwFsROtSVLCLsfsm2YhDYtc7dclk7R8PAs2T+qZHaFht7mUI/Fl/BPYidXllie/aS4SZqmIeAOC5Ue0PDwfDIP5qNL2h0Xek69vmj8WX8D8hHU5aiMey8EpIxDQ3TrsuVN7QaHXdz9kmTP+Hl1w9H4kv4H5SOpNre8fZ79k46p7seBy5J/t9R38Lv6pcnaDRkW1/1TWmxrZR1uOuZou941Jh1dJqNnbfNcmOf6Q/j/AKoxn+l/f/qn+E2J7SOtR1z72eRp+aEtdCD4XgLlH+39La2v+qaGe6XVdzv6o/BkL8pHVjiMl7NfsnW1ht7YuuSOz7SDh39UBnylcf8AUt+aT0ZEvyEdd9dty8JL64f94uTf7c0fWWyUM9UI/wC0v+ag9OQfkI6k6rLuHIu/k/eXMm5+oQfb/qnm5/oOsiPw5fwktlHRjNJ1KDZnA8rANz9hf4pU6zPmEEf6oSepL+Evyom6fUPvsUoSNIuXbrBuz1hF/wDVCUM9YRb/AFQl+JL+D/Kibh0gva6cikA9srCNz5hDT/qApx3aBg5bbWE/xJfwPyom872M8ORh7fNc+OfcKPEg/mjbn3C/+9H80vxJfwPyonQDK0JPrDPJYP8A2+wn/vAkP7QMKHDgl+LP+B+VE6AJAUmQtvcusuf/AKxMMb+IfzSX9ouGEe0P5prUn/A/KidAdLfYBIc88cFc8f2jYa0cpk9peG3uSpLUn/CP5cTpEkMltXT5pkMdflc6n7UKEts03UUdpdNq4P8ANTWnP+B+ZE6owkbEoyQ7cFcrPaZTj8P9U1L2nxgWZHf80/w5/wAI/lxOr6m3tcI3SgcFcaf2lyOOzLfmkO7SZfL+qf4Uv4L8tHZjKT1CQXgcn+q4ye0mo6D+qaf2kVZOzT/NP8GX8I/lo7eyXa4ISZqtgbu/dcR/WTXAeEEfmosvaDiEp3v/ADUlosX5aOzTVTy/wnb5pAqZDvdcZ/28xDoSkyZ8xMiwcQprRkL8pHY5qku2Lh/NRZJP94fzXG3ZzxV53kISHZvxT/vSprTaK3to7LruPaH802ZGfvD+a48M34pY/tSmHZoxN58U5CktVkHtnZJJGfvj+aaMsY5e3+a47Jj+JH/t3FN/pzEDzM7+aktZi/KOwYlUQtwipvI32fNcWqyDUSf8RT02MV8rDGZHFp53UXdxueStEMfaZs2RSCT9KDrSWwuPAVhQxMaRq5Wm+DK2qLGgcIwCVd4bV6pALqlhidKbRtJ/JW2F4XWGUHuyAqWyhzRqKV92jqrGAXCi4dRPYwa+VZMjDAoN2Y8jVhNbulgIWtwEqyiVWKRogjSEj0F6HfvT9J95BD0O/en6T7yC1YvajpYPjQPTD91vq/srz+ggs2b3swbHyv8A+fQEEEFUVACNBBAARFBBNDQAma2QxxkhBBH2XYfkRDabN7zqUwZXd4ggqJnqoP8AVErbQChGzU7myCCrZcmSJWd2y97lM09U/vbHhBBH0TTLISuLdjZG2V+rc3QQUWh2SHTljeLpTKi/4UEFTIdseFQ1rd47qHPXxxv/ANC/5oIKIrYxUYvG0i9Nf80Bj8cZFqT/AOJBBNBY+/MjTHtSW/8AEoL8yDUf+i//ABIIJpFbbEPzIA2/qv8A8Sr6jOJY7T6pf/xIIKaRBthQ5pkkd4YNIPxSn5mmD7d1x8UEFKhWwn5xqo7NbHt80p2bqrT/AKf9UEE0gt2Q6jNFTe4ZZRpc0134TZBBWqKIuT/oz/tXiLZBZ5RnNuJlx/aFBBRlCN+DNPJK/JFlzRibnf6pCOHH8Se6/fkIIKcYR/hD1Jf0sBW10wDzUkFQ6yrr2ybVTv5IIK9QjXgi8kv6Qp8VxCI29YJTL8UxK1xVOCCCfZH+CWSX9EDF8Sad6lxRPxqvIsZ3III7I/wkpP8Ao3LiVaBczuP5qM/GK1gs2Z380EFLtX8H3MhPxquJN5nH81GmxytH/av/AJoIJqKK5SZFlx2vttM8fmopxmvfe9Q/+aCCujCNeCPcyO7Eq1x3nf8AzSf0hV/9+/8AmUEFb2R/hHuf9DFbVn/t3/zRGtqQd5Xn/wASCCXav4HcwvXZy7/Vf/5kDV1Gr/Vf/NBBHagUmH6zO528rv5ozNN/3rv5oII7UT7mEaiYf9o7+aI1Mv77v5oIJdqJdzDFRL++7+aJ1Q/95380EFJRQOToT37jyT/NGJXHgkfmggpxiityYZe/98oAuJ9ooIKfaiDkw3Nd+8Umzv3iggl2okm6DDT+8UDcdSggjtRLuYdyepQsfMoIJOKI9zEPJbwSkguPVBBRaRJSYsA/vFE4kcEoIKv7ISkxOp3mURc7zKCCYlJhgk9SjNx1KCCRNSYkvd5lFrd5lBBTSHbD1O8yja93mUEFNRVCUmL1O/eKDnOH4iggk4oTkxDnyX9sow+S3tlBBLtRDuYWuT98og+T98oII7UHcxQfJ++UYe/98oII7UHcwtb/AN4pBkff2ygglSH3MMOcfxFKs63tFBBOkJyYXiH4igXuOxKCCdIj3MAQc8hBBSSQKTEl7jyUAUEFLtRNSYaMoIKqSQ+5hIwggoC7mD80LfFBBWRXAu5gt8UN/NBBMO5iggUEEUQ7mFdGggq2iSYY2SkEEkSsWE5H7SCCGRm+C1w6MPkDT1WxwHL1NLIHvN7oIKLKJPg0sWD0tPIC1o/krRlPEwAtaAggoMztjgAHAQIBQQVZmyCXCyCCCH4IxFIIIKJNHoL0O/en6T7yCCC1YvajpYPjR//Z" alt="Minion holding a sign that reads Vijay Gokarn" loading="lazy">
      <div class="vg9-example-caption">
        <span class="vg9-example-tag">Ideogram AI · Text Rendering</span>
        <h4>Minion holding &#8220;Vijay Gokarn&#8221; sign</h4>
        <p>&#8220;Generate an image of a minion holding a board with the name Vijay Gokarn&#8221; — the typography is clean and legible, embedded directly in the generated scene.</p>
      </div>
    </div>
    <div class="vg9-example-card vg9-reveal vg9-d2">
      <img decoding="async" class="vg9-example-img" src="data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAXOBgQDASIAAhEBAxEB/8QAHQABAQACAwEBAQAAAAAAAAAAAAEGBwIFCAMECf/EAFUQAAIBAwIEAgMLCAcGBAYABwABAgMEEQUGEiExQQdRE2FxCBQXIjJVgZGUs9IVIzdCUoOhsRY2YoKSwfAzQ1NUctEkNEThJjVjc5PxJ0WjsiVWov/EABwBAQACAwEBAQAAAAAAAAAAAAABBQIDBAYHCP/EADURAQACAgEDAgQEBgMBAAMBAQABAgMRBAUSMSFRBhMUQSIycYEVM0JDYcEjNLFSBxYkkaH/2gAMAwEAAhEDEQA/APTev+I2zdE1avpmp6w7e7o8PpKfvWtLGYqS5xg10a7n4Phb8Pvn9/Yq/wCA0r47pfCtrPL/AIH3FMwjC8jCbK+/LvW0xp6h+Fvw++f39ir/AIB8Lfh98/v7FX/AeXsLyGF5Dulj9Zf2h6h+Fvw++f39ir/gHwt+H3z+/sVf8B5ewvIYXkO6T6y/tD1D8Lfh98/v7FX/AAD4W/D75/f2Kv8AgPL2F5DC8h3SfWX9oeofhb8Pvn9/Yq/4B8Lfh98/v7FX/AeXsLyGF5Duk+sv7Q9Q/C34ffP7+xV/wD4W/D75/f2Kv+A8vYXkMLyHdJ9Zf2h6h+Fvw++f39ir/gHwt+H3z+/sVf8AAeXsLyGEO6T6y/tD1D8Lfh98/v7FX/APhb8Pvn9/Yq/4Dy+0vImFy5Ed0o+tv7Q9Q/C34ffP7+xV/wAA+Fvw++f39ir/AIDy/heQwvId8n1t/aHqD4W/D75/f2Kv+AfC34ffP7+xV/wHl/C8hheQ75R9df2h6g+Fvw++f39ir/gHwt+H3/8AsD+xV/wHl9peROBDvT9bf2h6h+Fvw++f39ir/gHwt+H3z+/sVf8AAeXlFeQwvId59bf2h6h+Fvw++f39ir/gHwt+H3z+/sVf8B5ewi4XkO+T63J7Q9QfC14ffP7+xV/wD4W/D75/f2Kv+A8v4QwvId8o+tv7Q9QfC34ffP7+xV/wD4W/D75/f2Kv+A8v4XkMLyHfJ9df2h6g+Fvw++f39ir/AIB8Lfh98/v7FX/AeX8LyGF5Dvk+uv7Q9QfC34ffP7+xV/wD4W/D75/f2Kv+A8v4XkMLyHfJ9df2h6g+Fvw++f39ir/gHwt+H3z+/sVf8B5fwvIYXkO+T66/tD1B8Lfh98/v7FX/AAD4W/D75/f2Kv8AgPL+F5DC8h3yfXX9oeoPhb8Pvn9/Yq/4B8Lfh98/v7FX/AeX8LyGF5Dvk+uv7Q9QfC34ffP7+xV/wD4W/D75/f2Kv+A8v4XkMLyHfJ9df2h6g+Fvw++f39ir/gHwt+H3z+/sVf8AAeX8LyHLyHdKfrb+0PUHwt+H3z+/sVf8A+Fvw++f39ir/gPL+ERpE90n1t/aHqH4W/D75/f2Kv8AgHwt+H3z+/sVf8B5ewvIYXkTs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8hs+tye0PUPwt+H3z+/sVf8A+Fvw++f39ir/gPL2F5DC8h3H1uT2h6h+Fvw++f39ir/gHwt+H3z+/sVf8AAeXsIuF5Edx9bf2h6g+Fvw++f39ir/gHwt+H3z+/sVf8B5fSWBheRHfKPrb+0PUHwt+H3z+/sVf8A+Fvw++f39ir/gPL+F5DC8h3yfXX9oeoPhb8Pvn9/Yq/4B8LXh98/v7FX/AeX8LyGF5Dvk+uv7Q9QfC14ffP7+xV/wAA+Frw++f39ir/AIDy/hFwvId8n11/aHp/4W/D75/f2Kv+AfC14ffP7+xV/wAB5fwhheQ75Prr+0PUHwteH3z+/sVf8A+Frw++f39ir/gPMGF5DhXkO+T66/tD1B8LXh98/v7FX/APha8Pvn9/Yq/4DzBheQwvId8n11/aHp/4WvD75/f2Kv8AgHwteH3z+/sVf8B5gwvIYXkO+T66/tD0/wDC14ffP7+xV/wD4WvD75/f2Kv+A8wYXkMLyHfJ9df2h6f+Frw++f39ir/gHwteH3z+/sVf8B5gwvIYXkO+T66/tD0/8LXh98/v7FX/AAD4WvD75/f2Kv8AgPMGF5DC8h3yfXX9oen/AIWvD75/f2Kv+AfC14ffP7+xV/wHmDC8hheQ75Prr+0PT/wteH3z+/sVf8A+Frw++f39ir/gPMGF5DC8h3yfXX9oen/ha8Pvn9/Yq/4B8LXh98/v7FX/AAHmDC8hheQ75Prr+0PT/wALXh98/v7FX/APha8Pvn9/Yq/4DzBheQwvId8n11/aHp/4WvD75/f2Kv8AgHwteH3z+/sVf8B5gwvIYXkO+T66/tD0/wDC14ffP7+xV/wD4WvD75/f2Kv+A8wYXkMLyHfJ9df2h6f+Frw++f39ir/gHwteH3z+/sVf8B5gwvIYXkO+T66/tD0/8LXh98/v7FX/AAD4WvD75/f2Kv8AgPMGF5DC8h3yfXX9oen/AIWvD75/f2Kv+AfC14ffP7+xV/wHmDC8hheQ75Prr+0PT/wteH3z+/sVf8A+Frw++f39ir/gPMGF5DC8h3yfXX9oen/ha8Pvn9/Yq/4B8LXh98/v7FX/AAHmDC8hheQ75Prr+0PT/wALXh98/v7FX/APha8Pvn9/Yq/4DzBheQwvId8n11/aHp/4WvD75/f2Kv8AgHwteH3z+/sVf8B5gwvIYXkO+T66/tD0/wDC14ffP7+xV/wD4WvD75/f2Kv+A8wYXkMLyHfJ9df2h6f+Frw++f39ir/gHwteH3z+/sVf8B5gwvIYXkO+T66/tD0/8LXh98/v7FX/AAD4WvD75/f2Kv8AgPMGF5DC8h3yfXX9oen/AIWvD75/f2Kv+AfC14ffP7+xV/wHmDC8hheQ75Prr+0PT/wteH3z+/sVf8A+Frw++f39ir/gPMGF5DC8h3yj67J7Q9P/AAteH3z+/sVf8A+Frw++f39ir/gPMGF5DC8h3yfXZPaHp/4WvD75/f2Kv+AfC14ffP7+xV/wHmDC8hheQ75PrsntD0/8LXh98/v7FX/APha8Pvn9/Yq/4DzBheQwvId8n12T2h6f+Frw++f39ir/AIB8LXh98/v7FX/AeYMLyGF5Dvk+uye0PT/wteH3z+/sVf8AAPha8Pvn9/Yq/wCA8wYXkMLyHfJ9dk9oen/ha8Pvn9/Yq/4B8LXh98/v7FX/AAHmDC8iYWR3yn66/tD1B8LXh98/v7FX/AT4WvD75/f2Kv8AgPMGF5BpDvk+uye0PT/wteH3z+/sVf8AAPhb8Pvn9/Yq/wCA8v4XkMLyHfJ9df2h6g+Fvw++f39ir/gHwt+H3z+/sVf8B5fwvIYXkO+T66/tD1B8Lfh98/v7FX/APhb8Pvn9/Yq/4Dy/heQwvId8n11/aHqD4W/D75/f2Kv+AfC34ffP7+xV/wAB5fwvIYXkO+T66/tD1B8Lfh98/v7FX/APhb8Pvn9/Yq/4Dy/heQwvId8n11/aHqD4W/D75/f2Kv8AgHwt+H3z+/sVf8B5fwvIYXkO+T66/tD1B8Lfh98/v7FX/APhb8Pvn9/Yq/4Dy/heQwvId8n11/aHqD4W/D75/f2Kv+AfC34ffP7+xV/wHl/C8hheQ75Prr+0PUHwt+H3z+/sVf8AAPhb8Pvn9/Yq/wCA8v4XkMLyHfJ9df2h6g+Fvw++f39ir/gHwt+H3z+/sVf8B5fwvIYXkO+T66/tD1B8Lfh98/v7FX/APhb8Pvn9/Yq/4Dy/heQwvId8n11/aHqD4W/D75/f2Kv+AfC34ffP7+xV/wAB5fwvIYXkO+T66/tD1B8Lfh98/v7FX/APhb8Pvn9/Yq/4Dy/heQwvId8n11/aHqD4W/D75/f2Kv8AgHwt+H3z+/sVf8B5fwvIYXkO+T66/tD1B8Lfh98/v7FX/APhb8Pvn9/Yq/4Dy/heQwvId8n11/aHqD4W/D75/f2Kv+AfC34ffP7+xV/wHl/C8hheQ75Prr+0PUHwt+H3z+/sVf8AAPhb8Pvn9/Yq/wCA8v4XkMLyHfJ9df2h6g+Fvw++f39ir/gHwt+H3z+/sVf8B5fwvIcvId8p+tye0PUHwt+H3z+/sVf8A+Fvw++f39ir/gPL+F5DC8h3yj66/tD1B8LXh98/v7FX/APha8Pvn9/Yq/4Dy/hF4UO+T66/tD1B8LXh98/v7FX/AAD4WvD75/f2Kv8AgPL6SLheQ75R9dk9oen/AIWvD75/f2Kv+Azn3xS/af8AhZ4nwvI9ucMfIyrO3Xxs9su9/Z8/fFL9p/4WD6cMfIGTqeWPHj9K2s/uPuKZg5nHjx+lbWf3H3FMwc1z5U2X89v1AAQ1gAAAAAAAAAAAAAVMpCNo2oADEAAAAAAABGEUBOwABAAAAAAAAAAAAAAAAAAABOQGBCTAfUDBMSIADJIAAAAAAAAAAAAAAAAAAAAAAAAAAAL2IRtAACUgBcEIF5lICNGlBx7F5jRpQGiNEIUBFAmCvGQHghBgYGRkAAMgAMjI2nQBkZY2aAMjPqGzUgGRkbNAAyAAAAAEgAAAA6AAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAQAAAAAAAAAAABkBIRl9YYIQABIAAAAAAAAAAAAAAAAAAgAASAAAAAAAAAAAAAAAAAAAAAAASAdAy4GAhEV9BgAQq6AA2AAID26eIj26Z0WPA/q/YABmsXlfx4/StrP7j7imYOZx48fpW1n9x9xTMHNc+VNl/Pb9QAENYAAAAAAAAAABehABepSLoUhjIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABECkyAQyGESlSMpGRAgL3IZAACUgAAAAAAAAAAAAAAAAAAFCLyMZlCdhguA8kbRtxBUjkuRMzEJcUjkcoQnN4jFv2I/TR02+rfItqj/us12y1jzKYrafEPx45jHM7y32xqlXDdJRXrZ2FDZlzLHpa0Y/Qc9+bhr/U2Rx8lvsxTkMGd0NmW0celrSl7D91HaulwfOnKXtZzX6rhhtjhZJa34ZPomzlGhWl0pSf0G0qWiabS+Taw+lH6oWVrT+RQpr2I57dZr9obo6fP3lqmnp95P5NvUf0H6aWh6nU6W0zaShCPSKX0HJYRot1i/2hsjgV+8taUtsapP8A3XD7T9NPZ+oS+VKCNhkwap6tmlnHBpDBIbLuf1q8EfeGyn+tdL6EZoDVPU88/dnHDx+zEI7Lpd7ln1jsy0XWvJmVYBhPUM8/dl9Lj9mMrZ9gutSbOUdoaeurmzJMDBj9dm90/TY/Zjy2jpvfiOX9EtM8pHf88h5I+tzf/Sfp8fsx97S0zspHF7R07txGRLkObH1ub3R9Pj9mOS2hp/nM4S2dYPpUmjJkykxzs0fc+mx+zE57MtX8mvJHxnsqP6lz9ZmOOYwZx1DPH3RPExz9mDVNl10/i3EWfCps++j8mcGbAwMGcdUzx92E8LHLW89q6nHpBP2H56m3dUh/uJM2hgG2Or5YYTwatTVNJ1Cn8q2qL6D4TtbmHyqM19Bt9xT6xR8529Ga+NTi/ajdXrNvvDCeB/lp9wnF84NfQTD8jbNXS7GovjW1N/Qfkq7d0up1t0vYb69YpPmGueBaPEtYjJsGvtCwn8iUo/Sfgr7L/wCFcL6Ub69Uwz92meJkhhrCZkdxtDUIZ4HCS9p+CvoGp0etvJ+xZOmvMxW8Wapw3jzDq+rDPvVs7mk/j0Jr2xPjJSXY3xkrPiWE1mEABkxAASAAAAAAAAgAAAAAAAAAAAAAAAEAA5BI2MkATpQQMGlBxbLkGjJSAAM4AAAAAAAAAAAAAAABCgAAAAACAERQnQAAAAAAAAAAAAAAAAAuYAAuEMBGxdAEAAACFIAAAAAABIe3TxEe3TOix4H9X7AAM1g8r+PH6VtZ/cfcUzBzOPHj9K2s/uPuKZg5rnypsv57fqAAhrAAAAAAAAAAAAAFQY6IZIYqAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIh3D6ABgIpO0ogyAnQAAlIAAAAAAAAAAAAAAFwRtCBFwVJvomyJtECP2A/VbafeXDxSoTf0HcWe09QrYdTFNPzOe/Jx4/MtlcV7eIY9yRcN8kmzOrPZ9tDDr1XN+SO4tND063+RbxbXdnDk6tir49XRThXny1tQsLyu0qVCcvoO0tdr6lXxxQVNPzNi06NOmsRhGPsRzwjgydYvP5YdNeBWPLDbXZa5OvX+hHaW21tNo4zBzfrO/wDjvz81/u6K8XHX7PxUNMsqPyLeC+g/VClCC+LGMfYjmU5rZb28y3RjrHiEwXABr2y0AACMFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIUgFJ3DeBkBgPkugT5EbyADXnzGeZcjcwx1D5To0ZrE6UH7Yn46+j6dWyp20PoWDsOrGOZsrmvXxLGcdZ8wx272jp1XnTcqbOqutmVVl0K6l7TNx9J006hmp92m3Fx2+zWV1tvVKGX6BzS7xOtrWlzReKlGcfajbz5nzq29GqsVKUZL1o7cfV7R+aHPbgx9pafeVywyJ8zaF3t7TLjOaEYvzR017synJN21fhfkzux9VxW8+jmtw718MJyDvL3bGpW+WoekXmjqa9pcUW1Uozj7UdtORjv4lz2xWr5h8QOafQG/cS16AASAAAAAIAAAAAAAAGTkUjCRgAJPYAAAAAAAAAAAAAAAAAAAACAAA0AAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAFzyIgVBAAAAAAAAAAAkPbp4iPbpnRYcD+r9gAGaweV/Hj9K2s/uPuKZg5nHjx+lbWf3H3FMwc1z5U2X89v1AAQ1gAAAAAAAAAAAAC5RTiVEImFJkoDFMjJSYCfQyMlAPRMjJQAAAQAAAAAAAAAAACFCZgAAQAE9YFBCgCDvkAOg7jqGTCRkAJAAEpAUgAAAAC4I2hAU5QpznLEINt+SMZvEeUxuXAp21ht/ULtpqi4R85GRWGz6MMSuqjk/JHHm6hhx+Zb6ce9/swmnTnUliEXJ+SR2djt/UbprFFxT7y5GwrPSrK1SVKhDl3aP3KMY8kkiry9YnxSHXTgf8A1LDbHZnR3Vb6Ed7Zbe022w1QU2u8uZ3CXMNFbl52bJ5l1042Ov2fKlRp0liEIxXqR9Mci4Kcs2mfLdERDjguMIoISAAAAAJzHcoAAAJAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARgU45KyNATsC+0MIGx1IV9AIGy4IAKmQAMgACk6sACk5AA2M+Ne1t68cVaMJe1H27gyi9q+JYzWJ8uivtrafcZlCLpyfkdDf7PuqWXbzVReTM7yMnXi6hmx/dovxcdvs1Pd6ZfWrfpbea9eD8b+LyawbiqU6dRNThGXtR1l9t/TrpPNFQk+6LLD1ePF4cmTgT/S1hkGX3+zZxTla1eLyTOgvdHv7RtVKEsLuizxczFk8S478e9PMOvAkpR5NNEXtOmLRPhqmFAQMkAAIAZJj1gkGOwASAEQFAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACQAAAAAAAAAAAAABO5QAAAABgVAnTuUIAAEAACQABIAAB7dPER7dM6LDgf1fsAAzWDyv48fpW1n9x9xTMHM48eP0raz+4+4pmDmufKmy/nt+oOYBDWcwAAAAAAAAAAAAAqGSkMZkBO45hCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAOYSdCApkIXvkgAoZABcBdBgEAyAYJ8AXB9ba2rXE+CjTlNvyRkOl7Su62JXL9FF9u5zZuVjxfmltpivfxDGoxk3hJtnY2Gi39416OjJJ95LBnenbd0+zSfouOS7y5ncU6cIJKMUl5JFRn6xHikO3HwfvZh+nbOisSu6ufVEyKx0ewtEvRUI582uZ2CXUFVl5mXL5l2049KeIcVFLklgpywMHLM78t2nHGWVI5E6gAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMpGAZMj2AIMgPOQgIkVjGFzAAnUAB3BWR9QAAAAAAAAAAAAAAAAD6HGcIzi1KKa9ZyBMTMeETET5dTf6Bp12m3RUJPujHdR2dWjmVrUUl5MzjmPoOvFzsuOfSWi/Gx3+zUt5pt5aScatCax3wfl6dTcNajTrR4alOMl60dJqW17C6TlCLpTfkWuDq1Z9Lw4snBmPytctkbO/1Pa1/bZlSj6WC8up0VajUpT4KkHFrsy1x8jHkjdZcVsVqeYcewJz6FNzDQACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVgYCNpgFGAbQcitcggBO4KgIXIIBQQoAABAAAmAABIe3TxEe3TOiw4H9X7AAM1g8r+PH6VtZ/cfcUzBzOPHj9K2s/uPuKZg5rlTZfz2/UABDWAAAAAAAAAAAAVAQqD9hUQiZAAGIAAAAAAAAAGAAAAAAAAAAAAAAAAAAJ3ArIggwk7kL3DJgEgwQAAckm3hJt+oTMQlO4S58lk7bS9Bvr6ScabhD9qSwZZpW1rO2SlcL0s19RwZ+fiw/f1b8XGvdhmn6TeXs0qVGWPNrkZTpez6cMVLupxv9lGV0aNOlBRpxUUuyOeCk5HVMmT0r6QsMfDrXy/LaWFrawUaNGMceo/Uki4yVFba9rTuZdkVivhEi4GB3MUqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGBQTJ+i3s7u4eKVCpL+6yYrM+IHwZMnd2+19UrJN04wT82ftp7LvHzncU19H/ubq8XLP2TpjGQZbDZdTHxrmOfYcZ7Lr/qXMPqMvo8vserFAZDW2hqNNNwlCf04OuudF1K3zx282l3Sya7cfJXzA68Is4Tg8TjKL9aIapiY8okAAAABIAABGUjCEKAQiXFnIcggIUB8wI1kJYCZSUoAgAAAAj6lAESHQrIEaGCsiABIdx0ABgAM9wA0ACAz6gKMDqyrASNJn4L/AEuyvItVqMW/NI/f3yEZ0yWpO6yxtStvLCNV2fJJzs6mf7LMYvLC7tJONajKOO+DbzWT43VrQuIOFanGa9aLTB1W9PS/q4svCrPrVp3nkdjPdX2jQq5nZy9HL9l9DEdR0m9sZtVaUseaWUXODm48sekq/Jx708w/AhjmHldR3Oze2mVIUEoAEAAAAAAAAAAAAAAAAAAAAERQAAAAAAAAAAAAhQAAAADAAqBEVhAAugAAAIMAAJAAwgAASAAAAAkAAA9uniI9umdFhwP6v2AAZrB5X8eP0raz+4+4pmDmcePH6VtZ/cfcUzBzXPlTZfz2/UABDWAAAAAAAAAAC8gQq6kSgKCZDFQTsAKAEAAJ3CYGUiANfZQQqzkAAOwQAAAAAAAAAAAAAABGQKQpCUmeZC8zlCMpPEItt9kJtEEQ4ljGUpJRWWd3pG2729alOPoqfmzMdK2/Y2MU3BVKn7Uiv5PUceL0j1l1YuLfJ5YbpO2769anKDp0+7kZfpW3LGzxKUfSz85HdRiorCWEVLmUXI6jly+kTqFji4lKJCEYrEUkl2SOaSCBXzMz5dURoRGUMCHLt1IkMAXJF1HIAO5yIupQABAKAAAAAAAAAAAAAAAAAAAAAAEzyAoOLZc5ApMkXQ7PRtGutSqpQi40+8muRlSlrzqB18IynJRhFybO+0ra97d4nWXoab8+pluj6DZ6fBNQU6neTO2SSLXB0/73ZRDpNO2zp1riUoelmu8juaVGjSWKdOEUvJHPkVljTFSniE6TAKhg2JQFBIhHFPk0n7TkxyImIkfgvNKsbtNVaEOfdLB0Go7PoyTlaVHF+TMtx5jBoycbHfzCNNUalpd7YTca1Jpdpdj8WfM2/XoUq0HCrTjNPzRimv7VjJSuLHk+vAVmfgTX1ox7WGA5V6VSjVcKsXGS6pnErZjU6lAAAkDACE7sFIQlOnYuAwGMhCvoQCdy5HfkORKT2DuQqCBAAJAgOgAAACNlHUCdwAECBV1IwHsAAAIAC88BMncYA5LmMEXI5BKFIUJRo+dahSqwcakIyT80fUExaYncMZrE+WL6xtS1uMztn6Ofl2MQ1TRb2wk/S0nwr9ZdDa2EfOtSp1IuE4KSfZljx+pZMfpb1hyZeHS3hpz1Az/WNqW1zxVLZ+in5djD9T0i8sJtVaUuHzXQvuPzseaPSfVW5eNfG/AADsc4ACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQCAuOYYAQiKMAAgAEAAAAAJAAAAASAAAAAAAAHt08RHt0zosOB/V+wADNYPK/jx+lbWf3H3FMwczjx4/StrP7j7imYOa58qbL+e36gAIawAAAAAAAAAACohUJJ8KQD2EMdKAQCghRCYhOZe/IeYAMdSN8wBewBAjyo7ABAAAAAAAAAAAABAKCFXN4AnmIxcnhLLOz0nRLy/muCm4w7yZmuj7bs7JKc4qpU82cPJ6hiwxrzLqw8a95YlpG3b29kpSi6dPzaMx0nb9jYxT9Gp1P2mdxGEYxxFJL1HLBQcjqGTL6R6Qs8XFpRIxUVhLCLjPUBdCvmdunRgoXUAAAADAALksjLDJgAUhe3IC49YJ2LnkBQTIAoJ2ADJSACkAApA/aM88AUETyAKCFAEyUgDPqGfUOnUoEb5k7FC5gcUVc2ORkW09ClfVlcV01Ri/rNmLHOS2oRCbY29UvZqvcJxorn7TP7W3pW1KNKjBRiuyOVGlClTUKcVGK6JHMv8Aj8auKP8ALZEKBkHUkYA6IAgAAAIBfpDIVAAHkAQMuCEDptf0K31Gk5KKhWXSSXU17qNlXsbiVGtBpro/M22dZrmk0NStnGUUqi+TI4OVw4vG6+UaauKfp1KxrWF1KjWi1h8n5n5ijtWazqWAACAAASncMpx7EIH0HUcsDoSgQJkqYEKB3CQBAAEPUAHcDqABCjIEYDHbIRIEC4Ag6B9AAKwiACggFL5HEoFKcQEuQAAEKAlH7D5V6FOtTcKsFKL7NH2BNbTWdwxmImPViOtbTpVeKrZtQl14exh9/p91ZVHGvTlHHfHI27g/PeWdvd03Tr04yT9Racbqd8fpb1hx5uHW3rVqAGX63tKUeKrZNyX7Jilxb1reo6dWDjJdmi/wcrHmjdZVeTDbHPq+YIU6WoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeoRMlTCAABAAAAAAAAJAAEhUiFQDAKAjbiAVBKA5E5hG0Pbp4jwe3DOix4H9X7AAM1g8r+PH6VtZ/cfcUzBzOPHj9K2s/uPuKZg5rnypsv57fqAAhrAAAAAAAAAABcBIqBG2O0wUiKEgY7gI+4AGSyOwACNIUAJAABAyghEwhWAwxAQoTITuUBAACBEUsIynNRgm2+yMk0Pa9e5cat2nTpvt3NObkUwxu0tuPFbJPo6Kxsbm8qKnQpuWe+ORmWh7VpUVGreYnP9nsjv7DT7eypKnQpqPrxzP2YPP8AK6nfJ6U9IWmDiVr62fOjRhSiowgopdkfTGCgqpmZ8u2IiDAAIAAAAAAAAAMACYGSjABdAioAEAhkCgg7gUEAABgA/IIMfSEj9gWAyBC8h2ImM8gL3D65JnnkAUdyM/RaWdxdTUaFKU36kTFZt4H51z5srMjs9o31VJ1XGmj9v9C5Y/8AM8/YdFeJln10alh+SGS3O0L6nl05xmjqrrRtRt3+ct5Y80jC3HyV8wTEroGmz1K/hSS+IucmbOs7enbUI0acUoxWDoNkWfvazcpwaqTfdGSlxwcEUpufLKICkBYaZKQAgUfyIUByIAgKQACjoCAUgAFIAADQAS6ncWk0tRtGsJVYrMWa2u6FS1ryo1YuMos2+zFd7aQq9B3tGP5yPysd0VnN40WjujywtDBgTo8FKViAEAMFIwHYncoIQncDuQkC9yYKEgY7EApEUAEO4AAAACLzHmAgKABAOwQDkEi9AgHqA7hAB3DHLABF7ESCAvrAASoAAAAAAAI0dbq+j2moUmqtNKfaS6nZgzx5LY53WWNqRaNS1nrW3Luwk5wTqU/NLodHJOLw1hm5pwjOLjJJp9UYzr21qF0pVbVejqdcdmXnE6rv8ORW5+Fr1q1+RH6b+xubKq6dem4474PzJ8i7pet43CutWazqVBM56FMkAAJAAAAAAAAAAAAAAAAAAAAAACAABZBUAAwAgAAAAAAAEhSAAUgAuRkgAFIAKMkAFPbh4jR7cM6LDgf1fsAAzWDyv48fpW1n9x9xTMHM48eP0raz+4+4pmDmufKmy/nt+oACGsAAAAAAAAKiAC+woQIYJ7Cgj6BK9wTuXsDZkAAAOw5AATqUJ1KBBFGk6ACBExKgDsEaACZCFBMnOnCdSSjCLbfRIiZ15TqZcM8z9+laXdajWUKUGo95PojvNA2vOtw171cMOqj3Zmlpa0bWkqdGmoRXkVPL6nXH+Gnl3YOHNvWzqdD27bWEVOcVUq+bXQ7xRSSSSRyB57LmvlndpWlMdaRqAAGpmAAAAAAAAAEyBQTJUwbAyLqGARc5IALnngPqA1zABjBH0AuSnFlQF5gDK6AO4OKL15YArIn1DXPmQIX6Q+hPYGgHrHYACnKlTnVmoQi5N9EjjCMpzUYptt8sGwdqaDTtKMbm4ipVZLKz2N+DBbLbUJiNuv0HanFGNe+5d+Ay21s7a1goUaUYpeSPv2BfYuPTHHpDPQADoSElGMliUU/aigiYiRIxjFYikvYigExGgAAAAAVBkKBAUgAAAAAABSAAAAAABnCrBVKcoSSaawzmGiJjfpJ5av3NYOw1OcMfEk+KJ1hn++bBXGn++Ir49P8Aka/74PO8vF8vIwlQCHKhSdwM8wHqIUEEhCgkTHIBsACBvkAg5lQyRMJUAcsgOgYAEbZSB9QgA7AAPYABQh7SIChBhAPYOQwxh9wEWCpEx3AFQCQSoAAAAAAABM8ygCIPBQB+PUdPtr2k6denF5745mC6/tmvZt1bdOpS9XVGxX0OMoqSw1lHZxubkwz/AIaM3HrkaZalB4aw/ILmjYW4Ns0LyMqtslTq9cdmYNfWVxZVnTr03Frvg9JxeZTPHp5U+bj2xy/OADsc4ACUgAAAAAAAAAAAAAAAAAABAAXAGQEAAAAAAAAAABsAASAAAAAAAAAAAe3TxGj24Z0WHB/q/YABmsHlfx4/StrP7j7imYOZx48Z+FbWf3H3FMwfmap8qfL+ef1AOYIYAACAAAAASgKhgIImRvBSF7kIj1MYJ0BSWUABOQJGByKQiAAEp0AAAAAAAAhQOoJMBlSfRdTvtv7dr381UrJ06XXn3NGXNTFXdpTjx2vOodXpmnXN/VVOjTb5832Rnugbdt7CKqVEqlXzfY7LT7C3sqKp0aajjv5n7Eec5nUrZZ7a+kLbBxa09Z8okuiRQCrl2aAAAAAAAAAAAAGQAJ3KBGMFfQgFRMFAECWShdWAS9Yb5gj6gMjsMAICpEXUqYFwRl7kaYSJkyUdUEDIVdQkwIMjDAAA+lGnKrVjTisuTwiYjc6GQ7H0z31ee+akc06fT2mwUsLCOt2/ZRsdNp0ksSazI7I9FxMMY6NkRpR2IDq0kABIAAaAAEAAAAAAAAAUgQAFIAYAAArADsQAAC4AEBSAfC+oqva1KTWVKODVF5TdG7qU2vkyaNus1nu2h6HWavLCk8lV1Kn4Ysxl1GeeA+g5dg/Ip2KBjoAHYdgAGQB3ABoACNBIr6AAMDuOqApO4AFIOxABSDkEOTxg4lD6gAiF7gGQvMdgIcl0IioJ0dggAKQcigToA1kICgAAAAAAAAAACFAjHcFA44Pxanp1tf0XCtTTfaWOZ+8jMqXtSdxKLVi0alrXX9uXNhN1KMXOj5rsdDzTwzctSnGcHGcU0+uTFtxbWp14yr2S4Z9XHzL7h9Tifw5FZyOFr1qwMp9LmhVtqrp1oOLXmfMu62i0bhXTExPqAAyQAAAAAAAAAAAAAAAAAAAVEANKBzAQAAAAgEAAAAAJAAE7AAAAAAAAU9uHiI9umdFhwP6v2AAZrB5X8eP0raz+4+4pmDmcePH6VtZ/cfcUzBzVPlT5fz2/UABDWAAkAAEBUFgLqETJjmUmSkMQBgJgABLIAAAAAAAAAAAAAAADa9DnRpVK1RU6cXKT6YP0aXp1xf11Towb5832Rn+g6Db6fTUnFTqvq32K/lc6mCP8t+HjWyTt1W3NsRhw3F6k5dVEy6lCMIqMUkl0SOSSXYHmeRyb57bst8WGuONQewAHO2gAAAAAAAABEBQidSgGQAIBkAC+0YHYmAkHMIBAxzAQFZO47AB5jsAAXUpEVBMK89iZ5hsgF5k9oAQq68+pTicshIccPJySbfI7TS9Cvr6ScabjD9pmdMdrzqIPLqoxcpJJNv1GX7O0Gp6ZXl1DEV8lM7jR9t2dklOovSVPX0O9ilFJJJJdkWvG4PbPddlECRQC1j0ZAAAAAAABsAAIAAAAAAHcACkQYAo7kAF9qAAAAnIAAAKPWQAC9iFAjMA3/T4dQhP9qJn5hPiLH87Ql6v+5w8+P+JEx6MQL2IGUDAfrGfIMAAAgAAAAAAAAASDCApAyAUYJ2LkCBlZAg7gAAVE6ACpF9hF0KugIPpJzLnzASLPdB9QAKAQCk6FAEKQoAAAAAAAAAAAH0IUgAIAJGRorL2CHU63o1rqVJ8cFGpjlI17rOkXWm1nGpFuGeUkuRtc/Pe2lG7ounWgpRZY8Tn3wzqfDlz8WuSNx5afKZDuPblaxnKtbpzo9fYY8+XJ8j02HPXLXdZU2THbHOpTqUnrQNzBQAAAAAAAAAAAAAAAAABQQqCAABBgABIgAEAAAAAJAADYAAAACQ9uniI9umdFhwP6v2AAZrB5X8eP0raz+4+4pmDmcePH6VtZ/cfcUzBzVPlT5fz2/UAAagAAAABcBDAwQxH5hdCgGxgdgTCYAAEgAAAAAAAAAAAuBFZkkllsiZiEbEdxoOhXGo1VJpwpZ5yZ+/be253LjcXcXGn1UfMzm2oU6FNU6UVGK6JFNzepRT8NPLu43Em34rPhpmnW9jRjSowSx1fmfsYxzL1PO3vN53Za1rFY1CL1gpDFkAAIAAAAAAAAAAA7AAAkMAAEgAAJ0L2IwAXQJFAeshSAB3HMLqEHcMAAVEGQLyJ3COSUpPCWRraUSI+p2FnpN/dNKlbzw+7R3+nbPqyxK6qKK8kbqce9/EGmJwhObxCLk/UjuNM27fXjTcHTh5yM40/RbCzS9HRi5L9Zo7FJJYSwiwxdP+9kxV0WlbasrTEqsfSzXdneU4RhHhhFRXkjkillTDWniGWkwUmSm1IAAAAAAAAAAAAAAmRkCgmRkgUEyRvCyNjkDjF5WTkBSAEigDvkAQF6gQF7EABAoEABAGE+IkvzlCPqM2Ok3HokNV4ZcbhOPRnPy8dr49VRLWucDOexnlns+0p4depKb8kdlS2/pVNYVtF+0qq9PyT5YxVrH2kNn1dv6XUi07aK9h0mq7RjwudlPn+yyMnAyVjcHawxDmfa8ta1rVdOtBxkj4rkjimJj0lB3A9Y7EAAwADAAABgRjuXyIEKQJgAAAAQAAvchQA74YSDyACXUvqHRARLnzKh3KE6QoAEKAAAAAAAAAAAAAAACFAEKAAADAj5cxh+ZQB86sIzi4TSkn1TML3RtrHFc2SyurijN2cZJNYfc6ePyb4bbhpy4a5I9WmpxlCXDKLTXVMGe7m25C6jK4tYqNXq15mC3FGrQqyp1YuMk8YZ6ji8umeu48qbNgtjlwBCnW0AAJAAAAAAAAAAAAABO5UAgKgAGIAAAAAAAAAAAAAAAJAAAPbp4iPbpnRYcD+r9v8AYADNYvK/jx+lbWf3H3FMwczjx4/StrP7j7imYOa58qbL+ef1AAQ1gCLyCNnYdyk7kI2Y9ZSZKEBGUIQmEKASyAAAAAAAAACAUqOJ9rahUuKsadKDlJvsY2tFY3KNb9IcacJ1ZqEItt9EjNNs7aVNRubyOZdVF9j9m2dvUrKCr3EVKs+fsMjSSWEee53UZt+DGtONxIj8VnGMFGOIpJLsjkUFJMzPrKwiNJkBooEAAAoAEAAAAAAAAAAAAAAAAAKBAwGBMlYHYATIQAPoAAgAAD2HOlSqVZcMIuTZxXU+tGtVovNKbi/UTGt+qYd1pe2Ly5alVxSh6zK9L29YWaTko1J+cjBI6tqCWFczx7S/lfUf+ZqfWduLNhp9kw2jThTgsRUYpeRyys9Uas/LGo/8zU+sv5Z1H/man1nTHUKR4hO20srzQyat/LWpf81P6zktb1L/AJqf1mcdSr7G20Uxk1d+XNS/5qf1ha5qX/NTH8Rr7Hc2jlDKNXfl3Uv+an9Zfy7qfe6n9Y/iNfY22hlDKNX/AJd1T/mpl/Lup/8ANTH8Rr7J22flDiRq967qf/NTJ+XdT/5mf1j+I19kdzaOUMo1d+XNS/5qZfy5qX/NTH8Rr7G20OJDiRq/8ual/wA1Mn5c1L/mZ/WP4jX2Nto5XmTPrNXflvUv+ZmT8t6l/wA1P6x/Eqex3NpZXmhleaNW/lrU/wDmp/WR61qf/NT+sfxKvsnbaeV5oZXmjVn5a1P/AJqf1j8tan/zUx/Ea+xttPK80TKNW/lrU/8Amp/WX8t6n/zM/rI/iNPY22imi59Zq38u6n/zU/rL+X9U/wCamT/EaeyO6G0sjKNXLcGqp/8AmpnNbk1Vf+okTHUaex3Nn5WRk1vb7i1qpJRpylN+pGSaPPX7jE67jCD8+pux8uLz6QnbJe4RwpqSilJ5fc5nWk+gewhWSIUgAAAAMFIAwAAGCNFAHV63pFDUbeUZRSqJfFkka31OxrWFzKjWi00+T8zbbOm3NpMNQtJOMV6WKymV/M4sXjur5RMNaEZ9K1KdGrKnNYlF4aPmUUxMTqWEgACF7EyABe47EANgYAAAAAAAAAApMl+kAgyoMCMZKwkBMlDRQlCkKAAAAAAAAAAAAAAAAAAAAAAQFAECAAEa5FC6gcccjodyaBS1Ck6tKKjWS5Y7mQA24c1sVu6rC+OLxqWnb22q2leVKrBxkvM+KZs7cWi0NSotqKVZLkzXOoWdazuJUq0Wmv4nqOHza54/yps/HnHP+H5ykRTvcoACQAAAAAAAAAAAAAEXqQcghQEAgAAAAAAAAAAAAAAAAPbp4iPbpnRY8D+r9v8AYADNYvK/jx+lbWf3H3FMwczjx4/StrP7j7imYOap8qbL+ef1AAGtV1HcLqEQiVBGEGOlAHcAGO5AyiAoBKQAAAAAbQRCgAQ/ZpljWvrhUaMG89X5GF7xSNyRE2nUOFhaVryuqVGDk2bD27odHTqSnKKlWa5t9j7aDo9DTrdJJOo/lSwdqsHmed1Ccs9tfC243FikbnyuEkQvYFU7RD2DJABSACjuQAAAAAAAAAAAAAAAAAAAAAAAdwQCrqO5B2CDuAAGBzAAAAAi5IwBexcnEIDknkHEuQlQTJUAwMAAOQwAAwMFIAwMDn5l7ATAwUATAwUiAYGBkZ5gMchgZDwAwPUQBOwYByhCdR4hFyb8kTETKPLiTHPCO80zbV/eYlKHooPvIynTNq2VtiVb87P1nVj4eS5qWDWOmXl5JKjRlJPvjkZLpezm8TvZ4/sozGhb0qMVGnTjFLyR9Uiyw9PpX1t6su1+Gw0qysopUaMU/NrmftSKU7q0isekJRAoMkoAAAAQAhe4AEAAAAAAABxaORGBhe+NIx/46hHl+vgw55NvXdGFehOlUWYyWDWGuWM7C/nRksRzmJR87j9s90MZh+ABgrmAAQCgBgAAAAAAAAAAAAAFXmGwQC55lXmcWVcgLkDPIIJUAAAAAAAAAAAAAIw2cWwOWTjn1nXa5rWnaNaTub+5p0YRWfjPqaB8RfGK+vrl22hSdvQhL/ad5HfxOnZuTP4Y9GjJnrj8vSCZc8jWvg54gUNy6dGzvKkY39NYab+V6zZCbNHJ41+PeaWZ48kXjcORSA52xSAAUgKBAPYGAAIAZ1Gv6PR1Kg8pKolyZ2/YhsxZbY7bqwvSLRqWo9Ssa9jcSpVotYfJ+Z+U2nruk0dSt3GUUp45SNb6pYVrC4lSqxaw+T8z1HC5tc0anyp+RxpxzuPD8oIUsXIAAAAAAAAAAAAAA7AdgC9ZUPIBEyAAIAAAAAAAAAAAAAA9uniI9umdFjwP6v2/2AAzWLyv48fpW1n9x9xTMHM48eP0raz+4+4pmDmr7qfL+ef1AAGte4HcLuQxkYYyMhEALkghMBQTsSlQCAUAdgAHcDZsBFzP26Tp9fULmNKlFvnzfkYXvFI3JFZtOoTStPr6hcKlRi8Z5vyNkaHpNDTrdQhFObXxpeZy0TS6GnWypwinLHxpd2dieX53PnNPbXwuONxoxxufJgLqClY6wMgAAFAgAAAAB3AAAAAAAAAAAAAAAAAAAAAT1Fx5DuAIOw7gIGAwAAAAAAAOYAMAdQA7AAOpSINgUqOPtGQnalZMgGwpABRkjZOoNqXJxLkBn1EXIFwEJ1BXyI+gSZL3LTjOpLhhFyb8judN2zqN21KdN0oecjZTFe/iB0v0n6rPT7y7klQoTlnvgzjTNp2VvidbNWa8+h39C3pUIqNKnGC9SO/F060+tkxVhel7PqzxO8mor9lGT6fo1hZJeioxz5tczssAscfEpj8Qy0kUkuRyAOqI0kABIAhSNgQAgMgAAyAAUhUQB9AAGgAA0AAJgCMpGJEZje9tN982XviEfj0ub9hkrPlcU1VpTpyWVJYZozY4vSYQ1AvWM8zt7zQ7x6rUt7ejKUeLk8csGRaNtKjSSqXsuOf7PYoqcTJe2ohj2sQs9PurqSVGjJ5745He2O0Lmok684015dzN6FvRoQUKVOMUvJH1LHF06setk6YtT2faKOJVZt+0/Pd7N5N29b6JGYg6LcLFrwnTWOoaBqFplypOUV3idVKMovDTT9ZuKUVJYkk0Y5uTb1K7pSrW0FCqlnC7nDn6f2xurGatfg51qU6NWVOaalHk0cSrmJjyxQAciAAAAdgAAAAAAAVMhQKU4rqUJUAAAAAAJ3AMhX1Pz393b2VtO4uasadKCzKUnhIyrWbTqETOvL7SaSy3gwDxG8StK2zQnRpVI3F5jEYRecP1mB+KPjA5qppu3pfF5xnW/wCxpC9uq93cSr3FWdSpJ5cpPJ6bp3RJvq+bwr8/LiPSru947t1fc17KvfXM5Qz8WmnySMeYWTtNu6DqWvX0LTTradacnzwuS9p6mIx8enp6QrvxXlNtalf6Tq1G80+U1XhJNKPc9g7H1S51jbtte3dvOhWnBcUZLBhHhr4T6docKd9qsVc3uE+FrMYm0qcIwgoQioxSwkljB43rPNw57apHrH3WnEw3pHq5JF7hAoHcoAAAACAMAO4IUCCRQBGdZrmlUNSt3GUVxpfFZ2bRMGePJbHbuhjesWjUtSapYV7C5lSqxax0fmflNp67pVHUrZwlHE/1ZYNbanYV7C5lRrRaw+T8z1PC5tc1dT5U3I48453Hh+UEXmUsXIAAAAAAAAAAAEABQAGIAAAAAAAAAAAAAAAAe3TxEe3TOix4H9X7f7AAZrF5X8eP0raz+4+4pmDmcePH6VtZ/cfcUzBzVPlT5fz2/UAL2DUhQCETKk7lJzyECKASygAAAAACLoUhCJUEP0WNrVu7iNGlFttmNrRWNyisTM6hz0yyrX9zGjSjnL5vyNk6FpVHTrZQjFcbXxpHz29pFLTbZLhTqv5TO3R5jn86cs9tfC44vGikbnydgAVbtAABUQAAAAAAAAAB2AAAAACkAAAAAAAAAAAAAAAIUjADsUMIQBgAAMgAEMcgADCAAZHcAAAAKydgA7AAOwxyAADsAgKugwQLqEhUQvYEBOvTmfos6VtOWbis4R9SyZBp9Tbdsk5KdSS7yRtx4u7zJp0Vnp95dySo0Jv14Mj0zZ1SeJ3dXhX7KOyo7m0ajHhpxcF6on1/pZpePlT+o78WDDX1tLKIh2On6RY2cUqVCOV3Z2CSSwlgx7+lmlftT/wj+lulftz/AMJ3Vy4a+E+jIhkx3+lul/t1P8LH9LdL/aqf4WZ/U4/cZFkZMd/pZpX7U/8ACP6W6X+1U/wsfU4/c2yLIyY7/S3S/wBqf+Fl/pZpX7c/8LJ+px+4yHIyY9/SzS/25/4Sf0s0v9qf+EfU4/cZDkuTHv6WaV+3P/CP6WaX+3P6h9Tj9xkAMe/pZpf7c/qH9LNM/an9Q+px+5tkOWDHf6WaZ+1P6g926Z+1P6h9Vj9zbIgY5/S7TPOf1Mf0u0z+39TH1WL3NsjBji3dpnnU+pl/pdpnnP6mPqsfubZEDHf6W6Z5z/wsf0t0zzn9Q+rxe4yIGOrdmmftT/wl/pXpb/Wn/hYjlY/c2yHIOgW6dLf+8mv7py/pPpbeFVl/hJ+pxz9x3uSH5bG8p3kOOkpcPm1g/V2NtbbjcJCYKUy0OChFPiUVlnIo7kRAgAJiAIXIGhA+hWRkSMS3poyqQd7bw+MvlJGE9HjBuCpCM4OMllNYZrfdWmuwv24r83Pmim53G1PfDC0OnDXkAVbFAVkAAAAAAAAAFRCpdAQpSMBIUg7AUAjYAjOFSpGnBznJRiurbwkan8TfFqz0iFSw0aSr3fRzXOMTq43Dyci3bSGrJlrSNyzfeW8dI2xZTrXleDqpfFpJ82zzb4h+I+r7ouJ041JW9nn4tKL6r1mLa7rOoa1ezu9QuJ1qknnLfQ65ntOn9Ix8eO63rKqzcq1/SPA228vmyxhKckoptvsj92h6Pf6xeRtbC3nWqSeOS5I3/wCGvg/aadGnf69GNe45ONPtE6eXz8XFr6z6teLBbJPo1t4deF2rbjqwuLqMrSzTy5SXOS9R6M2ltTSNtWULewtoKSXxqjXxpHdUKVOhSjSowUIRWEkuh9Ulg8bzuqZeTOt6ha4ePXGiL0KsDBVbdMBSMoAEKAAAAnYAAAABO4AB9QAAZ1WvaTR1K2cZJKol8WR2pGZ48lsdu6rG9ItGpaj1GyrWNzKlVi0138z8ps/cOj0tSt3ySqpfFZri+tK1ncSo1YtNP6z1XC5lc9dT5UnI4845/wAPzlJ3Kd7mAASAAABAICrICAQAAIAAAAAAAAAAAAAAAAD26eIj26Z0WPA/q/b/AGAAzWLyv48fpW1n9x9xTMHM48eP0raz+4+4pmDmmfKny/nn9QABrUYC6lDCZB3ACEXQoBLMAAEKwCEJgoZYRlKSjFNtkTOkeXK3pTrVY06cXKTfJGxdr6JDT7dVKiTrSXP1H5NnaEraCu7mOakucU+xlKWEed6lzu+fl0WvE43b+KwuQAKVYAAAAFAgAApAAAAAAAAAAAAAAAAAAAAADn2IfC8u6FpSdSvUUIrzYiNs6UtkntrD75Lkx2W7dLVTh9K8eZ2Wm6tZX6/8PWi35Gc47R5h05On8nHXutWdOwQJkIwca9QAAYQIBckDAQdgwACKRdyoJGEAAJ0ZR1AmC4IuZQAwMjIE6BlIwAYTDCBgMAOw7gAF0GAAbMF7EATsWC8iAbNrgYIBs2YHIdQNmzkXBANm15EA5DZsHIAbNnIcgBs2chyAQ2bByD8wTtKY7gpFzGza8gAQjZgAA2JHJI/Tp2n3N7VUKFOTz3xyM00batChw1Lp+kn+z2OjDxsmWfROmJabpF5fSSpUnw/tNcjMNH2va2vDUuF6Sp6+hkFGjTpR4acFFLpg54LbDwa4/WfWWUQ404QpxUYxSS7JHIoO+I9PRKFAMgABAgARIAAgCFBMiYOp3Hpq1CxlBL84ucWdvgNGvJji9dSNQ3dvUtq0qVWDjJPHM+JtbUNLs72P56jFvzOgvdnUJZdvWcPUymy8C8T+Fh2sIB3t5tjUKDfDFVEu6Oqr2dzReKlGcceo47Yb18wjT85GcsNPmiN4NehAAYoAAARc8yBAVFJjyGcIJXHqJ1GQwbQ/NqV9b6faTurqpGnSgm22fPWNStNKsKl5eVY06VNZbbPM/iv4kXm5LqdlYzlRsIPCSfy/aWfT+nX5Vv8ADnzZ4xw7PxW8VrvValXTNGm6Nom4yqReHI1JUqTqScpycpPm23kPn6z72Flc39zC3taM6tSTwlFZPccfj4uLTUeinve2SfV+ZZbwjPfDzw11fc9eFapSlb2WfjVJLqvUbA8LvCCNN0tT3DFSlylGg/8AM3daW1C0oRoW9KNOnFYUYrBTdQ63FN0xOvBw9+tnQbN2bo+2bONKyt4upj41SSzJmSYAPJ5c18tu607WcVrWNQYQANKVRSIBIAAGCk7gAAAAAAPAAAgBQJ3GQABGUZAnI6PcujU9Qt3KEUq0ejO9I1lG3Dltit3Q13pF41LT11QqW1eVKrFqSeD5mxNz6HTvqEqtKKVaKz7TXtalOjVlTnFxkuqZ6vicuuev+VLnwTjlxJ0CKdrnAVEwACHYvMCdi4CAQAAAAAgAAAAAAAEgAAAAAe3TxEe3TOiw4H9X7AAM1i8r+PH6VtZ/cfcUzBzOPHj9K2s/uPuKZg5pnyp8v55/UAKGuTuOZQGACMoTAACUgABIAQhj5Vc+S5szDZ2g8XDe3UOX6kWfi2locrusrmvHFKLyk+5sCnCNOCjBJJdMFH1HndsfLoseJxt/is5JKKSS5FAPPTO1oAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAyMgSTxFs1fvvVJ3WoyoQm+CHLGe5sXWK/vfTa1XyizTN5UlWualSTy5SbOziU3O3svhPhVyZJy2jw+OT9emX9ayuYVqU3HD6ZPyJZZzhTlLLjFvHU75rEvfZsOPJSa2j0bi29qlLU7GFWDzJLEl6zszVOyNVlYalGlOX5qo8M2pBqUVJdGVWfH2WfKet9OnhciYjxLl0A5kNKl2vYiKAGCFyAaQdy+0ncIVdwEAkDACQABBgmSsgFZBkBB1KyD1AMch2GShKDA6sBAGOw7gAEgAAAADsAADAAAYAFBAkyOQAQAqGAaQAMAAEAQL5hdAlAXBMAEC4InwyUsZwwafps7C7u5qNCjKWe+DLNG2glw1b6Wf7COhttxXtvBQoRpwS8oo+r3Vq3/EX1I7cNsNPW3qmNNh2lpb2tNQoU4wS8kfc1m90avn/AGy+pEW6NX/4y+pHdXn4ojUQncNmkya0/pTq/wDxV9SH9KtW/bj9Rl/EMae6Gy8jJrX+lerftx+oq3Xqv7UfqH8QxndDZIya4/pdqi6uH1HL+l2qeUPqJ/iGM7obFyMmuv6X6p5QH9L9U8oD6/Gd0Ni5Ka4/pfqnlD6h/S/VPKBP8QxndDYwya5/pfqnlAf0v1T+wP4hjNw2MMmuf6Xap/YI926o+8fqE9Qxo3DY+Rk1s916o/14/UcZbo1V/wC9S+hGP8Rod0NlsM1i9y6t/wAf+BP6Sar/AMf+BH8RodzZ2D417ajVjipTjJPzRrV7i1V/+of1HGWvapLrcyMZ5+OfMG4ZnqO2bG4TdOPopeoxLXNCuNO+O2p089Ufmes6k+t1M+FxfXdxHhq15SXk2cebNivHpDGZh+ZFIuRWcMoAAACAAZ5hsAAAGBob3Tmr3dO4s9MpVZRoTg5Sin1eWaLbNye6hwtesfP0T/mzTWT6F0ikV41ZhS8mf+SWQ7J2lqm6dQjbWNJ+jz8eo1yielvD3w60ja1tCp6KNe8a+NUkuj9RiXuYacf6O3VThXF6Xrj2m5EUHWOoZJyTij0iHbxMFe3ulUkikKedmdu8wGikIQBdQAAyTuUAUncAAOiKBAGOYAEKAYIXAAciBsA1zIw+oCAAAAABGjE95aIq0HeW8Pjr5SXcy04VIqScZLKZ0cbPbDfuhqy4oyV1LTrTi2nyaBk28NFdvVd1Qh+bl1S7GMdOR67BnrlpFoUeXHOO2pVFwRdSm9qkfQIY5BAkAAAAAAAEAAAAAJAAAAAAABAe3TxEe3TOix4H9X7f7AAZrF5X8eP0raz+4+4pmDmc+PH6VtZ/cfcUzB+5pnypss/jt+siKAw0zOwhcAJgABKQAAAAQxmRna7a0mpqN5HiTVKL+Mz8ml2VW/u40aUc5fN+SNm6Pp9LT7SNGmueOb82VnUOZGGvbHl18Xj987nw/Ta29O3oxpU4qMYrHI+wB5a1ptO5XURrwAAgAAAAAAAAAAAAAAAAAAAAAAAAAAADIwBj26tf/JDhGKTk+xx0Hddlfv0dRqlUfTPcx/xQpT980qmPitdTCoSlCalF4a7pndj49b029/07oHH5nCi39Tcu5Y+l0WvwPPxc8jTtRYqNPzMu2zuaU6EtOvpcUJRcYyZjOpU/RX1WK6cTx7DZgpOOZiVl0Hg5ODa+G783Rne6JRjXsa0acU6qR0Xc7zaVd07/AIO0upYYaxa8Vn7rHrN7YuNbLX+n1dPLjoXHdSjI27ta89+aLQqN5aWGa33laq21Ljivi1FxIyLw91Cf5Pq0GuUHlM15uDfLljHHl5br+fHyulV5cfZm1W4pwXN8z4e/o56HT3FWpOT4XnJ9KblwrPU9Hx/hzBWn4/WXxbN1vLNvw+HdUrmnU6PB91zOhjJrodhY3GXwSZV9T+H/AJVJyYXfwesfMtFMj947BIsIOc4wXNyeEeT7Z3p6He4cre3rV58FGEpv1I7KG3NUnHPoce1mZ7b0ulY2UG4r0sllto7dlri6fE13ZDV93o2oW0OOpQfCurXM6/HPmbdqRjOLjJKSfZmut26c7HUHOEcUqnNGjk8P5Ud1R04OLkl1Z+S51Oxt/wDb3dKnj9qRxVpa3iCZiH7QdFV3Zt+m8T1W2X7xEhu7b0uUdVtv8aNn02X/AOZY/Mr7u+B09Pcmi1H8XUrd/wB9H6qeq6dVx6O7oy9kyJwZI81lPfWfu/chg+VOtTnzhJNepn0UkzXNZjyy3Eg6MZRSBEUg7AgZeiIwEHUAAOxSJcihKLqGC4CEyF1GChJ7SdysgBsZ5AoEA7lAiKEAAAAAACYKgAAAAAMACFZAHIAjApMlJgEjJ2K+hEghUACQBcciYIBoYDQAYIcuRxGwAKNiAoGxCkA2KikQ7gMFJkMCgmRnmBQAAAAAAAAAAJkB9iYHnH3T1TO57SGfk0v8zT5tb3S0uLedNPtSNUn0Xpka41VHyP5kvSPuY4Y2rcy863/c2+jUfuZWv6I1v/vf5s23nkeM6r/2bLbjemOFQ5kGSsb9uRO+SAG1zz5BvyIMhC+wLIzzASZeSkKAAHUACcgAKQAAAADZADYAAgAAAAAB2wAB8LuhC5oSo1FmLWDW249KqafdyWH6OT+KzZ7R1+tafT1C0lTklxY5MsODy5w31Phy8nBGSP8ALVa6lPvqFpVs7mVGqmmmfA9VS8XjcKW0TE6kABmxAAAAAJAAAAAAAAAAAAAQAAAe3TxEe3TOix4H9X7f7AAZrF5Y8d/0raz+4+4pmEGb+O/6VdZ5/wDA+4pmEZNU+VJl/mW/WTAXsAI0wiPcABKQMAAARglTlSpyq1I04Jtt4SRxaMw2Ro3Fi+rw6fITOXlciMFJtLPDinJbTutraRDT7SMpxzWmsyfkd4kRLCKeQzZbZbTaV9SkUrqADoDUyAAAAAAAAAAAAAAAAAMgAAAAAAAAAAAAYAGP710z3/pU+BZqQ5o1PVhKnUlCSw08YN7yXEmmuRr/AHht6EbmVxSjhS8kdvFy6/DL2nw11unGj5OXwwaLakmnho+lSpOrLMnln6ZabcubjCm5ew7XRtq6he1FxwdOHdtHbNqx5e2zdU4lK/Mm0OgR+mwr+963pO6M2utkW1Ozk4136VLlnoYLfUKlpXlRqRw4vqdGCl7/AIqQrsXWuB1CtsUW/Z99a1GrqFSDqfqLCMj201aaWu0qjyzFdOoTu7qMIr4uebMuUVCEYJcksHpOl8S03+Zd84+OusYMPFrwON4fsV20z9tncqfKTOma8jlSm4PKPRPj7JIuLPrTfDJNM6KneSS6n2hetvGTXkrE1mJbKWmtomGX20uOkmdzti099apTTXKHxmY1o9Zzt+eTOvD+CdWtUxzSwfMcuGscyax42+hcW02w1mWZQSSS7JFZO50m8dyadtjRa+q6jWjClSi3jPNvyRbxXfpDbMxHrLt7itToU3UqzjCK5tyeEaU8bPGTaei2FSyta1O/1CPyYwfKL9Zojxg8edf3VWrWOk1Z2Om5aSi8SkvWaXrValao6lWbnKTy22WeLpsXr/yK/NzNelWe7n8V9z6vUmqdy7Wk+kKZh1zreq3MnKtf3E2/ObOvIyxxcPBjjVauK2W1vMvvK7uJP41eo/7zJ76uF0r1P8TPgDd8unsx3L9UL67j8m5qr++z9dvrGpU/kXtdY/ts6o+lJSlOMYrLk8JGNsWPXrCYm2/RlWnb43JYNeh1Othdm8mXaL407gtHGN1CncxXXPU6y08KtfutCpalSgnOouJU2ueDFtW2zrWlTcbuwrwx3UG0VU04OeZr6bd04OViju1Om+dueNejXko09QoytZPv2Nj6Pr+larSjUsr2lVz2TPFDUoPDTT9Z2GkazqOl1lWsbqpRkn+qzi5HQMV43inRTl2rOrQ9tJpoqPPuyfGi6t3C21yn6aHT0kepunbu5NK122jWsLunUys8PFzX0Hm+V07Nxp/FHo7ceet/Duu5AnkYOBuCocwBChhAAAAHYAACdigQF9RMBBkZKQCgiD6hKgi8ioAAAAAADuAADAAgYYAAEAvYAAQFAEwCgGjJEO46ARBgBAAACAAAAAAAAAAAAAAABcjJAByBxAHIM45OM5xhFylJRS6tvBMRM+DbnkZMU3Lv3bmgpq6vYTqL9Sm+J/wNZ7h8dHmUNJs2l2nM7sHTc+bxVovyKV8y3rKSXVpHwq31lRWat1Rh7ZI8r6t4nbv1RyjC8qwi/wBWkmdFVqbo1OXFU9/Vs93GRaU6FMeuS8Q57c6PtDLvdE3NvdbwjVtq0KsPR4zF5NYZMgW1dxXPxnY1m/OSZXsvcKWXYTPR8fNgwY4x98eivyWm9ttz+511TTLLa1SjcXtKnVlVb4ZPD6s21T1XTqnyL2g/76PHMtt6/bdLKvHHkmfKUdctflRu4Y/ssqOT0vDyck3i/l14+X2V1p7Shd28vk16b9kkfVVIPpOL9jPFVHcWu2rxT1C5g1/aaOxtPEHdls1wavccvORzT8O2/ps2Rz6/eHsVSXYp5V0/xi3dbNcd1Gsl+2m/8zJ9K8eLyGFf6fGp5uHI5cnQeRTx6tteZjl6DBqzRfGrbN41C6jVtpvzTa/kZvpG6tB1SCdpqVvNvs5pMr8vAz4vzVb65aW8S7wI4wlGazGSkvNPJyOSazHlsX1lycSrJCdgIGDY8ZL2IAhQTICdnQDLAQMAAAAAAAAAAAAAIyojQGP7r0eN7bOrTilVjz9pr6pCVOpKE0008G4GsrDMK3pozjJ3lCPL9dIvOm83U/LsruXx9x3QxIE5lPQKsABKAAAAAEAAAAAAAAAAAAAAe3TxEe3TOix4H9X7f7AAZrF5Y8d/0raz+4+4pmEGb+O/6VdZ/cfcUzBzVPlS5Y/Hb9VAAYAAAAAARhHOjTlWrRpwTcpPCMbWiI3KNbnTstt6ZPUb6MWn6OLzJmzbajCjRjTgkoxWEsHW7a0yOn2EY4/OSWZM7ZHk+ocqc19R4hdcXD8uv+VHcFZXupAAAAAAAAAAAAAAAAA2AwA7hdAAAAAAAAAAAAAAAD89/bRubeVOSXNcj9IJraazuExOnTaFo0bZSnXinJvkftvr2jaQ4YJcXZIupXXvei8fKfQxyrKdWbcm22el6P0meZb5uXwper9Xvj/BWfVyvLytXk25NLyRj247P3xbOcYpzjzO99EfG4pZg1jPI9xTj46V7aw8xxufmw5oyxZjW1qXDSqTa+NnB3TWT46fbO3hNcOMybP1KMm8YN2OvbGk9S5U8nPN5l8+FE4UY74i7gr7a0mN1RoqpKcuHn0RrCfijrkpPFOkl6sk2yRDTi4t8te6G8W4pc2fjq69odhU/wDGahQpy8nI0Hq++Ne1GLhK6lTg+sYGOVritVlxVKs5N92zl5FpyVmtfR38bhdlu671M/FHZ2nUOD8oxqtdoYf+ZLL3R+haLbVYWNhVuaknycuSPKrz55BS4uj4qX759ZX31lojUPQO4fdP7pu3KOm2VvbQfRvm/wCRq7eviPuvdsHT1fUak6TefRxeI/UYeCwpx8dPENFs97eZQFIdENSELgEiA5KMpPCTb9R+2z0nUruajb2Vao30xFmFstKeZbK47W8Q687LbNF1tfsqajxZrR5fSZbtzwq3Nq0oudq7am/1pm4vD7wj03b9xTvr2p76uYc1lckyn5/WOPjpMRO5W/B6Tny3iZjUNkaZTULGjDhUUoJYwLuws7uDhcW1Kqn2lBM/VFYWCnzy2a3dNol76uKvbFZhr7dHhVtvWISlToe9ar6SprC+o05vLwm13RuOtaU3d2655iueD1GcJwjOLjKKafZos+J1rkcefWdwruV0fj548al4br0a1vVdOtCUJx5NNH79C13UtGuo3Fhc1KUovOFJ4Z6h3r4caHuGjOXoI29w1yqQXc8/b78PdZ2zXlKVKde2zyqRR6zidW4/Nr2X8vKczpGbizuvrDbHhv4u2moqnY65KNC4eEp9mbdoV6delGpSmpQksqS7nheMp055TcZI2l4VeKN3otenp+qTlWs5PhUpPnA4OpdEiYnJhcuHlTE9tnpsH49J1G11Ozp3VpWjVpTWU0z9mTylqzWdSsInfrAACEgAABoACdgysdgIh3KkO4DuB3J3AMpCoEAAAAAB3HrAAAYAAIAAQMAAB9AABAABgoSiA7AIMdw0UAcWMFANOIKyBAAAAAAAAAAAAAAAAAVBBhIcZNJZyfm1K/tdPtp3N3WhSpQWW5M0T4leLdxd1KmnaA3TpLKdZdZew7uHwMnJn8MejRlzVxx6tl718RNC23TnTnXjXukuVKDzz9ZpDdvibuLcVZ29tOVtRk8RhSeG/pR1O3tr6zua79PWdRU5PMqtQ2ztjZelaNTi/RRrVsc5yRczPD6dHr+Kytyci+SfaGq9I2PuHWpqtcRnCEubnVbyZro/hdpdBRle1Z15910X8zYsYRisRSS8kXlkq+R1zPk9KekNLpdP2zo1lFKjYUeXeUUztKdtQprEKVOK9UUj7MeRV35OW/rNkuKhFeQ4I+RyxzBr+Zb3HzdKD6xi/aj5VbG0qrFS3ozXrgmfpBMZskeJGPans/Qr+LVWxpxb7wio/wAjCNweFNJxlV0qvJS7QkbYGEd3H6ryMM+lkaeYNd2/qmjVXC9tpwXaWOTOpPVOpadZ6hQdG7oQqxksc0am334cTtozvdITnTXN0u6PV9P69jz6pk9JYTX2awR97e6ubaanQr1KbXeEmj51ac6U3TqQcZReGmcex6DtreGMTMM0274mbp0eUVTvpVoL9Wq+L+ZtHanjlZV3Glrdt6CT5OpDmv8AI885GTg5HS+Pm8w34+Tkp93tvQdxaPrdFVdNvaVdNdFLmjtcnh7SdY1LS68a1jd1aMk8/FZuLYPjXVpunZ6/T44dPTLqvaec5nQb492x+sO/Fza29LN/jkddomtadrFrG5sLmnWhJZ5PmjseR569LUnVodsTEx6ACwORiAAAdgAAAAAAAAAAAHYAMBFCU7gvqAHF9T5XFKFalKnNJxkscz6PqETW01ncMZjcaay3Jpc9PvJYX5uT+KzquxtHXNPp6hZzpyS40sxZrS8t6lrcTo1FhxeD1XT+VGWmp8qXlYOydw+IALJyQAAAAAAACAAAAAAAAAAAD26eIj26Z0WPA/q/b/YADNYvLHjv+lbWf3H3FMwgzfx3/StrP7j7imYQa58qbL+e36ydgAQ1gCKgbQFwTOENo2hlexdK9LV9+1o5jH5OTHtMtJ3t5ToQXOTNp6bawtLSnQprCiin6nyvl07I8y7eHh7rbl+hLByCB5nyt9Kh3AAgAAAAAAAAAAAAAAAAYIBUAAAAAAAAAAAAAAAATuVkYjyT4dHrU3O54eyPwwR+7WKbVfi7M/HE+o9I7fpa9rwXUot9RbuXB85rKPryOM+hZq+X5nE4fIyz7M+NV4MmEsG8aqKrbLqVMc4VEzz6ejPFlcWx7tPzX+Z5yRz5PK86d/LGVAdzBYoEUIjSNJgFOdGjVrTUKVOU5PokjG1orG5ZRWbTqHzHNmbbY8NNy63KMo2cqFJ/rzWDa+1PBTS7NwrarVlcVFz4F0KrldY43H8zuVnxukcjP4jUNB6Roep6rVVOys61Zt4yoNo2XtbwT1a94K2qVY21N83Fc2egNI0TS9LoqlZWdGkl3UVk7LCPNcv4ky39MUah6TifDuLH65J21/oPhPtXTYRdS0VxUXWU8MzCw0bTbGKja2dGkl+zE7AFDl5mbLP4rLzFw8OKNVqiikuSOSIi59RzTMy6IiICkBDJSMpxyAZ+fULO2vradvdUo1Kclhpo/QRmVbzWdwwtWLRqWgfFXwlnbKpqmgwzTWXOklzXsNKV6VShVlTqxcJxeGmsM90ThGcXGSTT6pmk/Gzw2hXpT1nSKOKkfjVYRXU9f0jrczMYszyvVujRqcuJhPhD4h3W3b+nZXlSU7Co1HDfyfWentOvKF/aU7q2qRnTqRUk0zw1OE6VRxknGS6m6/AHfsqFeOgajV/Nzf5qUn0fkdPWemRkr87G89xs80t2WegwSLTimuaZTx8+izAAAAAAAAAAwAAwBCkwUACd2VAAAAHrAAAAAQoAdwGAIXoTuVAAQuQAIygQuSDAApABSci9iIARlZACHRBDABkKQIAAAAAAAACohegBnVbl1yw0HTal7fVYwhFck3zfsLuXWrPQtLq395UUIQTwn3Z5i33uvVN5a16OHH6Jy4aVKL5YLTp3T55E91vSsObPnjHHp5ffxE31qm7NQdtQlONpxYhSj3O12H4euqoX2rxxF840u/0ndeHuxqOm04Xt/BVLmSyovpEz9JJYSwjr53Va4a/J4/pHuq5mbTuz5WltRtaEaNCnGEIrCSR9xgYPNWtNp3IIckUncxEXQIoAgKgBAAAAAAjimsPmUCJmPWBrfxJ2HRv6U9R02moXEVmUUvlGl7ijUoVpUqsXGcXhp9j1fJKSw1lGqvFvZynTlrGn0sSXOrGK6+s9d0TrE7jDllhaPu1CA1h4ZEezjUw1qAQaSyLaG7dX21exrWNzKNPPxqeeTR6R8OfEnSt0UY0ak4296l8aEnjPsPJp97C8uLG5hcW1WdOpB5Ti8FVz+lYuTG9al0YeRbHP+HuhPKyXBprwi8U6WpQp6TrVWMLhYjTqN/KNx05RklKMsp9DwvL4mTjX7bQuMeSuSNw5ApDlZgAAAAAAAAAAABAVAAJAABH/ADOJyIwIzFt6aP6ak7yjH48flYXUyk41IxnBxksxfU6ONnnDeLQ05ccXrpp95Tw1zB3m7NKlY3jqQj+am8r1HRnr8OWMtItCiyUmltSAA3MAABAAAgAAAAAAAAAAA9uniI9umdFjwP6v2/2AAzWLyx47/pW1n9x9xTMIM38d/wBK2s/uPuKZhBrnypsv57fqABENa9wAQwGTHYp+7QrKV9qFOilyzmXsNeS8UrNpZUr3TqGU7E0z0dF3lWPxpfJyZdjyPla0Y0KMKUFhRWD7LoeO5Wac2SbS9BhxxjrpAUHO2BAAAAAAAAAAAAAAAAATIFAQAAAAAGAA7gAAAkAAQAAAAAPzXlCNaDT69jpK1KdKbi0ZG0fj1OVvRtale4ajCnHMm+yL7pHVr8a0Un1hU9Q6dXkR3R6S6XPI4TZqy98Xbe31avRdrx28Z4jJPmfpXi9oTp5lRrKXlg+g48sXrFnk8nDyVnWmxW+Z+avJR5yaS9bNX6l4w2yg1Z2UnLs5P/2ME1/xA1/VZSj74dCm/wBWDwZTliCnAyW8tleLmv6bDbdfTo3EJ3FRrEYvODQ/c+lerVr1HUq1JTk+rbyfPuarW3O1vx8EYa6XIIzZfhP4bx3XaS1C7rOnbxlwpJc2cnK5VONTvv4WHG41+Tfsp5a3hTnUeIQlJ+pHe6HtDXtXqRjaWFZp/rOOEeltv+G+2dJjFwsYVZr9aokzKFCy063bUaVvSgubSSSPNcj4l3Pbhq9Hg+HJiO7LZoza/ghdVuCrq90qa6uEeptLbuw9s7fpqdK0pSmutSp1Oh3j4taLo/HQspe+66/ZfJP2mn9z+Ju49ZqSjG5lb0X0jTeORz1w9Q5/ree2G62bgcH0pG5ej9R3Nt/SYYrX1vTS7Rf/AGOjn4p7ShV4PfufXh/9jzZZadruvV0qFC5upSfysNmTW/hPu6rRVT3rCOVnDlzMp6PxMf8ANyerGOrcvJ64sfo9F6Ju3QdYS95ahSnJ/qt4f8TvU8rk+R5Hu9r7r25cKvK0uKTg88dNPH1noPwc1bVNW2vGrqkZekg+GMpLnJFV1HpuPDT5mK24WfTupZc1/l5a6lmwAKRdgAABAAGzDN4eImhbbrO3r1PS111hDqZhXjKVCcY8pOLS+o8zbz2Fuu83Jd1/es6ynUbjLm+WS26XxcGe8/OnUKzqXJzYaR8mu5ZhqXjlbuDVnp8+LPWTMs2X4m6HrVnD31cQtbnpKEmaZt/CjddWnxu1jH1NnWansHdOnScp6fVaj+tBNl/fp3Tsle2ltSoqdQ6hS3deu4esra7t7mCnQrQqRfeMsnOvCFWlKnNKUZLDT7nkrQN2bm2vdxxVrxhF86dTODeewvE3StwQp29xONvdtYcZPk2U3L6Pl4/46TuFvxer4s/4LxqWs/HXY35Kvnq9hSxbVX8ZRXyX/pmqrS4q2lzCvRk4VIPKaPZ249Mt9a0itZV4xnGpBpPyeDyNvTQ6+g67Xsq0WkpPhfmux6LonP8An4/k5PMPO9c4Hyr/ADaeJen/AAg3TDcu16U5zzc0Vw1EZseW/c/7jekbqjZVJ4oXXxWm+56kTysnn+rcT6fPOvEufi5e+gACrdIAAAAAAAAAMgB3IXAEDKQICkCYFYJ1KEgZADapgg5g2vYjHYAOwyO3IAO4C6gIABgAgEAkAAQF7kASvrC8yLPcoEYKAJgjRcB9OYESGBgoNIg1gdwwgRC5IwB8b66o2drUuK81CnTjmTbPs2kaP8d96tyehafW5f75xf8AA7OFxLcnJFY8NWXJGOu2IeK28rndGsu0tJS96Qlw04r9Z+Zkvhns+np9CGo3tNSuZrMU/wBVHSeFe1/fVVateU8wT/Nprq/M21GKUcLoiy6pza4KfT4f3VFrTadyqWF0Khgp5qZ2gABAAAAQoAnsAKBGAAICgCAuABD53FGFejKlUipRkmmmfXAxyMq2ms7geefE3bctD1qU6UH72rNyi8cl6jED0nv3QqWuaHVoOKdWKzTeOjPOV7b1LW6qW9RNThJppn0TonP+pw9s+YarRp8QAXiAAEDnQq1KNWNSlNxlF5TTN++Cvib75VPRdarfHSxSqyfX1Hn8529apQrRrUpOM4vKaOHncKnKxzWY9W3DmnHO4e64SjOKknlPo0c8Go/A/wAQY6zZQ0jUqq9901iEm/lI20nlHz3l8W/GyTSy7x5IvXcKC+pEZzNmgABAAAAQCApOwYCVAQADHIACEbKyPoBACoIfh1mxp39lOlJc8fFfkaxvrapa3M6FRYcXg22YtvfSlWo+/KMfjx+VjyLjpnL+Xbst4cPLw90d0MGAwD0u1RIACGIACQAAAAAAAAAAA9uniI9umdFjwP6v2/2AAzWLyx47/pW1n9x9xTMIM38d/wBK2s/uPuKZhBrnypsv57fqDkCohqkABDEXkZ5sPTvQ2ru6kfjT6ewxDRbOV7qFOjFZWeZtO1pRoUI0oLCisIpuq8jtr2QseDi3PdL6orBDza1C55AgAAAAAAAAAAAAAAAAAdugADuAAAAAEZQBO5QAIygAAAAAAAAADWXugNwfknacrOlPhrXXxVh88dzZkuh5j90ZrLv93Rsqc807aGMet4Lbo3H+dyI39nNyr9tGr5ycpOUnzZxyGQ+iRGoUoACQJ9JWQCpZaS6tnrHwV038nbGtIuOJVFxv6ef+Z5b0C1lfa1aWsVlzqxWPpR7P0C1jZaRa2sVhU6UY/wADyPxPm1SuOHqvhrDu9sj9ppj3RN9rtvCjRtvSQsJfKnDu/WboPx6xpdlq1nK0v6Ea1KS5po8rweRXj5ovaNw9RzuPbkYZpWdS8c6LpGoa3fRtrKjOtVm/abv2N4M2lvCF3rs/S1Ovol0RsXbG0dF29xvT7WMJSeeJrmd+i35/XsmX8OL0hU8HoVMX4svrL8OmaPpum0Y0rOzo0ox6Yisn7lyBTz1sl7zu0r6uOtY1WHzrW9GvFwrUoVE+0opltqFG2pqnQpRpwXaKwj6dwR32mNbT2V3vQADFkBAAAAA9RxcVnmkchLoTEzHg1tMLBwqUqc1icIyXrR9F0JLoZRafdHbEse17aGhazRlC7saWX+tGOGam3R4OXllWle7fupZi+KMG8New3wHzO/j9Rz4fE7hx5+nYc3mPVqrwq3JrlO7WgbitasakViFWS6n4fdDbZjdabHWKFNekpcp4Xb/SNuVbO3qzU5UouS5p45n4N1afDUdCubOSUlODSyb8POivKrlrGvdozcGbcacVp28b6RczstUt7mDcZU6if8T2htS/Wp7fsr1PPpaUW/qPGmvWNXT9YuLWpFxlCo1hnp7wG1H37sS2hJ5lRfB9R6Dr9IyYa5YeH4sTjyWpLYIAPILMAAQAAAAAA+gAAAAAAAmAUA0iKx2IAAAQFRAgQoI2sZfI6TXtz6Jo1OUr2+pQkv1VLLNmPFfJOqxtFrxXy7vKyRy9hprcnjVaUZSp6VayqtdJy6GDaj4pbu1GTjb1ZU0+ipReS1w9E5F43Po5b82kePV6aqXFGn8urCPtZ+eeqafD5V5RX948tOpvrV5ZVPU62f8A6csfyP2W+xPEO8SlHTL15/ayjtr8PxH5rtX1tp8VellrWlt49/0P8R96d/Z1PkXNKXskea5eGHiRCPG9LuvoZ+S42r4iaZHjnYajBLvGLZlPQKfa59ZePNXqWNSEvkzi/pOWTybT3JvTSKuKlxf0uHtOLRkmieMeu2coxvoRuILrnqc+XoGWsbpO2VedX+qNPR+Qa82p4q6DrEoUa83a1pcsT6GfW1elXpqpRqRqQfRxeSnzcXLhnV4ddMtb+JfUMfwBzsxdCkQCdr3BO5QBOxQBAUjAg6FIwA7kOFepGjRnVm0owTbZMRMzqEbYt4n7mpbb27Wrqa9PUTjSj3z5nnLb2n3e59x8VVympT46sn2R3Hi9uWpuLcs6NCTlb0ZOFOK7sznwz0GOk6NGrVgvT1lxSfkj00a6dxO7+qyp5GXvt/hk2m2dKxs6dtRiowgsJH6iZGTyV7ze3dLQoI2UxAAAAAAAAAAAAwAIOxQBOwKQCgIAcZc+Ro/xn0BWOqQ1GhDFKv8AKwuj/wBI3izHPEHSI6vtu5o8OakI8UPaW3R+XPH5ET9pY2jcPNpDnWpypVZU5rEovDRwPpVbRaImGpQQEpCgAfs0XUrnStQpXtrUcKlOSaaZ608Md22+6NCpVlNe+acUqse+Tx+Zd4X7suNsbgpVlN+96klGrHPJopur9Pjk49x5h1cbP8u2p8PYUeRWfi0q+oajYUby3mp0qkeKLTP2Z5Hgb1ms6lcxO49F7EKRmKZAAEAQABgACoBAJAB1Aj5BDAfQCDqUMCew4VqcKlKUJJNSWGc/UQmJmJ3DGY21nubTZWF/JJfm5PKOpNmbl02OoWEko/nIrMWa2rU5Uqsqc1hxeD1nT+TGbHqfKl5WHsttwABYOQAAQAAAAAAAAAAAe3TxEe3TOix4H9X7f7AAZrF5Y8d/0q6z+4+4pmEGb+O/6VtZ/cfcUzCUap8qXL6Xt+spgqAIatgeewPtY0JXN1ToxWXJ4MbWisbkrG50zHYOn8FGV5UjzlyiZckfm023jbWlOjFYUUfq6czxvLzTlyTL0GCnZSIGOQIczapCkAAAACogFIX1ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+F/XVCyrVn0hTlL6keLd530tR3Pf3UpZ4q0sezLPW/iNee8dnajX4sP0Mor6Vg8Z1pOdac31lJs9b8N4o1a6t51vEOIAPXK4IygCAADPvAnSfynvejOUcwoLjf8cHqyCxFYNK+5m0j0Wn3Oqzhh1Hwxfq/0zdS6Hzj4g5HzeTMR9n0PoOD5XGiZ+6lIVsol4BH4dV1Sw0y3lXvbmFGC/aZg2p+L+2bSbhSlOu13idOHhZs35KuTNzMOH89mxyrqampeNuiSrKMrStGPny/7mcbV3hou4of+AuYup3g+pszdO5GGvdavo14eocfLOq2ZED5yrUozUJVIqT7Nn0XM4tO7UgAIQAACkKRhIWXQh1W4Ne07RbWVe+uIU0l0b5s2Y8dsk6rDXe9aRu0u0fI4tmmdf8AGy3pVJU9OtHUxyUpf/s6BeNmsekz7ypOPlzLbH0Tk2jelZfrPGpOtvQuUHk1DtrxmsrutCjqdt73cnjjXQ2lpmo2mo20bi0rRqwksppnHyODm4/54dvH5uLkfkl+1cj53Ec02jnFlmsxZyR6S6pebPH/AEONrq9PUqUOGNb5WF3My9zHdOei3dq38meUvrO08bdJjfbYrTUczpfGRh/uZK9WOrXlvh8Dim/4nr65fqOmzE/Z4XqfH+Tzdx93oLsAgjy4AAIAAAAAAAAAAAAADAAAAmC9wICsmQgOs17XdL0S2lX1C6hSilnDfNmOeJO/LLa9nKnCUat5JYjBPp7TRVvT3V4ia+qNvCvczqy6R+TFF1wOk2zx35PSHJm5MVntr6yyrffi5f39WdnoCdGjnHpP1pHT7V8Nt9b5uFcRtq8qU3l1qzaX8T0D4S+5+0rRYUtQ3Fw3l3hSVJ/JgzellZ2tnRjRtaFOjTisKMI4Rf0th40duKGunFvl/Fkl502b7mPTqChW3BfTrz6unT5L68m3Nv8AhbsnRacY22iW05L9apBSf8UZsDVfk3t5l2U42OniH4rXSdMtoqNvYW1NLpw00j9UaVOPyacV7Ecwau+ZborEJheRwqUKVSPDUpxkvJrJ9AImU6h0GsbO23q0JRvtItKmer9FHP8AI1nu/wBzts/VoTnp6qWNZ9OF8s+w3WDZTNeviWq+Cl/MPDHiH4Gbs2o53VpRle2sOfHSTbS9iMd2bv8A1zbF2qFepOpQi8Tp1G8o/oNWpU61Nwq04zi+qkso0z4yeB2i7otKt9pFGFlqEU5LgXKbOn5tM0duWHBl4c4/xY5dFszdum7msY17SrFVMfGpt80ZEuZ5Mb3B4e7plb141betRniUX0ksno/YO6LXc2j07mlJKqlipDumee6l0z5H46etW3j8nv8Aw28slAXQFI6zoXJOQ7AUBAJA0ABCPoUS6AcTX/jZuVaJtuVtRni4ufirD5pGfVakadKU5vEYrLZ5c8WdfnuDdtWNOblRpS9HTSLbpHF+dl7p8Q5uTk7K+j8/hxo0tY16NarFypUnxTb7s3lTgoQUIrCSwjGPDfRo6XoNOUo4rVVxSMp9Zz9Y5fz80xHiFUAYYxzKkGB2GACKMEAoGUWMZzfDGLb9RG0xEz4QHYWujX1dJqk4p92fvpbYuGvj1Yo12zUr92+vGyW8Qx/JTIJ7Xr4+LWTZ+G60S9t8t0+JeoiM9J+5bi5a+YdaC1ITg+GScWvM45Nu2iYmPKgmSolAAAAAAjONSKlCUZLKaObITWdTuB508UdJ/Je6a6jHFKq+OP0mKG6PHXS1W0ujqEI5lTliTXlyNLn0zpHI+fxqy1WjUqQIFoxM8ykAFC5PKIUTG0t9+533l6Sn/R69qc4rNFt/w/gb0i8o8PaFqVxpOqUL62m4zpzT5d+Z7B2Jr1HcO3ba/pSTk4pTXlLueJ67wPl3+bXxK24ebujtlkXcjESs847kAAQAAABgAUERQkAAAMACAFAmCMrIwhDBN7aW6Fx77pR+LP5XqM77H5tTtYXlpOhNJ5XI7OHyJw5Iloz4oyV01MmR9VzP06lazsrudCoscL5es/K+Z7DHaLx3Qo5rqdOQC6AlgAAIAAAAAAAAD26eIj26Z0WPA/q/b/YADNYvLHjv+lbWf3H3FMwlGb+O36VtZ/cfcUzCEapUmb89v1AAyIahdDKNhWHpbyV3NfFp8l7TF4xbaS7s2dtWzVnpNNY+NP4zK3qef5eLUfd2cPH3X27dIoY7HlF0MEAQoHYcwkBQBMABAAABGCj1AQFHICAAAAAAAAAAAAAAAAAAAAAAAAFIANe+Pty7fw/uMPDqSUf4o8oLqemPdNV/R7QoUs/Lrf5o8zrrk938PU1x9qnmzvIoAPQOIIGwAZzoQdWvCnFZcmkj5mTeGeky1jeFla8OYekUpew0cnJGLFa0/Zu4+OcmStY+7054XaUtI2ZYW3DwzdNSl7TKkfK3pxpUIU4rEYrCPouh8o5OScmW1vd9T4+P5eKK+ynV7m1i20PSa1/dTUYwi8ZfVnaGlPdL6pVp2dnpsJNRnJylh9ehv6dxvqc9aS0dQ5H0+C14az3jujWN16xP85UnScmqdKOXy7HZ6H4W7n1SjGqqEaMJc/jvDO89z1oNtfalW1C4gp+h5RTWVk9BVJwt6DlhRjFHpuf1T6G0YcEeHnOn9Lnnx83NPl5yu/Bvc9Cm5wdGo12TS/zPhtLQtz7X3VaVp2daEXUSk4ptNfQbmvN5Rp3jpRgnDOGzILG6tr+hCouCWVnDXQ4L9bzzjmuWu4lbz8M1xWjJWdMX3pUure7pXcJtJpHf7P1hahaqFWX52P8AE/NvazncaY5045cOZiW0LqVrq9JZwpPDRVdlcmPb11MUZeP/AJhtYEg8xT80U4FTMaCkKQgZCn5by5VL4q6ks61m06h1m89ep6FpNS5UJVKrWKcYrOWaBv8ATN4751WVWrTqxpOXJTylFHoqpb0LykvT0oVEunEsn1t7ejRio0qUIL1LBacPnV4tfw1/EruZ0+3Jtq1vRp/bngrbRjGpq1y5y6uMeRllLwt2lTpcHvFSfm8Z/kZxN8Kyad8QfFC90vW6un6ZSg1SeJSl3Z04uVzebfVLOfLxeHwqbvV+fxF8KLehZyvdBi1KCzKn5mD7E3nqm1tTVtWnP3up8NSnLPI3H4Wbxr7qt61O9pQjVp+XRmG+O2y6NvB67YU1Dn+dily9pZcXkza88Xleqt5XGitY5XF9G5Nv6rbavptK+tZqVOos+w7NPKNFe511+pKpV0irNuKXFDL6f6wbxTPP9Q4v02aaL3g8n6nDF3S7tsleaTc0GsqVNo0v4L6jQ2/uu+tbniScuCKS75Zv26pqpTlFrqsGutC2C6G9LjV6+PQuXFCPrydfB5VKYL0vPlx9S4M8jJS1WzKVeFSnGcctSWT6Ry+kWfilc0baGHhYOC1mnF45FNa9t+jrjo+Ka+HY80uaLk+FvqdGryeD9MuCceKDJrlnepVfL6XOL1q4dSkzyGUb4jaln08qCdSgAAAAAAAAA0AAAAEZjHiJui32xodS6nJOtJYpxz1Zk1SSjFyfRLLPNnidqV7vDfcNIsXKrCNT0VOC7stOl8SM+X18Q5+Tk7K+nmXXbT0DXvE7efo4cc3UnxVajXKET2r4YeH2jbH0anaWVCDuGl6WtjnJnX+CXh9Y7H2xRpxpRd9VgpV6jXPPkbCR6PNm3+CviEcbjxWO63lQAc8uwABikAA0AAGpAAGQBoADUXuhvC+z3joFXULSjGGqW8XOM0uc0ueDyn4ca9d7Q3crW5coUvSOnWg+3PB/QiUVKLjJZTWDxL7q3acNvb7/AChaU+CheL0nLpxcs/xOzDMZaTisq+Zj7JjJVvOzrwuLanXpy4oTjlM+rNf+CGuvV9qU6VSWalv8R/6+k2AeM5WGcOWaOzHfvrEgAOdmIpAglQyIoEJk5M4PoCWFeMGvLRNqV+CfDXrLghz5nn/YWmS1nckHUTlCEuObMo8fNf8AyjuRWFKeaNssNJ9ztfB7SVbaTO+qRxOs+Tx2PT11wuB3feVTyL912e04Rp04wisRXJI59SdUVHkZnc7c52HPJQQBC9xyAE69CpOTwubMl0DQspXF1H/piasmWMcblvw4LZZ1DrdJ0S4vJKclwU/NmWafpVpaRXDTTl+0z90IRhFRikkjkVmXkWvK9wcOmKP8oklyXQoKc+5dcREJgjSa6HLBGmid6JiJdbqOk213F8UFGXZow/VdLr2M3xRbh2aNhHwu7encUnTqLKZ0YeRak6nw4uRw65I3HlrXsEdnrmmVLGs5RWabfJnWFpS8XjcKDJjtjtqVABmwAAAJLqU4yA6beVhHUdvXdu0m3TbXtSPM9xTdKvUpS5OEnF/Qz1fUgp05Qa5NYZ5s8QdPem7pu6PDiMpOa+nmew+GeR62xywux/IAyexaxdRkesgAoYwyRUbc9zzu16brP5FuamKFy/iZfJS/0zUR+iwuatnd07mjJwqU5cUWn3OPm8aORimktuK/ZaJe54STSa5pnN9TE/DHcNPcW17a6U1KrGKjUXkzK08nzbNinFeaT9l9S3dGzmMFBqZaMBIi6FAgHcoIATnkoAAAAAAAAAjLkBLiQ5EawTtEsV3xpXpqHvylH48flGC9HjBuGtTjVpSpyWVJYZrHclhKw1CcMfEk8xPR9J5XdHy7KrmYdT3Q60MifmUufCt8AACAAAAAAAAA9uniI9umdFjwP6v2/wBgAM1i8s+O36VtZ/cfcUzCDOPHb9Kus/uPuKZg5pnyo838y36gADW7Db1o7zVKVLGUnlm1KUOCnGKXJLCML8PbP49S7kvUjNkeX6rm78vb7LrhY+2mxjsMFKp2IyHImAgGR2DAdgh2ADuAgEgAAZACABgdAIC9x2AgAAAFfQCFIUCAAAAAAAAAAAAUAEgANIe6mrNabp9FPrNv+R58Rvj3U0/jadD2s0OfQeiRri1UvL/mSBh9QXO4cwACRDd3uZ9Dc7i61irDlH4kG17DSdOEqlSMIpuUnhI9c+E2ix0bZ9pR4OGdSPHP6Tz3xDyvlcftjzK/6Bxvm8junxDMEUiKfO30FGaG901Qmryxr4fA01k30zDPFfay3Pt2VGml74pZlTfr/wBIs+kciuDk1tbwreq4LZ+NatfLA/c11qfob2jlKfEng3BrcJz02qodeE84eG1/fbO3hG3v6NSlTnLgnxJpdep6XpThcW0Zx5wnHK9h2dbprkfMjxLn6Bl1iikx6w0zdQkq0lJc8n7tK1mvYYSm8I7LeWj1bW6nXpRbpSeeS6GKVstYMcfblo+gY+3NRll/u+vcWzoQjFJrDOt0KMqmqUWurmmdJbRfFgzfYulVKt7G6qQahDplGGWtMVJ0xyxTBjnTYdHlSgvUjkgumC4wU0vM2nc7UncvYEIfOrNQg5PkkY3fX0JXGHLufv3PdOha8EXhyMQk3Jtt5OjHTcLTh8bur3SzGyvbecVCM02fuT7rDMDouUJZi2mjIdHv5TxTqc2RfHpHI4vb6w7qfNNeawefvEvZGsS3PXubK1nXpV5cScexv1TT6nL4r64Ojhc6/Ev3VU3M4NOVXts114ObVvdBtqle9jwTqr5Pkfv8bLqhb7IuYVZJSqLEU/PJmNe6oUItyl0NB+Ml7rWv6vG1pW9T3pTeIYT5+s7uHa3L5cZb+jl5XHnj8SceOu3XeANKrPdnpIZUIwfE/oZ6UhLJqPwm0SOg2Cq1YpXFVfG9Rsy1u1LHMw6zljNnma+G/pfT8nH40Rby7LqzjVfBBv1EpzUuhxvni2m/UU0eXdEfiiGJavqD9PKKfc6/35Jvqz4ahLNxN+s/Onz6ndGONPQYsVYrDuLW+mpL4xkmk6jJ4jJ5MKpSZ3OlVHxx5nPlxw5eXx62q7jfOp6jp2gVr7TKdOdSnFyfF2R51ufF7dru5S99KPDJ/FS5G6fF7WIaVsW4bnidZcEVnrnl/meUZPim5d28nrfh7iUy4ZnJV8p67EYc2qS9A7A8aY3denZa7RVNyeFWj0+k3XaV6NzQhXoVI1Kc1mMk+TPCkW000ehvc57vne209AvKvFOks0m328v4E9Y6RXHX5uKFdxeTNp7bN1AiKeUWQAAAAAAAAAH0AxzxF1VaRtO9ulLE+Bxj7WjA/ck7cjrm9LrXruHpI2rco8X7TaZ+/wB0PXlT2pTpRbSnUWf4GWe4to04bY1KokuOVZZ+o9V0unZxZtH3cN/x54r7PQmMLBeJeaPldU3UoyhGbg2uTT6GvN0aFvT0kqmk61Nx7Rk3/wBzK1tLrBgrlnU202Pxx819Y4o/tL6zztrF94k6ZJ++at20v1oZaOjlvrd1KTjU1CvFrs2zTPIiPK5x9AvljdbxL1I6kV+svrJ6Wmus4r6TyvU3xumb56rX+iTPhPeG5ZfK1W4/xsw+qh0R8L5Z/qh6udejj/aw+snvmgutaH+I8nS3VuJ9dUuP8bOD3Lr8uup3H+Nj6uGcfC2T/wCnrP33bf8AHp/4ie/LX/j0/wDEjyW9wa4//wCZXH+NnF67rXzjcf42R9Wy/wD1W/8A9vW3v21zj3xT/wASPrTq06izCcZL1M8iflvV28vULj/GzKtg7+1PSNThG9uala1m8SUnnBlXlRM6as/wzkx0m1bbelAfl0u8pX9jSu6LzTqRUkfqOuJ34eXtWazMSGjfdg7fjqGw1qkYr0lpLrjthm8zDPGnTfyr4b6va4y/QSa+o24bdt4lz8ivdjmHk73N+pOjrFzYSl8WpHKXrPQB5b8H7h2PiBRpt4Tm4v8AiepVziU/XccVzb93LwZ3SYQFSBRuzSAYABABMEI+h1W6dShpWhXV7N49HTbXtxyO2Zqf3Q+te9dCo6ZTnideWZLPZYOvg4fnZq1a81u2sy0jOVXW9xttuU7is39bN/6LaQstNoW0FhQglyNQeE2m++9wK5lHMaKz9JuuKwix6/mjujFH2U29+q4QRV0B5sUgKBO4YOz2/YO9u02vzcXlmF7RWNy2Ysc5LRWHYbY0jjaua8eX6qZlcUopJHGlCNOChFYSWEcyny5ZvPq9Lx8EYq6gABqbwpCkgH7QQAwVBgfj1C1hdW8qc116GBahaztLmVKS78jZDOg3Vp/prZ1oL48ep1cbL2zqVfzuPF690eWGHIjWOXcpaPPgAJAkkUjAhpjx20/0epW9/GPKccSf1G5zBfGew99bWlWSzKjLi+jmW/Rc/wArlV/yi0bhoQBg+lQ0hOhSAMlyQvclBkE6lIkbZ9zxuh6ZrktKuKmKN1yjl9Jf6R6Xi8nhrSbupYajQu6UuGVKakmj2NsPW6evbZtNQhLMpwXHz6PHM8Z8QcTsvGWI8rbhZdx2yyHsOpE+WAeZWB0GQAhSBAAXJC4CQAAAAAAAAnYoAdidy9yARnQbx01Xlg6sI5qU+Z38mcZRUouLXJo3YMs4rxaGvLSL1mGnZx4ZNPqiJndbs012OoSlFfm5vMTpD2mHJGWkWhQ3pNZ1LmADNpAAAAAAAAD26eIj26Z0WPA/q/b/AGAAzWLy147fpV1n9x9xTMHM48dv0q6z+4+4pmDmmfKjzfzLfrIWK4pKK7sh+3RLd3Op0aSXJy5mvJbsrMsaV7rRDYe17X3rpFGGMSayzt+xwpQUIKKWEkczxWa83vNpehx17axAADWzACYApG+YIubImdQ24cc5LRWFAaHMRO4ZcjD8q/aMLqO47ktCkBQIUnUoEBSMAwO48wBAAABQICgCFAAgAAAAACsgAAACkDA8/e6knnULCH9lmvNgbG1Pdl4oW0HCgn8eo+iNn+6N02tf63pVKjBylVlwLC9htDw425b7c23b2sIJVZRUqj7ttZPUR1P6Tg1ivmWHD6d9XyJm3iGBaZ4F6LSpL33c1ak++P8A9n01DwQ0KpBqhXq05du/+Zt2Ukl1wfGUot8mijnrPKmd9z1dejcbt12vNW6PBjWrCM6unzjc01zx3Na6npl9pteVG9t50ZrqpI9utJ8mY/unaOj6/bSpXlrTcmuU0uaLfh/El6z25vCq5nw5S0bxTp5f8LdGlrW8rK24eKnGanP2Jo9e21KNGhClFYjCKS+g1/4ceHFHamtXV6qqqxmsU89UjYqRXdb59eXljs8Q7+i8C3Exz3+ZVBsEk8Io15DhVqxgss/FV1KlF4Py6tc8EZPPQxC7vakpyfE8G/Hi7vVY8bhfNj1d/q1poOqNSu7SlOaeVJRw/rO3s722hShRp8oxWEjAIXVTj6s7C3uJYTy8nRelrRqZbp6Vjx+sR6syvVSuaThKKkmu5ieo7Ut69RzpScG+x++zv58oy5o7ShUVRZNVbWx+GuIvg8Ol0XaNtRqKpWlx47GY2tvToU1ClBRS8j81s+ZlGl6FUvdLld0ppyXSKI/5M8+6u5nLmPzy6hckGfSvQq0KjhUg4teaOCz2TNM1mPRzxeJ9YlEGc1Tn+zL6ji4S/Zf1EdsnfHuxneMX+bfYxszzWdOlfWzhGL4l05HS6XsvXL+6VOFtKMM85vpg7MFZtGohbcbm4seP8U6ddoOnV9U1Cna0IOTk+eOxsLWNo0dI0+ncrLqRWJGYbI2ha7ftlOSVS4kvjTOt8Sde0y3lT0edePvysnKMM88L/wDZY24U1xTafLz/ACetTn5EUxz+FgUng/FqF76Gm0nzP1VnhGP6rJykyox13K949ItMbfhurypVk25M/DU4Zyy4p+to+lVcmfLuWFI7fC4pjrrw+9tU4WjurCv05nQ0+TOxsp4eDXkruGOWkTDKrOrlLmfov3mzn7Dq7CfQ7O5+PZz9hwWjUqXJXtvDXl4m68vafFJn7Lym1Wl7T4qDOyJ9F1S8dsFJPJ3WjU3KpFvojq6FJuRd2a3b7Z23Wuak0q84tU4555FMVs14pX7q7qfLpgxTaZaw90FuP39rMdJoVM0rb5ST7/6RqhdT9WqXlW/vqt3Xk5TqSy2z8ywfRuDxo4+GKQ+Lc7kzyM03lTI/DfWJ6Lu+xu4z4Y+kUZexsxtlpScJxnF4aeUb8+OMmOay5a27bRL3Za1Y17alXi8qpBSX0o+vcw7wf1qOt7Js63FxVKUfRz+jl/kZifMuTjnHlmsvQY7d1YkABobAAcu4ADsO4AdikA1r7oG0lcbSjVis+iqJs7D3FWqwxqmlSklPKnFfV/3Mg3tpi1bbl5Z4zKVNuPtxyNE+CG4Z7K8UqHvqTp0Z1XRq56Yz/wCx6vpF4ycacf3hXZv+PPFnvHAwjhbVoV6EK1OSlCcVJNdz6GzSzifvD5VrejWi41aUJp9msmNa5sPb2qycq1nGEvOHL+RlQwYzSJ8t+Lk5cU7pbTXMvCPbmelVfS/+4XhHtzHNVfrf/c2N3Lgx+TT2dX8U5X/3LW/wR7dz0q/W/wDuV+Ee3n0dVfS/+5sfAwR8mnsfxXl//ctZV/CDQpxxCrVg/P8A0z8j8GNLb5XtbHsNsYGB8inszjrHLj+tqZeC+l8S/wDHVsez/wBz9MfBzRFj/wATWyv9eZtDAwPkU9kT1flz6Td+DQtNp6TplGxpScoUlhNn7gVG2I0rrWm07kOs3TQ987fvaGM8dGSOzPlcwVShOm/1otGUTqYa7xusv52aRN6d4kxz8Xgu2v4nrG2lx0IyzyaTPLPifY1NC8Ur2nOLjwXfEvZyPS+1buN7t+zuYyyp0ov+By9eputbq3hTq1quzAKzzCxQYAfQCApH1AkniLb7HmLxu1b8pbzr0ozzTt/iL2rJ6O3DdxsNGu7qTwqdNs8i31Wpquu1KzblO4rZ+tnoehYvW2Wfs4eZf002r4Qad720SV1KOJVpcvYZ2jrdt2qs9HtqEVjhprPtwdoUXOzTlz2tKvTHIIFOMCMpGBypwc6kYRWXJ4Rnuh2UbOyhHC42ssxnall74vPSyXxafMzZdCt5eXc9sLrp2DUd8gAOFbAAAMIFAdwMDmAKTARInc4VoKcHGSymj6EYidSiY3GmvddtHaX044+K3lH4DMN32npLZVornHqYeXHHv31ea5mL5eSVABvcoR5KR9AIjq91WavtBu7ZrPHTaXtO0RxqxUoOL6NG3BfsyRYeULqDpXNSm1zjJo+aO935Ze8d0XlHGFx5R0R9W4+T5mKtmifICA3gACEKugBGEuSfM3n7mjcfDWraFXqcmuOmm+/c0Ud5sfV6mi7ktL6nJx4aiUvZnmcPUePGfBNW7Bk7LxL2oin5NIu6d/p1C7ptONSCln2o/Xk+b3pNbTEr2J3G1ABikQAIFQT5kYAoHLIQSAAAAAAwAAJgMICNcxg5BgdLunTo32nywvjw5xNa1IOE3FrDTwzcM0mmn3Nd7y052eoOrCOIVOf0l90nk6n5cq3nYv6odCCZKX6qRlQAADnkBAAAB7dPER7dM6LHgf1ft/sABmsXlnx2/SrrP7j7imYQZv47fpV1n9x9xTMINM+VHm/mW/WQyjYFr6S9ncSXKC5GL8zYux7X0GlKo1zqPJXdSy9mKW/h07rshRQDya7AAAIygCMseXMjOUTXk8LfpVYm0ykkRHJrkcURjlHVKatEqADaqgEbCBofIIMdgjYwRFCBdB15hECVAYAhSFAMhSAUgKBAAEgACAAAUAAEH1IVAdFrGi0NQ1yyvK8FJW2Ws+eDtLquqNNvskfafXJ1etT4bWTMMl5tMRL1PSMUdkf5dVqGq1ZSeJtJeR+Glq84z5TZ+G6nlSeTrXJ5N9MUTD2NcFIr4Z/pmowuYqMn8Y7JGBaRcyjJc+aM2sK6r28Zd8czny07ZV/JwdnrD9GCgGlx6Ox87iXDSbPoflv5YosmIZ0jcwxTX7hvME+p0Uo+Z2esy/PnXr4zyywxRqHpeNEVpDjTorOT9EcJYR83JLCRzpJykl5mUt1/Hq/dYQlOa8jvqC4UkfgsqahBI/dB80c152qs9ty/XOr6KzrVn+pTcvqR8/c1+I9HVtQ1Dbt/XSuI15SocT6xy+X8j4a7L0e3b6a/4Ev5M8paLrt9oG54avY1ZU61GtxLDxnmeh6Bxa5aXn7vAfEvKnDkpH2f0mvdJsb18VejFvzPnb7f0yl0t4v2rJing54h6XvbbdvcUriCvIQSrUm+aZsBNPmjttxaRb1hW05N7V9Jfk/JljjHvanj/pRxekac+trS/wAKP3ZCY+Rj9j51/d+GOkadB5VtTX91H6oUqdOOIQUV6j6NmO7n3TY6OvQxfvi8lyp0Ic5Nk1xUr4hE5LW8y/VunW7TQdHuL+6mkqVOUks83hHivSd6Xu7/ABpeqV6kvRSm4UoZ5RjnkZ77pPfN9p+ly0yvWX5Qv18alF8qEPL28n9ZpjwSourvq0aWcc3/AAOu2KI417W9nLTNvk0rX3embhfFOg1GHNmR3C+KdNe08tnhaTqz6dxbaiGPVovPQ+LidpXod8H5pUXzOytlvTJ6PywjzP2W2VI+cabyfrt6TXMWn0Te8adhZVuFrJkFDFS3a80Y9RpPHJHdaSpxXDLmceWIVfJiPMMb1G1xXly7n5FbvPJGR6tSjGrJtpIwbd28tI0GjL87GtXxyhF9zdx8WTNPbWGnJ1DHgx915fv1jUbLQrCd7e1Ix4VlRb5s0Bv7dd3uTUZTqSaoQeKcOyR8t47q1DcV5KpXqONLPxYJ8kjHWz23Sukxx477/mfOOudctzLdlPyoAC9eZXPPJAAN2e5m3GrbUa2h1qmIV/jU033/ANM9Dnhzb+p3GkatQv7abjUpSUlg9g7B3PZ7m0Che0KkfS8KVSGecWeL6/wprf5tY9JW3CzRMdssiD5hdAeaWAYn4m7uo7S0OV2+GVeXKnBvqzuNx63YaFp1S9vq8KcIJtJvm35HlPxR3nc7t1qVXLja021Thnt5lz0vptuTfdo/C5eTyIxx6eXqHYe4ae5dvW+pwioua+NHyZ35p/3MdzUqbauqEm3GnV+L9SNwLocfPwxgzzSG7Beb0iZAVdR7TjbXGS5Hnrx12rV0zWFrdnTao1XmTivkyPQzOt3FpFrrWl1rC6gpQqRx7Gd/T+XPGyxP2aORi+ZXS+5g8S6O4dCp7f1KuvyhaxxHifOcf9ZN5n89dcsNd8ON3wvLOVSmqdTipVF0kvI9aeCHi5pW99LpW1zWhQ1SEUp05PHE/NHqclIvHzMfiWnjZ/6L+W1wRPPPsU5lgfSMhogFQAAAEYFBABQQECkYHYIeVPdhbFrwvaW6rKlmnJYrtLo/P+R1ngBu6jd6UtDuqiVej8jL6o9V7k0ax17SK+mX9JVKNaLi010PHHir4U7h8O9alrGielq2CnxQqQ/VWejOi9K8rD8q3lW5cdsOT5lfDfIfI1L4d+K1rfQp6frLVC4XxeN9GbWt69KvSVSlOM4SWU0zyXJ4eTj21aHVjy1yRuHMpGDlbVIVEA1/45ar+T9nVaUZYncPgX8zQ3h/Yu+3JbwxmMHxP6DYfuk9Rcryx0+MuUY8cl9aOl8F7Hir3F9KPJLhi/rPU4P/AObp8291Tyrd2RtOnHhgorsj6ERTx9p3O3OEAISpOrwD9mj2/vm/pwxlZyzG06jbLHXutEMv23aK20+La+NNZZ2hwpRUIKK6JHMo727rTL1OKnZSIAC8jFsQMAAXJABQOwyBSBAkCdDkRgfmv6Kr21Sm1nKNdXVN0bidN9U8GzJIwfddt6HUHNLlPmdnDvq2lX1LFuvdDp0UiyUs1GEKGBxDD6hgaQ8crD0Gu0ruMcRqx5v18zXLN4+N2nu40CF1FZdGWX7DRzPpPQ8/zeLH+Gq/lB2ALhgdwAEgHYBBg5RbTyicwugmNph6j9z9r/5U2mrSpPNa2fDhvtzNmHlz3P8Arr0zd1OznPhpXPxWs9+R6ii01lHz7rPG+TyJ14ld8XJ30cikXQpTukAHYAAAKgQBO1BEMg2oGQAAAAAAAABJI6jdFgr3TZpLM4rMTuGcZpNNM24ck47xaGN6d9ZhpypFwm4yWGngLod1vCw956lKUViFTmjpT2WHJGSkWh57LTstoyCYKjc1mQR9SoAAAgPbp4iPbpnRY8D+r9v9gAM1i8s+O36VtZ/cfcUzCDN/Hb9K2s/uPuKZhBpnyo838y36y50IOpXhBfrPBtnSqKoWNKkljEUa22zQ98axRjjKUsm0oLCS8kef6xk9YqsOBX0mzl2ABRLNGwgyGMzp0YMMZfSPLkDimykxO2rJitjnVoH0OUSPoImGTwsOmW1k05Ncjh3ObOD5NkY3T1Su6xKkYyFzNkzpT4sc5LdsI+g7FYwIbOTMRbtj7IC4IS5QAAUgKgGAUmAkYBAKyFIEr2BAAAAFIAEAyO4+gJUAduoQMhUdLvHXbbb2h19QuJqKhF8KfdmePHOS0VqiZiI3LtJyTbSkm11R1usx4rKaXVGtfBbelxuPWNSjeVG5SfHCOei5m0riKqU5Qfccrj24+Tts9V0fNFsUWhgN3Lk0fh78ztdbtJ0K8lh4ydY0+/Y345iYezraLRuH1sJ8NdIzPb1bk4Mwa2mlWT9Zk2lV3TrwafJmrkV3DDPTuoy1FPnSlxRTR9V0OBSzGkwfj1L/AGb9h+4/HfxzAmJ9WeOfxMV1C3VSTeDqq1Bw6GS3FJ56HXXNBeR2Uuu8GbXo6RRlxYaO0sLfD45dTnTtsvPCftpU+FGVrtuXPuPR9aawfeGW0fKET9NvBymkjRaXBkn0cdw0pS2zepLL9BL+R48vY4vK0X1U3/M9r39uqmlV6LXyqUl/A8ablt3ba/e0WscNaS/iz1fwvf8ANV85+LI3NbO48ON0Xm2dfoXFG5q0aMpYqcDxyPXWh7p3fS0ejq2l3FLWtPnHiS6zS+v/ACPDjfM2r4JeLN9sm9ha3cpV9Mk/jU288PrR6Llcbu/FV5vicns/DZ6dt/GKtFcN5oN3TkuT+K/+x+iPjLaSi1HR71z7JQf/AGP1bX8QPD7c9vCrRurBVZLnCqoqWTKaVXasKbrRWnYSzlRiVE0tE+FxF6THlg1TeW8dyyVtoek1LKnPk6tVYwv4Hy3BV0fw229c7g1y5jd6vOOYuby3LySPrv8A8a9m7Us6lO1uaV1dJNQpUcPn68Hj/wAUfELWd96vK6v6so0It+ipJ/Fijp4/Ftknc+HNyOXTHXUeXT733Debn3Hdate1HOdabaTfReRn3ucrH025al048qUOpqY9E+5v0t0NBrX844dWWE/Zkz6zeMPEmGrotJzcuJltStHKZ1tzTy2dvUXI/JWp8+h86rPq+oYradNUo5Z8JUPUdvOks9D5yoryN0XddcrqVQ59D9VKgfrjQ74PtCkl2JnIytmfKhR5nZ2lPDR8aFPJ+6lHCNNrerg5GX8MvNvjBuvcVtuW7sqd3Up26eIpcuWDVlzcVrio6lapKcn1bZ6Z8XtiQ12yne2kMXMFl4XU826pp9xYXU6FeDjKLw8nv+jZcF8URWPV8w6pfNOSdz6PxNExyOQL+FO4AMEAAABk2xd46ntTUFXs6rdNv49NvlJGMg15cVcte20ejKtprO4eotu+NG2r22i76U7Wtj4yabX8j8O6/G3RrSlKnpFOdzVxyk+SR5rKVNeg8aL9zqnm5JjTJN57y1ndFy6l/cS9Hn4tNPkjHFzeCHe7H0KvuHcVtp9GDaqSXG12RZTXHxsc6jUQ5t2yW9Xob3O2lTsNne+KkeF3EuJZ8un+RtBH4dC0+lpml29lRioxpQUeR+4+cc3N87Na70GKnZWIUEKcrYjeDizkziTBDpN37b0/cmmTtLylFvHxJY5xZ5z3RtjcWwtaV7Y1KsIQlxU61Pt7T1Ofk1TTrTUrWVteUIVaclhqSyWvA6nbjT2z6w5s/HjJ6x5Yl4Pe6Lo1KdHSt35hUWIxuVnD9p6L0XWtL1i1hc6be0binJZThNM8gb48GqdWU7rQ6nBLr6KX+Rg2nahv7w+vc21W7t4wfycycH9HQ9DS/H5Md1J1LRXPkw+l43D+hOQeStpe6g1K2jCjr+mwrpcnUg8P6sGzNF90bsS9hF3NatazfVSjyX8SLcfJH2dNeXjt926Qa1o+N3h5VWVrdNe1r/uc5+NXh7FZ/LlJ+xr/ALmHyr+zZ8/H7tjtk5GpNQ90D4f2qfBfzrNfsxT/AMzFdY91DtqhFqxsa9eXbKwjOOPkn7MZ5OOPu9CnxuLm3t4OdevTpRXVykkeQNy+6f3JeKVLSNPo2yfJSfxn/IwK93R4nb1rSSur+pCfWNJyjH+BsjizX1vOmm3Nr/TG3tqG/wDalTXKejUtXt6l5UeIwjJPn7TJoy4lldGfzd1LTd0bR1K31K8hXt7hSU4VG3nPtPX3gD4wadvHS6Om6jWhQ1WlFRcZPHpPWhl48RXuxzuEYeZ3W7bejcwImU5Nu8PzajZWt/aTtbujGtSmsSjJZTP0hkbne4RMRPpLzJ41eANPgra3tJejqRzOdBd/Yak2HvvWdr6qtK1T0k6MZ8Eqc+sWe77yrCja1alRpQjFt5P5++Kl5b6t4pX1WwglCd0lHhXJ8ztrEcjHNckKrk0jDaLUeoLC5hd2dK5p/JqRUl9J9zrdr0Z0Nv2NKosSjQgmvoR2Z4jNWK3mIWFZ3WJkXmcZdDl2Py6lWVtZVq8nyhFyZjSvdaITM6h5k8aNR9/74uYp5jSfAjO/Cyy967ZpTaxKq+JmpNWqy1LdNeq3l1bj/M35oNsrXSregljggkei6vf5XFpjhS3ndpl+8AHk2CFAAjMk2ZbZnO4a6ckY51aSM625Q9Bp0FjDlzOXlX7aO/p+PuybdmihAqXoQvIgAAAAAUCFHYAECgkAABGY9vG247NVkucWZCz8eq0VXsakMZbibMVu28S08infjmGuUU5VYuFSUX2eDiXUTuHlrRqdAAJQ4yfMMPr0AHT7vso3+37u3azxU219B5luKbpV50pLDjLB6vrQU6coPmmsHmzxAsHp+6byjw4i5uUfY2ew+GOR+bHLC8MfADPYtakKQAEAEK+oyQAft0a8qWGp293Tk1KlNSWD2ZtDU6er7es76ElL0lNN+08To9I+5t1335oVXTKk8zt38Verked+ION34oyR9nfwsmrabfRSFPEStgAAAAA7hdQAKyF7ECZXoCDIFBMlAAAAAAAAA6DeOnq706U4r49PmjXPR4fI3FWgp03BrKawzV247J2Wp1KeMRbzE9D0jkbj5cqvn4vXuh1wALxWI+pRgAAAEB7dPER7dM6LHgf1ft/sABmsXlrx2/SrrP7j7imYOZv47fpV1nH/AND7imYS+jNU+VHm/mW/WWU+Htvx3k67XyVgzwxjw+o8GmSqtc5SMoPIdRyd+aVxw69uOE5IoSWBgru+NravCyXr3QHForTQJ9Jae2+Kd+Bc+owcTnFmu0TX1hbcfNj5MdmSPVOeCxLhPkIrBE23Dbh4U4cvdHhWjhLqfRnCXUU8s+oV3i9HHuclyQiivkZWnctHF4/ysc3t5cEVBDubIUt53aZAxgYDAYwGMhAxyDCCVJ3AAdwOo7ACFQCQhSPoAXrGTFd8720jalt6S+q8VVr4tKL+MzVVx491vfTdHTF6FP8AWfPBYYOm589e6sejRfPSk6mW/wBA1fs7xh0HWakbe7Ts60uXx3y+s2Xb16VxTjVo1IzhJZTi8pnPn4uXBOrwzpkrfw+3UMnUpzswdUAgJLCjnyPMvuhN4y1XWfyPa1X73tniWH8p/wCmb18TNdht/aV5euSjU4HGnz7tHjbULmpeXtW5qvM6knJs9N8P8PvtOW0eHBzcuo7YZP4Ua+9A3bbXEpYpVJKE/Y+X+Z62o1qdxQp16UlKE4qSa9Z4ci3GSknhp5RvnwU8R6U7enoWsVsTj8WlUk+WPI6viDp05Y+bSPWFl0LqEY7fKvLcd7a0riDU4psxu70WpKpL0awuxlMZRnFThJSi1lNMM8XFrUl73BybVj0YBVsqltV+PFrmdhQqcKi0+hkWo2dO4j8aKOlr6fOk24c0uxvjLF49Vvh5FckalkelXHpbaLzzOxh8kx7QZSVKUHlNM7y3k3yZy3jUq7kViLTp+jsfOtTU4NH0Bg54nTqa1HDaaPzTt4y6o7ycIy6o+ErZdUZxfTqrndP71x0OUbVnZega7HKNvLo0T3s5zvwRtnnHU7CztVTSlLqfenRUfafVGMzMue+abejjJJxcX0aPJ/jXpUtM3rcvgahWfGn7T1kzTfukdvO60qlrFGGZUHwzwu3+kXvQOTGHkan7vN9f43zuPMx9nnjkAyH0X7PnWn3oXNxQeaNepTf9mTR+1a/rKpun+Urrhfb0rOrGTGaV+8Ji9o+761a1SrLiqTlN+cnk4NnHLBMRpjMzL72lOVe5p0o83KSSPX3hvpi0raNjbYxL0alL2tI80eE+jS1neFrR4cwhJTl9HM9c0acaVONOPJRWEeO+JuR6xih7L4Y43nLKtHynE+xxksnkHs4fknTJ6M+8otPkXhZO2fc/OqZzVNY5n24cl4PUJk7nzguGWMH6o/JbOEYn0axHBhHrLi5mSK45l83FSi01ldzXXiX4dWeuW87m0pqncpZ5LqbISGMlhx+TfBbupLxmasZN7eK9ybfvtGvJ0bmjOLi+rXU6Xn35M9k7w2hpm4bWULijH0mOU8c0efN++Gmp6LVnVo0nVodU4rPI9r0/rOPNEVv6Spc/DmnrVrnCxgnDyPrWo1aE3CpBxa80cMovYmLRuHFMTDikGjkCUOLJg5Y55HVBKdiHPlg+9jZXF9dQt7alOpUm8KMVkxtaKxuSI3OofO0t6tzXhRowc5zaSSXU9P8AgfsRbd0tahe017+rrPNc4o6zwc8Lqekwp6vrNNTumswg/wBQ3DFJJJdDx3WerfM/4sc+i24nG7fxWVLCBQeYWIR8kUkugEb5EGASkyGwAJhH5b3TrK8puFzbU6qf7UT9YMq3tWdxKJrE+WDa54YbY1LL95xozfeBiOoeBtlNuVrqE4eSa/8AY3ODtx9S5GPxZotxsdvs0FW8DL9P81qkH7c/9j4fAdqzfPU6ePp/7HoRYHI6I63yfdh9HjaBo+BN65L0uqQS9Wf+x3em+Bmm02nd39Sr5pJf9jcYMbdY5NvumvExx9mFaL4Z7X0xqUbGFWa7zyZXZ6fZ2kOC2tqVNLooxSP1A4snJy5PzWbq4q18Qxzfm1rTc+i1LKtFKpjMJ45pnmPVtN13ZG4eODq29SlPNOpHkmevzpN1bZ0vcVlK3v7eM218WWOaLHp3U5409t/Wrl5PF7/xV8uj8G/dEW1xSo6Xuv8ANVYpRVz2l7T0HpG49F1W3jWsdSt60ZLKxM8O738JdW0mrO40yPvm26pL5SMOtL7cuh1XGhVvbSUfJNHoYrg5Ed1LOenKy4fw3h/SVVqT5qrB/wB5H5NU1jTdNtp3F7e0aNOCy3KR/P2j4k77ow4Ia9fpf9bPx3+4t37ifobq+v7xN/JfFJExxIjzZsnqG49Ib38efHendW1bQdrTfDPMalwu/sNZeC+0rnW9fWq31OXvelLj4pL5Uj9Hh94UahqVane61F0LZPPA/lSN+aNplnpVlC0sqUadKCwkkV/P6hjw0nFi8scWK+a3fd+2MVGKjFYS5IoB5WfXys4gZjPibe+8dlajXTw/RNL6jJma090Ffe9tnO3UsOtNLH0M6eDj789Yac09tZaN2VbO+3Pbxaz+c4megoJKKSWDTfg3aem1upcNcqcf4m5V0Ozr+TeaKeymUAFAABOoH6LCk695TppdZI2FQgqdKMF2WDDtp0fSajxtcoozVFZzLbtpe9Nx6p3KADiWYAAAAAFRCoAUhQAIAKACQOE1lNHM4glr7X6Dt9RqRxybyj8Bkm9KGKtOulyfJmNJlzgt3Uh5flU7MkwoANznGcWciNAceppnx2030V/Qv4R5VFwtm5+hhHjFp7vNqzqKOZUXxItujZ/k8qv+UWjcNAArIfS49WkAAAABAEAA7mxPAfWnpW86NKUsU7j4jNd5P26LdzsdUt7qDw6dRS/ic/LxRlw2rLZit22iXuOPNJrockdRtPUI6pt+zvYPPpKUW/bg7ZHzLLSaXmsvQRO42oANaQAAAAAAQAAIACkHMEKAAkAAAAAR8+Riu/LD0tpG6hH40OvsMrPz6hQjc2lSjJZUotHTxMs4ssWas9O+kw1Esg+1/QlbXdSjJYcZNHxTPZVnujcPPWrqRjsGQyQqYIigD26eIj26Z0WHA/q/b/YADNYvLfjr+lXWf3H3FMwfGXhd2Zx46/pU1n9x9xTMMtKfpLqlBLrJfzOfJOomVHkjeWf1bM2vR9Do9GPRtZO1R8LOmqVrTgu0Uj7I8Tnt3ZJlfY41WF9hU+eCENE1iXZg5eTDPpLmiYTZxKmYTWY8LKnOxZvTJCOLOPNM+vVhpEd32lt+gpP4scpCWUckcHHnlHNGE6+yxxTbWreQ4tHPtkYEMrVifSXHBxkc8EksmcT6tHIxzbHMVcEUklwjqbYnbzOTHbHbVlJ0QTKS1ICogEKGEBQRAAAGBAACIGfG+rKhaVaz/wB3By+pH2PjeUlXt6lF9KkHF/SsGdNd0bLePR418RNcutd3TeXFepKUY1JRgs8kk8GOGTeJehV9B3ZeW1WDUJVJTg8dU3kxk+m8OKfJr2+FBl33ztYylFpxbTXdG0vCXxPvNCuqen6pVlWsZvHFJ5cDVgXJ8ieVxMfIpNbQY8k0ncPdenXdC+s6d1bVFOlUjxRkj9J5/wDc875nTr/0e1Gs3CX+wlJ9H5HoBc+Z875/Dtxcs1nwusWWMldnqA7hnFDa0B7qLW5Ova6NTn8VLjmk/Zg0Rk2P7oWpUn4gV4zziMEomuGfSOk4ox8aulJyLd2STJypVJ0qinCTjJPKaeGjgUsZruNS0xMxO4bZ8NvFi702VOw1mXpbb5KqPrE3xoutadq1tC4sbqnVhJZWGeLjs9G13VNIrRqWV3Up4fRPkec6h0HHn/Fj9JX/AE/rl8H4cnrD2bVxwn5nBM0bofjZc0qFOjqNl6Vx5OcX1/iZvoviptq/UVVuHbSfaZ5jN0fk4v6Xq+N1nj5I9LabDsqVNSbxzP00f9phGOWG5tEuknQ1KhLP9rBkOnShVXpISUovo08ldkwZMf5oWVeRTJ4nb9yQwUHOlGji4nMA24qPmXBSMmAABIHXbh0uhq+kXGn10nCrBxOxIzOl5paLR9mGSkXrNZeLt7aHcbf164sK8HFRk+B+aOkPUnjRsaG49Lle2sEr2hHKwvlLyPMN7bVrO5nb3FOVOpB4aaPpPSeoV5WKPeHzXq3T7cXNPp6S+JMh4IW6qUpxO+2PoFzuHXrexowbUpLjfkjTmyRipNp+zPFitlvFK/duf3N225W1lW1q4p4lV+LTyuxufqz8O39No6TpFvYUIqMaUFHkfvPmHUOTPJzzd9R6dxY42CKI1ghWDid6NEaOYwRs24JHJI5JHKKMdsZlIxJLqc3yRwNmOPuoup5/TshUuRSJl7G5RI0fC6tqNxTdOtTjOL6prJ9x9BNbTE7g01pvHwq0nVlOtaR9BWfPCXI03ujww1vSpzlG2lUprpKKyj1e4nzqUadRNTgpL1otuL1jPg9N7hzZOLS7xDdaXeW0nGpRksdco/JKnUXJxf1Hs7VNp6HqCar2FJt90jHLvwp27Xk5RpuHsLzF8R45j8UOO3An7S8p8E+0WfSlbVqslGnTk2+yR6ipeEO3YzzJSkvIyDR9ibd0xqVGwpSku8kZ5PiLFEfhhjXgW36y837Q8M9xa9Vg1ayoW7fOpNNcj0B4feHGj7XpRqKmri7x8apNZw/UZrQo06UVGlCMIrslg+iKDm9Yzcn0j0h24uLTH6qkksdAhjzKVDpAAAIyk7hKMmC5aI+pMEAACQAAAAAAAAAAAAAAKwOLipJppNeTOvvNE0m7z740+3m/N01/2OyGMmdMlqeJYzSJ8sdqbN25J5elW/0QR+zT9v6PYyzbafbwfmqaO2BsnkZZjU2YxipH2cUklhJJHLl2BfWadyziNIACEjNG+6Vvm7iwsU+XC5NfUbyl0PNPj3e++97OmnmNGCj/AARb9Fp3cjfs5OXP4Ha+Ctrwafc3DXy5YT+o2Ouhi3hlaq22vQeOdT4zMqK/qeT5nItKqAAV4BIDAIZVsyjihOq11eDI0dbt2l6LTKSxzaydmuhS57d15eo4tO3HAADS6AAAAAAKiFApCgkCFAAmSkYBkKGB0+6qHpdNlLHOPMwY2VfU/S2tSDXVGuLiHo68oPsyx4dvTSk6nTVos4E7h9Qup3KpQABH0Ou3Daq90a6t5LPHTaX1HZPocJLiTT6M2Yb9l4sPKWo0Xb3tahJYcJtfxPhjkZR4n6f+T92XEVHEaj4kYvk+q8TJ8zDWzTKFDHY6UIwOwIQIAACogExsenPc5a17/wBqysKk81LaXJer/SNqo8we511r3hu73nOeIXMcY9fb+Z6fT6Hz7rPH+VyJ/wArzi37sagAp3SAAAAAAAAAAAOwAAZAAdwgAKAAkI+aL1QAwHfth6K8jdQXxZrD9pi5tDdFkrzSqsEsyisxNYyi4zcWsNPB6vpmf5mLU/ZSczH2X2j6EKyFk4wpB3Ap7dPER7dM6LDgf1ft/sABmsXlvx1/SrrP7j7imY3tej6fWaMcZSeTJPHX9Kms/uPuKZ13h/Q49QnVa+RE4ObfsxWlT1r3ciY/yz1FAWO54uZ3O19Wu50fSDm1HsccLyNc3WNOnTeNxZxyDlwocK8yYvBbpmWPCZwc1LJw4fWOF9iLal0caOTgnUxuHMPqSLfc5mmV1S/dG0XQ5HFM5EwlCMofQlD5zy0fmvbmjZ0HWuJqEF1bP1vkjXXijq2ZU9PpT6c54OjBSclu1PH6VTm5dSzqzu7e6gp29WFRPyZ+jJonT9TvbGqp29eccds8jMtF39OOKeoUk1+3E68nEtXww5/wnnxbth9YbFB1ema5puoRTt7iDl+y3zOyUk0cs1mPLy2bjZcE6vXTkTBQQ506FRBgCkfkUBLiCsdAhAASyav8edmR17RJajbU/wDxltHKwvlL/SPL1WEqdSVOaxKLw0e7bmlGtSlTmk4yWGjx54taP+Rt53lCMcQlPiiew+H+ZNonFZVc3Fqe5iRSMdD1Tgfr0q8q6fqFC7oTcZ0pqSaPY3hzuCnuLa9rfqSdRxUai8pY5ni83R7mrcrttUq6JXqfm6y4qab7lB13hxmw98eYdfEy9ttPRi6jHIR5pMp4Pwt3nf3TW3K0NRo65Rpt0px4ajS6PkaQZ7k3Jo9nrulVtPvKalTqLHToeXPEfwz1fbd5Uq29CdxZNtxnFZwvWe16L1Ok44xXn1hV8rBMW7oa9Kcp05weJQkn60FGT7M9HF4nw4fVxKXgl+yznGlUfSEn9BHfBqXzx6yo+0bWvJ8qU39B9oadey+TbVH/AHTCclPvKYi32fCjXrUZKVOrOLXkzZfhp4pahoVeFrqVSdxaN45vLiYDDRdUn8mxrP8Aun1jt7WX00+v/hOPkYuNnr2306+Pyc+C0WrL2Rt3XLDXLCF5YV41ISWcJ80doeTdjaju7bF9Cpa2ly6WfjU5Lk0ej9mbnpa9ZxdSjO3uEvjQksczwnUum/TW3Sdw9v07q1ORHbf0lkYLjkQqF0EZQEoBgBIADNDjJJpprkzVXiz4YUdeU9S0uEaV51kscpm1hg6eLy8nFv3Uly8riY+TTtvDxNq+39W0y5lQu7KtCUXjPA8M6/3vXzj0cvqPbt5pdhd/+YtKNX/qgmddLaO3pS4npdvn/oR6fH8Uar+Kvq8vk+GPX8NvR5F0bbuq6tdRoWlnVm5PGeF4R6V8Idg0trWHvi5ipXtVfGf7PqM1sdK06xX/AIWzo0vXGCTP2Fb1HreTlV7K+kLTp3Q8fFt329ZAAUG18jCRS9zHYIuCpHJIhEyiRyx2KkcZyxyERuXLyM8Y6zMuM3lk7AvY6ojUPKZsk5L90iXIueZxHQlqcsAmSp+oA0gkCgRomDkcWuYBJ4Kh0QQFAAQAAACDIF5HHkE+xAlWyAEpAAAAQwAAYAIDmUCAAAAABSBAUMAAAAAAABgMIlwrS4aUpeSbPJe+7l328r2bfF+ecV9DweqtcrKhpF3WfLhozf8ABnkq1Tvt1tYz6W5b+uRf9Ejtre/+HBzJ9IhvbbVBUNEtaWMYpo7M+NnDgtqcMdIpH2POZ7d2SZV6FWAEahTlQjx14R82cGfs0an6XUqMfWY3nVZlsxV3eIZ3ZwVO2hDyifddDhHlFHNdCjtO5eqpGqxAADFkAACkLggDqUhQKQo7EgT6AO4AEKAAAEmuWDAdx0PQ6nUS6SeUZ9IxTetDEqddLryOni21dwdQp3Y9sZYQfQFs88ZGRkgHLsce5QBp/wAetP4a9rfxj1XDL/X0GqT0H4vWHvzadaajmVL4559fI+idAz/N4sR7NVo9UAC6l8xOxC9AQJ3AAQAMIDttqX8tM3DZ3sHj0dWLfsye0NHuo3mmW1zB5VSnGX8Dw3FtNPues/A/WFquybZOXFUoLgkeY+IuPukZFjwb+swz0EKeNWgAAAAAAAAAAAAAAAAAAHYpCoJAEAOM4qSafQ1huizdnqtSKWIyeUbRMS3/AGLqW0LuEecOUvYWfS83y8up+7j5mPvptg/cjC6lfM9SpEABKYXPI9uniHB7eM6LDgf1fsAAzWDy347fpU1n9x9xTOXh9Q4bSpWa+U8HDx0/StrK/wDsfcUzttpUfQ6NRTXOSyyl6vftxaV3HrvkWn/Mu5QwEHk8qt09gy0XAImIbK5bV8ScTHEAR2w6K87LX7nEOJADshnHUMsKn5F6nFchkxtR3cfqET6Xc0XJxTRTX4WlbxaNwpGCN4RLN+XVLuFnZ1bio8RhHJpDWbyd9qNW4m23KWUZ94n6r6K2jp9OXxp85ew1q2y54GHVe6Xrei8Tsp8yfuNYJ0KCwX0Q5Ua1WlNSp1JRa8mZFo+8tTscRqVPTwXaRjRDC2OtvMOXk8DByI1krttbSd86dcpRuE6E/X0MltL+0uoqVCvTmn5M0JnB+i1vbq2lxUK84P1M5L8KJ/K8vzPg/Dk3OKdS34mhk1Fp29dWtcRqTVaK/a6mS6dv+zqYjd0ZU33a5nLfi3q8vyvhfmYPWI3DOMlOmstx6RdpejvIJvtJ4O0pV6VVZp1IyXqZomlo8wo8vDzYp1esw+pGMjJjpo1MIUgyjJG0bPMPulVTW8qbg1l0/jfWeh907h07b2m1Ly+rxgorKi3zZ5B35r1Xce4rnUKjfDKXxF5I9J8P8bJ835mvRwc3JHbp0IAPaqoO12nqlTSNftL+nJxdOom/Zk6pDoastIvWayyrOp29zaDfQ1HSLa8pyTVWmpZXsP3pmq/c66/+U9quxqTzVtXhLPY2oup805uH5Oa1V9ht312M+VejSrU3CtTjOL5NSWT7E6s5YtNfWGc6Ypqfh/tXUJynW0qgpPq0jr4eFWz4y4lp0TOwdUc3PEai0sJxUn7MNpeG20qfTSqT9qP20NkbXpY4NIt+XqMkQZE8zPPm0kYqezp6W2dCp/I0u2X90/RDRtLg/i2NBf3TsBzNc8jLP9Up7K+z8kdOso/JtaS/unNWVr/wKf8AhP0Ax+bf3T2R7Pz+87X/AJen/hOdO2o03mFKMX6kfbuOhE3taNTKYjtncCeB28x1J0NFqey54nUpp+G/hcBoqaftBq9YX2PLXJG6y4jBcAQ2pgmCgeBAXBME7AFRCAIXAwBCpFwMECYKkVHJIhjM6RI5oIkpKK9YiNufLmikbkm1Fes+XrYbb5sdTopXTzfL5U5rf4A3yK84IjNxnYc8l6k78ghUXocS5QF5BMncqAoAWQgYACQABAAQAccl6oMQlOWAOWR0JSBFIEAACRFHqBCEZUAAI2GVLzImdN+DBbLPogHcMmJYZKxW2oAgCWCoAAAB3AAAAAAAYARLHPEm6Vps6/qZxmm4/WsHmzw+o++N3W2VlKfE/rN6+O91732RVhnDqTS/ijTvhFQ9JuP0mPkRf+R6Pgf8fBvZV8ud303RBYWPIpI8jkeUtPq5ECA7kC9jt9p0+PUuL9lZOoMj2VT/ADlWp9BpzzqkuriV7ssMpS+KckOxCml6ZQOZ0O7t06RtmxdzqVzGHL4sM82Z4sN81orSNyxteKxuXetpdeR8ad7azq+hhcUpVP2VNZPN+9fHTUbyVS30WkqFLmlN82YNs/d+uLelneVL6rKVSslJcTw88j0uL4XzzhnJf0V1up0i8Vq9oA+drP0tvTqftRTPoeYvXttMLKJ3GwqBTFIRlIyRCcSy+Z1u6dT/ACPoN3qPDxegpuWPPB5i1Dxh3XPUqlWlcxhT4niGOWC26b0fNz4mafZx8nmUwTEWesFzL5Hn3ZvjpV9LC316gnFvHpIdjd+39b07XLKN3p1zCtTa7PmjDm9K5HDn8cejLBy8ebxLtCEKVjqQ6fdVD0umyaWXF5O5Pz6hT9La1YecWZ451aJas9e6kw1sDlWi4VZQ7ptHEu4ncPK2jU6RgrJjkShCrzL2IB+HXrZXmkXNvJZU6bR5f1CjK3vatGSw4SaZ6tklKDj5o83+JVi7Hdt3BLEZy4ket+F8+r2xywuxopGM8z2stYGQpAmAGAgCBUSCN5e5g1dxubzS5y5SXHFP6DRqeORm3gzqj0zfFlJy4YVZcEiv6nh+bx7Q6ONbtvD10inGm1KKl2aOR82mNTpegCDIAAAAAABV0IAHcdgwDAAAAAC5IAKgRMoTAfk1W3VzY1aMufFE/WSSyjPHbttEwi0bjTT9zSlQuJ0pLDi8HzO+3tae9tWlUSxGosnQvoezwX+ZjizzuWvZaYR4C6Adje1qe3TxDk9vGdFjwP6v2AAZrB5e8bIOp4u6tBLOZUF//QpmR6fS9FaUqaXyY4Op8UqPpvG3UoY/WoP/APoUzvIrCSPM9av+KKubi1/Hef8AMuQ7AFE71BMgjSIgLggCZAPaO4NhMFQBtOhU/MEZE1iXTh5N8c+kueT43taNC3nWm8RhFtn0TMQ8S9W96aYrSnLFSq+ePIY8XfeIeo6Vk+syRWPLXu49Qqajqta4k3jiaj7DrQ3nmQ9FSsVrqH03FjjHSKwqABk2AAAmBgpAIChoApyi8xk17Gfot9Tv7dp0rqrHH9o/LhkfJczHtiXPm42G8btEMist5a1brDrqol+0j9cvFilZL/xvocrqk+Zp3d+55U6krOxljHKUkYRWrVKs3KpNyb6tss+P0WuWO675V8RdX4GLJOLDSJmPu9F3PjvpVOLULKc5erp/MxfXfHbVbiMoadZ06Cf6zeWaYBY4+i8anrp4LJzL3n09Hdbj3NrGv13V1G8qVc/q55L6DpmQFnjxVxxqsOWbTPrIUgNiFABGtjaXuc9a/J+7vec54p3MeHHr5HqJPueH9p6hPS9wWd7B4dOome1tHuo3ul293BpxqU1JHifiHj9mSLx91rwr7rp+wHEv0nm3cdEQ5EAYGB3KwbQDqMAOpCoMlKAuAglDkTsOglCNBSa9ZUGYzXbfh5F8U/hlHUgnhySZU0+jTOj3TaXFa29LbTlGcPIwynuDVbObg60nh9JGMYe7w9r07HPMxd1Z9WzgYJab0rrCuKSl7Dt7Xd+n1cKopQZE4bw6r8HLX7MkB11vrWnVlmFxH6WfrjdW8vk1qb/vIwmkw0TivHmH2BwVak/95D6x6Wn+3H6zHtlj2W9nMHD01FdasP8AEjlSq0qjxCpGXsZGpY23WNy5xRcFyl3Q4oruIiZcluVjr9zBenU4OouyOLbZlGOZcGbqdI/L6ucp45I+fV5YwU3VrEKbPyb5Z9TBCgyc6dy9QRAUZJ1ANHMDPIBJk5ZXI4oesIchnkMZRMAcuxOofTAQDsGRtphPzAvqKcc+RVzAEeChgcUXkRgJEEgVMlCYKAQAACAMPkji3kJiCPNnJ9BFcslka59ZXuOsYePMuKKyIY5GxRzO52qI2GwlyMbW06uNxLZp/wAHcpxOSMoncNObH8u81AAS1gAAAAATuUjCJak90ddcOjWlsn8qo3j6jDfBWhmtc12unI7b3R1zxapaWufkx4vrOPgzQ4dHr1cfKqf9z0V/+Ppn6qjkTvI2AigHlHOAAAZds+nw2Mp95MxAzvbdP0emU/XzOTl21RY9OrvJt2fYIMhVSv34dw6jT0nRbrUanyaFNyPGHiBuzUN065WvLmrL0bl8SnnlFHsPfVhPU9pajZU/l1KLUf5niDVLOvYX1W1uacoVKcsNNYPdfCOLDPde35lL1W141EeH5cmZeD+gXGu7zs6dKnKVOlNTm8ckkdFtrb+p6/qFO0sLapUlN4yo8l9J618Ith2uz9HXFGMr2qs1Z/5F91zq2Li4JpE/ilw8Li2yXiZ8M5pRUKcYLolg5AHym1u6ZmXp4jUaVFIikQlAAB+HXbGGpaTc2NRfFrQcWeLd7aLcaFuK6sa8HHhqPhb7o9wM1d44eH8dyaa9QsYJX1FZ5L5aPTfDfU44mbsv4lWdR4vzqbjzDyt0M38J95X229w0Eq0na1JKNSDfLBh9/Z3Njczt7qlOnUg8NSWDhatq5puPXiR9E5WPFycExPrEw87im2PJD3fY14XNrTuIPMakVJM+yOk2JKU9p6a5/K9CsndnxzkUimW1Y+0vZY57qxMqSazFrzKR9zSymNw19rtH0Op1Y46vJ+E77edDhvIVUvlI6EucNu6kS8xyqduSTkMAptc6YI0ciMCPkjS3jtYej1O3vYrlUjwt/WbpZr/xusPfG2o3KjmVGec+rkW/RM3yuXX/ACxt4aJJgoPpvmGlxHMvMEaDmEAhoGEUg0B+zSLiVpqVvcReHCaaPyFi8NPyMcle6kwms6nb21tS9jqGgWl3F59JSTO1NdeAmpq/2PQpOWZUHwP6kbEXQ+Y83H8vNar0OO3dSJUAHKzAAQA7AE6BBhBkAB2AAdgAACADsAx3AMq6ABIGAwMa31ZKtpyrxXxqb/ga/NuajQVezq0ms8UWjVF1SdG5qUpLDjJo9J0jN3Umk/ZUc/Hq3c+WBgAuVe4s9vniBnt8zoseD/V+wADNYPPm+aHpPGrWqmOUI0PuKZ+xH33lQx4n6/Xa6ugl/wDgpnwXQ8d1W/dnmPZjgrrf6qTmVArXQAAAO4ADuAAAAAAAEPlXqRo0ZVZvCiss0xu7VJaprFWsnmmnww59jbuuWU7/AE6rbU6rpSmscSNTa5tjUtMm3Kk6lP8AbidvD7Ync+XuvhG/GxzNr2/E6JFxgrUovElgnsLN9Hi0T6woIUlIAgAABIAAgQ6/cNw7bSLirF81HkdidZuejKvolxTgsvhN2DXzI24OqTaOJkmvnUtQ1pyqVZTk8ts4HOonGTi1hpnA9lTXbGn5vzzack93kABk0gGUCNwnUgAJQAADlFtST7pnrvwS1N6lsKylKWZ0o8DPIZ6W9zFcuptW4oN/IqcvqR574gx92Du9nZw7avpt4AHhlvva5IX6B3ID2lAAhQAkAIwDIXmQlKkKiMbRtUGRdSvoQOMlmOH0MO3doXpE7q2hz/WSMxl0PjUipJprKfY1zea23D1fRL2w174aeqQlCTUljBwM33Lt7j4ri1jz6uKMOr0J0pOM4uLXZndjyReHusHJrlrt81OUekmj6RuriPya01/ePk0xjBnqJbprWfMP0rULxdLip/iZfyjef8xU/wATPyr2FI7YY/Lp7Pu727l1r1H/AHmZbsCVSpKrKc5P2swxLmZv4erFGq/WYXiNKTr2qcS2mXJDBUDlfMtzJ3OSOJyXQlEgACAMAJTkMDAAYHUAJBgLuAAAAZ5YCyMeQALqXISyMBB1YaL6gkBxaLFnL1HFg8mWHzIwEgAADBQEbACZBETKgmRxIGpJM4rqV4EflCfDbgr3XiH0RxkcjjLqaqeV3zo7cOkT5kz2IzlFdzZadKnjcec19CQ9obCRris29ZW+Xl4+LHZSDryKEjkbIjSkz5py27pQdignbSjIUE7EBeRAk7EkUknhNkxG5RLzh4+XHpt6ypp8qdNL+LMn8KaLpbZg8c5Sb/izBfF2t6ffl+088M+H+LNl7Co+h23arGMxyeg6n+Dg0qpMs7vLvwAeVaxAIoCK4ppebNh6bHgs6UV+yjAbGHHeUoeckbEoR4acV5JFfzZ8QuOmV8y59gUPpyOBcOLw1jsYduTw22rr1778vbFelby3B4yZki9Tdh5GXBO8c6YXx1v+aHSbb2vou36KpabZUqX9pRWX9J3YBjlzXyzu87lNaRWNQFwAa9MgAoEKABGSSTWH0ORBHoMM3l4dbd3K3UurVU6z/wB5TWH/AAMa0zwO21a3cK9SrXq8LyotvH8zbARY4+q8rHTsredOe3FxWncw+Nlb0rS2p29KPDCmuGK9R9mMdyrmjgtabTuW+I1Gk6BDDBil0G8aHHYqql8lmHGwtcpem02rDHPhya+axJp9mWnEtuulD1Kmr7AAdatQMoAjOj3xae/dtXlHGX6NtfRzO8Z8bymqttVpv9aDX8Dfxr9mWth5QqxcKkovk08HE7Hc9s7TXbug1jhqywvVk64+sYL9+OJc6ApDaAGQBQASAAIkb09zDqeK95pspdVxxWf9eRvyJ5P8B9S94b6t4uWI1k4P6mer1z5o8B17D2cjfuueHbuppQAUbsAAQAAJBAAiQCAAMD6QAQBUAGOYASAAAAAJLpg1xvW0976q6iXxaiybIMX37aeksFcJc6b/AIFj03L8vNEe7k5lO7GwIAHrFGYPbp4iPbpnRYcD+r9gAGaxai3/AE4x3jqE0ucnTb//ABxR0q6Hfb//AK3337v7uJ0R4XmTvkX/AFn/ANbax6AAOVkAAAACQAAQAAAAABwqwjOLjOKlF9UzmBvTKtprO4li2ubN0++Up0IqhVfddDA9b2tqemybdJ1Kf7UVk3J16nGcYzTjOKafZrJ04+Vej0fTviXlcWYi07h5/lFxeJJprsyG4db2npmopzVP0VR94mDa1s7UbFynRh6amu8Tvx8ml3u+n/EnF5eomdSxjPMHOrTnTk4Tg4yXXJwOne3oK2i0biTAZcglkgKAISUVKLjJZT6lwBEotWLRMSwLc20qsriVxYpOMnlxMcloOqReHaz+o3ATC8kWeLqWSldPD8/4G4nJyzkrOttSUdt6rVeFbte07S02Rf1MOtUhBGyEl2RTK/VMs+GPG+AuDjnd5mWJ2GybCkk7huo+5+Dem39PsdM98W1Pgkn9ZnFarGlTlUqPhilltms967gepVvetD/YwfXzMuJkzZsm9+jn+I+H0vpvCmkVjunwxkMjB6J8flSkAYqeivct8tGvctfL5L6jzrFOUkkurNyeGc7zQdMp1aNSUJz+M456lL1qO7B2/dfdB6Xl6hmmtPs9Igwrb+9qFdRpX2Kc+nF2MvtrilcU1UozU4vumeCvjtSfVbczpnI4dtZKvt3HUmSo1q7SgmUAKATISpCgIRhdRkc8hJ5kKQIVB9CLqVhMeXGfQ+T6n0mcGc9vL13CrrFDg0jqdX0O1vouXCo1PNHcHFiLTWfRZY8lqTuJa41TQbu0k3wOcPOKOplTlF4aaNtyipJqUU160dXf6FZXWXwcEvNHTTke6zw9RmPS7W3DgYMn1Da9xSzKg+NHR3NnXt5NVaUoteo31yRKwpyaX8S/KkZr4ey/M1o+sw3GDKdhVeG5qU2+qJv4VfXa93Dtpm6fI5HBMuTmfMFLHqTJVyAoHUBAAAAAAj6BooYSgLyJgAA0AkAAA5I4jLA5dyPl0GWTIQrZMhsBIAAABAOSBM8iZCNEjlBLBwOcOhhfwsOn1icmpVxTODWD6djhMxpPq7OocekU7o8uJY/KJksPlG23hW8T+bD69j5z6n0XQ4TWTTWYiV7zcU5MequMebOTKlgjEz3Sxw4o42GZ+6JHJETL0NsPPZbTa0zKkGUi5JawEyGBSDIXcCApCUh8674aM2+0Wz6H5NZq+h0u5q/s02zPHG7xDG06h5X3nV99bzvZ9eK4f8zdO3afotHtYY6Uo/yNGOTu9ycb5upXX8zfmnw4LOjHygl/AvOu27cVKKO07mZfoAB5diIpEUD9+36fpNVpLyeTPIeRh20afFqLn+yjMolXy53df9OrrHtSMM/Nql/b6dp9a8upqFKlFykzmpSb2itVhMxEbl+iU4xTcpJLvln4LjWtJt5cNbUrSD8nWiv8zRWq6/v/AMRdYr2G0bSsrOEnHjp5X1tGO7s8JfEzSbGeo6lZ3VWnFZnKNSUsI9dxPhW2SsTltrarydRmPyw9M22s6VcPFHUbWb8o1Yv/ADP3Rkmsppr1HhKjqOo2db83d3NKcXzxUawzYvh94va1o1zTt9Squ6tG0pObzJL2mfL+EcmOnditthi6rW06tGnqrPmEdXtvWrHXtMp39hVVSlNZ5djszyGTHbHaa2jUwtq2i0bhyBCmtkAhGwK2cKlWnBZnKMV5t4MQ8RN6U9u0oWdlSd3qtflQoR5t/wCuRr/VNjeNe5rOepVVK1pSjxRoxm4vH0IvendCzcuvfPpDjz8uMfpEblun37Z5wrqhny9Ij7xqRksxkmvNM8U6/Pd239RnZ6ncX1tcQeHGdSSOz214rbp0GrFu6dzST5wqvPL6S3y/CGWK91LbcVOqx3atGnsVhPCML8Lt92O89LValincwX52nnoZouh5Lkce/HvNLxqYWuPJGSu4VMNE7leTQ2PnVipQlF91g1zqFP0V7Vg+0jZDxgwbddD0WpyeOU+Z28O34tKzqVN0iXVAAslEAADi8ZwV9GMcyYfmIHnzxfsvem7as0sKqlJGFm2PHqyar2l4lyw4t/UanPqHSM3zOLWWm0eoUjBaMQpCgAASABCJHa7TvHY7isbmLxw1o/zR7S0uurmwoV4vKnTjL60eG6MnCrGa5cLTPYfhXqH5R2VYVs5apqL+hYPJ/EeLda3WXBt6zDKwAePWYAguoAAE7AAEB2HIvYY5ATAL2AEZewHUAugHRAJAUgAAe0Afh1m3V1p1ai+8eR+44yWYtPuZ47dtoljeNxpp6rFwqzg+qeDidpua297avWjjCbyjrMHtcN++kS87kr22mEPbp4jPbh0UdvA/q/YABmsWpt//ANbr39393E6I73f/APW69/d/dxOiPB8z/sZP1n/1ur4AAczIAAAAAAATtHoEKBskBChjsBChkAAkTCJKKaw1lHIBMWmPWHS6xtvTdSTdSioT/aiYRrex7y14qlpL00PLubQ7ho34+Rei64HX+XxJ9LbhoS5ta1vNxrUpwa80fE3hqWj2GoQauKEZN98czDda2HJZqafUTX7Mjvx8utvL3PT/AIr4+fVcvpLAQfu1HS72xm43FCccd8cj8ODqi0T4eoxZ8eWN0nYQAybQIYBPqKGESbxCUvJNmURtje3bWbezDPEXV3SpKwoyxKazJo182289zstz3M7rWa85N8pNI6w9VwsMY8cPz78SdRvzebeZn0idQAA7HnzJSH69M0+51C4VK3puTb645GN7xSNy24MGTPeKUjcy/ftLTJ6lqtOOPzcXmTNuUoKnCMIrCisHUbW0WnpFmo4TqyWZs7rojy/O5Pzr+nh9w+FOifw7jd14/FJ0ecnZaTrt/ptROjWk4/st8jrexCutSLeXpc3Gx5q9t422Vom97auowvIejn+12MqtL61uoKVGvCafkzReT9Nnf3dpJSt684Y8mcWThRPrV5Pn/CWHLu2GdS3rnkM8jV2l73v6CUblKrFfWZNp+9tMuMRq8VKT8zkvxslfs8nyvhzmcf8Ap3DK0yo6+11WwuUnSuabz24kftjOMlmMk/YzRNZjyp8nGy4/S1Zh9CZImG0Q0zGlQ7nxu7qja0ZVq9SNOEVlyk8I6ihuvRK8HOle05JPGU0bK4r2jcQnHS2S3bX1l3xMGN3G8tGo8vTuT9SPyS37pK6Ko/7pPyL+ywp0fmX8Ull6XMPoYlR35pE3iTqR+g+eoeIu3rJZq1Kr9kGzKONkmdaY5OlcrF62pLLpnB9DqNt7k07cNt6exnLC7SWGducWWk0tqXo+LW1cUbhAAa3VCYIcjiEjR8K9rQrRaqUoy+g/QQnekxMx4Y/qG2bWtmVJ+jl6jrrDSr3S9QjVUXOnnm0ZjgkmorLfI2Rlt4bLZbZKTSfWJcKVxTlhOSUvJn3UvI1rvPWakNUxaVnHg5Npn47Hemp2+FUaqpeaLCnEtevcrM3wpmtXvxfdtdPkVPkYHZ+IFB4VxbST80ztKO9tFlDiqV3SXnLkYzxMkfZR8jo3LwRu9GU9QdPY7i0a8eLfUbeb8lUR2dKvSqc4VIy9jNVsV6+YVsUtMbiH2XJsZz0OKlkqZhrTGYXJcnF+QTwQOXYckcW+QXXmByBxbLHmBSMpAQAAJAgwAADAAAAARsCkfUZIBWQAAWMkjjkgmIltxZLY7d1X140cG22Ixyc1HBhuKeFjSuXlx+Lw4qLxzOaiilRrm8yssHEx4vEAAMHWhGXAwTE6YXrFq6lwxzLj1nLHqJyM5yS4adOx1ndkwCtnHK6jdk24/GjyrQ6DI9plF5jy5MvBx2jeKQpO4NkTtUWrNZ1IACUB0e+7hW21dQqt4xSZ3hhHjTd+9tkXSTw6i4UdHEr3Zqw15Z1SXn3atJ3G5LaPX84m/rN/U1wwS8kaT8L7f0+5oSayoJs3auhYfEF/+WK+0KNRkA88CK+hCkEMk2XT/wBrU+gyeJ0e0afDp/Fj5TO8KjPO7y9Lw66xQrMO8RLG73DUsdq2c3CWoVUqkl+rDo/5mYt8jG7HWqNh40aJa3PDGnWoyjGT/abjgsuh44vy439mXKnVG4dg7P0faOhUNO021pw4ILjnjnJ92zv7m3o3FCdGtTjOE004tZTR9YyTjlPr0OFWpGEHOTwkstn0fbhisa0/n97qLatrtbxLuKVlTVO3uV6WMV0TeG/4s1R0Nx+623Dba74m1I20lOFtD0ba588LP8jThbYdzSNqPPERedNpeAm9q2ia9T0u6qt2lzJRSb5RZ6npTU4RnF5TWUzwXZ1pW93SrQeJQmmme2tiXr1Daen3UnmUqMU/oWD5/wDF3BrjvGaseV10rNNqzWXelIiniVyjPje1o29pWryfxacHN/Qsn2Z029JyhtfUZR6+95//ANrN/HpF8taz7sbzqsy/H7n3blLcetahvnVqarz9PKjaRmsqMYyayvqRvzhio8KikvI1V7lq6oV/C63VJpyhWqKa9fEzazZ9Vw0jHSKwqa+sbecPdo7YsJ7Ro69TowhdUqqi5JYck2jxpdfIPYHu2N2WlPQbfbVGpGVzUqKdRJ/JSaPHtxL4pccWJ7PVU8rXzPRmngfuStoG9LX841Qry4JrPLmezaU1UpqcXlSWUeAdEnKlq1pOPJqtFr6z3dtirKroFjUl1lQi39R4P4x49a3rkjzK16VkmYmrs02XLIuhUeIXKdjFt70edKql6mZU0sHTbro+l02Usc48zbgt23hzcundilhAIily8xMaAABGRPDORwfkBg3jPZe+trSrJZlSkmaDfU9O7ytffm2r2hjLdN4+o8y3EXTrTg+sZNHvPhnL3YJp7NV/LgTuUh6iWAACBQQpIEKAB6T9zVqnvnbNaylLMqFTkvU8nmw217mzVVa7nqWM5YjXhyXr/wBMp+tYfmcef8OriX7ckPS3YETKfO59F2q6kH0gAAUCAqAAF7DANIkCgGkx2KkGF3BpOiKPoBCUBQBGCgkQPoAwMJ8QLbhq0rhLqsMxI2NvK298aTOSWXDmjXSPVdLy9+HXspOZTtvtD22eJj2yW1Gzgf1fsAAzWLU3iB/W29/d/dxOiO93/wD1uvf3f3cTojwfM/7GT9Z/9bq+AAHMyAAEbAAEAADGZACICgACAIMMtqCFJAAgDuCgkCNcggEvz3Vnb3MHCvRhNPzRims7Hs7jiqWknSn5djM2iYNlMtqeJWHE6pyeLO8dmmdX21qent8dCU4L9aPQ6WUJReJJpm/p04TjiUVJeTOi1jaumX6b9EqVR/rRO3Hzf/p7Lp/xjE6ryI/dp0plms7Kv7Tinb4rQXl1MYuLavQm41acoNeaO6mWt49Jex4vUePyo3js+RKi4oSXmsFwVLng2xb1dd699Zr7tNblt5W+sXEJJrMm0dabX3Ptqhqz9Kn6Osl18zEa2ydTjUxCUJLPU9JxufimkRafV8S618K82nKtbHXcTLFiwhKbxGLb9Rm1hsSo2pXVdJd0jKNL23pljiUKCnNd5E5ep4qePVHA+CudyJickdsME2/tS81CcZ1oulS65fc2LpGk2mmUFTt6a4sc5Nc2fvjCMViKSXkilLyOZfN+j6X0b4Z4vTY3Ebt7gAON6QAAEa5cidDk8HH/AEwaBkfUAntiX0pV61N5p1Jx9jP3W2uanb44Lqf0vJ1rWAYTjrPmHNl4eHJ+asSyW33nrFLCdSMvaj9i39qUabzQpyaXmYdhlf8AA1/T45nwrs3QuHkifwQxbxJ8SNwarUq6dNq3op81B9TpNg6vUVy7OtVk1PnHLL4iWHo7hXcVyl1MW06vK2vadaLa4ZZPTYePitx9Uh8lyTfpPVfXxE//APG5ct8y9T82mXEbqyp1YvOVzP1r1lFevbMw+28bJTLirev3ccerkSdOnUWJwjL2rJzaJyMW61K29Jh2e3NSnpN1GdH4sc80uSNr6JrNvqNCLhNceOaNLI/dp2o17OopUqkotHHyuLGX1+6s5vTaZo3X0lu8PBgui70XDGndrPbiRlFprmm3EU43EE/JspsnGyU+zzeXhZcU6mHY4Hc+CvrPGVcU/wDEcKmpWMF8a5p/Wavl29mn5V/Z+oHU3O49KoLncRk/UdHqO96EE1a0nJ+bNlONkt4htx8PNefSGXVakKUHKclFLzMK3XuqEYStrKWW+TkYzq+4r+/bUqrjB9kzppzbfN5ZZ8fgds91l1xOlds92Ra9SVWcpybbby2z4TfkcpM4MtIjS8iIiNQnP2GM771FW1gqEJfHm+xk3Y174hW1WnfxrSk3CXT1HdwaRfLG3mvirkXwcG00jy/Js7ULilrlFemqJSePlM25banfUsOnc1V/eZpTbufyxb4/bRt6n8iPsNvVcdYtHo8/8E4qcjDeMkbZDa7r1ehhK4cvadra77vYJKtShMwwFLOGk/Z7HL0LhZPNIbKtN92k8KvScPYdxZ7m0q4xw3MYv1s07zKpSXNSaNNuHSfCpz/CHFyfknTetG7t6qTp1Yyz5M+6lnnk0XQv7ug06VecfYztbPderW+F6dzS/aOe3Cn7SpOR8GZq+uO224MoJrsa3tN+3MeVehGXsO1tt92M8elpSg+5otxrwps3w3zsf9O2a5wMox623ZpFVL8/wv1n76Os6bV+TdU/rNc4rx9ldfpvJx/mpLsclPzQvLaXya8H/ePpGtSf+8j9Zj2y0Tx8seay+oOHpaf/ABI/WT0tP9uP1kdssfk39n0IfJ1qS61If4iO6t4rnWp/4kT2z7JjBknxWX2yMn46mpWNPnK5pr+8fkr7i0qlniuov2ExjtP2bqcDkX8Ul2+SGNXG89KpZ4ZOb9R1d1v6isqjbyftNkcfJP2d2HoPNy+KM5I5RS5ySNYXe+tQqZ9FGMEdPd7i1W4b47qaXqZtrwrz5W+D4Q5N/wA86bcudSsbdN1biEfpOmvt5aTb5UKnpH6jVdW4rVXmpVlJ+tnyeX1Z0V4Mfdd8f4Ow1/mW2zy939N5VtbpetmUbR1SWracq1TCmnh4NNGf+FN2+OtavvzRjycFaY91dHUOgcXFx5mlfDYaWORzyRdhy8ykmdvO0pFI1VQhlAhkAAB0GQzjJhja0RGxs4N+RG8g6K0iPKg5XOtedV8AAM1fNpnzIVPBEG12Extniy2pbcS55COMXyOWTXWdTp3cukXpGSAAGxWBqn3Rd36Lb9tbp86lTp9DNr4NE+6SvFLUbG0T+TFyf8Sy6Tj7+TDl5NtY5dH4NW+b+vXx0il/M2wa/wDB234NLqV2vlywbANPWb9/Kn/CpjwAIFUKGCwWakV6yJ8MqxuYZxt6HBplJefM7I/Np0eCzpR8oo/RJ4RS39bS9VgrqkQM1t45aXXlo1PcGnylTvdOkqkJR64XP/I2JKrjsfi1ahR1HT61nXWadWLjJepnbwM88fNW7dm4/wAzHNWF7C91Ba22kU7PcljVlc0o8PpKazxY8+aOs8SvdNy1HTKtjtyzlQdSLi6s+qT+s1Nv/wANdY0jU6s7KhK4tZScouC6GIx23rc5cK064b/6GfVePn4uWkXizzGSvKrPZ2uuvrqvfXlW7uZyqVaknKUm+rZ8ccjMLHw53RdUnUhp84r+1hHGXh3utTcfyVVb+g6P4hxo9O+HPbg8jW5rLEYJyqRiubbPafhdQnb7H02nNNS9EmaB8O/CjW77XaNTVbWVta0pKUuLHPHY9QWNvC1tKdvTWIU4qKXsR4n4r6hhzxXFjna16Xxr03a0PqAXmeIXOkPyaxbK802vbS6VKbj9aP1gmlppaLR9kTXcaaN8NPEWt4SbqvdC1enOWl1qzmn3jlvp9ZszenuldrWmjTlonHdXk4YimliL+sxjxm8PIbos/fdnGMLymuX9o82avtXXNNuZ0LixrLheMqLaPqXR+oYOXijunVoUHJxZ8Mz2xuHDe+5dR3VrtfV9SqudarLOM8oryRjtx0R2y0i+bw7ar/hZ2FtsrXL5w9BZVEpPGWsHoZ5OGkfmV9ONmy29Kzt1+xdNnqu6bC0hFvjrRb9ieT3PptvG1saFtHpTgor6EaF8MPD2O3binqd3NTu4r4qXSJtenqty5x4p8snz74l5EczJEY59Iet6d0bLix91vLLF/AuT8dhOU4cTlnJ+tHjbRqdM5jU6kZ+bU6fpbGrDzifpZxmswa80KzqWF43WYaynFxm4+TIfq1al6HUa0MYxJ4PzF3Sd1iXlcsdt5gABk1hwfc5kl0A+NxBVaE6cuaksM8w7qtna6/eUWscNVnqE8++L1l713bWklhVfjI9T8MZe3NNGF/DDGO5SHu2oKQAO5SFEAACRGZF4d6k9K3bYXfFhRqpS9mTHl1OdKbp1Izi8NdDRyMfzKTVlS3bO3uWyqqta0q0XlTimj9Bh/hNrEdX2ZZ1uLinCHDPn3MvXQ+YcnHOPLNZegx27qxKj1jBV0NDMBenRBgQIYGAKi5IAkfMdikYAJYD6hBAPWAQnQgAAIUIJCPmXACH5NRpKtZ1afnFmq7im6dedN9U8G3JrMcGtNzUPQavWWMZeUXnR8nrNVbz6+kS6vB7ZPE57YPSUa+B/V+wADYsGpt//ANbr39393E6I73f/APW69/d/dxOiPB8z/sZP1n/1urPoAA5kgADCdj6Aj6AkUEBBpQQewkUEYQTB2AQyD7gzyDZAeqghUDwBDsEwyEB0ZQIw16x6gyUHIjXrK+g6EI2jR1+o6PYX8GrihBt90uZ2Oe45GVbTXw6MPJy4Z7qTpr7Wdh9alhUz/ZkYjqWj6hYScbi3nFeaXI3cfKvb0a8HGtTjNPs0ddOZavl6jgfFvIw6rl9YaGa8y4Xc2lrOy7C74p2+aM/V0MK1ja+pafJv0TqQX60Ttx8ql3tOD1/icuNb1LouQLOMoNqUWn6yJnTExK8raLRuAAEpAMoAAx7CPOQkyMPzIkVdQI+oDx2HIJAmscyF7ICt9OQb5EWMYHYIdTuixV7plSGMySyjU9anKlVlCXVPBuypFSi4vozWu99KlaXruKcfzc+b9TLnpuf+iXzX446VNojk0jx5dtsDUvSU5WlSXNdDMomndKvKlleQrQeMPmbW0i9p31nCtBp5XM1dQ480t3R4d/wZ1mvIwfT3n8UP2jHMcxlFW94FIAOSbR9IVZRfKTR8gRMRLGaxPl+pXdfH+1l9ZJXNV9Zv6z8wXUjsr7MflU9n2lUbfNtnByZwyDLUQyikQr9pACUuMiFayMcgxlwMF8R7iMqtKiuq5sza7rRoW86k2kkjU+4L132pVKucxzhFp07FM37nhvjXqFcXG+THmz9OzqLra3RSXJPLNrRWEkYH4c2Tdad3JclyRnqNfUsndk03/BXEnDw++fuqHYIFdp7YBCgM+oEYawQGQCDRpyTa6M5RqTj8mTXsZwA1DC2Kk+Yfphe3UPk16i/vH1jquoR6XVX/ABM/ETJE46+zTPEwz5rDsPyzqX/N1f8AEw9Y1F/+rq/4mdeUj5dWP0WD/wCIfseqX763VV/3mfOV9dy63FR/3mfnBPy4ZRxMMeKw+kritL5VST9rODlJ9WyAmKxDZGKkeIMgAybIiIAEwAAAEM08Kor8qVJPqomGGW+F9Xh1uUH3izl5cf8AFLh6lG+PZtVeYAPOPBC6lWckLkhjaYj1lSEbJnmbIxzKvy9QxUnXlyI1kgyT2TDTHUcdvSYTg7kcWc8hk7tDXbHx7xuJfPDHPzOTeXyQRO5cs4cW/wAzhzBz5eQaHfJHGxz/AFOMTn2IXqRG5lvy5KY8PZvYAOxtVEyvY8zeOV7773xVpp5VJKK+pHpatNU6MpvkorJ5K3bcPUd53VVvPHXwv5F70Kn47X9ocPMtqmm1vDW39Bti3ysOayZQdft6grbSLailjhgjsCi5l+/NayuCogOYU+tlHju6UfOSPjk/foUPSalSWO+TXknVZbsEbvDOaS4acV5ITZyXJHzqlRHl6/DX0h8Js+Uss+kvlHUbp1b8lWLqQSdSXKKZvx1m9u2Flx8Fst4pXy/ReRbhh4x6zro06MXnippmCXOsajeVXOpXmk+yZ81c3HerN/SXeLi3pGu56jD8PREbtPq2N6RU4ZVdHO01RKeJOM0a7o6jdUn8Wq37eZ2thriTUbmimvNEZONbXlll6JEV92zrSvSr006bR+hGI6NfUnUjO3rpxfWLfMyynJSimUXIxTS3q8jzuHPHt/hSr2kCNKvXuHhdiN4RxnOMIOUmkl1IiNpiJmdQ4V+dNrzOj1CztaqbuKdOS/tpM6rc+8IW05W9ilUqLrLsjCdQ1nUL2bdavLD7J4Lnh8TLru3p6jp/Q8uWu7xqGVXtDb9N86domvKKPxVdR02ElGnOMYLphGJScm+cm/azi0XFcVtamz0OHoODH6sxlrGnqK4ajb9hypanbTmkpYb6ZMOoQzUR+tqbmmuWDRkxVhtydLxRWdNwaLPjt4vPY7JHRbRk5afTb/ZO8R5vkRq8w+b8ynZmtAwGDQ5WE7upej1RzxhSR05k+96XxaVXHfBi66Fxx7d1Iea5tO3LKgA3uQAAHB9TT/j3Z8N1aXaXVOL/AIm4Wnk1/wCN1n6fbca6WXSnktui5fl8uv8AlFo9GiWA1y5E7n02JaAApIhSFEAACQADIkby9zPr3BWudGqz5S+NBP6DfqPGPh9rFTRN0Wd5GWIqolL2HsbTrmneWdK5pyTjUipJng+v8b5ebvj7rjhZO6mn6exURHI887QYDC6BOhFAJBhAAAAAIyhgQDI6EEAKQJAAQAA7ko04voYRv234bqnXS+UsGcPuY5vih6TTlUS5xZ39Pv2Zoc3Lr3Y5YGe1zxXwntQ9jjcXB/q/YABsWDU2/wD+t17+7+7idEd7v/8Arde/u/u4nRHg+Z/2Mn6z/wCtkT6BGUjRzG1YITmSaUMAJhCkYJSoRABR3ICEaA0ASmVZA+YIIAwgyQyEO5QAIXBCJlGOpcMBMHLoOw6jmSJnkXuGAQpOQKBxxyJKMZLDSaZyQCa2mvrDotX2xpeoJuVFU5v9aJhms7IvbbM7VqrBdu5s/AfQ34+Rei84PxBy+JMRE7hoi5tbi2m4VqU4NeaPjk3hqGl2V9Bxr28JZ745mH61sSL4qlhUw/2ZHbj5kT5e06f8WYM2q5fSWv8AHPIP26jpV9p9RxuKEo4745H4evU7a3i3h6rFnx5o3SdjJnuV+ov0GTc49XyGWcljsH0wBx7cw1hjl0D5kpQAAAAAPwa3YU7+ynRkstrkz94Jx3mltw5uVxqcnFOO8ektM6pZ1LK7nSqRaw+R2u1Nbnp1wqdRt0pdvIy/duhxv6Dq0o/nYrl6zW1xRqW9V06kXGSfNHo8WSnKx6l8W6jwuT0Hm/Nx+G47W4p3NGNWlJSTXmfZGr9u7gr6bUVObcqPdPsbB0vVbS/pqVGqm+6yVHJ4d8U7jw+kdD+JuPz8cRadWfvKTI6nFrT1MWifWFBCkJAupB3AoBCUAHQjeBEItaI8qz51akacHKckorq2fj1PVbOxpuVarFPyzzMC3FuWvfuVKg+Cl6urO3j8O+Wf8PNdX+I+LwKT67t7P17y3D74bs7WXxF8pruYra0p168acU25PBw5yfm2ZtsbQpOSvrmGF+qmXN+ziYnzDD9T1/nRM+GT7csFYaZTpYxJrLOzWBFcvIuDzWS/faZl9t4fGrxsNcdfsE5FwydGYOsb5gdQBO2BjkUvUDjzJg5IfyAnYo9YfQbAiC6DuNoQ5EHPyJgXsCFAAAAACUGAuhQBAUAcTvdiV/QbioNfrPB0Z+/blT0WtW0/7a/mac8bpLn5Ve7DaG8o80n5lOFJ5pQf9lHPojzMx66fO814x7mR8kcW8jOQbq1081y+bbLOo8AQBmrtyuSZACNmQADYEAABCg2FTIUGwIIIgdVu66Vlty+uG8cFGT/geV9Eg77dFPKzx12/4nofxqvVZ7Fu+eHU+IvpTNF+F1t743JTm1lQ+Mel6ZHyuJfIruZP4ohu2hHhpRiuiR9DjE5HlLzu0y4wAGIh3O0qfHqDlj5KOmZkmzKfOrU+g0cidUl18Ku8sMn7Hzn1PozjIqoeux+j4NZZgniRPiu6NPPJL/sZ7Lksmsd53KudZnwvKhyLPp1d5NvSdAxzfkd3s6PCXJAPOQX73YVZzyIEB+i3uatGalTm00bP2XqNS/0ziq85QeMmqkueDauyLP3rosG/lVPjMq+pxX5e/u8x8SVxxg3Pl3wA7lA8CcsGBb93FUp1JafayxjlNozqu2qM2uvC8GlNalUlqdd1c8Tm85LPpmGt77n7PSfDvEpmzTa/2fjbc5OUnzLjkRYRyS5Ho/SH0CIiI1DjgmGc8DmRMp2+lqoxy5FqVXKWFyR8+iKuqNVqx5ar+G1tivi0aEjIUjotk0nS0OllYzzO9R5XlTvLL5V1GYnk20Mdw+hDncLp920fS6W5Y+S8mDf9zY+q0vS2FaH9lmuZrE5LyZZcO266UfU6atEuRGEMnaqxewMmRnIF+gx/xBtPfm1r2njLVPKMgXXPM/LqdP02n16bWeKDR0cW/ZmrYeU5rDa8mcT9mrUHb6jXotY4ZtH4z6vht3UiWgAKbUIUAkAAAABAsJOMlJPDTyepfATcK1falO1qTzXtvitN88Hlk2F4G7keh7sp0qs8ULnEJZfLPb+ZT9Y4vz8E68w6uLk7LvVyeDknk+dOanCM4tNNZR9FzR87tGp1K72DIwO5Ad+RSIpKQAAAAAAAEaKAAABGkwjKCEBzwGCEoGddr9H02mVoY/VyjsT5XMFOjOL7xaNuG3beJYZI3WYasksNryPaB41voejuqsPKTPZR7jjz3V2r+JGptAADe7Wpt/8A9br39393E6I73f8A/W6+/d/dxOhPB8z/ALGT9Z/9ZwpB3wEcyTuUgySnQwgwDQOxGCUgAAAFAdyFIBQO4wQbTuVgnckC9gQhBnmXIQCIAMcggkYKQJUhSBIAwuhKFAAAAADjg5AD811aW9xBwrUozT80Ynrex7W44qllP0U3z4exmpMLyNlMtqeFjw+qcniTvHZpTVdD1DTajjWoy4V+slyOseU3lG+a9ClXpunWpqcX1TRiev7KtLlSqWOKNTy7M78XNifSz2/Tfi7Hk1TPGp92sgdhq2kXum1XC4pSST+UlyZ153VvFo3D2eHPjzV7qTuHFvPYhyaI0Zw3IAAkABG/QAAYg0nyZju5tuUtQg6tGKjWxnl3MiRTdhz2xW3Cv6h03DzsU48sNNahYXNlWdOtSksd8HytbqvbTUqNSUGvJm39Q0+1voOFekpZ7mI6tsx5c7KSx+yy8w9Qx5I1d8t6l8H8vhXnJxp3D8Ol7wuqOI3EfSxXfuZDZbr06ssTl6N+swS+0e9tJNVKMvbg/DKE48nFr6DZbiYMvrDj4/xF1Xp/4L79Pdt2jqtjVScLiH1n6Y3VGXSrB/SaZVScekmj6wvbmHya819Jz26XX7SuMP8A+QMkfzKNxqtDtOP1j0tP9uP1molqt+ul1U+sPVL99bqo/wC8Yfwufd2R/wDkDH/8NuSr0Y9asF9J+avqljQTc7iC+k1TO+u5/Krzf0nxlUnP5Um/aZ16VH3ly5vj+0x/x0bGvd26fRyqbdR+ox3Vd3XdwnGhH0Uf4mM4b5JZPvb2VzXklTpTlnyR004eHF6yoOV8T9S534af/wDHyubmvcTc6tSUm/NnGhRq1pqFODk35IybStoXlw1OvinH1mY6ToFjYJOFNSmv1mY5edixRqrd074U5/UL9+f0j/LG9r7UblG5vVjHNQZnNOnGnBQhFRiuiRyS5YKijz8m2ady+q9J6Lx+m44rjj19zABGcy5CMvrBIY5k7lDCUYXUJFAAMdgHcDuGACXInMewBjmM8gwEAAwSAAGza4IBkbQoyTPkWMZSeIpt+pDuhE2iPJnmOZ+y10q/uXilbVHn+yzvbDZOqXDTq8NNes12zUr93Fn6lxsEfjvDFT9elUbid7SlRozk1JPkjYembEs6OJXUvSPyMlsdMsbKKjb0IQx3wcmXl1mNQ85z/i3jUrNccbfoseL3nSc1h8Cyj6t5HqBVRWN7fPuZz78iZ+0AAJVwACQAAAAAAAAAAAAACoYBA1F7pK+9Ho9pYxlh1JcTXsMO8GLTNa4umuiwv4H390PqHvndFK1jLMaMOnreDuPCa19Bt/0rWHUlk9Lmn5HTYj3VPInuyM0XU5E5ZB5KWhQABGZfs+nw2Lnj5TMQM729T9HplLPdZOTlzqull02u8m3YPqcZdDk+pO2CuiXp6+j8t1l0pqPXDNSatCpHUayqJqXG+vtNw+j5+oxHd+3qtzW99WkE3+siz4GeuO2pek6HzceDJNbfdgeOZMHbx0PUZS4VbVM+w7rS9mXNbE7uSpx8u5b35WOsbmXqcvVOPijc2Ydg5RhJ9ItmyrfZmmU+dTim/adlbbf0u3S4LWDfrRyW6njjwq8vxLgr+WNtd7d0W4v76mpU5RpJ5k2ja1tSjRowpRWFFYJRo06SxSgor1I+pV8rkznn/Dy3U+qX51vX0iDA7gHGqUfPkYzuXaltqTlXofmq3V46MycmDbizWxTurp4vLyca/dSWmtU0LULCo41KEnFfrJHXOMlycWseo3pOnCpHhnFSXkzr62gaTWk5Ts6efYWuPqvp+KHqOP8AFGo1kq03h+TOShN9IS+o3BDbmjx5qzh9R9YaLpkOcbOmvoNk9Vp7N0/FGL7Vadp2txUaUKNRv2Hf6FtW+uqsJ1oOlTzzybMp2dtT+RQhH2I+ySXRHPl6pNo1WHByfia969tI0+VnRjb28KMOkI4PsAVNpm07l5a9pvabSvtIAYsXGouKnKPmsGuNSpule1YdMSZskwTdVH0WqzaXKXM7eHb8Wlb1Km6RLqk2R5zkgLJQqF1IAOUuhwqLipyXmjkCazqYkebfES196bsvaeMJzckY2bC8bLT0O5VXS5VIL/M18z6n03J8zjVn/DTMeqMAHcgABMCkAJQAFAH0tq06FeFam2pQkpJnzBFq90alMej174RbihuDaVvVlNOtSSpzXfly/wAjNF0PMHuft0PStwrTa9TFvcvHN9JHp2ElKKknlM+c9X4k8fPPtK842SL0cyMZKVLoUAEpAAAAAAAAAAAAASAAhKAAMUfQkuaORxkTE+qJa73NR9FqtRdm8nr08pb3o8N5Cpj5SPVp7Xp9+7DEuHDGr3AAdzpam3//AFtvv3f3cToTvt//ANbr79393E6E8HzP+xk/Wf8A1sjwdwUnI507MeQAAZIUgBAAlIAAAAApAXuBC9iFyQidhCkEEKB2IgL07k6FIBRkhe2SUhSEIHIEHck2pCgAAAkAAQAAAAAIGUAfkv7O3vaDpXFKM4vzRrzdez6topXNinOl1ce6NmtHGcFOLjJJp9cm7Fmtjlb9M6zn4N47Z9PZoNpxbTXNB9DNd/7cVtN39pD83L5aXYwleRb4ssZI3D6107n4+bhjJRxBWiG3axAAAL2IcugExyyF7DkRp4IRs7HFo5NEa8kSefL51KNKqsVKcZe1HXXWg6bcZ4qEYt91yO1fXmEjZXLeviXHn6dxs/56RLFbnZVjUbdOpKJ+CrsX/h1/rRnOGXy6m+vOzV+6nzfCnTsvr2Nez2Pdfq1Is4f0Jvs/Lh9ZsXGOYwzZHUczjn4K6fP2a9p7Hu2/jVYL6T9dvseKa9LcfUZvhjDwRPUc0/dsx/BvTqTua7Y7Z7T063acsza8zuLaytqEcUqMFj1H6gc1+Rkv5ld8bo/E40f8dIhwS7FKg0allFYjwYBMcx0ZCRhoZ5gk2Pl6xzZX0HQCB9Ac6VGrVko0qcpP1IjcQwtetPW0vn2C9p3ljtfVrtKUbaUU+8j939B9W8omuc9I8y4b9W4lJ1N4YsuoZlP9BtW9Q/oPq3kiPn4/dh/GeH/9wxYhla2Nqv8AZOS2Jqr/AFoIj6inuietcKP64YlkGYR2FqT61YI+0PD+8fyriBH1OP3a7dd4Uf1sJBntPw9q/r3SP0U/D2kscd1J+wxnlUc9/iXg1/qa6CNoUdhadH5dScj9tDZukU2s0eL2mM8yjkv8XcOvj1ajScnyTPvSsrqq8U6M5fQblt9A0qjzjaU/qP20rK1p8oUIL6DVbmx9ocGb40xx+SrTtrtrV7jHDaySfmjubLYd/Uw68400bPUYrokvoOWDVbmXnwqc/wAYcm/pSNMKsdgWNPDr1ZTfc72y25pVqlwW0W13aydu8F5I0WzXt5lSZ+t8zP8AmvL5U6FGksU6UIr1I58yhmuZmVbfNe/radpgMAhq2AAIAByAAAAACQAQAAAACr1EYAoQQA41ZKFKc32TZyOs3Vdqx2/eXLeOGlLH1GeKvdeKotOo28weId5LUt53tXPEvSuC+hm4Nn2ytdvWlPGHwZZpHToy1LckM83WrZf0s9AWdNUrWlTSxwxS/gXvXLdmKmOFLad2mX1RSA8uxUEKwOVKPFVjFd2bDsYejtacfKJguk0/S6hSjjPxjPoLEUiu5k+sQuul11Ey5esYJ3KjiXsSFIzhUqwpwc5yUYrq2ZREz4JnT6pRTzhFPw09QpVI8dF+lj5xZJ3tX9WkzKcd/u30w5MkbfvD8jrHe3H/AAie/bj9gfKsz+iu7QZOqd5cPtg+Uq1w3niZlGKWUcG33l3YydF6Sv8AtyKq1wv12T8mU/QT7u8TKdDK4uf22cqd5cQeXLPtI+TLGeBbXl3gOrhqT/WgfalqNKTSeUYTjmHPfi5K/Z+8nQ4qXEso63cOt6fomnVLy/uIU4QWcN82ZY8N8lorWPWXJe8Uj1dpldMhHmXVPGXVdQ3pbx0+o6NhGqo8P7SyekNKuffmn0Llf7yCl9aO7n9KzcKtbZPu0YOTXNM9v2fq+gAFU6EBeqHYCGK72o/Hp1sdsGVHS7vo+k0xz/YeTfx7avDm5de7FLCCFIXDzMqQpAhR2IUDVXjxaZtrW7S6ScWzT8upv/xitPfG06k0sunJP+KNAyPovw/k7+LEezXfyhAC9hgpACYgAUhKApABSAokfawuatpdU7ilJxnCWU0ewPDDcNPcO1rW5Uk6sYqNRes8cm2Pc87p/JmuPSripijc/Jy+Sl/pFF1zh/Ow90eYdnEy9ttPTSxgHGLylg5nz+Y1K4/yAj6hEslA7gAAAAAAAAAACEgAAAACd8kfMqDQYsa3tR4rWnVS+S8Hpw857kpel0qpy6cz0Yer6NfuxTHs54rq9pAAXLNqbxA/rbffu/u4nQ88nfeIH9bb39393E6HJ4Pmf9jJ+s/+tkeFJgdB1OcACBMKQpCUgAQFIAAxhl5gdyEBACUnryAUgOowAEABAKOZChKB9CodwgwEFyCJSjyXmGAaUAAAAAAAAAAAAAAAAmCgD4XtvTubedCpFOM1hmmty6bLTNUqUcfEzmL9Rut9DDPErTFX09XkI/Hpvn7Dq4mXttqXq/hfqM8bkfKtPpLWj6HH2nIjSbLd9VidpjyD5ci4Jlkslj16FImXqiEHYJnF5LElOlHtBxzz5EIH16lXUnVo5YAAAIEB3HmEmSZGGAnQQoCUDKTuA5AdwAZCkAMiXMp2O3bF6hqlKhjk3zMbT2xtpz5ow45vb7O32ltWtqklXr/EoJ+XU2Ppmh6bp8FGhbQ4l+s1zP1afbU7W1hRpxSUV2P0lRlz2vL5H1brvI5eSYrbVUSxySWBz8ig59qCb2nzKDBQDulMBoZCYO6QYAyEbkwMDJQbAQZCFIQqAAEAB9AwBEXtzIMhAMAcwAAAAAAAAAwEXGCQBEUSAXQMACYKCAAAAwLxy1H3jsurBSxKtJRX1oz00l7o/Us1LPToy6fHkv8AXsLDpmL5nIq057dtJYH4Y2fvrctKTWVTXEzdsehrXwbssRuLxr+yn9ZspGfXM3fyNeyoUAFKAAQHc7Upek1HjxyijMkY3syj+bq1cdXgyQqeTbd3o+BTtxBSMZNPosYlXg1z487hnom05U7eo4Vq74U0+eDYpoD3U9xP01nQT+Lwt/yLnoXHrn5la28OPnZZx4ZmE9zx4h06ervRNcrOVK4lilKT+Sz0/V29SrQU6CeHzTx1P51WdxVtbqFxRm41KclKLT7nrjwB8e7G8s7fQtzVY0a8EowrS6S9p7rqfQ8V576Qq+B1W9Y7LS2jU2xd5/NrJ8ntjUf+GjYdjd2l5QjXtq0KtOSynF5yfowsHn56RjiVzHPvPiWs3tfUl/u0VbY1F9aSNmOK5DCXNkfwnEfX5GtVtHUZLOIosdnah3cUbJXsLgzjpGFP1+Vrqnsq8l8upFH2jsaq+tZfUZ+GZx0rDDH6/N7sDp7F5/HrI+lbZ1jaUZ3FxVSp04uUm+RmN7d29nbyr3NaFKnFZcpPGDy57ozxzoSo1tu7br8Wcxq1Yv8AkdGDo+LJbUVaM3U8lK+ssV8R/GW80rcV7p2ixpTt6U3GE+vLJp3d29Nd3NVb1G8lOHaCfI6C4rVK9aVWpJylJ5bZ8u56ji9K43H1Na+rzebl5MszuX6NMm6d9Sn3U0e2fDevOvs/T6k+rpL+SPFGk0nV1KhTXPiqRX8T3Bse3967XsKOMcNGP8jzHxlNYx1j7rLpG527oo7A+dL07AYAEPyavS9Np1aHnE/WSceKDj5oyrOp2xvG6zDWE1wzlHyZD9OqUvRX9WHlI/MXdZ3G3lcldWmEBSZMmGlBA+gQ6feNt7827eUcZ/Ntr6EeZ68eCrOD6xbR6qu4Kra1ab/Wg1/A8x7lt3a63d0WsYqy/mz2fwxl/DajDJDrQQHr2sKCAAUhIApCUAKCQP0abdVLK+o3NKTjOnNSTR+YphesWrMSmJ1O3sjwz3DT3Fta1vFNOqoqNRZ55SMpTPMvufN1vStd/JdzUxb3PKOX0l/pnpmDUkmnyfQ+cdV4k8fNPtK94+WL0clgBAq29QyIpKQAAAAAAAAABIAAAAI0AAJRp+e+p+ktakP2lg38aHksxN8Ho+gz6Xj9P9tdo0AA9Axam3//AFuvl/8Ab+7idCd94gP/AOLr79393E6Fng+Z/wBjJ+s/+tkeD6B2KQ50wAMAQFIwlSBgkUnYAAMFAAcwCEIVgPITtCkAFCRCsIGBzHYCIcy8/UPaSaCFQApO47FQSAAAAAAAAAAAAAAAAAAAfj1W2V1YVqD5qUWj9hxkuRMTqdtuHJOPJFo+zRN/Rdve1aLXOMmj4evB3+/LX3vr1XCwpc0dAi9xW7qxL7fwM3zuPW/vCSHPBWEZu1xw/IY5HJk7vmBMhMdBglKpsmC9FgjzghCtPOeRe3UjYXTkBehH1yXvgYRImF0IysmCAyVeo4nLKwEjBMjITCkKABAPaAyyFQCEZmnhhaqpqE67WeBcjCzZPhZRxY1amObkc/KnVFB8SZpxcG2vuzhdCkXQpTPjsyAEyEKQMgBgACggAAACggAAACkAAAAAyFGAIXmMAD9FtazuKNScVygss/M/IyvY1rG4oXUZLKccGOajQlbXtWhJYcZYN1sXbSLEvzgA0oCogBEqACUi680GAQgCAAAAAAADeE35HmLxp1H8ob3uIxlmNJ8CPSmq3EbXTa9eTwoQbPJV7Vnqu6alTPE6tx/mX/Q6am2Sfs4uZbVdNt+HFl7z23RTWJVPjP6TJ0fk0qirewoUVy4IJfwP1lFysnzM1rK9QAcwEZTlSjx1YQXdkTOoZVjc6Zrtmj6LTIPvLmdofKxpqlaU4LtFH3KW9t2mXqsFe2kQ4smDlghDcPoaD91Pbyas6+OWGs/Ub8Zqj3Senu52b75UcujL+Bd/D+T5fNpMuLn17sEvLb7inKdOanCTjJdGg+pGfXvLyLZXh34x7s2jUhClezuLaL50qjysHovYnuk9A1SEKOr0naVn1fbJ4qXUsW1zTaOTNwceV04uVfG/pVo/iBtbVIRlbarQ59nPB3tLVtOqpOF5Qkn5TR/MWz1fUbRp0LqrDHTEmd7aeIO6bZJU9TrJL+0yut0q39MuyvUY+8P6SRvbV9Lim/7yDvbVLLuKS/vo/nZDxW3hCOFqdb/Ez5V/FHeNVYerV0vVNmEdNy+7Z/EKP6F3+4dGsqbnc6jbwS65mjV+/vH7a234VKdnP35XXJcL5HivUd27gvk/fGp3E89nNnS1K1WrJyqTlJvu2dGPpmp3aWjJ1CZ/LDavif427m3fKpQhcStbR5SpweORqerOdSblOTlJ822TmXBZ48VMcarDgvktedy4oNeRcFUW3hG2ZY1ibTqGSeGmnu+3VaQ4cqNRNntTTaapWNGmlhKKR5l8D9ElHUKN1Uh8aclj2HqCmsU4ryR8w+LOT83PFY+z2/H4H0nFrNo9bOYZC5PIJCAoEDQAGC7to+i1OUscpczqDKN8Uf8AZVV7GYtkuePbupDznLp25ZQqXLIBvcmwMEBMpLmjz34r2nvXddflhTXEehexpnx2tOHU7e5S5Shhv6j0Hw7l7OR2+7C/hrEpCn0BqACEgACUABRsCApKEBSESl97G4qWl1TuKUnGdOSlFrzR6/8AC3cNPcG1ba6U1KrCKhUXrR46Nse553T+S9delXFTFC5fxcvkpFF1vh/Pw90eYdfEy9ltPTSeSnCEspNdGczwMxqVzCFIUhOgAEgAAAAAAAAAAAAAAAJR9De5ok3seh6B/c/b/bXcAB6Jg1N4gf1tvf3f3cTocHfb/wD63X37v7uJ0J4Pmf8AYyfrP/rZAhyAOcGQpAyUgYJAuARACkKAQIUiUSD1AAPYQBgUYCHPAE6suAAIUAEHMIIEpO4RQBGOYKAAAAAAAAAAAAAAAAAHYAARlI+gGt/FOhw3tGsu8cGErobI8U6PFYUauPkywa3RccSd432D4ay/M4Nf8AAOp6AbWSNlI1yISj5jsF05h9AkTwQFXrAhVnJyjHLwllsy/aXh/rWv8NSnRdKk/wBaSwTrbm5HLxcevdknTD17S5N42HglD0SdzeNy9R8tT8E5Km5Wl3mS7My7LKePiXgzbXc0k2OiMp3RsbWtCk5V7eU6a/WismKyTTaeUYeFzx+Ti5Fe7HO0Ayc6VOdWahCLlJvCSQb7WisblwLhvBsPZXhhqutqFe5Tt6D55kubNp6R4R7etYR98U3WmurZnWky8/zfiTicWe3e5eaWmuqZM8z05q/hPt26oONCh6GeOTiaW8Qdi322a8p8LqWzfKSXQTSYZdP+IeNzLdkTqWHE+ki8gYL9e4CAENq+G0OHRXLzkaqNt+Hi/wD8FH2nJzJ/A8p8XW1w9f5ZKikKypfKDJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzfw3SdGv7T8fiBpjpXKvaa+LPlLHmfbw3qYnXp59ZlurWdO+sqlCazlcvaXWLFGXjaS1AD9Wp2dSxvJ0KsWsPl60fm9hT2rNZ1LFBgoITo5hgoSiAAQAAhAAABQgwMS8WNQ/J2y72opYlOPCjzx4e2jvdzUcrKi+Jm1/dG6iqWj21hGXOpLia+swnwasnK7r3kl8lYR6Xjf8AB0+1/dWcq276bUikkUuAkeUmdztyqgAQB+3Q6PptSpRx0eT8R3uzaPFeTqNfJRrzW1SXRxa92SIZfFYil5FAKbb1MRqAADaXExrxL0z8q7N1C1Uct024+3DMmZ860I1Kcqc1mMlhnTxcvystbx9pa8lO+k1eDL6i6F3VpNYcZNHyMw8W9Enom8byi4cMJzcocuqZh7R9q4mWM2Gt4+7xeWk0vMSmeZSdBk6NNakYY6jQZ5DqOwJ0KB3BiAASbY3pMRMzqDqZNs7b9TULiNarFqlF8/WcNq7dr6jWjOpBxpJ5bZtTTbKjZW8aVKKSSKbqPUIpXsp5e++F/hm+e8Z88arDLvDDT4rUYKEEo012NtroYT4ZWXo7SdzJfL6GbHyzqeacmeVp1vJFs/bXxAACuUykAAAADpt3UfS6ZKSXOHMwbBsjVafpbCrDrmLNcTTjJxfZlnw7fh0pOpV1eLImCLqXsdsKoIUhEp8jNdeN1l6XQYXKXOlI2KzG/Ea0V3tK9hjLjByX1Fh0zL8vk1lFvWHnAFmsSa8mQ+oRO420gIDJCkBQIAAAAQAFITAH6dOuqlle0rmjJxnTkmmj85DC9YtGpTE6eyfDPcFPcW1ra8U06qio1F5MylPoeavc7boena5LSLipihcfJy+kj0pHDPnXVeLPHzzH2ld8fJ30cvWUnYFW6YUERSQAAAAAAAAAAAAAAAAN7GiTex6HoH9z9v8AbC4AD0TBqbf/APW6+/d/dxOhO+8QP63Xv7v7uJ0OTwfM/wCxk/Wf/Wz7HVDsAznIO45AdQyAQLqSGewBUBCgEEoUncoQAIAPaMD2gGwpA+oQYA9QAiZQF1JScwshDuQKACWQAAgAAAAAAAAAAAAAAAAAAAABLF/Eelx6BKX7Ms/zNUdzcu86fpNv3K8o5NNPlJlpwZ/DL6f8HZO7izX2kAB2vYHRAACPn0D7MvfqO2Alx9hOpX6jlRjxVYx82kCZ1G2yPBvZf5dv1e3dNu2pvOH3PRtjZ29nbxoW9KMIRWEkjF/CbTadhtG04IpSnBSb9qMwOrHXUPj/AF3qOTlcm0b9IUEBsUT82o2NtfUJUbijCcZLDysmgPF/w9elVJ6nptN+gbzKKXQ9EH4ta06hqdhUta8VKM4tczXekSt+k9Uy8HLExPo8Y21vWubiNGlBynJ4SRvnwq8NaNrRp6hq1JTqtZjBrodptHwutNJ1ypf15KquJunFrpzNl0oRhBRikkvI10x68r7rfxJOevy8E6hKFCnRpqFOCjFdEkfQFN7xVrTadyh027dGttZ0ita16alxReOR3JJc1gTG4bMGW2K8WrPrDxrurSqmj61cWdRNcE3j2HVmz/dB6fC23FTuIJL0keeDV6ZxzGp0+1dL5P1PFrefZV1AZCFgG2/Dz/5DHn3NSG2fDqWdDXtOPm/keT+Lo/8A4/3ZOACqfKQAAAAAAAAAAAAAAAAAAVJvoskP36BKn+UqcKqThN8Lyfv3RodTTq/paScqEuj8jbXDa1e6EuhABqQAAAAAO+2Rde99ZhFvCnyNlGnLStK3uqdaLw4yyba0y5heWNKvB54o8y66Zl3E1JdVurRIalburTSVeK5es1xcUqlvWlSqRcZReGmblMf3Rt+lqFN16KUa6XbuZ8zh9/4q+RrcH1u7ata1pUq0HGS8z5IpJiazqSZAAQaAAQgAAAAICoMHyu6ipUJ1G8KMWyaxudE+Hnf3QGoe+t2RtoyzGjDGPqO+8KrP3vt6NVrEqrya43ldy1XeN1Uy5cVZxX0cjc+27WNpo1tRSxwwR6Lqlvk8OmP3UuSd3mXZdgQHlWClRxKBX0Mt2ZR4bSVRrnJmIrm8Gfbfpei0yksc2snJy7arpZdNpvJt2ACBWPQAAJgRkkjkRmUDTfuitoy1TS46xa081rdfHwuq/wBM80yTi2muaPed5bUru1qW1aClCpFxaZ5P8ZNi3e29crXFvQlKxqyzCSXJeo+g/C/VqzX5F5/RQdV4vr8yrXeDjLqcu3MPDPcRKiceY6BoEgXsTCKk+2WRMwmImfATJ+y0068upJUqE3n1GTaRsi6rNTuZejj5HNl5WLFHrK24XROZzJ1SksTtrercVFClByk/JGbbZ2fKTjXvVhdVEyrR9AsdPglClFy/aaO4hFJckUfK6pa/4aPo3RfgzHx5jJyPWfZ87O1pW9NU6UFGK8kfttKTrXMKUVlyeD4rqZV4e6a7vU1WnHMIHn+Vm7KTaXsuTkpxcEzHpENi7etFaaXRpYw1HmdicYLhSiuiOR4nJbutMvl+fJOXJNp+4ADBqAAAAAHGrHipyj5o1xqtJ0tQrQ8pM2SYLu6j6LU3LtJZO3h21bSt6jTdNumGQCyUWjIADPSc3yPy6pRVxYV6DXKcGj9XUjWVhmeK3beJYz5eV9WpOhqVxSaxw1Gj8vYyPxGtPee7LyCWE55X1GOn1bi5O/DW3+HPPlMjIB0hkZHYeogGEBzCFIASAHQDYoIUeR+vSL2rp+o0LujJxnSmpJr2nsbYWt09e21aX0JJylBKftxzPFxu73Nm5/RXdXQrip8WfxqeX3KDrvE+bh748w7OHk7bal6EXNDuSL5F5Hg9LiApEUlIAAAAAAAAAAAAAAAAb2NEm9j0PQP7n7f7YXAAeiYNTeIH9br79393E6FI77f/APW6+/d/dxOhPCcz/sZP1n/1t+wADmQMEZewZICjuSBCgCLkVkKQhC8yFCT6Qh7AEAQCB9hhZHUPkD7DIupeeRz7kmh9QPYUJQMZHQCoAAAAAAAAAAAAAAAAAAAAAAAAAdwOu3FHj0a6j/8ATZpOqsVZLyZvPVY8en14ecGaPu48N1UT7SLHgz5fRPgu/wCC9XyABYPeGAAAAAA50Hw14SfaSZwD8wi0biYet/DS5hc7RsZQecU0v4GTGo/c+65G40mWnTmuOl0XqNuLmdlJ3D4v1fjzg5V6z7gAM1YAAgAAAABIB9Afm1G5p2tnUr1JYjCLbMZZ0r3TEQ8/+6KuoVdco0otNxjzNUJmSeIurvWNzXNwpcUFJxiY3jByWncvtHR8E4OJSk+yoFJ5mK0R+ZtPwynxaM15SNVvqbL8LJ5sKsPKRy8yP+N5j4rpvgzLNgVdCFQ+SAACAAAAAAAAAAAAAAAAHOjN060JrrF5NqWDoatolNVUpRnDD9pqf2Gb+Huo5UrGcunOOTv4GSIt2z4lLoNy6LW0u5fJulJ5jI6c3FqNnRv7WVCtFNNdfI1luDR6+l3TUk3Sb+LInmcScc91fCJdWgAivAAATDMz2Dqyi3YVpYT+Rkw5H0t6s6FWNWnLEovKaN2DL8q/cabjKdJtnWqWo20YTklXisNeZ3Z6XHkrkruDw6rXNEtdTpPiio1O0u5r/WdEu9OqNTg5Q7SSNq9z53FGlXpuFWEZRfZo5+Rw65fWPKWmugM61vaFOrxVbJ8MuvC+hiF/p13ZTcK9GUfXjkUuXjXx+YQ/IADmQAACkBWAOj3ze+8dsX1xnDjSlj6ju0a78eNQVns6pS4sSrSUUjp4eP5matWGS2qy0VtWhLUt1UsrPFVcn9ZvqlHggkuiWEah8HrR1tYqXDXKnHkbgXQ7uu5N5YpH2U2wME7FEL3GSAD7WsPSXNOCXWSNjW0PR0IQ8lgwXb1L0uqUljKTyZ8VvMt6xC76ZT8MyAq5EOJbAZQBAXsMExI4n4Nd0ix1rT52V/QjVpyWMNdDsWiNGzHltjtFqzqWNqxaNS81eIfgzd2Fepd6RLjt22+DHNGuLjZ+rUpNei5o9tVIRqQcZxUovs0YbunZlC7UriyioVOvDjkz13T/AIpy1iKZE8TpXBzX1m9NvJ0ttasnj0DOVPbGrTf+wwbr1LSrmxrOFxQcWu+D8fBHyR6GvW73jcPQ4vgfg5PxVvuGsbLZN/UadaUYIybStm2FulKsvSy9ZlSS8gacvUc2T7rvh/CnA43rFdy+FrZ21tBRo0oxS8kfcuBg4bWm3l6HHhx4o1SNKixIj9FnbVrutGjQg5Sfka7Wisblle8UjclpQqXNeNGnFuUnjkbf2jpMdM02MWvzkllnWbN2vCwhG5uY8VZro+xl6SS5Hmupc35k9lPDwvXOrRnn5WPwiKAUzzIAAAAAAAAYtvihypVl7DKTqN10fS6XN4y4vJvwW7ckOflV7sUwwMAjLh5qfSVBEUMk7gPqQI00n45WXodco3KXKrDn7cs10bm8drP0ml210l/s54f8TTB9K6Jl+Zxaue/lQQpcMUABAAAAAyhCMpH0AADoCQO22nqtXRdetdQpSadKom/Zk6oI15aRes1llWdTt7f25qFPVNItr2lLMatNPqdkab9zduT37o9XSK9TNS35wTfb/TNyRZ815/HnBmtVfYb99IlyQAONtAAAAAAAAAAAAAAAADexok3seh6D/c/b/bC4AD0TBqbxA/rde/u/u4nQnfeIH9bb79393E6E8HzP+xk/Wf8A1sjwYA6jsc6fAGMAGwEKAAABhEKAKQEIQoDJSnmXHIdxkHqYGOQyMhKPzL2J2HMIC9yZ5jq8kkSqDCGAlQQoAAAAAAAAAAAAAAAAAAAAAAJ7ShoD53Ec0ZrzizR+sR4NSrx8ps3fdVI07ec5PEYxbZpDWKqralXqR6OTwWHB8y978FxbuvP2fkXQBMFi+hgAySABUQIwUn0AZN4ca9U0LcVGvxtUpSUZr1HqzSL2lfWVK5pSUozinyPFqeGmuqN7eBO8FWoLSLur8ePyM+RuxW1Oni/irpXzafPpHrHlucBPKygdD5wAAEQAAbNQAAJGav8AHLdUNM0aWn0Ki9PWWOT5pGcbq1m20XSqt3Xmo8MXhebPKW9NeuNf1mrd1pNxcnwrPRGq99Q9R8NdJnk5oy2j8MOlnJzm5N828sgS5lOeX1SKxEagIHyQZCUfU2B4VVedama/My8L6vDqU6eeqNHKj/jlR/EWPv4N2z10AQKV8ZkAAQAAAAAAAAAAAAAAAAM/XpF3KyvqVeL6NZ9h+QGVbTWdwluOyuIXVrTr02mpJM4ahZUL62lRrwUk1yfkYfsTWfRz94V5fFk/iMzo9JgyVz4/VEtW7h0K40yvJqLlRzykdOblurelc0nSrQUoPqmYNuPatWhKVxZLjp9XHuis5XBmv4qDEwcpxlTk4zi4yXZkKyYmPIiKgggPta3Fa1rKrQm4yXkZzoG6qFxGNG8ap1OnF2ZgCH0nRg5NsU+iZblpVadVKVOcZJ+TOftNT6drN/YteirS4fJvkd/ab0qxilcUVL1rkW2PqFLR+JDOWz43NrQuIOFWnGafmjG6e9LJr49KaZze87BLlTmbp5WG0esjjqe0LavmdtL0UvLsY1f7Z1K1bxSdSK7xMgqb2tl8i3k/pPw3W9bqaao0YxXr5nDm+mt6wMYrW1ej/taU4+1HxOx1HWby+i1WkseSR1xWXiu/wmlwOYHYwB9DR3ukb9SqWlipdMya+o3g3hHmPxtvvfu9q1JSyqeIIuOi4+7P3ezl5VtUZD4O2XotIq3LXOpLkZ7FHR7GtPee3raGMNxyzvexX9RyfM5FpVcAY7EOGEgwEX1AZDsujxXNSq18lGXHQ7No8FlKo18pnfIp+Rbd5el4NO3FCsAdzQ7AAAAUqCJcQyvqMEITqgUDY/DqGm2l9ScK9GMs98GF61sXLlUsZ/3WbBYwjrwczJhn0lYcXqWfjT+GWj77RtQs5tVbeeF3SPwShOLxKLX0G+61vRqrFWnGS9aOsuduaTXeZWsM+pFtj6xH9UPRYPiaNayQ0tzycoU6lR4hCTfqRt1bQ0fiz6A/dZ6Fplq06VrBNd2jZbrNNekOjJ8TYYj8MNY6LtbUdQnFum6dN9WzY23duWmlU01FTq95NHdwhGCxFJL1HIquT1DJm9Ps89zus5+V6b1CJFAK9Tb2AAgAAAAAAAAD8+o0lWs6tN94s/QSSysGVZ1O2N43WYavrRcKs4NdJNHBn79eo+g1OrHGMvJ+Eu6TusS8xlpq0wEyGyGTEAIBi/ijZq72ldLGXCPEvrPO56j16grnR7qi1nips8w3tJ0LqpSaw4yaPcfDOXeK1PZoyQ+IDB6lrAEAAAYAAAAh7R6ggCAAdwO4JGXeFGvT0Hd9pX42qU58NT2Hr+1rRrUYVYNOMllM8K0ZunUjUi8OLyj1r4La+tb2ZbOc+KvRXBPn5JHk/iLi7iMsLHg5P6ZZ4gSIPILXyoAJQAAAAAAAAAAAAABvY0Sb2PQ9B/uft/thcAB6Jg1Nv/8Arde/u/u4nQnfb/8A63X37v7uJ0R4Pmf9jJ+s/wDrdWPQAJ2OYmBjAHtJRowAhzCE9hWgGgnaAoJShQEQiTqAASPHcDuAmJA1yACJRgDsSIXkCpAUABIAAAAAAAAAAAAAAAAAAAAAAACkLjkcZPCIhNY36MZ8QdT95aRKlGWKlXkvYank8vLMk8QdRd7rUqUZZhS5IxoueLj7KPrvw3wvpuJEz5kSLyBEjqeiXqOZH0KDQDi2zkiEgGTjkA2fu0PUq+l6jSu6E3GUJZ5H4cEJY5MdclZrbxL1l4cbsttw6TTkqkfTxWJxMvXQ8fbM3Jebe1KFehUahlcUc9T05sjdNluHToVaVSKq4XFHPPJ04779Hyvr3RL8TJOSkfhlkqQQTKbHmdpgFIEb2dUfnvrqlaW069aSjGKy2z6V6sKVNzqSUYpZbZonxm8QHXlPSdNq/E6TkmY2tqFp0zp2TnZopWPRjvi9vaprmozs7ao1bU3jk+prn1lnJzk5SeW+oOWZ3L69weHTiYox0gYTIA7VkQcgAMk8Pavo9dprPyuRjR2206vodboSz+sas0bpKv6pTv4t6/4bri+SKcKTzTi/NHMoZfD7xq0wAAMAAAAAAAAAAAAAAAABAAJcqNSVOopwbUk8po2RtHXIahbKhVklWiu/c1qfayuatpXjWpScZRZ1cXkTht/hDcga5YaOi21r9DUqEadWShXXVPud6eix5K5K7hDptZ29Y6hFycVTqftRRhurbYv7NuVODq013ibLDSfJrJz5uFTInbTE6c6b4ZxcWuzRx9Rtm/0ewvE/TUI5fdIx++2XSlmVrWcfUysydOyV8DBskMhutqanRb4YKovUdbV0m+pvErep9RyWwZK+YNPwFwfeVrcR+VSmv7pFbVm+VOf+E19lvY0+A7H7Fp1xwcUoOMfN8j89VQg+GL4n5iazHlOnzAYMQAAQZL1IAPhqFVUbKtVb5Qg3/A8n6tVer76qS+V6S5/hxHpfxCvfeG0b6tnD9G0vpPN3h1bu93dTqSWeFuTPQ9Jj5eC+RX8y3iG7bGmqVnSppYUYJfwPvki6Y8gzzd57rTMuIbABiBUm2Q+9lD0tzThjq8GNp1G2dI3Omd6FR9DptKOMPhyfvR87eChRhHyWD6FJed2mXqsVe2kQAFMGwAGQhQGCNoO4AGwAAEwMFAAYAAERQQAAAAAAAAAAAAAAAAAYAGGb0ouF5GslykjH+xmu87f0mnqolzgzCWW/Gt3Uee5te3IjBckOhyBGUjCXGrHipyi+6aPN2/LT3nui8pYwvSNr6z0n2NG+NVi6G4lcqOI1Y/xPS/DebtzzT3asnhgDBSHvGkAKBAAAAYADuGAgC6DI9YD1gdxkkDb/ALm3cCstwVdKrVMU7iPxU33WTUB2W2tRqaVrdrfUpOLp1Itv1Z5nHzsEZsFqtuG/ZeJe34M5nWbd1CGp6Pa3tNqUatOMvpwdmj5pkpNLzWV9WdwAAwZgACAAAAB9IAAdQCLgIEImUN7Gimb1PRdA/uft/tjYAB6Jg1Nv/wDrdffu/u4nRHe7/wD63Xv7v7uJ0R4Pmf8AYyfrP/rfHhGCk7HMjZ2ABKJ9TuMgIJ+wCFCAdiAJ0vciGeYJArIXsAQIUg0nPqy/xJyKDYMAYBKY5DLyGUkUAgFAASAAIAAAAAAAAAAAAAAAAAAAPw61cq00yvXbxwwePqP3c8GJ+Jd5730P0KeJVZYM8Ve68Q7+mYPn8mlP8tX3NWVe5qVW+cpN/wATgyRKy+rGofbcVIpSKwLoAugMmwZHz5Ir6Gd+EO0luLV1UuIt21J/G8mxEblzczlU4uKcl/EMd0Ta+s6u17zs6ko/tYeDvq3hduinS9J71T74TPS+laVZadbxo29CEIxWOSP3cEenCvqN8YXgc/xfnm//ABx6PGWraLqWl1HC9tKlLHdx5HX458kexdybc03WLKpRubaEnJdcczy74gbfnt3Xqtrh+jbzBvyNd8fa9J0Xr9efPZaNWY6GgDU9GmDutrbjv9Av4V7WrJJPnHPJnTEabJidNebDTNWa3jcPUOwfEPTddoU6VarGlcYw4t9WZ7TnGcU4tNHiizuri0rRq29SdOa5ppmzNleLN/pqhb6lmtTXLi7m6uX3eB6r8K2iZvx/Hs9GnzrVIUqcqk5JRSy2zBrDxQ27cWyqTuo03jmma/8AEvxS9+0J2OjyajLlKaNk5IiHn+L0LlZssUmun7/F/wARowhU0rSquZPKnOLNHV6k61SVSpJuUnltitVqVqjqVJOUnzbbOBz2tuX1DpnTMXBxRWseqdioJEMVoPqfv03R9Q1GXDaW1Sp7ImUeGWzK2475VKsWraD+M/M9GaBtrTdKtYUre2ppxXXHMzrSbPM9X+IsfCnsr6y8r3u1ddtKfpK2n1lHz4WdNOE4ScZxaa6pntS4061rU3CdCEk+ziaj8XvDy3laVNT0ykoVILMoxXUytj1G4cXTfiuufJGPLGttCn6NMqeivqU/KR8KkZQm4yWGn0EG4zTXZmm3rGnrcsRkxzHvDe+nTU7KlPzij9J1O1a3p9GoSzn4p2yKC8atMPh3Ox/Lz2r/AJAAYuQAAAAAAAAAAAAAAAAAAAjKAOdCrUo1FUpzcZJ8mjMdA3dhRo365dFMwsdjfh5F8U7gbktLu3uqanQqxmn5M+xp6zv7q0mpUa04Y7ZMgsN5XlGKjXpxqpdy2xdRrP5jTYIMUob1tJL87RnF+o+z3lp2M8M/4HTHMxT9zTJeZHCL+VFMxWrva1S/N0JS9p1t3vS6nlUKUYeswvzcMGmbVqFok5VadLHm0jotW1vR7FONKnSqVF0UUjCr7Wb+7f524ljyTwdfJuTy22zgzc6J/LCXZatq9xfzabUKfaMTrAgVtrzadybAAYoAAAAD6Aa18f8AUPe20lbqWHWng1p4LWnFe3F01nhWE/rO+90fqHHe2lipcoR4mvrHg9a+h0GVZrnUkz0c/wDD039VTybbuzkBA8u0AAAI7TbdL0uq0vKLydWupkWyqPFczq/srBpz27aS6OLTuyxDL0sIFSGCm29REeiFQwVCZJRFAMUAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAfk1ij6fTqtPzia3qLhm15M2jNcUWvNGudZo+g1GtDH6xYcK3mFR1PH4s/GyAHeqwhRgCGsPHW049PtrtL5MsP+BtDhMS8VrH33tOvhZdP431Fl0nL8vlVlheNw89gNYbRD6dE7hzqQMEgAxzAAAAAEEBC8iEi/SAQCoq5E5ggh6a9znrvv/bE9PqTzUtpclntzNsrojyp4A649L3pRtpzxSufiSy+Wco9U05KSTXdHz7rfH+TyJmPErviX7qOYAKd1AAAFICESpB3ADkUhQAAIQPob1NFPob1PR9A/uft/tjYAB6Ji1Nv/wDrde/u/u4nRHe7/wD63Xv7v7uJ0R4Pmf8AYyfrP/rfHhAUHMIx2A7Eo0EKR9AaAC9wgIUiJScggMAUDmEQBOpe4CEKh3ATMHcMPqASAMj6hCjuTmCRyBEEEqAQCgAAAAAAAAAAAAAAAAACPoaz8U7z0mo07VPlCOTZc3wxcs9EaX3fcu73Bc1M5Slwr6zr4dd329Z8Jcf5nL75+zqVyL2LjkOxbvqiIFIAZ6J9zxb0obZnVilxym8/xPOz6G5fc9bipUJ1NJrzUXJ5hlmzFP4nnfifDfJwp7Ps3wkcksI4xaaTXM5ZwjrfKJST5GhvdHW9FXNrVSXpOj/ib0uK0KVOU5ySills8zeNe4Ker7hdGhPip0XjKNWWY09L8L4b35cWr4hr/IIvaU5H1QAADkuRMrmWXsOPUJVSa7sjfmQA7YAAEhaMeOrGK7vBGc7aXBXhLyaZLDJvtnT1R4UaTS07bNsoQSlOKk2ZslgxPw21Cje7btZUpp4gk8GWRZ2U1p8U6lN55F+7ztWj8mqUIXFlVpTSalFrmfryfC+qRpW1ScmklFsmXHh3F408hb/sY6fui8t4rEVN4X0nQGT+Jl3TvN33tWm8x42k/pZjBxT5fbeBNrcavd502r4b3HptH4G+cDLEa78KrjEq1Bv1o2IuhScmuskvk/xFg+Vzbf5AB3NCiAAAAAAAAAAAAASMIE7BCsIj8hgCsBh9ADDHYdgHcDuAAACQuSAIGAF7QAAAAAAAwAOMnhNnJn59SqqhZVqreOCDZlSN2iEWnUPMXjHfu/3tcxUsxpy4UbK2Fbe9dsWkMYbgm/qNM6jOWpbvqSfN1Lj/ADN96bSVCwo0V+rBI9B1mfl8emOFJed2l+gAHmAAABGY7KpcNnOo/wBaRh6M+21S9FpdNY5vmcfMnVNO/p1N5Nu0xyABVL8AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsBWQvVkAGFb0ocF8quOU0ZqY9vahx2cKqXyWdHFtq7k5tO7FLDcEwUFu8+ABAD8Ou2yu9JuaDWeOm1/A/cySWYtPubMV5peLInw8ranQdvqFei1hwqNfxPzGTeJdi7LdVzHhxGb4l9JjB9V4mT5mKtnLPkAB0AAEAwB7CgQAAMAdxglCZAAAvche4H7NHvJ2Gp295TbUqU1JM9pbU1CGpaBZ3sHxKpSTPER6b9zlrf5Q2tKxqTzO1eEvV/pnmviLj92KLx9nfwr6t2tsIERTxS1AAEiHYAGgpO4IRKgAhAAGEJ0N7GiWvWb2PR9A/uft/ssAA9Ewam3/AP1uvf3f3cTojvd//wBbr39393E6I8HzP+xk/Wf/AFvjwAA5kp3BSdCUHqA9gABsAIQFHTsAGR9ABo6ohRjuEeAjKOYSYA7AGhFPvZWNxeSkqEOJxXNHG5tri3k41aUov1oz+XbW9GnxI+pGO5ihc8g8YIAOTITIyDblkI4plyDa5KccgG3IELkhIACQAI2BQTIyDagmWMg2qBMjIH5NYrKhpteq3jEGaPrTdWvOo+snk2v4hXbt9BqRT51Hg1MuRZ8Kuq7fSfg3B24bZPdQAWD26MhWCBD9Gm3lxp95C6tqkqdSDymj44JgMb0i8dtvDdO1PGP0NtChqdFylFY4l3MhreMWiRptxpzb8jzo0TBsjLZ57L8McPJfu02jvXxYvNUt52unwlRhLk5Z5msKs51qkqlSTlKTy2yJdymFrTPlbcLp+Dh17cUIADF2gAAPPYjXLkU49CUoCvJCEgAAPmO4AGd+Gu+7jbVwqNZyqWsnzWehvfQt+6DqVGMoXlOEmujeDyb3OdOpOm8wm0/UbK5Jh5vqXw5g5lu+PSXsO53To1Cm5zvqOF/aNW+JfilQlbVLDSJcUpLhdRdjSUru4msSrSa9bPi3kytlmXJwfhTDgyRe8705V6k6tWVSbblJ5bZwANT11axWNQyPw+ufQa3CLfKfI24vUaO0Os6Gq0Kmek0bttZqpRhNdGslXza6tt80+McHbnrf3fXuADheJAAAAAAAAAAAAADuGGOqAgyMcwEHYdi45DuEoMl8yICjI7gCNlyRgC9idh2AQo9gCCUYKyAUEQAoQAB9DG/Ee9Vjs/UK/Fh+iaRkj6GsvdA3/vbaPvZPDrSS+jmdfBx/Mz1hqzW7aS0jsS3d7u2g2spTcn/E35FY5GnvBq09LrVa4a5U4m4nnJ29eybzxX2hTQMAFEkAAS50Y8VWEV3kkbJsIKnZ0oLtFGvtHpel1GlD+0mbGgsRS8kV3Nt6xC46ZT0mzkACuWwAAAAAAAAAAAAAAHCrVp0oOdScYRXVt4JiJlMRtzB0L3Zoy1CFlG6jKpJ45dM+071NPmnyM74r0/NCbUmvlQM88DPIwYgAIAAAAAAAAAAAAAAHcLmAB+DX6PptMqx9WT9587iCnRnFrOU0Z0nVolryV7qzDWDWHjHQH2v6forurTfLEmfEu4ncbeZtGpmAAEoAABpvx1sODUbe9jHlOOGzWBvbxpsvfG2/TpZdKWf5miT6P0LN8zixHs5rx6oPUAi6YgDAAdARgULqO47gCFGCUJkvUgJ0KuRO/kAQKjaXudNaen7sdlOeKd1Hhw/Pr/katR220b+Wm7isruMmuCqsnHzsUZcNqtmG3beJe3YvKKfk0u5jeWNG5pvMakFJM/WfM717bTD0FZ3AADFIAAHIpO5ckIlOxUTPIoJAAEHI3qaKZvU9F0D+5+3+2NgAHomLU2//AOt17+7+7idCnk77f/8AW6+/d/dxOiPB8z/sZP1n/wBb48ABO5zJUg5lZInYMdeYAD2D1BhAB2BAfSPYASxEH7AF5BIUg7hKgH0tqUq9xClFZcngmI3OoGYbDs3C3ncyXynhGRXllb3MHCtSjJNdcE0u2ja2VOjFY4UfqPUYMEVxRWYbGEa9tedJOvZZlHq4mKzjKEnGaakuqZuCSTWMGLby0m1drK8i40px6+TODmcGIibURNdsHBUCma9ICgGkBQEaQFwAnQAALkZIAD6BlAELn1FIBACN4AueRim/t66ZtTT5VbirGVw18SknzZ+bxK3xY7V0ybc4zu5JqFNPnk8s7n16/wBf1Ope31aU5SeUm+SXkX3Suj25M9+T8rh5PKjH6V8sz1jxa1jV75RuoU1acfKCS5L6jItNvre/to17eopRl/A0pyOz0XVb3S6yq0ZS4e8X0Z6bkdKx9msXpK9+Gviu/T7fLzetJbiB0Og7ls9SgozkqVb9lne5yk0+RQ5MV8U6tD7Jweo4Obji+K21ABqdoAABMFAEDKTkBAUgAAACNfWUEpSSeSY9RywSXmBxLgYwMrmEoC8h1wBCjuABCvA7AQMADlSlwVYy7p5N07VuVc6NQqZz8VJmmLejUrVFCnBzk3ySRt7ZNncWWi06dwuGT548jg5utPC/GFsVsMRv1d8ACsfNwAAAAAADAAAAAAAQJ2ArAHYCdgOw7BAVEC6gUD1AJTmC9AwJgFIwgQA7AVdB3BO4SdAwXsATBEigGaL90nfZurOzT5KLk0b0Z5m8fL33zvOpTUsqnBR/gi46Jj7uRv2cvLnVHbeClrwaZcXDWHOWM/UbGx6zFPC62977Vt3jDqLiZlbOHqeTv5NpVcIADgZAACHdbRpek1NSa5RRnKMU2TS51Kr9hlaKfl23d6HgV7cQADldwAAAAAAAAB2I2kst4RIrPldXNC1pOrXqRpwXVtmMbt3rp+jU5U6c1XuO0Yvoaj3FujU9YrSlXryjTzygnyRZcTpuTN6z6Q7cHDtk9Z8Nlbj8R7Cz4qWnr3xUXfsa613d2ratJqrXlCD/AFYPCMebbeWQ9Dg6fhw+I9Vti4lMb70a9SlXjWjJ8cXlPJkNHxm1KwrK1u7KnKMElxJ82YxlmPbrts01cRXTkzvx8PBnt25Iaedgi9Nt4aP4t215FN0IPzSfNGTafv7RbjEas5UW/wBroeSLa4q29RTpTcWvIynRdyqTVK75PpxGHK+HMPmkPK5qZ8XrX1h6vsdVsL2KdtdU6mfJn7k0+Z5usb+rDFS2uJR7pxkZVom+tVsWo1p+nprtLqee5HRb1/LLTj58b1eNNzgxfb+89M1NKE5qhV/ZkZNCcZxUoSUk+jTKbLgvinVod9Mtbx6S5AA0tgAAAAAAAC9x5kABcivGMECJGBbqoeh1STxylzOpRlm97fMKddLpyZiZcce3dSHnOVTsySAA3OcAAHT7ys1e7du6GMt03g8z3EHTrzg+qk0erLiCqUZwfSSweZt32jstxXdBrCVR4PZfDGb0tjaMjqQAevawhQBACgQe0NhdSQDA9oQgKBsRgF7k+geRyhJxnGS6p5OPMhjMbjSYeuPBDWPyrsa04pZqUV6OX0JGemgPcv6s/TXmlTnywpxT+k38mfN+q4fk8m0L3jX7qRKgArm8QHYAAuoBAMpCoMZB2ARAhvY0Szex6PoH9z9v9osAA9Ewam3/AP1uvf3f3cTojvd//wBbr39393E6I8HzP+xk/Wf/AFvjwEKDmSEBQJ7CkGAGShgAQoCAnUpAGCkKAABMJDINkWXvjUHcSj8Wn09pj6TbSXVmxtqWXvPTIZXx582dvBxfMyR/hNYdyuhSdgelZDxjmak8etzOztqOl21TFVyU54fZP/2NoateU7HT691VkoxpwbbZ5Q3prNTW9euL2cnJSk+H1I0Z7arp6HoHTvqs3daPSGx9tX8dS0qlXTzJLEvadng134b6k6N5KxqSxCpzj7TYuDzebH2WcPWuD9JyJr9nEFaIaVQABhAAAAAAAAAUgABsHFsJVsxDxH3nY7W0udSpUjK5ksU4J88n6N+7rstsaTUua84uq1+bhnm2eVN37hvtxarUvLupKScvixzySL7pHSp5Nu+/hw8vlRjjUeXx3Rrl9r+qVb69qynKbylnkjqWis7jaWgXe4dWpWNrCT4n8aSXRHudUwU9PSIU0d17Oz8OdpV9x6mnOLjZ0vjVZtcsF8S62mLW3YaVShC3tlwcUV8prubH3tqFjsTatPQtL4Vd1oYqSXVGkKs5VKkpzk5Sby2zm49rZr98+G3LEY47fu4wlKnNShJxa6NGR6Nu++slGncfnqa8+pjZ9rGzr313C1toOdWbwkjozYceSPxw6eB1TlcK/dhtMNmabuvS7vCdT0Un2lyO6o16VaKlSqRkvNM0/rWk3ujXrtLyDp1Us4ONlql9aSToXE1jtnJU5Ok1tHdjl73p/wD+QMuOYrya7bnyMo13pm9rqk1G7pKovNdTI7Hdml3GFKp6KT7SK3Lwc2P7Pb8H4q6fy49L6n/LIgflt721rpOlXhLPkz7prqmmcs0tHmF9j5OLJG6WiXMhM8xnmYN21YIAAAAABgAxkLpzAmPMmH0LxDJKYT6SAMG4gKcXOK+VJL6T8tzqdjbpurcQjj1mVcdreIc+Xl4cUbvaIfsGDGr3eOnUcqi3Va8joNQ3neVsxt4Kmn3OzF0/Nf7PP834u6dxY/Nuf8M+ubmhbQcq1WMEvNnSx3VpstRpWvG1CUsSqY5I15eX95dycq9acs+s/MuTznmWOPpNe38U+rwvVPj/ADZfw8aNQ9j7S0TSbaxpXdrw15VIpqp1MkSNBeA2/fRTjoOpVcxfKlKT/gb8jJSSknyPHdR4uTj5ZrZQzzr8z8d53KgIFeAACAAAAAAAAAAACPoUAEQo7gMEwUARgo5ARlJ3AFCZAEbB6wGA7gAC5J3AXUChAiCVAAHCvNQozm+kYtnkfxBunqG8Lyaec1nFfQ8HqrcldW2h3lZvHDRl/Jnkm1i7/dcU+bqXDf8AE9H0OvbW93BzZ9Ihvfa9D3toVpRxjhpo7M+VpHgtqcF2ikfRnm89u7JMuEABrSAFistESR5Zrs+lwaap/tM706/QKfotLoxx2ydgUead3l6fj17ccQAA1N4AAAAAqIgfl1O+ttPtJ3NzUjCEVltmVazadQmImZ1D7XVxRtqMq1acYQisttmqt9b/AJVXOy0mbjHpKou50m+95XWs3Ere3nKnaxeEk/lGGt5PScHpcVjvyLji8KI/Fd9K9apWqOdSblJvLbPnzCOWO5dxER6QtIiIMch2KRkpQ/PqNBXFnUpNdVyP0AypbttthavdGmu60HTqyg+zwfM7Tcdv6C/k0sKXM6s9Lht30iXn8tO20w7bRtauLGajJ8dLumZtp2oUL2ip0ppvuvI1mz9OnX1eyrKpSk8d15nNyOJGSNx5VnK4Vckbr5bPhOUZKUXh+aMq2zvTUNLnGnWnKvQ7pvmjAdG1Sjf0U4tKa6xOzTKDkcWt/wAN4Um74bab/wBvbgsNYoKVvVSnjnBvmjtzzpp1/c2FxGvbVZQknnkzbGy950NThG1vJKncYwm+kjy/O6XbF+KnhacfmRf0t5ZmCJprKeUUp9ad4ACAAAF5ZLyJhjqBenQj6lXQkvWB1e5aHptLqrHNLJr9rDwbPuYekoTg+6wa2vYOndVIPtJljw7ekwp+o01aLPiADuVh2AAEfQ0P4z2Pvbc3p1HEa0c/Sb57GrvHex47C2vYrnCWGy96Bm+Xyoj3arw04CkPokS0AYIEqgCdSRf4kOREA5jqQvYIRAAkACsaEKTsAM98DdT/ACdvu1zLEavxH9PL/M9aweUn2Z4f23cys9cs7iLxwVov+KPauiV1daXa14vKnSi8/QjxfxHh1eLrXg23XT93cERTzCwAAQgKgEACAIQAACYN7Gimb1PR9A/uft/tjYAB6Ji1Nv8A/rde/u/u4nRHe7//AK3Xv7v7uJ0R4Pmf9jJ+s/8ArfHgAJ36HMkxzKT2FAnsKTIfMCgg6LmAKB3AAAAACYRIAGB2W3LN3mqU4Y+LF5ZsqnFQiopcksGNbGsfRWjuZr40+nsMnSZ6Lp2Hsx90/dsiNQvcjbyV9D8up3dKxsat1Wkowpxcm2WEyzpWbTEQ1n49bk95aZDSbep+cr/Lw+iNAyeeZ32/Naqa5uC4u5ybjxNQXkjoCvy27rPq/ROBHE40RPmX6dMuZ2l7SuIPDhLJufT68bqypV4vKlFM0ebQ8OL33zpLt5PMqT5ewr+XTcbVHxXwvmYYyx5hk7RxaOZGkVz5w4dAVohIAdwuRAAAIAAAHcM4thIzo937istu6VUvLqok0nwxzzbP0bk1qz0TTKt7eVYwjBZWX1PLPiRvG83Rqs5ynKNtF4pwzywXPS+mW5V9z+Vycrkxir6eX49+7qvdz6tUua85eiTfo4dkjGjkzlRpzrVY06cXKUnhJdz32PHTDTtr4hQ2ta9ty+2k6fc6lf0rS2pudSpJJJI9BaJpum+HGz539you8lDLb6t46H5/CLZdHQNLeu6rBRruDliS+QsGt/FzeFTcWsSoW9RqzoNxjFPk2u5WZMluXl7K/lh20rGCndbyxfcusXOt6rWvrmblKcm0n2R1bBC2pWKV1DitabTuTubm8Gdr0rHT6u5tTgoqMHKkpduXUwLw223V3FuCjRcH73g81X6jZ/jRrlHQtAo7esGoynHE1HlhFbzM03vGGn3dWCkVr32am37q35Z3Hc3aeYuTUfZkx45SeXl8yJZeEWOOvZSIc9p7p27jb23tR1xVXYwUvRrMjrbqhUtridCosTg2mby8M9Kp6D4eXWsV48NWvSk035Y5GkNQrOve1qzeXOblz9pzYM85clo+0N16fLrEx5fOjcV6Us06s4+xnY2u4tVt8cNzNryZ1R99Ptp3l9RtYfKqzUV9LwbsmLHMbtDowdS5eGf+O8sgob11GCXpIRmfto77n/vLb6jhvnYt1tmxoXdWtGpGql07GHcjkrxOPmjdYXFPinqeCdTdsCjvm0k8VKM4n76W7tJnHLquL9aNYNE4V0MbdLwysMPx31Cn5vVtRbp0j/mP4M5R3RpL5e+P4M1Tw45BIw/hOP3dUf8A5B5keaw25DcGlS6XUT6LWNNf/qqf1moYpvzElKPmjXPSKe7fX/8AIef70belrOmpc7qn9Z8qm4NKh1uov2Gpef7T+sjXrJjo9fcv/wDkTPPijaVXdmkw6VXL2I/LU3lpy+Sps1xTpynJRhFyk+iR9a9pc0IcVahUgn3aM/4ZhrOplx5Pj3n2/LGmaXW+IJfmKDb9Z1V1vHUquVT4aafkY0kU6KdPw1+yp5Pxb1HP5vp2NxrOo3Hy7qfsyfiqVak38ecn7Wft25a295rNrbXU3ClVmoya7GzPFPw2stB23R1PTOOfP47bzy5E2yYcNopryqL8vl8mJte8z+7UJ9bRw980/SpunxLi9h88BdeR1T6w4d+vq2tvLZ2m1dk2m4NDpNLhXpEvoNWSTTwzeHgLqtHV9GvNrXuJJ036NP1r/wBjVu+tEraDuK5sqkHFKbcPWsnBxc01yTis35scTWL1dLaV6lrcwr0ZuM4NNNdj1B4Mb2p7h0eFnc1F78oxxJN85I8tczvtka/cbc1yjf0ZtJSSms9UYdV4FeVin09TjZpxW/w9nIHVbX1m21zR6F9bTUlOKb9TO1PneTHOO01lfRMWjcAAMEgAAAAAAQCsmSoAAgEA7gYI0BcggAZA9hQIVAAQABAAAAAABdQO4DIDAFDZBjkE7Yl4r3nvLZd7POHKPCvpPOvhxbu63fb5WVGXE/rN0e6FvPQbThQT51an8mjVvg1b+k16pWa+RD/sen4UfK6fe/uq+XO76bjisJFHLoDyczuXMAAJD6W0eO4hHzkj5n7dEp+k1OjFr9YwyTqss8Ud14hsG0ioW8ILtFH1IlyKUVp3L1NY1EQAFMWSAACkBwr1YUaUqlSSjGKy2zKtZmdQmI36PlqV7QsbSdxcTUIRWW2aN35uy41u7lSpScbWLxGOep+zxI3ZV1W8lZ2s2rWm8cn8owc9P03p8Y477+V1w+JFY7reR8wEgy5WKprujkcDkgygDDAEBzxzycX1CHQbut+OhCslzi+Zipn2q0VWsakGuxgUliTXky74F900qObTV9oyFZCx8uJ97C7q2dxGrSk1jqvMz/RNSpX1upRaU11Rrk/Xpd7VsbmNWDeM815nJyeNGSNx5cPL4kZY3Hls3PLkc6NSdKop05OMk8po/Dpl7SvbaNWnJPK5ryP1lFemvw2eetWaW1LaWwN5em4bDUZri6Qm+5sOMlKOU00+jPNtOcqc1ODaknyNo+HW7ffEY6ffVPziWISb6nmup9N7f+TGs+Jy9/hs2EBlNdQefWYVEKQD7hYwGAL26k6spOoEfQwHdFD0OqT5cpczPjE98UcSpVkuvJnXxLavpw8+m8e2MAAtFDsALgJQxXxQsVe7UuUlmUFxIyo/JrNBXOl3FCSzxU2v4HVw8ny81bMbRuHld8ngh+rVaDttRr0GsOFRx/iflPquO3dWJhzAAMgAAABhACDmCUAAMg7AdwyJAADyOdKTjOMl1TPYnhNfq/2RYVs5ahwv6OR45XU9O+5svncbNnQby6NTH1tnnfiHF3YO72dvBtq+m1ihFR4VboXHmAEbEACACACAAAH0N6mimb1PR9A/uft/tFgAHomLU2//AOt19+7+7idD3O+3/wD1uvf3f3cToUeD5n/YyfrP/rfHhQAc6QAEAAAAAAAAAACUAARII/Tp1vK7vaVGKzmXM/O+SMr2JYZlO8munKJv42L5mSIIj1ZXZUY29vCjFYUVg+5Einqa1isahsTBqzx53KrHS1pNCf52t8rD6L/TNmahc07Szq3NWSjGnByf0I8p+IGuVNd3Hc3UpZpqTjD2I1Zr6h6P4d4H1PIi1o9IdBJtttnEqy+iGOuThfTomsegjJvD7UJ2muU6C5wrvgZjSMo8MNOnqO77OnGOVGfFIiaRf8MuHqcUnjX7/Gm3b/Tbmza9LTfC+jXQ/C1g2rXtaNeh6KrBSjjBh2v7enbOVa2XFT64XY5OTwbY/Wvh8ctrc6Y1I4H2nFp4fI+ckV7BxaAYIQAPoTIFJlgAGfj1a/t9Osql3c1Iwp0022z9NRqMXJ9Esnnnxy3vWvr6ei2U3GhSeJtd2WHTuFPKyxX7NHIzRirtjvitvi53JqU6NGpKFnTk1GKfUwE5SeWcT6Jx8FMFIpWHnsmSb23Kc28JZNx+CmwnXnHW9UpYpx50oSXX1mM+EuzKu4tWhc3FNqypSTllfK9RuHxG3RZ7P28rS14VcShwUoR7esr+dypvb5OPzLr42GIj5lmJ+Oe9Y29F7f0yolJ/7VxfReRoyTbk2+rP0ahd1r28qXNxNzq1JZk2fnO3i4Iw0193NmyzkttD62tvUubmnQoxcpzkoxS82fI234GbQd3dLW7ylmlB/mk11fmTyc8Ycc2lGHHOS2mc7G0W12ZtCd7cpKr6P0lST6+w0JvPWq+ua7cXtWTalJ8K8kbY8ftzqlQp6FaVMZWauH/A0czj6dim28tvMurk2iPwQh2O2LCep67a2cFl1KiTOuNn+590X37uOeoVIZp2yym13O7lZIx4plz4ad14hnPjBcw0PYNHTaGIOaUEl5LB546s2x7ofVffGtUdPhL4tGOWvWanObptJri3P3beVbd9ewZR4W2D1DeVlTxlRnxv6OZi5s/3PFp6XdNWu45VOn19uTfzb9mGZYYK7yRDJvdFyVPSrKgvPoaKRuX3Sdwne2Vsn0g2/wCBppGjpkawQ2cud5AzfwY0uy1bditb2jGrDgbSf0GEGwvAOWN9UvXF/wA0b+ZMximYasERN4h13i7o9DRt11aFtTUKcllJdEYabT90XQ9HualVxjip/wCbNWDhXm+GJlOeNXmId7sH3s92WMLunGpRlUxJS6GwPH3bFppatL6wt40qc1hqK5f65mrNJrO31O3rJ84VE/4nobxZoflrwttr6C4pQjGf8jk5V7Y89J36S3YYi2O0PN7BX1IWkTuHI/doVwrXV7WvJJxjUi2n5ZPRfiLoVlrHhv77tLelGrCjGonGOH0PNEXhprseoPCC9jr3h27Wq+Jxg6bT+kqepbpNckO3i6tE1l5fnHgnKL6p4OJ2+7rCWm7hvLOUWvR1GkdQWmK3fWJcdo1On1tqsqNxCrF4cJJpnqfQJ0t4+FypzxOcrdp/9SR5TXU357mjWuOhc6RUl8n40V7f/wBFZ1TH+CMkfZ1cO34prP3aP1ezqWOpXFrUi1KnUlHHsZ+NZNk+PmifkzeNSvCGKdwuJY8+/wDM1x0O3jZIy44s58tOy8wyHw91qpoW6LS9hJqKqKM/Y3zNy+OW3Ia7oNDcWn01OapqUuHumsnnqLalldUelfBbVqe5dk1dJu5KVSlH0bTfYr+fWcV4zV+zp40xes45ea6icZOLXNMiTMi35odXQtzXNlUi1BTbg8dUdJJJFnjyRkrEw5LVms6ltfwD3i9N1H8j3lT8xWfxG30Z6MhJSipReU0eHrW5nbXEK1KTjODymj1T4RbqhuHbtJVJp3NJcM1nmeS69wNT86q04Ofcdks5BMlPLLIQC6ABkdURdSgARl7AEEBzADsB0AED6lwABCgAQA2pAGEAAAAAAAAAAAAAB2HZhB9OgS0f7pK8+PZ2eenxmjpvBO2xQurlrq0kfm90Been3fKjnKpQS/mZF4RW/ots+kxh1Jt/zPT8mfldNiPdT553klmi6AIHkWkIygkQ7naNP0mqKX7KydOZHseGa9WeOiNPItqkuriRvLDL10HUBFK9MvYhfUMECAo6gR8lzNY+K+6vRxelWVTm/wDaST/gZbvvXqeiaPUqKX56a4YLPc0De3FS6up16snKc5NtsvOlcPvn5lvCy4PH7p77Pk228t5bEYuUlGKbb6JENxe592DS1u7etalT4rWjL4kWuUn/AKR6rHjm86hZcnPXj07pYttHww3LuCEa1O1dCg+k6iwZ5b+AF06Wa2qQjPHRL/2PQVClSoUo0qMFCEVhJLociwrxKxHq8zl6vmtP4fR5f3N4Ja5ptCVazqRu1FZxHqavv7O5sLmVtdUZUqkHhqSPd759TUvj3sez1HQ6usWlCMLqiuKTivlI1ZuLERuHZwurWteKZHmIqQSak0ynA9HHqBrIAS+dRcUZRfdGBapS9DfVYeUjYEkYZuqlwai5JcpIsen31bTg51d126hEKugLnaqQFIZRI7Tb2qTsLpKTzTlyaM/oVYVqcakHmMlk1YZRtDVeGSs60uT+S2VvM4+/xQqufxe6O+rMD62tapQrRq05OMovKaPjFo5JlTasTGpUUbiW6dgbjhq1kqFaSVxBYx5mWLmeetB1Gtpl/TuaMmnF815o3rt/UqWqabTuaUk218ZeTPI9U4Xyb91fErvh5++vbPl2AAKd2r1YC64HQCoEKBGdJu2j6TTHLHODyd2z8uqUlWsatN94mzFPbeJas9e6kw1qC1IuM3F9mQu/s8zMakCACNhJLMWvNHL1EfToZVnU7RMvOXiZZe8923cUsKcuNfSYwbN8dLH0ep297GPKccN+zBrI+n9Ly/N41Zc9vIwECwQADsA5gAARgEoAAAABIdgXsRgEb49y1ev0moWTfXEkjRBtf3NV06O8pUM8qlJr+KKvq9O/i2dHFnWSHpxdDkjjEp83XvlQQpDEAAQAAAAAD6G9TRTN6no+gf3P2/2iwAD0TFqbf/8AW6+/d/dxOhXQ77f/APW6+/d/dxOiPB8z/sZP1n/1vjwncoBzgwAAAASAAAAAgABKAIuCMD6Uacq1WNKCzKTwjZ2j2sbSxpUUsNLmYdsqwdxe++ZR+JT6e0z2K5F30zDqO+WysAD6HzrVI0qUqkmoxiststZllEba18d9yLTdEWm0J4rXHJ4fRHnl5k/M2F40UNUudclqdWPHZz5UpReUka8Tw0zizTM2fUPh/j0w8PdfMvQHhZsDSVoFG/v6Ea9asuLEllI/H4reHFl+TqmqaRR9FVprinCK5NdzLvCTV6GpbStoQmvSUo8Mo+R3O8r+0sNvXVa6nFRdOSSfdtG6K1mryNudy8fPn1nz4eSHFxm4tc08G5vc76K3UudWqw5L4kG/oNR1IO71Kaoxz6Sq+FL1s9SeHOkR0ba1pbcKVRw4p+01Ya7s9H8Sc7s4kU+9mRklFSjhrKfYoOuY2+cMb13bsK/FXtVwz6uPmYfd21ShUdOpBxkvM2oddq2lW9/TfFFRn2kir5XAi34qDWTWGcHyZ3Gr6VcWVVxnBuPZo6qcWmymtWazqWMxpwAIQhQAQOM48UWn0awzzj42bRqafrdS+pQfoLhuSl5PyPR/PB0+69Et9d0irZV4JuS+K8dGWfS+ZPGyxP2lz8nD82mnjKrCUKjjJYZ3GzNAudw61SsqEG45XG/JHcbt2zd2WsT0+VGXplLEML5SNzeFm1rfbGge/LtRjXlDjqSl2Xke05HOrXFus+sqfFxpm/q7WK0vYm0+J8NONKH0ylg83711+53FrNW9rzbjxPgjnkkZN4vbxqa7qs7S3qNWlFtJJ8ma9ZHA4s1j5l/MsuVm3+GvhwfIhyfUU4uU+FJtt9CzmdOKIdxs3QrjXtboWVGDcXJOb8kel7iVjs7aLa4YQoU8RXm8GN+Ce1I6Pov5SuqaVe4XFl/qr/SMQ8dN0+/b16TbVPzNF/Gw+rKDNeeXyOyviFpjrGDF3T5lrTc+p1dW1iveVZOTnJtZfY6sreXkF7SsUrqFda252iWXhHpfwb0daNslXVSKjUrRdST9RoDZ2mVNW3DaWUVlTqLPsyelt8XVPbuwasYNRcKChHHngqup5O6a4o+7t4lfSby85eIWovU91Xtw3lekaj7DHz6VpyqVZTk8uTycC0xU7KRDjvPdaZcTePub7JK3vLzHOTUcmkEss9I+AdmqGzYVsYdWTf8AI4Oq31h06eHXeRrn3Qtf0m7o088oU/8AJGszOPGu498b4uVnPAlH+CMIOngxrDVqzzvJKMz7wHeN+W680YEZz4GPh3/aLzeCeZ/JsjB+eGW+6Yt178sqyXNrH8zSxv33TFs3p9nXx0m1n6DQXI09LtvBDby41kWDxNPyZ6c2S4694QKhL4zjbyj9KieYj0R7m69Vxtq60+TzwN8vU0YdUr+CLR9k8SfxTDz/AKlQdvf16LWHCpKP1M/OZV4pac9N3le0eHClUc19LyYsd2C/djiWjJHbaYEby9zHqmK13ps5cn8ZL/XtNGmwPAnUXZb5toOWI1vis5uoY+/DLZxr6yQ7D3Q+ke8t2e+4wxC4Wc+vmauaPR/uk9KVzt+hfQj8alLm/UecWiOm5O/DCeVTtySiRm/gzrH5J3pbSlLEKr4JfT/+zCT9OmV5Wt/QuIvDhUjL6mdPIp8zHMNOO3baJei/dEaNG/2zDVacczo4baXb/SPNz5M9d0Y090eHUYSxP01sl9PCeTtYtJ2Wp3FrOOJU6jWCr6Vk9Jxz9nXzK+sX935eSRnfgruOWh7ro05z4be4fDPLMCaOdCrOjWhUg2pReU0WefFGSk1lyY7zS0S9CePu23qWl09as6alOmszaXVf6Z5+cW16z1P4eapb7r2NCjWxOap+jqJ+Z598QdCqbf3LcWbi1TcnKm8dir6dmmszht5h18qkTEXhjMIPi5mYeGW6Ku29w0qnG/QVGo1FnkYp17E4cPOSyz4q5qTWzjpeaW3D2zpl5Rv7Kld0JKUKkU00fpxyNIeAO8+KP5CvavNf7Jyf8DdyeVlHzvn8S3GyzWXoMOSMlNuSJkA4W4QACDkBkAMlIAna5HUg7BC9wAEmAABABnkA6gAIAAAAAAAAAAAAABdSVHiDbfRZLk+N/P0dnVn+zBv+BlSN2iET4eWfFq499b4vpLmvScP8WbS2FQVvtm1hjDccmm9yVHebqrz68dx/mb10Sl6LSramljFKP8j0XWp7ONSimvO7S/aByB5VgAAgDLdkU8W9WfmzEmZxtCnwaYpY+Uzm5c6o7+n13ld0VdCFXcqHoRBjkGwIfO4qwo0ZVJvEYpts+pg/ivrn5O0j3pSnitX5cn0R0cbDObJFYbMWOcl4rDXPiHr09Z1mooSfoKTcYLsYuVtybb6sJHtsWOMdIrD02PHFKxEEEnJJ+Z7G8GLWla7BsFSilxx4nju2eOVylk9Xe591+31LZ1Kx9IvT2/xXHPPB38OYi/qqOtUtOKJhssAFo8rAdNvN01tm+9Ljh9DLOfYdu2ksvkaq8dt5W2m6DV02hVjK4rrhwn0RpzXitZ26uJitkyxEPMt7w+/KvD8nieD4lk3KTk+rZCnl7qsaiIAAQkayjGN50sKnU+gydnSbuhxWCl5SOniW1khz8qu8csOKR9SnoVGBgARnKjUlSqKcXiSeUziyMmY7o0iY3GmxNu6hG+s4tv48ViSO2XQ1xt2/lZXsW38STxJGw6M4zgpxeU1ko+Vh7LPN83j/ACr7jw+pmnhrr8rC/wDedaf5mq8LL6MwtHOjUlSqRnF4aeUVvJwRmpNZc2LJNLRMPSEGpRTTyimMeH2tR1TSIQnJOtTWJGTnhs+KcV5rL0OO8XruF9YXrC6g0swoXTAAhxqLMWn3RzOMiUT4a41ml6HUq0MYXEfjO73hR9HqTnjlJHSIu8U91Il5rPXtyTB2LjmF0Bsc0ydxkB8glr3xts/T7bjcJc6U0aNPSu/LT35ti9o8OXwNr6jzZVi41ZRfJptHvfhzN3YJr7NN49XEAHo2KPqOQYADA9YAAgAAAkMcwwCUAHYAUz7wJuPQeIFlzxxvh/iYCuplfhTW9BvrTJdPzyRx86vdgtH+G3DOrw9jxfI5I+dJ5hF+o+h8xtHqv48L36Acx2MEAACAAAAAAZvU0Uzep6PoH9z9v9osAA9Exam3/wD1uvf3f3cTojvd/wD9br39393E6I8JzP8AsZP1n/1ujwhQDmSAAkAAQAAJAABAMAoAJOU1FLm3gZR221LH37qkW1mFP4zM8dJvaKwyiPVme2rJWWm04tYlJcTO2OEYpJJLGDkup6rFSKVisMxmAeM+41o23Z29KeK9wuGOOyM8rVI06cqkniMVls8weLu4Za3uaqoTzQoNwgs8iMttQveg8H6rkxvxD7+Huoy1e5raHqdd1KFeD9EpvlGXqMY3NpFfR9XrWVaDThJ8La6rsfi0y7qWN/RuqUmpU5qSx7Tce99Lt927Iobis4r31Spr0mF1wuf8jRruq9pmyfw/k1mPyW9P3a12junU9uV3UsqrUH8qD6M/Xu/e+sbkiqV1UUaK5qEehjEk4ycZdUc7elKtWhSpxzKclFJes1d060sb8PjTf6ia+vuz3wV27PV9x07urTzb274m2uWT0hCKjFRXJJYRinhdt6Gg7Zo03FKtVSnN458+f+Zlh2Yq9tXzTrfOnl8mZjxHgBQbFOgKQD43VtSuKbhVgpJmHbh27UouVa2XFDy7ozck1FxfFhrHM5eRxaZY9fKP8NQVIuMmmsNEO33U7aWqVHbYwuUkvM6ddTzmSsVtMJtS1fMKAQwawkugbwiNtkwl1OpaDp19f0r+vbxlXpfJk0ay8dN019Ms1o1pCcHUXx54aWPI3EdBvPaunbl06dtd0o+kx8SolzTLPg8yMeSPmesQ58+LdZ7Xj6o3J5fNvqcWZdv3ZGqbXvJqrSlUtm/iVEuWDEnFnv8ABmplrFqSoL0tS2pccGb+EG15a/uOnUq0+K1oPiqNrk/UYdbW9SvcQo04uU5yUUl6z1F4Ybeo7W2pCdZKNWcVUqyfr54/icfUeT8rHqPMt/Fxd9tz4hy8Q9cobb25KnSajVlDgpxXY8waxdVLm5nUqSbnJ5kzO/FTcc9X1mvieaNF4is8jXM/jNyfVkdO43y6d0+ZZcvL3TqHyOSCSzyPpQpSq1owjzcpJIspnUbckRLbfud9AdfU6ur1YfEorhg/Wdv7o7WeCzttLpy5zfFJfWZx4YaRHQ9m28JR4Zzh6Sf0rJoLxZ1h6vu24lxZhSlwRKLD/wD0cubfaFlf/iwa92IMiRcPIL1WFKPFUjFd3g9W+GVt7y2NZRaw/RKT+o8u6LRdfVbaiv1qiR62o0lYbTcenord/wAEUvV7b7arDhR5l5b8Qbn31u7UKuc/nWvqZ0CP265U9Nq93Uz8qtJ/xZ+RIt8EduOIcd53aXFmZeDE+Df+ntvrPBhsnzMo8KZ8G+9Ma/4qMOTG8Vk4Z/HDc3uj6XFtOlUx8mp/2PNsj1F7oKkqmxZyf6sk/wCKPL8ji6RO8To5kfjcTcPuZ7/0W4Lmzk+VSnlfxNQIzfwVv/eO+bVt4VT4r+k6+dTvw2hp49tZIZH7pTT/AEG56F3GOFVp837MGpT0V7pPTlX0ChqEY5dN4z6n/wDo87Pqaem37sMR7M+VXWQR2+z7x2G5LG5TxwVUzqEfSjJwrQmuzydmWvdSYaKTq0S9c+INpHWNgV2lxZoca+jmeRq8XCpKDXNPB682Lcx1rw7t23xcdu4v6jyvvGylp+5L21kscFWWPrKfpVu21sbu5kbiLOnRyXU45OSLzW1e9Oe541T39tF2k5ZnQljHq5mp/HjQ3pW8ateEOGlc/HX+voO89zZq6ttw1dOnLCrxyl6/9MzD3Sui++tBo6lTj8ag/jPHbn/3PPVn5HN19pWcx83j79nm/BJLDORJHoFY2j7n7cf5O196ZWqYpXHJJ+f+kZ/497W/KWjLVbanmtQ5yaXWJ540i9np+o0Luk2p0pqWUeudp6hbbq2dSrSxNVqXDUXrxzPP9QpPHzRmqsuNPzMc45eR1yeGua5M4zfZGTeI2g1NA3NcWsotU5ScoPzTMYnhci6xXjJSLQr71ms6l+jSL6vpt/Su7eTjOnJNM9YeG25qG49v0a8Jp1oRUai7pnkTJnHhBuupt3cEIVKjVrWfDNN8ir6vwY5GLujzDq4mf5dtfZ6tB8bOvTuraFelLihNZTPsjwNo7Z1K7idjAYIAAAAABeRCkCQJj2hhCtghUE7THMMq7h9AIAAgAAAAAAAAAAAAADrN0VfQbfvauccNJnZoxrxMr+g2bqE0+fo8fxRv4sd2asf5Y3/LMvMWlRd1uShnnxVk/wCJ6Cto8NGEfKKX8DRGwqPp91Wyx0lk31DlheouPiG34q1/wpZ8gQGTzYrA6odyEDNhbehwaXSXqNfRWZJebNkaZHhsaS/snDzZ/DELXpkfimX6SoY5h8itXZ2IyvoQDhWnGFOUpPCiss0Bv/VpapuCvNSbpwfDD2G3fETU1pu3K84yxUqLhiaCnJzm5vq3k9D0bj+ckrbpuH+uXFFAPQLhMGQbJ3VqW1tUheWNVpfrR7SR0BUTEzWdwwyY63r22en9r+NGg6hbwjfuVtXx8bPRs7278UNrUKLqe/4y5dEzyGljuVuT5OT+s6Y5V4hU26Nimdw3xvPxvjOlO30WlJSfJVJGk9Z1S91e9nd3taVWpN5bb6H4sA03yWv5d/H4ePB+WAAGt1AAAHWbkjxaZU9R2Z+LWY8Wn1l6jbhnV4a80bpLAGUSXMHpI8KC3kABKBk7FZCYBcnkznaF/wC+LNUJvM6f8jBjsNvXjs9QhLPxZPDOflYu+jk5mGMuOWyV1OR8qU1KCkuaayc02UUxp5iY1LJdhavLTNZhxS/N1HwyN20ZxqU4zi8qSyjzhTm4zUo8mnlG6/DzVfyjosIylmpS+KzzfWuL/chZ8DN/RLJykKebWoUhQIGUjAxje9HNGnWS6PBiRnm6qXpdKm8fJeTAy24k7xqHnU7cm17AIHUrpgAKCYfC9pqrbVKTWVKLTPMO47d2ut3dFrHDUf8AM9RyPPXizZ+9d212lhVMSX1HqfhnLrLNGF49GIgA9u1owAAIUACFISAAAAdgEAA7kgup3uxJunu3TpL/AIyOjR3Gy3w7o09//WRz8mN4rfo2Y/zQ9rWrzb03/ZR9V1PjZvNrSf8AYX8j7LqfL8n55X8eHLv1BF1KazR2AAAZJgqAAAhAb1NFPob1PR9A/uft/tFgAHomLU2//wCt19+7+7idEd7v/wDrdffu/u4nRHhOZP8A/Rk/Wf8A1ujwAA5kgAAAAkAAAAAQFZAA9hsDZdh7101VpLE6vP6DCdHtnd6jRopcnLmbSoU40qUacVhRWEWnTMPdabyzhzIXscaklCEpyeElll4yj1nTC/F/cMdE2xVjCaVauuCKzz5nl+vUlVqyqSeXJttme+Ne4ZaxuWdtTqZoW74Us8s/6RgJyZLbl9Q+HuD9NxotPmU7G8PAK69/7fvtLrfGguz9eTSHY3L7nCnJO/rPlDlz+sjHPqy+Ioj6SZ+8NZbqtPeWv3luuShVeDNvBHastV1halc0821DnHK5OR1uvaLX1zxBr21BfEq18OXZI9B7S0O20HRqNhbxWIR5td2MdYtaVR1PrEYuFXHWfxTDtopRiopYSWEcgOp2PB736g7gIB1HqIXIEOj3dqisbJwg/wA7U5JeR3FzVjQoSqzeFFZNYa/fz1C/nVb+KniK9RX8/k/KpqPMu/p/G+dk3PiH4ZTlKbk2228l5SXkzgDzPdO9r/PxKZa6mFw0+YKny5kaa59UbItt5vk8K+Gf8JhhIdV1KkZ7cRjkRryKGRA/BrGl2eq2c7W9oxq05rDTRoHxJ8K77SqlS+0eDr2zeXBLnE9GElFSi4ySkn1TLLhdRy8WfTw0ZuPXLHq83eB206mo7glfXtCUaNtzSkusjY3i/uWlpmkVNPpSxKccZT6cjPLmjYaRp9xc0KNOjycnwrGWecd/VLvXb2rcqonCEmlHPrL7jZJ5+b5lvEOTJT5GPUMF1G5debWe+W/M/E+XI+9xHgqSi+qOMYrGWemr6QqLer4Ya+szDwq0KWtbqtqbhmnSkpz8uRimOfJHoP3PWge9NIqarVhipX5Qyuxyc/P8rFMuji4++7MPEDUaeh7QuayajinwQXrweT7qrKvc1a0ubnJtm7fdG63iFDR6U+fy5o0fg5+l4u3H3T923m37rdsfZx5BrkGuZUvWWjhd94d2rut32FPGfzqb+pnp/edVWu0L2a5YoSX8GaB8C7L3zvKnUxlUlxG6fGK597bFu3nDkuE8/wBQnv5NarTix24pl5YuHx16k/OTf8TgG8g9DWNRCtny4T6nf+HNT0e9NMl/9ZHQPrk7fZc/R7q0+flWRrzxvHKcf5ol6W8bLZ3Ph9c4/VSl/FHlCSPYHiVBVNg3nf8AM5PIEliTKzo9vwTH+XZzo/FDijt9pXDtdw2VdPHDWh/NHU9z7Wk/R3FOa5OMk/4ltlr3VmHHWdTEvV3iZZrV/Dmtwriboqa/wnlGvHgqSg1hp4PXW2qkdX8PaH63HbKL9uDynuO3la63d0ZLnCo0VHS7am1HZy43EWddhnLojjzLHoXMuF6X9zjqKutpTs5Sy6MsY9WEaq8fNN95b2rVYxxGsuIyT3MupKjq93YylyqRykfv905pv/lb+Mf7Lf1FDi/4ubMe6yv+Pj79mhzkjjgqWC/VrJ/DbUvyXvCwum+GKqJS9mT1PvOxp63s65pYUlVocUf5njW3qunVU4vDi8pnsbw71CGs7JsqrkpN0uGX8ig6vSaXrkhY8G24mjx5e0JWt1UoTTUoSaaPzvoZx4z6O9J3xdxUOGnVfHHl5tmEySwXODJF8cWcOSvbeYcY9Td3ucNyqjdVNErz+LP41PL7mksczttq6nV0jW7e+pSadOabx5ZNPMwRmxTVnhydl4l6E8fdrrVNDWp21PNe3WXhc2jzbUi1NxaaaPZmkXVtuHbVKssTp16WJL14POG79harT3hV06xtpShUnmEkuSTKjpnLjHE4sk+HZysPdq1fuwGlTnUmoU4uUm+SSybf8LvC2tfSp6lrEXTpJqUab6szPw48LLDRoU7zVIRuLvk8Ncomz6cIU4KEIqMUuSRx9T63E7x4mfG4WvxXfKxtqdpa07eiuGnBYij7gv0nlZmZncrKEbA+kMgAOwAF7EABBgAC9iBhMA7gdwhQ+hF1KEoOQYSAMB9AEAAAAAAAAAAAIwfxqr+h2RdL9rkZz3Nae6Br+j2nGGflzO3p1e7kVhhl9KS1H4TUfS7mU8fJg3/M3QjUvgvT4tVuKnlD/ubaSOrr9t8nSmVgFRRgADFD62keO6px85I2TbLht4LySNeaPDj1Kiv7SNi01iKXqK/mz6xC56ZX0mXPvzGB36hd+RwLc7EK+hwqyUKcpPolkmsbnRHrLUvjTqbqXtGwhLlBZkvWa4O63reu+3HdVuLKU+FfRyOlPbcPH8vDEPTcXH2Y4hCgI6nQF7AAA0AAAAAAAAAAPzaks2VVf2WfqPhfLNrUX9l/yM8f5oY3/LLXc/lv2kOVX/ay9TZxPS18Q8/byAAyYmCANEi/SSLaeV2KzixMbhE+sNh7Xu/fWmwy8yhyZ2y9ZhWybv0d1K3k+U1lGarmUXJp2XeZ5uP5eWVi+ZmPhnqrs9YjbylinV5Mw5dT9FjXlb3VOrB4cXkr+VhjLjmrRiv2XiXoyMspY6M5HW7dvI32k0LiLzxQWTsUeCyUmlprL0VLd0bUpCmDIIUAfj1Wn6Wwqx/ss1vUXDOUfJ4NoVVmlJeaaNbahD0d7Vj0xJ/zLHg29JhUdSr4l8OwAO9TADAZxIab8ebRQv7W6S+VFps3Ia48crX0ug0rhLnTn/3LfouTs5VWN49GkgAfSWgJ3AJAMAgQAoEKASICkAF5EAFO22i8bksWv+MjqTtto/1jscf8ZGjk/wAq36M8f5oe1dPebKj/ANC/kfoPzaf/AOTo/wDQv5H6j5fl/PK/r4EUhWa0yhSFAhSDsBeYQY6hA+hvU0U+hvU9F0D+5+3+2NgAHomLU2//AOt19+7+7idEd7v/APrdffu/u4nQr25PB8z/ALGT9Z/9b6+FABzgACQABAAAkAAEA7gIEsk2HShO/qTeMxXIzpGr9Gv56fdxrQzj9ZeaM/07WbG7pqUasYyf6smXXTs9K07ZlnEuxMV8Ttdhoe17itxYqTi4w9plKqQaypxfsZ568edwy1HWlplGT9Dbv42OjZY3yRr0lbdH4v1PJrE+IazuK07ivOtUblOby2z59+ZzjTk+kZN+pH6rbTL65ko0rao8+cTkm0R6y+pTyMOGuptERD8L8jc/hzXjo2zJU6Dzd3bbbX6q/wBMw3RNk1ako1L6XDHrwozyytKVrbxo0Y4jFYRx5+VFY1V434h61iy0+TinaWdBUKjrR5VG8uXfJmW3tzSp8NvevMeimYsDixci+O24l4m97Xncy21QrU69NVKU1KL7o+hrTRdZudOqLEnOl3izO9I1a11CkpU5pT7xfUvePzK5Y190RLsSAHYyA2D8OtXsLCxnWk1nHxV6zDJeKV3LKlJvaKwx7fGq8MFY0Zc38vBhZ9ryvO5uJ1pttyeT4nk+VnnNeZes4nHjDjiAAHI6w5RkziDKGF6VvGpcnFNZj9RF6xnByypLn18zZF/dR8vpf9WNwbBylCS9aOKNsKW1JpOpAATDF87q3p3FCVGtFShJYaNV788Oq/DO50BLmm5Um3zfqNsHzuq1OhQlVqtKMVlnZxeZk49t1Y2wfP1SHjTW9H1PTbydPULWpRnn9ZH4JR5YPQu7ZW+t3VT3xRhOn0jyNfa3smnPNSxai/2Wes4vWa3iIyRp35vgvkxi+ZT1/wAML21pdXVdatrKlFt1JpHrXR7Sjo2g0qEUowoUuf0I1D4G7Zla7gq3d/GMXRXxMvqzYvizrEdH2jcVIySnVXBHD8zn52eORlrSvhT04WTiRPzI1Lzv4latLWN13dy5cUFNxj7EzGD71ZOpUlOTzJvLPk16i/xVilIrClyTM2mZcGgytPIccm3bW3B7m2z49RvbprlGOE/qMs90Pdeg2fTop86lTH8j83uc7L0W3ri5a51KnL6kdZ7pm5StrG1T6ycmvqPOWn5nOhaR+DjtGB80CnpoVT5yTP2bfm6etWc12qo/G3zwffS3w6hQl5VEYZPySmv5oevt1U/fOwbnvm1b/geO68cVZrybPZV2vT7CqL9q0f8A/azxxfx4bytHym1/Ep+kz62h382PEvgWPUhV1LyY9Fe9SeAN5792HClJ5dObjj6WaO8XrH3lva+io4Up5X1Gz/cw3vFYXlk38makl9Zjfuj7GNvuencKPKrDP8yh48/L5lq+6wy/jwRLUZzjHkcZJZ5HKOexeSr2Z+D2oPTt72cuLCqS4Wbz8dtLWpbMqVV1pfHR5r2/cO11i0uE8OFWL/iesdbgta2BVcefpbbK/wAJRdQ/BnpdY8We7Harx3KPDJp9ngnJn6tRoujfVqUlhxm1/E/PjkXtbbiJV0+k6ceHDPR3uZ9V986Dc6dKWXRllL1cv+55yNo+521b3lvD3nKWIXMeHHr6/wCRw9Tx9+CXTxb9uSGX+6Z0NVLC31enDMoS4ZteXI8/NHsrxL0iOs7SvLVxzL0blH2pZPHlxbVad1UocEnKE3HGPJnL0jPFsXbP2bebj1fcPhg+lKMpyUYRbk+yMg25svXtbqxjbWVRQb+VKOF/E3Z4e+ElnpMoXmrONeusNRxyTN/L6nh48es7lqxca+SX6vc/LVqO3Z0dQozhSTzScvI2TO2oSr+ndKDqdOLHM5UKNOjTVOlBRilhJI5ng+VypzZJvHptdY6dlYhEigHI2AAAAAAAAAAAApEAAYAAAC9CcwOwBjmAADGeQ5AAAAAAAAAAAANRe6QrcOi2dLPyp5/gzbppT3StX81YUs+b/mWfSI3yqtOf+XLHvBGnzu6mPJfzNn9jXfgrT4dLuKnnI2JnkYdat3cuyohUACo2bAAupI7PbMOLV6fq5mfR6GE7QjxapnyRm66FXzJ/GvumxrGr6hBF5rscayGuR1W57n3pod1WzjFN4+o7XsYd4r3Xvfa1VJ4dRqJ0cWnfliG3BXuyRDR1zN1LipUb5yk3/E4E7lPcRGo09TEajQEMjqSKAAAAAAAAAAAAAp8bz/y1T/pf8j6nyvP/AC1T/pf8jPH+aGN/yy13W/2s/wDqZxOdd/nZf9TOB6WniHn7+RgBGTERPaAToCFBMD9WkV3b39KpnpLmbLoS46cZLusmqk8STRsnQK/ptMoz78OGVnPp4lTdUx+LOwLHqQqKyVK2x4Sah6bT6lpKWXTfL2GeGmfDC+9669Gk3iNVYNyrmjxXVcPy80z7r7h5O7G5ZYIUrHWpCgDi1yZr7clP0eq1Vjq8mwn0MI3nT4dRjP8AaidnDnV9K/qNd49ujHcAtXnwE8yroEiMV8UrX3ztC7SWXCPEZUdZumj740C8pNZ4qbOrhX7M9Z/yTO4eXnyYOdePBWnHyeD5n1Kk7rEtCggMwAAABAAQoAgAJQAAJEd3smPHuiwXnWR0i6mR+HdP0m8NNgurrI5+VOsVv0Z4vzQ9lWSxbU1/YX8j7o+VssUYLyij6rqfMMn55X9fDlgEBrDuUncoTIRJ9yhhCdiocggD6G9TRMuhvY9F0D+5+3+2NgAHomLU2/8A+t19+7+7idCd94gf1tvv3f3cToXnujwfM/7GT9Z/9bo8CKQHOlQAAAAAAAAASgAAA5QlKLzFtP1HEIROh+qnqF7TWIXFRLy4mdPd6TYXdxKvXt4VKknmUmup+4dTP5lvdsplvjndZ06+lo+nUnmFnST/AOlH7KdGnTWIU4xXqR9ARN7T92d+Rlv5tIkEO4MWkDBQhxZ9bS5rWtVVaM3GS8j5vqMcia2ms7gZ1t/clK5UaN01Cr59mZHGSksp5RqJNp5TwzItv7jq2rVG6bnT8+6Lfi9Q/punbPJNJZfRGvd5ap77vHQpy/N0+XtZkO49bo0tK4reopSqrCx2Nfyk5tyby31NfUuVEx2VledK48TPzJcQAUUvQAAHoAAMgABjJpyjNrl2OXCp/J5M+ZU8GdbTDkz8PHmj1glFrqiH1hNSWJI41YqEeJLKN1bRKhz9NvS2quHJc2+RhW99UnUqe9KTagvlPzMpr1pTeOi8j8F1Z29zFqrTTz3Mq5IiXoukdLrgtGXJ6y1u+oMm1TbjinUtXn+yY5WpVKM3CpFxa8zspki3h7XFlrePRxp1J0pcVOUovzTPhuSnPXtPjZ31acqcXmPM+xxN9MlqTuGjkdP4/IjWSu2BX2w5rLtq+V2TOjvNqatQb/MOa848zbIfPqWWLq2avn1ec5XwZwc3rX0aSrabeUZP0lvUjjzR8HRkniSaN4ToUZ/LpQl7UXT9sWGr3sLd2kPjPnJLodletxr8UPNc/wCCZwUnJS/pDLfBmz967JtMrDqLi/izV/ukLlVdyUaCln0cFyPQGkabR07TqNnQWIU44RrTxK8Lrrcurz1GhdxjKSxwv/8ARw8LnYvqZyXl5bkYLfL7YecsBI2PqPg/ue2b9FTVaK/ZMdv9jbmspNVNMrNeaR6enOwX8WVM4MkeYYxKPqOVp8W6pPymj9tzpWo27ar2daD9cT8saVSFaHFCSw11RvnJW1Z1LCKzE+HsPSpen2FTfXitH/JnkDW4cGr3cfKtL+Z662dL0vh9aPztX/Jnk3dMeHcN+umK8/5sp+lT/wAt4d/Mj8NZdXgBAvlc217mq+9DuerauWPSwbx9Rkvum7HitrK9Szh8Lf1mtPBm99578sZZwpy4H9LRvDx6tPfWyZVVHLp4kUXI/wCPmVt7rDH+LBMPL6jlHKPIdCZLuJcGn1oycZxkuzyer/Cq9Wp7AtlJ5ahwP6EeTYt5wotnoP3PWrUqe3a9pdVVT4J5Sl68lR1WsTjifZYcHHkm2ohpzxBsvee7L6jjH5xtGPY+o2d4y6LXut2yuNOpuvCostx8zF7HZur3E4qdL0cW+rOjDzcVcUTazOekcvJee2ksa4TvtgXNWy3ZYXVKMnwVVnC7dDb+1vBawdvSudTvJ1eKKlwRXI2JoWy9vaQo+9dPpca/WkssreZ13B2zWvqxp0/JS/4vTTIqdSnd2Slj4tSPR+sw6w8PdvW+oVr2raQq1Kk3P4yyllmZRSisJJJdiN5PKzy7xvsnW1nOOs62+Npa21rTVOhRhTiu0Y4PsActrzadzKfAXsQGKQAAAAAAAAAABgBgAOwAAIAAAAQfQFAEC6gAConcAAAAAAAAAAAD6Gh/dK1M6hZU12hn+LN8djz/AO6OlnXrWPlT/wA2W/RY3yoaOT/Lfo8G442/OXnNmeLoYP4QrG28+c3/AJGcR6HH1Wd8qypAAVkIgKgVEpd/suP/AIycvJGYrojEtlRzVqsy2PQqeX/Mei6f/Kcu46hckU5Xc4s1v43V8aZb0M85Tz/I2Q8mpfG+rm8taXkslj0yu88OvgxvNDWZUQueR7F6RSomOZQgAAAAAAAAAAAAoDsfC+eLWp/0v+R9+x+XU5cNlVf9lmeON2hhk/LLX9XnUl7WcUWXym/WQ9LXwoLeRkKDJigK+hGTAAIZJEM42TW47CUM/JeDCDKNiVMVK1PPVZOTmV3jcHUKd2KWYhAqRSvNP3aJcO21S3rJ44Zo3/ZVVWtadRPlKKZ51pvhlGS7PJvTY9z7629bTby1FRZ5zruL0i606df1mHel+ghUjzK2UEAAxTfNPnSqY9RleeZj29YZsYy8mdHFnWSHLzI3ilhqYIXJc6ea0MgYJFPhfw9JZ1YPvFn3ONVZpyXmjLHOrxKHlnXKXodXuqX7NRo/Ed5vql6HdV9BLH51nSH1Ti27sNZ/w0ygAOkCFHcgO47gAQoAEYAAAACozDwfpKtv3TYtZSqJmHo2F4BW/p/EC1ePkJy/ijk59u3BaW3DG7w9X0+UIr1HLuRdCryPmVvWV9CjIJ9JBK9iF546k5kC5AXcEgyogIQr6G9TRL+Sb2PRdA/uft/tjYAB6Ji1L4gf1uvv3f3cTojvvED+t19+7+7idAeE5n/YyfrP/rdHhcoEKcyQpBkCggGxQQdWBQASAACAAAAgAAAAAAJAAQL2CIOxIpH6iogQScpJJttLscGjmGRMb8urj8q+CfTw+TBzaOLWDTasw9HxefjzRr7oCIpjE6WAACQAA0AAHgDnGb6M4AjaJiJSrRpzWUsM/HWt5Q6c0fuTaOTxJGe2dctqOo6cmdbrOlUb6k3wpVF0Z391QTTlBYaPxPkZ1vMTuFjhzb9Ya2vLapa15UqsWmmfEzncGmQvbZzisVYrk8dTCKkJQm4SWGnhlhiyd8LrDljJDiTBQbG5EsmfbD0z0Nu7ypHEp/J9hiGh2Ur7UKdGKys5fsNqWtGNC3hSgsKKwaM19ejx/wAUdQ+XSMNZ9ZfbCJgZ7HLBy7fP59XFo4unGXyopn0wCYtMeJRp193pGm3SauLKjU9sTpr3YW1rrnU0qim+6ijKO4N1eTlr4sxmlZ8w/HZ2FvZaT+T7WHBSjTcILy5GiNf8FddvdWurujdUVCrUlNJ+t+09Blwjp43Us3HmZrPlhkwVyRqXmOt4J7phnhlQn7JL/udde+Em6bWm6lWjTUF1fEv+56swkfg1+HHpNxH+y2d1fiDko4/TcOTLWtvEvMu29manpmr219KtTXoZqWF/+zcm6tatNZ21U0t05cVSmouT8zHpLEmiGGbqOXLaLT5h9I4/wnwqU8MEoeH9FSzWrt+w7ChsbSYc5qUzK8kZNup8if6nbi+Gun4/6HTWu2NHoYcbSLa80dpa2tvbrFClGC9SPqVHNfkZL/mlZYun8bF+SkQfQcov4y9pxKuppmZ03zirETqG1tDnx6VQf9hfyP3I6rasuLRqPswdqcc+XybqNe3k3j/KPqAwQ4AAAAAAAAAAAAC4AgyAABcBhIQDsEAAaADAXUrAg6BF7AO4IF0CTsAAgAAAAAAAACBUAZ5590Y3/SS3T/4f+bPQz6Hnr3R6xuO2fnS/zZc9D/7MNHJ/I7PwjX/wzH/rf+RmkTCvCL+q8f8Arf8AkZtHocHVP+zZVABStYwDsB2JGT7JX+1ZlS6GL7J+TVMpiVHK/mPScH+VC9yIvcjOZ2jfM0342TzrlKPlTRuToaY8al/8QU/L0aLXpH893dP/AJrASrqMcsiJ616FQAEAAAAAAAAAKMACgADrtclwadVfqOxOn3RPg02S83g3YI3khqzTqksLfUgB6OPChsYIUEwgIAZAACQO+2XPh1Jx80dAdvtKXDq9P1nPyI3SXNyo3ilsNdCpnGPQpQvKuaNteEtz6TRZ0W/kSNSI2L4O18Vrii32z/Mqur07sEuvhW1kbO7HI4o5Hi18gKTIBnTbthxaTN+R3D6nW7kjxaRW9hswzq8NPIjeOWvgGF0L55efIAACxnqJ80yMv6ojyh518VKfo943fL5TyYsZp4xxUd31Wu8U/wCLMKPqPTp3xq/o0z5GGCnahAAABCgGQoAgDAAAEio2v7mu39JvKVbHyKT/AJo1QjevuXbJOtf3jXNYiir6vft41nRxY3khv1PkXqyIp85ldr0AbCAAncAUAAAAAN7GiTex6HoP9z9v9sLAAPRMWpfED+t19+7+7idCd94gf1uvf3f3cToTwnM/7GT9Z/8AW6PAXuAc6QesdgQGR9IAFBGUJAANo0AAAACUAAAAAJAAEAAAAAAAAAACTCI0UEJraazuHzceRx6H2aOLjk12p7Lrh9Umv4cjgBjANfrC+pkreN1kAA2zAATIAAgCptEA2OXU/HeUMfHifqRyWGsNZQidJpecc7h1HqZiW7NP9FV9804/Fl1M4u7bh+PBfFOuvreNzbTpTXVcjoxX7ZW3G5ERMTDXGAlzPvfW87a5nRmsNM/VoNjK+v6dJL4ucyLCbem1rnz1xYpySyzYum+gtvfc4/Hn0z5GUnztqUaNGNOCxGKwj6pcjhtO52+R9R5VuVnm8ojkTGC9yHEDuPYAACAAAAH0Pz38eOzrRxnMH/I+5xqLMJLzTQbcFu3JEtPXUeC5qRfaTPmj9mt0/RanXjjpN/zPxnXXw+wca3dirP8AgZADJvAACALqAjEmPRsrZU+LRYLybO8ZjewJcWkyXlIyTsctvL5P1mvby7oAO5CqAAAAAADkAAY5lCURSewvcAAADIUAQdhgq6AQoAEKGEACAAgXcoYEQYDCAAAAAAA9gQAIIoSPoeffdIxa1+0fnS/zZ6CfQ0N7pWnjUrGp502v4st+iT//AEw5+T+SX18IHnbSX9t/5GbroYH4NSzoEo+U2Z4cXVfTk2VAACtFL2OKOXYkllGyelUyhdDF9kvlVMpXQp+T/Ml6Tg/yoXuSXIvLOSdmc7tQ0/41wxrFGfnDBuA1b430edrW9q/kWfSrazw7ODOssNX+oJYAPXvRgACAAAAAAKgAKAAAAAjeEY/vCpi1hDzZkElyMT3hV4riFPPRHXw67yQ5uVOscugZAC/UkgBGIAAGYAAAdjtptavR/wCo647PbC4tXo+pmnP/AC5aOR/LlsWPQqJHoVdTz8vJz5cl1M18JajjrsodpQZhRlnhfNx3JBecWcPUI3gs38af+SG50cjiio8K9EB9SkfUgQ/Drqzpddf2T9zPx6xz02uv7LM8f54as35Ja4kvjMLBZfKftIX/ANnlreZAAEDC+SQq+SwNC+NMcbsb86a/mzBTPfGz+tK/+2v5swM+ndL/AOrVpt5AQFggBSAO4YCAEC6lQEAAAALqByR6W9zPZeh2pXuZRw6tXl9GTzVFNySXVs9e+Dmn+8Ni2MGsOceJ/TzKD4gyduDt93bwo/HtmZWQHhVsoIAORAgAKCAUAATsb3NEPob3PQ9B/uft/thYAB6Ji1N4gf1uvv3f3cToEzvvED+t19+7+7idCeE5n/YyfrP/AK3R4X2kBTnSADnkgPMIAAwMgB7AAEqACAABKAADYAAAACUAAAAAAAAAAAAAAgABGjhKJ9CNGM1iXZxuZfBPpPo+Q5n0kjg1g02rMPR8bnY80a+4CD6SNu/SggyQaUETLkAEyJnIJ1tVJPkz89zbJ/Hh18j7NeRU/MnZXdJ3DC936a5wV1Tj8ZfKSOz2XpnvWz9PUj+cqfwO8r0IVouMksM+tKmoQUUlhcjopkma6V/Wep2+TGGJc1yRewwPaHj5kABIdgEVog2gAJAAACPoUBNZ1LWO8aXo9aqrHyuZ0xlG/wChL8pQnGLeY9l7DHoWlzUfxaE39B01tGn1jpmeLcWkzP2fBkOzo6LqNXHDbT+k/XS2tqU+tNR9pM5Kx93ZPJxx5l0IMmjs6/ay5wTOM9oahFZTjIj5tfdjHMxe7Gwjuqm2dUg/9hn2M+b2/qif/lpD5lfdn9Rjn7sm8PZf+Aqx/tf9zKkY1smyubOjVjcUnBt8smS+Rz2mJn0fNOu6nl2mAMDuQpUDKTqARexOg+kIAAgKwgGEgCYAAAAAABOxQgIi5DJkCgY5gAAgAA7gCMDqAgAAABAAUg7gCkKEozSfulaXxLCr6mv5m7cGpPdIUOPQrStj5NTH8GWfSLa5NWnPH4JY14Kzzo9aPlM2EjW3gnU/8LdUvJ5Nko09YjXKsp1AKVSEOXYhSSWS7Ifx6qMsiYdsueLupHzRmCKjlR/yPR8Cd4ociFIczuQwfxjo0pbb9JOOZxmuF+RnBjXiPZO82xcRSy4LiX0HXwrduast/Gt25IloJdAcpLhbT7HE9tHh6ePAACQKAAwVIAAAAAAAAADjJ8jBdw1vTalUecpPBmd/VVK1qVG8YRr6vNzqym+reSz6fT1myv5t/SIcAG+YLdVjIVshMAADIAABGdztCPFq0PUdMzJNi0uK7qVH2Rz8mdY5cvLtrFLNYooXQFC8qvcy3wujxbkg/KLMTM18I6Tnrk5/sxOHqE6wWlv4sf8AJDbyZyOKOR4R6MAIwJk/HrDxp1d/2WfsPwa/Lh0qu/7Jnj/PDVm9KS15N5m/aQPq/aC+jw8tPkABINc+g7MpOzIhDQ/jX/Wv92v5swQzXxklx7uqrygl/FmFH1Dpka41Wm3kIUh3oGAAD6gBARApAAAABAIkfv0C2d5rFrbpZ9JVjH62e1NAtlaaNaW8VjgoxX8EeVfBTS/ynvq0i45jSfG/o5nriCSiorsjxvxHm3eKQtOFX0mXJesAHl3eAoAAcwBSAAUAARm9zRJvY9D0H+5+3+2FgAHomLUviB/W6+/d/dxOh9Z33iAv/i6+f/2/u4nRHhOZ/wBi/wCs/wDrdHgD5h8h7TmSBgcwHqyP4hLuAH0AdwAXQZ9QWR3ISoAAAAlATBQQkAAEKATtAARDYoA7kgACAAAAAEoAAEgACA4tHIEMq2ms7h83HBxPqRxMLU9lxxeq2p+HJ6vmnzLyK4vqTBrmswvMXMxZI3EqgcWipEabfn091z2QbCQ4SYrMtN+dhp5lObCRyUS8PmZRj91XyOsR4xokcwkX2G2PRQ5ctslt2QpMFDVJ1IUMCIpMFQkAAQgfQhSMmEwAAlL41rWhXalVpRnJdG0WFvRh8mnFfQfVA0XmdvXdNyTOCI24qKXTkXBQYbd+5AAQGQmADay+ScfIr6E7G/H4eZ6tGsu0BUQ2KkAAEYKAIkVEC6hCgdwEgAAAAAAMAOhOeCkfQAUhQAAABgMAQpOQB9AGAgAAAAAAuoL0AIEASvc1x4/W/pdnOpj5E8mxzD/F62987Ivkllxjn+KO3p9u3kVlhljdJaZ8Fa2NQuqPnFP+ZthGlvB+v6Pcjp5xxwa/mbqRu67XXI37qSQqICkQpSBAdztKfDqiXmjOFg15oVT0Wp0ZecsGwoPKTKzmR+La+6bbdNOXIERUcazGfl1GiriyrUZLlODj/A/UzgzKlu20Sms6nbzZrNvK11S4otY4ajX8T8cuRl/irpzstxTqKOIVlxIw7se542T5mOLPU4Ld9Ilc8slXMc+mCRRvbXIABAAAAAAAAAR9CnGbxHIgl0e7Ln0dmqKfOZiDO03Fde+b+ST+LHkjqz0HEx9mNScm/feQMEfU6ocwADMAAAAAEZm2x7dwspVWvlswunFzqRhHm28GzNGt1b6fSp9MR5nBzr6rpV9Tyap2v2FRF1ORUPPhsvwetWo3Fy115I1ollo3V4aWfvXb1OTWJVPjFP1jJ24Ne7t4Nd5NsqXQpF0KeOXoQpAIdVuiSjpFX18jtccjoN51OGwjD9pm3BG7w5+TOscsLA7AvXmNiAQAdiPoyv1HCbxCT8kTWNzA89eK1X0m8brnnheDFDvd+1vT7qvp/wD1GdCfUuFXtwVj/DRPkBQdYgAYELjkAAHcACAdgAKh1LCLclFd3gTOo2RDeXuYNJburvVZx5KPDF/Wb+Rgfgbo60vYtrKUcVK69JL6UjPEfOOrZvm8i0rzj17aRCgArW9R2IXsAAQAAAAUncoEN7miH0N7noeg/wBz9v8AbCwAD0TFqbxA/rdffu/u4nQnfb//AK3X37v7uJ0J4Tmf9jJ+s/8ArdHgHMpDmSALuADD6lIQkBQAAAAAAAAAAAAAAAAAAAAAAAAShCgEJAATsAAIRIACQAAQAAATCKCExMx4ccLyLgIo0nvt7mByGeQ6EsZnZ2CQKQgA7kbCFDAIABesMkAgCEAYAAYAJSM4vkXICTJM8x0Iacnl6XpFt45hyIQGC4XJTiAOQJkhAr6MLoTsEbsbzvWI/FEqwCG1SgAYEHYIBAECoAAAkAAAAAAAARGVdQA7ERQAAYQAAMB3IyvJAAACAdgOwAMAAVEL3AnYoSIwk7nVbut1dbdvqDWeKkztX1PleQVS1q02s8UGv4G3BbtyRKLRuJh5M2NVdjvGlGTxibizfcXmKfmaC1ulLSt+14fJ9Hdfwyb306oq1jRqJ/Kgn/At+vU32ZPeFJeNTL9CGOY6DJ5tggBQPpbz9HWhNPo8mxrGoqltTmu8Ua2M52vX9NpsE3zhyOLmV3Xa16ZfVpq7cuTiilavFycWckGgMF8W9I9+6L77pxzUoc/oNL48z03e28Lm1qUKizGccNHn3d+kVNH1qtbSjiDeYPzR6Xo/I7q/LlddOzbjsl04AL1aAAAAAAAAAAAHWa/eK1spNP48uSOxqTUItt8l1MH3BfO7vGk/iR5I6+Jh+ZdzcnL2VddUk5Scn1ZxAL6I0pZ8g+kEMoQAAyAAACFC5vHmRM6RM6dpte0d1qcHw5jF5ZsWCxFJLsdDtDT/AHrZemmvjz5nfFJysnfd5rn5vmZNR9l7lOJTllweH69ItpXeo0KEVlymjf8ApVtG1sKNCKwoRSNU+FmmO61d3Uo/Epc/pNwRWEeU63n7rxSPsuen49V7pUoBQrIAIA7GJb5rfnaVFPtkyxswPdVZVtVml0jyOzh13fbg6hftx6dQB2BbPPAHmGTKYRs+V3LgtKsvKLPodbumurbQLus3jhpvmbMFe7LWP8kvNuv1fT6zdVfOoz8Rzryc605t5y8nA+qYY7ccQ0ABDaAAAAMACFAEYKO4QI7jZ+nT1XcVnZQi3x1Vn2HUI297mzQXea/W1SpDNO3XxW13/wBM5OfnjDgtZuw17rRD0TpVrCy06ha00lGlBRX0H6kTBUfM8lu60yvYjUAAMUhckAApCgGQACoEAFN7miH0N7noeg/3P2/2wsAA9Exam8QP623v7v7uJ0J32/8A+t19+7+7idCeE5n/AGMn6z/63R4Uj5MFOZKAcgA7gJ88AJCgmF5ECgAAAAJ3KATpCIoBCQAAAAAAAAAAAAAAAY7gADCd+gACUgAJYgHVAggABKQAEbNAwCZG0aXsAwSaGAAeBlwMZBCPQQCBDEAAAAAUgAAhQSkwRjIfN4AjIy9uZGa8i/6NbzAADUvwMEYFJkAgXswgujCNuJQ9YjxIADcoQABIGB1CEKugABAAAAAAAAAAAAAAAAAAAOQGABOhe4YEAC6hBkB9QAfUAAEh3A7gEUhewTASSymF1KyYlMPLvjfZOx39cVYrCqYmvrZsjYl6r3bltUTy1Hhf0HSe6T03hr2moxj1+I3/AK9p+LwXv/SafWs5S5wllHo+dX5/T63j7KfkV1eWxQAeTc4AALkyTZlzw1p0JP5XNGNH7dJuHb39Kpnlnmas1O6kw6ONk7MkS2GcupwpyUoKS6PmckUvidPURO42o9QASGGeJu3Vq2mO5oR/8RRWVjujMzjOKlFqS5M38fNOG8WhsxZJx2i0PMdSEqc3CaalF4aZxM+8UNsysruWpWtP8zUeZJLozAj2nHz1zUi0PS4csZa7hAXAN7agKAIVDkTIBkbRW1g6zWtRhZUHzzUa5IzpSbzqGN7xSNy/DufUlSpu3pS+PLrjsYm3l5Z9LitOvWlUm8ts+fQv+PhjFXSjzZpyW2ABnQ0hGATEAADIACAU7bbOnSvr2Mmn6ODy2ddZ29S6rxo0025M2NomnwsLONOKXF+s/WcfKz9ldQr+dyYx01Hl+2lCMIKMVhJYOT6AcylmdvNTO52cjlCMpzUUstvkcUZP4eaPLU9YhUnHNGk8vkaORljFjm0s8VJyWiIbH8P9J/Jui03KOKlRcUjJ0cKUYwhGMVySwkfQ8HnyzlvNpekxUilYgABpbAAjA+dxNU6M5t9Itmtb2q6t3UqN9ZMzfdFz730yeHznyRgXXn5lpwq+kypOpZNzFQAHcqgjKCRxMV8VbpW2z7rnh1Fwoys1j473yhpltZp85y4n/EsOlYvmcmsFp9GmwAfTNahpCFITAFBAAAADAAEKASOdKDnUjGKy3yPWngroC0TZ9vxQ4a1dcc/M86+FOhy13eNna8HFSjNSqexNHsC1pRoW9OjBYjCKikeU+IuVqIxQseFj/qfTBQgeQWQAAAAAAAAAABSACs3uaHN8Hoeg/wBz9v8AbCwAD0TFqbf7/wDi6+/d/dxOiO93/wD1vvv3f3cTojwfM/7F/wBZ/wDW6vhB3KTv0OZkewdgwSg6hAICgAhIAAAAAAAlAAAkABAAAAAAAAAEKAxmQABjAAAmJACBmoAJQAAAAAAACQABEgAAAhWETCghUGIACEAHcBIAAgAAABgJToTuXuGu5KUZGXsyMwyeFv0i2skwhUyA0PSjAIwlQRAClXMiKuhtxKTrEfhgABueeAAAAAAAAAAAAAAAAAAAAAAAAAAAADAcmCLqUCABIIABgCohX5kAAPoAC5FCASDsA+gGv/HPS/yhsyrUjHM6D417P9I0f4V37s9ywpSliFX4r9p6g3BZxv8ARbq0ksqpSkvpwzyPVjU0fcs08xlQrtfUz0/S5jPxb4ZV3Nr6xL0XFprIPx6PdRu9OoV4vKlBM/YeTyUmlpiXCAAwQHJPDTXY4lXUJidM823dK506GXmUOTO0Rhu0rz0N26Mn8WfT2mYopuRTsu9Lw8vzMcOQJkppdgAAPzajZ0b60qW1xFShNYeUaK3tt2voeoyXC3Qm8wkb+Os3DpFrrFjO2uIJ5XxZeTLHgc2ePfU+HXxeTOK3+HnNFO43ToF1od/OlVg3Tz8WeOTR0uT12PJXJG6vQ0vF43CsDKOOTNkpG+Zwq1oU48U5RivWdBq2vwpp07b40unEbseG+SfSGrJmrSPWXY6vqdKypPmnUfSJhd7dVbqs6lRttnCvWqV6jnVk5N+Z8y64/GjFH+VRn5E5J/wBvIIdUOZckeAwZRAAAlIACAOVKnOrUVOnFuT5JFoUalaoqdOLk35Gb7a0OFpBV66Uqr/gc+fkVxw5eRya4a/5c9s6NGxoqrVjmtJd+x3q6BchkpcmSbzuXmc2aclu6RjIYXPoa9tUer6WlCdxcQo01mU5YSN47K0WGkaVCHCvSTScmYh4YbbcpLU7uHL9RNGzYpYSPLdX5vfb5dfC44PH7Y7pckgBkoFmAMdiUBH0L2Pjc1VSozqSeFFZJiNyi06jbE963XHcRt0+UebMdP0ajcO5valVvq+R+cvMNOykQ8xyMnfkmQMBm2GgAIwHLBoXxk1L35uV0IyzGguE3lqVxG1sa1eTwoQcsnmPXrqV7q9zcylnjqN/xPTfDfH7ss5PZheX4QAe2YAAJEBSMAwEAADADoFzZOxkXh7t+tuLcttY04tw41Kb8orqa8uSMdJtP2TWs2nUN3e5v2u7LSamtXNPFWu8U8r9X/WDcfc/JpNjR07T6FnQiowpQUVj1I/WfNudyJ5GabSvsVOysQAvYhxtgAAAAAAAAAAAAAG+DQ5vg9D0H+5+3+2FgAHomLU2/wD+t19+7+7idEd7v/8Arde/u/u4nRHg+Z/2Mn6z/wCt8eAAhzJUgD6dQHMchjmCUKCFCQEWSkAAAAAJQAAkAAYpAAAAAAABjO5CFAR9gABAAAAACY2AhQTMgACNgAB6gADMzyC6cwCSYAASAYHYIEwgCEKATuEKGAAABCAIcwEo/MAGSQIACdiPsVmU7M0+0vKNSVempyi+WTOmCc09sOvhZ4w37pYok30TOcaNWXyacn7EbRhpNhD5NtD6j7QsrWC+LQpr+6dlekW+8rier1+0NXQ0+8n8m3qP+6z709F1Gp0tp/SjZ8adOPSEV9BySj2RujpFY8y026tb7Q1xS2zqc/8AdJe1n6qO0L6Xy5wiZ8Q216Xijy1T1TNPhhcNnVP1q6XsR1+4tEjpdGnNVHJyeDYhiniCv/C0H/aIzcLFipM1hx5+VkzR+JhWQAUzlAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkUAAEOYAAAAgAEgAfQISSysHmXx00dabu+pXhDFOuuNPHflk9NGsPdA6H7+20tRpwzUtnzeOxbdHz/LzxE+Jc/Jp3UY54TakrzQlQlLMqLwZsmaT8JtTdnrjtpyxCtyx6zdceZo6zx/lciZ+0qhQAVCApAEvrb1XSrRqReHF5NhaZcRubOFWLzlLJrkyHaN/wCire9aj+LLocnKxd1dwsOBn7L6n7suKRcwVT0K5GQALkn1ADY6vcWi2ms2Ure5ppvHxZd0zRO99Fr7ZuJe+YylQb+LNLKweiWddr2jWWs2U7W8pRqQksc10LTp/UJwWiLeHTh5V8Xh5YrbhsoL4vFJ+w6+73JOSxQp8PrZmXiL4X3Wl3M7jT4uVFvKRrC7tq9tVdOtTlCS7M+gcKeNyKxas7b559r+m30u7+5uX+dqtry7H5QC2rSKx6NVrzbyAAzYhPaUe0CADHMnYAYPpQoVa81ClByb8iJvryibRHl8z9WnWFxe1VClB47vHI73SNrzqYq3jcY/soyqztKFrTUKMFFL1HFm5kV9Kq3kdQrT0q/Boei0LCClKKlV7s7cAq73m87lR5Mtsk7sZBSdzBq0plew9s1dVvI160GreDy8rqfPZu1bjV7iNWpFwt0+b8zcemWNCwtYUKEFGMVjoUnUupRjjsp5WHE4s3nut4fW1oU7ajCjSiowisJI+pcBI8pa02ncrqI1GoMk7lBilGVB9CEoGY9vC+9Daq3g/jT6neXNWNGlKpN4jFZNeavdyvL2dRvMc8jr4mLutuXBzs/ZTUPyAAtnnwAACFZx6E+UsN8WtVWn7Yq04yxUrfEXsNASeW35mxPGzVvfWswsacsworn7Wa7PofQ+N8njRP3lptPqAAuUBACQAKBAQpIAPBAOUYuTSS5vkelfc87R/JejPWbqni4uV8XK5qP+mag8IdqVdy7kpKUH72oyUqjPWlnb0rW2hb0YqNOC4Ul5Hluvc/tr8qqw4eHf4pfZFAPHLMAAAAAAAAAAAAAAAAN8GhzfB6HoP9z9v9sLAAPRMWpt/wD9br39393E6I73f/8AW69/d/dxOiPCcz/sZP1n/wBbo8IP5lJg50iDBSAIikGhQAAAASAAI2AAAABsAAAABCQAAAAAAAYSAAIAAEAADIAAQAAIAAEwAAlmAAAACUAAAAnqKBepO4SKiESZJJ55FOPcI0R6nIAhATuUMlKADuSkAIwKZd4ez514GIoyjYEsXlWPnE6+FOssJjyzdFJ5FPSNiYGCkAEKAIYr4gL/AMHRf9oyoxbxAX/gKT/tHNy4/wCKUSwjKBOxTzMsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9AADAAAAAGuYXMBIwASkAQ7kIOh+HXrGnqek3FlVScasHHmfuIzOluy0WhFo9NPHuo29fQN01KUk4ToVv4G9NvX0NQ0uhcxafHFZ9piXuiNuO3v6WtUKfxKvKo0u5+Hwf1njpy0yrLnHnDJ6PqVI5fErmr5hSZadl5hszJcnFMp5FqUERQkOdKpKlVjODw4vKOHcETG0xOp3DYGh38by0jLPx4rEkdgYBod/KxuovPxJPEkZ3QqxrU1Ug04yWSp5OHstuHouFyPm11Pl9ACnM7gAACFAHxu7ajdUZUq0FKLWOZqvf3htQuozuLWkpRfPhS5o20RpNYaO3ic7LxrbrLXfH3PIOtbOubSrJU1JYfRox24028oSanSl9R7B1/a+n6pCTlTVOq/wBZI1lubYl/ZylOlS9NT84rJ7Tg/EFckRFvLmnPmw+Y3DQMoVE8ODX0E5+Rsm70qlCbhWtlF98xPxy0awl1opF5TnVtG0x1Ov3hgLGGZ5+QtP8A+EfSno2nxfKgn7TOeZVM9Sp7MChSqT5RhJ/QfttNHvrhrgotLzZndGytqfyKMF9B+lKK6LBptzZ+zRfqc/0wxfT9qrKndVP7qMhstPtrSCjRpRXrP0oJnLfNe/lwZeVkyeZclgpxKaXPvagi58js9I0W/wBTrKFvQk031xyML5K0jdpK1m06h10Iyk8RTbfZGa7L2ZXvqsLq9i4UeqT7mT7V2NbWKjXvUqtXrjsjNqdONOKjCKil0SR53ndX81xLPjcH+q742FnQs6EaNCCjGKxyP09h6h0R521ptO5WsRERqDPIHHuUxSpAAGSZ5B9T8OsX0LK0lOT+M18VGdKTadQ15LxSNy6beGo8MfelKXN/KwYofS5rTuK8qs225M+Zd4ccUrp5rkZpy32AA2NAARsEGD8Wt3kLDTK91N4UINn7fpNa+Nmt+9tPp6ZRn8erzmk+x2dP488jPWkEzpqTXL2eoapXu6jbdSbf0ZPxAH07HSKVisNIADYAAAgKQQACABn30+1rXt3TtqEHOpUkoxSPglzN4+582N6astwahS+JF/mVJdfWcfN5VeNim0tuHHOS2my/CTadLbO3KUZQSua0VKo8czNcBLCSXQp855Ge2bJN5XlKxSNQAA0MgAAAAAAAAAAAAAAAA3waHZvg9D0H+5+3+2FgAHomLU2//wCt17+7+7idEd7v/wDrdffu/u4nRHhOZ/2Mn6z/AOt0eAAHMkBCgAASABCBQTkCUKAAAACQAEAAAAAAAAhIAAxkAAYzEgAAAAAAABCkYTsKTowSiVABCAABnHrCdygGSUGR2HcIUHEqBtRzIUAM8wUhCLmTDOQCE6FTBOnQA3yJ2DC5kpBkMgAAAVGR7EljU2vOJjZ32y5cOrxXmjo4s6ywQ2GikQ7np21SMMdiQIAQkZjG/wD/AOX0/wDqMnZjW/VnS4Pykc/L/lyxnwwMvci6lPMSwEAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAAAAAAAAAO4KEoACUgIikbRsHQABkj6lIEOh35otPXdt3VnOKcnBuHqaPLml17jb+40ppwnRqcM19J7Ba5YZ548ftsPTtYWsW1PFG4fx8LpL/AEz0HRs8WicF/EuHl49x3Q2Bpl1C8sqVxTaanFM/Ua38JddVa2em15/HhzhnyNjReSk5/Gnj5prKucgAcSAACEqjI9rar6OSta0viv5LZjZyjJxalF4aMMuOL11LdhzTituGz001lMGP7a1dV6at68sTXR+ZkCZTZMc0nUvS4c1ctdwFZAa24AAAAAU4yjGSxJJooJiZjwTG3SaztjSdSi/TW8Yyf60VgwjWfDSpFudhX4l2izaQO7B1HPh8S5snFx3+zQGo7U1mybU7Ocku6R1VSzuaT+PRnF+tHpOUISWGk/aj8txpljX/ANrbU5+1Frj69P8AVDkt0/2l5z4ZLrFg33cbT0Os/jWNNP1I/JLYugt/+Wx7Drr1zDPmGmen3+zR+H5HKMZS6Jv6Dd0Ni6BF/wDlsn7LfaeiUXmFlD6URbrmKPEEdPv92jbewu68sUqE5Z8kd9pey9YvWs0XTi+8jc1vp1nbrFK3pw9iP1KKXRYOPN128+lIb6dOrHmWB6H4eWlvw1L2o6kvLsZnYWFrZ01C3owgl5I/UkXBUZuZlzT+KXbjwUx+ITByJ2BytwQrIAwAAABwnKMIuUnhLuT5YzaIcbmtToUpVakkopGA65qM7+6bz+bT+Kj9m5dXd1VdvRbVOPX1nRFrxcHbHdKj5vK757a+FAB27VgRnLucWQkyOwWSBL5XdeFtbzrVGlGCy2eb98avPWNwXFy5Nw4sQXqNreMW4Fp+kfk+jP8APV1h4fRGjW8vPme0+HeF21nNb7td5+wCFPVaYAAAAAkQApAg7hnabY0W713VqNhaU3KdSSWUuhhkvGOvdZNazadQ7/wr2fcbo12nFwkrWnJSqSxy9h6z0mwt9NsKVnbU1CnTiopJHSeHu1bXa+h0rSlBelcc1JebMmR4Hq3UJ5OTUeIXPHw/LqoAKd0gAAAAAAAAAAAAAAAAAAG+DQ5vg9D0H+5+3+2FgAHomLU2/wD+t17+7+7idEd7v/8Arde/u/u4nRHhOZ/2Mn6z/wCt0eAAHMkBBkJUjKCUI2MjuTAYhSFQIUABIAAAAAAAAB3BCYACA2oIgQiPKgAI/wAgBAhQTuUMvsAEJ0jQPWOQ9QDHrCDCB4UEY7hCggY0mApEGEwpPWUhIZIUgQr5cykHcJUZIV9SEHrKRPsOQQc8EbL16BrsAS5DOGTOOQAdSAEpACpZARXM7jabxrNL1s6hI7TbMsazR9puwfzIR92ykXJED1MeG5WAME6EAA0nQzHN9/8Aypf9RkUmYzvyvRp6ZGE6kYylL4qb5s5+VH/HJNZnwwZALmDzMw1z6AHIIxAABAAAAAAAAAAAAAAAAAAAAAAFIAAKQAAAAAAZJkdwBcjJAEbEUgBsYDAAAAVnQb60GluDb1xY1IpzcW4Pyl2O+XQdUbMWScd4tH2LRFo08fUXd7b3G4TUoVKFTDXmjeehahS1LT6V1SkmpR5+06Hx+2jmK16ypc1yrKK/iYd4Wbi953f5OuZ4pzfxc9mei52KOdxozU8wpstPl202+inCElJZTymczyUxMTqWoAAAABLnSqSpTU4PEl0ZmOgaxC6gqNaSVVfxMLOdGpOnNTg2pI05sMZIdHH5FsNv8Nmp8imPaBrkKyjQuHwz6J+ZkEZJrKeSoyYpxzqXosOeuWu4UAGtuACgQAAAAAKQAUZATAv0AmRknYoC6DsAA7ACsEAAAAAD516sKUHOclGK7smImfCJmIjcrOcYRcpPCXVmI7k1t1nK2tpfFXVrucNwa5KvJ0Ld4h0bXc6DvksuPxu38VlLzOZv8NE9fcoB3qrYAABGUjAh8dQuqVlZVbms1GFOLk2z7djVfjPubgprRrWp8Z86rT7eR3dP4luTmikEzqGvN56zV1vXK91OWYcTUF5I6UPqD6XhxRipFI+zSAA3AQoAEKAAIfaztq13cQoW9OU6k3hJIwtaKxuSImXLTrOvqF3Ttbam51Kjwkj1H4O7Boba0yF3c01K+qpNtr5PqOp8GPDelo9vT1XVKaldzWYxkvkm3IJLkuSPG9Z6r8yflY59FrxuP2x3SYKAeadwAAAAAAAAAAAAAAAAAAAAAG+DQ5vg9D0H+5+3+2FgAHomLU2//wCt17+7+7idEd74gP8A+Lr79393E6HPI8JzN/UZP1n/ANbomNKDjn1jix3Oftk7oUHHiXmhxLzHbKO6HMjZxyOo1Ke5RgmSgCrkTLwEwiHIEyUJAAAAJkCggINqDjkZQS5EbImGGK9iZJ9I+kJiHLOQQEi5z0CJnCGSETDkQIZQQIAZJShQxgAh3BUQhGAw0IDsGCkskwCnECjqEH0AYAABDkOQ7hC8shshUyBGOWR3ISOXRnEo7AMkBQIC9yAAgAOSfM7Hbzxq1D/qOsOw0JpapQef1jZh/PBEerZ6fIqznJwg+Ryyeqp4bohyTDZxySTM0uXNk4kfmvb23s6MqtxWjTglluTNYb48WLK0jUtdHkq1XmnPsjC14r5dnF4Obk21SrOd17o07QbWVS4qxlUx8WmnzZpzWtyW2vX/AKfUZVZyUvzFOlzcTE6dxrO7daVGlKdavVfVttJG4dr7O0LaditQ1WcJ3Cjmc6vNJ+rJotM5PT7PQW4ODp+PWT1vP2cdpaFc39JXFeNSjb/qqaxJn79U0OjSq8Ntd0lN9KcpLLOh13fOratUlYbTsnKGeF12uSR+jaG26unXEtZ1vUKtxcxXFiU3wxNM8XH40qMnCiY7p9Jn7P0LRNSfS35e0/PeWN1af7elKOT9HwubXpXM7erUqRcHhvhWP5kuN/aBuDisLCU6tTGc8Kwv4nJm4dK1m0ObL0zkYq901nTr2AO5Uq4AAQAAAAUCAAAAAABQIAAAAAAACggAAMACMoAmOZQAJgdyk7hAAUCAY5jHIAAO4Aq6EAH5dVsqOoWNWzuIKdOpHhaZ5X8Qtu3O1Ny1KajJUnLiozxywesjEPE7adDc+hVIcC980k5U5Y5+wtulc35F+y3iXPycPzK7jy1/4c7khq2mxoVpr3xTWGm+pl6Z57tK9/tjXmpKVOrRnicX35m8Ntaxb6xp0LmjJN4+MvJk9W4HyrfNp+WVV49JduDijkUIAAAQoAsJOLTTw0ZBouvTotUrluUOiZjoTZjfFW8aluxZbYp3Vs22uKVemp0pqSfrPqjXmn6jcWc06c3jyMq0vXba6ShUkoVPWVeXi2r6wuuPzq5PSfLugcYyUkmnlPujl0OWY074mJ8GCHLsOQ0lBgoGhMDBQBMDBQNCYGCgAgAAAAAAmQL3IzjOpGCcpNJLuzodX3FRoJwt2qlTz7I248Vrz6NOXNTHG5l21/e0LOk51ZperPMwvWtYr303GLcaXZI/FeXle7qOdabee2T4Fnh41cfrPlScnm2yelfAADqcAAAAIGATKyI+GoXdGytKlzcTUKcFltmVKTedQl1O89doaDo9W5qSXpGsU455tnnPVL2tqF/Vu68nKpUllnfeIO5q24NWk1Jq3pvFOP8AmYwfQejdOjjY+63mWq1toUELxipCgAAAIUHY7f0W/wBbv6dnY0JVJzaXJdDC960jdkxEzOofn02xutQuoW1pSlVqTeEorJ6O8IPDKhotCGparTjUu5LMU18g7Pws8OLLbNrC5u4Rq3skm21nhNipJLkeN6r1ickzjxz6LTj8WK/isRSisLoVAqPNzO3cLmAgQAAAAAAAAAAAAAAAAAAAAAAb4NDm+D0PQf7n7f7YWAAeiYvN3jVuC/svEnVbShJRhD0OPpowf+Zg9Tcmqz/9RJewyDx4/SvrP7j7imYOcluLim02mFRly3i8xv7uylrepS/9VM4flfUX/wCqn9Z+AqH0+KPs1fNt7v3PVtQ/5qp9YWr6gv8A1NT6z8PchH0+P2PmX93ZR1vUo9LqZ9Ybi1SH/qZP2nUATxcU/wBKfm392Q0d16lHrNS9p+yhvO5jyqUYsxIZNVuBht9mccjJH3Z5bbyoTwqtFxO0ttxadWx+eUX6zV6ZU8HLfpOKfDbXm3jy2/RvbasswrQf0n6ItS6NNGnqVzXpNOFWUfYzsbTcWp27SVdyXkziydHtH5ZdFOfE+YbSKjC9O3lF4jd08etGR2GrWV4k6VeOfJvmVubh5cXmHTTPS/iXYZHtOOU+/IqObWm+NAACRkKwglAGO4QBAvYAvWF0DyTn1IFx5hciZLnyJF7ExzKhghiIIAJQrA6kgCFAZAY9oAIpAkYwVEYDA7BBgQrDIEBSFAZBABRge0AXkcQUAhkZAEADAAACo/Drt1VstKr3NCTjUpxzFrs8n7lk6jdzxt+7f9j/ADNmL88OvgVi/IrWfc2d4yzo0IW+tUHNrl6SPU2JpfiLtm/pqUL+EH5SyeVO5zi2j0NckxD6PyPhbjZvxV9Hq2/39tu0puc9Qpyx2WTBdzeMtCEZU9JtnN9py6GjuN+ZOvcWzScb4V42Od3nbINxbv1vW6spXV5U4H+onhIx9ylKWW22MHOnSnOSUYtvySNUzNnoMfHw8euqxEN0+AljSho9zqFOEJXTlwxcu3UyvUtBoXVd3mvXzrRjzVPixBGr/DjWNf0O1rULXSLi4jU5xxB4T+ou5Lbf24Jv09C4pUX0pxTSN9barp4fl8Oc3Mta2SIhlWveIG29u0nbaZRhXqR5KNNckax3T4ha5ranS9K7e3fL0cO5y+DzcLefeNZt/wBlnYaT4VbkvayjO3VGHeUjGZtK54mHpfFjvveJlr1qU5N822be8ItGp0NAuNRkk6tTl05xRlW1vCTSdJxdaxVjXkufC+SO51SWkWNnOz0qjCEZP4ziuRrzVmKTtU9e69h5GKcGB0RR2B5+XhJiY8gA7kIAO4AAAAAAAAAAAAUgAAMmQKMjI6gA2TuOYBlI+YQFAI8gXuMkyAhSPqXJH1CQqIAg7lfQi6hsJAAEAAAB4DAGpPG/YkdStZa1ptJK5prNSMV8pGodlbguNA1T0dTiVJy4akH2PXE4KcHGaTTWGmaC8afD6VlWnrelUm6MnmrCK6es9H03mVzU+nzODk4P6qs1028o3trC4oTUoTWVg/SaW8Pd11NKuY2d1Nu3k8c/1Wblta9O4oxq0pKUZLKaZUdR4FuLk/w4X3QOOX0LkrdAyAEpgK8EKwkWTlCTTym0zj2GSPKHbadrV1atJzc4+TMjsNftbhJVHwS9ZgpU2jRk41LuvFy8mNs6lWp1I5hOMl6mfRM1tbX9zbv83Vkses7ez3LcQ5VoqaOK/DtHhY4uo1n8zNCHSWu4rOqkptwZ2NG/taq+JWg/aznthvXzDtryMdvEv1JlOEakWuUk/pLk16lsi0SpSJhNZCYmFBMhA3ChHFvHM+dS4o01mdSMfayYrM+ETeseZfYmTq7rXLGinmpxPyidPe7pk+VtSx62bqca9vs58nLx0+7KalWNNZnJRXm2dRqW4LS2TjTfpJ+oxK81K8u3+dqtryyfj9vM7MfCiPzK7N1GZ9Kuy1PWLu9k1xOEPJHXPm8t5AOytIrGoVt8lrzuZAAZMAAAAABF3AI8JZEeqYScowg5SajFLLbNLeLO8JX9zLSrGp/4eDxOSfymd74r70VrSlpGnVfzz5VJp9F5GnJyc5uUnlt5bPYdD6V/eyR+jC1vshCg9c1ABCUhScwBR3wc7ehVuKsaVGnKc5PCSWTb/hp4Q3V/Knf63F0rfqqfdnJyeZi49d3lsx4rZJ1DBtjbJ1bc97Cnb0ZQoZ+NUa5JHpnYOyNM2rYRhRpxqXDXx6rXNnfaLpNjpFnC1saEKVOKxyR+9Hiuo9Xycme2vpC2wcauP1kXIoBSukKRFApAAAAAAAAAAAAAAAAAAAAAAAAb4NDm+D0PQf7n7f7YWAAeiYvK3jx+lfWf3H3FMwgzjx4/StrP7j7imYOapn1Ueb+Zb9ZAAQ1gAAgL3ITCQDsOxIAAAF1AJSufUc6VapTkpQnKL9TwfMGE0ifJHp4ZDpW6L20ahVfpYesy3Stx2N6lFzVOb7M1icoSlF5i2miu5HTMeT1j0dOPlXp5blhJSWU00cjWOkbjvbGSjKbqU12Zmekbhs76KTmqdTumyi5HT8mH18wscXKpf0d2RkUk1lPKLk4NadUTEgKTkAQDOLnFdZJfSTETKJmHJFPhO6t4Z4q0F/ePjLU7GPW5h9ZlGK8/Zj31j7v2g6561py63MDj+XNM/wCZiZfIyeyPm193ZlydYtb01/8AqYnOGrWE+lzD6yJwX9j5lJ+7sAj89O7t5/Ir03/ePrGUZdGn7GYTS0fZO4c2QhyRikHQhWSk7jsCAUZA5BIwUARdR0RSdwBAAgAKgJ1BWOwANEAFHcBABywUmQBAAAAAqOn3j/V66/6f8zuEdLvR427df9P+Zsw/nh3dM/7dP1adS5lHQMvNvt9PywYP1abp93qFxGhaUJ1akuSUUd7sTaGobmv40qMHCgn8eo1ySPROz9naTtu1jGhQhKtj41SS5tmdMc2ed6t1/Fw/wU9bNV7P8ILy6jCvrE3bwfPgXU2joex9u6RTSpWVOckvlTWf5nf3V/a20c1K0IpebwY7qm8dGts+kvqSx2TydEVrV4rPzufzrffX+GQQp2dvHFKhSgv7MUiSuaa6Rj9Rrq98S9ApyajcSnjyTPwPxU0RP5FVk98MK9I5d/XtltF3cf2F9R+a/vrynQcrKhTqTX6reDXlHxT0CTSkqkTtLLxD21XaXvvgb80x3RKLdK5NPWaS6jdO49coTlK90m5UV+x8kwDX95Xt1QlbULf3us/K7m87XW9F1CniF3b1E+zaOv1jZu3tZpuTt6cZv9eBryY5t93ZxL4MFo+djaP03eGpWmI12q0F59TMNE3RYajinx+iqv8AVkfi3h4Y3unwncafL09Jc+Hua5qRrWldqSnTqRfdYaODLxayvrdM4HU6bxekt4p5RUYbsbcfvyCsbuX52K+K33MyRU5Mc0nUvB9Q4OThZZx3AAYOAAAAAAAAAAAAZHcnmAyV9CAIEPYAAXUMAAAAGQAAwB2AADoAAQQAdwXuQAO4AADsAAAYA+V5b0ru3nQrwU6c1hpo+oJraazuD/Dzd4veH1xoV5PU9NpynZzllpL5B1/h7vGen1Y2N9Nug3hSb+Semr60oXtpUtrmnGpTmmmmjzn4s+HdzoF3PUtNhKpZTeWornA9NxOXj5uP5Gfz9lbyOPNZ7qtnW9encUo1aUlKMllNH1NM7C3lV02tGzvZOVBvCb/VNv2dzRu6Ea1CpGcJLKaZR8/gX4t9fZyRL9HUEKivSIABIAAgAAFYIBoXPkco1akfkzkvpOAEwmLTD9VPULun8mtP6z9VPXb+C5VWzqwYTjrP2bIzXjxLuo7kv49Wn9BzW5739mJ0ZDH5FPZn9Tl93evc18+SUUfOe4r+X66R0wHyaeyPqcvu7CrrF9U61mflqXFep8qpN/SfEGcUrHiGuctp8yrbfVhdCAz0wmdqU4l9hGkKCe0oAAAAAAJkMjaSy3hExG0hgPiVvajpNvOwsaindzWG1+qcPEffVLS6M7DTpqd1JYck/kmlLu4q3VedevNznJ5bZ6fo/RpyTGXLHoxtbSXFercVpVq03OcnltvqfMhT21axWNQ1IgUE6NICn7dJ0q/1S4jQsrapVnJ4+LExvetI3aUxWZ8PwrmzJdobM1rct1GnZWs/RN/GqNckbS8PfBhfm7zcEs9GqK/zN2aTpdlpdtG2srenRpxWMRR53n9dpj/Di9ZduHhzPrZhHh94X6Rt2lCvcwVzeYy5SWUn6jYVOMYRUYpJLokcsA8jyOTkz27rysqUrSNQoAOdmAAaBFIBoUBAAAAAAAAAAAAAAAAAAAAAAAG+DQ5vg9D0H+5+3+2FgAHomLyv48fpW1n9x9xTMHM48ef0raz+4+4pmD9zVKjzfzLfrIACGsAAEYwVhk7SgKTA2GOQL6yCADAaJDsAAAQAA5QnKElKLaa7o4l5GE1ifJvTIdG3Pd2bUKz9LT9fVGaaVrVlf0806ijL9lmqso50qtSlLip1HF+plbyOm48vrHpLqxcu1PSW1rzVbG0T9LXjldk+Z0V7vG3hlW9NyfmzB51alR5nOUn62cPaa8XScdfzerO/NtPhkV3uu/q5VNqC9R1tbV9Qqt8VxP6GdeuZTupxMVPEOe2e8/d9Z3Nefyqk37WfNzm+rf1kBtjHWPENffK8QyceQwT2wjuly4gptdzgCOyvsncvvC4qwfxakl7Gfstdb1C3acLiTXk2dawYWwY7eYZRktHiWa6Nu7inGlexSzy4kZfRqRq04zhJOMllNGm11NnbPdR6NS9Jn1ZKLqXDpijuqseJntee2XcpnI4roXJTLA7kLgAEO5CgUEASdwCBGwAAXJBkA2AZJn1jUo2oJxx7ySOMqtNdZxX0mUUtP2R3Q+hD4Su7aPyq0F9J85alZR63EDKMN5+zGclY+79mSHXy1iwj1uIs+ctesI/7zJsji5Z+yJzUj7u0KdLPcdiujkz5y3NarlGEmZRws0/ZhPJx+7vS9jHZbno9qLPnLdEc8qBnHAzT9mM8vH7sl+hnS725bcufZ/mj8Mt0T7UEdXuXXp3WkVqDppKS6m3HwM1bbmFj0jlY7cykRP3YC+rP26JaQvNUoW9SpGnCckpSbwkj8TfMqbi8xbT80WEQ+5WrN8eonT0LZ7v2ptDSKdpaVYVKkY8/R4eWYduTxi1C54qem0VRi+kn1NVSlKTy5Nv1s4mffPhSYfh3j1v35PxT/l3eqbq1zUZN3F9VafZSaR1FStVqPM5yk35s+RUY7XGPi4scarXS5YROgXUlvisQv0jL8wEQTWJfahc3FGSlSrTg/OMsHf6TvbcOnNeivZziu022Y2UmJloy8TDljVqxLaukeLt0kqepWsZxfJtHz3S9s7ns5XunyjQvcZcemTVrOdGrUpTUqc3FryZl3b8q/wDg+LHf5mH8Mv02862najGosxnTkbi0e6V5p9GvF54o8zTVzcyuGpTS4l1fmbH8OLp1tHdJvLpywVvNxxrcKL4s4nfx4y69YZUAgVb5wAAIAAAAAAAAAGOwE7FJ2KAZCkaAe0YBQJzKwAIMFIwgwVE7jISMAPqECDAApF1ACdqwQEm1fQgI5RS5tE9sz4RMwoPlK4ox+VUivpPjU1Gzh8qvH6zKMN58QwnJWPu/WGdZU1uwh/vU/Yfnq7js4/JTZtrw80/ZrnkY4+7uz4XtrQvLadvc041KU1iUWup0VTc9NfJot+0+M901P1aKN9On8iJ3ENduZi92ofFjwyuNJqz1TRqcqltJ8U4Jc4mLbI3fdaJcRt7lynbt4cX+qb9udwV69OVOdKEoSWGmsmqN/wCy4X86moaXTjSqvnKmuj9h6TjUtmxfK5EK7LkxzbdWf6XqFtqNrG4tqsZxkuz6H7Ox5+0DcGqbZv8A0c1NRi8TpyNybX3LYa5axnRqRjVx8aDfNHn+o9Jvx57q+tURO3fIE78gimSoAAAAnQAAIAsgEgAAAAIAAAAAEgAAAFAhehAQKhkEAqA6HW65rVho9rKveV4wSXJZ5szx47ZLarGx+6vVp0KUqtWahCKy2+xqvxC8REuPT9GnntOqv8jHN878vdZqSt7SUqNquWE+cjCJNt5bzk9h0voUV1kzf/412t7OderUrVZVas3Kcnlts4AHq61isahgEAjGUpcMU235GSQ+trb17mrGlb0pVJy5JRWWZVtLYuo6xUjVrxlb2/eTXNm5tn7d0PbkIyo2ca9ZdZzWTh5HL+XGq+spr279WAbB8INU1eULrVU7W2fPhfymjfO1No6Lt22jTsbWCmlzm1zf0nwp7jUEoqgkl2R9Y7lh3os8pzbc3kT6+FhizYKQyNLyGDoI7lo96TPpHcdq+sJIqp4Of2dEcvF7u8B063BZvq2j6R1yxl/vMGueHmj7MvqMc/d2gPwQ1Wyl0rxPtG9tpfJrQ+swnBkj7M4y0n7v0g+ca1KXScX9Jz4ovo0YTW0fZlF4n7qBy8wY+qdwIpAglQAQAAAAAAAAAAAAAAAAAAAG+DQ5vg9D0H+5+3+2FgAHomLyv48fpW1n9x9xTMH7mcePP6VtZ/cfcUzBzVKjy/zLfrIACGsAABjvgjyXuEn0hAewbQEKyEwkHUAmRexMjIIiADAJAADYBFx5gjZtUx1RAQhyQIUAAAJgoBAjRDkRiUwhUj9lhpt3eySoUpS9eORlui7ThTcat6+KX7KOPPzMeLzLfjwWv4dDt3Q69/XjOcXGinlt9zY9tSjQowpQWIxWEKFGnRgoU4qMV0SPp7TzfL5ds9v8LbBgjFAVEBxt7l9JOZMlAADIFHJHFtJPJ1t/rVna5jxqc12Rsx4r5J1WGF8laeZdnlHGU4rm5Je1mI3e5LibaowUF5nV3Go3dbPHWl9DLDF0rJb83o4786lfDOqt/a0vl14fWfira/YU+lRy9iMIlOUusm/aceZ3U6PSPMue3ULfaGW1dz0F8ilJ/SflqborP/Z0kvaY6uQ5HTXpuGPs0W5uSXc1dxX0ujUfYj89TWb+f++kvYdc0MnRXhYo+zVPJyT5l+qWoXk/lV5v6T5SuK8vlVZP6T5MZNscekfZrnLafu5Oc31kyZfmTIyZxirH2Y98+59I+kZIT2QjulQF1A7TY/aXuTsUaA/NqqzZyR+kyPw90f8ALG5LejUoeloReaiaysYMMkfhlYdMzfI5VMntLWbpzz8mX1D0dT9iX1Hrj+he3M8tLt/8CL/Q3bvzVbf/AI0Vny7Pr9fjLFERHY8iulUf6kvqJ6Kp+xL6j13/AEN278123/40VbP26v8A+V23/wCNf9iflSn/APc8X/w8h+hqf8OX1MvoavanP6j16to7eX/8rtv/AMa/7FW09vp//K7b/wDGv+xPypR/+5Y//h5BVvXf+6qP+6zkrS5fShV/wM9fx2voK6aZbf8A40c47d0WPTTbb/8AGiflSifjSv8A8PIEbC9l0taz/uM5x0zUZfJsrj/8bPYEdD0iPSwt1+7R9I6Vp0elnRX9xD5TCfjT2o8gQ0XVpdLC5f7t/wDY+8Nua3NfF064/wADPXisLOPS2pf4Uc1a2y6UYL+6PlNc/Gd58UeR4bS3DP5OmV/8LPvS2PuWfTTKv0o9ZqjTXSnFfQclTh+yvqJ+T/lrt8Y558Uh5TpeHu6Z9NNmvpRmOydoa/o9K4q3tq6dJrPVG/OFeSPjqFJVbGtTa5SgzXk4sXrras6h8R5+XinHaPRqNSXZplyjCtTu7u01KvRhWliE2lzFLXr2HWSl7UcNukZNbrLxX8QrE6lmqYyYvQ3LLkqtJP1o7K11yyrYTnwP1nJk4GanmG+vLx2+7t0MnypVYVI8VOakvUfTKwcc1ms6l0VmJ8DARSEgAYAhexASADuEAyPaOrADJcAJRgMPqEHYYKRdQleQ7ZI2kSUlFZbSQiJnwiZiFDx0PwXerWVvlSqpvyR1N1uVc1Qp/SzqxcPLk8Q0X5OOnmWS5wj5yq04/KnFe1mFXGt31bP5zhXqPxVLmvP5dWb+k7sfSbz+aXJfqNY8QzqrqVnS+VXifiq7gsofJcpMw1yb6tsnM7KdKxx5c9uoXnwyiruaH+7ov6T8lXcl1J/EjGJ0XMckdNOBhr9mm3Lyz93Z1dbv5v8A2uPYfmqajdz61pfWfkyDojj46+IapzXnzL6Sr1pfKqSf0nzc5Pq2wRmyKVjxDDumfuZZC4GDLSELgAIQrfqIwBju7Nq2OuUXJwVK5S+LURqq+sda2pqKqR44KMuU49Gb3Py6lYWuoW8qF1RjUi1jmuhurk3Hbf1hsreYYtsvxCtb2MLbUpKnW6cT6Mz+jWp1oKdKcZRfRp5NObr8Pri2lK60hupBc+Dujqdv7v1nb1dW9xxyhF4cKnYp+b0SmX8eH/8AxvreJb8yXJim2t66Tq8IwdaNGs+sZPBlEJxklJNNPujzObjZMM6vDNzBEMmgUBAAACUAAAAAgCkKmQkGCFyShC4CYyARB1YAFyTsSc4wi5SaSXdk1rNvSBThWq06NN1Kk4wiurbwYrubfej6RCUI1lXrrpCDzzNS7p3tq2tVJRdV0aPaEHguOF0XNyJ3Magm2mxt4+I1np0Z22nNV665cS6I1Drmt6hrFzKve15Tb6LsjrpScm3JttkPZcLpeHix6R6te5kIUFnrSEKdpoug6nq1RQtLack38rHI2Ttfw2t7fgr6pL0k1z4F0NOTNWjGbRDXOg7b1PWK0Y21CXA+smsJG1NpeH1jpvDXvUriuufPojM7Ozt7SiqVvShTiuiisH3S5HDk5Nr+GE3mXGlCFOPBCKjFdEjmAczBGMFBAYI2VkaAZ9pM+QA1CNyqb7NnJTkukmcARNaz9k90vtG4rR+TVkvpPtT1K9h0ry+s/GDXODHPmGUZbR93a0tcvo9amfafqo7krr/aQTOgBqtwsNvs2RyckfdldHc1FpekpyR+6jrljUx8fh9pgyKc1+lYp8N9efkjy2JSvLaoviVYP6T7qUX0af0mtY1JwfxZNexn6qGp3lH5NaX0vJx5OjzH5ZdFOox94bC5YHYw+13JXhhVoKS9R3FnrtnXxGU+CXrODLwMuP7OqnLx3+7twcYVIzjmEk16jn2OKYmPLqiYnwgAISAAAAAAAAAAAb4NDm+D0PQf7n7f7YWAAeiYvK/jz+lbWf3H3FMwczjx5/StrP7j7imYOapUeb+Zb9ZAAQ1gAAAAAQoAncFJ0RMSkwULoCEGAAAIlyKAJ0AYRKVQCBCAcsAAVMpEGQKCdxkkUEXUoEyM9GGDGUsm2/uSNlTjQrUE4r9ZdTMNO1azvYp0q0c+T6mqcn0oV6lGanTm4td0VvJ6dXL6x5deLlWp6S3EmmGYTtvc1RVI295Lii+SkZpTkpxUk8prKPPcjjXwW1ZaYs1ckejlgMvrIc7adgAAAAHQbsvqlCEaFKTjxdWYlJuTy22Zhuqwnc0VVpLModUYdJSjJxkmmj0/TPl/L9PKk5vf3+vhGQZ5lyWrh2hcjmQlC5GCLJQGAxlhDYLqGgM88E7AhQNo0YIciPoNmkBWQkXIyQDRtyNw+BVKyVlc1Yyi7lyw0+qXI07k7naevXOgajG6t5PH60f2kaclZmHTxskUvEy9M4HU1G/F2fzd/wD9HH4XavzevrOeMcrr6zF7tvDBqH4XK3zevrI/Fyv83r/ET2WPrcXu28DT78XLj5vX1kfi5ddrBfWOyx9bi924Qacfi3edrGP1nzl4tah2s4fWT8uyPrsXu3ODSsvFnVe1rTR8p+K2sv5NCkvoHy7I+vxe7d5MGjJeKevv5MaK/u/+58peJ245dJ0o/wB1/wDcfLsxnqGKG+MDK80aAqeJG5Zf+pivYn/3PzVN+7ln/wCukvZn/uZfKsj+JY3odyiuskvpPyapf2tpZVqtavTiowf6x55q7w3BV+VqNb62dfd6vqF3Fq4u6tRPqnImMMtN+p1mNRC61Xjc6pcV4fJnNtH4iZGTpiNRpUWt3TtyHNc0zjkqbImIljt+m0vrm2mnTqS5dmZLpOvU67VK4XDLzMQzk5021NNdcnFyeFjy13MOnDyb459GyYyTWVzTOWT8ekuTsKLn14V1P1nkcle20w9DS26xKgE7GDM6sDoO4QAY5DmAAKugAiL3ASjC6hlAZOLZyPzajUlTs6k4Lmo8jKle60Qxtbtjb8eraxQsk4rE6nkjF77Vru6k8zcY+SPxVakqtWU5tuTfM4s9PxuDjx1iZ9ZUWflXvOhtyeW22QA74iI8OTewMmR1MkKgHyIBWQrISAAAAAAACUhCglCYIUMgAQEA+mGuR0ev7Z0vWKbVahGNTtOKw0d4O5lW018JidNN7g2HqulzdfTpyrU1zXD1R+fRd669odRUbpTqQjycaiN2NcjqNZ25pOqxaurWDk/1kuZnb5eaNZI22xkl1m3vEXSb9Rhcy97VH+10MwtL61uYKdCvCon5M1Jr3hnXhKVXTKylFc1CXUxdx3Lt2ty98UuHvFPBWZ+hYcvrinTZGSHoziQT5GkdH8TdWtsRvYqvFdc9TLtL8TdHuMRuIVKMn9K/kU+fonJxeI2yiYlsEHR2O59GvEnSvqfPtKSR2lK6oVFmnWpy9kkytvxstPzVS/QEcFJNcmXJqmswnTkCJ+scRCFBOJDiQFBx4kSU0u+CYrM+IHMH4rvVNPtIuVe7oQx5zWTGdW8RtAssxhUnXmu0Vy+s6cXCz5fy1GZ5PhdXdvbQc69aFOK82ah1rxTvq2YadQjQi+8ubMJ1fX9V1Obld3dSon2b5Fzxvh3Ned5J1DGbQ3DuPxH0nTuKnaP31UX7PQ1nuPfOs6vKUVWdCk/1IMxZtsh6Xi9H4/H9dbljMzLlUnOpJynJyb7tnE5U6dSpJRp05Sb8lk7jTNra1qE0qNnUSfeSwiz3SkI26Q5U6c6klGEHJvskbL0XwurycZ6jcRiu8Ymb6Ps/Q9MUZU7WM5r9aXM578qseGM3hp7Q9m6zqk0428qdN/rSRsLb3hrYWbjVv6nvif7PYz+EIwiowSSXRI5HJfk2swm8y/NZ2VtaU1TtqMKcV5I/QlgoOeZ35YAAAAAAAAAAAhDkziEADXMAAXsQACkAE7gE6AcwBMAwm10YBjMbH79O1S5s6i4ZuUe8WZlpd/TvrdVIPn3Xka+Mg2a6nvmaXyMcyo6jxaTSbx5d/C5Fov2yy4BdAeaXgAAAAAAAAUgAG+DQ5vg9F0H+5+3+2FgAHoWLyv48fpW1n9x9xTMG7mcePH6V9Z/cfcUzBzXMKTL/ADLfrKgiKYtQAAAAAAAAGTuUAgAAAAAAAGO4AAAAACoAikQYBgMhMJUZIBoXsQqYZEwIUIEaNuUG1JNPmbT25OdTSKMp5zg1nplvO6vKdGKzxSRtawoq3tadFdIxSKHrFo1EfdY8Gs+sv0PoRF7EKFZyAAAAAI45XQ66/wBHtLvLlDhk+6OyBsx5b453WWF8db+ksQvNtVoNuhNTXkzqrjTL2g3x0ZY88GxGkcZQjJc4plli6rkr+b1ceTgUnw1m1KLw00TPY2LWsLWssToRfrPwV9vWNTnFOHsO7H1fHP5octun3jwwpMZRlFba8f8Ad1/rPx1dtXUfkzjI669Qw2+7nniZY+zoyM7Opod/D/dN+w/PU028h1oTN0cnFP3a5w3j7PyLmTufd21ePWlNfQcHSqJ84P6jbGWv2lhOO3s4INtMvDJL5L+oYeejJ74R2y4nJdA16h0RPdCNSjfMB8wkT3GpAXsGO40hc8gQn0lC8i5IQag2uRkhQGRkEJ9ABRgbgCFwMDcQalAVRfky8E30hL6jHvr7p7ZlxB9FRqvpTl9RzjaXMulGf1GM5aR90/LtP2fAH7IaZey6W8j7Q0TUJf7h/WYTysUf1JjBkn7OtKjt4be1CXWKR+mlti5b+PVijVbn4Y+7OOLln7OgBlVDa9Jc6lZv2HYW2iWFDD9EpPzZy5OrYa+PVvp0/JPlhltZ3NxJKlSlLPcyDStvOM41bp9OfCjI6dKnTWIQUV6kc+XYrOR1XJkjVfR34eBSnrZIRUYpJYS5IrAKmZ36u/xGgvPBEUATBeoCT2AACFAABAAGMgYAdjhUipxcZLKawzmF5kxOp2iY2wzXdHq21WVahFypPny7HTGypRUlhpNHU6hoVrc5lBejn5ou+L1OIjtuq+RwdzujCiczt73Qrug24R9JHzR1lSjVpvE4Si/YXGPPjvHpKuvhvTzD5gA3Q1ADBIAAAAAAAAAAnSQABAGABxByJ3I0GAikZOhAAQk5nxubWjcQcK9GFRP9qKZ9ikxMwbYjrGwdFv25xpuhN949DENU8Mr2lmVjcKouylyZt1rkOWDdXPeqe6Wgbza24tPbbtquF3jk/JHUNcsJY9Lc02vOTPQ8oRfVJ+1H5rjTrGusVbWlP2xM5z1t+eu098tI2m+tftulw5Y/a5naW3ihrdPlOFKf0f8AsbGu9o6BcZ47Cmn6jq7jw50Gq24xnT9hrnFxL+aM/mSxuj4sX6x6SzpP6f8A2P1Q8WqmPjWEfokftq+F+lS+Rc1V9X/Y/NPwsteL4l7P6f8A9GE8Lgz/AEp+ZLhLxZn2sI/4j8tfxXvmn6KypL2v/wBj9fwWW/8Azsv9fQfooeF2nr/aXVR/69hEcHgx/SfMY3deJuvVU1D0VP2RT/yOnvd57gu01UvpxX9nkbGpeGmjR5znUkfqpeH2gQ60XL2m6uPiU8UR8xpa5vbu4k3Wr1ajfXik2fGNOrP5MZP6Dftvs3b9HmrGDfrOwoaJpVHHorGlHHqOiOTSv5YR3vPttpOpXDxRtKsvZE7ez2RuC5w1Zygn3kb4p29CmsQowj7In1SS7YMZ5k/aEd7UGn+F+oVMO6rxpLulzMk03wy0ihiVxVqVmvo/zM8yE8Gm3IvZj3y6rTtt6PYpKhZUsrvKKbO1p04QWIQjFeSWCpopqm0z5Y7AMggAAAAAAAAAAAAAAAACMuSZ5AO5CkCF7EKQnQD1gYGtCAcxgkAPoOUKcpPEYtmFrxHlMRMuIP3Wul3lw/i0pJPuzvNP23GLU7mfF/ZRyZubixx6y34+Lkv9mPWNjXu6ijSg2u7M00bT4WNDhXOT6s/Xb21KhBRpU1Feo+yRQcvn2z+keFtxuJGL1nyAArXaAAAAAAAAAAAb4NDm+D0PQf7n7f7YWAAeiYvK3jz+lfWf3H3FMwcznx4X/wDFbWf3H3FMwYwlSZf5lv1kKQGMw1qAGQgAQAAAAAAAAAAIAAAAABAAAkCodygRdOgHYAQAGSQrIUSAZCoiSQqXE0lzZMNtJIynaugOrUjdXa4YLnGL7nPnzxjruWzHjm86djsjR3Qh79rxxOS+Kn2MsR84SpwSjFpJdDmpp90eS5OS+W82ld4qVpXUORGTJWczbsAAAAAAAAAAAAJACFfQIbSmA0n1RQzKLSah85Uqb6wi/oPnK0t5daMPqP0MGUZbx4lhNK+z8ctOs5dbeH1HCWk2L60IfUfvCRlHIyR90fKpP2da9FsH/uUcJaFp7/3X8TtS4Mvqsvuj5GP2dO9v2D/Uf1nB7dsn0Ukd3gjMo5mb/wCmP0+P2dE9t2fZyRxe2rXtOR3/ACLgyjnZo+7H6XHP2Y69s2/arIn9GaP/ABWZE8An+IZ/dE8TF7Md/oxR/wCKyf0Yo/8AGZkYwT/EM/uj6PF7Md/oxRx/tmFtih3qyMiBH8Qz+6fpMXsx9bYtu9SRzW2rPvKT+k70Iiefm90/S4vZ0sduWK68X1nNbfsF+pJ/SdvguDH63N/9JjjY/Z1cdD09f7k+kdHsI/7iJ+8GM8rLP9TKMGOPs/HHTbJdLen9R9Y2drHpQpr6D7gwnPkn7p+XT2fNUKK6U4r6DmoRXRL6ihGM5Lz92UUr7GAUGPdLLUJgFBCdIC4GAAwABPoBQDSdCgIAAAAAAAAAAAAAAAABgcgPWBGj4V7W3rLFWlGXtR92DOt7V8SwtWJ8unudv2VXnBOD9R1txtmosulVT9plQOvHz81Pu0X4mO32YLX0S/pc/R8S9R+Kra3FN/GozWPUbGOMqdOXyoRftR2U6vb+qHNbp9Z8S1rJSXVNfQRM2JUsLSp8qhD6j8tXQ9Pn/u8exnTXq1J8w0W6ff7SwYGYVdtWknmE5RPzVdrp/Irv6Tor1LDP3ap4WWGMA72rtm6j8icZH5p6DqEP93n2G+vMw2+7VPHyR9nVdh9J+yppl7D5VCR+eVvWj8qnJfQbYzUnxLXOO0eYfPJQ4SXVMnMz7oY6mFBMhk7QoIMonYDIHICAoIEAAFIXA5ABgZIDa4JgqKBxwXBQBOgKAIMFAAAEgAAAAIQAAmAOSeTiFyJHMEz6hkJUEyhkCgmWMkGxdSnEoRsyBgDcJ9QFUZPpFnONGo+Sg2YzesfdMUmfs+ZMH6oWN1P5NGT+g+9PRr+fSi0YTycdfMsow3nxDr0Duae3b2XXET9VLbM3/tKqXsNNufhr922vEyT9mNplMupbbtY/LnJn66Wh2MMfmsteZz26tir4bq9PyT5YOoSbwk39B9qdnc1Pk0Zv6DPKdja0/k0YfUfaNOEVyhFexHLfrHtDdXp3vLCKOh31X/d8PtP3UNs1n/taiRleORUcl+q5beG+vAxw6O325aQx6RuR2FDTrSj8ijHPng/Wi4OS/Ly38y6a4MdfEOMYpLCSRyAOebTPltiIgABCQAAAAAAAAAAAAAN8GhzfB6LoP9z9v9sLAAPQsXlfx4/StrK/+x9xTMGwZ147/pW1n9x9xTMGZr+6ky/zLfrKAMEsAZAI0hUCDuY6FAyRjSFBEX6QAIyoaDsAxklK88k7jm2XoQgI+o9oXmBUhgF7ATBSIZGgHQgMkgAJSAAAVEBEofSlUlTmpx6o/XLVb5rHviaXkmfgBrtirbyyi0x4fs/KN7/zFT6z6U9X1Ck/i3NT6z8CYyYTx6T9k/Mt7sjsN13tFpVvzsfWZXo+vWeoRUYyUKn7LNY5OdGpOlUU6cnGS6NHFyOm47x+GNS34uXevluJcyroYttTX1dRja3MsVV0b7mUxfI81nwWw27bLfFki8bgA8waWYAAAAAAAAAAQAAE6AAAAAAqIOwSAAIAGAHYAAAAA9o9QAAcgAKRlZAk7AAIBkAB1KEAkAAAAoEAAAABIAAgAAAAAAAAAAAAAAAAAAAAARh9SsY5gQvUYADuO4ADqTCyVhAR47BIoGzSYGDkPoJ3JpxcU+qRwlRpS+VCL+g+uBgyjJaPuxmsez8s7G0n1oQf0Hxno9hL/cROwwQzjkZI8SwnFSfs6mpt+wl0g17D889s2j+TOSO+Btrzc0fdhPGxz9mNz2tD9Wsz4S2tUXyayMrBsjqWaPu1zw8U/Zh8tsXS+TUiz5T25fLpwszUG2Oq5mE8DGwaWgagv92n9J85aJqK/wBy/rM9BnHV8jH+H4/dr6Wk36/3Ej5y068j1oT+o2KOFeRsjq9/ZjPTa/aWuHZ3S60Z/UcJW1ddaM/qNkOEe8UR0qb/AFIv6DOOsT7MZ6b/AJa29FVXWnP6iOnU/Yl9Rsh29F9aUPqJ70tn1ow/wkx1iPvDGemz7tb8E1+q/qCjL9l/UbGdjaf8CH1HF6fZf8CH1GcdYr7I/htvdrzhfkxwvyZsF6bZPrQh9RPyXY/8CP1Ex1ensj+HW92vsPyYw/JmwPyVYf8ABj9Q/JVh/wACP1D+L4/Y/h1vdr/D8mMPyZsD8l2H/Aj9Q/Jdj/wI/UP4xj9kfw6/uwDD8mOGXkzYC0yx/wCBD6i/k2yx/sIfUP4xT2T/AA63u19wy8mOGX7L+o2F+TrP/gQ+oLT7P/gQ+oj+MU9j+G292veGX7L+ocEv2X9RsNWFp/wKf1F942n/AAIf4SP4xT2T/DZ92vOCf7MvqKqVRvlCX1Gw1ZWq/wBxT+o5K1tl0ow+oj+MV9iOmz7teKhV/wCHJ/QclbV3/up/UbDVvRXSlD6iqnTX6kfqMZ6x/hlHTf8ALXqs7p9KM/qPpHTrx9KEjP8Agiv1V9RcLsjCesW9mX8Or7sDjpF9LpRZ9Y6Ffy/UwZuDXPV8n2hnHT6MOp7dvH1cUfaO2az+VVijK35AwnqmaWccHHDGobYX61Y+8NtWyXxpyZ32CmmeoZp+7OOHij7Onht+xj1TZ94aPYR6UUzsUhjmap5eWf6myOPjj7PyQsLSPShH6j7RoUo/JpxX0H0aKjXOa8/dnGOsfZxUIrpFIq5dig1zaZ+7LUJzBRhDaUKgkGQKQAAAABSAAAAAAAAAAAAAAAAAAAABvg0OzfB6LoP9z9v9sLAAPQsXljx3/SrrP7j7imYMZz47/pW1n9x9xTMHZq36qPL/ADLfrKdyFBkxQAAAAADAIQIBAaAdAMDQdiogJSoAAAAAB2BCDIAJAABIAAAAAAAAAAAAAAAhD629adCtGpTbUovKNmbb1KOoWEZtrjXKSNXo7/Zd+7XUVSk8QqcvpKvqXGjJj7o8w6+Jl7L6bHwCJ5KeUmNSuQAAAAAAAND6gAJ0AmUMjSFBMjiS7k9sk6VBnHjgusl9Zx9LDPy4/WT2T7G4930DOHpYPpOP1lUovo19Y7J9jcOQJkNkakXJe5xyXsQkAAQdwO4ADuChKMq6AAQYZQBA+oQfUIMF8guhAle4AQAAAAUgApCgCAoEAAApCgQuAEAIXuAIAUCAqAEBUQCkKQCkAAApAAAAAAAAyoAAAAAQADuH1ApH1KABMFAE5DBQBMAoAAACYGCgCDBQBMIYKRsBgPBSPoBMFxzImH1CDuB1Q9vQCY5lwM88gA+Q7h9CcwLjkAO4BrmMAfSAAAABFAgAAAAAAAAAAAAAgAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAADN8Gh2b4PRdB/uft/thYAB6Fi8seO7/wD4raz+4+4pmDszjx3/AEraz+4+4pmDs1T5UeX+Zb9ZQAGTFGCkAFwTAAMBgAMAACgATHMoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPpQqOlWhUTw4tM+ZTC8bjRE6nbbGj3KutPo1k85isn7s5MV2DdeksZ0G+cHyMpXQ8Vysfy8swv8Fu6kSoA8znbQAj9oPBkrfI/He6haWkHKtWjH1ZMa1LeEYtwtKXF/aZ1YeJly+Iab56U8yy+UlFZbSPwXesafbJ+kuIZ8kzXd9rWoXcn6SvJJ9kfgnUlL5Um362WmLo/wD9y4r8/wD+Wd3m77OnlUYSn7eR1lxvK6efRUYRXr5mKMdzvp03DX7Oa3LyS72vujVKnSoo+xH5Kmt6lPrcz+hnWtkydNeLijxVrnNkn7v2y1O+k+dzV/xM4e/7x/8AqKv+Nn5Soz+RSPsx+Zb3fpWoXqfK5qr+8z6R1bUYvldVP8TPxcxyI+Tjn7Hzbe7tKe4dVh0uZP2n66G7NUp/KlGftRj/ACGTC3ExW/pZRmvHiWYW29KnStbp+tM7az3Zp1VJVHKm/WuRrkJ8jmv0vDb7aba8zJDbtrqNncrNG4hLPbJ+pM05SrVabThUlF+pndaZuW/tGlOfpYeUivzdHtHrSXVj50T6WbKB02ja/Z6jFR4lTqfss7hc0VGXDfHOrQ7qXreNw5dgiIvQ1MwAAAwAHYmCgAgAAACAAAAUYAABgB0DAAdwGO4EL3A7AEA+Q7AAQoDuAPWAAXQAB3GAAwMAACFHMAB2HYJR+YLgMCFGAwhCkAFWSkCAj6h9C9yNcgCKEuQAFIMgUIgQFAIBQAABGGwKTsB5gECINg2o7dCZDYNqgyAIPWTPMrJ0YDIAAADsBWwCdwA7gAUgABDIAAoAAAAPaGAA+kAAAAAAAAAAAABCgAAAAAAABAAAAAAAAewAAAAAAAAAAAAAABm+DQ7N8Houg/3P2/2wsAA9CxeWPHf9K2s/uPuKZg66GceO/wClbWf3H3FMwg0z5UeX+Zb9ZTsQ5EZMSwhAAZJCdygAyMF7AQvcAAwO4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqBC5MZhDvNm3vvXVIwk8RqcmbIjJOKZp2nOUJqcXhp5Rnm3Nx0K1vCjdTUKiWMvuUPVOJa099YWPDzxEdssnyMn4bnVLKhT4514Y9pjOr7tbzTso/3mVWHhZcs6iHbk5FKR6yyfUdTtbGm5VqqXqzzMR1fdtaq3CzXo4/tdzHLu6r3NRzrVJSb82fBl7xul0x+tvWVbl5lr+lX1ubmtcTc6s5Tb82fLJAWtaVrGockzM+Rk5gGQDIA0gbAAgB2CC6CRSdyhkIQDHIMnaQAEpAABzo1J05qcJOMl0aM32puP0zjaXkvj9IyfcwU50qkqc1KLaa6M4+VxKZ66ltxZbY53DciaZyZ0W0tU/KFiozl+dprEjvTyGbFOK81leY7xeu4AO4NTMAAAAAAAAKuaIcgICgAQoAEKQAUhQIOxQBAUARoFAEAABAIeoCkKQB3AAFAIAA5hAAPUAHQMD2gUewgANBAICFDAAYAAfSOgHcB1HYIoEQCAAFIBSIdAADCDAExz5lzzAD1hj6CAPMesDsEJ7R2K/IcvICDm+ZfpJ3AAdwBQiAACgCF5ggAD6ABeQIEBQQAAupR9AAAgFAAAAAAO4AAAAQoAAEAoBGBQQvICd+pQOwABAAAAAAAAAAAAAAAAAAAADN8GhzfB6HoP9z9v9sLAAPRMXljx3/StrP7j7imYQZv47/pW1n9x9xTMH7mqfKjzfzLfrIGOgfQjTBGOwD6GaQgZQGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQnjmm0QGM1iRzlUm+Tk39JxbIBFYjwACBkABAA9ofTAAAAAACECKiBZIklWM8gO5CDuRlDECAPIMoSAAlIAAO42pfystUptyfBN8LRtCElKKa6M0zTlwVIyXVPJtfb9x750qhVby+FJnnOsYYiYvCy4N59auwAKUSyQoAAhSAChdB9ABAFAjKiFAAAACFAAAAQoAAAAQoAAEAIFAAhQAAAAAAAABCkKAIUAQFAEHYFAncMoAhDkAICkAcwwUCFAAhSFAEKAJyHXmABO47lwF1AdiFJgAx2yV9CdgD9RCrIWeYQgK0GuYAmCgAAAICgAQBAUgAFAIAA7AAgABUCF7gACAUEL7QAAAAAAAAAyCICj1kZQA5gAAAAAADuAAAAAAAAAAAAAAAAAABvg0OzfB6HoP8Ac/b/AGwsAA9ExeWPHfHwraz+4+4pmDvqZv48fpW1n9x9xTMIya58qTNH/Jb9ZCABrAwCUpjmXAAAEQYFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwHMhSAAAAAAAAAAgF1IlCgMGKAAAQYKOhO0oB3DJ2AAJSGx9hVHPRUn2kzXCNjbAg46Nl95Mqerx/wuvhfzGRl7AM8quRgIcgAD5gAO4AApABQAABBzAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQoAAAAAAIygACFAAAAAAAAAAAAQIoAAACYBSAGOwwhgCMYK8DuEIH6h1L2AgAAJgD1ARdCgATuO5fWQC9wABBgoAnIFIAKTsVAQfQUdgAIUAAAAAAAB9AAIXIEZQAAAYAAAAAwAAAAAAAAAAAAAAAAAAAG+DQ5vg9D0H+5+3+2FgAHomLyx47/pX1n9x9xTMH6GceO/6VtZ/cfcUzB31NX3UmX+Zb9ZRkKyZ5GTWoJkBK9xkAARdQUB3JkZ5juBfpBMgCgi6FAAAAAAAAAAAAAAAAAAABkZGAAAAAAAAAAAAAAAAAAAAAAATBcAjYAAdwAAAAAAwgO5ihWERlRGgDIOwiAyO4BloAABYJykorm2zam2LZ22kUYNYbWWawsqkKVzCpUXFGLzgzW03jaqMYToTily5FR1THkyVitYd3DvSk7sy/uGdVY69p11jgrxi/JnZQnGSTi015o83fFen5oWtb1t4lzYIVGtkDIYAFJ3KAJ3KAAAAhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQoAAAAQpAKAAABO4FJzKAIPUUgBlJlFA4hlDCES5gMIAAMgQoAAAdgHYEKABORQAIUAEAABMAAUnQdwLkDmAAAYAEAFJ3LyIACKEAAAAAAAAAADAAIAAAAAAAAAAAAAAA3waHN8Hoeg/3P2/2wsAA9ExeWPHf9K2s/uPuKZg2TOfHd/wD8VtZX/wBj7imYKa/upMv8y36yAAlgAAAXJABSIuCAA+oAAILqVgTJeREAKCdg+gFBCoAAAAAAAAAAAAAAMhSMCgIAAAAAAAAAAAAAAAAAAAAGAAHcj6l7kYADsEAYDAAABAEARoPMAAAASkABCAABKxk08ptM7TS9ev7FrgrOUF+qzqgasmCmSNTDKt7V8S2Rom5rS94adV+iqvz6MyBSUkmmseo0xGTi8ptMyjbe5qttKNvdtzpdE31RRczpXb+LGscHM36WbAXM5Hxta9KvSVWlJSjLoz68yjmJidSsIncbUEKQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhQAIUjADI7DABdQw+o9YAZKQCMvrBQOIHYY58wgwQvcAQq5juAA5kYApCkABAoE7juUAGOxABRywQoEAAFIABUCFAE+kAAAEAAGQBUAAAAABAAAADAAEKAgAAAAAAAAAAAAAAb4NDm+D0PQf7n7f7YWAAeiYvK3jx+lfWf3H3FMwd9TNvHdv4VtZ/cfcUzB8mEqTL/Mt+suQOORkMHIHHIywOQwccsuWBS9zhllywKwTLJkDkDjkuWBQTLCYFWQTLGWBRkmWMsClRxyEwOQJkZAoOORlgcgTIyBQccjL8wOROTGfWTPMDkCZ9Yz6wKCZ9Yz6wKCZ9Yz6wKCZ9Yz6wKCZ9Yz6wKCZ9Yz6wKCZ9Yz6wKCZ9Yz6wKCZ9Yz6wKwTPrGfWAKccjIFYZG2MgUHHIyByBxyMgcgccjIHIHHIyBy7A45fmMkIcyEyTJA5A45GTJLkDjkZIGR7W16pYV1RrNyoyeOfY2Jb1oVacalNqUZLKaNM5ZmWxtaxJWFeXJ/IbZRdT4MTHzKQsOJyNT2yznIycFLPcufWed8LRyyMnHPrGfWEuWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459Yz6wOWRk459YyByyMnDPrGQOeSZOPEMgcs+ouThkJ+sIc8kzlHHI4gOSYycc+sZ9YHPJGccjPMDk3ywRs459YyTpDlkZOORkDlkZ9RxTGQOWRlHHIyByyvIZ9RxyMgcsjJxz6xkaHLPqGTjxMZGhyyMnFSGQOSYz6jjkNgcskzyOORkDlkufUcckyvMDln1FyccjIHLIzzOORkC5KmccjIFyXKOORkDk2M8jjkmQOeRk459Yz6wOWQ2cMlyByyM+ZxyOIDln6hnJwyEwOeeYyccjPrA55JnkRPmM8ghyyTJG1nqTPrA55JkmfWTPrCXLIycc+sZ9Y0OWRk459Yz6xocsm+Mmhc+s3vxHoeg/3P2/2ws55Bw4gehYvKfjpLPinrL/8AsfcUzCcmY+OMn8KWsfuPuKZhWeRhKlyx+O36vpkZPk5DiIa31yMnyyMgfXIyfLIyB9cjJ8sjIH1yMny4hkD65GT5ZGQPrkcR8sjIH14hk+WRkD65HEfLiGQafVSLxHxyEwPs2OI+XFyJkD68QyfLiGQPspDiPjxDiA+ykHI+ORkD68RVI+ORxAffJOI+XEOLmB9eIuT45Dk/NgfbIyfHiLxAfXIyfLiHEB9cjJ8uIcQH1yMny4hxAfXIyfLiHEB9cjJ8uIcQH1yMny4hxAfXI4j45yxxYA+uUOLB8skcgPrxDiPlxDIH14hk+WRkD65GT5ZGQPrkZPlkZA+uRk+WRxA0+uQpHyyTLCdPtkZPlljIRp9cjJ8sjIH1yMnyyMgfXJzt60qNaNSDxKLzk/PkcRFqxaNSmPSdttbe1GN/p1OrlcSWJe07HjMA8PrycbmpbPLjJZM44meO5uD5WWYhe8e/fTb78Y4z4cTHEzk03PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxMcTGh9+McZ8OJjiY0PvxjjPhxPzCkxoffjHGfDieBxMaH3cxx8z4cTHExoffjI5Hx4mOJjQ+zlzLx9T4cTDkxofZT5l4z8/G0XiZOkPtxjjPhxPoOIaH34/MjmfHiHGxofbjHGfHifmOL1saH24+Y4z48TI5+0aH34xxnxUgpMaH34xxnw4ngcT8xofbjHGfHiGX5jQ+3H5Dj5nw4nguXy5k6H24xxnw4n5hSZGh9/Schx9D4cTHExoffjHGj4cTHEND7+kHGfFMnE/MnQ+/GOM+HF7Q5MjQ+/GOPzPhxDiY0PuphzPhxe0cTx1Gh9uPmXjR8OJhSY0Pv6TsPSHw4mOJ+bGh9+PmTjPjxe0cROh9vSDjPjxDiI0Ptxl9IvI+HEOJjQ+/GOM+HExxMaH6OMimfDjY4mToffj5l4/Yfn4n5scTz1Y0P0OY40fDjI5PzGkP0cY4+R8OJhSZGh9+McZ8OJhyeCdJfb0hvXj9ZoNyfmbz42X/AEL+5+3+2Fn6eP1g/NxsHoGL/9k=" alt="Cartoon avocado talking to a little girl" loading="lazy">
      <div class="vg9-example-caption">
        <span class="vg9-example-tag">Ideogram AI · Character Generation</span>
        <h4>Avocado telling a little girl &#8220;I am healthy for you&#8221;</h4>
        <p>&#8220;An avocado saying to a little girl I am healthy for you&#8221; — Ideogram renders the character interaction, emotion, and scene composition from a single natural-language prompt.</p>
      </div>
    </div>
  </div>
</div>

<!-- INTERVIEW CHEAT SHEET -->
<div class="vg9-interview-section">
  <p class="vg9-interview-eyebrow">Interview Prep</p>
  <h2>Cheat sheet — <em>quick definitions to remember</em></h2>
  <div class="vg9-qa-list">

    <div class="vg9-qa-item vg9-reveal">
      <div class="vg9-qa-q"><span class="vg9-q-badge">Define</span><br>What is text-to-image AI generation?</div>
      <div class="vg9-qa-a"><strong>A generative AI technique</strong> that converts a natural language description (a &#8220;prompt&#8221;) into a visual image. The model is trained on millions of image-text pairs and learns to associate descriptions with visual features — generating novel images that match the input prompt.
        <div class="vg9-pills"><span class="vg9-pill t">Prompt → Image</span><span class="vg9-pill">Trained on image-text pairs</span><span class="vg9-pill a">Novel generation</span></div>
      </div>
    </div>

    <div class="vg9-qa-item vg9-reveal vg9-d1">
      <div class="vg9-qa-q"><span class="vg9-q-badge">Explain</span><br>Why is text rendering inside AI images hard?</div>
      <div class="vg9-qa-a">Most image generation models learn from pixel statistics — they learn that <strong>letters look like letter shapes</strong> but struggle to reliably render specific, legible strings. Characters often get garbled or blended. Ideogram specifically trained to solve this, making it uniquely capable of embedding clean typography in generated images.
        <div class="vg9-pills"><span class="vg9-pill a">Most models garble text</span><span class="vg9-pill t">Ideogram trained to fix this</span></div>
      </div>
    </div>

    <div class="vg9-qa-item vg9-reveal">
      <div class="vg9-qa-q"><span class="vg9-q-badge">Compare</span><br>Ideogram vs Midjourney — when to pick each?</div>
      <div class="vg9-qa-a">Pick <strong>Ideogram</strong> when you need text embedded in the image, want a free tool, or are creating branded content like posters and apparel. Pick <strong>Midjourney</strong> when photorealistic quality is the priority, you have budget, and you want access to the largest community of AI artists.
        <div class="vg9-pills"><span class="vg9-pill p">Ideogram = free + text</span><span class="vg9-pill t">Midjourney = quality + community</span></div>
      </div>
    </div>

    <div class="vg9-qa-item vg9-reveal vg9-d1">
      <div class="vg9-qa-q"><span class="vg9-q-badge">Define</span><br>What is prompt engineering for image generation?</div>
      <div class="vg9-qa-a">The practice of <strong>crafting precise text descriptions</strong> to guide image generation models toward desired outputs. Effective prompts specify subject, style, lighting, composition, mood, and negative constraints. The better the prompt, the more predictable and high-quality the output.
        <div class="vg9-pills"><span class="vg9-pill t">Subject + style + lighting</span><span class="vg9-pill">Negative prompts</span><span class="vg9-pill a">Iterative refinement</span></div>
      </div>
    </div>

    <div class="vg9-qa-item vg9-reveal">
      <div class="vg9-qa-q"><span class="vg9-q-badge">Explain</span><br>What architecture powers most image generation models?</div>
      <div class="vg9-qa-a"><strong>Diffusion models</strong> — they start from random noise and iteratively denoise toward a target image guided by the text prompt via a CLIP or similar text encoder. Midjourney and Stable Diffusion both use diffusion-based architectures. The process is the reverse of adding noise: learn to remove it conditioned on text.
        <div class="vg9-pills"><span class="vg9-pill t">Diffusion model</span><span class="vg9-pill t">Text encoder (CLIP)</span><span class="vg9-pill">Iterative denoising</span></div>
      </div>
    </div>

    <div class="vg9-qa-item vg9-reveal vg9-d1">
      <div class="vg9-qa-q"><span class="vg9-q-badge">Use Case</span><br>Where does generative image AI add enterprise value?</div>
      <div class="vg9-qa-a"><strong>Four high-value applications:</strong> (1) <strong>Marketing</strong> — prototype ad creatives in minutes, not days. (2) <strong>E-commerce</strong> — generate product imagery without a photoshoot. (3) <strong>Design iteration</strong> — visualize 20 concepts before committing to one. (4) <strong>Training data</strong> — generate synthetic labeled images for ML model training.
        <div class="vg9-pills"><span class="vg9-pill p">Marketing</span><span class="vg9-pill t">E-commerce</span><span class="vg9-pill">Synthetic data</span><span class="vg9-pill a">Design iteration</span></div>
      </div>
    </div>

  </div>
</div>

<!-- FOOTER -->
<div class="vg9-footer">
  <p><strong>GenAI Mastery Series</strong> — vijay-gokarn.com · Vijay Gokarn</p>
  <div class="vg9-footer-links">
    <a href="https://vijay-gokarn.com" class="vg9-btn primary">Back to Blog ↗</a>
  </div>
</div>

</div><!-- /vg9 -->

<script>
(function(){
  var obs = new IntersectionObserver(function(e){
    e.forEach(function(x){ if(x.isIntersecting) x.target.classList.add("vg9-vis"); });
  }, {threshold: 0.08});
  document.querySelectorAll(".vg9-reveal").forEach(function(el){ obs.observe(el); });
})();
</script>
<p>The post <a href="https://vijay-gokarn.com/generative-ai-ideogram/">Unleash Your Creativity with Ideogram AI: The Future of AI-Powered Art Generation</a> appeared first on <a href="https://vijay-gokarn.com">Vijay Gokarn</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">99</post-id>	</item>
	</channel>
</rss>
