From 3649ccb8f22e6a129775f9a47b4478a7eb013098 Mon Sep 17 00:00:00 2001 From: Dan Dye Date: Thu, 3 Sep 2026 23:08:03 +0000 Subject: [PATCH 1/3] docs(secops): add Agentic Detection Engineering guide and tool documentation Document Google SecOps Agentic Detection Engineering (ADE) APIs and workflows: - Created `docs/agentic_detection_engineering.md` detailing the 8-stage lifecycle (TDO generation, synthetic telemetry simulation, sandboxed LRO rule coverage evaluation, gap analysis, and candidate YARA-L 2.0 rule synthesis). - Embedded SecOps UI configuration for Synthetic Data Visibility (`docs/img/synthetic_data_visibility.png`). - Updated `docs/servers/secops_mcp.md` with all 5 ADE MCP tools (`generate_threat_detection_opportunity`, `generate_synthetic_events`, `evaluate_rule_coverage_long_running`, `get_operation`, `generate_rules`) and Example 9 walkthrough. - Updated `docs/google_secops_extension.md` to register Skill 6 (`detection-engineering-coverage-evaluation`). - Updated `docs/toc.md` and `docs/index.md` navigation and quick links. TAG=agy CONV=b434fecb-6fd3-4841-b909-49d23ef70fa3 --- docs/agentic_detection_engineering.md | 190 +++++++++++++++++++++++++ docs/google_secops_extension.md | 5 + docs/img/synthetic_data_visibility.png | Bin 0 -> 97050 bytes docs/index.md | 1 + docs/servers/secops_mcp.md | 116 ++++++++++++++- docs/toc.md | 2 + 6 files changed, 313 insertions(+), 1 deletion(-) create mode 100644 docs/agentic_detection_engineering.md create mode 100644 docs/img/synthetic_data_visibility.png diff --git a/docs/agentic_detection_engineering.md b/docs/agentic_detection_engineering.md new file mode 100644 index 00000000..9bcfc884 --- /dev/null +++ b/docs/agentic_detection_engineering.md @@ -0,0 +1,190 @@ +# Agentic Detection Engineering in Google SecOps + +Agentic Detection Engineering (ADE) enables security teams to automate and accelerate the end-to-end detection engineering lifecycle using Google Security Operations (SecOps) APIs and AI assistants. + +By integrating threat intelligence, automated Threat Detection Opportunity (TDO) extraction, synthetic telemetry simulation, and sandbox rule coverage evaluations, ADE transforms unstructured threat descriptions into tested, production-ready YARA-L 2.0 detection rules. + +--- + +## Overview + +Traditional detection engineering requires manual parsing of threat intelligence reports, manual drafting of adversary simulation commands or test logs, tedious cross-referencing against existing rule corpora, and extensive manual tuning to write YARA-L 2.0 detection rules. + +Agentic Detection Engineering in Google SecOps streamlines this into a continuous, automated lifecycle: + +``` ++-----------------------------+ +| Threat Intelligence Ingest | (Blogs, Reports, CVEs, TTPs) ++--------------+--------------+ + | + v ++-----------------------------+ +| TDO Generation | (generate_threat_detection_opportunity) ++--------------+--------------+ + | + v ++-----------------------------+ +| Synthetic Simulation | (generate_synthetic_events) ++--------------+--------------+ + | + v ++-----------------------------+ +| Rule Coverage Evaluation | (evaluate_rule_coverage_long_running) ++--------------+--------------+ + | + v ++-----------------------------+ +| Operation Polling & Results | (get_operation) ++--------------+--------------+ + | + +-----------------------+ + | | + [Coverage Confirmed] [Coverage Gap] + | | + v v + (No action needed) +-----------------------------+ + | Candidate Rule Generation | (generate_rules) + +--------------+--------------+ + | + v + +-----------------------------+ + | Human Review & Deployment | (test_rule, create_rule) + +-----------------------------+ +``` + +--- + +## The Detection Engineering Lifecycle + +### 1. Threat Detection Opportunity (TDO) Extraction +Detection engineers or autonomous agents analyze threat reports, advisories, or post-incident reviews to identify observable adversary behaviors. Using `generate_threat_detection_opportunity`, the input text is transformed into structured TDO objects containing: +- **TDO ID**: Unique identifier (e.g., `t01`, `t02`). +- **Summary**: Concise description of the attacker tactic or procedure. +- **MITRE ATT&CK Mapping**: Specific tactics and techniques (e.g., `T1059.001` PowerShell, `T1071.001` Web Protocols). +- **Log Types**: Relevant Chronicle log ingestion types (e.g., `WINEVTLOG`, `PROCESS_EXECUTION`, `GCP_CLOUDAUDIT`). + +### 2. Synthetic Event Simulation +To evaluate whether existing detection rules would catch the activity, `generate_synthetic_events` generates high-fidelity synthetic telemetry. This produces: +- Raw mock log lines matching the targeted log type formats. +- Structured Unified Data Model (UDM) events with appropriate entity metadata (`principal`, `target`, `network`, `about`). +- JSON-encoded UDM event strings (`udmJson`) formatted for direct consumption by Chronicle evaluation engines. + +### 3. SecOps UI: Synthetic Data Visibility +Synthetic events and the resulting detections can be displayed directly in the Google SecOps Web UI for interactive inspection and validation. + +To view synthetic telemetry in list and detail views: +1. Navigate to **Google SecOps**. +2. Click **Settings** (gear icon) in the navigation bar. +3. Select **User Preferences** > **Synthetic Data Visibility**. +4. Check **Show synthetic test data**. +5. Click **Save**. + +![Synthetic Data Visibility](img/synthetic_data_visibility.png) + +> **Note:** Enabling this setting displays synthetic test data (including events, detections, and alerts) in list and detail views across Chronicle. This does not affect data generated by Security Validation, which remains hidden by default. + +### 4. Rule Coverage Evaluation via Long-Running Operations (LRO) +Evaluating synthetic events against an organization's active ruleset is computationally intensive. The tool `evaluate_rule_coverage_long_running` initiates an asynchronous evaluation job via Chronicle's `:evaluateRuleCoverageLongRunning` API endpoint: +- **Sandboxed Execution:** Synthetic events are evaluated in an ephemeral sandbox without committing test records to permanent customer log storage. +- **Composite Coverage Control:** The `exclude_composite_coverage` parameter allows filtering out multi-event composite rules when testing single atomic behaviors. +- **Asynchronous Operation:** Returns a standard Google Long-Running Operation resource (e.g., `operations/dea-bkFXS0...`). + +### 5. Polling Operation Status +The `get_operation` tool polls the returned operation name until completion: +- **In-Progress:** Returns operation metadata including progress status and percentages. +- **Completed:** Returns the final evaluation result containing covered TDO IDs, uncovered TDO IDs, matching rule identifiers, and matched event counts. + +### 6. Candidate Rule Synthesis +For any TDO identified as having a coverage gap, `generate_rules` synthesizes candidate YARA-L 2.0 detection rules. The generated rules include: +- Informative `meta` section with author, description, severity, and MITRE ATT&CK tags. +- Precise `events` logic referencing UDM fields. +- Deduplication and aggregation logic in `match` and `condition` sections. + +### 7. Human-in-the-Loop Review and Deployment +Generated rules must never be automatically activated in production without human validation. Detection engineers follow these verification steps: +1. **Rule Logic Inspection:** Verify UDM field references and thresholds. +2. **Backtesting (`test_rule`):** Execute historical test queries over real tenant data to assess alert volume and detect potential false positives. +3. **Draft Rule Creation (`create_security_rule`):** Deploy rule in a disabled (`enabled=False`) or alerting-only state for staging observation. +4. **Activation (`enable_rule`):** Enable live evaluation once verified. + +--- + +## Available MCP Tools + +The `secops-mcp` server provides 5 purpose-built tools for Agentic Detection Engineering: + +| Tool | Purpose | Key Parameters | +|------|---------|----------------| +| `generate_threat_detection_opportunity` | Extracts structured TDOs from threat descriptions | `threat_description`, `log_types` | +| `generate_synthetic_events` | Synthesizes realistic raw logs and UDM test events | `threat_detection_opportunities` | +| `evaluate_rule_coverage_long_running` | Starts asynchronous rule coverage evaluation LRO | `threat_detection_opportunity_events`, `exclude_composite_coverage` | +| `get_operation` | Polls status and retrieves LRO evaluation results | `name` | +| `generate_rules` | Generates candidate YARA-L 2.0 rules for coverage gaps | `threat_detection_opportunities`, `background_context` | + +For detailed parameter schemas and API reference, see [SecOps MCP Tools](servers/secops_mcp.md). + +--- + +## Agent Skill: `detection-engineering-coverage-evaluation` + +The **Google SecOps Extension** packages this entire workflow into a turnkey agent skill: + +- **Trigger:** `/security:detect`, `"Evaluate coverage for [URL/Text]"`, `"Develop detections for [Threat]"`. +- **Location:** `extensions/google-secops/skills/detection-coverage/SKILL.md` (exposed via `.agent/skills/detection-coverage/`). +- **Prompt Injection Safeguards:** Threat intelligence articles and external blog URLs are treated as untrusted data. The skill enforces clear demarcation between ingested threat content and agent execution instructions. +- **Human Authorization Gate:** Explicit user confirmation is strictly required prior to saving or enabling any detection rules in production. + +--- + +## Example Workflow + +### Step 1: Ingest Threat Description +```python +tdo_response = generate_threat_detection_opportunity( + threat_description=""" + Adversaries execute encoded PowerShell commands to download secondary stage payloads + from external C2 servers and establish persistent scheduled tasks. + """, + log_types=["WINEVTLOG", "PROCESS_EXECUTION"] +) +``` + +### Step 2: Generate Synthetic UDM Events +```python +events_response = generate_synthetic_events( + threat_detection_opportunities=tdo_response["threat_detection_opportunities"] +) +``` + +### Step 3: Evaluate Coverage Sandbox +```python +lro_response = evaluate_rule_coverage_long_running( + threat_detection_opportunity_events=events_response["threat_detection_opportunity_events"], + exclude_composite_coverage=True +) +operation_name = lro_response["name"] +``` + +### Step 4: Poll LRO Until Done +```python +status = get_operation(name=operation_name) +# Poll until status["done"] is True +# Coverage results indicate uncovered TDOs +``` + +### Step 5: Generate YARA-L 2.0 Rule for Gaps +```python +rules_response = generate_rules( + threat_detection_opportunities=uncovered_tdos, + background_context="Enterprise Windows workstations with Defender and Sysmon telemetry." +) +``` + +--- + +## Related Documentation + +- [SecOps MCP Server Reference](servers/secops_mcp.md) +- [Detection Engineer Persona](personas/detection_engineer.md) +- [Google SecOps Extension Skills](google_secops_extension.md) +- [Official Google SecOps ADE Guide](https://docs.cloud.google.com/chronicle/docs/secops/agentic-detection-engineering) diff --git a/docs/google_secops_extension.md b/docs/google_secops_extension.md index 7b9c6807..d681a101 100644 --- a/docs/google_secops_extension.md +++ b/docs/google_secops_extension.md @@ -81,6 +81,11 @@ You will be prompted for two environment variables for the MCP configuration: * **Trigger**: "Hunt for [Threat]", "Search for TTP [ID]". * **Function**: Assists in proactive threat hunting by generating hypotheses and constructing complex UDM queries for Chronicle. +### 6. Detection Engineering (`detection-engineering-coverage-evaluation`) +* **Trigger**: "Develop detections for [Threat]", "Evaluate coverage for [URL/Text]", `/security:detect`. +* **Function**: Orchestrates the end-to-end Detection Engineering lifecycle: extracts TDOs from threat intelligence, simulates synthetic UDM events, evaluates existing rule coverage with long-running operations, generates draft YARA-L 2.0 rules to close coverage gaps, and deploys approved rules. +* **Guide**: See [Agentic Detection Engineering Guide](agentic_detection_engineering.md). + ## How it Works These skills act as **Driver Agents** that: diff --git a/docs/img/synthetic_data_visibility.png b/docs/img/synthetic_data_visibility.png new file mode 100644 index 0000000000000000000000000000000000000000..bb83a55e7834c37aca0bd97cc185ae7bd8685751 GIT binary patch literal 97050 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¨DnuLS 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ś#hv|y#h3AVpr~04&x3OdImu;1tgv~`#rW!o|)Bba@uq-X9rAYE}M~(Ia3RWNGv5n$9bu!3f*r*vp1Tn(H!y^fPDhDpj*${@zM6ZEkCi zex_Kan@%u1Pq@=!?wuUz%sfg>aqJ<2Ec^ri(Wo7K2cWag+pYDKNnno^x8jWvuzbui z^BJDXJ5;JybgMcO18D=p`*!vX%WUPXJ%Uf@X#zX=2n%@N<;rYnZ^3XCmHT9~ha!nC zle;<--lsCa#_i_2e;6%qgg9uE}WT3_hYm?$e%?;BwMm zPd5O0Kj=v!{f0b1 zD;5El)sM3yy3%!`e5LcXR?%rap(7qfqJ^fLq_3Y^zL1cOFtI;b_o_n;$J2CWmWr{} zXzGAn(3G|J-(Q7<1R+m3Y61$bp*JWTB zNi~G|5SUZGZB8#1!IA3In3o^3hZ9Axuz1GscnZpVx_QF443n;6D};>dW!#ek-uFfm z@L|u}N$Y$QjL}!tW?Ow}6#ZnL@J8FHW+LqP&1Set|3v^otf1%3iiqpgf>1Nn$BZ|@ zjz$0vLvrH73<#HzB0rbXnaMb5P`WB)0;3FnlH$G67$~ z@6CqrMm7owI`5xmt79pz$nK9=A(z$I1T+C}ZX-Byi;MArk@Yq6 zhpS#V!ZWHUe1y&y7ZhDV%gI+v+O^&5A{dGfWE_q}CnHBPfRNth|MeQ4wAN)$Q96+V zO(Ey!mkyG%`CkcgNSUVFDq=_$1KpFR&+%Lws@LVcE?bQPsZH*cTWQJ1Z8zzx&{HS# z0Dz5d!-o!^L}AOZ;7tiw)A$vA065O}o!_R@qs=G2TGp)S%Tv)Roq8!DP!WwG;mC^Q zxADa~91FWq*;=GR12gS<{B_AqVu}nRh z%-7R3n8fNeqCR%r1-4z-(_v0LPER3!~$5tfeNx>~1hgeuu{wDr{Bd#>uVi`RfFKoDcOi=d`E(I1ZoH zeaAZku(hlpARb+c-l)j;tnc%*%0wx6J?X*eIn?;M=%dpLE?JGm4U+t^q@KMTPGIJ1 z0Ih&tawRnR;(p-0&%iw9bCmk4;17>-ky_ato^J$(L1@#dn(#OB%oH0T?*|m%eo9DN zRplncW7Uu4)`JHDy{71m_g{N-Rbv%R;g@KL*j@2=hJ_%yyE#A}JVrjGj?o}R*yxYMFRE<#JGEY183eCs&6ZjJo_1umZtj!O_yeiE zgA3dYt9B`UM*_#%#rqt8Mvm622Q;^n75tUcg5IXyDXT65FV^G57^|Hn8xR2rp!2Z} zByhr2$f8-5%faM#SAx{NxT%%R;E74f51uEO9~;E9MUM4cZa;u-v$&4U7DNY13{FX$ z23#ob!vn&N{WBcMM@^gXAH;5N9KVOZ>$eAK#4){lD)GGQ$H?T2z{Fb}gDv9}5gGCMc`+zMpP8`uMn*JSC^tgwamN zrU>o?&qjt`Eu)Mw3np1M4c?I71mrMoA8~am8Q+pxGybFEbSzWYP~bG4KKD1^-V_`m z5QOU2i{ki?FI^|O{gG4d(cWk)ZEP6V_kA42r@tIIRs%Ki-5P1Aw}9X!O!kTLS_=fY z#?m{n`ck!Og)C=V@w4yfsyb16Ly=>Q#rT& zw#8&nA7Bk3mmwqiaX@`K0JCfLcKwDldfzD}L(spxQu^w&a(VYYTru6b;Jw!sRf&C3 z)`04g#ATy*x4;X()=f*obYQ5f%C|nBt>2YxRGOFc76Dua`HJ##9g->Gbg6d05lZ{?xBfL82f0dCPU@-Pq*&>>%&g$jdPS-+1QMTV36m}V4JF$)9zSjHd6B<5) zKa4Wn*_hJ(<>3JCFH3j=Ur7JAec;QlMqJ z7`1}|HuZc;K@4t`syoJGv)(u4juUNnvib!UbE(B^X))^~<^)UQA-9^l1>OxgWM+~0 zmYko%t7UHw2F(pkD{bI5-`buxB6vX|y@Mdj)64wNl3SM!6xHVqly|qdoW5RYLl9=s zOYyXp%SoVIFrP7QpS1^EzcE<4f)K$t{K!EM_mhVzx2nb@phd#)lxaRb_3HGxZtd>e zY7%32T0_EQvV9;95%mJTUVr`lhsBe6q{vMl@p=F={>=rZwOfHi_Zm!&Boo_&B9A89{uly0All< z*KcK5!x#5J2PNJ&FDlB;DnXMlp)m%5*o}|qWbn&BoZ7E$M-h$=lPgz(Y`rDZ>nTd^ z49T}iY^&)IO6@5Gk7zvv{f=K^=}I3m8aYT@b!wlE9<`OBYlQY$j?Fjgt_^fD1Y;6`<8!Hz}(!wW3oF`fca&91}h#-M2OkzX_vQwuRi3N^*y%OUM6oQ`?`Y~ zT3|We$-9=7QvZGN@WmOYw_Iqu99;K3ati6ap-_{yd)Fof-UaF-l^E+2d{WG^1iegf zje7=plS%aXzUN|-(yQXZU|CJ!Lgm2|F%i>=81kDmPBBo>Y)W}4@7pn7_1d?V+(je# z+XOeG#J6EFg?rmP4u5X~p#qD?<=fnRl%0rj>imT*4b0`$PCoSCnOrZPHRz=LMrF!G zn6&0gfQ(EKjFu$QXB*z$8&)kZMz+v+X|5Wo_dPb18tGqui?N!K7 zJI#6J&-(r~u%ZwDDDe32X0gF2;x}qVtDqAFD0~lKDYyt~mZ2mzMkW0`@9Aqo+|Umh z3xN3mN90_vYSq1T`${4gy_&*68;=f=$4Y6g!bpc{c75*+(d#}y@2c|`28qSx|y%_jO$qjB4GQ4|jj*HjWJDX*Z z=F!3!n)r#OOQLr>=d^N9o!PS~dOiiO5Xrd&d!(X6l?>ndEVj(8{Pz_Ax#An*SzH|} zhjBXnfAUd>3T(4?m=13peueFX<36W*`y%rC^Kzd3+Voix-f4o_BPhWd(#%J*C1Mt5Z6DpX^iFQ^&W`3WIOP-0D?B4A>F|xbUO(D-pUwNZqyPEP z|G%C8g%Gyc?s?^Ybc4+ERF&+RQ(``V0a~9LTK{ViNZRPhlbwF<3=4I$C20Hn-`)KG z&I7seBcdO@Z1Y75=!h zr{(llnBwcz-!DsL@6(%X{ZA!h#m7JVP^vM23hn&#|NPkcc^$U@)dK!IVuF~^`XU^F zlTNm^^6MwB(;dP}yVn8ZP@NgOWkboAwKBK|biy#;wt8#TXdQ;dg@lC99I%9XV0d;$ zNvHe02Kv9%>;L(#rOO|EFKE!x^?C1k&Q};j!7hN_=+ZbLrDM(X4-vrig+4WL6` zWXDkg=Bik#b#~a^{nYZ4zExv&M)1RrkPx1_treKHyeBQ9Ec1BiOmdA}K z=laOc7kt>Zzal7>-wg>$Ui1PnZkxRdS(P3xIVdOW>uW#AaBG>9H+O>+-?tJ8E*;I$MLw`xZS`d zVeq*!$r?K07L)UWf6mHy z3rr_a(>69@(8aaJ{Q-vUFE6p`j7gHQ3i98WWb!e%*45$cj9OYl=&DUdk_0$IZVvsB zOl616N@(6Em!s9ScRmSmSA?&v29O)1lc4m4V?PEC#=Om;$Mt$L7>FIpjm7MSvXPow zUnpbEvoH&+E(hM-m6B(9WVMQW&b4+2bouk!-K1A>^_R=9I>5onhj!?OD_qkdbW`$! z#>ssJR{<+0qhcy~zyycEYUs$@;&tbHrD57aGz{(ia4V7SY$4{Q*2|`Jc(@csF60w7 z3OkX?>Bce!F>cH@Du)u@cv5aT{__V~vs{0gbe4izW|}IjplXR)A)aa_BbndBarUuF z5DAZgAlDZETJ|R_C4iBIx@&ZYy-I5q@sGvf^?c?SNoIMNz}<_NK>k}k0yg@{*O=RA zHNZLXXL+DAsP!lm$=TwCvrLVSlwvu4$4Ysx&6U?})6vh_a|L7oxH>FmF+sI*WZW*f zpz9}e2F;2k9Lnoh0v_!3vKuMs9rluG6hf8q$u4gYqr*lg6O5_J&X5a1LUa)y*_L^G zL{O3X-;pp1@!Q|bl0CEcjTWcpcq0-&%U&?=x-c39XpORs6{ii5>vGM71_x|2#hh^B zdAs&{efSqs#zaqAf$y(rdSPi@a7Aer?#S)z?5_5IAs2*1_l@my_Wb+-@Lr;G2Xk?p znpLk{*4rImR{31i2T!7%%qQR%22qiMQo2sOLuco9`|M>gScQ}NBYXmgn@%=>E$+jr zI@|ytefX0sa!~4}C)W6gOPV9TyF9xJij7tDQ=@g^;t^||JwWm?qf$&K5Iitv6o&t? zxxF2xMjyYwWik@?8!MF!1%_UgN&*xZVzT<^{*e2Z!Y{@0i>+oQ`d%K)m6mZk1 z7q#`EQaWTkRTxzf5{Bzevv5~g^rhFGOhyqsAU$jqOVt`Vg5J*x?C&)lS*FV-(Y(}) z+#H34k||t1>geibQoh{4PtfeAaTEnNs0)hye%u-euM~P4pZrcnG>cYmNsSy*5utyy zP!+cYeS`iJ6=DTc$3b|0>!`N331jze1$Qz2-4rw8d z^5?#~)_x(GKS9#D6SXx(3P~vEfBL_@v3GX%;~m+fFb;WVul#~O$2Th%Lobx0aG+Zz zKdMi-kTI%*^`yCN>o-fEQ0~{nxXt-?Z+fnb^m(xvTw!#=P)I@2UEAe8=WV`EC{@{O zv7uhC4Z^1K->635&6n53FW&8DEjEUE12OrxF zhpOettF*Eg(OFVto&p$E?L8`PJ>1lW3C?y5|V-izT^vhV^ zQfJX-PCs_7B(tZhZPDdVJ8oNdbZ6^JF~3!quRr=PhT*=Q} z!u?Y3j-|nz6;*gS(EIS)yi{>XOqnzKdT^k$0*S?GHTC?noJ{iKUp}{;8 zwT@tTd|`25zWOVk+fq8kEt}o$+6l&5?J1=(+~TRaT>B!0Q4d9SHzqJ+dD$2LVrMu8 z)pxQ>NLEchS#DqncP35`&S)%nd%ew}w@s|Al>bn3LijxYe!LBaDWSA0l7!QSsM8mm zP|<&|uvuFA!PP@^A~r}^)VYd#bD z=+)QZ%&T5A87geW?F8;RmDLJ!c>iEoJBLs zyJ_y)#A!38+CPjeh9>=Bv1npX(dqS@g~=BC!~eTo(qVjpO1<#Wz;2QC3MY|Zc;e!VR*7bPBR3-(gt3gJUX?Zs(j=$Gpg7|k~VCx^{r*hV7r?dLq z@$Rvf`d@YizBnwO#L=aF-hFA_0un==aL|JMRnehA*o~ud%78J?c#-tD1I9 zLscdlv^kyi2sz9es%VC;Z3SA5$L<_T_FvFm;k$6DH3p`CYP2YfO`)<-nXS}E7n4Nk zolToz_nwf8dOFrjWWK$b2xnPs&CMQpi@>bc7$rFHSAVcf|9O>SXZ%_R!E!t0$x{Cz zOVwNs0Uc(VTh@_wmu!~uRgR9eXyNZ9XU(Bb)i6rTU&k_ct4kwA@m*Yn? zs=}1AmM2Rz2^M^7az~xL?-0lq@WssC=5#UrI+tE~cd?xOkE*@oLKvVJi64aGr{C#Q zFjLr-BdbxMGM=McZ0NZd1lw4VQ~5$=hlT=B4xRGZv0l`ce=bL&?SUVkD>Xf!FC6QD zBP3mxkg(!uwg^4K=QBQb(U?^2n;hX26{WVor#6peL6;xz3AfX}4%5LbWG-@wJ&(ty ztjMIJXzfUZfiy{iya2U^rW-a*RBW~Si)>v<-sJcOiuBU%KM(n&ag>&KgLZ0>olo-09S^bYPXna-^Cfg`YiTIG z!hlRl;bu5IVHAAvMt0ZvZub$5PWQpe=3!ol*i-w;E1|a6p&)l-40EcX6e;2jId%z_@X1Yd^Efv zc=fx?^ZxW%BIB8Jb0_PP*T3CZ6IHzvCk=0XjL&2<29{(^{UOV#H0q8f!-;6?+y{O} zrk(wrFQmTJ!HM7YBkQQo5Br3an#Xt^oT%Ll;gk0Bb(9*dCI{Ms2cfE8x^tS^PjaNZ&iuk;w*T|8Cra}wHRkkFc!HXC?bk+U@-7PyfcrW(**2Z1s<(48>C; z^UuwBCOi~M!!HFR;Rm3YO=R+;?tAW5XipVNX*RdEemX$1ln6kSNuXBmj2rlIK!8iHLI5bA{s{@#Rk|%v#PhZ#BHmb#vzb`w6v3ZWQd+3JQ-@ez zzCEm{|5RD)?(SA8h8UG|mZtHuC^d=b;Vwvr{e$-IMiU?4tC>z$x%dqt8kOo_6bfAU z__wal1#TJyG%$aLxR*T1lbWc-lzn(Ee6`E`IT*BJz6~eJL>hFvF53ztN)>dcYnp=r z>QZmM>A|`q*TUubb$>0k`P^h0?e=fe;g>ua+i1I+EuPe-Gdr%h)gm9;6$cSiXrNY+ z<^C<#tY-Io)^GlLoJ=&E;Y@78rty6F=fV77_t?|&^$_z>ozLFM)2kiRUN#gI^0P=X z{$UCgXau(tfvLbpumsLm^7qrU35`yJCv+E7f62B{4iu2Wbw+{k2F((?e?2>6SIBPh z`*3hjaWq<9^>^*(Ee3F`N?~%9BsXA5Tx{)(YVx`~1Xv%)K(l}pRzDnWTwDjUW}r=r zp6)4%(eI1muMZOihQ>vrYseJd`sMJp7pKAR+fYhq$F;(AM)n?}mluBQ#Xay)Mtiu` z$a<)WarCK(AaqUHf(v@!@p(v)z3uB0UZ3x;>6cOpiI7`UsV#V}GbQhsqKVH@p|NCJ zYfn;u2`K9a$w^^=_V{je*Sz2Ccue!T-8~$)oV(PwKws-(N4djP7PtTJy4n8LNar^W zzn_(YFgbXvCd0Roen#oXzHK1jYn2{+Gf1Wu!(hC`dkO?g>3t{ar%xphiGq5TxJ*!V z*$4lt1vvJ`2p~}A!N2F5(8Z&-mz?Zh6kOR~*HKk6t+37;$zup~LJo$ymU3XF>ft--}IjhHg0 zO^(hU9+M{uMtszB2=IXS&s`A?gNhemM_nj#I|jZC?5D)I^TW%tEnMs*a%R*u=tJ;P z1f|41pdRb!&Xqgtps3QrL>zSaA`d;SM+s{UJ>swrmW@rqTLweY%H>`K;S=+`K2!4f z_HN~@F~6=j3KAviE_J*&ObPNi(S|x*-UN}Ir=qT38+M8ZR&H>~VkCs%tcHH5x8X+p zMBPA$5zrk+&$+Hl@qW*C<406M`_lH0;!;LTT48>jXdW|^n@aBy8#=oMGEdgQPQtBO zWU-0wU7=8`Z5iF(yFDmYJ}`F<9WnvB@8L#Q1nAu^TIi&B?PZ4LLa?}iP_LWFdS?gn zP@AG)5!R`-g_|&qg6lj{=$u>Gn;n{B9aP05YNT;C|I*U^bbR%&_vvU;eut}HaHQ+e z6e<@U8n2ScvEmsU*Mo;bi+v_ecXc$k9j!>=WF-IEI?BNYC(|mn-R=Zzs?VSjy?b5 zfx$YSC=$^N(yfu4Hky;V{eyCwCm9jMhTYMU_}bSZGG{WEeD-ZfjHn|Jk%7XsgnANZ~=$${r4jt@8~Ys8ug8Vs5J^Cll-q zeRWehrkmn|RM-#2c#V=5EyUefu2d}#_#0sC3hSbPkE z0G?NReX$*QU79N9_WjL|4w-vy=u!@IwF-&!sj3DSlg}hP6Ob$N^786O&QB-$Sk%&% z2KHvX1331$^@~4W=FB+qq_lijNhJK<-`9uBw>A(fZ?pw2oE1VudDTZgkAhr=XrrK1 z^nc-J=}lnAtlN=3WqOvPdruS$21gkunvmy6esO(FR7uRFlyCBwdMU?`RRVN)*VotA zl^Rj3TQF%}*ZH_&wFfn>(FrbIYSNTDd-=>LveEaTVga_ko|~8g@OJ8xIJvLcpYw3X zFe+lz-ETm&Xy7WZU{oKwY$cCNm&?Qsp>rUe%Xw*+;w+ds+7%?E|A^?;hzkFU6MIdg38;{>Fkr@qFox!79XtdA}1`cEnOat z&mv%GQ`Xb_9p4Q+I6%>G<+O4vfLu^>E!7h2jB; zS_dROHg_$w-?fl3!1QOcp`g2tGfQmrucM2Li}P$j-gy&Q&+FEyG`=qX`tV{p&qn$S z9)GTK`%j|=jWTum>w^vPDx2B+Ia1ug6>EK&E@!3WyssFEnVwk~b;yJJ>=DmZ(Q|Lf8KMuG(&B zdYh>4R0js~XESK<+FRPZaF01J))_`}pT)DAjf}Bwj#N@M7oWth6_I@R;QD+N>iR`o z&N=m@XN4uYf#^6iNx~maHJBzDY{s|b!47`rJGdwWAIwUkqFRUz?%`EwQ38}4xlKOA zbR6y!CI6&J1Bx-Ege=d_#Fv})*mReSIPcV>W#IKK5Q4io2aIj@6GSv;kiMj*QlZ+N z?JPVq*@L_Npap6Wd~L?p4+>aUZnml7h>dk=abCZvh?}im6Fhmz_Sw`(5H#~bRDoyi8#xDY4ac%$a(kF}kLMqi@|43j)WMMS^ooE-L6 z8#p<;K6#FiS7#hc&gF`h*KrvK)D>Qrk`=6IG(J#_NySI^bEuy82U`8!tSmad;h2`A3&l>3_)fD~ zA6M1u=Yxl*mjG0kVYRV7F+D~%NukGYRhHc|JGW-L+>h-n^u2lqGPWd2tGvB2m_p+@ z-3apU=D&Due5#ndrpp&Sdj-=_#2IGf?lWj|#o5+t%2}+>Xf#+l{-X4HVbvf7>iNAw zY2nL0=;l6-rgvd~D9)(7im~JP;yhQ|l2Ii|m}9(2Ggme8{X@OR3?>P; z?Yo}Wt6vBbbcv;2TE4q9TJN79rD3*gJkt1m4NUfjeL^DeC%-{1~d+_R{x%53yta$5wh1K`)S5kf-{3q-} zd>xpET$S0=47;tb(R4w(0L;mIdGeaGD8agOZcQPc zPo&<>&IUUI@LA}Z{3$soO0*d>40-&yNbertMpW4!NUVlLtaBWSBfcA)4V89yh<+xP zGB&(!dd(1newm^Wpd6&_*w@s`eu9X98L}XG%5wD-e>X^R<+6v31?QK8CcTdW_n|=A z4=W1`F%&olIIJ-H?T;n1C*0KIw!Y{WOy5!t0C3RL+Ku!{X_*1^^I!^habL2K`xo-h5@4PV6BV$!K!9!$+HEn7Vu}At*9f-AM3&`k53F zbJ6P?XbG}2z>7j*`f#r$SF7@5al27oXD~dfCnfXEw;C~1C z30}fNpyquDc*`ce5#T!E-0;5~m@B_>%2xh#_o{}YO*@{&I_60<*}|7IfXWR1)csi! z|J2?nLL&LzV~njB2MNXK49&q$=cNvAH;u=EdrC{Yt8WY4^re43EgPVmt2c~SjhVtX z(Pq6`umj3=1vQewrxc;-Dm|X7Q>-t}8-)SxcZokU6KC=0#Rr|C+)=t0V8f?pUa<9$ zLK71PuaPHaC4AB%j*hf=u*EyG6aC{Gklgw<3Dc=;BrnNV=6xSQp9OtbJMs2HjVSM# zZd{`4R@tcpG}N!+_=P#NtDk&$e(o_#ygOa1Zek|ox%qZ&i1^xi-kJ_B=1g3asG^N!4n@mUIV7b7x-IHQzZ$1wvQm3nYt6;f`yf^u`>BR2V6b{VB^QHPUR z1wrygYsh}%@R9 zhgN&f3j*Rtcsttt(tBXG?Tl}EOt@d8afF2rRe5bCOErI8utX^9j2KA$#O@X1=P(&N zeJF4D#6s;GS;XU|^@OF=n?t4PX?`oZQCk5b@P*r+$D!{-nV%dFjlT-_YnK1$AY#|% zppx>&Bm6l(DH8_se~pKY)@^XL1JY4L@KyV4ILtNps4e0^t=pL;q92}GW5(}Ybp(a-7juRnyo}(J+xb64Bb!$}7IiRP#9X5b^F(bVb5az}#Bqa36 zege-qXB$w4Ts~uHwToVQQh&T9<2{3AZ(OwF!}E&uM6BzLpQ&P^tb;6G zZWoWNM>d^Bd53m~{1MBSov!;EE4F9;`GjJOO$%K-`#Ur zgw&8P1Kmwj#CVy*Ch)@Tc*4Yo1tJNauSM09EWoO}(Le02lEH88)4D?D^rr|1;%#63 zVpTnl&)@Bi#2WH`2gqX|^^7tT{j3Ib?i{`p?_qR&0~_||SOqauP>(SV-dOcsq5GxR zw^SIE(kLaN(Q~}Bv7FgudT3nARUAyjCq1B-pER>`b_N?yR^P7_jZWNAd=KU>bL;Z+ zHLkvMUuY*#AActERnx@fEQSSwTO!m}iK4rwM!CIHSvGz~#quO|YhtehF~2U?!50TC#UIyp^91--<=qZ`|?4(#>V_> z(na52SU?jO|Ajap_(m<)>l;jKaPk=YL?i~XYxUhk&wWP`A4 ziZefW_j1u_T%%@&FnTa11@i*oz16#z)p$v9e0Z8*mvS4Y0zN}9lCtb%4qL-=%0Q_N zZmfzDLR#@L)aMs$jV%sLRL9j6ccKSQr@xJZweLBNW#v zHpD)d|FN^`%(gVt;7|KG?-ghA4pPf-yC3AfKSK5a9*yK(&e^KAPP!ltz=0e&Q6S3H zSzI9JaUJrZ2KoB#UpYc|x^QsralM5HW9F}%j>D{l{nx4dsKvA~>+q5WO=^kl&<|m=K*o<&3)A`F(1Q~SQQuuW##$n~kjyDo)Mec5DG!(wUd4-d zUoSN1Ot>P*#U6Cu1d=dyyXYBh5d!v_0SfO1m$8NvA=?Ovr&Wf%7wki0J40=HIRHjV zH^0=pB+0L})I9AQtYnfY0cx^h0>xKycXg@W^qu9bdmgu7Tzm-e_YkQVf(z9(H1 zA`)w;_c_81y4Mo1FV@=Y`6K=8@OD`BDlBR};X!T*XQhkHZn!R1h&!u{jwAk;s|8$F zORcDYVgstntAWlMPJ{9{^BBrhQpmxVgaK$+uFL|lr{7a0FtfrUzZF6etsm`Y%Qpu@ zHpfd?R=@ZYx@q~FLgBi?2sP4&Q=w8D-{oOHoA&c?y!*BGggs98_8LAQ4BtW%!QV=$ z#STUgd*l9K-GbRmFkG#6%?ON`G>uLTz-ZXKquSdPgyP{RrVbiZ- zPbhgb(9xepl3QP_sT`(?zImRwSYcghr=R0Es2M)^;Wl>EdM0WYQ6v!eWYlmik?Q77YecG0(2G7RFpGi}DC$ zJbBjWdX#v7|G1@^UFW-^w_fHCva+qCmjn#S+noODSjW{ zd3=@BtM9ES0#1uiM`-=y)h(0J*^s#!&)q3r4x_3kn0OPV#=$$2rFwkgny5B)n$j3c z$wCgD!B=M|lPJ%`91NjmJuLPH&2|*8RFeZKC&4?%O+KfaHA$%G8-uB%v(E+hs~lmH zAOU#?%7sc>p;v>SbApMVKV^$;?k>5ma7c4ltjEVD?oW|K?bD)L+8WK<-kxCZ<6Q;e zt~XZr9$cf>6b3d4ei5U+8s}Yez?-&8D>ZH^?4uQ-+UE*;z~)JBFS&z|M0WAxVwDaI zKtU8w7cMq(L6$M++DkqIVR|nK9mGP-mN@z721g|8{3|Ke-?tV$aoNB(q=4$s)RJ^@ zFJes=m6|G1^IYZqlY?=can5%##obzfpcxy8sNwUI-)mkb7HH&ykcDPK&Ci-;-6!1z zfAc^d61Acr7g{0FA%)%8Q(d3Y`B4hd%nCYo%;~wfV%9j$ew-e)+CFKi3?rm5Rfi%+ zCmy0NblLwl;eUtwZ>{-oRTSi_HY90j!iG7~a~N`e5--Ua3<}zcGh9ZLo0%)8KO#Mh zxOivY#q0e|!PRaSSqD{u0STV@e~LqbD&r<#0Nd^3_JrmIiVpERMGSj4C7G2Dfn(6*$%OW+=b^`!^5hSHqSC z^aXnjU6q%|tdH^%ihswAFygdkvU$2#L; zREfcQM_d=;)AY&6EK2qJzV!jhCy*{p)bHmJrJ@JzQ3B68bYl7StVXpK9=yA3(UgEA z-9BgiV5q?sH;zq@oPfa5qW7c>U*i~V;;8uYqQ&?7(c>w$_cM@&979ukRWfyDh zY42Ud<<;X;2SPG3D?q4%(mc$K&{D;*GEXt}dhe-lF_U5n(ZP>SY&R8wqD1*q4hmVr zf$3>%K%-eRofm#d{PNMO?AtdVNX|^;>v7>fv;?Y61jZ^|MNDqMB2#;k_wqum+;c!T zj#Uq>;f(rmVO$UI%2^=!3|O|7x}AoN4-XZni}Mr+=rUy2DQ(=mxBD_`uQ7zfg2%fd?$zqh+TuI??9hT2T2sCAN!+$T5 zX%PzTYcf-zadF^<7=JK9as8kE6|U;*;d zw{p;MrKXEgQZe4oQJQhK_)p_Vn%C!V4wPnT%RzgFcE%Ez?HJcV0DCO6g+&A)qL?zO zB?wEyx8tR{&hJPpZ~s8iqm?Wpsj%t`AC|3uxtJiQE9`?;@k$Zgx7wY6P11EdzViUn zqqTACfjVNx#(P$rU1OC*`N}?E`-)hZY8F#5mXQxO(l;kkxhenf)WJAE^4VSX42)U~ zfXY)k%Yqy#1Df5cmtxmYNc_T6FXU&ZYXDBR0+boGyC}j@XA?}<+7>k+s-)eVM*s#| ztkr~)U0jUdwMSboU{%U>ttc4CdEjS#gz8?L9QM8FRVJwDX*4oqq2QJCE@`2$^@gt- z7kfMc@6C^IovS8S?1S0)XDV6>2zkP-TxaN&P-(ANhK_;4h1Lg_OaQamKRqb7c!Y=Q zQ-Lq0YbK2A3*Ddy)5)#JB8=4 zZq_DyiP)8!eIu2sT^=NXo$AhHp`YGM-lubxHv>U@>7>;IACqjNcX3S`-*|+HvzuJ? z;jjtw(g3ogZG-lgbVc`hJYZ8V66<_m$P*4znUiEU)%QlNxI3Crtw$2jYKfhwCjsc%l5sxHUNj z5TMN}y_ySQuQwci?Da{+T)&B{5-1h80+wQF=^4J`Mu`Y2hYq$5MmC2=skN~00@)j_ zX`rxdtlUAp!n}qv+BOS59-k2+0O>(%wjaAwy$uP$+rM(P%{h8D^zw9-etT|LcDhi? zbf%c;JlEZ_w!z1=z$PmNafA7BOOQ*y`DtQ#S`Yk!|LOM8l*c|=)t>0xMUVkCUjSr4 zNFQC}#W5<7%lLR!RaPB-6k{`l$Qr2FSj;*K_OUHq ztRewGfsR~GAKnZrN)}u<{D`8N`@R80 zC_Xv3c~2@Q89Q06A!{PL3u}#fvOewX`zy|KT-h#V*}eNF`9-rI4jSs~Q|0hKqHahP zVx+2!w_KFnPXQY?QFN)L$}V5mxeC@jmMBJW>()C<f3w={! z#>V>gks25M1~|+~*g_5qoj~a^^{=n}dcI5@plX47UYgexJ#4i183cF?Yra?X5 zA-6OCXuPig^}fMaVfijslzXyldU&;%NtLJj$@d(zjiQ9lZQT4g(z~S0`Gh$|*o}sN zgG)XwMehU-B%LfTEysG_3}uo`m2YG?B&w=c0?gQq?MY6c`lXEB;sy8Vo>U>`8Q_hx z>oiQ-O}*1Qf(M1=u>j(Z@Aeu9zP_*jdZVtlyWpYwPE!>9FDzgKC_YqGdX;v+c;~Hj zWh-cQ-bo8ys$KFp@~e?&{VDQTs%jqN=ltqr`_g^}^5Y_C>wg zyITH;Vm3)NzZcybf){u=>i7yAPOnV(!w(en-}chzBf;QTeji6 zDD<28tY}`Je_L_8(n}NOjMZMj#UT}Fr~X)O0K zpSx@!qFLncfp%*Aj+(|ll^QnSQ`jlR;2l~-Go#v159IWAb1s%CcOHSepT(xG85V??VwJY2JF zRNqVF7y$!9zO9@x;?rZXbBBIc0}{S)y*mO}+_?#I2dmTk0OR>7jBty?Cjrk!-H&Kt zVIhG*QX4X9K)hJ_Jljcfe!xy|WXC;@-ALIeRSh7;%^jB<1BJlGTM50UmxZd?=q(Sk zVFj$4t0?KKZAChcPEXOz`b8QW8?}5u{mI^}sNUFuFA8+;8_fvF^t?nrz8Dq@{&JDO zB-1=MJ!X}i)J)mZ(Sc1dl1Gq>_RHV{&g<87X$9|ZNYV;%pTmF?9YBqRXLv-_2M1*t z%z&SY13^j^xTjCN77TA=8W1Amb#Jo+5Heo4rcS%R^%W{!yC+P;g07fv^XA>$k0O~2 zAwW+u8}hx`N1Pa2rHE z!br29sVB=}7kCoGh+Y1AfE+O5X8ExE&-dRo&v3}#dO-rjpOzUJNe~)_oz&1+K%qVp zdW(8zr`o8-?8(CA=9#`%kMX=iVKT~e7%Tr zoE@$@5E6D>jT6-hB^dCXtwr@q<|70(Ksry|j?~NN@>+Fls)dZ_rY_$ECUTqTZmco$-~##aOWT{9E@#@KAfv#cXD#Y`uy&<*)AQp z$w~BefftF0f%(-}z-lt3MVZ%;Y=4fRYgr$q$rrfTi{I(qY@La0IHu#s?uwZmr>3G( zr!yHql5@5k#H+Jy@m;$)?{V?oPiMEf*PWr~5S3`qv&Mx?renpZ6ocghKWQ+Ml$L{2 z0-_CFXDSVu0NavYC#|6hp$PkwIMlNT&ynPeKs#93Dq1jrz(%ha%-v1U)!@brq;CG_ zOf8Qrj>pugjcMd~q!Nec?MPSdc{YpX%yP4=~MwuHdEL^42-Alte5O338rZh|AV zu>V1!AEr$GBUVldA-n04Qa;LjjS{L=FGPD+P;+d{bGo74QL90>XMPBeyPJ_j12qnd zQQmHa43_UL5{QYzo!+=l%yOGFg#u8l^LlqSWKjqRLEd>$WcU=FCuW<2?=$xcIw7jy zS{%Qdb^BBn+ldHoR(>z505iVKr{m7OZ7?0w*qMZ`2Nuw|gmg|N483uf#+3hl{s0+E z4LhUszH%zAbylWJqnMcUah0DBBCi8yJ2liyx><|Pcuv?GkYaw$Jiak29*_vR0>q;Y z-1Tw+-do%FxZL)ltuq%di>|PzB{bee<7;F#&mC~kFTJky|{dT2{XT3YB|k$c;>}xB#lDHGH5uY(+TMB zeVr}!KudDl<9~+EZESwliT+v8jBbJ}Jrtln1^Wt^W)uqp9txoD`&O>9%k(@zwHt89 zfZ`uv09O4za2w~kkSX?9=fGZTqy0KQuq0Wq1(BfA(I&F;;)@B7RWFZWy|apn5S{-j zQz-BS?Hch~;k6whqNa*=J*u*vH3mhnu3VX4Tp#G3O}a+VPLnvZgoz9SG3S#j3b_7$ z^30?Xh~Ss$f2BLEQd+AjmKri{>jkTFV1L89u6+1iy>0%wLXYenE zyC&M>88r-~$7~(Gzkz}~(FT>4OU3}<+I3ItellcFwt-7leYuEP_|0V_(_-1MX8G%B zo4%UjZq753l7$My(y)14!L>waWNN6(1~_AJXi=j<#^44kU{y%%ChR&?8;bYM1YyU= zVz%|(P1Js77lP{Dr&@j3Ige^GcCJ`$&jZk+O8WecK$ti2em0ObFrMVvr{L5ELfsJy zITT!p%gFW}p`R56EEF6{CMThYV#_f2rofVpM0Y&6Fm_eyUU7^1xIe|Wz8Yo!l9}+< z2h4qiX{&2)-)Bx``aYr_f51Gu@j=5+a-B#M4Nd~?i_J~z%ZXFlLP9p|`KynCjh-44 zmN8xT@5ATN0sXy>9!)a3#eDVB8Nzyr3aS0EY%MkABsf5TMO?wTh2tP+AFd9eLit5o z+_w=#*Ih|vvOR%)ow342j6UsRElYL$L#V}PahFU!8kCEt0r5pbMMwek zJqe0<+c!hlD*7jFp(Q@N?mwvF!0-n%MW+r6%V*sk^9_W@8&+*`=)#`oX!jwTfq;I* zk3^bw&XaBk5JVfLf~qEc$YL2-Dz86;o`c<9&oyES+ARck_?O7U&wQ_n^3}@Bq0{+u zJq{bteQPpDqWkuuU*VVKG=bv012K$DEZQK+;|yrDgT2a_MXXI6Yg%#XlePPAvz01O zygOu&q40!@ZV?J7ERrwvmWeC^6&%a_M!DQhE;B{2Ar6b9)`3yBJsH|Sc>80C7@}kK z%ZC>{Km5Iy9-=<4?mL9oZN02@I$(2H^fFb9CB3j|uy25eBqk=>ZEvO3|A4;fqiJ$T z>*3tQO}tTqGCB^z+eP(I&?_83#V%x}rT|#!4fSG%TsTfOQXU%KTz3>5FX=d33BjOm zjtJH{uPFguf2Hqe;PJ-T7u3gG`ETQc8OQ|rQk61^|q^OeK5 zpIju#)+I?9Q!540I_Cw%B}yuo$`5>so31y9`aP04?O{w08Q&QzA8)w^OwPDO2qWg_ zRo+PZZE@Nb2bw6RlD^|xk1kap$>KVMKo}ftbwLmi^ z9Y<;anS+;YV;8!WW?`aXXD2$my;h_3RFi+;vSA&%RSDpItZMh);^Hl@(C`LzcpB&1 zb0k#HJ_1PU8Huxk74^g^C}~2-;npFXhM0z#%IgAA$>3uCn^A~(Rh3I?c`b}F>`kema9te4JQQffYKeW@s{9Y+TNrEd!F!XCbo%l zY^my>k@gKJl2^0^_{*(-b{T+hO`$*5ia`!gf5XfF+sXes=BkbMc#;6B`VO z_yMHNN^bie35;Ybnx_i1O#(^r$8Y$pdWe_1ejxvEi~N2qXskq?Pevng<(>9+k>_fi z$fIB;gysSq_l8jvW0~c~!G&SxJl3OmvPo5DlvE8&uCfgTdna)$j%i3;u1-$U?N1kX zKoooySY2>3troO6G{N2gGrv%4Rxn?;j+mHPHQb^nrnP+()qWNt8#yB|+~|g@ zkPO5tS|Ys{1%|rpM~?Hb#BqxLI#Pdj%D!J<*-ze(YPvqTQt9og0$EVYs}lXU^$~ZS z+#*BTI^J&De{Vq%>`J!A-r|V5#J9RJBbn%d;hO@TW+1VJWMr{my%Ah*jjRyv& zcF2Wu<@S`TwE*=TH+lg7UoY+xBhh+00JOiV@8%>IJ8c-e_RmLW)y#d8Qk%(bW#m{x zHLd>DLUAWMO5fC^M|XVQde}n!VUmDSW9TJ5 zCEZUSjJ-f5#j*_ZM3bQs9m27T%N-U5=jw47A-+>Nn>~*l!c?f#a0-o7;XZZ1CG)of@iMzb-gRabzRo1R z&=?eUW$WqV<@-d72Km(Mx>ne+~c^9AxLf1g*P=!7FU3Jv+IWOm| zr>RNgg5GF+uX^+Q5?D1cv zgOv;l3oAO_la9__9IlOeDJ6JcJ%0k!zIp`DK!50f)Q$I35_nhLyT~X^7 zE$1|T9I4p@A^A`%_fduA;K#w(!y+ zT%9+L2ROC0Qr<%m?y?~ZS7??2VP<$h(uDngHZnHx+Z#gfjOM9M zZUJIcZ7q^Fyk}8T$L{KtBW$|r%_C&{2M4VvZYj)*hyX>X%D2$!o#m~qf~z-sGo&{J zfoVqdD|ww#FQ>mU1t0?~E&}I{o29^DatXWaQq=9is-96-N(98FdIsmxabT`)D8mfZ z$nPNi!@hZYr|#v(%O)d;j0AOf85gSu|Cr_$kS8X6#x-B&4_rDn zZc8Mk&`^c7OVx|CzI)sq+N9Ct7C-)A?|<$(qER%-LZ~lhi~NBcqD?JbyrXxG-IR~w zyznW$M0f&njoTmzi)w_kN!+BO{{Vty5^T~{l*r9%KI7`?>A9JBL&~au_YAf;8EbKT zdOC7ZYSa)aD=W9^#*g}_3EX<2C$^JY zGS|&bKIIPI^;5Yj-E1e!j>9#)O*wCLPX^h<{f@~G#z{Tulx}6yYQ2tfEyhQi8a(Li zeXq~U7YJ;$b9XmHy*6s7FH_NodGxAnNZsw`3EFw~<#L{RLr?5ZBlL9ZEwCNtYu}0R zTeaRqiV=TPGfkBP`}lab_Dt)Y$t{RE9e3YJ9r%;8^w*k@pi7nx;vxB_m}JMRriyCi zM_H0%q)??kHX5i8sJ!o6Y678&8Y4ZANe30eQ1(wx%Ljs1S)c1RzlUAdRVIK2)1|t; zXj&b+7xGk@kl`(Jcpa{WQ*xIMfG)?Zn|v3Q9gY$`?i}xq;*#X4PJn=5pJEJ?kI5&~ zQGTm|;xk$iUtLTEfK{I={O0j@WRW!E@+65`kHwhDzF7mzXMipZhsZ#x$OoWq5FMx! zk6gk5@BX7}g1|*q)1H3Pe|#$FUSauKa8n?iE3|a8r7?r*)oGtOSgU=0sFB~NM+R67 zV3Ve{P&Z1t!95|HLsap33AcOIO5CYNDJRcgIWrj~tSgr0_tlH1bN7WOz3g~zSuk@W z;c=HdG_Y{IFmo`#FP|<7=lt>qIH%7E$euEqXl<3@mK7r*V_jKZ-eB0_^SX5GyTY{) zdlWmzIb3N=c-`P3m6DpOUZ+orMDOfN$3A{UjACS+ zWhP5I&oQ6)DP0N0HF014$unlRoMzQ|@Jaj`yy?p9d?^zUxfm6TqSJ-0w*;6O z$wlv+!7k8=Vwed%F$3$UotdP%gJ>1v&hA~qXVF}D=I{@%p-~V*o3YY^z~^%+zcJ`P zcli^|z^I?vEuZG(b-HjE9@8mJ6q^-J@ZgPI*1HFQf8c7$6-GlKLh!Ren{NB&=~77KETcUV!`v)aq=MQcDb%d74Q+% zLlfJZtyF`74eN+kL0A>^eTOD5qP2FXYGk=(`IQpHMGn{d@@CmvBULB`AOFl%*i0Z| z4lA24AWB-{|L5y5wMC&_1QvF-gWU#`v?C{8{{5r&-SI3!o!5c{Mh$KqjwCD@_Fe8yT7gJjb?J@gY7Wz| zafncT{tap`pzC`8>YYTP%MXpj{nYZ@FYE#1ps6 zM?JC9g6;D@pod9BlTrMfDd*3B*_tbGUW#0Qy!k#*7BkCi<>{tahSU$1@F;ej(iVAi z^B~Ut)W6x{fV*={f)z#sz_JA4cZ@=UvsUD(e{8L=&}uCh>XyD&OX9f$=pC&y_8kH_ zx#WVL4@(W3gWkR)VUW$miw-;vsyiyP7=EcFSzta;tQQTr6l)M&i4D5=gowRPxS_3d zmPIGSIH3#x@+R6kI?%liH-cj;NowpDaO#3(f{1Y8pTUdy>AWt?-H+UUSnMwDc%Uy{ zPOWrCbO1D}@o{$&95VLz407*vVFYDdH@m~t$;~6M)!hi+?b-p=fvGxB9{kypI%nDp zX)Hmwelt}U0j=EjqXLa`XF0%ezyUZn9dU~+AsLSO~ zXG${#k*asy1(YDI9)hJ8>p+x|+d@FhLf>(|2}lC@xh$k|XGE~Al??%j(@tIgRWLQ#+CX4m#`vvwwmWFh;JE^5)& z;R}L;X$9B(xvH|W2_-`idB-Y^zAeq%$0Ogp7_o-4l!T1n$6KT87TpgpOOhdDTkB8i zMqeIxYxEWr)Y#2_73hqhiu8fQD0wzkV*cT)hTlP19#Og_1ir>nGv%MlCaI_k1X_d#RBpP)`HukkrQ4cWlZW{8#`jBHD(V z{Z>>%sJl@ETB%ZL_oB88fwk=tXkxa)q?vwcJu*2ODd?p6tVGKH)NnDEyYFlbTctj% z0n=fj7TGIK8ihQQweOd^|35oa+Vu`rx*yEc}>#au-A(@eBm*pE^MRdcdfs?ms?Zz(@JqGtj9h5IMjp%R=rS$M1GW z2JYX(f?fi+ft1q3AG+J$jB6~DK&RqJpy@XYt^ZHcyI6zuKvOl9iQAyTpYQ)49|lV* z(5d7d&~(kh^8eG67;DiRXlkN1@h24d_g-lOok~N1rWlrP|DUErSTIqbsiVe({C|4A zoh!I?b!Cl!mYeY0yQrs&eU7jN=Wi^lzup&CiL~(A*~$0{h~n&sAi#;wQsBRRIgx}1 zyeCHrM|z?ChkyCEVV;u*hCl2>l75n3q5ALH-y%5-*^H=2ciMWN{kL~B((upDct}qo z*llzEcQ5?a{aY2fpl86PC{tFP@Q>Yp+c(j@z;HI;@_5oyVf^1tH_;i2(SS~$_Pzga zrjGb;Smea zX>VWee>VK$!|maqdmX6o3>ZL6 zh8Ow28)itWqkM|*M3S~pJQDuLGT$yQb%O!0gd%?iugKX&RWvLa-Fb&C`K`yx@N%f)^25}^W4lj^*XO+MId#rLd- zzWXM7r2gODKXVd&X%f1)ylm+kmEeo&G5?E%_P6elo)iZ5_*UJeIApM%*maGP9<1z)CF7L3<#1nqcxmJ+C3zWkh<{XZmEth?c> zK!^Z|X0b!58I33AqJ6`OfPmoPiI+8_@@FEwN-F^Kx)uyuvcPYb{`&3R^7gh(&pmc` zyKIF|D1d94P<2)!EGG8gO$;LsUVDsOui^zDtf)J}$P@cy&81rOqb18R32qfnw znnq$n+IJ@+na12WXp?X0>cZqslbDR}x$H~iJ`uH&!M)3FjQ0Rgo(xl^rVn=Q(JFqz zi$}wI7eM&9lUr54>kD@64?ox+*D=vQ9KR|JW8bge)k<~J)Hm5+=sAL^V^Q&DqT!wlY03YGfxGrXzD zPT=@hm=c$mBf{$-4)whS;{q|Jb(TNihz>=!a0c2r-v-S8?mR|LkIo?0DZ1ja= z9mHloZhXSZ07Vyn8IBI%N)fL(lQ2a_3incqfX+kid;V0HLFC%Sk2X{{BSA!`CQ;6wd)%ym-Uw0qg42t2>nZs|79;ai8 z4Mr^n=VHbyZl9~Co$X1v9Wtg#o%z_c)jOD&nDpfa+XP#-+pLWj=?ME>3l|^h@6{AP zb6N&u);v#-3z$^2fz)zFT-ARZBWb*Q;qOb6|4$675D-8S*BHj2;eU%_Am}IqH3p$5 z1FU|$isQBmT$I&VXMau;8jA%&CT;LV{DAXji;SVL2eK-cYIm#wz`m=xsL1-jZDL9leG_$Dp6FrAc)B32RVkM@?oYF5{aYMk{U*C;uV#f`Tvdo> z@4@wk8ntkZnx9n{u4mIFUf|vxx~MOxQ3z#_dv6+NV~YYob8>Zh0x_02hTpHY`B9W4 zaO@prEMYd!tVb*E`|#;U>XMms<-+BE+9*>{>A2$-SKrBJDRT`tRs_Wzsq8FYv+sz% z?na}L@{8z89~W5VAM- zr81mEh`?f#TW7TLRbTE-cQh|5fO&*Sh9oIECU&MouMFb&7z{je1xXe4m}TX>|4Ld32X=h3;sy=>KF z3~uAbmhQ~<6F5C8Cg8f9)_SdkF3`>?qp(OcxOSD%%kpHXNs;bP6;|pL&|HuErEZ~C z%7zha`6&u|rMLYOopJOpHi04o;9J-51No)h9}&u5_@3R9i09II$_=rbLsLT_g{dz6 zAy)pm|H@1PAKHkZB59yGa)*7tQZ&9PzA{E^AWWKkL-N$p=z!Eug+#8@pHHvR4m2`M zk(-*mMqhO=843clFxN8a373uUS(pelTB(pmDz(zkJ}rN2=I-YXZi8tLFtg!0+$Id> zoe?&4DcH`{@Qca~Cl{Ad7_0hCn_&z-4#p(dCI&)0Lwl2yW+{rPBaSX_OlVE0tD;>MXB&LL z9KV3Rt<_aDky12cLHoJlQQ?0A!n-DPh2AYl(l2^uTi>jqdtXRipzWixX_W*Kr25J9 z36|VpaWDjwezXd;Mw=9fqyiTbBF{kRnRrW99{ROsSoF%b)`T$){oAUo$gc?p&56( zusd1u+y9TQuMCU2>-HXoZUpHXkPwg%m5>&d4yC0A5K&3#W&i~QC8eZ9M39#5K~YKR zZlt@r-aYs8+~>$}-fvv2S-bvg$Ex3Q!WWF&dg*vD+snfUiQw7V-0@-IrH=93G`&OW zLi)Hpo{>uv!LB+YBA>{HKb;pWoNpYMt{8Lv`Cz36Yku@NxbVtWoe;lzfx1lN@R@l* z3XcolC;W^?c1zg7I2Yz`-$3E)_>6ZuhyaG(>hFb`!+l{5ijl2pRhDjQGLE=>* zj>r>vA&``rR%BRhcWF}|F}5ERzpW8WAAkW&)_TMOz}}CM-`ji2P+|Yk;9&D`)gSYW z2`@a5{@m?|U?jY2(hc72caGP^i;0qfjE64iA{%>>4n|_$bzB%bPt{K%qWG};nHuiI~5Z5%$F z5dy&7Db*~-c^y&!V{&e(8_C=p!=DW${t|J=@FZ4vLun91wKlR2aM_MkXFkl$vhjHp zY@BI!Br#iHuCd-e(UOM$@T>m!m%x3PoP#5(0Fj1rY?k=3OY){3#>$M(+O}PDk!}=i z{Q`vm!)E;pr=7D&f85#8|3HuY&-2Tfk1YB($d2OPvECm5(kUNzm1R12-=!D9?0cFh z>GUW=Ge=WloE7Oc?94E5mQO-(^Jxzm%7HyhvH}~Y3cs!Lyjs(LZBjPij!jy79M={1 z-IZ68n1>&q?__0amK0Xft-g%*$*lv9%}YG0*G{0w)GGmIbrUiG*@iF6XD3?HXg5(b zT-@B=akUQ{1(dx9F6T_0XPyCa2vlZZx~ z?5)pJtEQQ$sWc>|j1lDOYkN5az@|NCXz08HQxy9Kk$$&1y!y@jgQVG_V{5{eT=-jn zB7mWsB1lYlcC2AM89O{RW4RJQ$`nl5q66Rhr4lE0M7q5&MktsWqsSKCQKaM|Uqj!Q zS1-kL_G|w-(iEO@y1u>MQ#PQMBtm;7fT+HC#>ZqShIilL)RSmg45CEMAHxlk@ncG= zTDbk#u3B-C=77~;E9JJyR_U}#@T}#%)>-}GElVe{;j-u1NIG?HQ2-^Rs$XH6 z&UfWmhT37eO43bQFZb>5o9QhDPj=4Mm*QT~2s<-)R@bm6Bu|TaEgborj+4P&_vabb z_q^5sS)BI`YTUIV?GC!wy%NopViv8pl!w?>^sC&7`*=`K+IW|R82~H<<2QO&c4iC= zTp9lcd;j-Jzl-aexq=DquqE3fxmf*P0M+G7AxJ~~F*=M%!Vd)lkQMo}zn?loHTiq6 zd5hKrJdXrAQthVUtjEDsW;X16Ev^iLN`XBiVIo@3g>3fva;hc1#Ja?WC@>kt0dDXy zLG{?+PpYD;-w%AUd@HkLiGN6pjGD(LGi8?oGrA5oaSXgOCB#vT{X?ot)?kvDi{ns) zY#{H>Sgn&%M$^iHPQJm%im&9wi4!6aJ$7vFA^y6a2eQA>f31q}1v9uPtEl z#(G2p(s_rDuGcoG38~g~i&wAut}XN7TKL#(t0dO6KEZQuL&8m7d;pW#P|T&V<3YHb zwqx~QAgljMGa1zPYCFgReU}0iLO{Kt$WW$`R7{+ue0}j&NGLPG+}{HU5`sP$zXV2q z%20rPxx+Zsb#|LJQPd$o=k&nsFDt+YX~)Y2zLM7=a7<2LmA?u9m=orC;e;Tpt&XY< zI{e=|=6`?FsaMBw_zQwiNyHKIJEv-a-+atRSZ}|aa(6cilLN zFx{*3f1P~3YD+|aVGS;W(F*mVM!V=(aQ(t)y|ApZIl*ZA4&as-Mq7zDpescKDfmk9 zeHMM3(%WPOB}M`exTVF*mGf^DVC9*I!5zHdkh)n_eEReH4rphWAMPOmh`Vk0`WK0O zaQ_txNF9zELBd5MFFYg{5UJV;hA$GY!K17JkwcA;{(>=gmj|A}3y4DPg!&hW-0-xO zCy=`PYD5VaiCpmPTtL)rCmOy;yb3R}2E-?7#Pk=ez`LCADqcWzZYS2iNaTRmub4yX z0@O$nE)v<{ExCXg(@rvck;n$`wg$w{YNYfR%*VS|;KRItSlUjif04)vpIUhgsr#iy zmT-~C0$<7n#J+a2;fq8Ve9IaTXVorUj7Tfxhad44V?h!POo3OucUQla3f)BjVhUC2 zNQTVp?Hup^5@(NKk$X_iu4IX;@`U1|b*+>gPMUjNv>`OCVb5lw>$QZd-Bh(ialG|E zDYfTpaRZSE!{VRYhl5wdD_n@j#*)`dLO6;d(8XLDL!Z1LtW7YH#8066W3ZobacE`%nH<<%Zqe3Ofw%8ae&Gw%LO}Dg6DQOWFXA9 zNgzJ_wxvwn!rQPn$ryX5g=}Ku2qL@3@1Mja9LxC5b1nGEpW>M?9!}&^GnE~uSobm`N>qn`(WlrI|9=ioPKO)bqk8}_IKxc#sepLFs zYAl6`X>vmRsEm@d&%-VnGtFmeyzduzkSK?0{0$4gO^9Y`C;} z0{N_E_MhMduVc6K1=p; z*GqdsTtl>UO%KoiQh>?J9WoO>3mO*jCwN=5zXF$Tym8sWa_I*qsJV&$>r?CVooTS6 zXEbYl)Q|6<-L1zn^gc5+_=t;>~AJO~ZT{Oi%rMrawPJGFm*p_~BM;PItKhjU~H9 zGwabk+XM^XOq2<1Lw*238Bd3*MI$+so{yR9-4+#1)lM3k@2sM(bX*GNM;;1FBhm`9 zG=`$CK44X%)%&t%h}m;6YY8mMEuYP~)eB&cifvxkVjg9i33abTZaOXXmP|)Pdme12 zy0yg2XAJczV?SmKQ|_Xw7hnq^=>mEuO;VMU%-X5f#tG?Lr?VZ^v-qaRcjDVyK3MMA z%#T%Z)_ytS1>pgBxVX5QXN9*Fqq))?I204*%Vw5rk)6YWQPn$iJ#rJZ?DF9dVmj}P zu)z{J7f_S4%PS&;l=!gcKVUeyBUjzeqiq9v;DN1Vd-YV+}vZTGQ{bH;$J_B#t{z7-GIJ(h${r9uN9D@?U zW}O@m)+{&Jdp=kobX@KNfNB#*%ycqsma3FQ3Q4zb)#e;f z;t(_YJ$_DhYVGgdnAD%oiwZKa{_Ckcwr+YMiTKT@+l=isloBnouYo|1jXysL6Gfcw7;Euq7Tc*0`m01i?xd{N*a7^%B-@tHyz{*! zxE!G=AIf;Nvt9;A^L!s2Wi-1VdcTMR)C@A_+1c<0cFssPm5*C9O$lI1=0Abf-kGPR zUu@GyUiA5QUFEH%?bD9dt}KkNM4xBkl7^gqAS6!;%R{yY|S=-h5d*>(qV@Sx^b ztn1-27n?D#gM-t^w8pkGg|O48q#k%&dTX;n1!p81q8ijX(#<%FpASLLG9~2&K%mK* zlQ(To?Ab@Cr`Bn$#L)+p5bgQ#Z2r?ng+!qIXD7!Qqe$k~Smg^PThc`_XTzNa2mw&__~*M5%`dz%H>9F<+hD=u_6QdLsqcKQi4zTlXZ zy~^}%m1m3$t#VoW zu19Q&%shU@X4V~`BH}!Kb!5Ey+c=N*pT1oEaQ)MzES{;zZw>uARO{QDFSEHh`6Wh5 zo#;=+=7pd3iOGsYiBU~EAA_)I{UN7`aUZ9JX07Zyi!sC%-)(4cY(}fonFGU%H8|B| za87_tzF?Z?QO?!snrapdKVXMm+%{K=o&4sHD<2{F>au_S`=i6miY&EN8uf&7#|83I ztFez;Ax$mR{Oq($$xK7@v%eESoRD5}wcAb_BRK<|use}ajr*&RxpuSd^#_$+_kyeG zb0YTS-q1-xGt`oPy`E~=QNm7Nb$r&{g74ThlLnX5Lh5KE-idvuWG1d!#)rdH~{&7ks~ptA>lI+58BhHns?(m&)^| zMvUPF#uH7OHM~x<9IEmNW5R0*sP>rn(K%HZT>RXQyS*_*)C-5Y%@|>zz%1ncvi30P zhK{NiVQm{t@L-MD-Zo5B_Sc)3O@*ifiH~-NJzPpEKsA0zG&CdXg-_EM3cQE&g2H*@ z;h^S);yc}bowcgNr=6A2AQy^iWQ2TC9B6&@p^RdVgWy__VQRVhusDdsex4{bai%F& zr=NW#eCshEpDzVI+m8@t=1o2fhstXb;^OP~v2`CCa#U2w#()hPjs0Kb&;J^OV0W;V z^B>|sSQiqTdN;3Mxj%WZHFp?9Tzf{65_5QY79$f?iV0^Usmi6ZJxxiQ_P9O%mYlYf zNV-Y_l?^_{qVKavlzUl=;ycl^95(8@1CcZC!7SYQH&;M58Ft1 ze1S|PY54q;OoU*-M2kbrs%TW`;Pm9^kait7f954`+V+xDa%*=iF~4uBvjg?}8soU4 z+PMACu(zn@cfwnr`xweuh`G<>#qd3{iq}4?A+Trm0J#9$-th;nM~%=tzC3r@kMWax zeV$D`VYsgDuFc$nAmTL9{qEC$Z2_^fdNJ4ZwzI^y_+79X0}Q?;?=>*b_f_zms$&o< z-WXE|_1M|ek{@k~&z_v#prE;JhsOpnGgP-ph^>=e z?D_H__2E4RDQBV+k39`v->4WXfP$bdgU`IZ*oSF&+mS$kcu}|`QjLjGx6GN*-Ek#! z{MTt#_sqS(1Ieb0ey<${0cG2_>&a66C&mQvS08+Yh_cbJxG*(VR4}&c+{d~4kaL}H_AJ)bmMws)^|Fo=I%5`^{7KK~e>x%QYmdc$g%jKz^D3!5yUk z1n`Q86r341DlI1(CbArTN<4_!HDwQ85(*0R>`gjwjg;eX<3q}Cd>kk-97D+ccG~FuSYVmMlTYuZEmx_Q-;tS5L?`pw4bsz}C zy4W;-_*o6_LdTaY(?6Xezlrb1?u4t_Q;rD`iTfNfP@mw=&K9mRt-7vH)G{G-P6{hk zCA|)djbiqTvAh$G#W>pIf*yMw2+p%`RuTWi2;PCQ*QpL zzPZo^AF-Y4w4HzuF$moyMUXOzW4VDxT+WG;b@B6lI$1elxhW2*kNWMaLDa%bV29^^ z){g|RZYljr2kx~SQ5+L{U!p)t3Gi1fY?s|Y@+_l3)j$7!|7ZAcXC0&+Wa@q)@3N53 z$K8n3fl`BtcLzhYDVmaQER(|A#_7$`5nK*WPHw%8wB7jrDtvC$VdnR%)GL8$dLgqw z^ROUdzCpg3OA?u(Sn~YoSfMC~^826^&G9Pdwa>^?wbkb$FIv~UaOJ`nI@ieUoSh!v z_;==+;hrQS-;s(-cpcvzT<)Dq(GTJ{#8`Z27-z69?By*4h~VjT zi^~2XQRUn)D(12=G3I4ZW4}|wd*CweU89C`mRhl5O#QIP^FZo>1AHx6!rd-U_}Ic; z>EOi~^;T2M5=d9-g*cKruMOooG{TQT{69@chE$I6rwm})oc*m|;I$-Fg45VP)ucmA z7cj2FNJ1-s2h=vA{(-#4#9KE&Fvog(F!H)n*W)DPCposzZmH8r)_G17;Ap5+BG`im(`8=h7G&!2)?=dwTkMsKkI(~ zCQgawdIb`#WNWWaj0`$d<^j#i^dNG^&e6HYm^O~b)~3;rY17G*d_F=sme1(>M{GiK zt-T`kh&%F=J}wB=;`a)}v%e2eAdUf8mwxb?e0*7%FMCM(&`ZiZIwAY~8T}4#U_k~L zQomE|Z8vGWVZK3v3cQ_a2pb=c+*#@~`!QjH_uKlcFZy@#b&9u(!at5HwsN9)mw-pV z`)IiMX}YacEYI(54i%XrZR^fjC;jcUQR>YSM|-i8_O}TWpzhubG**wkOL{%^u|HE%??rwJ``B^1C__NgUOQ7R)x&@Fh z5V_qq-fdwE!)h$rVH_@&1JSH3{KTHy^Ox=u(FSO%=+}92)^TEQF2%0%CZ2J+e}R0P zIK|XTp4_(_v>*KpU`<)Imj@b;6ac`e(Pf^PlbP83l;#XiV7n#+uGq#=qS*$*Px)zb zZ|+oSTWg+Grn*Iarb#QE$vy58a`XJNM#o*(2EARnf*{Eqo*Wr0DjXKf)d#s# zKFUqS{)HkfGMQ2|SIQ(0Jii2ldzH)ZP=apTrm-+_6G!6hU>^%gtI*=qWrgY#2OOXA@#_mmu^q542lmLqeq z%r90I_J@53po-<<+`$ZYP4$ZL>YZ@voeJcOz@r4=OrV&9UG!poLI&wM*Cyi$vR(RZ zjbx!Pd+{Z+#uv6@<+LzYlN#gA@fr_m05aQAcBH>{BOmF#qlkQ??uRp5JQ1^5i}4~# zTG8&H{J*Gn|Fz`?X<}4K&|pHGJr)Pn>!7jxhCK?_V#RVH+PoY0(t|+?8{uu2wU5SK zWv-K~5+YJge_pn69z80x!FJn|X~;_wu7A@ zI^&Dgmt*9AZ;Sd*Q&a;g=pKYOq~mULh9%XNKQQ}h-u=YTG=c!D(RwqCS@I6ZOj6Hv zzg2#K)JGXi3KrLV93|14uf76rzy}8AjV7~hOoGPTBg@l0sqM9HHK`(g<2BAD4GxuG zld^%ZvIQl4HwO60kQ2t{&eAA#6vuI>>?uF}JI{ZiCH~!gSX2db)?mN~%U@Ui{olW4 z8M1h&v)461Jly`eae?Rt-SuJv#G~V{I~Rz0P-kxjKs?4OJh(s}iHbJBmgv7a3aWkQ1DPFQ)no zvwP+%-m~hNK5h%Aj~q~mRm+N*RRj?Bc$t)B7hMeX0deLAvy=tf53(}QhRZ1s>H zv+~xxWnJ5RRi$1V{6F8DnjRQC34QV9|GuBGqvllLQ?J}otU$|`e4Qo@xA@*K$1mS? zdDLgS{VGQf>@A2L7#|AA^=(&Ld-SWw^(jAN=c?1J@Wik2nYFEfXP!-yKwjYgwt%T7 z>JAASRS(3Z=tO;Y(M&NE&A=d``4J#V9U2;xy?A{s#{S{hVNp1&c3d=svW1p}BdYB= z4bJV-oQzyky-}GDF81fP(-BqBrCc54mKe zyD0)glYWAlq?5B$q%(@tzmB<@%kMOGXj(Ms8yL#OI=7e+#QYG*Nfh;=1SK7NbXtqd zNoXJfnqI_rl4Om`_M3#Lp&xm+B@DX_`{wk+u z*nq;~nrwoNS%=S$H)R0SI(L6u=;njD><8Jtt~-Zs+gPM{qFX3QHyM_Q692X;*V$m3 z-mh0NN?t8@o;4m3*<)rJucEu*Zr$6G6W=wFKsS@~5aB_}ggbB=_x8<##y4@A<2*O1 zVs-zrm?XJBOUxdoL(DwaZ8zSBeKCr?MO1Hpi$>c=nPVy`dqcZwCo3#0->A9u9=7ab z+L7tyX}qZ0Mib(yAiBPGQ}TJi(Rk;L7~jVeg@ueQy;@W(@AHh1X*gfgI?H#Yd!CIj z0x(Xw99_Qoj*qJzN0u}=(+7JWNWwdKz15pAy4dz7GV=;?<%vwq>iaNnYuTjs^PCpl zeN7HiYg2Z&9A2$=Kln4l!ys-?S6ge_?mIRqMYzaa1(Hg4nQy-aAYF%Z1nw;UJ0Esk z-Q7&ukqzscy@CE-a;k|9pnC1K-o}Gy=`eQR^P7$jdi@jg=jxQ+yQ}2Jta1_D@)0a* zL<^1KQUbkpxrk!H3lW&2 z%f*#1W>rhpTi5g=U()mU>W!zHLwmdn94#m&M9hddQ7_)obUkToGJpJ$lH!QKMi9LAw)egi+QloI{v_3<` z{Wy_efQCk_yhhUKWQY=k82xzsD_>%}VxZ&+x6n0^NPs!Ss1q<3`fj+bXfuF`rL;#L*4Z0C=^#yT}3~p8-@^$Li(w4hGwJ z^7{<^a|AW6l+b>cpzE!8qMIkRIPY&}<}F3&*MsvXI48c_v^g#hq+C#qj7q#Xn>1^Q zUIqw;OJ)*oyLT9wZ-*7@B|8ZdArV12?MXePGcA`<(0irX*?*{eH`vDkFs5Tgc-!<> zKY&XnS(QS$N8hS6n2+QRY!CMF!zE3DZ-x2;&_A5V9sDwZ@19GqtgQH>O6PW;eZ{I6 z;#KvwQIARa=-32xU7zQ2UKS;)_$j5;{As>_$AV2^nj_HF;K&i>e~}9J&zd_q@P!vdgJeuN;S(f4ry9Rjnlw>ZA|^#P;zY_ z>FqredHpB55NE9Vg-)oNmJPCs(&jK_3LGSpi*Lok;c}^Jg;#WT-*AVGk6&)0u(TDO z3e@VT=Z|*y`x!ZqDE;PH$FP$B_0KKdjJY~XA?iqx)jisl?X4s4TQ9Bn{F^zfab%PA zV=+1#Ppu1{H093^e5_^Cjkm0D+=-z>jKB1Z)^C3N`ghaQQ#0P0+84t}_h-pXy}cOq z786G?m>oG&0-z9#!P?RiV#k6azljxyGdlPKi#%+Ts@+v${+aT$H}!_Y`w?g zxVlAeRJ%=I?lOOi$v!9D$F|Q2>sD0uSW_g&kGJ}J8@(<`y;{e{EY|y_3jE?e8{Cx|rJP~3Q$L)4Qm0Ty_qu!rV8CYm-bjZBS-O%f zr;*PMSC7M`1KF>41Y=QlWhkX;RFNjW!S9a!pw<5%v%4IZNy5#8r?!pk2gn}SbPJbL z{$%Vxb)q(Rm}Sr9q&l^*Q_u!Lf&-cSIleIj&3A0+SeLlhtIDU8WkX)~oSc+Jo2O0cgS2yYNY*J6|ho;&E9Oh>`-}Fnvve4^(QoUu|@^&+fbgD+*jwRWU^^b z;g)pEGWD~$THSI_|JuW)>3PK3lJ>7Z@%|C~8RO9=T%NS?Vx6P<;X#WGs z4&BZ-Xc8W02^T6Em%iz~MqfVonb2H~FWr~^CL`8>F*dhD<&O!UiT(PKZb*xS(<|dV=awXDUhm9T z{aK@tYKN>!q8t-E*+bH$=8-RTxOMH8+AtdpNoJI&@7LRM>*Lftd&nMrO-8l*R5ulz zN-7z#Hj9c#@z9Bd1#CATUsWPg=d($QIHa$sZc0q%qtutDpK;t)rGl2%*lPN87E*K% zzuFz#PipAx#U?NA00|DS!v_IEgcDMs^n)Lz63e$w;)`1hN{ng`Ewy>C5T3MQ)OdeAN7VSUeajsoi6Cx6K`C-hWrWq@^HPS#Zz~TMSA7V} zt#EHuc(~3#1_+}@`1Q&-j++KGm!n~?u2FC*!a&;KJAGuJ^w>R^hSHfBMb~H5yuH9D zRKluO5}7fA!ZxE(KjqZOuSO_N(=$v*K=oqto0szZxGZB&gJmS%%lbj=6Ka-2R;1*k zclK0XlmF^(@37Sqy|lR>=$YnMb~Xj|MJ{$!h5|6a$y0w$Q1`CHdt)Nw-qwQe@nA^* z`a~ziQVvGn&(k>)*%#YCu)TO{s;NyEa#FAAWZ5A+Sw?{~{?(~?6CvIB-ov`^zMWLh zF8+fj0hgP|WtpPF+f_R6RIJaw#SKlW-cS8A^0$`fdzB(c0e6?)?bj!!>{{;=Gtz2X z_ig!P2krQrQ`Ms>+s0ma_9ub-TGs=DG%eT%rL*y!=%H3x4OtwOhpFNowQj>0dcEyl z3FE>AUVA>bdAXn1Yw3knInDWm4^LvMY0T~$uEdD5B#o6<=@;S%hl9Gg-xS9Tyj>nL zNW3tbi^(@Oxamb!o2$pvp!sOKcfvr9vCBOG)HC9t;f8{$l=fSo!Bq)h7$&uOyq0nv!on+ z*u3%fZwrwSj4bUv88GrlO4i~%SB!&6n*Jo%cXFJ{;QQ5lYqZy41zb7=OEce`r z;d^-1N41e~eA*DZuiNa*qWeU=#%ZjFD{_A3=!reg@no9Cj*Xi_iV^;l@~Z38&C%F> zHW#XsRmc`h-;dj#`c-vxo>%*eMaAMO$vKc^yT;Je-JL(W03H1ebAdM|(f#(J4QNnH zS=yWxyE69W2e-_~@Aku%8ymFU=`TfA4)*H5;mYAgkq{+Gy3mfFju7g*Fn3`tt&2A6HPQJGZp2R~&3GS7TQB-tdo)#c>6csXb941HMXuJA z5$2WmUfFp#)OSnx6+gOUFz?ja^q-oATOfb;rigew7`Il>KAe+J$LTuD8U2D=I(w3; z*Bou^_SyKbcXrMe)^4Gcl=@|=ZnC@F{Y2JO(& zx`~b`ot5ngKif~2)COShk9ESkdn$MUfYmFYJf>O>ud(dJ@Mz&p1)f0N61>7+9aBs- zgrwQd#rmH8h)C)<%*fyQ;MQB2RPHuc+cq<`lop$p$CvpqmCgQ13xZ0jN4vpeZ^p}o zS-i__#(?sHFA43wl3!S*J)bp~;YY-&VqJQS+?*HY1%a6HkC*|M7sdL|u0$Rq=p)U#~=G z({}J6g#c2GN{MxI`>@;?$(4ILB(F#MJhBQta>9J?*~o`1A%zI>uk6{?)i0WYe~0H+ zy~}@8?KCG-5GJlmV1KSa&;xd|`cTVYlM~|7s?Co#0WMn7+-i;7e%?K)n$zn=(U#5= z1Fs3g=bC&njftml$^ymJ_}b6LtDQ(CZ~)4}387Po^RE%DAj+0|hA(!%4KxvAE|dNa zFz}VIn=a;ih-{-q=`+V2A1cR47L;qhuQv$!Z>)D}oKOYi_&WJ9MF zt9sbO2##(2$43bT!(+`#o*F1QV~Z-lO;-PuxEt3DQNnhbb@-dNHi2`YW=f*yCU=1V z&`ydE4lFNog)7Z1_EXUHr;Ext~5OV+VPi39o^mbBjlj8&L1g? zd|A2nEEuU{`1C}?jZ=>?WaB%&=+i_;>tQm&&$|uPO()^JO1A;%F+~woj<=7@nS@UM zsEjqG-TTjn0zh8`jthERl9X>9FC5;5_r0u~zmlKE}Ciqdz5pVh^(0>VFA-&TtU~kWS zO$aMfZ8>aEc884G6r6HbTz`(>wtbSa+o0&Uyu-72JfJZy_*U9ydhsh;Q-8ODo1U=R zreB2(CdbFQiKZ+s+t#Lm!YLSA&G`C4%uPL7!6!oA3lc`eFddWGW1j+>EhB{hqFVMd zX2P?KGII_WqBkj}cl(Q47WHwbX9CA>F1%_x;egLp`@qTuU6!OSmC!l$8>e%co4*&@ zvpvyr>p~9tz!1B`s~# z{C?a;L&gugGE}9xCGlv!X)ANQn1A|3SVc(Rogu!mjXmb;vSR$|)=R>kbc?4w0C$(S zdnPt_$dvDNEFH`CQ0Dx&L_xiA00U?(ak-!RBUD z$}nm4sQb{_IG5pUKUc_hX=`XoZDw~RY4S^Vl_U84fau||^QssIa{EB5Q1|oO;oYU` z&0C?fKUS*Fx}SBmn{o2bPlLDMLh%EN*(I@CjvwEj2zhZ0?a*XPVHTYky!tJ6Jf@fG zynx)yd^y4nJJB!jtU=2{6yheEdjAuG=;eylpHbnUcnmB4`5f^ynq4_tkmk1iA91Q{ z`e6@{?G5ilc?!JRO|YDtdVUV#V^#_GHViV{rJuH55|kb*K7ojX)Mv@~CWnK_TJt%X z!D8iPqp^X~BQo!lugb*Su~Xrd+`M98S-bMywDX|WXIGmSuG&1telNWXTa%!K+o1t2 zEl1mvBV@V9S*kfQN8Zh?%?s49T)PotnorlESc%0utt(g;ZN0S6dcYHhbW9?E z9^)TSy>y_?Uzk8RF>M_lDD^uHf8vXGUXcp!p39rqh?<+dh7lu3W?1!%-#eietMHwE z7qf)-=cRJTohOKDP?`Ld`0B<|&%N+(mD~52p6QmkG5=CNq#*wRYVNw8ZbtL@Y_`ro zX8eZ=Z1P7g!IR_`rN9=?Q))|cOA%Qc@VJX>$-%WmtiOl5zl(p+hqZ7thRNA_&u;DX zieVVmo5yE`;H`iGJ-CKNVrp1zuQ3-br_xH0RHjOW}K0T9Z5UrN&GJX>Vt4 zUEle7?Qi{t)c}UWgusAgN7b5*UvgX#{>II|sXepm|7$0U^;y@;@a%kh`tsOHcV;)< ziHNIYLcY4-KGUgU-JEHIR#@I)N&-iq;{dlA*Wcs38!4?UP6WnjVTd!HFJL=Zi-k z6wxaPfnUiO9UjI7wxnMR4zWAKXV#zetZ=X;ufmLNT{m0V8E!k{sHN1LE#XM%Ub^wO z^9IJy)WL41e{ZTUx3WZ)TR(oE}KjlpcvC{;Y&~?+9F(lVD{n6(p?faCUj6&=w zjlj0+_$B*6DGu_2_P>1+|KxPlW0|_UfB`L}Kz7lfr=?rTf;MU%Ltwvru<-tMQT`j^ z$bnZ7Mg&>Ef%bn;d(9XjF)aq!r$sgYH`RBZzmCZd1LBQ$?%yb%=n!FnzakwvwCJ+j1`eo$ zjh6iT4_Y2P>>88^qI(rpI`nVh1Z$##IC0~tgVgC0=KXEYM`agEZWWv}NBM9zEp@lJ zb3UVgmbQQyqx7acMijsdq&udrPs+~NSfBj~yKz0@Zw>CB4&eMyD~k>&hmO;Zv2%_0 zDNSwR_w(7NC_#lIp;iYTSjwTQZR>VE#LUcVdyh@d2L_^Kxy}e{pluI-9)c)~Z8+M! zk#w;;DX7(g2ez_NGLwL4MYS-d%Xv{ijcNHFV#O1QXwt`q7=XmG$6dyF>!*n$vgl%S zxxgBul#d3ZdnvXZPJ?4GRgN9?whDdS5ztb;x?OBec;wt!zOl%g$Ipts@hU7%Y})^) z_~hUH*EwSk6vDB$z0UZV#_M~#k2d}+_``2F{HL_!xnF8y59Cc?E5~nn1t_~IvU-Jr zuOVW-UQvN6_V||=q82X!YSoL2rQFUu{&TBguc!Cy2!NUV!5pjrfaK`E4S`y92VyDj z<)t*7Bv7wU^s!T7OeNm zxWh^xkxS?cgq%g%lnQM>UM?`lDCK1X+vDZk*KX(w`p+Vf;e(C!--1McpJEvLl<=xM z9AJMmCdP%JPtQsNkxP(@>hz_l(1lL#VU%)xLUpPcd~l)DU95qRWQ3qoQ||v1*!)`> z^eNyTclc19=Ej{zRszdwrG&`Ee+4>CtuxiW&?!4cDf>-Sr}snL(6a;UoUsNX)loC$ z=6iy6{ei^7OK`C}oS@VB>bMIZ(n=PQi2~xyh5<{K9FYmoIM_*pp zB9`m40Dhcj^~mJZ42H4otpnFrU&yJ>!)Kwm?#4jECZ&idh#l&SJOi73#@7weU!;4)(noNi>wrIl}YXo zn2@%-7vXG9LLdv7Ixo6N5WSTT(z@8Xe4g0Kg8S`}$ZOzP^`i(^xW3H!{{s6=fGE8x zLU1`(-(BB!^`8r~`PR@NmY8kfgf6<$z6E#%%C3ZQs8ne~!;`(89pbf0y^B{6%nEvq zauxbnm_Ox;ksliPsvikT?RY+)vIU9{=;*1@H^h zU*g3XOtDEHjj)=LCR8!a za}P?>LdX#l7c>Bac8eaAq`ZWXzceR6t(&cMRV5){lmxB?h^ z%C|Dn8M7cqjQ3ECm&8ex&={W(6!bp;7c+oy+bTzA{0KQ>Fh?=cN{}j}G0x%_G(13k z_@2S7Ms&vakR$q6C`J}ZQnbAcdxBq3_5j@H(wd;)F*;);n2p_s^_73$LoXJ2C zpO=HHWGC1I^_kQ_02kXa^wBmltdg+6M+m$T5X6aCLTFIJAUYMkW+j8bfar@5qQlGl zV^bJ>3Eq)HFX#r)afUl}5E4bi7)p@3ra{WKysy@2TK@-%4mHMZ{e3J)2+Za?DDqq* z@TY>kDB{UiTC|0^N+y9dK&XF7KvYEZipuP9x!2BRrm+fBo)uHE3le=BuYgqO3S98R z=?x-R5BDMEv;i{o(;$cmy8LPdFRogAbYuTig-tDiIJAwgv|F(BCHgj6HbktHv0$8# zAT0K5>!#=N%04}_&U|Kd0rYsF45DwV1m)--*a#PrGa0G2yG&|hRFGc!l^1dVyhw?H2kYU|U1HfA^Hw*32zFns=Ogl#x#YR*gbei<`0~1|@*APR!(TTuZQAmvu6&5SzSuH-XlnZilJe~;;quqEMKb`P5B zqZ1<`!=^eYV()^f89Ff(qHk)9BK9AcTA~w!A;TsXDB>W#nFBg8Kzh3Dy8scJ>U4mW z-i`V6rXMWUPurj+|5l3pdv?HH+~h#JAIq&rhAq|PyZ!9p{EP)V0nGaSyND6;BMAmf z$gaog0J?-e;2?{~b+)ss<2B*1wc z4!EMp_XAe4FSu{%IfWRAK#{0^;NikCs`h-P@3J~sml{>>a%O@k1$h&MZVnc*@oI!q z-Q?I2-1i=~oR+^ZOPk=V2$xX8QF@C+pl7DimKZm%7mJ)CIjrgq(#y=6bs z7zFBLH`!Dr0n7KWMneGlyMWbKUNQ#+tA?gjLTveMKdB`^)0L?1?B>v3(l=ZwvuOtP za=FLvEe{YN=Z8)Ko%{l0G`^)5WN&5Xsb?dbCE} zsiH+l?MyMHG=ro=Rn^wkRA*v~YpGZ+O2<}vEJGqhh%IuD(cT$xpXdAIobUb4`+ny= z+xIT#{oS57Hz4H2EPd+=SDI)}jEzsFHJp{yFmSmi_bPmYEy-GfQoL)z<(-}3NSl7H z2#7x`biZ`h?-k_iAtM`2MiaB5Kg%lPL#QR_<4j_bGbu-)Nz z&!pR+bS!jr2fn4S=0qSiwUTM3ELi3#+8|MRY(3dMw5V+Htf8(h0mNHl z9u4N&-a9w6>haXfcGXGec$Y0F5Ug-`h-!6$viF6H$&kj@lczYsf-|a^qs7)sRdgFC zZ{AG4)S3>JN_S&EFz9Uqbvsw^fzD+uF1!%5u6Rb#*)%=;bz~KCy!&w77Cr4JeBEvL z4vF99EV!Ch7vh!z@HY9m?d+7rbhL-d6Jmhs<@Br&hAr?!$TP0bH|j)4K#Ml(8{R(fr<8eD z#e%8T`Vl{67<(J&vRnYvwe4^eQ6ugMt)}!5yR_bapP`SXU^2AVUTT$q@njA4@(;Z? zCqqI6U0eVezI6<&jdas5UG76UzApb}Po%IJ3O|tBIAv;$c(b*+v37;WY?Z(LP*kh6 zHd-q<-Dl!A%^Vs!=$t~UFDSMaM$1ZpcX3?BjCt|n=yFu{u$ddO8kL5N`7Wr zR{b-fHj|s6#Ru!YpQ(e6y%d#hPhVzE0$}L9KJvOK(RF5tH)RT@Xv0BV@t7>F-t1*2 zZ=oh031UE>&q1rR9(&i?jZI9=uW?&U>~c{d(jXpuW?rx@SO)V=VT!zXP?QNl=iou} zfY?`j*I(m5ZlV|XMHr&5GqgGBqC2FAvtsHEyxb4y?^I~-tp@;y+w2VkWvnreW zMVT<@d9hJ$00V=5!|Kj+W$$xj#L$2nNjhM}4O8-KKw#kai8?h`E&l#d+hK~RhF!T} zrSt-XShvMn+qkDfW(2HZ!9Ndz*C(CpjQ<8O!7U z=IBY?A9Wa%i7D{`(F@_xfL?`+d6wKZp*mE_D>HS_*QWNyk@E}q*yHfuC;szLMb}MJ zR_x|~jImPw>>GC$WyQCXdh#iV6zL@ODrY37|71JWJ|ZbWdrL&iwVm}lDAfRLq0B_0 ztaF3E$PP*P^~4YlB4Ff9AUF4f-#c%`tRH6+1FzejOrq7QM_%_FY2CI4S}}()QGf&l z_L(B$&ke4cF%9x;o<7`?*-;WKGEBbuyH!Wnz$h=0V5U4m*oZW@N-olSke0v<6Q|1ZAtoEgxyYv2d7#Srk*Ov!a_I4TVJ+EaYjZ&-xvGJR|-LPqWOYe9H zqrV~HlgM3lv^$Lv)nouTB2H{V2O#k`E&@o^e;DrN)T55XoqYJNJ4br2CNRWzkhcmB z8!*PT<-6hWn&MO(q^dAtxSD-eDIdZ(Td`mC7i%foBqmQZY7E>M{rcdot_}8r^yA#pn z8wxVO<`H}@ZQ7CHhqfDOYFoznAfR9DYbq_6in7U7frr=jns#T0&DUq{R1k3fb&#%< z`$bcgd^9?(}g7002ZH|2R)7xFNN(jDrF|l5y1B Tk^Wa;5AfBg^Vl*+;=TU@jh%TK literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index ed0ca5d2..25073ca1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -20,6 +20,7 @@ If you're new to this project, we recommend starting with the [Usage Guide](usag ## Quick Links - **[Installation & Setup](usage_guide.md#getting-started)** - Get started quickly with installation instructions +- **[Agentic Detection Engineering](agentic_detection_engineering.md)** - Automate detection engineering with TDO extraction, synthetic events, and rule coverage evaluations - **[Configuration Reference](usage_guide.md#mcp-server-configuration-reference)** - Configure the MCP servers for your environment - **[Usage Examples](usage_guide.md#usage-examples)** - See examples of how to interact with the MCP servers - **[Development Guide](development_guide.md)** - Learn how to contribute to or extend the project diff --git a/docs/servers/secops_mcp.md b/docs/servers/secops_mcp.md index df99f877..f2ca996b 100644 --- a/docs/servers/secops_mcp.md +++ b/docs/servers/secops_mcp.md @@ -827,7 +827,59 @@ The service account or user credentials need the following Chronicle roles: - `project_id` (optional): Google Cloud project ID (defaults to environment config). - `customer_id` (optional): Chronicle customer ID (defaults to environment config). - `region` (optional): Chronicle region (defaults to environment config or 'us'). - - **Returns:** Dictionary containing investigation associations grouped by detection ID, with verdict and confidence information. +### Detection Engineering Agent Tools + +Tools for automating the Detection Engineering lifecycle using Chronicle's Agentic Detection Engineering (ADE) APIs: + +- **`generate_threat_detection_opportunity(threat_description, log_types, project_id=None, customer_id=None, region=None)`** + - **Description:** Generate structured Threat Detection Opportunities (TDOs) from a threat intelligence description and targeted log types. Returns extracted tactics, techniques, and procedures (TTPs) mapped to MITRE ATT&CK. + - **Parameters:** + - `threat_description` (required): Natural-language text describing the threat or adversary TTPs. + - `log_types` (required): List of Chronicle log types to consider (e.g. `["WINEVTLOG", "PROCESS_EXECUTION"]`). + - `project_id` (optional): Google Cloud project ID (defaults to environment config). + - `customer_id` (optional): Chronicle customer ID (defaults to environment config). + - `region` (optional): Chronicle region (defaults to environment config or 'us'). + - **Returns:** Dictionary containing generated `threat_detection_opportunities` with IDs, summaries, log types, and MITRE ATT&CK mappings. + +- **`generate_synthetic_events(threat_detection_opportunities, project_id=None, customer_id=None, region=None)`** + - **Description:** Generate high-fidelity synthetic telemetry (raw logs and structured UDM events) to simulate attacker behavior for given Threat Detection Opportunities. + - **Parameters:** + - `threat_detection_opportunities` (required): List of TDO dictionaries (or TDO objects returned by `generate_threat_detection_opportunity`). + - `project_id` (optional): Google Cloud project ID (defaults to environment config). + - `customer_id` (optional): Chronicle customer ID (defaults to environment config). + - `region` (optional): Chronicle region (defaults to environment config or 'us'). + - **Returns:** Dictionary containing `threat_detection_opportunity_events` with synthetic raw logs, structured UDM events, and JSON-encoded `udmJson` strings. + +- **`evaluate_rule_coverage_long_running(threat_detection_opportunity_events, exclude_composite_coverage=False, project_id=None, customer_id=None, region=None)`** + - **Description:** Initiate an asynchronous Long-Running Operation (LRO) via Chronicle's `:evaluateRuleCoverageLongRunning` endpoint to test synthetic events against active rulesets in a safe sandbox simulation. + - **Parameters:** + - `threat_detection_opportunity_events` (required): List of event bundles containing `threat_detection_opportunity_id` and list of `udms_json`. + - `exclude_composite_coverage` (optional): Whether to exclude multi-event composite rules from evaluation (default: `False`). + - `project_id` (optional): Google Cloud project ID (defaults to environment config). + - `customer_id` (optional): Chronicle customer ID (defaults to environment config). + - `region` (optional): Chronicle region (defaults to environment config or 'us'). + - **Returns:** Dictionary containing the Long-Running Operation resource with `name` (e.g., `operations/dea-...`). + +- **`get_operation(name, project_id=None, customer_id=None, region=None)`** + - **Description:** Poll the status of a Long-Running Operation (such as rule coverage evaluation). Returns progress metadata or final coverage results when `done` is `True`. + - **Parameters:** + - `name` (required): Full operation resource name returned by `evaluate_rule_coverage_long_running`. + - `project_id` (optional): Google Cloud project ID (defaults to environment config). + - `customer_id` (optional): Chronicle customer ID (defaults to environment config). + - `region` (optional): Chronicle region (defaults to environment config or 'us'). + - **Returns:** Dictionary containing operation state (`done`, `metadata`, and `response`). + +- **`generate_rules(threat_detection_opportunities, background_context=None, project_id=None, customer_id=None, region=None)`** + - **Description:** Synthesize candidate YARA-L 2.0 detection rules tailored to close coverage gaps identified for specific Threat Detection Opportunities. + - **Parameters:** + - `threat_detection_opportunities` (required): List of uncovered TDO dictionaries. + - `background_context` (optional): Additional organizational context, telemetry nuances, or detection conventions. + - `project_id` (optional): Google Cloud project ID (defaults to environment config). + - `customer_id` (optional): Chronicle customer ID (defaults to environment config). + - `region` (optional): Chronicle region (defaults to environment config or 'us'). + - **Returns:** Dictionary containing synthesized candidate YARA-L 2.0 rules with metadata and logic. + +For an end-to-end walkthrough, see the [Agentic Detection Engineering Guide](../agentic_detection_engineering.md). ## Usage Examples @@ -1123,6 +1175,68 @@ Entities previously on this watchlist will now use their base risk scores without the 4.0x multiplier. ``` +### Example 9: Agentic Detection Engineering Workflow + +``` +User: We received a threat intel advisory detailing a new PowerShell download cradle communicating with pastebin-like sites. Can you extract detection opportunities, test our rule coverage, and generate rules for any gaps? + +AI uses: generate_threat_detection_opportunity( + threat_description="Threat actors leverage obfuscated PowerShell commands with DownloadString to fetch scripts from paste sites and execute memory-resident payloads.", + log_types=["WINEVTLOG", "PROCESS_EXECUTION"] +) + +AI: Generated 2 Threat Detection Opportunities: +1. t01: Obfuscated PowerShell execution with WebClient DownloadString +2. t02: Memory-resident payload invocation via reflective loading + +AI uses: generate_synthetic_events( + threat_detection_opportunities=[ + {"threat_detection_opportunity_id": "t01", "summary": "Obfuscated PowerShell DownloadString", "log_types": ["WINEVTLOG", "PROCESS_EXECUTION"]}, + {"threat_detection_opportunity_id": "t02", "summary": "Reflective PE loading", "log_types": ["PROCESS_EXECUTION"]} + ] +) + +AI: Generated 8 synthetic events simulating the adversary techniques across PowerShell event logs and process creation telemetry. + +AI uses: evaluate_rule_coverage_long_running( + threat_detection_opportunity_events=[...], + exclude_composite_coverage=True +) + +AI: Initiated Long-Running Operation: operations/dea-xyz789... + +AI uses: get_operation( + name="operations/dea-xyz789..." +) + +AI: Evaluation completed. Coverage results: +- t01 (PowerShell DownloadString): COVERED by rule "win_powershell_downloadstring_webclient" +- t02 (Reflective PE loading): UNCOVERED (coverage gap identified) + +AI uses: generate_rules( + threat_detection_opportunities=[ + {"threat_detection_opportunity_id": "t02", "summary": "Reflective PE loading via suspicious memory allocation"} + ], + background_context="Enterprise Windows environment with Sysmon Event ID 7 and 8 telemetry." +) + +AI: Synthesized candidate YARA-L 2.0 rule: +rule ttp_reflective_pe_memory_loading { + meta: + author = "SecOps ADE" + description = "Detects suspicious memory allocation and reflective DLL injection" + severity = "HIGH" + events: + $e.metadata.event_type = "PROCESS_UNCATEGORIZED" + $e.target.process.file.full_path = /powershell\.exe/ nocase + $e.security_result.action = "ALLOW" + condition: + $e +} + +Would you like to run historical backtesting (`test_rule`) and create this rule in disabled mode for staging? +``` + ## Additional Resources - [Chronicle API Documentation](https://cloud.google.com/chronicle/docs/reference/rest) diff --git a/docs/toc.md b/docs/toc.md index 49b62cb9..4ccef395 100644 --- a/docs/toc.md +++ b/docs/toc.md @@ -2,6 +2,8 @@ * [Development Guide](development_guide.md) * [Usage Guide](usage_guide.md) +* [Agentic Detection Engineering](agentic_detection_engineering.md) +* [Google SecOps Extension](google_secops_extension.md) * [Servers](servers/index.md) * [Remote MCP Server](remote_server.md) * [Google Threat Intelligence](servers/gti_mcp.md) From ebb77655fca92e83be15ea0ebc604b3911d56641 Mon Sep 17 00:00:00 2001 From: Dan Dye Date: Fri, 4 Sep 2026 01:48:11 +0000 Subject: [PATCH 2/3] docs: align exclude_composite_coverage default and fix TOOL_MAPPING link - Update evaluate_rule_coverage_long_running docs to show exclude_composite_coverage defaults to True. - Fix TOOL_MAPPING link in docs/google_secops_extension.md to point to GitHub file location. TAG=agy CONV=b434fecb-6fd3-4841-b909-49d23ef70fa3 --- docs/google_secops_extension.md | 2 +- docs/servers/secops_mcp.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/google_secops_extension.md b/docs/google_secops_extension.md index d681a101..71b3bb3b 100644 --- a/docs/google_secops_extension.md +++ b/docs/google_secops_extension.md @@ -101,7 +101,7 @@ The skills employ an **Adaptive Execution** strategy to ensure robustness: 2. **Prioritize Remote**: If the **Remote MCP Server** is connected, the skill uses remote tools (e.g., `list_cases`, `udm_search`) for maximum capability. 3. **Fallback to Local**: If remote tools are unavailable, the skill automatically falls back to **Local Python Tools** (e.g., `search_security_events`). -For a detailed mapping of Remote vs. Local capabilities, see [`TOOL_MAPPING.md`](../TOOL_MAPPING.md). +For a detailed mapping of Remote vs. Local capabilities, see [`TOOL_MAPPING.md`](https://github.com/google/mcp-security/blob/main/extensions/google-secops/TOOL_MAPPING.md). ## Cross-Compatibility diff --git a/docs/servers/secops_mcp.md b/docs/servers/secops_mcp.md index f2ca996b..6874ce7d 100644 --- a/docs/servers/secops_mcp.md +++ b/docs/servers/secops_mcp.md @@ -850,11 +850,11 @@ Tools for automating the Detection Engineering lifecycle using Chronicle's Agent - `region` (optional): Chronicle region (defaults to environment config or 'us'). - **Returns:** Dictionary containing `threat_detection_opportunity_events` with synthetic raw logs, structured UDM events, and JSON-encoded `udmJson` strings. -- **`evaluate_rule_coverage_long_running(threat_detection_opportunity_events, exclude_composite_coverage=False, project_id=None, customer_id=None, region=None)`** +- **`evaluate_rule_coverage_long_running(threat_detection_opportunity_events, exclude_composite_coverage=True, project_id=None, customer_id=None, region=None)`** - **Description:** Initiate an asynchronous Long-Running Operation (LRO) via Chronicle's `:evaluateRuleCoverageLongRunning` endpoint to test synthetic events against active rulesets in a safe sandbox simulation. - **Parameters:** - `threat_detection_opportunity_events` (required): List of event bundles containing `threat_detection_opportunity_id` and list of `udms_json`. - - `exclude_composite_coverage` (optional): Whether to exclude multi-event composite rules from evaluation (default: `False`). + - `exclude_composite_coverage` (optional): Whether to exclude multi-event composite rules from evaluation (default: `True`). - `project_id` (optional): Google Cloud project ID (defaults to environment config). - `customer_id` (optional): Chronicle customer ID (defaults to environment config). - `region` (optional): Chronicle region (defaults to environment config or 'us'). From 8f0d62ab9c6aed6335139cbab71e542e86d3b810 Mon Sep 17 00:00:00 2001 From: Dan Dye Date: Fri, 4 Sep 2026 01:55:54 +0000 Subject: [PATCH 3/3] docs: correct create_rule tool name in lifecycle section - Fix create_security_rule typo to match create_rule tool name. - Clarify activation step instructions. TAG=agy CONV=b434fecb-6fd3-4841-b909-49d23ef70fa3 --- docs/agentic_detection_engineering.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/agentic_detection_engineering.md b/docs/agentic_detection_engineering.md index 9bcfc884..910fbe9b 100644 --- a/docs/agentic_detection_engineering.md +++ b/docs/agentic_detection_engineering.md @@ -104,8 +104,8 @@ For any TDO identified as having a coverage gap, `generate_rules` synthesizes ca Generated rules must never be automatically activated in production without human validation. Detection engineers follow these verification steps: 1. **Rule Logic Inspection:** Verify UDM field references and thresholds. 2. **Backtesting (`test_rule`):** Execute historical test queries over real tenant data to assess alert volume and detect potential false positives. -3. **Draft Rule Creation (`create_security_rule`):** Deploy rule in a disabled (`enabled=False`) or alerting-only state for staging observation. -4. **Activation (`enable_rule`):** Enable live evaluation once verified. +3. **Draft Rule Creation (`create_rule`):** Deploy rule in a disabled (`enabled=False`) or alerting-only state for staging observation. +4. **Activation:** Enable live evaluation once verified (via the SecOps console or rule management tools). ---