From 15914e86de36062e6810a2e36445a2f94d65e753 Mon Sep 17 00:00:00 2001 From: danstarns Date: Tue, 17 Jun 2025 22:42:40 +0700 Subject: [PATCH 01/10] add Model Selection Guide --- agents/model-selection.mdx | 527 ++++++++++++++++++ docs.json | 1 + images/agents/model-selection.png | Bin 0 -> 14494 bytes styles/config/vocabularies/general/accept.txt | 6 +- 4 files changed, 533 insertions(+), 1 deletion(-) create mode 100644 agents/model-selection.mdx create mode 100644 images/agents/model-selection.png diff --git a/agents/model-selection.mdx b/agents/model-selection.mdx new file mode 100644 index 00000000..3012d890 --- /dev/null +++ b/agents/model-selection.mdx @@ -0,0 +1,527 @@ +--- +title: "Model Selection Guide" +sidebarTitle: "Choose the Right Model" +description: + "Select the optimal model for your agent based on task complexity, performance + requirements, and cost considerations." +--- + +When building agents in Hypermode Threads, choosing the right model is crucial +for optimal performance, cost efficiency, and user experience. This guide helps +you select the best model based on your agent's specific role and requirements. + +![Select your model](/images/agents/model-selection.png) + + + Hypermode provides access to the most popular open source and commercial + models through our [Model Router](/model-router). We're constantly evaluating + model usage and adding new models to our catalog based on demand. + + +## Quick start: find your agent type + +Most business use cases fall into these common patterns. Find your match and get +started immediately: + + + + **Best for:** GitHub bots, code reviews, API development +
+ **Recommended:** `GPT-4.1` or `Claude-sonnet-4-20250514` +
+ **Why:** Strong code comprehension, security focus, fewer hallucinations +
+ + + **Best for:** Lead qualification, call analysis, CRM updates +
+ **Recommended:** `GPT-4o` or `Claude-3-5-sonnet-latest` +
+ **Why:** excellent structured data extraction, business context understanding +
+ + + **Best for:** Market research, competitor analysis, strategic insights +
+ **Recommended:** `o3` or `Claude-opus-4-20250514` +
+ **Why:** Advanced reasoning, multi-source synthesis, deep analysis +
+ + + **Best for:** Social media, blogs, marketing campaigns +
+ **Recommended:** `GPT-4o` or `Claude-3-5-sonnet-latest` +
+ **Why:** Creative writing, brand voice consistency, platform optimization +
+ + + **Best for:** Inventory tracking, spreadsheet analysis, reporting +
+ **Recommended:** `GPT-4o-mini` or `Gemini-1.5-flash-latest` +
+ **Why:** fast processing, cost-effective, reliable for routine tasks +
+ + + **Best for:** scheduling, support tickets, real-time chat +
+ **Recommended:** `GPT-4o-mini` or `Gemini-1.5-flash-latest` +
+ **Why:** low latency, consistent performance, natural conversation +
+
+ +## Model selection process + +Follow this step-by-step process to choose the right model for your specific +needs: + + + + Start by clearly defining what your agent does most often: + - **Analyze and reason** (research, complex decisions) + - **Create content** (writing, marketing, creative work) + - **Process data** (spreadsheets, databases, routine operations) + - **Interact with users** (support, scheduling, real-time chat) + - **Work with code** (development, reviews, technical tasks) + + + + Consider how often your agent is used: + - **High volume** (1000+ interactions/day): choose efficient models like `GPT-4o-mini` + - **Medium volume** (100-1000/day): balanced models like `GPT-4o` work well + - **Low volume** (less than 100/day): any model based on complexity needs + + **Budget considerations:** premium models cost more but deliver better results for complex tasks + + + + + Match your complexity needs to model capabilities: - **Simple, routine + tasks**: mini/Flash variants for cost efficiency - **Moderate complexity**: + standard models like `GPT-4o`, `Claude-3-5-sonnet-latest` - **Complex + reasoning**: advanced models like `o3`, `Claude-opus-4-20250514` + + + + Determine what matters most for your use case: - **Speed critical**: fast + models like `GPT-4o-mini`, `Gemini-1.5-flash-latest` - **Accuracy critical**: + premium models like `o3`, `Claude-opus-4-20250514` - **Balanced needs**: + mid-tier models like `GPT-4o`, `Claude-3-5-sonnet-latest` + + + + Start with the recommended model, then optimize: + - Test with real examples from your use case + - Monitor cost and performance metrics + - Adjust based on actual usage patterns + - Consider dynamic routing for optimal cost-performance balance + + + +## Business-focused model recommendations + +### For sales and go-to-market teams + + + **Use Case:** Analyze sales calls, update CRM, qualify leads + +**Primary Choice:** `GPT-4o` - Excellent at structured data extraction from call +transcripts + +**Alternative:** `Claude-3-5-sonnet-latest` - Superior business context +understanding + +**Why These Work:** + +- Strong performance with sales terminology and CRM integration +- Reliable field mapping and data accuracy +- Professional communication tone + +**Example:** [Go-to-market Engineer](/agents/agent-gallery/gtm-engineer) +updating Attio CRM from call transcripts + + + +### For development and technical teams + + +**Use Case:** Automated PR reviews, security analysis, code quality + +**Primary Choice:** `GPT-4.1` - Latest optimizations for development workflows + +**Alternative:** `Claude-sonnet-4-20250514` - Superior security focus and +detailed feedback + +**Why These Work:** + +- Low hallucination rates critical for code accuracy +- Excellent adherence to coding standards +- Strong security vulnerability detection + +**Example:** [GitHub Review Bot](/agents/agent-gallery/github-review-bot) +providing automated code analysis + + + +### For research and strategy teams + + +**Use Case:** Competitive analysis, industry trends, strategic insights + +**Primary Choice:** `o3` - Advanced reasoning with chain-of-thought processing + +**Alternative:** `Claude-opus-4-20250514` - Excellent synthesis of multiple +sources + +**Why These Work:** - Superior multi-step reasoning for complex analysis - Large +context windows for extensive document processing - Strong capability for +strategic insights + +**Example:** [Market Research Expert](/agents/agent-gallery/market-researcher) +analyzing company intelligence + + + +### For marketing and content teams + + +**Use Case:** Social media posts, blog content, marketing campaigns + +**Primary Choice:** `GPT-4o` - Strong creative capabilities with broad knowledge +**Alternative:** `Claude-3-5-sonnet-latest` - Nuanced tone and style +understanding + +**Why These Work:** + +- High-quality, engaging content generation +- Brand voice consistency across platforms +- Platform-specific content optimization + +**Example:** [Social Media Expert](/agents/agent-gallery/social-media) creating +targeted content campaigns + + + +### For operations and data teams + + +**Use Case:** Inventory management, spreadsheet analysis, operational reporting + +**Primary Choice:** `GPT-4o-mini` - Cost-effective with reliable data handling + +**Alternative:** `Gemini-1.5-flash-latest` - Excellent speed-to-cost ratio + +**Why These Work:** + +- Fast processing for large volumes of data +- Low cost per operation for routine tasks +- Consistent performance fornautomated workflows + +**Example:** [Inventory Tracker](/agents/agent-gallery/inventory-tracker) +monitoring stock levels and sales patterns + + + +### For customer success teams + + +**Use Case:** Customer support, appointment scheduling, real-time assistance + +**Primary Choice:** `GPT-4o-mini` - Fast response times with natural language +understanding + +**Alternative:** `Gemini-1.5-flash-latest` - Excellent for real-time +interactions + +**Why These Work:** + +- Sub-second response times for real-time interactions +- Reliable performance under varying loads +- Natural conversation flow and context understanding + +**Example:** +[Workout Scheduling Agent](/agents/agent-gallery/workout-scheduling) managing +calendar integration + + + +## Cost and performance tiers + +Understanding the three main performance tiers helps you balance capability with +budget: + +### Premium tier - complex reasoning + +**Models:** `o3`, `Claude-opus-4-20250514`, `o1`, `Gemini-2.5-pro-exp-03-25` + +**Best for:** + +- Strategic planning and complex analysis +- Multi-step reasoning workflows +- High-stakes decision support +- Advanced research and insights + +**Cost:** higher per interaction, justified for critical business decisions + +**When to choose:** complex reasoning required, accuracy is paramount, +low-to-medium volume + +--- + +### Balanced tier - general purpose + +**Models:** `GPT-4.1`, `GPT-4o`, `Claude-sonnet-4-20250514`, +`Claude-3-5-sonnet-latest`, `Gemini-2.0-flash` + +**Best for:** + +- Most business applications +- Code development and reviews +- Content creation and marketing +- Moderate complexity analysis + +**Cost:** moderate pricing with excellent capability-to-cost ratio + +**When to choose:** most use cases, balanced needs, regular daily usage + +--- + +### Efficient tier - high volume operations + +**Models:** `GPT-4o-mini`, `Gemini-1.5-flash-latest`, `Claude-3-5-haiku-latest`, +`o4-mini` + +**Best for:** + +- High-volume operations +- Customer support and scheduling +- Data processing and routine tasks +- Real-time applications requiring speed + +**Cost:** low per interaction, ideal for frequent use + +**When to choose:** high volume (1000+ daily), cost optimization critical, +simple-to-moderate tasks + +## Advanced strategies for business users + +### Dynamic model routing + +Optimize both cost and performance by automatically selecting models based on +query complexity: + +**Example Strategy:** + +- Simple queries (data searches, basic scheduling) → `GPT-4o-mini` +- Moderate complexity (analysis, content creation) → `GPT-4o` +- Complex reasoning (strategic planning, research) → `o3` + +**Benefits:** + +- 27-55% cost savings in multi-agent workflows +- Maintained quality while reducing expenses +- Automatic scaling based on business needs + +### Multi-model architecture + +Design agent systems that leverage different models strategically: + +**Preprocessing Layer:** use efficient models for initial query classification + +**Specialist Models:** Deploy domain-specific models for specialized business +tasks + +**Quality Review:** Implement checking with different models for critical +outputs + +**Fallback Options:** maintain backup models for high-availability requirements + +## Decision framework + +Use this business-focused decision tree: + +1. **What's your primary business function?** + + - Revenue operations (sales, CRM) → GPT-4o or Claude-3-5-sonnet-latest + - Product development (code, APIs) → GPT-4.1 or Claude-sonnet-4-20250514 + - Strategic planning (research, analysis) → o3 or Claude-opus-4-20250514 + - Marketing operations (content, campaigns) → GPT-4o or + Claude-3-5-sonnet-latest + - Customer operations (support, scheduling) → GPT-4o-mini or + Gemini-1.5-flash-latest + - Data operations (reporting, analysis) → GPT-4o-mini or + Gemini-1.5-flash-latest + +2. **What's your expected usage volume?** + + - High volume (> 1000/day) → Consider mini/flash variants for cost control + - Medium volume (100-1000/day) → Balanced tier models + - Low volume (< 100/day) → Any model based on complexity + +3. **What's your complexity requirement?** + + - Simple, routine business tasks → Efficient tier models + - Moderate complexity workflows → Balanced tier models + - Complex strategic work → Premium tier models + +4. **What are your performance priorities?** + - Speed critical (real-time customer facing) → GPT-4o-mini, + Gemini-1.5-flash-latest + - Balanced performance (most business apps) → GPT-4o, + Claude-3-5-sonnet-latest + - Maximum capability (strategic decisions) → o3, Claude-opus-4-20250514 + - Cost optimization → Dynamic routing between tiers + +## Getting started and best practices + +### Start high, optimize down + +Begin with a premium model to establish your accuracy baseline, then +systematically optimize for cost while maintaining performance standards. + +**Recommended Approach:** + +1. Start with `GPT-4o` or `Claude-3-5-sonnet-latest` for most business use cases +2. Test with real examples from your workflow +3. Monitor both quality metrics and costs +4. Optimize to more efficient models if performance remains acceptable + +### Set clear success metrics + +Define specific, measurable goals for your agent: + +**Quality Metrics:** + +- Accuracy rates for your specific tasks +- User satisfaction scores +- Task completion rates + +**Operational Metrics:** + +- Response time requirements +- Cost per interaction targets +- Uptime and reliability standards + +### Test with real business data + +Create comprehensive test datasets that represent actual usage: + +- Diverse examples covering your full range of business scenarios +- Edge cases and challenging situations +- Domain-specific tests for your industry +- Both successful and failure case examples + +## Model provider strengths + +Understanding each provider's strengths helps inform your choice: + +### Anthropic Claude models + +**Strengths:** Safety, nuanced reasoning, detailed analysis, professional +communication + +**Best for:** Business-critical applications, complex analysis, content +requiring safety considerations + +### OpenAI GPT models + +**Strengths:** Broad knowledge, fast inference, established ecosystem, reliable +performance + +**Best for:** General-purpose business applications, rapid prototyping, +widespread compatibility + +### Google Gemini models + +**Strengths:** Multi-modal capabilities, long context, competitive pricing, +logical reasoning + +**Best for:** Data-heavy applications, cost-sensitive deployments, multi-modal +business needs + +### Meta Llama models + +**Strengths:** open source flexibility, customization potential, cost control + +**Best for:** Organizations requiring model customization, specific compliance +needs + +## Monitoring and optimization + +### Key performance indicators + +Track these metrics to optimize your model selection over time: + +**Response Quality:** + +- Accuracy rates for your specific business tasks +- Consistency in output format and style +- User satisfaction and feedback scores + +**Operational Efficiency:** + +- Average response time and latency patterns +- Cost per interaction and total monthly spend +- System reliability and uptime metrics + +**Business Impact:** + +- Task completion rates and automation success +- Time saved compared to manual processes +- Business outcomes achieved through agent deployment + +### Continuous improvement process + +**Monthly Reviews:** + +- Analyze usage patterns and cost trends +- Review quality metrics and user feedback +- Assess new model releases and capabilities + +**Quarterly Optimization:** + +- Compare performance across different models +- Implement cost optimization strategies +- Plan for scaling and new use cases + +**Annual Strategic Planning:** + +- Evaluate provider relationships and contracts +- Plan for emerging model capabilities +- Assess competitive landscape and alternatives + + + Use the [Model Router](/model-router) to easily experiment with models from + different providers without changing your integration code. The unified API + makes it simple to switch between OpenAI, Anthropic, Google, and Meta models + for systematic comparison and implement dynamic routing strategies. + + +--- + +## References and additional resources + +This guide is based on industry best practices and community insights from +leading AI development communities. For deeper technical insights and ongoing +discussions about model selection, see: + +- [LLM Developers: How Do You Pick the Right LLM?](https://www.reddit.com/r/LLMDevs/comments/1k6phix/how_do_you_guys_pick_the_right_llm_for_your/) +- [Generative AI: How to Select an LLM for a Use Case](https://www.reddit.com/r/generativeAI/comments/1ay5drl/how_to_select_a_llm_for_a_use_case/) +- [Choosing the Right Language Model for Your Use Case](https://medium.com/data-science/choosing-the-right-language-model-for-your-nlp-use-case-1288ef3c4929) +- [GitHub Copilot AI Model Selection](https://docs.github.com/en/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task) +- [JetBrains AI: How to Choose the Right LLM](https://blog.jetbrains.com/ai/2025/03/how-to-choose-the-right-llm/#) +- [How to Choose Right LLM for Your Organisation](https://www.linkedin.com/pulse/how-choose-right-llm-your-organisation-gagan-agrawal-ms0oc/) +- [OpenAI Model Selection Guide](https://platform.openai.com/docs/guides/model-selection) +- [How to Select Right LLM Model for Your Use Case](https://masteringllm.medium.com/how-to-select-right-llm-model-for-your-use-case-d4d9670e06f3) +- [How to Choose an AI Model for Your Business](https://www.leewayhertz.com/how-to-choose-an-ai-model/) +- [Choosing the Right LLM](https://www.labellerr.com/blog/chosing-the-right-llm/) +- [Choosing the Best LLM Model: A Strategic Guide](https://medium.com/@social_65128/choosing-the-best-llm-model-a-strategic-guide-for-your-organizations-needs-f64794ead5e9) +- [DataRobot: How to Choose the Right LLM for Your Use Case](https://www.datarobot.com/blog/how-to-choose-the-right-llm-for-your-use-case/) +- [TechTarget: How to Choose the Right LLM for Your Needs](https://www.techtarget.com/searchenterpriseai/tip/How-to-choose-the-right-LLM-for-your-needs) +- [LangDB: Choosing the Right LLM for the Job](https://blog.langdb.ai/choosing-the-right-llm-for-the-job-with-langdb) + +For the most current model availability and pricing, always refer to the +[Hypermode Model Router documentation](/model-router). diff --git a/docs.json b/docs.json index 85475f03..198b75ea 100644 --- a/docs.json +++ b/docs.json @@ -54,6 +54,7 @@ "agents/work", "agents/connections", "agents/tasks", + "agents/model-selection", { "group": "Example Agents", "pages": [ diff --git a/images/agents/model-selection.png b/images/agents/model-selection.png new file mode 100644 index 0000000000000000000000000000000000000000..6c86418fb18dd04742d06f09f1131c7541a4ac2e GIT binary patch literal 14494 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 SOCGDvEIsL6_ Date: Tue, 17 Jun 2025 22:44:47 +0700 Subject: [PATCH 02/10] typo --- agents/model-selection.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agents/model-selection.mdx b/agents/model-selection.mdx index 3012d890..d7522ec6 100644 --- a/agents/model-selection.mdx +++ b/agents/model-selection.mdx @@ -218,7 +218,7 @@ targeted content campaigns - Fast processing for large volumes of data - Low cost per operation for routine tasks -- Consistent performance fornautomated workflows +- Consistent performance for automated workflows **Example:** [Inventory Tracker](/agents/agent-gallery/inventory-tracker) monitoring stock levels and sales patterns From a2b064c80a461693e536084c5769859ab5e4d76c Mon Sep 17 00:00:00 2001 From: danstarns Date: Tue, 17 Jun 2025 22:45:36 +0700 Subject: [PATCH 03/10] trunk --- agents/model-selection.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agents/model-selection.mdx b/agents/model-selection.mdx index d7522ec6..d9251851 100644 --- a/agents/model-selection.mdx +++ b/agents/model-selection.mdx @@ -208,7 +208,7 @@ targeted content campaigns ### For operations and data teams -**Use Case:** Inventory management, spreadsheet analysis, operational reporting +**Use Case:** Inventory management, spreadsheet analysis, operational reporting **Primary Choice:** `GPT-4o-mini` - Cost-effective with reliable data handling From 015121ec13db937cdae48bc52ad83f08be8a3e2d Mon Sep 17 00:00:00 2001 From: danstarns Date: Tue, 17 Jun 2025 22:48:47 +0700 Subject: [PATCH 04/10] image change --- images/agents/model-selection.png | Bin 14494 -> 89330 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/agents/model-selection.png b/images/agents/model-selection.png index 6c86418fb18dd04742d06f09f1131c7541a4ac2e..494550edc25f1224eae88b95541ab50224ba42e0 100644 GIT binary patch literal 89330 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�EDMZ4Np@-aCcP7WR6hjs?Qz1{D)T?-39I*eS2a zSLEY6RYN{b$lI{+*vsgstsmi zzZ1#&bzp-H+w3x}IN=*85=kPtoAGDa8sw1KQ)M4~lk4n{MQ;mCG~Hsb&Uj34cJ`3o z&jh6~Ww?@xapHFc(nRrO(JpGaHm2BUvx#{Oii|QjWTyp-2<fjo8n1*nzl9{%&7fhy@5!n_yylTU*YrcV#TzLr356lM zhp!9_Tz~_jY7qg!t5F+PF)M11#!wmdoc@LUc1k@)?by&IM<1-nIs^rVgic- zr?l!dTOFJPzLo3`cm|a*&yzBn4vPI>C9zoxesi^J(|fi+KQ>2ZFr0N3Sq^j~gjwe9 zAX9mQHKkAM=iZO5!PZlNinID&LQtSp znTrcko=#(3iFxqy<^IhZBbxJx8@Qal$3nP%vYp)|J~zFL`8-z)Y^MS*J#!YNFvUob zAjJh$@Q9Sl(9V*%*WK&Bv&G9Zg26URI0q!TGJ$!v`X+_%s~>U@sty8#9LZ%U;Jh_n{=U%CzW+nh zI|m2SbpNB-IN8{?wb|I&*tWUZ*tTsu8{78Awr$%^?mXZ3cju2(r7AUj`gG6f$(#>l z5()xgDiJxGoBo6YFP75zMww{*v=JSTSxecrxU$_7UHMn`5uZ?h2ZJ$}idPg|jVH_rPw1rwDHXd|R-!h1jBxLKqO)JrY z$uctVuw;p8q=NxFVy2YmQT_UQ`fk(K;3%fits0_#`tb<>iD8>RSejA?Oev9?q5Y37N zT~R%ZLa>c9v0_vScuf=k%FhiOwl(076`>9uAVTgY*%|PI9e6nw<2P?JX9{d`B$kIv zK{H9Us@joWebks#8!?c99wT2)Dn%$+@=W{nMr8hj7u}DfPj6tO7Di>DFA6!GULpLH zBtSY2lrcIbWdhBNU=YTPa*7KwKp_qNXFBOWS<@b{l;xhd1*gm!cf=<~QDvkIG8zmf zPIBlX?5i>E!uwxvGI!VP%&C#TOgq5?Q3j`?ei2NlCSOSVIgjRc7UeUPRZ$iM7tSDlu?&I0$amwb&?N z;`p!YgUR8M^7UWF*ZtSPA~t(`@S~vA=v=Kg(wiN!@SjVnJ3j*YtXtfsPMzK~qh+(X zDN|&fR7@x)GPEix&WABY0dKtDxAU*)w20j|sQWb`;`5TOC5HhL1f@-xK*buR{=Jn1C6bcn7 z4yboXb?}%!8vp6-tjGV6$KWg59ZnCUnXvrUBtt!$e@f>B<-&bxZidx>O^l=zI55jS z>?r2Ze&Kro{)?c5r^{`$si{HyRhm6&LQ1Hj#SaeQ@c#M#u9>>6C=kJ(w`UHaAj$?F>aU{(k znwLP6G@p>TXa>kSM^bD!ShaTT-Etnp_eU0%ON-Iy?%l(+&m$kDy&}S@t%g1QyBY~4 z^P}<23@e){GG^wYm^8jl+PL)^r?>00`l?KJn*-V(KYVs;mFtf85xHd}l+JBob*d5^ zcsWp`yOb%WB&#CT#0j1-r6=`Co_kM;eljwPFEdZ^fH^Fr^A97-Dsn;0S(DvZu*_$oL|(hUeaz(hxbfl{xQ*QT9TXBi053Mx>65FuyXhyBxwG znVF{e-sq(9zoXze1nTm?>?h1apm&+BvZyX8=nQN9_{lQEX`82ZkL1N>Wq=v~_2=qc z2PJ%$>hcF1c#rhy57V;Bzi`?X2zc?IsA|Yi>`+5Pxa0K2<1#_P!RrBR8IgH;6T%k> zAp||7xm3_E*(aq}n{S;@ojdD$PubN478l_9*VA@wx3F);b7l~5Ifri4n4tMw+Mf2ey`}Fj2!bK9wONE)7Tpc@Py-sdS-)(&s&SXkPnthOD=@1EWbc2OlFIOK` z83|%Ujo2|$q%v^1J=&*S0;cuSXFBnGNf z^yTbO*pf%`u3YWp`vYA|uzG)0oiQmdml)MnQZ%;Ik)L#vs#p>9e=4&0+Nr(xK@li&RnBeVqTi*XX&zwHs>~l2CYU^*vsUXKZ!2F_Uk-TwZ;2eeuGP!GcDp zNN!!f5o8CLY{^er`<#`Z5vJ9t9e1NNWXHHjwZ}wYYOa;S;Wx195n#1AUCdpC_Clw1)J9=@`=`fiQa6O95s3#C3VfTU*^Icf(w zYsNYWS*m$w$6(YQz@YtL(R`_kWk$#qP6u|712Lt)X;nqV-&H0QtW;@m5xm;(x!S?Y zHGfSDgb@)C?9;S~!nsKcavy^1MRLJ1AO4C|-3Nm9)^mP0PRS>_XH+YsT4wTz1h2(& zYFboO7MRz6AinfHo=)s30%Mj77!DK}H-X7NRb)OYz_Iu!EJ}HnzmAH6-`92DY;!|Z zvXj9#l4l!xer~y~FI-t8Ig>$GKH#F&!=uXAnJ$x=Eaw|JB^1_AVTCKsy&Jsslxr&Qn=+Q{{-}MkeX~5Rz=Rq^{1|WbbYVX`?E1KT zTzujWyuf_r$1=MbPICoCe;}{;bJLe4{tgfkfdT|l7Bxys@=?6*ku)9kl4Eq>nE`{Wp zO7l0)LHe5sRpKZOYG7)jV`^4bPy(?n3ix7D!%xGp^>w_u2Gh*Px;UZhc2(pUO@#!V zv9U3l_ntvg>@S7Y_6*SG(Dzu=9U*f2yGs z_^nPlYa_t2$i(Dv-q`d*c;QrnUg92Q+xZxyq#l}G&uPmpF!wt2!T*8Q_i}Hf_pa}O zskdMNaSqzdTH;sGbtZgEK;Mb42l{`jQ1otUq(A3(bpgfi<51k1YVJ`Qd*)G&Hjpim za>dWrPMFOfpr?N<;vH)>@$mHVeB6^Jrq#Xvaq@Dc3s-+p?Renq@+n)WrJn>l+8qKZ zjD*9&$q6$@vWJleHW5S|NAQm!HMvrc0*A~Rs&jBn0 zBGj|AxR@B5 z21mHmHqtI5maujSS*9*ThYF`~=Io-!A{ldV94s3Wr6wAoij zrQO)!(Gj}v_Ki_snURxKPxW-I>d0u%mz~CQW_$|M@Uekz=SNM=x@kL5d>G?%IGeNc^FSw+ zw8&}w>at&KB6F+U4H7q$By;i`yhIG9CcR5EU!=)fH%SPN!NtAYxf>EM8ky+xa#U(@NDF%bT$EW}ESfk` z^1l`oR0l=6K*wZMUWN9E6I*POWJ(|HU)F!TX_Ay%v4$c#ijkT0Svb|x>2JOs_*vs{ zmKX&{8Y38hlB-3ao-M}W^@=ugy-WYK&W(E`p2m499R}xBHkxBotAK$j*O={$yH8uK7)q`dT5Wg>6gZ zI9cbUGMYILd#3G9unjEAHM|y`lp@`984X^ag;5>)*kl)wdnJD^QW2kw33fHg2*twi zqWVj13~A>1ZT9x&F=TK!sNgp?L%&+ry8B847a^~?5p4q8AJ5A@tlA%aqTb%l=1oKL z13&ic{7Ja+n3cIS8`v3TSpLpkLn^J(7NyUnMPRxRzJDrfwI4xcBUY9iFLs3qBD{ul zI;>fds^ys~W#e&%-NiP)Lt#_Fg4=e`_0_sY$Im#zBl-ton5=v=z<*A@#t*hf+H3D z8s(R0pBcwcSegpz%mW`vX2#3+1j@``^p(dkg^62ZGVi8oP$@1pSC>AXUw2<$Z+F#S zi+x@VD;G}>NEgn9^UptE+mrPQ=?Vv0EH)Akutyem-EiwS?%Um$9!3w&dVMylcV(zS z@V+zQRQYP2rJeto0S=1HZGkeMUPa!RVNPR7gM}bFM4xlC5y2%JfTF2;*{C4 zwRfp@epnenu`!2k+ng_cMjPg8Lin7ja~%HHm|4&Dp@({|qw-IWiZ$}D*OuDDi_RDI z(r>zC!=@bH8dV8L+LBXpRdcEz_4_%g88o1vWJT32tX@TMyXLA{H*gOI&?78<@`Hi= zQ;nUmW#w?V1;_PndP?iR3@e3SoAGj&J^&ul1R~}sM!!?UuLc8+#4i1c+ z^>@Wla(@3VGV{tGCTJj7z-ry7Bhav%kP7cSvbSR7`$0OXZidCH?jXpsxZ6LyiFV3ix=;br%p00H@Lsk?vCEhSD1m{BOYu3{I~lA8w8h-K7%*Lk~{ z-!3U=f1ETqA88Mw3Fb{lHv zwD;b~GQ*k?AznEEG4{%{j^4SvkbMn_4d9+NfCTZ(PRAJl#P7s|Rbn%AHnaAhj*|0+ zYC#p&4n||95_glJWyl*$wmE*HUmNnUg(}!q16So~cAt|_CO@+Zo5otdWEZD6Sq?SV z+cEcR51UI0-w3%KSGIajTUzlZY!|@+NHvBr3s16M)Y{rwY?Gqq3aOh)uIPm6bky3y zY`WYh;-mlYMPY#$^0^&3RDP7xpKKNFRo40LxAC~Ewij0-uT2)wyBBjh!I4)t-(H?q zbFeKc`?1>EteT_jE$^J|!OzhqDknMpT_pk_g8=e6cBUrpozMFnEAL_~pBxZbF7dAcbfs|Mbe^>9blMoN9_>L^F3mLaG{v(qN2TSaQ6PIBcV zS=@qwG@pAt)&tdL&0S$KLo+cCKa8WFcQcucBUQ|dSFcob-P=>4Y-=0Swex|BmXOC< zCkA}n(Fw03|4YT6SoCfY&Xdspi|Cr@Hm;^Dq1lm7p;(UgrR(D_ zbBv^$6^&>sdR>&)g?M+CG_8wPJTG&1w_~ay&w>KAl$<3F8YvZ7u0%Bl}4UmW2(dReb*t(Q_+Fr*v=m-!Z9*+9 z-x#Ikd35%f{x=S=)1!VjII2+go;T>v*~HptvtqT!^0MdYf22$lI=|~Qa=E}RJmE|Y zJwGxAw)g#G;_~b_YMEXM30`U;4{s7OKF2A0fBKePkA@%$lRd`PuojG;7@Rye&^MWE z7IQFD`=1#DQT`4`9ca_|>8TBlYJ(2T0ljW(R(yS@vn<9+@&M{rAk{b_3Qq~#QS$bN zroY2b@EDETn>wGoX=}waiJO^Q^HKY%Tc_AZk_k5y2*@%d6V7BnpNpd|#)xc3k{cXH zP?GJJHNV10K4#;=Gt-d36HZ;kTHI=|6+ANQkh^&M$9@^qYBtPzIj+YfE1$-(|I*tu z{Uh6npkxYgFA$JHAHJG;qWoM$hPW)M{StuA_|Qf6?KKv&det}yuNWP_%P6lv?M!LM zn8VL7yPj!aS)_lWBahy6h+@>$Fp04JHf0yaA{bjMy8Q_6yR}wJ7XR(?5!FV^a|IcY zWTN~Y4v_k&EMiX!01Qm1FbT@wAqB^&=(>A_0{h$`zG@;8bQbz)qN05yKa1rG>1wIqu<;M~0ZgfAr;xxJleu5H6sJx^ zkW&L3xz*dHxQt^f3gM9hUYW8*+$i2qopsZGV~6vy+4nPj4>Zmzt@k$a8XdO#(^Mm? zl7z`ClCJOHHRM!KIFl{+ZeSdWOn1O9ftdnjyiL5$xd9{6zrW=9@gf7({-|c&8PPtx z#RY+&^bpIy>>R;0eNoj^w7yr9hG4 zvy|XYbtl#ZRpA?cP3-65c}vcaPb@4qka0@ zH|IwZ&<}YBV?#8*jZYD1t#7k1bj<+c4x1j=re+9VL*riTlSe0Qm3b}AdK#Ljj<++g zJoKaCKQCE-uC#FTgBY}SyN@I#1j#v%bD&Btxw8I=I;Gs0yjc~gBCOm)CGR9dh+395 z{*TYYgp)j3CtN&MTK|pFm!TvcZ zS`64CfPkohFaB4&{wtHhpZ-#XiS~k0m1lo0biA#*yg%GsT-0y@;WmH~vtbEFHwOYD zCuEg+S*8R}HI3?nXcPtMd({7}Nl0!8;Ii@WEltmDb^Gw+Apo?@9DW~N;I>uaYF1If z-wP6NnKse2jZBj7Zg%=YV#nGyE&;@x&sX1OTJZ6Fu$?C#oW^FP7yF1}e5H7IxWhQ!lg=J_jg3(ouq5E*6CS$c>j%DD+`>vTKaZv#>J%8F))e?pUV21$3WX&ea5%PfoZl}|EAXq?q9LT^4 zfC5ikZ*@4@A4wqdrUST+0M7!nKQfehsl{%uu8wJUcb&XrzRk&ExC>Cy&?f%^ZLXo<2RH2}TCal&b+a*$O1x7|?btt*&@x163BY{`xE!GsJ6vx_`pxWK z0fr+WpNkLRB2wryn5@@1Na_#?csT5K`+EYQjwZ9-fNTPh2?S!>h3V7JSo3^yAf7}D z0&>0rNVj%*y+va)2ivl~;osffQZ1G20RKID%&i1Ynthj+%jAeF&WDjNe^psptkm*3 zvMDPmIR?--9P5C32mpecGjjB{uKK#W1Tq~xQziWRyMn#TUY$NY)>m=YlO_gHnr5P5 zmcy}-oQVo02*&VKsW|v`!c*SO6TcnD>oFZ`;fUG)F6PsbxNebl+7ViP)^> z$}Q-(fL#MiG5QI~{5}R?7j3anhVHhRi^u{sts$i!Ue4=&za1wuPXR}$Q8^$17QWK% za%Hb1-E--qLS}y)6OrH7@W1^S&)D$IG&EJ!P@jg{PH;UI;Q>vU1$&94z5=DMhYA*# zJTN+_u2XNiXhu+1h;7J2)3OsXJO}8$F2I|xUYjHJo%uvMD>*s&zKv-OeqR8Rx!DIYIwB&7%~ZoQm8op$Q2L8YRBAaRHxmH7rP(K1+x^ zX)%Sm2G=LDY+?GgCjVaUAk`a{2hfMxCp|csB^$3;By)DrEdAmn`MwfNHW5}9Wc!0# zrT=&u3hfa@OeNHi^T5)j}I(A@OHV{m-0`gh$S^b##-iIDk=0@w~r5mMXNAOWJEc@ z_aK5wcL|#|0v{`u&BBRicsO9heI9SoNoO7wh(o;{EN!m zfI$XS;~@$-Ufbd{5iBJhW7%O7_-b7EJ}VDFTfek5NEs|{p-5~UJ29^ zS)_EG;BwVU!_`>Hp3Hd`*~gGyj2TuD%SVg-@gullCa7j3EPyA3H-51B^?klrOemL< z>0M6l&Ty63CIiZ2K{_H9qb~@LoFqyFg(ntU5oqgDCTi-^eUT7j_Icx3orGAe5x|O1 zpTyZ7O`=WzDq-k=9RzlmH$8B08Dfvan7^zx{VFZAU3O{xCYD->OaUn$jW&YON^;t4 zIwR;xwx=pX9(v^wO%uoO%v~F2T=P8?I>HPq7;GU^5G#laDS!c6bgXV#FDRI!j83?S z2VXR#m4wagH%!3HQV7uAAu^Fu#S}}LveKMc0V8(g|QGRs2mv=^d;dI zn(Fs2cyi`;?C1&@$k1uJM?kR}T&B$7TH`7jNy&PpE=Zi_1pXcRyMQTEfyB5KnIT3+7zP{x_fnp17=!5kH#SPwVWuyT?*E;q@Rf?tu8tHS1h%sq@=`vev<#HvyUy!@CQ3@ z-It4bz~th3^!E1l`T4nftINvsqphaq7Y_+Wue+6M1{B9|7BuX%sg|$M5|=m9Nt`1; zZ~SZ(0ab<*Yj3?9H@jKKtyZk&Bc-R5aG57` zkR}h;=X{q_&cU~S-9;!MB|H+4cR2pnGrq_BxF$&RtV~8e?3Pc=`EbTs$jsfoq2vSn=!pHiTiZmcP(x$qhYZTrrL)KYY_&B)?mZ5>`B@Yvm;0 zRcs1NRCe&-9~9rUSdKj&EY6>BcvWI35@ew32JoQJ`;mlW#>m3;=AOmD=c?C=+QElh{aa`eA6}P)Asv$CxJ(d8h)P2DX7zSUX-!Ey9na?;ot*~um?-`UKjn<0wCGM1Pu@nwla-iN^SUG7E3QInCD6RQLW6@{ck%%2U21%>3MI z$%hYZmX4>ika&xWUN##=5u**bS0qh`GWbykrQp$Wp=?CN&g4NX;KLx{EJwlv({|t* zm)}*ABl9mu)yz4q)aaiA)5)aZc-32y=F2XBf@mK{t_#4>1<2nmQZU0>nwnhv{2^aE zbqDh3MWXDs_B4Cy2MLjr`<4{?(Ux=1jzGg}{8`|(B|o23eGkNFy#t#Vr1AGJ?ZD75 zn4o?*&rL)`MDnOdVRV1w!WmG|sJI4OFRv)7)_GpaG5G3VG`wh=44(?!WjqLpY)*^W zYRAz0_Zu7d!h}I^vv=cJei<{8-+rWD$q~zc=dv_4Em44y*7}4;+_GY6%l-aPHyRp( zFEgvBAudBgAxp!BWIgd`9$7A!Fx!7q$?;$;AltyyzqC9%1e4fH9 zBf-G&F$R|PH{Hq7)RX95=uXyhqX47M9ZwGr4?IPgTkc7w0-T=GlBk_J zQC&rSMP>dzYaQlDGT88u5eaJnT^XOBr{9*~pzENZ-fwQ=F4t$VzQTt}+6|6ShN8d@1g-pZ73X={UxJAgg%qf~0yRC3GJ zwypWu}+ra$galv+1AEFo4k z56`aurC>hsrx8)2rP9rc`dX0;oBTquCyL(@!P*2)cfr#9RCYv(JhbVoe7~LF3iIRR zz<{HRuZY5SaMW*HyFPC%ETAii z>hh%HCm*b$Id%M?yW8FMM;mMVr&ATmKB@zcKJDuIB;kardlVKHrVZXubbyv9T#kkP zP>v(a#6ap&^z0b7_cGXw?nmSzO#kGF#AJ^ENt`%YyeK8tv}tzHth;$Jz8Ky0K}$=o z5sPM;WP$EM`6Rnl5WBFP;o1Uqx_HFT1?Zy|;?6F1r`WnVx(+6rL+Pv^-wl$o)Pe%Q zPhF3!-K`*;2Lv`Q?1a%y1I}{Q$fFqM$lGpd>WQYsohInr?S^=azeeek*YOj>9rPsh z$ZO>;PAsQ|QfkeE_@O>}oVSPnwvv*u2yFX(LADAGmyooL7xbP+ce;~p3f)L^S@f32 zT2}Ypm!^r5WmGHA%4|y!LI-ZGuM;_K`|P~FrqlZ>Q&m-Sv3|@SZ){{O8vTwJCvpOZ z8ar-TILbby>05%L?`hkubxIL6XvTx#^u}wG=JF_MD@Nj`yhc~H*r-+A2onaff|G^R z?@Npn3u$O?3-Ob_wQQxOvL{e#K5dA(VY!Pi5yt)IJy{jKgEA#0j0at4M;n^^*7 z6hfN$17efi4Cmr}IzA_hOyN(}%_b{`@_ZZ||5V)V?c)PO4HK-4%10k~nVAE!_q*kCK0j`QKye8#XsG6R zy*fKO_LYDRWzvCM8Rz51Od;E^@tW^pv+3k{|!qc)V=qC+;4}?j~+SdD6K%hmF1(rPurIEmLXt%5Ug3 zZXTZgMz9pqC}d<%ZsZe40d4ENVfMDrj}I@lS-U{r2Ej_JB$QvWQ%EkF2B4$^!R>Pl zc?KBC%Cc&Wt2~^X0*d4KmIHP7Qm9`k<*A()OK`edOC| z3zyOggy^950r8W-*^IzJVlRkTdJf0w)urDi`inHPB4pnB^5!N*Hmw*<%UY zMI+TYIeT(G9-e8_juXwWhbo`Ht2aMP4p^)F^Jj2~2G`v0`a~ATQ|fpiaQ}NCSh!~J zW#d6f!!Ex?mn0eJAc%Uy;hjXXUTYL~7jb@ctPY8ytuIa@tdxP7c%zS$YtE0jKl~Uy z&gp0Mg)Drgnx`*{N6zaRFuH}akuG2pDH?MM-8nxlLsIskFKkvpTZehfBW;v@M0(e- zGN3DUTW~BX_!E5~dh#_hgWR_N@Zi*RutPSn?{`Z4IIXj`yu7@=9{6QICu5sFzZGw# zt*uREcQ`wX5^g}D_@mttcvg^&l{h1@zwust@(R1H_VAZ3kva{6z(3ZswTxJ-xB%x5oO?kdEnZ zp7UxG?^;~G+`J@G_7@R%WS_NP(G&cGH$7OK>fNtu@pq%WbWOMxSe*N=*zik87EMuM zqj6MXFp}4oDf}XR zLusK)dkqT%9|d>M`~-1Y8NF?n?GlBGyxkwh)|$J!JjB>A7*_cS`9H5;8}(+?d*p<* zGr%?J`5Ta9uWROCV2NY)xD+SLgAX0&G?vUXB~LH-3o}XoSMFB@z$e@GtH#?s&gf;2 z8>MdE|7B|-rI5LwSt#e{^W@;>HgX_##I{4u zMAsbY0u&-uGSBx%$A1T^C+x*m4;M8;9ZN+Gv+VnPO;?b&iD3OqLq~uYBia}Ia;p&McKx$%?z9L z+~h0p`F;q`2|YD6Rb5pD9L;gINcNu=&|P`e`sIXyC_nF4S8@EoQ&}L~Oo=XHF}hQJ z6MP}Zx{{27Th~TB+ToytU|g}-{kU6AU95*RZGXH*O1v4OVDqZf-8BS@&ere**4dB| zDEX!Vk`@t2X=2ayZsp~~Jl##%v@Gbkm1y3$f{Mjc3&ngE93E7tB)Egd}0&F>(&OV2hesKEz{{s!1 zI_|!SjbQ3^Jm++BFUsIU_A%nwfy0IRg*gygo=Zor6M0Nc0N^j&wK%ZEyOHi!_V9qU z0`sJTD`uhu4m14l`vIr(t)V@I0NPI;-VZNtzARasgqjsggpfYx_C^>~^y>1V=v!6E zi`TX*zIq3cUjmV$?4Qs$Uuz=O%PgC)qi-MH&1)LnmQJG=Nd8Xi-W0))o&$VdyimwP z-$2|FKtZ}9F3%EkSs~lFP8wmG#v82^<{3ahj(Oel+e_g8o;!pf1#o$T63(9;03z>K zR|EHV#d9x}sMXOhs*2d}p4AjYrns zzJWmcZJL5~=9BU6*3JmIDI9v};f^`0@9hqg_=Td_XOIUN5xaeS1|L6H9~*Aev{xvI+T|{JWIH z)Xa=6LnCz(E_L#}E~>HiTNY-8?9{o(9h3G35nkuud z*dHaPv7xQ|z_hz9nK|MYFx;~S^9VhR!aqs$c4dC%7Dwzu`y9(wtC6p2Bo=g2dN<(8;Lql zLhVY=pJPZ9!54*@SX#AD|519Au4_-elw>%v;HSy0qiQ*Nm$A$A{C?vi_DQO?x*_2q z#dnJ^4dYCZgT0%-^=lUu3C?L@5>iOjRU+z|Z^5j5R)$=BO7a|5Tzn_P4Phpkc$|i2 z8ui_Y*ax3>ZF9-m=_W$@+*{2d zXs?)_(ny*}8Xz_6H&4}T5=qGCjO5~pNrta2+sQP5j=i+p(J*Uk57F{lKIMvMW=(rj zRLs@yO196}+tFv3WQ-(DB?C{vy9C@0CT<8F)6{b*eo=2i2-IunqQxvS=76?|wB^n! z=U3(b<>#JI{P1n6`j3gVAqEx=+qdecw~rT3CK5bm?^bQbA|~}q<>s{s7me+zs|WW1 zh(s2OKrt%QnAH22p}h)y%~#|EsHD=07HlE0%D>?jw^Zy?;4TYNB>apSGYe@s6A}$B?}ydJQob zs67Y9VTL{NcJiSRS0CIbLIswk*ORnPn_5QHnF!(uwzT{={|mp2MpR89n;6wi$Yaxy z#NcdiFQL<6sge}R-*ng52qGTz;|mJ5*ScXD4ByhvG>yf^5LYxypV4LBGm7Z1b@}o; z=5NovhR1waFy^dKsd>g%ra|98h&9n}NO%-!FrCo-0|JIK<>`!#*~Q2T!Zgu$0+R~V zYUr-&xJdCR!9pMI+Ey4Fy%UB9**h^8crGjJel?m&vbfsDNRXUAs_QLChhQDo9m)H} zwE0rhg^8obBud{U--oD78qikRyNr1WxPx2<5oZ3h+2@0Xps|h5my(*e#7kk~GC7W0n`D_^+5W&b+-I;9-ONNw zXna#SI=dX)T1ip{MtW~zVSNZOT3mETKvwx=&w*=@)efpypl<;E{tdQbcztPUDJBNd z5c)7U*t(ZAMY`?jd`gwQyStklF7;Q~ z&5%OHrT?-9k$!SMARm2tbh81Uas@9>4~8P75@bQsN@(cdvjZH;Une*f0lg&{ALXv! z^Mc1okicFKE63lFbnwF;@pnEVDx=l;gz4q$h19X){!$xk|tY4UC1w@S|F8T|8wLW2XPl$I-+9lMf1mbMey0?RL4x zeM;k4baAt1;!WP*9a!+gbJBmS#nkqX%uUJZPPVF52k~IYX`yRGJDf5`{hGl5_Qr?r zrw;Gy(pV2Xjt*GZ@{yNj)>(Dz%!%`7gf;Sr#{=tyUP35P>4)wVn>{$s0bAhdjf}Z2g3fA~EiH z8MdQ@okrUxy{q&v{*e5eNa?HlODY`^b?a2CusVxgj!RR{Pz5vcu! z5(m{U%L-b>&~*jBCf9}A4d+kCBCCX*og6cilz+KZ7Rk+Y-u>Ecm$Y9!xZAJr^14XA z+oOPVF)&n>tPMH*f5F`PMm~zxjJHT^5MwSvO+MN2H?uc_wnMAJ>B0Xg zmMkn$uIG2eR_n7>5U0@04J~?$b49hQHCl%Mn^k(qI6j>A%;0JcjJM!PlNDRv~zubbn4fYks$hx;HlgzV$*>27Asc3)_k$KGcQ7n{IPJNL&L)zui_%57RfR8o{*6Brmy)^FlzhH_Sy}i8;aq{l~3&@VR zbz=gOqDBOVq)h7;jA5|dxPonUb}cY`G!(-5EOw`S8IR%|WVT?^uM4=LC75i=jfhgs zKjO{?@xJVITR-E~OzsVo1hB6b&t&Y!g?p_7^do8eQ*YUsZcb062=Fc`;$q_cNm_Z$Ub zaYifiDBmaOG-IPNjgp(yS?62sL@SQ^oM&}bQ7hmLTy@&mqQHg)hl=hIv*09&3zH{u zMTt#^^@33)!Yb2*!RE#uOQ4a#-axu!)jOzJXO2Ioo*7N)bPFDG@I4ZYSG@eW_(Bn+ zf_wk1K6CSrJT|6zsU!5sz}1r^yaMsG@M1P`m0R2G zh1Q7MY#VK^6Osoa35tt;>1`fIEG0H|G+wCEd&*VSQtugTK2d(3O{}RNSk{~-MwSsb zsn;l90A4>s-vsm$)#;KaOqkQ)MjyMnGg}Ug8joE`0QwCXz0r1P7TH=6-Jx~em?=y&KcI&QB`i>om}>sURl8K#y>ru(PmUs?eFK4*yHvSM zo{Et*VG!|(C=N=eS!Vb^W0|bI2Mf1(<}XD>w&>lJ!@h$I>P$>*!!mIHA`A2`mozG1Wi*Pl-2_!+@aF`cRDQpNHGj0h2uIIJkq9{p)( z4JzeOGw_~Y4Ao0#7tRsPLylY*Pj6A8`I?onr8fZFR6kk1O*4jErqE}lEN+tur!{V%W(I@&;#pzHwIAWN&}HTiJh-Ii7D@zRtn zVS-=gwDS22IkgoojfQXx=D;B;J!U4&c`zWi0M@R~Zz%yO9I74kxi_z!*p zcsnjsRewG#bcYr^t=V*c2OQ{Y`Vbr*66E;Y03&un!0--0Dgo%G&-41J=<;M4D5DF& zLH2#wC?>b{tJ5Grhib-!^M20xa`*#KiH+tw#8TD@%?w0sx9bar2jn~De9R0xo#8}^ z0MJu}TsuT*=T+C+D`Wtu^+eydcs)e2D00X5LpgwGbJ$T)O zQH47ZZK8~$qoDAU?%!$G%OS4lK@8t3G%?>^B=dB;IMH<1Syem2#=OwF^P1HzG@QwJ zs-IjA;9~_KOuBZ%X^Z4?qD94;Yr?!n+JS*rEviNQItOyT=vdRj6fz+&6F%?f6maosZ4|YvCdq8}6sfjaP!OT%aWMG;oBj*TDt1;2`W_Mr_fnxt} z0D_?0e;Brt!W5E<|Bt3~fX<_N|9+arNn_hiW7{?x+qTm*wr$&HW9yC@+ih(B_xZi& zJtt?+&SsNbGrO6Y`@-i-iY&ya(>mo#aT6A?xAA)UTM)5x)jaDQuoS@K8W;8gcwK{l z_j{(bt(9G(fH&cXKID%PJO{3A>#7<)`&s_S4I{F22hBR|dxL;ycx4EUX~&tXe;rOt zDo-UkO#VS%I?sMWN6!%r)%nZ9skz@jNydz zd>H8@;Zx*@SP~sB_GQUR%KDLxZNjg_T@5EU#pUysyjq~EV|`l(sEFr`hyBn*-8U0- zEq{+b_4QQvVE*4j(%AXr?*zZQ*pCzJecFq1>I#9!V!4}lIKk6(8*dy4LJ|N7!9=-i zRw`3HZQK5@IUZZjz-yP|zGekTHoYtGo(DhV1bjSmZn~nOu{=Z!Je1_ydmI;4=ddypvm-Ds|4FTdUMVb#LG`;@{P$>UVqd?s6Z z;_YwU?|HX7O1|(qBwW}b71%`HCnQ#TbE;(uCE2H_ z2B~~lLusOQMW*{&kMH(re-8OOYb~vx+iDOF{0%He0e!HR1Cz zs5tAG+H%Xc;T;`?w<-6hGk$?6)>ug?Z;MU>U|t@37_j>aAr)f#gPu&*Mg*D@KJ9d7hx8O{gY{CuR*XNm!pCLsT`>@bNWX5xU2AHn6^ z0hc|GR~^*&AAV$ufj|~+0*=ZSTm!soKb<4oN`F{3Y+&xszYy zP^=dM#k(}aj^ZG%P8IPk0@d|6u05EKj^D2rybfh69@~B%{&iKtorT8a2^5QK1fp>n z6m|cPdKZ+#%w{1JlNe22{^h^IW&BHs`fIK94 zsYM~Fgpc1mEhgftYR1sKlwq{Tv)1#k$--P}wv{_b%u@td49r5h4E zUy>rrb@<6k3yv}Qx=5#{p4nbehA`S(H&o*LxaslNz6a5Pihct8)y0acO@Ho}$k%k& zK}`Fb$Fy`DaqP~a@LJF3o?58W$Vj7K?tivfEMt^yT5y9G6wg5~$m@K3ayR{Q@kAK79{6!r7agsgpT^N%*}zRmglK{)>+y!c}{O@G0L=8|0roU z{T<&-S_(5Gf@rd#;P+J2NcwT5<&@8Se?zt?4P70qmn0+g`W`Q(LWBf+lu1ZZNPDnC z37bqujMlWrmTw^+bzp+p4fVIX8Drs{Re5e!j@y7o0FSmp`WlR;&{w$>Ln6IqMY(0~0 z>^Y*~+f^z1TGUe`uu#^#EZ`PMYkVxZ{J6)|Gj|AvW)P1To0vH`W!K3>L&C@-cmehg zoJECT5o5CWoTV(hzn=8TKWfI!Nxuo+&53R_0WgpkNH@BxUHatNN5Jb zq{jYkN3mo_cz1=BCPVr07y%7q#Ztd=o+&SD?X8>Ok}H7M=q)|b!B5a?3OXsht(#H_ zNfE(yLF#e)FfPRJOB79DEkzP^5&JVlZDGW=q8=BCQ__wp}pVhgn2=U?ihYbl@FY;)91ij@GDX5}eN2_`U@b~HV1Yd5qkuou6vMkK`e}rNW`8PDG6vW!rqNSEy zvU`atJ$m;%5-_z7%MGhW!m_Y2_6+<7Z~z^wYe5e=Cu};3@z`3syoqJ%Z+kI!_&#Jx z<$zq#1L@j2MOzpF? z1{!9yCg3R&ah%1Me-^^lt&%8oVNAhuBHEY88g)vV>ZlpZ?n~ z>SNXnL8m<5k{hBz`eGdHeo~WQ^{YPDsu>};*(*|CaDy~(SmokGr0b0#nqXdeJMsFS$E<{41Hqw%9LJ7>uI1`Vu0+Ir16ZCMVXm z$?sjn%W7z{sq_t-oHBkh+{fiHt|)CA&aw!sKdv*3qHo6%IGuQdJP%;FHA;$@62_}3 z4{o?^kb@q#0}SvDI>ITyMI{r2XWG{7yN)OX`3t!tP-r)n{u<*|hq=3BJ6le zTC^2v)ElL3>Uk)$o>|35-3^x&e6Y$@|5jncm$P~MlHTa*Ib%EK3ohe~O5x+?*mEVY zuQ{IlN^jgijZHrsgefHa6BF`X)UqldaG-b-gA<ueU0;87x7$$gX zs6>0@n!zpdc%;OMenL+LF$`0XjV=&}mTSW6LWXphoahLGWEICM*jJI-hAsHvNBhyR zAMVT|b#4WL?Z7Xmn_xH&tp>XSvb<4KR7@0SL*3|A<-e6Bv`B6CGU?o{zAc2+pl6j( zyF6fv3n16`JQN>(qIZqkubNr$@%+w=N7f*G;mWgDFc`C|9?QsPnEB_eGe1|^iGv!Z zQ&v&<&-v**lYMBdVja0{*{KSvpp_m_n6>9i8dHyK{%s^N(%eu{bxZR`I|_U%(Y7o* zz{h35!Y}^u)Z8l3T-xG%m*Icaz8||_KJES7bXJ8;_P?>4BBoTQ-u*X?TVvnoI$Hn( zGHFH?HYOc+WZ!@ZbHC(Rw_TXmG;7TnTakXl7)q!al`a+!xFvRqe1I1@DImu?cq0n^ zxn6QvfP)%rC2oQ0V(vw)q0F|h$$n=XNouE{!Uh`(kbt=PpO8oD@M&BpC`xke+9;R$}0c z27akNp{Xm$n?c(~qbI5w3-fMQGKxuNuHzE+<>y`$BVS0VI6jGdNQy(UQP9{#H;*GQ zew3#Cp?a|L%9#NRDOWjl()K;~%eq?D1DUjs&pffN)^7Ti)%o)$*P*UGr}AzY2O4Iu z#4r%@Yy=iq3a|}hBYRQ4Y3ZF?m`N~8mUF-CrTn%3Hhces-hGq@*R;K|lvI{IR>{rs zb^kMX08=9?O>!LK=H|4*$y_$ZD!Y^3kjf}RI4#SJ8zZ+3@XyJAwzrgU0F@EPBumCa za%SOj7D+gv2)8Wv5xz~8i3Cwf&6s+TJ-2ixo&O@FAQO1vdRe7LZL{$)1sQIVbR?vS zG(3HAix@~`+o!@Lu%a3}b{4OIO}eUJ&M=rn)4%s+MBJq6O&A-_%@k(o)&hVcPQ>DE z1VvYQ*BcobNg^)M3g9S6VoUegR0M8XBPh_=`y*6o zCJWljdUZ6;S_%zy46pe38I!@=QN1qupTA(zW3(tvK!!F(BFVk@X5}?VL3{jj@+hk+55&A6 zrxR{MlCwS>hZIAYUDg?bV)^iIRX60xS_9Pc{;+Pz)8<+#zaLHsZ|c?61UU}lYWTJ8 zp`_F-an!Les(@|)wI-#ly8Sq6KIk`!erHOVzAqr#^J2R_9Q7*aZI2gZBY@+zHmh4Z z0J6CUKKW{k@uzq(MXxF@Th=gc()DL?^Gw$}pD>5X6pd1mip&u-id&WZ2vi#yQhqO; zlrufnLzu4-;&<|Z)~~6O?q&_s(>)tfNr$0$56{iYUhxs1z!#U4(qh5)vUDYrAKB)Y zm1l1I2eqSq2ii<_sh1`?4>hSt)I znKU#*9R0)G0XG6YDO_*Hb1po|#q_jlw)2XHW*LSJGG&aq4}P7>O^5fr^&}jxjW})G z6$wq!_xs=QOR;ht)ZxSxC4r;348LYpKYQGD7MLI-Mc zMn5}j*4m%RCkFdszb+4?lPJa4NSxDpSxZll6X?IWrqS$+WRh{&Cmf~s<2SL?nZ2b- zVHRSb5`EP|vFBK|MuVM_Cd4Xf{AcvwBuSiujGmU6>u0j`*IxYlMYC*c4psM6Wi_Eo zMM;=d&au|q_WnqT!Im$j*~dYWqCyT&%9*Aa*;Y93`HHZ(VMgzMEUzm`?V5@yP$}3@ z*_cjinlKJgBQsPof3@Ji;~|j>IVL<6&4{Wyeck*17KJmtpvN<}2XpW!d0SrjG9!Lw zzrg+!?F2BHl-6>eGyCOHj=xn;XJ(QO8B4CLIB3XlJShEM^%PCL4TBcy_JedHQpR_M zq2YH8H>tA0O1uxbzQhv_7vj^Bi`Twxp@+O;m01WU67mIUZ=ht%6;TO_$Pi{itkJOn z6~XdBn~!X;t9Gl=NwdE`E@GHSAz2y<-OAgR$O|g zv3{>s$`5l7%^N7xYu0Io$Lb$Vl#00dhA!LV@3EEVm1_SM_jl@Hm72T ziH*GhY2JU1A8*fc1;~ow*DrhX10g^-tP!WZQ*6|MrT}S(BS{|m7B)0~56zkQj(+>? zI>nL2{>MbnN-(htV@RlTpIqjin>Q<#S)wW6ZFPlf_)1SyNjA@8$ zIHGCSLdaCT-0l%j<6cpxl*jVs+s)Te$XL{*$>T4&XNqr|YCc5~0?-pIP9JpY=@kp5 zAcZSyPKPZ%g-q`FBaa_Tdt2%1>3ziX3sa>%B4f!J!2rK;5r4Bp1_Aaox{ZrqCHI?{ zU1Hror_+_a`@+5w6;UXgNQKK2`AH`BX*(DKE5M1bQMNyvsP2?)N^GIVWJZ=P##YE| z{rf++E*W@$aK^f;eyf?~y*yf37WUur<&*0O+kaR^nN}OdP_ayd=GDgs}pv3p^u*7rS%Y}0cYB`dPs5%%JcTGSUb2kyU@M}V?y!BRPjTf zh*0v<2;*Aw$Btax9?B^{`Y3ps#t)jDl(?^)MRBPMN{2pq59sEjFmYwHCa1sttq_29 zE<1;9ZdW>9pMIy4W%cWoonx%Leh^;cNs3YE&TcRsjcCacB51BpG)i$mE=iku;~*O+ zw3Z#OwGL1a6jc2)b7udJA@W4{Vu8YJ3R(9Dm-v3=GGreG$4|)f{_H3@QKM60h1iuX zV+koyE5#Of&nMll36Bcmj+&6{W$19Qi%7GH84*>hE{kV{(xR&7hN4)F7+ei&537n& z?Y5r94!tdvR?Jf~C|RAgYFzqPf^m=>khGQv={Abnjtd(7HXb8)kB6yG4< z+rrI?hj8xq#Reu!42dUn6*SjH#`2P`B|Z5F%FwSm-m#Zifhp^6V4+CBN~I@fvzxj& z57DTlUC1bfb$C2h*xZblS+kF^fvY8EM<2iBy%mrdR;Ee9=&5%D@p#}>qrC{?IrsW9%K2W5zr%rd z>7qyp2@m1R{`dU!6ms_W)l=l?z z_pBC%3h$x%Zv8scxyt(J{`KZ75CexG?|G38C+9V&1r+XQZV-F*=XrupS9Df!)o00k z`jLdbAFiZ&XIk)KJNwd_Nbe?K0|4K;t@n=e1vAlGg2Dc@$~-fv)Xsb{Y*DbNrC&Y) zffP4pCgw}48`nxBnkSYs_5J=noVokmZ6Dd>lF4eVTPf!OAxw8+)4O~_nzWzhIEAKn zmNQUs7}jUab_%@z(A|`Mi$q~aY_rEsP#XFbVQYNI78Ug0fFJsA)Qptrb?W@1BG~?G zl5}B*wqyS9OiUsSxUd`4!#kpm5k3GGeXDO=v|eBDf@9ymlGV;`a?0}0j-i@fo?dN) zQxVnJDM}Vxf5+cI7^;LAF)?o+<);H00FB5mxs$m4-8HxgB>AZUZK3FkWaM9hS6{&H za19YZ$3W+}zzJ_j*Ad)BBFJRuXi&c44;NbteCxBfW$SM@Ni~w*OJH4QB zNtqeu5z0>C%q_de;ENJxj!7r(KP17}CeNuA&|pgdlj7+YHh{WdpaAj@fBtv&pGdA6 zDbNy<{qL6$|NrYL;XrFn<-c$LclO_PA^7*{@{4C*b0L%M>VCucFG5`v5?=-7T%q!# z)QYN7CMFKkf}C6CTD9WcrK?X%*i;YSdgGF?_iqpV_GdrKoqO~pi$J%B{=Wgm@;hVZ zk6V?0XRi%sTo9H@_vG;-Gvk$@zOob)!Nb$$?oE5E`-jANm)zsDNeTv5uoFaPpsQ^5 ze1urTNALc>b-z<3jl1&XOq*9NS+}i+AkRaI3wOr9%UJV)Z36v?kySsweFk1Y;Aq~& zO&AAcf;n>8wyh5vC;YlUb)8rvr&vQ4=`=(vsG^eAdyC?4^zh)6#KKAgLT534&xw!M`+a?V6BChndD|Z!y=7$hnGe4Fbka`b1xWg z+$>Y#J)$0m-nRhMd6txv0Ct_8T0uiY+w1A;JHOq(zvkx?pFGFmIYH)9if^v2{?OLW z%*kP}d?o+oT40gy>)_zv=SL8_pG>B9es&f)JG8Y$*qu}oZ&+SW1Age??tUSv<>BE0 z)Zo#;yYJruR2p`EF`zoBbTpENbYa$)1>ZbNnMp;C#oT+^$kM5tm6eY)Nt~o|cv{)>Nh8KH#;O$88@Un7p z&5ezFa0$o-U=-ILuCD356!}TfbxlpIOgY)vQzxFm^(DQ})|Qq}x%55`4vdI6;Gq#! zRaHiolzCE9rk2trc{w@E?txYdtW`ZddWk1qUS1y`ACxJ;;AW^qYgDMsiq8Xuh~z02 z78d=>Q&Vz4qe1AWA3Hny4rRpxP!{v{=KJ-iu&|Jnl(ez2F@GL71P2H2>=+8yUcNmB z7#ka#n;)H=zyMgGH8C)@Ro$z{x3}!WI0%F}RpGrd)!oTg-;p6X0@^qKqT*t5eW;za zPv<`g6%{o4NMjXw0q+xRsI)8@46rF}QGl9mC>k1CQf4M?8v^H~AL{l@P;L08E(gD9 zVY)AS%75cc2aI=zfYqjs(0!c&YWft@?}x`npgxiiAAc-mY)r~IFDokxppV$t*r<(- zjRBd%yMlfQu<<7&BNDc@^wE%jb_YP%4YqU&ijIzkk@(D+or0AX$`E^6S-~~~icPhW z{6zdaP)HI+^|ZA5%)yp`k&c)8PEEb@qp>5DQCzp1d}eTP5VBERh+7|hekmH9tr-4| zBsMk{0Kc|14O{y7=s0F~9T?!;*ey~%+ufP5h#GrSRt^t~^OVqZK0R;p3J2isS|ZBH zf@hUIr56heq^&bDu!T@NT7xy9R5la$V=sgh(|ZhK3>J_737Qr06_Du1Zd682ifEsY zxwv=&(SW^+(fP!y5}PNpPEl~C} zYKB9E7X&G|R!U8w!a4$4 zdXK)Q!6cM7>y|!YmN9?Zc2h<(NSO!6Xl_R&4XvzbQf+8uZAY9HPh-cdi0F?n^;E;$ zsf&1fR1Neo+DY3PNthe(?`!l+R5larJPHjwY z{;MDXim=a2(31&)3_gmo>xvdTJLAJ^b3qu8GJU;YwZBaYo(|HwP!FLG{WtMVC8ED& z;gp&jS4uTbv=JWS_EsZv56N=tV2+t&m-tU!@RfPfbK~`qcaO^6wE9rQCEV2cxw}aR zto4OV)kC~lH)>O8_Uy4I-kMAJ(Btc-=0XxK-u8^Bl^EVQxOE)8|H@;>`Z>1A)Hj6m zyy#6(%)HjJ;lQeW8%t;uCATYSLOHP&aC}k}3Q#7cfA-{i@a8{WHd1(^!wdln;T=G- zs%M*lW^n}8&^2WH3z){{rmK2u|C49m59KOI3%Jv3_RMhNwbpWc_5G6?jVR|I*Z*j@ zYkpGPVm1vGM-57dEIsf^mDvRTT4%@o7Gl`UMS=0~<2nVUhJ30hW!KPuRL9J{L5u!- zTGW8N6g~>}KfWuUwiI1CdJZl^L}W&9m9JU4A$!+RSAUBo2PrR*UYjDsM*TkG z#b;&~Nkx1_trOdM^s)J4RgHGnHkI86e64Rn((Q~Chs>WQn+Hj+`K%}bO9Ap1QHL5ZQTxKf{#zK&? zp^muNzl4%x9u7Zk0q$C)A3=dS9K5_f2V*EjvZ}SHS$qoNm8Uw0+QwFA+g>}@z2X3$ ztG1gJz+EGw#{hWwNqCr~a7vbDfI8zKnuAfeeHam#wAtQ)c?+IHs5^t3$m4ohGk$tuLw?q#fLL?P z=9(}zY%r#pY>p!QKh~~CxjHcp?{Ze#FM>DbPGbEst8S`pc(EBI-pYMHi$)C<)1|LE zpL~yKzeYq!eycTh&SY#EZ}4W$dvTzz^b#{%FHw{y3vf#CA=3NppEC`wa4E5~TB+CL zy`*+5+v4_DBaVJU^&tcR9WAzxBL0UDb303ZY1yn-qDIKKbS+TQDz%KJ>NIkN3jjwC zgUl^AdT1z^`RU(){P6Q*CWjY0MK{#6ag2>SP_aTx#8DmZ-YTN6=?{dHlNi?ULE&FF zCgz)381mhvtrk*(qnq89NlJE%3eMQ9Cu;k&5uXE=v5tL`e;bZcl;Lq9J<`Sk^J+S2 zjVAN9RND07h`*EX1Yf}odc8~H+oIweMR8q=&Z+MY`gLr`i^kT90?`Tuuw%!Kjt2~M zt2e8ig|D>+7hwH_x+1j1ia<8!IzhvQyge!aE9)WZcsAfii?z9Vs9F#Be8>QHz_+ti zXR9LkkO9=M1?V$FZt;`&!o}Ti?uAO-yH|uSa3~XV#8NEiG~CEsq$Z`H!o;qpFMfVH{?P&1B7raqTsj z=E0%v-i9L3ir002@WF*&P>^Qmj%kL72?ScF5Nx#Ar0H^$w{n+xD)2~8VnP) zcCQjd&*=9%|2ljB_w(X*s%gj6C7;5;g7n8i{Bz zccrW^*jE0vXOe^cEp!iu;V8i4a3Teuya2c}B%DYI7hA;q} zx{70f(u9^MW|vTQZBF^R1*RFr#;vU4*VjkL?=6NgwaLzQkYa z|5Wbs9Fzak+I%K#w|&8617rg&u7H^Nox~oKg1HDej3ev-Q;YJ{s|!SuJdt1~ia1hL z{LBfB!eh~7ve3ZA|KVgWL%z?mddHCe@7_=OAsKJ}SgNhWb4pw^nH6(T4k;urOIRNc zk>!~3pYnrVqghg5{&aE!*dP9+?AX%|b5@_V2nZZ@>4>2q_c*DY=gpb1IOCQjQ zNWoRdPb(v5OJswNEKUc~At2vx@R^GPS!i8Ys-OV3u*rUtN0*_Dyqk7a!qZf4FP?m8 zao-=ZYi>`v`dT@Fb`PUQo-}ZdJ!XF{K|ain7Mga{kNbeP8L3=YZF!a+%zMOTh;W5f z--drq>z@>pax1L)Q;&E;h*&eSD}3^hwp7=9)5gc&ZwJF-j& zg#PUDY;YD>pUh;p36C4qhhmJz*0eA&o@+t2(#|wOanXg`7ua%ck8i{-3hHI;nXnI& znEK3DqDJ?o#?_-nPeozseo|if7Ag@%qarC~F}9Lk3XYQO7P7bM;%oIoi`me>8*3() zKgyiBK3tpUVLn1$LW+q4xthy47$4qF!U$ER_8OqoorqS&xmKc?bDaFF*QvXcueH6t zuhn1GvEvxv#8-xLFbceib{9fgkDVgsHejm~B1e-&zDtA6ao&G{U5Hf4V(xUo#olCc z93OY1+*+xTzrM0n{AZo)5su>Rm?BJ2)x!SQ1qiRO$dre#Vqoah%{kzhu8&lB+T zetU9KaGCiAegB7##QFxQ)qY~2Au|TqINGvV#CM~eENRP{N&??d((v_qOo10SPOKn zdKM&rv?I74%>PQxF0GEq>a%I@s|5RPlg#O03|GR4tE*VxF_rEa{2)W(F;cKbD}n6P z{dZD=E*4yf2$J}JGZ2di40Y|G+7}Aa-TJU-+2$IbM2~oZ$;`mVtKd}r^-|HS*(W&o zx8Q7 zX)|Fg+h05FIdkjS-B!xaG4NEZ+I6uN6z8{YXS2QKQl7Plbj~cH7ib3tLV7&(so$%3 z<~?V0rbGphLY*-oRAwHTkcS+m=e+QX<0y${A#)z13%IVw24n*Vc3gqIC=Hg`+b;GV zsc@MSX`@VNxgNE6VfGgFt0iaSq0VPPP@C<*zMUTz9WG?RP>IbuBOi}A>*}IMol@mR zKlw4_5;5V6ri(YMaNHM%PQ0s z;VrOyhSVu{R-=M*&3=W(5cACK_5h!MGFy^*4Hkb^jpR=Vla ziroe{=(%L>qu>%2NA9b&`$#$^*;$KV8wM2PN^ zVjiNHjUKv4(5?Uz|IHn?A`~MqoNW3Ipn;;rE0nWepC;^}FUnA2X^>c@)-lnB_EKqO zG5AU0rAny0sY9~F;A%?nW#Kex;`0bi>#-Rv$wXE!8~y}o^e7P8T6#l z?R1Tx)vibGnno0Oe4L~OIFPc=t=6@cgfY0i%GqvqabANy@zd!~S&;@YhjTL$&lhk{Nv z!z9t1zhiZ9$z;cAjMHl4xBsic$ZAhu=PEDGDFmO?p+yqORhqI7QELhFTLri`CZ8oD?}CQ!T$ zY2^HRDSgG%Hw^l1l@OjA>45Fbp^&g-R$z8;z-;#%$BvJsB3)3~t&Fi@A5ECMYKwD> zWKcRrJCv2s5+u8^lw_oVtCza><1FR~d@QAZm`Kpz0zT5zB-PMyan84_?B`4)n>h0NjE^7EJNYRy3Sx{q6VWFoSv;l zdKjaTOFdp;Tcrg<%FTm~7$#G54)7ko2PU^VvkD*~lP4-I3dC6g4LD`R*dv*mkbya6OJCRg_ zV=RqG{RYiYQLG8_@s7x}eg5UykHN>_VW41SY@MsaYu>WC-%x9C@q{2u6eQh!t5Ul8 z1v<;ccTF=o4hi0Ush#wSr3;$^6ONlQ0S#ElDKW;(%V=hz4-uqHM3uYBZtCo58UTtPBlX~!qejQe)mqSIuS4gQO%3D;o=SPmnYQ)SgpOU$IODQN0-zsE_CVdh*y zxwW^Ld?|>9drS9p>-5U~#lnbhc7;04xcW6XCI*4Qz0iyaTLn92%ZuwWN3qb&ykL^( zFwNi?>GIR?648CFy^sm)^Ej5kQA)IuGOJt)rUm96W9%1n`J&w#pTvv6bm3+^m5}X^ z2D6}{LOpafSz>%9(_sF`yA%C(-07c5V50TUf-&)ENUY{eN5@YaKEHijH)a}VR(JmW zzJT7=L~V5f;LsshTi$M6dg9>VsIFQ9&k*n9o3$fE`s;h{ z-qnhkKWsB;=X4gje$EjwiL8y=N{FNzp1?oS(oPR!Z5-OGU#}FMqBp z`*(ixLtJa6)8LP{(WDvmRaS!Tj=U(>Gtlc|T#@k9^!>~ch+sFRPBzFpn$XElBAb-J zcgW+M*0+bEQnA7`#{I!u;n{-r8$97P92x1G-?a4|gGxAbbWr(#Fhu4ThWiX_S$4E9 z1DNpqo=l32g)j4s%i}MjT^_%Cy#A9)GP8oeUKY2j3i*6_xxcB>bkYc`)03|*J6ALb ztr}gex_KOY#*h_DieY{!Rm+DHrf2dI+KIQYuRPRdm<}8MQ6+@Q(uyYn#k2;+g3Qln zb zgIibY5fZHr6)MPP%Oq^4pQIOk^zQN2ZBp2HQsihwMFD9UI^1F1NvxlH&*q81dkV2K zWSb5%*<8wh-X3qyzHGOamBvLDy-5drq=iTd^0*R*JFT-y<(V+LB@xV@O51!t*Q~vh z*hZ^-$>{O;SA@O!xN+i9aDj=}JG$2`wr|6P9eom`uoUB}BesG!ZS6{iUg${MI*f^g zI7N=x*eMCw#2k zSMo`YxR9ZM*BbA~-lPsxF17rxAw7ug zM>WL3;p)hQgMxx0k2rF26tR~bCX_k5Ag;X87AP~rjfn8SI|nj&F5*3fRNXpHo&ExD z^BO}g{I%*n0LQZRdLtJPxYK*|8AmqUy8zUcE$^Q+VM0AVV0z8U&4r3TeqLN$e0X@+ zx~S!9Yiv}>bDJlW_G|FJduDz#cjP+!&ENKH}9^DzT9Et zGcz@%wR7RhgRd(kCMISQ!`!K?pauaB)C3gRw=;Kc_*Pdg*S*~wPWJTlyuZJPgoL2m z0m^=hKCeV{Y5^zr2Lr_QK0tKJm{HPn@&e%V%+AcLeZ&!c&Tg&tG^Yd``I_stvePXh zt*E05tBKX@l&n;pKjb~k{~dyH8pdP4{z?k>i!)1nGvl3^k(=;W$S>)&x#K?zr`eBF z8QjUK0)C#yIgu@ZfbXvA;igmNfSE z3NSMpc@g*)qXB{FU~HOXyiKCFs(Wr!qplN|3~_#PP9AsFY#?ls(6lm=qfj=MI+FcB zBB!V*DaCk&-tV_)87&O++u~$nYiqeuy_LKZ0WCK>+fb8L9mdGb4I^dhjoO@YSKVBk z`IZ8JSl$PHEq=INKwF2lFgMpiEZMSTo7*d0d>(6%gUJ_6`kxJ74kR8!4xUhSZvYM3 z9aVA!J_1Tc?rCOlp7teMQj5!ri?P4N3Sn<>YY*7JV`!5+MQizH=UqtX-#cuLIFg(v!jGl*Ht`n>zq zY65%21ZTs{rlC-}jH4lHEEb1nLt|uAdPV3LT7j9!Z2@S`)J!Yy&NA8p&NrQMBzvS` z#7E*gtKb5v1*oNky_gkl>nt$7d>R{_uZ?#5zx;skgq)E!YnW?P%zn)de-DU|&eJOOne0NYvxILAhkd8h zrd2d()(+RZ;h9@~TF~g5aYtsES7C8%|1s<@n#+nlWx~){p71B!*1Rvw9An+XGaw)? zCMMsac-kD6&7;8hbFYkrJck@I#kLgJF1WL-hL|M!yec}L77_G_leoKu+ zW|$XbrRLIlvh5$>N$J3nX? zUNv6_fhu&E>!6~I69FS`JPP05`*EIe<4qgScmZKq+K@vELDLiBYLp2Wn>|?LDS2|b zul@4!Jc-46u;$^WiFdV4p}NreZ%B9|ABckab_KzfKibmEW_r{6z7=i^h+K&tL{y)Of+6{ zOt-Pz>+TT*0+b?d$MFA7PRc^Py<8APfFNk}ES4_L?q41rT6<&%?uLgU_obsK2M*}H z1$kxVktSsKU3Bc(aen% z*Z2X?VLUuMxfxacvZoP;6ga!**cT(=O{2|6*#zPHhM-|ArGNWU}F;Y}8Jt#rVif5h0^_~6eim+u} zlh~B{-)iJAoOxd;4DR%Ja;q20W#wJ+cthJBpysV%z^iNOApE;w`jJeMdv!pEyh;F$`#a|BrO9LSFI1VfP zx+cBTJ{;XpF*m27A9UlDJWnS2)rl{qK&d&0+Wuy9`EUx0&q_rgJ;nnx_cYgPm#}R5 zesS^LVA5z`;lHjMqsK>Ie9fif{=P8xwr6$A;HqaWc`SHIOnw0+6@C5w`nlS*oiY+g z4YzYVwHS$u^0?nS=)d|H5Nx(>v@K++)6D+(&o;D_lt#mfPI?xJ#_7g^l6XU(%HxBs z!^o99A=~4{WRYg6=oQm;aWHcxi|$cVG|V)jd9YQu_Y8TUxOL zfkpoG)RZkfz624Ja=n3mh-eoiM4QngO#;4ca`W+z#FvrT%^r;fGHxy0*(NT4B5SJ) z+zUqX1-*Qe&L53<2FGh_pOclf$;!znSXAlLm<0CAp3=@g`l^hKj8#)EJU=0b=1okd z0*JdEQ-tHJb0#tLJ5G64Ry;I|qPXPD@8L2t5?R2#@-c%aWb;sOYuT$l=pU@itWC^L z*mmY+MM}*DO5kW{OD$qj&g6FH=KIdeE=3gI>>nZHqQbGigZ=4;LX(cCArFCb6%>)W z@r~U|wq7Ub`Xm?BR=K)=$O7N3L;7euW|WE4;HEJBMXXw>7p&z&2+lvdH8myCw`$4C zOTdzVBZo}<(~!3Dw{>R5>Pfa6$IA)1FkqP-by>1SbYG`99(X(}Ba8C{$}X1EqogzL z=Mpn39-~DOlKj`d)pFHOIjhGg_bwC+`d1z?huVyRFs{LVIg{4HmynnEErN6&j6F`6ygYBiKPMR&Sf#v4rs>n30 zR{Mf$)%^jRr~@Mj&JSu&FUcSC_!S%NbP~-$^`lNHnz9Z zOmg$`9PI7&c{DXOR{~A_x&i7Cin2m?cQ=I6MT$zI8t2xzH9 zSbHLKYAC{Y&08e!HHDJ2%d!>l*M_(E6bm79gmle^Ff;qeBV(rD?FscMBg9HUe;~_T z9NsCN&@Ig989J1u&`I}UVoIru^9a-SM;T3bM=xD1%zn22SPA$N2}Ks1$AB3HMd%t0J6i?b=P~Z4&+9#4}{fcpLrI& zx;D=!v9Z}Q!|5q41qkCBl(0jQZ3ZE}IYA-D;4uG3^2GJ?n;R!kgQLCq0ZP;f^S`|y z*^_Ii=cOY$>AG)wKVJF+I*@L-GFW$R%D<@-@&srfz+P!|-^(W;Z}PBm$r=z4$BY8- z8Hdg#Dm0dCDCh3H2_C&%V;)9<0(p$cFu{Yn!0sq)aF@*j66+#F2rMo`q6p;42lUY> z&tfeSUt2lZS0K(GEn>)$jmP1t-Jc$_Y1Q^pO?{!+yeUGze$2g#Kt^6HjoP*d1QQ~n zU-t(9^c`0$S+|#NUyi!wFLIF;+WWe3;XhfmXu~>KEf;bo#Dl%29aj9+4!+df-O7t)1N3{BI?}$we z|J?>l5V0p1B&3?77_yjzlL$VszC3>TNJQ|-*Oz>!a3o4x&`%`Xm?MGm4*fW6C44UL z=m8SRcB$fh-FkqHt?e8A)n&}L;a3uT4u)9e{(cPv7OvhA z#X8VQ{FMHe_&vN=+ZP3GZE0$z5YiJS z>oCj40iv;Vc*uhtaO64BGP=E|O%nwl0HJ|dzy10HXqdiUcER7vuLHp%+v0d7sJD0n z&zp2Em64D@awP4(xw+yLFm&#>_=g#8dnRc#7Fz`l@>lz(hkp;;$El8Wbxdc?en*d= z>#F`E5y=c<$&)-5K~e1OD6;lgFno}9>$mdIx%!DPi$PQ5JD{<^%ntw059RT`VLWa- zJob41H{|94~&nJ^a*finITfXaX)IaLLR57BJqDwFeK~nOv z4HTwlq45h?auj@A<$KKqSqMAlj=j$`_Kc!;8UWy602=rH@=vx?q~#O5;UwBYAS?+P z>CD$Q`>=Mxx@-Ao`8^dG@I1NvI?Hv&bw>v87W` zZ&}3%Lqt2cGVOhe+zCJ2ufHj1m`?|Wjf|x^uC}=m%_hZmB>y= z8+a5Mw&Y!Uqi!Lbt*G4u4dESu+MK{ucQRbuF(YF#$j{FYh%#|eGnW^vn!JgzH&x#P zj|1lPqEm(nEvGU>!QB>gnl0vMfREu&0Y6dyVJ1HS%~I(hz3dl$%vBLFKo_CJcK+l2 zrNg!)dQhvi_I6&Yz;?J*b3<&v=l*zy0_`%4ab#$ySbay5*nklN*~GpD=hv%ewR9x~ zj;praxM(vnN`{-7uvKgj64A@=i~02Y&m7yj+R97nUp6!b)_Oi~42wjxLokq6qWzGG3=I4PI2FZ)OIc`KylE#KGrW-5 zEC+?qW+hsh(y00l1QNv%IK*;5XWgQahIt6P1YIKQ8KIp{pA0|yS>n0)1P<8+PU7^A zar*W7s9NMXBsxMl1g>eA5EV5ZBkZRXDKeGa+zJ(H(B8(H!9t=YTih^oMyKAK=z-M@ zerhnEu+t{ai5JMsUS<-iNhW)2b?lqoOjbbtl*r2a$D;pLb=BqXjLGGdycVC|m-004 z8}&Y~_jQ}?H~*@l2Hw5HkYk_M5snSEpbGO!6-Btw$h2wBk%J;+Z)=)ovUr^-d=(E> z!CmN^Zva!*PC>}|Rx6@v^q-|ajRER1SlS#%`oEk5`uE=MW@%@^Az{!)|6pG;uiOnx zNyU>OGrn&JqmH4iP+Q*?hz2*TC!w+b_Rxn1J)8 z6F}s=-A)!3?gwi_FvN2aV4eV_w+EngZhD!z1>#Q@xNHw@7TDwLXXrM5_bypkEK?{} zhh8#*g@i>BJV;T?5zC626K4N``*p;8b)*qyda^!8am5>dT~d~wZ)bRikwm59X?q|z z{xO*H4`O-o0oPQ4S5Ept51w0!m^AXa{L6jFf`W4Rc~YbbD79bMHO|Pkjd%)@s|zIb0=;*GGJeh2 zx);p0ZBH3+hkbP)3ke!77?+p-84O`%voRgK$oPu9zYamfpFXRD*|;>BCI5|GCpk*& z?kvt~di}!ZOid#d(k>-TSKQ>9&|X>gAAwcz@jv_8{15xrgXWjtnp&+A9ZjqV?H_Hw zB+M(x2(t=Yf1_wQ-_jx3cLG=-_`o}32Z>4W#URw1<#9tD`1JU~2iMEUfI;EADUPRX zOmXbQUxRYk1(S0%u%y0dtpPrq+oP*h&RWtf=|(^BDJ#w=ytAI7>V>@U6ggNE`TgLi z2fP7TQvH_Oq5}I_XSvk6e(l?$X=z|!&B@bEz&^TKktIFa^#QDwFud^NlNq;ljOmNN9)T?q{8u3WIp(pX_;4Pxstg*X{zrsPVI%A;tSFBMc&|TgNRGn zB1=*sL`CPt>xmN+M z5E4=(iqwWvUwrlq3YV50SUh$ZYWyh`4f}KGQv&@Msb#%~%q5U-jTllbq-}vDO>`ao z*mP2d8a|Yz-$z0X#D9^W%U!R_J*8_pXSPp)S%NhB*J0eh@i07XrE0}DlZ)QArVHAx zz(7Y87Uj@8$8CYo(U-@0Fk-%#{S`$5d#!;+4Kq|(H#`2e5KAo_o=*@*iGa%{rJa&! z{ZDw)Z-k;?RSsL^{FNT#QS(zH)j$BCl=k52WaWijm-tKtA>lD!BzbKi%VlG0Q(!V2 z{@rzJQBlAiuyt(;J~e^*L}@a-8iNOSv~PK>7pU5aHwhp)^z+r}Itu6GmfA#+gZcxE zx2|`FECJ||al48NL$s`Ek<@_L;W+Gskftol#s{ami?RwD%W_nNFgBI0vx}m{kX#&u z67}u8nk3?!`8v)SyOenrK{_QTdipugc`xS5VKrcu9q-VV;i^Ckl%SMwob0PL?0M_? zCnI)C=-8bYJ=Ov_kN3H)n5~W!t|;>E#!`eumM8Axl|mqheQctQrZaH->1>+EYsPo% zy}@H3z>q_Aa4~1{&?^>%F~4r#tP^=l4Ku{^ zN<^VHp3dELS=yJ+n_4ceSZ3^3RPG1DxjoR{50=VC#e1SPR@mgr`RY^8sUGIaR@*j* zx2l6TS0zHOrW$(7i3JH%)m+_4^V(n6Q?&ouVp_8)GL%-D!xP_Y zLAe3FLVZ7;bHRrtH5Gl((sqpuoVE&W74dME?nz#wrlH@%@@~`KNGzoUj0;jvJA$YI z87-bmYhVSK>WtQXR|80lUv>09v>Py79d+lRFMcTw1#nviz4`Ql80h6gIO(Z&SxQMQ zBJCQybX&p73@Nz+9u+56q}=w--w|}fVa-NUN5X34aSLlJnHg9D5nk}u@#*7^*{evx zKq+!jmIj`!gmI0Dqh#6S*lb)njiq&p3jhtSjMdl0@cH`S_Ie0)sJuhGod+#6ywJ#M ze@7+in)5|MTmZqs1J`xbbToER%3QXh{#SwIzXEp|6p4||qP(peQQlk9DWZ&6czyD%XN$7@{%4elKXdGMcX5+l}{ zlLL)_d6dY-F{Ui-T|WX$D_H8RBVk&DhnW#Kmsa4CXlm%Zr(7d!H69z;sR%Iii5DAt zDccXD3c3-mb!VAOsY0W>YzNk{h1nccGz1gEdlIO`_%*udmZ!mDNEa`A*A3)i z^bpEJ+GtEmqDi}WY}t*!kL1ddpp9Y14ilm7&Xg9cieP*fE?3G|q>-D<1;I^NBdxZu zHiJ)0pwCBKY;Eo5x_$o5PBV9mrE&cvqpjr!R6`n?d5Y$` zE(+=_PFrMrtYAl@s}6)dEB7T^+!H*lZDxzlRi{}KQF7lI&xnS@_v^HqpY^|tQNxB5 z`-5tCtXjAq0$hyShNI*$tVk#KI1__jf|L^6YQm_psP?DGl527r)zBO0zJiLX$0@R@`&@+#N<7c4+2%3XZe{+u#fa|ng$ptmHQ2&#=EV)o_U{G}59+)LCksYpB9v06_0(>zIzmf*vBatxCD&O8s zn9xA^hkPBa%o`FtJ3S5@9x8DNp%eUkyUUo?E}E$yk5fJmvASJ7804d8JCT;%LYHl9 zOZXO*v!;zflMc$fgs2VYbDBJyW(^(j+9G|XOo`BV<3t>Wwvqf^Aexf!@^Y!>6qjHt z?|oPUPs6GA$@6mbQY+xev%&gjb18v`Mt-QeW`}3MC1H2r@{gMT#CR~u<;EnlvI@RJ z`|!bR{9QwsSLu%Q^Kphx)Lfxn{kH?OeG!~{iW*iAiN+{9s5fxNJbg7 zn=Gd^3UFj*i+AL{R&kRqI7qmd2MwXWY=Q5NF8w*6k$W%a3gx%8lAFByE{MdHY`^gF zF3)(gy~m6C4rAhJSl(TH9~3HeSFPpd<(0xD7<*|lhGS3=>#=g|u*cSc2l#8v?2&W% zaoCqKBfPn4;WGoS*fnZ}Mz%xcS#UA+@BM4a=P}%wn}eyh!4QQ5H8V7xz0!VRgBDI> z@Cjeph$gi4|*xeE&ZmE!snp?1jxDlc0v9|RA@iKDZJAFNcA5Sk#@5n^`UXt)_20M>B{VakE^Cs z5;K8hRPcIDvNye`{JbR>()~8=E(dZ5U=K#EHmN6u?Zni)Vd6a8T!j(8u$a3j z|CDEN3elYnp0?SkG(V9nkw?HLuP2rKYT2)u&TfL=d(H9uan;xRYWiKLtdh@G0mdO! zE_{U7So-qY&Ix4xKbd3!MxKV4v^j7F`7ugw16yzEsj@t8 zx3;3Hkk@ib&}0~{1|#7FAXg%BK=sLef#NJYI+!ORp@vo}RsxOHo}h}nfvuHtfZD*H zlN%*GDC4*WqWGT2Y4fSrXR_y5x)i9vYSu>rTo-x9euHn*9&OMVjnh zLcu;bNU-?n)4=)Hcd%#mbQgpq$gu4g=t2-bEVZp7+_V`kN`s_(2g8m`sHl|5?zPC% z=YRL-F>OWem<KqKu~+03m99SyT)}3J8~W> z))|CgxZ`l8kHP!Hy{$h@ReV6~h$%AHGOJQVR3mF{$V(!VKCsCK~)9Z>dS9w^T$YmiObunjezC zDoA#GKkA45P8l?3QiR=~&gD=y?1yr}`&KVJV2J$_Ja1U6NTZx>6mbx-7O~g#4;;eW zw)SmK)UuI_{oA)Q1e@4%>@F=@D^7b!TULld)}b&|=@qeNtktTMZaygvae3z6drtny z{xMQFyEtS!q7+&)P<{~Xfe>ta5M@8oaU1flmA&#(a}_z z9E0QP)39j3x^JvQNPWSNbKlrg$V{X?GUtpN$TPMSeKl=OokcrLFUhw)W6JOu*U^ev z28N%fs=H1qJhALhr(r(%9U z*=ckO6R%mvC?5R8skG(XU$mS~OOuI;LMfuXLOyUsO`f0;R#&ga_6K8{h$yIwORPd1 z5qZK!lw7~wKmWXDt-SB?%9cG-EoRz9C%B=bcc;Ai^CBs5Ik2?Vl+f*)TA0X5c|2H_ zNG9j^+uzyT13m@a%KU>nmb+d0`tX^n7N}bzzo|Ykg?7nJLPlamZvi+YE*I7;#823N zBHw!f)Naf_uU%~nFoh)?5(Tz)J+DhTP~deW$hLOn3S;-jLb+TiBzC{#UcYP!mJInH zSBCbMD0wR3z$8YZWBr-ljR8rYoVZ3P#tW>w3C8+;>tFap2(TI+0P@DpS&TDQ35+>R zK6>Jo$OU1R)%Oy}S-0enA6=^}jos711YPrqx#`N*Y$@GKzj@u0Ylx znW1Y%8Xoha`es@_rzi>wGN>vgdBMS$T>VS<^QdGV`nZaYf2u5p$x3y>G9k zP{kyZ2=|e*sr#2?r$`Se0ck3YNvBAF$Qt$xd?b#zIy;;XIYs7|10!6bGkP+uPgXxx z2Q9frg3Kl7h)PWBYLYS!5)#HB?L~cidPW_JJOqO0y`p7etmd9x<~SeNI@PA%K|g*i z_E_K#)fsQ?018(S6}p6Zb;fQMg5xBL!6q3$bg=@Cy4A4&V6YbI=KON`MJHf@63Ln- z$COiR^#p&dDvKA*?6|1;XK{zg++Z~bIyl9(^xLU84C+>gEw15yW>wI9l`J1L1 z{@@-&^qii|e0-)xd}I>j^4Sb>HU9hnBX_d1*2jYZXp)0+9XzH+ub0DYN1B{dN~$4e zSgo9>I~qJ+pbcgR5qD!C+i7N{Thlw>HCA^N;nF$hi@-@$s%qR z9oe209ptCQgArh0o?0v*&6pOIbB0`yiXy3OQgv6!vd`H~TLHijwkoD$1j4`y=HRQlJ$^JpK%bO#zvQJc!-fOWWV zK!rGH)J92-=2=Zf)>u*4Jqt_M6tK2i0bA|R!#UEVxy2d?;2<7ij&a>(WD{fG1__+~N75Y^`o2C2BMAE0pG9Zkf zNgDczd2)rATiV}6YPpkh)b!q?sCJW zEC0KoKwH1pp0xG)H5qsI$P;E_Qd9ah?OWDNQm>_aOptq^_MfGlfx=wmm`x|m{_ffh zsdmadak9Tyk$Lh&5He@-j=aQ= zv!)Ub|k|9NGwt5_)TS!DCsh z0|i|cYebMDDVO;_Ug%R~cv8EtJ7#bGA%#nMPBQ=WoF!?e*%`0p(XNVi`3FG5>912~ zf`iHMNQqhWD+AgXA?8_|aBqdZDR&l{f^k1WnmV*DGrqLf?hG_CfB>JM;avaOE)!$xF znlRq;x3n?wITKR$cK~}g00o^-P^M?5aVE&_a6M8rk}|==ExFivKjdox9{K$LKlVN5 zYK9tHL-;rjw128!RvpSe`+I~1#3uImOVM-99)bLT{E=8f>3C{aL_Z`yR;a9x)E_GH zTDkA!sRIp1=96i%jG3FJL>g?DrF_4DCv{4&VHW6mO>K=%UxUmV)!<;=T$U6~!FXe1 zRSIfT!cvn7;!P3Y1)$2O0_ZIljAt?mgH>CxGb;pvil0W_Bw{T0NdXAIXqH8Hs7eKg zQMtBNzPUYrHA!v8(oLzU`R8R16=M=t`o(~=738vFS*lsvwy;D-NR7;_%z_p_TOwWe z{leFo`S3f5LT7-4_4Rp4%h@Q8V6)Dd$)_Q${}y``ox@^gsaWBy3WHv4AY-nA);Vd$XpYL&65I{`v<&Akuf|8-!i8IMJNa&4Vd$#4`G3yQ4S+SM$OLpc=BIHE$J*9KiC^ z&@X3QXA|0b%85mh?IXU2L)#jlK3P?@SCIWmZAaItdrSII7b%Ti=)>Hk$BriP*}ipB z7IQKc@I+4s69^a)O*?6<2m`UIWdneLuE=nqzhoS+Mq=0=Q1*m#kq4+#xDH48Lu^M9gJ&d^`Pi z=iTFhW0+4Uwf6n!!ozk;sHltA4cSoZuZ9{rA>BN9mJ~ymGV6vWl`e;|`?@uR#hL&d zuc47J3F+lcviA1_KanZW9;eR}?O6YmGr@`NX;r51_$heO)FojTQ76_e-@m25zaCS} zvgvVAL@!O3O!c*e=fB=(V1m~yP)0rzAsvw~J+D;HWW(L+h-&tfm3>i6eQJKU9xG(m z`^wp#>QD8W%~)-@Cc`!Nz1*ZP{SzYh3T_k^)``!)SETz$sohLsu|s zk)Nf^G$m8@BI7L}dKIDDB1fDgG?AP5m3x~ggs{3FX4Bh?hR?#wdGa7++eg1Ab24(R zJpT}LCuAxnP-y8$V36Mj?=b?SCM!X5n2E@p*3IXAf`RfuEXRLzo5Y$E#<+ZTHf%C_ z=h6FzXS3H2@2;%m6iCBF%{GkM={W0dzY&@u!!x~Y?ojWvXLD>_FJq6*pcR!z%~lH! z)vdfLn2K!nz_8w~a0Y%~IPqc|vyp!1f(@tsloBxy3hByld%e)6T9~5;rR#vTzv~a? zsv_Jmf#j*3CC*Be0Wj9Ehv=#ZoQ9sQNBu# z(ie2iOT(?xfC=pj`0Z7@{F#)|g}NUT=NV@b-~?pGBB1QTLfF&x|z)RK;aC z{u%^tn1w&^tc0~@NsIoGfURZTg&N9-d|2*v-IKO)x&vqi#gs(A;rv)AJ?#NHs5eb~r7MD{TUwgVeo?IO}@k$Lb z=i$O#z-0q~isTGATM!-x_Py2YaXV4u%ybh{{P3Lx$FLpobnqO*^J-u_)3+*w<%P2` z_-V?G3r*6>-XjC$HRDFBA?<48pKs8rKSmX#2-jqj=z`MOeX-sh3IEE+s95!a1&g%7 zw>zYMATuotd|SY&-`cGwVeH&;u~D%(V*YOjK8?1cadnm>{>BjBm@QStDEf=5Ra}}e z$U6_ju$ZGDbkg|;JL@!ts7yJNn01I&qbHj}8ekwfRc(*&eTsA+tU2V~lxObI8WoUN z#grX9KW<6)UX&dX5$2Z~b!a4SaR54nhQ<=v;rAJL^Bv>cktXUc9T1G6r@MmL%m48PD*JAJ z5)?5pPY+r~3a`PGdeZ%|SYKUUY<@=Dp6+=+!Y#6OI=n6h=p)h~%<`!+v@O!lJBO&) z#wR(+vqak>P>PSvk8GJfw`7Qh!IEbp&p8L7?^PFDimP_JEOk)-D#w}^WOr-v-G55} zwyE!(TUd4U_>~+C+*)7yiTy1A+SRH*U_8>gc%zb zMsrEbJUV9aaJDVNhhIwk6cRCyX=p>6(-3jJ%|zH?I}Yp7T&gO`Cgwtu50Q9{ZyM~1 z+@3vtbYC3%VB5fgeU@ljkRY$D^r%P8%FSulm5VY+{~WKJ0&KU2vfeyqiKO+-PGEc% z)&mub3`1skIPPAGC;l&?(CDvTtt;oh4S$O>`J}F>z#|vEb!$t@)$hRVKE1G#*0~4G zC8oxv*>EVc`OA<82o4$$V|NFbgOu(LF1jYUX4iGG_2PP2ikZGD#Z#F&INW9IS-JK( zHyhxj1xr&2G09pwzyJMW_;$5i-OS@?f(sD1;z}(|JlE_og6;OGsBpES(f6o+KYw; zUYyF!&38IC$Y$E%Mgi8YS!fSW2ojt^f~@kvg$@nOAmP7t-e7b%&Cs)rfuT~NBSVma z?W`JJcnwSc@n!+gvuy6`C@{dqtV#kv@h7bRe|MeKY}f=TxH~^xY@yk(M+ER4&AH+W ze+T%b{7J+xBnu%RpbK%S%{*wpZ_#i~*#7&Fblm&~MuJLaka{V@5-={Z2N0S7o?j^N z&EJYy;v|rsV^@EsrqV(&d-=!MUR)_8)Zs$FR7(PCWTVjngH))&R1>lVfbE&WnPKzR z3-Pv>(0BwD%AgYs2bM0WhConF{Kfi5T4(wG z|2%qNSk`hM9ph%a{$Xvrh}Ur?Ai*Yq9-3QeLE28@BQ^2hV5T*q^V8A7 z;_L1M$x%5&)AmpOkpG`Mw7}U=lj70}aUqE~ed+e0<9iVRY;#!k{9QGM-tUo=vVRN7 z{O4emRVX(=@Ce7IyIfNiOx>^7+QK4w$L3xrp}Xx`-}YAoC0J-m2z(K>HJ|uKAO`ia zr~&;kTo4nrIHv?gW(oX4pXk(-F!no6mTXm~1o3C)xy?Og5(A<$@$bTm{>0Gp{)Mpe z=8zeCC179j0xLCcX=m|MRZH%7vt|t}k_K33Ts4ZpiA`;9#P+3(_h5YHTCIMpA(<@7 zqQ!4Y7a#hbjcwo9=vHp*R`0B7OI`!ojy-`te!{VA0%mnm*=wfcR0((tPQzNCpS?y8 zpD&|EpaP3Q8sSo)FF>o52Zk4By#DC<{X71@8qMn7tFwwT{__AJZU;O^=0s(ev0+nR z_@id+gD~z@PWAiDz58!=-VYBCfL`A0H5HCZs;H#IQ=FWPxk)C{_?Y#ZUqmDxRmAZ6 z_*iB^p_1Ql|LKVr<+hAiHmWD#E!E)8Q-v}D;<~$wDuN8*1Ju~mfPti?_x(Z#?o?!( zw4^mQ_ZxFskOu2F+F`6LJT^KgiHHc7V+COfJ4{D%@@%4~UK6)4=dJT>=3YORat}kB zzQ35cqI=YKF$EI(^}lzVGIA3zN8oEqF(o^6)r+wupK-NEq2gVd9&eIyA2#!9ZFP;megTR;nYAVxV`14-H)X>w`*02^AZoVDHhb zWu26uK#!IBTwN_&q_0i{Pg9^tW;xrQYmuOWFP@M1GUYjMMKg8eI+M1PXz2>SYr&3> zl_?~c4ge|x2VCW+oac4)xpAU*nl>)drqI~X;1clnsLzRvME(vouf;G@f4%V{%IA(M z(r2uik1Fz_pE2p@H#K3c(4!<3cKH4G-^!)1-*?|^@4GX{UpnF+x?Ij3`rO$Hn~1P3 zBPyLg`r;n)$fwnx7gl@#)zzV;6k| zve~7o1Bm$kEL!rE@VScN`>f6SET(lV%a>BcjT;wUEJa-D{oX);T8W952iKfs-llc# z#uk(ON`M zOBV&J%?KljDV%?de`luXVk&9)=i`3Y^UA-$^N>vy`<0}gzr3s5(zs&?lf)1WT4Fm8 zu06onCu*0V_@8i(!}qLqDw>gDt0K0KayEz03YFsCYNc4=;)0O^!$?C(Gjvh3?{p05 z(G=CJQ%KEof6BLL-(yo}?A$D1eD9ZVd6z2HG|CloGcT{6^Bmt#&)mvLAX;pu|LsXD zIoQ~fs>2c&+6|AWCi|-w)aaN*m^hTc^bxJoO@FpkLO#&<*J7CUq}zS zOrS=2u}6+qi-HK~e?t;Nalzh}Pq8!G_oV6TGUjCb=9J`z=5xJln0N;y^=RK}mIfKC6d)kN4+@%d)06Uqz2y+>%@OJ9 zPn+&0#HUoy9U9rH8a52(G}~N|Y_$|r(pM^|rBIqnbPy6WDSJQXgyX8Ju@2>A-B4h^ zD$RKUU+fBl@UHic<&4#7ngjQS6s3ZInynw|TnxZgDKP@T0dRzWw&X>#f0^qCf7><>e)b~8D1C}w-C3P5|v&{}yk*Doo zU>}7SSHx5_c#+6el9-fpe$ytKlGUX@m&>FuCYE7+c2b^~*5=ilfjbELHlO7S*8;+? zpk+$9-L-Fn(+csr1HzGe^fh=KEgF~h*msMsysdHwyS`PDvp}9$(|yacrn#X9AhyMj z+C(MY=hX6{ZEt3oYa1EGyB3FUsPyXk4LQ{I0Dnl z7ZAHiR3vHVLMZbd%?Q7q|LO89)-E>uFDeYYsj}SyRs*lM3%KJ4K)jMk*i4`n*DEfU z|Eh9fk#h6l1sQ8`wwjKj*oZc;8Y|`SCNijUZbWSZ4AF2-4Mm7@5US_J`Y#>1NP^!% zom1rAlIh3rpBrEo74`=rf~F%e z#;f?8LM;^v_57}1e!SgC8|4X5PwN>=>1!1r)U$hBZpx;&2b+$@Eh`yB{6R-!MMJZ4 z6B&vIrQ(uskrfd2w|(QEkxS%`bdGF{oW`3Z2QWZw3fb8U8sf$c%0dwa?rk<_X@|xS zT-BN%?5-oE(m+1BLri|4-|6l4xhM97kpfyYqz#ZlxC6R8gHF?dR4v2jHOu^g%!(k| zrzJHdY{EPC>vG`U^JUl7f~8eOh+bAH9u|@82BuZpQ$yygv{}o4aW?xKzz%BE;Zho3 zHmW}o&C+QFl&}*x*3Ag=nc9-V9Xk$i1ZneRhn`9N?p4|eq`&mNxrDghs3?Myy|ZfR z(*f>4qPKWGuY`zyz;~K2P5B(9hlTOxR(XcXGbmC{2cKb z)V|~sCjW|V`&`f9JTfq~6}H^|`}{8Zbzna2?BR-XIHI-&E16aar*gf`K0AXg(~Xio z$e>6_@VXx|Ug&YPL^gRTD85Pl5XhU-oXQ(NF~ZZ)5D|MvePfbiaN?J+T`S1AN08bgB<0@rI*~R3yJmpFQ9W(aM&ep>|;C(O1+rz=F>#lsqQ^thEnk zzpK&lQxdCzT7RF%h3-{gnwvuUzC~iUg8P?Ege@fs7*u>Nb1;HhDYU_kM=slyZ%O1~ zFt|uqcN6R?Gs*E`Kj*Nqb~g05IwAjsj*$a%R_CE+Srl1e!m7-x}UAg?}!G&PJRqL{P!St(}c~D zJva{oO?d#$1~||8%279Y;}k&s{o+ts(d;uBIULW!tE&lyUBW-j)?R##omlc4(fO+> z7l(8#^<&BlI`}@$jI{JwJr7gHTkR7zc(t;tFpL$Rq(CRsna(JXSE!dV%+FeF2xn zWUl*)4py)!`S%fL`B%Wu%cA~Z$ z8F3r?Ju9#8W`t0`Nq_K>$16CB>eQuX#KkQjFL+?ybyaZJyBF?zB6t={;0~O7Iii+- zr$Ble!S_Y%d#9r8Qq0Kpv>*HINf|bHdITMSt_2Q3k!F^8^NU5w0(f3TJN>4_dkE|H zoGmZsItPX@@u3GA>norK+Fb|Y)p7eu5ke0NTW)Q04l~i$zMIaY&Tysq>3F9whHpR` zSVcsg;2Ld?lB|G2C6IGn_f?>7sp?;_uitH`4FtpwN21*?j<)vX;Gw?cilvmv?e)J8 zgpE2`j%*%rPYJU1!dJ9#^$DSOro)&UpiTdYFV;lruFLcL4Tt;d{hL0`I$4b4^UyDw z?qFDNWI4UacDAZB`iJ5T6`Nc!&N79%mQ-u_?{&?Z9r-oDjgZ?eK@cgt7idyhOFReg z0MDU6cqMRt#PmJKaLgpQDHunNCU98sgxQ5Q2e1`4*BSO?6%$dYkM;c9Vw{KznOZ9} z+Pwj&T_gHC!PWsJd3xV|0QTEvk4DCA15v$HedM2}T5lTLOc>ij#TNozx(VUnNpgdC zx-4mGWYf1(0hTa7hrk_+VDe7^8*jl0l!|2-@gzbqR&X5-x_XUm$+2x+$Ki2tye18N znaCCpL+JF-=ISMwx2-B>;ZR<+pvt@};dI#KC2{<=wSR2}5nGnw9YGqYxB!>gG@9T) zL0^8oe+M}47KeZ-%DG3q+{bv}8ki@gpcjt+62H74{b&yWheM2=Ie6scpn18`{gH8Z=z zHmP_NiQh(jnlwxkS(5i$qXcEEJ35nXWA+PaZMi-#XJQFD<&G?W39tE_IYNKJHb|L* z7hl>M0Ru@X30G_rPEKJH)t78(a0o0kG{rTA`#}Y)IfuhCu84;I2N1PI zU6m;lTIPK}3@80Tw+F6&d?#?3y(VEznfg? zPYF43p$H2SMdK(#m}Q9A6}iw>p@f^O<5z^&PEk z7S|tX@0o54$x%t0B;FaaTISWwYo}F)@sV#e{ddeVc!R8RI5#-Ey|a-XZ-;9qO@SVCDZVwOnA+9=!ECsKU#L-!#WIyQhEda_{C?%O_zxa zF5aRqb^SMs6&4b1^R8D_Y;*$n|Zm}d7ynMO~Psr##=l;`Z{ z!NOlU)n~Y;EfO)AFiTEWsY&u_ak#A;lnJ)$Ue}R?t^$yhkeYlC=y<@bob3y-{Ijvy zy6E_!24otcVr+BBHv(nfX)dz~vO$jb!Um?9k`7O}Ste6Oui*;`@y%Z1d`<__XIB}( zQakzckB8pVCJG!J9Op~HkbmP%>i{fU{@^Wy4TVYqH3SSqPVj-o8XY~JjBB){rs4+T zEMc?F!{ZeX*Fmz4>E3!4zisiMpMr9kZ=Lh)u*zcDk_89OU+D=fiXkIY@};t|lG+pK z1Z*YYXEUabC*&tTGd2_jBK31iNuw2hf+*4{1ezv$uxWBkuHoc>Pp|#4L{{e8udPZ~ zbZ8fQ31ZNQxuF^d)ltK`t%sA@?8@su!l`9mRH$R4=!Bw?u!RSSb1glATtW;hshePt zz8By$E3Y3@9xJV#qi$GkkAUoDoo`l1H^<}r+oMWQ>%QKBD1SS&x3#%6+~4%U_qM7x zf?ci1*mwpnO}j9xys#HNM_h=<*6lp&O1>)ggubimjr&ehLHpnTYfv$28UgbC0JCj4 z6`MzN+gIg4kF06_k_umSNRN~z&d zQlr=Up(0-PMvg>xNtBD02CsVXjbMZ63^vn&AZTTNq$Y^~nz~R_ahS$MF)9RZrX;AH zyX0rEZUiH)`iK9h->!%9oHJtR&gcz{MbNfVWHh=(C8F~Seau`GSMIR+@XEr}vad78 z=K&+oBDKu);F-ir4h1-LmA6&9KiNy+KCHeF5#O&!mtN}?u@9A4C)^nSAn&XM@YqOj9&I*$KKzYVohPlW4GO2Gv9bQ^^5@qP(&Tyu`wZ4k z`s|Vzg_kBQ-hdWzF(cobU#tcgb5?^dw~Un$c3Dz1!Ay)>qUHAjj8AB2w7G6cX^{H| z7;bM#Us(!^rgV>Mx-V(fq3toCvcz*j#cS>D0~ppluEoF-4KQrN9TN6r+mxIL(+b=Jui0{s@Nq=B|- z5P88AJ0)wBwoWWbaO3tb2^29uSwRqRSLSmFo7{VPv{8)m#(HLy{|f4v42853sJyOp zj)97aD~F|?S1n*HFP>c$b=$8u+zwGY#3(rri#nQZIcUu9635H!xIbc})zbZ?jv^Pzb8YC-~S6g)y5TG8;O9k6nuMSm_Nd{A`5n#$L8Z2p@)GSOiXF@lAkmi#T zmPjxNj8?_2Pf155I2sQOm@7R;lgyV5Vaig#vbP)MRJ1|~%Wd9c2-E(m35ueLfe$rq zgtdN_kHmfY&34ou;B4aL5i@UQa<|&%&d7msu&>f?MeU^%xDgI<{|1yejXQ`;;uDnI zf2h+Lsf85%Rtck})`Nf{A3lbI!)t)!?1VCpMiAav6b93*)Kn;Iq3D7CqXlKu>Fb(& zGFjaaf}Af*ruOA1xzlsLUcfEDka+14byTa!&mY+@!Ajz&#sA^l^J}W)#bEWzKNq`s zLS)F6FtbF2Y7Jb;nPonox793caReVd57Eh{%tuVxCCy^8tg$ThlAxuS9u5iOv!3xN z=Koc7)=^PK?HV6N5tMF55T%js2B|?xKtd78p_=@odkL(qQYp7XQc3 z6dZSfvWyC|4viI;Px6x5X9qY?z4@u9^dj`5$9|{`iv|T=lGwJ5M8DqFQ z4wpM8Q`Iz10#T?LuZA02S7)-8yc_W2JK~qTi6Q?{?a)9DCrm{hj%g4x$Tw)GXL7#G z;|WigxVg*S?`83dB0Sywr6pal%l%g7cVUl=`R6oWt?{hL683I|QDKt!75a?{sSX{Z z!`#Hu_$S)(Sh9KxeV!Lg8|~m~{Ums*Z|T#VT0n+?GbMd$ z1vKWN>WX@(2OnO?T+^kx&00w1?lYr10ogjL4w7*YkOefC(br)AF!1XbipdFpc|rXw z1|&H`R2JnFN`GV`<)tZg1kI1(9A3c z-SAc^qk-O{-lq5xK({#`9Z_{XN#`UY_6V7^mez!@B{3MRdna1CmmqG}YEtj+vZ!ds z>pk^!S7o?It}61}2$%OGGck%^^?UesJGoKIeUpV&9^C=Z%=Khl_3^>!`_TnIiPmcc zQ-rkB@ex~_)1rjJSg>>MudjIW&FEL1x~Ct1-~THnSS zDo|py%&gkn<6G@bJ!2{HQp8M}{xnS51-;%GbyTxi$S^v5i4;BSntzxa)b3) zi&RExw4Ghkt6I+>lDl0TxHJ1ELsFmlQOe9ic19Ex-aiBvNin}L0%l0zGYQ$@EnCY3nCv%+gujl)I}z zT)$YN->VwQuza>DT30EX(*V;A8`#;=R*$fQgyYfOjeqjm$wplc@4d}ej!3G}1L=DF z0V$!#rc|vQ#nT?7%*1-|Qi#;%@?je8n}ufGfZkCT5WPzj_$6-REt8A}>ma&RLR6UA z+x~rM#ECl8*aIYPWS3lDU+qJ(@%wy*WIj3~iI=?ep_voz+Sufe0(-oaTu z{72v@#VbdyWc_x3Pln&={IeH{aji8VhUkii9n9jyk0O#fcec_~vqsH3NQ~Rf$zD>w zh(DjbM))sJ*L|2Q%0ceATuovSpsT>yxz7rDFCO4HMST7^rl*0UZ4%@0-lQpNVN!h$ z76-K(d$6+;s=39{qb@34a%+%ETarzprfx%@Gb`q}Y&e!TDkypMVEl)}72r)7_xKoY zVbQ+yJ~NFGKf>NYYLTNbIc`%Y;+1DK->rDLx%1rwVG4iqP6qr?r{BT|u%7e0x1Oza9X3kQLW%3VENTefc&PbWcE^!ndq zRn$gR51jWi&6qSIMBmjS`OkA|kr5O_8yn4GV_%=&xo)6GtQjG%vs#>&24TiaAidk@e+bZsm_N9fi8_iptE$a%7*F zAo=kIG^*d(=%fwDSDtBo3NH=gj7aMEDL>t;2Z9r-YHK?33V+{*`jB^tf(@G&T+6<= z_?_3T)%+L?c=FdVPnnUK!lnNCXRRKK?F{tNntxTcr%(_sp3vt>l*G{Fr%G9(z`tPw zBHtrfBZ#_>Hnpjh2jrh{#khHU|8%o6y>I7JH|0_;{Q|Rmc!gy*uf$&H>;$6($_d;> z()Y($@SD8b{7966nvwJ`D&>KM&DOo$-O-u8lJ~y95&0^NIsxHi`PCcGB*#` z$8Cx%E+6;@hlD8PkLNrmezf{PZyN8*W;LeEgA6Z)aYksj@Cje^U>HArA|ufM!@^zR zaB#QiGYx$^j(W2%l2=Jjzi@Pfl#Ea~W5RR??l|6*^y=-DL}?jUDxRSntT&6t% zR9CcDA&ZO?dudq^rBQfp2L5Ji=F72%&#m)SL1$BNB(lxH}EV_ftYfyu95RCn}+*au|yM$BIlyz&urJJqW`>gtBO%w zx<*MY@&AV1m%&+C%Tn@;%PKICWJ(X$Ex0wk7Vv4u`nEBG8^WQLNtEIDZ6dExJ9C5! zdrxuwxT|bry(_HcwE&(q)@DGX=D*bKIUJ%%4ZdgN{o-MfAC&k9` zlrqFiz6QRypg1)&06-yVPAY5P>*&BL($_3c1dD=Q3z?^($^kTe8bRHeoBM1yxP#&K zRyZWFEs32Nov@Xtd(HapX{I0A&k|mkWzr-4d8W!>qH21`m0g3CmBHx-o{D;1QJBh( z%+2h8!U!`*Zo79n+rAhU>cD%x;eFwP6`D}pNrZr~r~0H2DW=!8wA0_W3Li=UMb76R z6+NEg5Yut~6@DUdW{NhkOOTmV^D8QM?sq$Xwh>Wh0a><|7Gq19n+V;b&`)6>aj8C@ z1q~DuBD2&YvXWtSY`)J2lZW5dC{iHfM82Tt z)bQdA??`R<%y6Cde8WSp7d{X1s991f%$G*x@0LOyV@Dw!ewrV$?CZ0rC;KwRbf!lr zlDEh$Lz>n3t_kEo5?#Msq5Iiq&%QBfS{)jsAq96$J<{6fyiWx*s)MG!?FX5^l36(u z46^@TEJdPX1v}}D$KkkIx-0$pKLt=7i)F`taMZ^5m5Y3<&YWV0C#0gWe%U$>>Xi72 zL}i+8Ls;JQ*=KyQ7=3tIe{xGWw=HWWD zo1`h*=D{*{rB*IKO&l)x`rdv3qQ?Q9T<%nME*Dq8_pAO~D$%J6!@qb!>aSqSwk5az zftZxn=R1z~vTW#%vHIjF9ad=5MI|oO{6~JfsnrhI*QDw&OO4$fEudSXR@ z*)(&=-+S6m=8?~fs(-RD=4>l7npvVFS5H!is&ZN|+nJ?%U+kUvLRQJ$673`v{KWcE zw=M$iX=Rsusd!uoG}Z~A9<9PZJqGT}!$9src2_owYK=>{k1&PRi-I*i_1t?Whmk(e zkOx|-K?-?aJJ;AwS61*BLZXV@b^f+7!^T)gqlLNy$C%fg*bY6AyRh9=rh8e4Icv(f zI9nTTCX|I}8OX@Idj)fL7_jZX1LA(qQ><~}`?wFPVTkXmRWet3q8`*XxWz_uH&(?ZpQo7k z(XNi7jbyL)qb_1b|C|HFwZnDU0IKP@u>>F_%4K-K6Y3duhz_KqZ|aL8c6pqM9w|a=orX4AURHCtu5}d) z+Sm*wJ381hsXUy8SH6NUDd$|{3DEt|6O2?GJuI|`9F(8JUoSeT z4KlA&aSZCUCt=DTU%C3(tgjy?p+}qRx|#^3`VvcbfoJvZ{_T;!hwDDM6k(UxgT;ZW zV06b~>x`=grR<{O+*{!tgq)SBzKNEGePPVgc_SCcd$3C=vs~q4Y=AQvD>r;hiQGyI ze*)@?0Y`;)N(`|?8IAUNEf~`%LYIzOX;)``bI+uH2i7Pml4-l z%#@qCQ?+ShN-PEVRrK<)lB8c^s!m!^pv;vsmh8(sVK{df5RJpxl*XO-BiX+^OcQ0> zGdnr@J_Xuv6bm;!oR@eeAFMK2a9|HUO5F$+0tEr+io*?BrSkZ`C;CRta>l<64TT+i z@r{e&KA*T$>{D>>1oS%mbn>lQVrKL0@CeTeK#N~@w8eMKU(QA|AXYE6YERpDcZWpY z_ZByePZew0bOo-WN!A6Rst6+SZ#Klr^^d9f0RRhKCtm++CQ)`Jn6^R|k1 zD!VUNDB_BVOE$oHPP2_cp}O)4>o;eDpa(M$f0zjjS@e6C6GVWGxxI}&?`N1qAh%IL zxk1>Ek~F47DiSpWQfU@HZUMp^P4fvDDLE>|DGvhH;QsC(F&jC*rCB-qg4^AXVo^bj zqq^7JkY?{=&Y~?H;JuanxhYD@@wTEwmTV)pJw!nTfn@-XA79IgVF)|t2`26Y^eY&K z_PVUVY-E@rs~a0^>sos^tlPb+?t|Z(mztclqxwzYAoX4_S9Ha<^Bt!}V=LtGMOsci z&duI_9ac@;4nMXIS6>#y)4orn2`%$58!JwycXbV~jnfjC^J*4oi10mb)9$52yq7U^Npyxqn}3%i^EeM3?s-K0SX_15H#KN#>k4nF!A(u zT2|>yK9|VXg?BL#{j|rJ1;M*5i&&1pgX&Z~_nVII6cDTd1ML(n!#A$#XQIsmG_!NZ zs~hi){KDJF669DD0RWZAC!bf?`xwS?w1{l&VMAAD@Yf}ZbYalumN+FmOc$1{lA>_zaaD^y-D5r&I%XH>v~$mw;9x{c_)Zy zz7c*&{Ym{7md^fi~v>&mrr zN9>5m%u88HTs)N%0MHNCywSF&fTW@UU)rE1(@9sh~@>TpTeK``jg>xp)u@ZrDrsqkg=H}1(`U4W#=$sh6C{mOeOFLr0oE5uLb zWAbD4Z{60-bx--b4ISZSSiM1qzwUR#7vWOyg}{Lq-<$vI?CMSc;fcYPFXwmQ-q|T( zt3M!bUSQ0tGw{3XV*dMkOQKNX%KiKMd#_N2k_cT9jG&%2 zKR`_o$*Zq12&e`Sx&WDg0#^k>R>S`PbeXmKy1TVt`p)+W!6E9V+}X##S0n*Yp_z`r z+e<{955;FF&P4tWp4-tM2jbSo;nI$dDL6;Xo+vJQpf#Fy_}^Op1mL%>*axSu!#ihV zn`c}QCDC*i-(h}rF0c9MI(9^Mq_@yDN=LFGr zp&)Wx)|nXrG(0;qFrnD{oJhM&LyXd(XKF0kJ+>m+}9fhp@#59)g2rZB2{v)6UNE*j522&1}7tUwG zp(vOC4`OsaEgyZcG;8DST1CNs5K`V` zV~ADDJ;-u_Ui{v)d7!Ha;U^kWh=g1e+=i6xD$hp~2+mad#UD86s-5H~)=fosjkuG* z$@(sZC;Pn@Xb}LR5sK;oqp-pQ(2CPFas%b#()a;6}fXh$8bCU-XWMXzsEiMTnh$YLJy;Y21dS1 z3W^ZjUEM$!xD5H{0s4U{fEwrKsPf7VH!?6?`S*%VxQ<*VN(y31hWVQME z&~?0T++S`frbW)f%L~NKJr+0U9d7dqg*r{P?3O-Wft~E~{&6!fkV-)CAMj)(m~wFI zv_m73tcENjHlpJMwsy*RWMh>(hNUDjW|ZX=jkwlR)DNUm{TL;plz@UkVEc6pQEnEC z_iKERQ;{~H+`0%5t{l3oUTi3Zcv+$AXOB=5NMI2EAF(PH20=9Z4s{`MT6#O`cYL-~ z!qOnLEMoO)%a9i`O;QN>GSph+&<|3{c2# za@=%hYA`0@LT*P-mY4x^w#7cC25}4zIr(D-t(#}t?DfA=C`v^1;j`GZgfJiRjg(c< z8a{1KC{JkpQ=0jV;bFP|0;QvORukjjQy@Sfjvh3r9CsZ9VX*^l3jX?9w`Hf(1baHJ zHZqhuAF+zsd9tN*10vlIdyVG{@QST^V_gl!0upiqv(ICK-pT!}7R*w{F5V$y|L# zW27y4^T6vqP0~6Ojz|Mr-CEnqy$b9XPVW3j$oM(_Irv#YrJ0mu@P)c^4^6fgSm z2MKQ~(};Auf;|zxar{lhNN@)X+yX2HIL=+s=u_E9Y$R%C*{QUy;F`JU7`t*Meo*U# z#p8E04!4hCPWNm9xYtcd9Kr}+f>)s>V2i>}vZIQqe_0emME)~^jwc^Z(hD9a!I1DD zk$Ee2Y5aUHGZGXEpIN3QAm8i1!S#k*r7p)RtWK=5@Q)bH<7+1YxI&?iBAWWXmkvYc z70~~c)%@4g{ZF6nSPA+k?PFL(jUhm#tk2Eh0`Q!LKI|=Iut45B&6|Y1w__a=(_SvA zRLYAlYe~+@o#8a<6ulT5w8%N5ZHw267L^UhRh`x*ZdO;5xeZ&D5%qaH60Md0HK(im z{c3{4=%%sIG_(cE{Ds$`+;U%W3R_`zt=LZqN(&K|GMay(4?aR_^n=YGsXOv8I-DqF zym@+CiB5RIunB675S+)E5*l3D1Nq^ssF{suWiMMaFi)3{Ij+8OJL+;pW)> zpn}!Z^U9_2v-+sVIs^01*Pc3ZcK&VK)S&keE;nXSv{r)~$asvX`;rFdUGTq3YuS#m z!O!*Ff-y`$Vaoq8;eY1KVwdQ{Lf1;E>gO0PY-{&Fv>lrJza^G`n$?ij0{*Z3azlW4 z;LNSrhq<-LmWjGXxynJLO9n1Z9oRUhgsH@mZaik9u5|Kq6z^4*22rnyA;5u|gx|oP z!vPnKAECv8#ZuI_-VyqLN(8x?XlT8vTkNnYJFNFvQ5ZLTt<8&tuKtjfr*BuSi6dxL zZ>A%`8epQOF#^s?+(g_g{)p-2JWS@zf6$05M@x$Va$w-Hik!82NWgMp2!YG&;uITa zl>w3cr!J#O11paegX(#06aE!t466z1>BACC=o~o1Tai7eF;cn4SFBSM!5CA9*#7ls z(g-hsxSx_lID=P2?fB_3 zVdMi1uIZ+;)y=uyeTl1wyiLN^EQkLTX)(s3CqL-diZ@d4W ze9?Hf9`ui~IxU4U8I4A33~`fl8H0l9?a!-}gkP}!e!{69h@;#;d* z+3-@=zm4R7DE)urN+JN@>+2>T@ZSR@IJJ?%JO6HacBW)tRr44L6)?d#ki6)|GV7>J+|6o1lc13B(4+N!1LW&sX&@vE zNZ!+HerUt^#&!<7`iD4u!w>yV{wCUr3-?GNJNn56A9=IEGuuI!8JQ~Y4+(B$t2??$LY>E2@!x`;6-&N*a=icl|;D#FWfSq$c}rp2p^(>39;{sL6YXfvMz%aK}tGoOhqCbt5pW`?7gaU-CPlSUS zo@vXR$n5Ru7ChtbQB zD5y^`uGe(zSIpcGN#+u2B7#S2!WK*#BsM;HQ-&K@!)#9*m=h(LhV0ix&ayByx5XbT zV5oB^j+=)#*x37E1XKcc+cJwfKg(oiUHBY^%rQ}HsYv!k_9v*&eLl`$#gVjpC-U~fg*l07*ioF(; zdMt(=Z6skM3AlE-oY0U7`HatXDyE4l$3K5zHYltE&1W~n2{Yax0#ul4QCccUS$F6C zHK2G^?cekAwFKTH*u^~hFqY*sJK`rArM`Z@hO8v;&*vd;i61iW70UM!!aM_+qU? zdIPr!*En0?ZH`wlF$%W8O0XQ#V5+vZgZDxfsr^Vi0+f_9D>o92cx0e_lqYHTC1~6b zhd3W%i|-JKDmb-We>q_r0eQl3Z!BI>)3ik~zf9*7BvS(b7#{|dq}!5^jWm{Tv46iH z=eM#_;7cz_&UgyUNPf#XG6cQmR$J>jIjF5SpTQIXTib~g>A>NLSqt<=T#+_U7bRRN zzuTosIx=G9q@$rRjJr;LPzT&Ryzvz(fJ5}o><6{-TM&fKvVq9n*G{ZxLt?PHFcg~# zqQkM0vBO0?^G6uc6|{pzSG~)*U+M}?%GvM^4MV0oBySj{$M}ch&tgV)0FwBd+QJwU zJarV;MM=Yg_y{R4)G*3DUU_j4Yy9eLIy+h#nuZoX?vB}e$^S=N!6H+vN>P*7c%*T}?DUEJwEn@goQ(h#%R)neNs zX0mkp+M*_XB8-01>7P<9ef4mwh48<}1Y-0c7ILlmIxJx}S!}7R*|M@7^i9OA*d4Dc3*YpScAIoof3cCgocx!Wv#N5zj?m6rc0{XD-5*&nk!TGCB1V?k$^65iybUI84F=FQ)3`Yfw**B9l&M&br+w0H4m(&61(!4VZTDpXR{YDtuOAz-nMO6Xr$#;4b)^(X zp%+`4p2n*{#t(>*a(DGSXxWf+>w+h(8_7_CPo%zJ=sbZLWP~qtwXKg{YapE6Jm&6d zduxdVYNZVdbxx(U?J7da^HZ?Qc;K)Uly-aa4&rDnO+a>>K<$y=%#AliCH%&FeO&W1 z;B$HV#?+u(FypGn1l!N-aB+(R4k4UM(x9|4`A(qwryxBLpZ}M(9{LY*?Gr;kP*Zc$ z=Ypz?^UCU&WgNbluw@;5)x;8p*sc-CYkDkDJ6*2BKgjWlg|K8sxe)Y(1FFJ}eZ4LLk-+GDRFQAf)|RHck=Azr0x zWzRU8%{jclVqQqhnO-(&WY@;P%xd*TZ1cA|xgQ-3rRC%@?nX6?e9~TT& zP!%Vu+%nZ*HKWoUcO(O5Oo@}w4SySnme_gy_iLt)X{y-ZM_)S~e%+%{pC(i}x7-HV znG&GLYi8-A+~z#Gz$37uUiE4t)RY54dg@WSVA?VkmXBxPRoYiRGviQ#ycqTb*@ z2JZ`pt`V<%EhHjkOYI)|e;mwGC2-LH)ZZYg4SS2FlMs4ut6y2 zr1*SQ|HgipTazWe!wyjB8O~Kh#0bYIx}r>{ITR~u+*NBwAWaYyy57Od?<^3W&}o(F z{)Rh5f{;XcLQvegb1z7A94|ezOyNwvhTjVoRk6o&DYHYM>e8eexPgiJ?2P$^3jcjL z#=3avf)7=0t5$7(2mosF@X0TQYo`0~j;@-)N2&s*2qo8$5(e!~73%{1`b}GPApc0< znJsWUpuIcCVe_6)%u;Gcq>@JeUM%S-$_FyD^{#+OfUsxX){rJW_aF%CpwLUkRcq^K z<)DbgJ+(Cm$v2Aoqxu}D?Fp&+w-mB34|9nw!Okerd?b%W%8@@O_yq47< z2T8c?h_GjV{lJRb(gZynD*cg8$YIb7G~_Rtk-0lRf0b*+4qtgu+Pw3qiic*o;PG&V z#!NZDzSTyEQx1{>d;fD*L_pzWv!6vuzF{$;x{J^nIqD;P>8MQQ=qiZvEcSb z8CMw&XnTT5naEQd=3rIkG2sZ0mP=GVrx2l$aY)Z-FP`WX;npJR)!)Ug$$$r`2O{+f zo`NC?Yx;Z-F;?6Mbe^qm)H6qGN^kX<3n!do1IveBIk44jP2`l+AlMZ&L;+;o#ThU( z4dHtHsg%h4f?m)&;2SKh~_BeDGf=+NMjxbDZtgeAa>$uSZEV*3}_(XBj+ACV__@S3eW&no^0C86%We(E2dG~AK#}KZL(#O)&DLyN z2J=jv|BZ8;UjOWsKa{%eLfcMBarZ7f=iLmHas(loQ@;k6N28zpVGYQdCOwHJE2R z_)f*`x2<&K8u&u2t+~EtJ2ppER4Y08yJmW~#}nwfx}z`7tu0LB&a1CadZI1;G`SPM zI|<$19oe7y2;IVjInytM1-GmbrIoJl8I{jKL=z#zo0i`xLsD>juzdckv~|FPQt;%S zdDJAQ(^}=Df}};r59}FFpBwSA9!_R^fI)KL4=xx}K5~t2k(3*1Va-xrWJAn(e81j5 zQAo`+i+s@)lPky;ZEUT1ll@eM8I}y94S$Oh@l~KG7i)L{Utvm<_@LZn{}g3LJbGSm z`9im96qOH8Oe4oId4cdcsUL+p3@NpA{#7AFo%1IKyPTh#5U%96oBi4feWexoNGD!v z!pQuLK?Ke+A6&ove&2E=p1#R;^pW@Rp+fbtI;bL6gvb$k9rritEP+r%zQv8_UA~J* z3Q?aI9d>fr^d$B|U2X!zCqIkiPnIQ4m=H~@rGp~Xjqm^hFT%45t8zsIM+ogTj^MoEyG8^rZfdB$V zA&U722p70)8k%|tjf0QjD38c0&V4ZYyY54RL65y6=a-d%jx4WrAza+#xGtz3Zlyj?&2IltgD{jMpv~#KJ~%3(a`dplpAjT4 zRIqU~6ArjB%EPW0aav*3h9nKYSK^~MNWJO}V7qdl!_iYlr7^X7lPsTo=0*yBe(C&~Zrl$<|#1^PNY%&5IrvAY`Pz!|5qg4As8W!1?KBU(Xj5^S#>UvbI z%(}b#sia3{m=~YjCd2f(_=44&3PaFa=WtYBdot#CBEY#;uW@C!UNY*6s$#XKE4139 zHxelp(iJ0H2*7qCywJZP?Y2JmKDK$3rhL0~Orv##o!)i|u2=d?exnZ8PfAu+jGeBj zAMQ0=s&!!tbM6caXL5}Xz5zc;R0VCld^|-T8zcJdWt_MNiLKl2{jgL7V*G%-=eInw zco;y>J3ziVvTfISmVbPv#X<4-x&wTd{&dT(hUjEBDiN=R+fVRaH-Z95%=8AfQG#R zz6L_?*uw`j7LZ&w)A-rsHNVg)yqK#P`nKdSZ5U}7JcP51t(DK$6RT~|(0o1LCflfc zgLf)CRV~%DS+h!V3N1&tm)T`>zSJ#ckby>?o=F;%8)r681smyR>b_&f&N@W8AIfWc zI0o=tRlqz0%;iKkX_2}Y)-v2pS_;7-Pc0rfuS1u;chcn^SOlxs;q~{VfqQc^R*q(| zMm1k!7kOqAiXa(y0r37h7~9sae~ze?U$i;YvwO3p6y4~DmQA$bwcm8*Vg{|-(w!5t z8Q@~E1rkND+oxg&y#P)MLIiEk=u(XoQggp{ z*@PMMTuM!>))Wa(H6D3~1)=Ncy(;2scs{{;Fn$Y@#~_AqC%XIBia2w65ccWGa6`xJ|UonV2BWR|C~`4aD;C^W~x_| zQ?Yg=bSZU%;k@c)k6F8mX?=gMg8)~hywJL*h8UG35*$qTtc489*2)K$2k(t8-(YIZ zfGT>(o=gjzV&qx17_oNBcAdru9NXtjR*-txyICpx$wSg5#{aaqF@-5Fr@l5Rx%-ACV`rEn zL|+^#EQW_s>9^?5FR~wewAkj2%jfvMyN_p?@E7DoWpa~sd*p6ok+seEaPkt1C10pv zqqOmD`FH5bpYK(@PVANvxk+m|*+V)t@I-J53ni8ZQm{gjHu#M{Z4l;Hjda(+(~1(3 zVqr!-8E$#TbW=x`TeeklA>Ce4xar+Kj9UX%k6xipFL}0O3OD3Nm+t!!t%A;OqFU77 z&NF(XJ>OK{EP!aIlG;nO=~@KnW@}_L*?KZ}lW1Wj3l(wsg(TrH%ess8FkmO`u@9JV zw)_JApn=XGL}6#)RuF{T&4T=W8?>x9vb~qb*nuVtK+pL7lC4YD1fzZWi^CU(Hg4R0 zFtE3z)F#8G-r}@HR3b7l~F?W_l>z<#&&3@m_8w%FPlx&Kt)oC9k#vE zuru$Y6`)EOV)PJQ7rXl%E`_^}NX=V;y}bSz?|f?pi?&PQ{x_KOx4KA-=h=8XCaA&& zY0jO9=p?Lc{MA94g@18RR4~nhp*TJMTEMqUfwS+cKZxANgo|b2yR!fG)Cv~K?JW`f0w zM=8PI)gCLL?!+ok7(mXm4Ria^ePcj57qa3xYIKQ5&d)_YHbN{djPP{}Vm zB1CV0h!0(MWfsVh@;lr2(py*_d%b&{7hppPV*UliF{)21+;I71I5_Xi2QPE&8@lSW z!3j64U*5Q~;&s6ZkH4OC?R?|7a5)qliYy=3Y$_@8qcTGpPncnFVe4omP7BBqw@ULHw|Z@&m;E|05nO)HGJ6V>&K`m zY-_=}N;Laco@@K+RjhJ{vv7nA`mjxyZj4$mzCpo`t%ke>2QkR5P%lWm5nS}&>g zr1FUeA59nCz}lE@(__Wkq9H#53rDlgzd;kisgN*BkAZa>k%-143NPS_G1`;2&gzIb zqb{_KKt|&9cQHMuaC_{7pT}>`BYbWV`O8*~sC+=*;qvXEK%Scp&h7B<2U?a2$C{D7 zb8Gz6U}p$2)XSV=wI0Z8c0~ZbVP z3v%uAq|?nD0D}>gTnwo(*V!*#3SV`6vwsX`l_oY~QhD%5qQLP9R3VCzSF%9C;5D0h ziyz_c9TJd1l}ihXIcZHdU~McKStR~mJ9D-olE%K?jFq)QSmycHYjCG}5zn)FUDuqw zh$H`s(BA*wvH@o--h|F6cj{*$HwXE3vJz z8S|J4uI`^-_)l?1C$HTH!@&vf_3NmCT@(y+7NNU?%z zm~obp^b3dZITiy?l>Zwh~xm2Id)@Mzh>Po)c{46%EM zRB!+eJ01R7GnjSN3tAH~kj+49d+>nVFvQ>## zl@81v#1Qrk(9?RPcI9AE$pa@tQ=F)iei2&H(J2(PD87oEl;{MIg6K? zLfI0urVr_Nh4rwXOqVacM2hxI#VaCQ0Lx}e!6NkeC#?Xp02lTAIaiBsYzvN4nT49- zU%|J0BJ|3|5M zNjOn@AW9D7;J$Wx#vf6OM~fHF&ZOz;B{oO5eq8-P6jVQls{ymbFHYg4{p_iu@Mc;w z+-GXqH(^o-v&a}?tPgr{TJ~#|Bw-b*FAbA#FESO-w3L?vvF(BkU%RJMhI9=3_}MZ_ z)bIwnQsSvC=z0;E0nRUW^!To~vk5Yt7wR9AQjvAG3PYh@S4W}{%FBHd&x#!=89EGE zz-GU}!;XqD&S%$)V_rNP-q_8Krr4vYu9TkXEB*V2gx-B6AhWRzcbEn%x2>q~>+s=r z)q{v(Im>PkLzm(8;OY;tkkFrw;Of5x&D-6Z%k<@~h25IEdgc#J-CW z_z(PStjy8~>xNe{j+x4YLyblAXZ-l__u!ihR%QO$Kq6X>HkazZ zl7ql-eL(e{`ra#-SG2Yqmspo09+$C-y@!C?Ag*R_-@hIOXq-cNtSBqq4270rYiSwT0Kh ze=gUaCJOjINjvYPW*s#gqtgfsM+in5igIAS*ZhdF>8;k7iY&f%EQzv(bR|D-Yp9Rg z#q;GoFR0%d^3d}oEKR8T6ifG2%NkN}K{R>8M=L}#iM|i~=?amXr3hRjxq}olszf7r zPO};i4Jf&&pqs6~_U5VZh2FQ|>spa|C%UWdi^S^}zg?00(`ye&_B9nAwK0Cv*1QWs zJuFP#&`8{d*{>;tX8#5aWt84e?Lac@9(pPGP2AvT5kL(MVQ4J$$Dtx`K7TxvZ5Iv? zeOA3S;qj2wv+AZtke?o1sf@j1D#t9f>C#SvY;*|;K)(si)2wJl6;s?W&nTB)9*-m$ z!u%osz#HFpmws+j4g(jo75T*vr42S+E;_5?kf=$yS%c0%i5rjT{%ZA#QG)yc zcI~vJjX3k0y)&^jPB=>tQL355jXgcUS8u7S@xx)S!IYJ*(tWtzm(d}Z5$)IU?{?Py zr8xK;7%zVsM=Wu0mcUv|ZuviS5M>xJ< zMFHjLX=9w>x2Ekku;96{-Z>i1S`B|h_P;#nqi#O4hhMZ(5w$(S!Yce3Ip^5N`8^+@ zHgVR3>I`&#X?8nx@0s^MjtKWmb{6*6nMi}s@SSE0098EyxAhDasRqtp$A?(uoi9bB z_ddm1){03;iAnl|3s+_dU|`rq;k&3F`p=QhzhPo5tp5NHbV$DW6!?`XxU~Dp6#CN6 zWq2BT%QcgVC=e9Emt*}qFD1NNdPs{M9AZkd!1p*&?cBqj+OvQ=2{K6CgKm=`qB|KC zq8(Frn!dPD&fvK0S14dVPfnVg2 zN4V$umkIc}{n29%Xh7caRI8(c+}#i&%GikC{qul7y#0=S$-qYX{s=)pRRvbSA%%J? z{?p6VP{q|Q(J*D+Nq#fvv|skkKu&dN8UYG9$de3Xp2)neHBxUwM7B??8;(~tQ(Q$9 zIb|4NEIilkdB?lxY1B1Gjr1@-NuFtl5Hmyn$b+qXw#O&%Q+@Z&n{SzQ|M}Gv?JZP<=xqs3I$OW2}j2<2x%C&kY*8 z=_{4dAr7zKakqxev1A~NIR~xJ8kJ+#IQ}RR{+Q0Mx`N;^Z#N*VkhNK3fS%qqSC|jB z*e=bBFDz;ZXer0kusG{hoB@9iH#LnRJv?Wn!lK$&HGrI!PRxEvw1Uq3`~e(+Tyfbs zEE}k(8@Ka6TeSb*J^>h4i0chzUa?ojQ2#90fQu7Si*wyOFUV&K-0)D3-p!=nZ~a`{ zpJ7)Oa?muxQWtwaO732i?WO6o<5tKkozkW|#Z^Rewr+5OTsw1dV3@5Lcig{U1wx_b zaDOQPGh>jLk0UvYHh1yS;@!JBR>!!^^9g`~KFTXcM;tS^J8!4u6ZO-f0$HA9m@vD% zA?{v%nm5M0>ao;k-Z)GFpi)n2*kpN8H$~t?5;^zCxV;I#iCFv~^hc7~YQ`uiJHigm zAnVjremhI}t~QD#iiCFJLoU?e3S7G#qB>52-EVY_diF(()RYTc`R}!;oZ-s5MqH`Q3!R1hCxwK<_%Rlq;XWl_jme20T*%3|r zuoLO1=3X}0mP@mgeTXs&=v(Ed@?&8iI&RPJ*MfRCJBrgBtT%PfvF;@6yug0X3fI9T zhG*HtB71JLr)WyBwL@~fL?pI(PBzkP5cuM*q2-ogq`%LSqZ;$;y>s+XdRoX)Ky454 zLv(04vEA{olyXS-vIt5jm%p_3U!+8xhj`nVzk*>*Bf%2EPzcm6cyxnv9wy{adfDo~K%wM|) zW%%EJ&1_`h@FGGJbyZihvfF z9H9-K`tMG)3_5|mF`=kj5SjF@7iBQ7%HutyLbhwisCG+*+Q+(~Yi-P+rNV`d0T-Cr zuRMkNsZhVO6V!j=V(cJILf%!X>AiZ_@m#sZ5C^B&v9QA-QHy2ESRDt}YlU(o6t@FeUQyt^%}D9mKp9fhC6#8heNJ;`4=ja)!NfF9eS zOzB~0Jn*LUF3 zQ$xiKLI!r~WHh`{)#r`oKQ4DJ83J%V0H(-EWDtzY^Z|DHH>sudH218lbM?d7s6TUX zz5SF0ZIZ_6L0Z=?A0YRi^$c~LOLmnj7{iRW#wD(EJ6zJZmZv*%r;YU}@QTq9WItg~ zZRpg?YiiG{bo{kjlT0h3+*}v0DuGs`RF(KfzY>>~Jq0nzE3vT5r_Py3WmTwA0ssKu SOCGDvEIsL6_ Date: Tue, 17 Jun 2025 23:19:46 +0700 Subject: [PATCH 05/10] new lines in cards + trunk fixes --- agents/model-selection.mdx | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/agents/model-selection.mdx b/agents/model-selection.mdx index d9251851..13d6db49 100644 --- a/agents/model-selection.mdx +++ b/agents/model-selection.mdx @@ -90,6 +90,7 @@ needs: Consider how often your agent is used: + - **High volume** (1000+ interactions/day): choose efficient models like `GPT-4o-mini` - **Medium volume** (100-1000/day): balanced models like `GPT-4o` work well - **Low volume** (less than 100/day): any model based on complexity needs @@ -98,26 +99,32 @@ needs: - - Match your complexity needs to model capabilities: - **Simple, routine - tasks**: mini/Flash variants for cost efficiency - **Moderate complexity**: - standard models like `GPT-4o`, `Claude-3-5-sonnet-latest` - **Complex - reasoning**: advanced models like `o3`, `Claude-opus-4-20250514` - + + Match your complexity needs to model capabilities: + + - **Simple, routine tasks**: mini/Flash variants for cost efficiency + - **Moderate complexity**: standard models like `GPT-4o`, `Claude-3-5-sonnet-latest` + - **Complex reasoning**: advanced models like `o3`, `Claude-opus-4-20250514` + + + + + Determine what matters most for your use case: - - Determine what matters most for your use case: - **Speed critical**: fast - models like `GPT-4o-mini`, `Gemini-1.5-flash-latest` - **Accuracy critical**: - premium models like `o3`, `Claude-opus-4-20250514` - **Balanced needs**: - mid-tier models like `GPT-4o`, `Claude-3-5-sonnet-latest` - + - **Speed critical**: fast models like `GPT-4o-mini`, `Gemini-1.5-flash-latest` + - **Accuracy critical**: premium models like `o3`, `Claude-opus-4-20250514` + - **Balanced needs**: mid-tier models like `GPT-4o`, `Claude-3-5-sonnet-latest` + + Start with the recommended model, then optimize: + - Test with real examples from your use case - Monitor cost and performance metrics - Adjust based on actual usage patterns - Consider dynamic routing for optimal cost-performance balance + From 8800748f4d8e9fda0cc21a5d7658524ef484e5eb Mon Sep 17 00:00:00 2001 From: Daniel Starns Date: Thu, 26 Jun 2025 14:22:51 -0700 Subject: [PATCH 06/10] Update agents/model-selection.mdx Co-authored-by: Ryan Fox-Tyler <60440289+ryanfoxtyler@users.noreply.github.com> --- agents/model-selection.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agents/model-selection.mdx b/agents/model-selection.mdx index 13d6db49..6488030e 100644 --- a/agents/model-selection.mdx +++ b/agents/model-selection.mdx @@ -6,7 +6,7 @@ description: requirements, and cost considerations." --- -When building agents in Hypermode Threads, choosing the right model is crucial +When building agents in Hypermode Agents, choosing the right model is crucial for optimal performance, cost efficiency, and user experience. This guide helps you select the best model based on your agent's specific role and requirements. From 47f2fc7c6357dea0c2abe2369dbe57e9810abba5 Mon Sep 17 00:00:00 2001 From: Daniel Starns Date: Thu, 26 Jun 2025 14:25:46 -0700 Subject: [PATCH 07/10] Update agents/model-selection.mdx Co-authored-by: Ryan Fox-Tyler <60440289+ryanfoxtyler@users.noreply.github.com> --- agents/model-selection.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agents/model-selection.mdx b/agents/model-selection.mdx index 6488030e..d8a4944d 100644 --- a/agents/model-selection.mdx +++ b/agents/model-selection.mdx @@ -37,7 +37,7 @@ started immediately:
**Recommended:** `GPT-4o` or `Claude-3-5-sonnet-latest`
- **Why:** excellent structured data extraction, business context understanding + **Why:** Excellent structured data extraction, business context understanding
From ae1c1627eef2aaeefd9b5cc22abc9993210b410c Mon Sep 17 00:00:00 2001 From: danstarns Date: Thu, 26 Jun 2025 15:04:35 -0700 Subject: [PATCH 08/10] updates, less long winded, default to GPT-4.1 --- agents/model-selection.mdx | 471 ++++++++++--------------------------- 1 file changed, 125 insertions(+), 346 deletions(-) diff --git a/agents/model-selection.mdx b/agents/model-selection.mdx index d8a4944d..6a360996 100644 --- a/agents/model-selection.mdx +++ b/agents/model-selection.mdx @@ -2,13 +2,14 @@ title: "Model Selection Guide" sidebarTitle: "Choose the Right Model" description: - "Select the optimal model for your agent based on task complexity, performance - requirements, and cost considerations." + "Select the optimal model for your agent based on your goals and use case." --- -When building agents in Hypermode Agents, choosing the right model is crucial -for optimal performance, cost efficiency, and user experience. This guide helps -you select the best model based on your agent's specific role and requirements. +Most agents work great with **GPT-4.1**, our default model. Generally it's +powerful, reliable, and handles the majority of business use cases effectively. + +As you scale your agent and understand its value, you can always optimize for +cost or explore specialized capabilities. ![Select your model](/images/agents/model-selection.png) @@ -20,30 +21,22 @@ you select the best model based on your agent's specific role and requirements. ## Quick start: find your agent type -Most business use cases fall into these common patterns. Find your match and get -started immediately: +Start with **GPT-4.1** for most use cases, then consider these alternatives for +specific needs: - - **Best for:** GitHub bots, code reviews, API development -
- **Recommended:** `GPT-4.1` or `Claude-sonnet-4-20250514` -
- **Why:** Strong code comprehension, security focus, fewer hallucinations + + **Best for:** Lead qualification, call analysis, CRM updates +
+ **Recommended:** `GPT-4.1` (our default) +
+ **Why:** Excellent structured data extraction, business context understanding
- - **Best for:** Lead qualification, call analysis, CRM updates -
- **Recommended:** `GPT-4o` or `Claude-3-5-sonnet-latest` -
- **Why:** Excellent structured data extraction, business context understanding -
- **Best for:** Market research, competitor analysis, strategic insights
- **Recommended:** `o3` or `Claude-opus-4-20250514` + **Recommended:** `O3` for complex reasoning, `GPT-4.1` for most research
**Why:** Advanced reasoning, multi-source synthesis, deep analysis
@@ -51,7 +44,7 @@ started immediately: **Best for:** Social media, blogs, marketing campaigns
- **Recommended:** `GPT-4o` or `Claude-3-5-sonnet-latest` + **Recommended:** `Claude 4 Opus` for creative work, `GPT-4.1` for analysis
**Why:** Creative writing, brand voice consistency, platform optimization
@@ -59,74 +52,59 @@ started immediately: **Best for:** Inventory tracking, spreadsheet analysis, reporting
- **Recommended:** `GPT-4o-mini` or `Gemini-1.5-flash-latest` + **Recommended:** `GPT-4o Mini` for high volume, `GPT-4.1` for complexity
- **Why:** fast processing, cost-effective, reliable for routine tasks + **Why:** Fast processing, cost-effective, reliable for routine tasks
- - **Best for:** scheduling, support tickets, real-time chat -
- **Recommended:** `GPT-4o-mini` or `Gemini-1.5-flash-latest` -
- **Why:** low latency, consistent performance, natural conversation + + **Best for:** Scheduling, support tickets, real-time chat +
+ **Recommended:** `GPT-4o Mini` for real-time interactions +
+ **Why:** Low latency, consistent performance, natural conversation +
+ + + **Best for:** GitHub bots, code reviews, API development +
+ **Recommended:** `GPT-4.1` or `Claude 4 Sonnet` +
+ **Why:** Strong code comprehension, security focus, fewer hallucinations
-## Model selection process +## When to consider alternatives -Follow this step-by-step process to choose the right model for your specific +After you've proven value with GPT-4.1, consider these alternatives for specific needs: - - - Start by clearly defining what your agent does most often: - - **Analyze and reason** (research, complex decisions) - - **Create content** (writing, marketing, creative work) - - **Process data** (spreadsheets, databases, routine operations) - - **Interact with users** (support, scheduling, real-time chat) - - **Work with code** (development, reviews, technical tasks) - - - - Consider how often your agent is used: - - - **High volume** (1000+ interactions/day): choose efficient models like `GPT-4o-mini` - - **Medium volume** (100-1000/day): balanced models like `GPT-4o` work well - - **Low volume** (less than 100/day): any model based on complexity needs - - **Budget considerations:** premium models cost more but deliver better results for complex tasks +### For creative and editorial work - +**Claude 4 Opus** - Superior for content creation, writing, and editorial tasks - - Match your complexity needs to model capabilities: +- Marketing copy and campaigns +- Long-form content and storytelling +- Brand voice consistency +- Creative problem solving - - **Simple, routine tasks**: mini/Flash variants for cost efficiency - - **Moderate complexity**: standard models like `GPT-4o`, `Claude-3-5-sonnet-latest` - - **Complex reasoning**: advanced models like `o3`, `Claude-opus-4-20250514` +### For high-volume, cost-sensitive operations - +**GPT-4o Mini** - Fast and economical for routine tasks - - Determine what matters most for your use case: - - - **Speed critical**: fast models like `GPT-4o-mini`, `Gemini-1.5-flash-latest` - - **Accuracy critical**: premium models like `o3`, `Claude-opus-4-20250514` - - **Balanced needs**: mid-tier models like `GPT-4o`, `Claude-3-5-sonnet-latest` - - +- Customer support and scheduling +- Data processing and reporting +- High-frequency operations (1000+ interactions/day) +- Simple automation workflows - - Start with the recommended model, then optimize: +### For complex reasoning and analysis - - Test with real examples from your use case - - Monitor cost and performance metrics - - Adjust based on actual usage patterns - - Consider dynamic routing for optimal cost-performance balance +**O3** - Advanced reasoning for sophisticated business challenges - - +- Strategic planning and analysis +- Complex research and insights +- Multi-step problem solving +- High-stakes decision support ## Business-focused model recommendations @@ -135,11 +113,10 @@ needs: **Use Case:** Analyze sales calls, update CRM, qualify leads -**Primary Choice:** `GPT-4o` - Excellent at structured data extraction from call -transcripts +**Primary Choice:** `GPT-4.1` - Our default model with excellent structured data +extraction -**Alternative:** `Claude-3-5-sonnet-latest` - Superior business context -understanding +**Alternative:** `Claude 4 Sonnet` - Superior business context understanding **Why These Work:** @@ -152,24 +129,23 @@ updating Attio CRM from call transcripts -### For development and technical teams - - -**Use Case:** Automated PR reviews, security analysis, code quality +### For marketing and content teams -**Primary Choice:** `GPT-4.1` - Latest optimizations for development workflows + +**Use Case:** Social media posts, blog content, marketing campaigns -**Alternative:** `Claude-sonnet-4-20250514` - Superior security focus and -detailed feedback +**Primary Choice:** `Claude 4 Opus` - Superior creative capabilities and nuanced +writing **Alternative:** `GPT-4.1` - Reliable for analysis and structured +content **Why These Work:** -- Low hallucination rates critical for code accuracy -- Excellent adherence to coding standards -- Strong security vulnerability detection +- High-quality, engaging content generation +- Brand voice consistency across platforms +- Platform-specific content optimization -**Example:** [GitHub Review Bot](/agents/agent-gallery/github-review-bot) -providing automated code analysis +**Example:** [Social Media Expert](/agents/agent-gallery/social-media) creating +targeted content campaigns @@ -178,37 +154,18 @@ providing automated code analysis **Use Case:** Competitive analysis, industry trends, strategic insights -**Primary Choice:** `o3` - Advanced reasoning with chain-of-thought processing - -**Alternative:** `Claude-opus-4-20250514` - Excellent synthesis of multiple -sources +**Primary Choice:** `O3` - Advanced reasoning with chain-of-thought processing -**Why These Work:** - Superior multi-step reasoning for complex analysis - Large -context windows for extensive document processing - Strong capability for -strategic insights - -**Example:** [Market Research Expert](/agents/agent-gallery/market-researcher) -analyzing company intelligence - - - -### For marketing and content teams - - -**Use Case:** Social media posts, blog content, marketing campaigns - -**Primary Choice:** `GPT-4o` - Strong creative capabilities with broad knowledge -**Alternative:** `Claude-3-5-sonnet-latest` - Nuanced tone and style -understanding +**Alternative:** `Claude 4 Opus` - Excellent synthesis of multiple sources **Why These Work:** -- High-quality, engaging content generation -- Brand voice consistency across platforms -- Platform-specific content optimization +- Superior multi-step reasoning for complex analysis +- Large context windows for extensive document processing +- Strong capability for strategic insights -**Example:** [Social Media Expert](/agents/agent-gallery/social-media) creating -targeted content campaigns +**Example:** [Market Research Expert](/agents/agent-gallery/market-researcher) +analyzing company intelligence @@ -217,9 +174,9 @@ targeted content campaigns **Use Case:** Inventory management, spreadsheet analysis, operational reporting -**Primary Choice:** `GPT-4o-mini` - Cost-effective with reliable data handling +**Primary Choice:** `GPT-4o Mini` - Cost-effective with reliable data handling -**Alternative:** `Gemini-1.5-flash-latest` - Excellent speed-to-cost ratio +**Alternative:** `GPT-4.1` - Better for complex data analysis **Why These Work:** @@ -237,11 +194,10 @@ monitoring stock levels and sales patterns **Use Case:** Customer support, appointment scheduling, real-time assistance -**Primary Choice:** `GPT-4o-mini` - Fast response times with natural language +**Primary Choice:** `GPT-4o Mini` - Fast response times with natural language understanding -**Alternative:** `Gemini-1.5-flash-latest` - Excellent for real-time -interactions +**Alternative:** `GPT-4.1` - Better for complex customer issues **Why These Work:** @@ -255,256 +211,79 @@ calendar integration -## Cost and performance tiers - -Understanding the three main performance tiers helps you balance capability with -budget: - -### Premium tier - complex reasoning - -**Models:** `o3`, `Claude-opus-4-20250514`, `o1`, `Gemini-2.5-pro-exp-03-25` +## Model capabilities at a glance -**Best for:** +| Model | Best For | When to Choose | +| ----------------- | ------------------------- | ----------------------------------------- | +| **GPT-4.1** | General business use | Start here for any use case (our default) | +| **Claude 4 Opus** | Creative & editorial work | Writing, content, brand voice | +| **O3** | Complex reasoning | Strategic decisions, deep analysis | +| **GPT-4o Mini** | High-volume operations | Cost optimization, simple tasks | -- Strategic planning and complex analysis -- Multi-step reasoning workflows -- High-stakes decision support -- Advanced research and insights +## Optimization strategy -**Cost:** higher per interaction, justified for critical business decisions +### 1. Start with capability -**When to choose:** complex reasoning required, accuracy is paramount, -low-to-medium volume +Begin with **GPT-4.1** to understand what's possible. Focus on proving value and +refining your agent's role before worrying about cost optimization. ---- +### 2. Measure and learn -### Balanced tier - general purpose +Track these key metrics as you use your agent: -**Models:** `GPT-4.1`, `GPT-4o`, `Claude-sonnet-4-20250514`, -`Claude-3-5-sonnet-latest`, `Gemini-2.0-flash` +- Task completion quality +- User satisfaction +- Frequency of use +- Business impact -**Best for:** +### 3. Optimize when ready -- Most business applications -- Code development and reviews -- Content creation and marketing -- Moderate complexity analysis +Once you understand your agent's value and usage patterns: -**Cost:** moderate pricing with excellent capability-to-cost ratio +- **High volume + simple tasks** → Try GPT-4o Mini +- **Creative work focus** → Test Claude 4 Opus +- **Complex analysis needs** → Explore O3 -**When to choose:** most use cases, balanced needs, regular daily usage +### 4. Mix and match ---- +Advanced users can route different types of requests to different models: -### Efficient tier - high volume operations +- Routine tasks → GPT-4o Mini +- Creative work → Claude 4 Opus +- Analysis → GPT-4.1 or O3 -**Models:** `GPT-4o-mini`, `Gemini-1.5-flash-latest`, `Claude-3-5-haiku-latest`, -`o4-mini` +## Getting started -**Best for:** +1. **Create your agent** with GPT-4.1 (the default) +2. **Focus on instructions and connections** to define your agent's role +3. **Test with real examples** from your workflow +4. **Refine and iterate** based on results +5. **Consider alternatives** once you understand value and patterns -- High-volume operations -- Customer support and scheduling -- Data processing and routine tasks -- Real-time applications requiring speed - -**Cost:** low per interaction, ideal for frequent use - -**When to choose:** high volume (1000+ daily), cost optimization critical, -simple-to-moderate tasks - -## Advanced strategies for business users - -### Dynamic model routing - -Optimize both cost and performance by automatically selecting models based on -query complexity: - -**Example Strategy:** - -- Simple queries (data searches, basic scheduling) → `GPT-4o-mini` -- Moderate complexity (analysis, content creation) → `GPT-4o` -- Complex reasoning (strategic planning, research) → `o3` - -**Benefits:** - -- 27-55% cost savings in multi-agent workflows -- Maintained quality while reducing expenses -- Automatic scaling based on business needs - -### Multi-model architecture - -Design agent systems that leverage different models strategically: - -**Preprocessing Layer:** use efficient models for initial query classification - -**Specialist Models:** Deploy domain-specific models for specialized business -tasks - -**Quality Review:** Implement checking with different models for critical -outputs - -**Fallback Options:** maintain backup models for high-availability requirements - -## Decision framework - -Use this business-focused decision tree: - -1. **What's your primary business function?** - - - Revenue operations (sales, CRM) → GPT-4o or Claude-3-5-sonnet-latest - - Product development (code, APIs) → GPT-4.1 or Claude-sonnet-4-20250514 - - Strategic planning (research, analysis) → o3 or Claude-opus-4-20250514 - - Marketing operations (content, campaigns) → GPT-4o or - Claude-3-5-sonnet-latest - - Customer operations (support, scheduling) → GPT-4o-mini or - Gemini-1.5-flash-latest - - Data operations (reporting, analysis) → GPT-4o-mini or - Gemini-1.5-flash-latest - -2. **What's your expected usage volume?** - - - High volume (> 1000/day) → Consider mini/flash variants for cost control - - Medium volume (100-1000/day) → Balanced tier models - - Low volume (< 100/day) → Any model based on complexity - -3. **What's your complexity requirement?** - - - Simple, routine business tasks → Efficient tier models - - Moderate complexity workflows → Balanced tier models - - Complex strategic work → Premium tier models - -4. **What are your performance priorities?** - - Speed critical (real-time customer facing) → GPT-4o-mini, - Gemini-1.5-flash-latest - - Balanced performance (most business apps) → GPT-4o, - Claude-3-5-sonnet-latest - - Maximum capability (strategic decisions) → o3, Claude-opus-4-20250514 - - Cost optimization → Dynamic routing between tiers - -## Getting started and best practices - -### Start high, optimize down - -Begin with a premium model to establish your accuracy baseline, then -systematically optimize for cost while maintaining performance standards. - -**Recommended Approach:** - -1. Start with `GPT-4o` or `Claude-3-5-sonnet-latest` for most business use cases -2. Test with real examples from your workflow -3. Monitor both quality metrics and costs -4. Optimize to more efficient models if performance remains acceptable - -### Set clear success metrics - -Define specific, measurable goals for your agent: - -**Quality Metrics:** - -- Accuracy rates for your specific tasks -- User satisfaction scores -- Task completion rates - -**Operational Metrics:** - -- Response time requirements -- Cost per interaction targets -- Uptime and reliability standards - -### Test with real business data - -Create comprehensive test datasets that represent actual usage: - -- Diverse examples covering your full range of business scenarios -- Edge cases and challenging situations -- Domain-specific tests for your industry -- Both successful and failure case examples - -## Model provider strengths - -Understanding each provider's strengths helps inform your choice: - -### Anthropic Claude models - -**Strengths:** Safety, nuanced reasoning, detailed analysis, professional -communication - -**Best for:** Business-critical applications, complex analysis, content -requiring safety considerations - -### OpenAI GPT models - -**Strengths:** Broad knowledge, fast inference, established ecosystem, reliable -performance - -**Best for:** General-purpose business applications, rapid prototyping, -widespread compatibility - -### Google Gemini models - -**Strengths:** Multi-modal capabilities, long context, competitive pricing, -logical reasoning - -**Best for:** Data-heavy applications, cost-sensitive deployments, multi-modal -business needs - -### Meta Llama models - -**Strengths:** open source flexibility, customization potential, cost control - -**Best for:** Organizations requiring model customization, specific compliance -needs - -## Monitoring and optimization - -### Key performance indicators - -Track these metrics to optimize your model selection over time: - -**Response Quality:** - -- Accuracy rates for your specific business tasks -- Consistency in output format and style -- User satisfaction and feedback scores - -**Operational Efficiency:** - -- Average response time and latency patterns -- Cost per interaction and total monthly spend -- System reliability and uptime metrics - -**Business Impact:** - -- Task completion rates and automation success -- Time saved compared to manual processes -- Business outcomes achieved through agent deployment - -### Continuous improvement process - -**Monthly Reviews:** - -- Analyze usage patterns and cost trends -- Review quality metrics and user feedback -- Assess new model releases and capabilities + + **Value first, optimization second.** GPT-4.1 handles 90% of business use + cases effectively. Prove your agent's value before optimizing for cost or + specialized capabilities. + -**Quarterly Optimization:** +## Need help choosing? -- Compare performance across different models -- Implement cost optimization strategies -- Plan for scaling and new use cases +**Most users:** Start with GPT-4.1 and focus on your agent's instructions and +connections. -**Annual Strategic Planning:** +- **Creative teams:** Consider Claude 4 Opus for writing and content creation. +- **High-volume operations:** Try GPT-4o Mini for cost-effective automation. +- **Strategic work:** Explore O3 for complex analysis and reasoning. -- Evaluate provider relationships and contracts -- Plan for emerging model capabilities -- Assess competitive landscape and alternatives +Remember: you can always change your model choice as your needs evolve. The most +important factors are clear instructions and the right connections for your +agent's role. Use the [Model Router](/model-router) to easily experiment with models from different providers without changing your integration code. The unified API makes it simple to switch between OpenAI, Anthropic, Google, and Meta models - for systematic comparison and implement dynamic routing strategies. + for systematic comparison. --- From 7f272ba8215715d95268998215f3ee015ff38b16 Mon Sep 17 00:00:00 2001 From: danstarns Date: Thu, 26 Jun 2025 15:05:01 -0700 Subject: [PATCH 09/10] remove repomix --- agents/repomix-output.xml | 1509 ------------------------------------- 1 file changed, 1509 deletions(-) delete mode 100644 agents/repomix-output.xml diff --git a/agents/repomix-output.xml b/agents/repomix-output.xml deleted file mode 100644 index 462e4128..00000000 --- a/agents/repomix-output.xml +++ /dev/null @@ -1,1509 +0,0 @@ -This file is a merged representation of the entire codebase, combined into a single document by Repomix. - - -This section contains a summary of this file. - - -This file contains a packed representation of the entire repository's contents. -It is designed to be easily consumable by AI systems for analysis, code review, -or other automated processes. - - - -The content is organized as follows: -1. This summary section -2. Repository information -3. Directory structure -4. Repository files (if enabled) -5. Multiple file entries, each consisting of: - - File path as an attribute - - Full contents of the file - - - -- This file should be treated as read-only. Any changes should be made to the - original repository files, not this packed version. -- When processing this file, use the file path to distinguish - between different files in the repository. -- Be aware that this file may contain sensitive information. Handle it with - the same level of security as you would the original repository. - - - -- Some files may have been excluded based on .gitignore rules and Repomix's configuration -- Binary files are not included in this packed representation. Please refer to the Repository Structure section for a complete list of file paths, including binary files -- Files matching patterns in .gitignore are excluded -- Files matching default ignore patterns are excluded -- Files are sorted by Git change count (files with more changes are at the bottom) - - - - - -agent-gallery/ - github-review-bot.mdx - gtm-engineer.mdx - inventory-tracker.mdx - linkedin-intelligence.mdx - market-researcher.mdx - music-recommendation.mdx - social-media.mdx - workout-scheduling.mdx -connections.mdx -create-agent.mdx -example-agents.mdx -faq.mdx -introduction.mdx -tasks.mdx -work.mdx - - - -This section contains the contents of the repository's files. - - ---- -title: "GitHub Review Bot" -sidebarTitle: "Automated code reviews and PR analysis" -description: - "Create an intelligent code review agent that analyzes pull requests, provides - feedback on code quality, and ensures adherence to best practices." ---- - -![GitHub Review Bot](/images/agents/agent-gallery/github-review-bot.png) - -## Instructions - -```text -Identity: -You are CodeCritic, an expert software engineer and code review specialist. Your job is to analyze -pull requests, provide constructive feedback, and ensure code quality standards are maintained -across the development team. - -You'll review GitHub pull requests and provide detailed analysis covering code quality, security, -performance, maintainability, and adherence to coding standards. - -Context: -CodeCritic integrates with GitHub to automatically review pull requests when they are opened or updated. - -For every pull request you review, analyze and provide feedback on these areas: -- Code Quality: Clean code principles, readability, and maintainability -- Security: Potential vulnerabilities and security best practices -- Performance: Efficiency concerns and optimization opportunities -- Testing: Test coverage and quality of test cases -- Documentation: Code comments and documentation completeness -- Standards: Adherence to team coding standards and conventions - -The review schema includes: - -Overall Score (1-10) -A numerical rating of the overall code quality. - -Critical Issues (List) -Security vulnerabilities, breaking changes, or major bugs that must be addressed. - -Suggestions (List) -Recommendations for improvements in code quality, performance, or maintainability. - -Positive Highlights (List) -Well-written code sections, good practices, or clever solutions to acknowledge. - -Test Coverage Assessment (Text) -Analysis of test completeness and quality. - -Documentation Score (1-5) -Rating of code documentation and comments. - -Use these severity levels for issues: -- Critical: Security vulnerabilities, breaking changes, major bugs -- High: Performance issues, significant code quality problems -- Medium: Minor bugs, style inconsistencies, missing tests -- Low: Documentation improvements, minor optimizations - -Always provide specific line numbers and code examples when giving feedback. -Be constructive and educational in your comments, helping developers learn and improve. -Focus on actionable feedback that can be implemented immediately. - -If the PR looks good overall, highlight what was done well and provide minor suggestions for improvement. -``` - -## Connections - -- **GitHub** - GitHub is a web-based Git repository hosting service for version - control and collaboration -- **Slack** - Optional integration to send review summaries to team channels - -## Example conversation - -```text -Me: Can you review the latest PR on our main repository? It's PR #142 about the new authentication system. -``` - -```text -Agent: -I've completed the review of PR #142 - "Implement OAuth 2.0 authentication system". Here's my analysis: - -**Overall Score: 8/10** - -**Critical Issues:** -• Line 45 in auth.js: Hardcoded client secret should be moved to environment variables -• Line 128 in middleware.js: Missing input validation for JWT tokens could lead to injection attacks - -**High Priority Suggestions:** -• Add rate limiting to login endpoints (auth.js:67-89) -• Implement proper error handling for OAuth callback failures (oauth-handler.js:34) -• Consider adding refresh token rotation for enhanced security - -**Medium Priority:** -• Extract magic numbers into named constants (auth.js:23, 67, 145) -• Add JSDoc comments for public methods in AuthService class -• Consider splitting the 200-line AuthController into smaller, focused classes - -**Positive Highlights:** -• Excellent test coverage at 94% - great job on comprehensive unit tests! -• Clean separation of concerns between authentication and authorization logic -• Proper use of async/await throughout the codebase -• Well-structured error messages that don't leak sensitive information - -**Test Coverage Assessment:** -Strong test coverage with good edge case handling. The integration tests for OAuth flow are particularly well done. -Consider adding tests for rate limiting scenarios once implemented. - -**Documentation Score: 4/5** -Good inline documentation. README updates clearly explain the new auth flow. Only missing API documentation for the new endpoints. - -**Recommendation:** Approve after addressing the critical security issues. The overall architecture is solid and follows good practices. -``` - - - ---- -title: "GTM Engineer" -sidebarTitle: "Automatically keep your CRM up-to-date" -description: - "Recruit an expert GTM Ops partner to ensure that your sales and marketing - team has the best in data." ---- - -![DealBuddy](/images/agents/agent-gallery/dealbuddy.png) - -## Instructions - -```text -Identity: -You are Highland, an expert GTM Engineer and SalesOps specialist. Your job is to ensure that the sales -and marketing teams have the best and most accurate data. - -You'll analyze call transcripts and keep the CRM up to date with the latest opportunity details. - -Context: -Hypermode uses a Attio as its CRM. - -Hypermode stores its call transcripts in Notion in the sub-page `GTM/sales/call-transcripts/` - -For every call transcript you review, extract and update (or create) opportunities with these fields: -Account, Expected Close Date, Opportunity Stage, Deal Value, and Next Steps. - -The schema in Attio: - -Account: -The name of the account associated with the opportunity. - -Expected Close Date (Date) -The date by which the opportunity is expected to close. - -Next Steps (Rich Text) -Details about the next steps to be taken for the opportunity. - -Deal Value (Number) -The potential value of the deal, formatted as a dollar amount. - -Use the following sales roadmap to determine the correct Opportunity Stage: -- Stage 1: Prospect - Initial qualification, outreach, and discovery scheduling. -- Stage 2: Discovery - Deep technical and business requirements gathering. -- Stage 3: Evaluation - Demos, POCs, technical validation, and ROI analysis. -- Stage 4: Proposal - Proposal delivery, negotiation, and contract review. -- Stage 5: Closed Won - Contract signed, onboarding, and implementation. - -If you cannot determine a close date, default to 90 days from now. -If you cannot determine deal value, default to $36,000. -Always interpret the conversation with a positive, helpful attitude, and ensure all updates are accurate and easy to understand. - -Keep the Next Steps limited to no more than five bullet points with less than 5 words each. - -If there is no opportunity for the "Account" in the CRM, always create a new one. - -``` - -## Connections - -- **Attio** - a highly customizable, modern CRM platform -- **Notion** - all-in-one workspace for notes, docs, and collaboration - -## Example conversation - -```text -Me: I just finshed a call with Acme, can you analyze it for me? It's in Notion /sales/call transcript/acme/ -``` - -```text -Agent: - -Here is the opportunity analysis from the sales call transcript with ESO: - -Account: Acme - -Expected Close Date: 2025-09-11 (90 days from today, as no specific date was mentioned) - -Opportunity Stage: Stage 2 – Discovery - -The conversation focused on understanding Acme's use cases, technical requirements, and concerns -(especially around coyotes and train deployment options). There was no formal evaluation or proposal yet, -but a clear interest in a deeper technical dive and next steps. - -Deal Value: $36,000 (default, as no specific value was mentioned) - -Next Steps: -Schedule deeper technical dive -Share call recording internally -Address PHI data concerns -Discuss local deployment options -Confirm 45-min follow-up - -Would you like me to update or create this opportunity in Attio for you? -``` - - - ---- -title: "Inventory & Sales Tracker" -sidebarTitle: "Smart inventory and sales monitoring" -description: - "Create an inventory management agent that monitors stock levels, tracks sales - patterns, identifies reorder needs, and provides operational insights from - Google Sheets data." ---- - -![Inventory & Sales Tracker](/images/agents/agent-gallery/inventory-tracker.png) - -## Instructions - -```text -Identity: -You are StockSense, an expert inventory management and sales tracking specialist. -Your role is to monitor Google Sheets containing inventory and sales data, identify stock issues, -track sales patterns, and provide operational recommendations to optimize inventory management. - -Context: -StockSense connects to Google Sheets to analyze inventory levels, sales transactions, product performance, and supply chain data. -You focus on practical inventory management insights that help businesses avoid stockouts, reduce excess inventory, and optimize their operations. - -Process: -When analyzing a Google Sheet, follow these steps: -1. First, try to list all worksheets in the spreadsheet to understand the structure -2. If that fails, ask the user which specific worksheet or data range they want analyzed -3. Retrieve the data from the main inventory/sales worksheet -4. If data retrieval fails due to connection issues, ask the user to share key data points or try a specific range -5. Focus analysis on the most critical operational insights - -For every inventory/sales analysis you perform, provide insights on these areas: -- Stock Level Assessment: Identify low stock, overstock, and out-of-stock items (Current_Stock vs Reorder_Point) -- Sales Pattern Recognition: Compare Units_Sold_This_Week vs Units_Sold_Last_Week -- Reorder Recommendations: Flag items where Current_Stock is below Reorder_Point -- Product Performance: Identify highest and lowest selling items -- Category Performance: Compare sales across different product categories -- Supplier Analysis: Note which suppliers have products needing reorders - -Analysis Structure: - -Executive Summary (Text) -Brief overview of inventory status and most urgent actions needed. - -Critical Stock Alerts (List) -Items that are out of stock (Current_Stock = 0) or below reorder point. - -Sales Performance This Week (List) -Top 5 best-selling products and any notable sales changes. - -Immediate Reorder Needs (List) -Products requiring immediate reordering with suggested quantities. - -Category Insights (Text) -Performance comparison across product categories. - -Operational Recommendations (List) -Specific actions to improve inventory management. - -Troubleshooting Instructions: -- If Google Sheets connection fails, ask user to specify worksheet name or copy key data -- If data is incomplete, work with available information and note limitations -- If unable to access spreadsheet, provide guidance on manual analysis steps -- Always attempt to provide value even with partial data access - -Focus on clear, actionable insights that operations teams can immediately act upon. -Use simple comparisons and avoid complex mathematical calculations. -Highlight urgent situations that need immediate attention. -Be resilient when data access is limited - provide what analysis you can with available information. -``` - -## Connections - -- **Google Sheets** - Google's cloud-based spreadsheet app for inventory and - sales data - -## Example conversation - -```text -Me: Can you analyze my inventory tracker spreadsheet and tell me what needs immediate attention? -``` - -```text -Agent: -I've analyzed your inventory tracker and here's what needs immediate attention: - -**Executive Summary:** -Your inventory shows 3 critical stockouts and 8 items below reorder points that need immediate action. -Electronics category is performing exceptionally well, while some seasonal items may be overstocked. -Overall inventory health is good but requires urgent reordering for top sellers. - -**Inventory Status:** -Tracking 45 products across 6 categories with generally healthy stock levels. -Most categories are well-balanced, but electronics and office supplies need immediate attention due to high sales velocity. - -**Critical Actions Needed:** -• URGENT: Reorder iPhone Cases (currently out of stock, high demand) -• URGENT: Restock Bluetooth Speakers (only 2 units left, sells 15/week) -• URGENT: Order more Laptop Stands (5 units remaining, consistent seller) -• Review: Winter Jackets overstocked (85 units, slow sales in spring) - -**Top Performing Products:** -• Wireless Earbuds: Consistent 20+ units sold weekly -• Phone Chargers: High turnover, steady demand -• Desk Lamps: Strong performer, good margins -• Coffee Mugs: Reliable seller across all seasons -• Notebooks: Steady office supply demand - -**Stock Alerts:** -• OUT OF STOCK: iPhone Cases, Tablet Holders -• LOW STOCK (under 10 units): Bluetooth Speakers, Laptop Stands, Wireless Mice -• OVERSTOCK: Winter Jackets (85 units), Holiday Decorations (42 units) -• SLOW MOVING: Premium Headphones (22 units, 2 sold this month) - -**Sales Insights:** -• Electronics category showing strongest sales momentum -• Office supplies have consistent weekly demand patterns -• Seasonal items (winter gear) declining as expected for spring -• Customer preference shifting toward wireless/portable electronics -• Weekday sales significantly higher than weekend sales - -**Reorder Recommendations:** -• iPhone Cases: Order 50 units immediately (popular item) -• Bluetooth Speakers: Order 30 units (weekly demand is 15) -• Laptop Stands: Order 25 units (steady seller) -• Wireless Mice: Order 20 units (approaching minimum threshold) -• Phone Chargers: Order 40 units (high turnover item) - -**Slow Movers:** -• Premium Headphones: Only 2 sold in past month, consider promotion -• Winter Jackets: Expected seasonal decline, plan clearance sale -• Holiday Decorations: Out of season, store until next year -• Specialty Cables: Low demand, reduce future orders - -**Operational Notes:** -Data is well-organized and up-to-date. Sales tracking appears accurate. -Consider adding supplier lead times to optimize reorder timing. -Some product codes are missing but doesn't impact analysis. - -**Next Review Actions:** -• Monitor electronics category daily due to high velocity -• Set up automatic alerts when items hit 10-unit threshold -• Review seasonal item storage and clearance strategy -• Track lead times for top 10 products to improve reorder timing -• Consider bundling slow-moving items with popular products - -Would you like me to focus on any specific category or help create reorder templates for your suppliers? -``` - - - ---- -title: "LinkedIn Intelligence Agent" -sidebarTitle: "Company intelligence from LinkedIn" -description: - "Create an intelligent LinkedIn monitoring agent that analyzes company - updates, tracks industry trends, and provides strategic insights from - professional networks." ---- - -![LinkedIn Intelligence Agent](/images/agents/agent-gallery/linkedin-intelligence.png) - -## Instructions - -```text -Identity: -You are NetworkInsight, a professional LinkedIn intelligence specialist. -Your role is to monitor and analyze LinkedIn company profiles, extract meaningful business intelligence, -and provide strategic insights about companies and their market positioning. - -Context: -NetworkInsight focuses on analyzing LinkedIn company pages to understand business developments, -employee growth patterns, recent announcements, and competitive positioning. -You provide comprehensive intelligence reports that help users stay informed about companies they're tracking. - -For every company analysis you perform, provide insights on these areas: -- Recent Company Updates: Latest posts, announcements, and news shared by the company -- Employee Growth Trends: Hiring patterns, team expansion, and organizational changes -- Content Strategy Analysis: What topics the company focuses on in their content -- Engagement Metrics: How their audience responds to different types of content -- Executive Activity: Leadership posts and thought leadership presence -- Industry Positioning: How they position themselves relative to competitors - -The analysis schema includes: - -Company Overview (Text) -Brief summary of the company's current focus and recent developments based on LinkedIn activity. - -Recent Updates Summary (List) -Key announcements, product launches, partnerships, or significant company news from the last 30-60 days. - -Growth Indicators (Text) -Analysis of hiring trends, new office openings, team expansions, or other growth signals. - -Content Themes (List) -Primary topics and themes the company emphasizes in their LinkedIn content strategy. - -Engagement Analysis (Text) -Assessment of how their audience engages with different types of content and posts. - -Strategic Insights (List) -Key takeaways about the company's direction, priorities, and market positioning. - -Related Companies/Competitors (List) -Similar companies or competitors that appear in their network or content. - -Recommended Actions (List) -Actionable recommendations based on the intelligence gathered. - -Always provide specific examples from their LinkedIn activity when giving insights. -Focus on business intelligence that can inform strategic decisions. -Include timestamps and context for recent developments. -Identify patterns in their communication and positioning strategy. - -If the LinkedIn profile has limited recent activity, note this and focus on available information while suggesting alternative research approaches. -``` - -## Connections - -- **LinkedIn** - Professional networking platform for business intelligence and - company research - -## Example conversation - -```text -Me: Can you analyze Hypermode's LinkedIn presence and give me an intelligent update on the company with related insights? -``` - -```text -Agent: -I've completed an analysis of Hypermode's LinkedIn presence. Here's my intelligence report: - -**Company Overview:** -Hypermode is positioning itself as a leader in AI agent development platforms, -with recent activity focusing on production-ready AI solutions and developer-first tooling. -Their LinkedIn presence shows a company in active growth phase with strong technical thought leadership. - -**Recent Updates Summary:** -• Launched Hypermode Agents platform for building production AI agents (last 30 days) -• Announced partnership integrations with major development tools including GitHub, Vercel -• Published technical content about Model Context Protocol (MCP) implementation -• Shared customer success stories from early adopters in fintech and healthcare sectors -• Hosted developer-focused webinars on AI agent architecture - -**Growth Indicators:** -Strong hiring activity in engineering roles, particularly: -- Senior AI Engineers and ML Platform specialists -- Developer Relations and Community positions -- Sales Engineering roles for enterprise customers -Notable 40% team growth over past quarter based on new employee announcements - -**Content Themes:** -• Technical deep-dives on AI agent frameworks and architecture -• Developer education and best practices for AI implementation -• Open source contributions and community building -• Enterprise AI adoption case studies -• Industry insights on the future of AI agents - -**Engagement Analysis:** -Technical content receives highest engagement (avg. 200+ interactions) -Developer-focused posts generate strong comment discussions -Video content and live demos perform 3x better than text-only posts -C-level executive posts drive significant reach and brand awareness - -**Strategic Insights:** -• Positioning as enterprise-ready alternative to consumer AI tools -• Strong focus on developer experience and technical community -• Building ecosystem through partnerships rather than trying to own entire stack -• Emphasis on production readiness and scalability over experimental features - -**Related Companies/Competitors:** -• LangChain (frequently mentioned in comparison discussions) -• Anthropic (technology partnership references) -• OpenAI (competitive positioning in enterprise space) -• Vercel (integration partnership and similar developer-first approach) - -**Recommended Actions:** -• Monitor their upcoming product announcements - pattern suggests major release planned -• Track their hiring in enterprise sales - indicates serious B2B push -• Watch for conference speaking opportunities - they're building thought leadership presence -• Consider their open source strategy - potential collaboration opportunities -• Follow their technical blog posts - early indicators of platform direction - -Would you like me to set up monitoring for ongoing updates or dive deeper into any specific aspect of their LinkedIn intelligence? -``` - - - ---- -title: "Market and Company Researcher" -sidebarTitle: "Learn about competitors and prospects" -description: - "Create an agent that helps you understand what's important to any company, - whether it's your competitors or your newest partner." ---- - -![Market Researcher](/images/agents/agent-gallery/market-researcher.png) - -## Instructions - -```text -Identity -You are Telescope, a personal research assistant for company diligence. Your role is to help users -systematically research companies by gathering and organizing key information. - -Context -You follow a deterministic workflow for each company, ensuring consistency and reliability. For every -research request, the user will specify the industry of interest. Your process is as follows: - -1. Understand the company's pitch by summarizing its core offering and value proposition. -2. Research the backgrounds of the executive team, highlighting relevant experience and roles. -3. Tally the total capital raised, including funding rounds and notable investors. -4. Research any significant news events in the company's history, including acqusitions, IPOs, executive hires, or lawsuits. - -Present all findings in clearly labeled markdown sections: - **Pitch**, **Team**, **Capital**, **News**. Use concise, factual language. - Ensure the output is easily exportable to Notion or similar tools. - -If information is missing or unclear, note this in the relevant section. Never fabricate details. -Always prioritize accuracy and clarity. - -Output Instructions - -Be very concise in responses. - - Upon completion of any company research: - 1. Format the final report with all four sections (Pitch, Team, Capital, News) - 2. Include research completion timestamp - 3. Add line breaks and paragraphs to make it easily readable on mobile - 4. Ensure markdown formatting is preserved for easy export - -``` - -## Connections - -- **N/A** - -## Example conversation - -```text -Me: I'm about to meet with JP Morgan, what should I know? -``` - -```text -Agent: -**Pitch** -• JPMorgan Chase & Co. (NYSE: JPM) is the largest U.S. bank by assets (~$3.9 T). -• Universal model: retail & consumer banking (Chase), commercial & investment banking, payments, credit cards, asset & wealth management. -• “Fortress balance sheet,” tech spend >$15 B/yr, heavy AI and digital investment; - positioned as safe-haven, scale provider of end-to-end financial services globally (100+ markets). - -**Team** -• Jamie Dimon - Chairman & CEO (since 2005); ex-CEO Bank One, Citi alum. -• Jennifer Piepszak - Co-CEO Consumer & Community Banking (ex-CFO). -• Marianne Lake - Co-CEO Consumer & Community Banking; former CFO. -• Troy Roeder - CEO Commercial & Investment Bank (role created 2024 from CIB + CB). -• Jeremy Barnum - CFO; ex-head of Global Markets. -• Lori Beer - Global CIO; 30 yr tech leader. -(Note: Succession planning widely watched; no public departure dates announced.) - -**Capital** -• Public company; ongoing access to debt & equity markets rather than venture rounds. -• Market cap ~US$520 B (Jun 2025). -• CET1 capital ~$265 B; CET1 ratio 14% (Q1 2025). -• Largest institutional shareholders: Vanguard, BlackRock, State Street. -• 2024 dividend $1.25/shr quarterly; buyback paused pending Basel III endgame clarity. - -**News (last 24 mo.)** -• May 2023 - Acquired most assets/deposits of failed First Republic Bank for $10.6 B; adds ~$150 B loans, $92 B deposits. -• Jan 2024 - Reported record 2023 profit $52.7 B; guidance cautious on economy. -• May 2024 - Investor Day: rolled CIB & Commercial Bank into single segment; AI cited as “transformational.” -• Dec 2024 - Settled Jeffrey Epstein related litigation for $290 M (no admission of wrongdoing). -• Feb 2025 - Announced pilot of JPM Coin for wholesale cross-border payments in EUR. -• Ongoing - Lobbying against proposed higher U.S. capital requirements (“Basel III endgame”). -• Key personnel: Vis Raghavan (global investment banking head) left for Citigroup, Apr 2025. - -Research completed 2025-06-13 09:04 PT -``` - - - ---- -title: "Music Recommendation Agent" -sidebarTitle: "Music Recommendation Agent" -description: - "Create a music recommendation agent that can recommend music based on your - preferences and create new Spotify playlists" ---- - -![Music Recommendation Agent](/images/agents/agent-gallery/music-recommendation.png) - -## Instructions - -```text -Identity: -BeatBuddy is a friendly, knowledgeable music recommendation agent that helps users discover new artists, -create playlists by mood or genre, and suggest songs based on their favorites. - -Context: -BeatBuddy provides general music recommendations, not tied to any specific service or company. -It can suggest new artists, generate curated playlists for different moods or genres, and -recommend songs similar to those the user already likes. BeatBuddy's goal is to make -music discovery fun, personalized, and easy for everyone. -``` - -## Connections - -- **Spotify** - Spotify is a digital music service that gives you access to - millions of songs. - -## Example conversation - -```text -Me: Create a playlist with the same beat as Candyman by Xtina. I want it to determine -the bpm and run a search for similar bpm and then a visual similarity search within that -of candyman for more pop songs before creating, naming, opening, and playing my new playlist. -``` - -```text -Agent: Here's the plan: - -"Candyman" by Christina Aguilera is a pop song with a swing/jazz influence and an energetic, -upbeat tempo. Its BPM (beats per minute) is widely reported as 172. - -I will search for pop songs with a similar BPM (around 170–175) and then filter for those with a similar energetic, retro-pop feel. - -I'll create, name, and open your new playlist, then play it for you. - -Let's get started! -``` - - - ---- -title: "Social Media Expert" -sidebarTitle: "Social Media Expert" -description: - "Create a social media expert agent that can draft social media content and - run campaigns based on your products and brand." ---- - -![Example conversation](/images/agents/agent-gallery/social-media-intern.png) - -## Instructions - -```text -You are a social media expert, skilled at educating developers about deep technical concepts in a format friendly for social media. - -Tools: -- GitHub: Access the user's GitHub repository. -- Notion: Schedule workouts based on the user's availability. -``` - -## Connections - -- **GitHub** - GitHub is a web-based Git repository hosting service. -- **Notion** - Notion is a service for notes, docs, tasks, and databases. -- **Ref** - Ref is a service for finding references. - -## Example conversation - -```text -Analyze my hyper-news GitHub repo and create 10-20 social media posts about concepts from the repo, including Dgraph, Modus, and MCP -``` - - - ---- -title: "Workout Scheduling Agent" -sidebarTitle: "Workout Scheduling Agent" -description: - "Create a workout scheduling agent that can schedule workouts based on your - preferences and Strava data and calendar availability." ---- - -![Workout Scheduling Agent](/images/agents/agent-gallery/workout-scheduling.png) - -## Instructions - -```text -Identity: -You are PulseCoach, a friendly and knowledgeable personal training advisor. - -Context: -You analyze the user's Strava workout data across all activity types. Your goal is to help the user -achieve general fitness improvements by reviewing recent workouts, identifying trends, and -suggesting a balanced, personalized training schedule. Offer clear, actionable advice and -adapt recommendations based on the user's progress and feedback. - -Tools: -- Strava: Access the user's Strava workout data. -- Calendar: Schedule workouts based on the user's availability. -``` - -## Connections - -- **Strava** - Designed by athletes, for athletes, Strava's mobile app and - website connect millions of runners and cyclists through the sports they love. -- **Google Calendar** - Google Calendar is a service for creating, managing, and - organizing schedules and events. - -## Example conversation - -```text -You: "I want to start running again. Can you help me create a workout schedule?" - -Agent: "Based on your recent Strava data, I see you've been consistently running for the past month. I can help you create a personalized workout schedule." - -You: "Sounds good. Can you suggest a schedule for the next week?" - -Agent: "Here's a suggested workout schedule for the next week: - -Monday: Rest day -Tuesday: 30-minute jog -Wednesday: Rest day -Thursday: 45-minute jog -Friday: Rest day -Saturday: 1-hour jog -Sunday: Rest day - -I recommend this schedule because it provides a balanced approach to running, with a mix of rest days and active recovery days." - -You: "That sounds great. Can you also suggest some tips for running?" - -Agent: "Here are some tips for running: - -- Stay hydrated -- Fuel your body with healthy foods -- Get enough sleep -- Listen to your body and rest when you need to - -I also recommend wearing comfortable shoes and using proper form." - -You: "Thanks for the tips. Can you also suggest some tips for running?" - -Agent: "Here are some tips for running: - -- Stay hydrated -- Fuel your body with healthy foods -- Get enough sleep -- Listen to your body and rest when you need to - -I also recommend wearing comfortable shoes and using proper form." -``` - -## Tasks - -- **Automated Workout Scheduling** - - - ---- -title: "Connections" -sidebarTitle: "Connect Your Agent" -description: - "Build AI agents that act, not just chat—from natural conversation to - production-ready code" ---- - -**Connections** enable Hypermode Agents to securely access and interact with -external tools, APIs, and services. With over 2,000+ available integrations, -agents can execute tasks across your entire technology stack. - -- **Built-in integrations** like GitHub, Linear, Slack, Vercel, and Notion -- **Model Context Protocol** support for secure, structured tool integration -- **2,000+ integrations** through our partnership with leading automation - platforms -- **Your custom APIs** with encrypted credentials and scoped access -- **Major large language models** including OpenAI, Anthropic, Google, and open - source models - -## Overview - -Hypermode Agents are built for execution, not just conversation. Connections -provide the bridge between your agents and the tools they need to complete -tasks, from internal APIs to third-party applications and public resources. - -## Key features - - - - Access to popular tools, APIs, and services including GitHub, Stripe, - Snowflake, and custom internal systems. - - - - Agents only access tools relevant to their specific role and responsibilities. - - - - Industry-standard security protocols protect your credentials and data. - - - - Tools are structured, typed, and traceable for sophisticated agent - reasoning. - - - -## How connections work - -### Domain-specific tool assignment - -Rather than providing agents with access to all available tools, Hypermode -Agents uses a curated approach based on the agent's role and domain. Examples of -connections relevant for domain specific agents include: - -#### Frontend development agent - -- GitHub (code repository management) -- Linear (issue tracking) -- Vercel (deployment and hosting) - -#### Revenue operations agent - -- Snowflake (data warehousing) -- Stripe (payment processing) -- Internal ticketing API (customer support) - -#### Marketing agent - -- HubSpot (CRM and automation) -- Google Analytics (website analytics) -- Mailchimp (email marketing) - -### Role-based access control - - - Agents are granted access only to tools that align with their designated role, - improving both security and decision-making clarity. - - -1. **Define agent role** and primary responsibilities -2. **Select relevant tools** from the curated toolkit -3. **Configure permissions** for each integration -4. **Monitor usage** and adjust access as needed - -## MCP - -Connections leverage the Model Context Protocol (MCP) to provide agents with -enhanced tool interaction capabilities: - -### Benefits of MCP Integration - - - - Agents understand tool capabilities and parameters as clearly as they - understand text, enabling better planning and execution. - - - - Multi-step workflows can be planned and executed with tools working together - seamlessly. - - - - Structured tool calls provide clear audit trails and error diagnosis - capabilities. - - - - Consistent tool definitions enable agents to reuse and combine tools - effectively. - - - -## Security and compliance - - - All connections use secure authentication methods including OAuth 2.0, API - keys, and service account credentials. Credentials are encrypted and never - exposed to the agent's reasoning process. - - -### Security features - -- **Encrypted credential storage** with enterprise-grade security -- **Audit logging** for all tool interactions -- **Permission scoping** to limit access to necessary resources only -- **Regular security updates** and compliance monitoring - -## Getting started - -### Add a new connection - -Select a connection from the "add connections"ption from the left navigation bar -or search from more than 2000 connection options. You'll be prompted to complete -the OAuth flow if you haven't enabled the connection yet for your workspace. - -Add a new connection - -### Manage connections - -Existing connections can be viewed and managed from the "Connections" tab in the -Workspace settings page. Connections can also be added to your workspace from -this page. - -![Manage connections](/images/agents/connections-manage.png) - - - Start with a small set of essential tools for your agent's role, then expand - as you identify additional needs through usage patterns. - - -## Available Integrations - -Popular integration categories include: - -- **Development Tools**: GitHub, GitLab, Jira, Linear -- **Data & Analytics**: Snowflake, BigQuery, Tableau, Looker -- **Customer Success**: Salesforce, HubSpot, Zendesk, Intercom -- **Finance**: Stripe, QuickBooks, Xero, PayPal -- **Marketing**: Mailchimp, Constant Contact, Google Ads, Facebook Ads -- **Productivity**: Slack, Microsoft Teams, Google Workspace, Notion - - - Custom integrations can be built for internal APIs and proprietary systems. - Contact us for assistance with custom connection development. - - - - ---- -title: "Create Your Agent" -sidebarTitle: "Create Your Agent" -description: - "Create your Hypermode Agent using natural language descriptions of the - agent's role and objectives." ---- - -Creating an Agent is simple and can be done -[using the built-in Hypermode Concierge agent](/agents/create-agent#build-a-new-agent-with-concierge) -or by -[specifying the agent's role and instructions yourself](/agents/create-agent#create-an-agent-manually). - -## Build a new agent with Concierge - -![Hypermode Concierge agent](/images/agents/concierge.png) - -**Concierge** is Hypermode's AI-powered agent that transforms natural language -descriptions into fully functional agents. No coding experience required. - -### Overview - -Concierge streamlines agent creation by converting your requirements into -structured, working agent scaffolds through a guided process that takes just -minutes to complete. - - - - - -Select the "Start a new thread" option from the left navigation bar under the -Hypermode Concierge agent. - -![Start a new thread with Concierge](/images/agents/concierge-1.png) - - - - - -The Concierge agent asks some basic questions about what kind of agent you'd -like to create and the tasks you'd like the agent to take on your behalf. - -![Describe your agent requirements](/images/agents/concierge-2.png) - - - - - -Follow the Concierge agent's guided steps to fully refine your agents role, -background, and instructions. The Concierge agent uses this information to -construct a name, description, and system prompt for your agent. Once you've -fully specified the details, your new agent is created and added to the left -navigation bar alongside the other agents in your workspace. - -![Refine your agent description](/images/agents/concierge-3.png) - - - Traditional hand-written prompts often suffer from inconsistency, verbosity, - or vagueness. Concierge solves this by using AI to author structured prompts - that follow best practices for models. - - - - - - -To take actions on your behalf, such as updating your calendar or submitting -code updates as pull requests, your agent needs access to connections with -services to act on your behalf. Which connections you enable for your agent -depends on the type and scope of agent to be created. For example, our product -marketing agent might need access to GitHub to be able to submit website changes -as pull requests and access to Notion to read internal messaging and product -documents. - -![Enable connections and start working with your agent](/images/agents/concierge-4.png) - -Once you've added connections, start chatting with your agent by asking what -they can help you with or what connections they have access to. - - - - - -## Create an agent manually - -Agents can also be created manually by following the steps below. - - - - - -Select the "Create new agent" option from the left navigation bar. - -![Create new agent](/images/agents/manual-create-1.png) - - - - - -Choose a name, title, and description for your agent. An agent avatar is -generated randomly but you can also upload your own avatar. - -Describe your agent - - - - - -The agent instructions are the system prompt that's used to guide the agent's -behavior. This is where you define the agent's role and objectives. - -Add your agent instructions - - - - - -Select the model that you want to use for your agent. The model is used to run -the agent's instructions, including choosing how to leverage tools. - -Select your agent's model - - - - - -Enable connections to allow your agent to access tools and data. This is where -you define the tools that your agent has access to. - -![Enable connections and start working with your agent](/images/agents/manual-create-5.png) - - - - - -See the [Agent Gallery](/agents/example-agents) for more examples of agents that -you can create. - - - ---- -title: "Agent Gallery" -sidebarTitle: "Agent Gallery" -description: "Explore example agents built with Hypermode Agents" ---- - -## Agent gallery - -Discover powerful AI agents built to handle specific tasks and workflows. Each -agent is designed with unique capabilities to help you automate processes, -analyze data, and enhance productivity. - - - - Recruit an expert Go-to-Market Engineer to ensure your sales and marketing team have the best in data. - - - - Never go into a meeting unprepared again, understand what's important about - your peers, competitors and prospects. - - - - Recommends music based on your preferences and creates new Spotify playlists. - - - - Create a workout scheduling agent based on your Strava data. - - - - Drafts social media content and campaigns based on your products and brand. - - - - Automated code reviews and PR analysis to ensure code quality and best - practices. - - - - Analyzes company LinkedIn profiles and provides strategic business - intelligence and competitive insights. - - - - Monitors stock levels, tracks sales patterns, and provides operational - insights from Google Sheets data. - - - - -## Getting started - -Each agent comes with: - -- **Pre-built workflows** that you can customize for your needs -- **Integration capabilities** with popular tools and platforms -- **Documentation** with setup guides and best practices - -## Build custom agents - -Don't see what you need? Our platform supports building custom agents tailored -to your specific requirements. - - - Create your own AI agent with the Hypermode Concierge. Define custom - workflows, integrate with your tools, and deploy in minutes. - - - - ---- -title: "Frequently Asked Questions" -sidebarTitle: "FAQs And Tips" -description: "FAQs and tips for getting the most out of Hypermode Agents" ---- - -**What's an AI Agent?** - -An AI agent is a computer program that can understand instructions, answer -questions, and help you complete tasks automatically. - -**What's an MCP server?** - -MCP stands for “Model Context Protocol.” An MCP server is a special part of the -agentic system that helps agents communicate, coordinate, and share information -with each other or with different tools. It acts as a central hub so agents and -tools can work together smoothly. - -**What's a tool (in an agentic system)?** - -A tool is a specific function or service that an agent can use to get things -done. For example, a tool might let an agent send an email, search a database, -or fetch information from the internet. Tools extend what agents can do beyond -just answering questions. Agents discover tools via MCP servers. - -**What does Hypermode Agents do?** - -Hypermode Agents is a tool that lets you create your own AI agents. You can set -up agents to help with things like answering questions, automating tasks, or -providing expert support—no coding required. - -**Is Hypermode Agents just for developers?** - -No. Hypermode Agents is designed for everyone, even if you have no coding -background. - -**What can we use an AI agent for?** - -You can use an AI agent to answer questions, automate repetitive work, reduce -“swivel chair” work, organize information, or assist with daily tasks. - -**What if the agent doesn't work as expected?** - -You can change your instructions and test again. It is normal to adjust and -improve your agent over time. - -**What's a system prompt?** - -A system prompt is a set of written instructions that guides the overall agent's -actions and responses. Think of this as defining your agent's personality and -capabilities. - -**What about information security?** - -Yes. Hypermode takes privacy and security seriously and protects your data. - -## Tips for training your agents - -- **Give explicit instructions** - - Example: "Any time you post a message via the Slack tool on behalf of the - user, prepend your message with: 'Hypermode Agent Mr. Robot:' but only do - that when you post in Slack. Make sure not to do so when just responding to - the user." -- **Set clear boundaries** - - Example: "Only answer questions related to the Hypermode Agents. If asked - about other products, politely decline." -- **Specify output format** - - Example: "Respond using numbered steps for instructions, and use bullet - points for lists." -- **Provide example interactions** - - Example: - - User: "How to reset the password?" - - Agent: "1. Go to the login page. 2. Click 'Forgot Password'. 3. Follow the - instructions sent to your email." -- **Define tone and style** - - Example: "Use a friendly and professional tone. Keep responses under 100 - words unless more detail is requested." -- **Anticipate common questions** - - Example: "If a user asks about pricing, direct them to the pricing page and - offer to connect them with sales." -- **Tell the agent what not to do** - - Example: "Don't provide legal or medical advice. Don't make up information - if you are unsure." -- **Test and revise** - - After writing your prompt, test it with sample requests. If the agent's - responses are off-target, revise your instructions to be even more specific. - - - ---- -title: "Hypermode Agents" -sidebarTitle: "Overview" -description: - "Build AI agents that act, not just chat—from natural conversation to - production-ready code" ---- - -Most AI agents today still feel like prototypes. They can generate content, -answer questions, or summarize a PDF. But when it comes to doing real -work—embedding in live apps, reducing back-office load, or following up with -customers—they fall short. - -They chat. But they don't act. - -**Hypermode Agents are here to change that.** Built on the latest AI advances, -Hypermode Agents are built for work, not just conversation. You'll learn what -agents can do, how they reason, and what their outputs look like, all while -building something useful from day one. - -## The complete AI development platform - -Built on top of the open source Modus AI Agent Framework and the Hypermode -Platform, Hypermode Agents enables you to get started building domain specific -agents from natural language. - -![Hypermode Agents](/images/agents/threads.png) - -- **Concierge** is Hypermode's AI-powered agent that transforms natural language - descriptions into fully functional agents. No coding experience required. -- **Threads** is a conversational interface that lets you build, train, and - refine AI agents through natural language—no coding required. When you're - ready, **eject to code** exports your trained agent as a complete Modus app. -- **Connections** enable Hypermode Agents to understand and interact with their - environment. By leveraging Model Context Protocol (MCP) servers, Hypermode - Agents **Hypermode Agents get access to a vast ecosystem of tools and - integrations by default.** -- **Tasks** are repeatable sets of instructions that you can save and use later - with your agent. Think of a task as a learned skill for your agent. - -### Production-ready from day one - -Unlike other platforms that require you to rebuild for production, Hypermode is -designed for real-world use: - -- **Serverless infrastructure** that scales automatically and costs nothing when - idle -- **Full observability** with inference logging, tracing, and debugging tools -- **Enterprise security** with role-based access and audit trails -- **Branch-based environments** for testing and staging -- **Open source foundation** with no vendor lock-in - -## From conversation to code - -The power of Hypermode is in its flexibility. Domain experts can build -sophisticated agents through conversation, while developers can export those -agents as production-ready code. - -**Domain experts** work directly with agents through Threads, shaping behavior -through natural conversation and training agents with real examples. - -**Platform teams** can export trained agents as complete Modus applications, -audit and version control the logic, and deploy as production microservices with -full observability. - -**No information loss** between business requirements and technical -implementation. **No rebuild required** to go from prototype to production. - -## What can you build? - -**Sales pipeline agent**: analyzes sales data and manages pipeline activities, -integrating Stripe, HubSpot, and Slack. - -**Customer support agent**: analyzes support tickets and provides insights -across email and support platforms. - -**Marketing insights agent**: analyzes marketing performance across channels and -provides optimization recommendations. - ---- - -_Ready to turn your ideas into agents? -[Start building today →](https://hypermode.com/login)_ - - - ---- -title: "Train Your Agent With Tasks" -sidebarTitle: "Train Your Agent" -description: "Train your agent based on learned skills" ---- - -Tasks are a repeatable set of instructions that you can save and use later with -your agent. Think of a task as a learned skill for your agent. - -## Create task - -Once you've interacted with your agent through a thread and your agent has -completed a specific activity - such as creating a recommended playlist, -updating your calendar, or generating a research report - you can save that -activity as a task by selecting the "Create task" button. - -This turns the thread into a repeatable task that you can use later to automate -your agent's workflow. - -![Create task](/images/agents/create-task-1.png) - -## Use tasks - -After saving a task to your agent you'll see the task in your agent's task list. -You can then use the task to automate your agent's workflow. - -![Task list](/images/agents/invoke-task.png) - - - ---- -title: "Work with your agent in threads" -sidebarTitle: "Work With Your Agent" -description: - "Interact with your agent in natural language by giving your agent tasks to - complete on your behalf." ---- - -**Threads is where ideas become agents.** it's a conversational interface that -lets you build, train, and refine AI agents through natural language—no coding -required. - -![Threads](/images/agents/threads.png) - -### General guidance - -- **Start simple:** Begin with a basic use case or workflow. Don't try to build - a complex agent right away—get comfortable with the basics first. - - You're going to need to learn to speak “agent.” You'll find some phrases are - obvious to you but very ambiguous to an agent. The more you use Hypermode, - the more it becomes natural. -- **Define clear goals:** Know what you want your agent to accomplish. Write - down the specific tasks or problems you want the agent to solve. - - For example, "goal: update the hero text on the website" then going into the - rest of your instructions. -- **Understand inputs/outputs:** Learn what information (inputs) your agent - needs and what kind of results (outputs) to produce. - - Click to expand the tool calls you see streaming by as your agent works. - Start to build an intuition around how your agent is executing work. -- **Use step-by-step instructions:** Break down tasks into small, logical steps. - Agents perform best when instructions are clear and sequential. -- **Use check steps:** Frequently request an agent to check its work and verify - that specific steps are completed. Today's AI is very eager to please, - unfortunately that means it lies frequently about tasks being completed. Ask - it to double check that specific actions have been taken. - ---- - -_Ready to turn your ideas into agents? -[Start building Hypermode Agents →](https://hypermode.com/login)_ - - - From 3706034da92d4467c6ad6f0e32c0cd8536a79117 Mon Sep 17 00:00:00 2001 From: danstarns Date: Thu, 26 Jun 2025 15:13:30 -0700 Subject: [PATCH 10/10] remove repeated block --- agents/model-selection.mdx | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/agents/model-selection.mdx b/agents/model-selection.mdx index 6a360996..9464c2dc 100644 --- a/agents/model-selection.mdx +++ b/agents/model-selection.mdx @@ -220,38 +220,6 @@ calendar integration | **O3** | Complex reasoning | Strategic decisions, deep analysis | | **GPT-4o Mini** | High-volume operations | Cost optimization, simple tasks | -## Optimization strategy - -### 1. Start with capability - -Begin with **GPT-4.1** to understand what's possible. Focus on proving value and -refining your agent's role before worrying about cost optimization. - -### 2. Measure and learn - -Track these key metrics as you use your agent: - -- Task completion quality -- User satisfaction -- Frequency of use -- Business impact - -### 3. Optimize when ready - -Once you understand your agent's value and usage patterns: - -- **High volume + simple tasks** → Try GPT-4o Mini -- **Creative work focus** → Test Claude 4 Opus -- **Complex analysis needs** → Explore O3 - -### 4. Mix and match - -Advanced users can route different types of requests to different models: - -- Routine tasks → GPT-4o Mini -- Creative work → Claude 4 Opus -- Analysis → GPT-4.1 or O3 - ## Getting started 1. **Create your agent** with GPT-4.1 (the default)