From 7aa4d3067ea0818acb124679d8c04957376af802 Mon Sep 17 00:00:00 2001 From: Hare Date: Thu, 13 Aug 2026 22:13:33 +0900 Subject: [PATCH 01/12] config: add canonical Decodal source core --- Cargo.lock | 59 +- Cargo.toml | 9 +- crates/config-source-wasm/Cargo.toml | 15 + crates/config-source-wasm/src/lib.rs | 51 ++ crates/config-source/Cargo.toml | 18 + crates/config-source/src/lib.rs | 906 +++++++++++++++++++ crates/flow/src/definition.rs | 6 +- crates/worker-runtime/src/profile_archive.rs | 12 +- 8 files changed, 1062 insertions(+), 14 deletions(-) create mode 100644 crates/config-source-wasm/Cargo.toml create mode 100644 crates/config-source-wasm/src/lib.rs create mode 100644 crates/config-source/Cargo.toml create mode 100644 crates/config-source/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 672ddbc4..d25198cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -589,6 +589,30 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "config-source" +version = "0.1.0" +dependencies = [ + "decodal", + "decodal-language-service", + "decodal-language-tools", + "pretty_assertions", + "serde", + "serde_json", + "sha2 0.11.0", + "thiserror 2.0.18", +] + +[[package]] +name = "config-source-wasm" +version = "0.1.0" +dependencies = [ + "config-source", + "serde", + "serde-wasm-bindgen", + "wasm-bindgen", +] + [[package]] name = "const-oid" version = "0.10.2" @@ -961,9 +985,29 @@ checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b" [[package]] name = "decodal" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4291c87ce887fafc0acf9f40f4bc17e111457e9d62f1b1530113be6b7a7f1a21" +checksum = "2b6e47d6bc66cd3cd42c8df8ff77a994a7743e889045c6b762a6dbc360ad8494" + +[[package]] +name = "decodal-language-service" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f25e462dce7c86743bd229ba91b831daf7928d524de9cef4ef861257ca156aa8" +dependencies = [ + "decodal", +] + +[[package]] +name = "decodal-language-tools" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d8e3eb978cb1c2259df838ba2a8102bc45553d7b415216c80fc5b6a3f378c6" +dependencies = [ + "decodal", + "serde_json", + "wasm-bindgen", +] [[package]] name = "deltae" @@ -3748,6 +3792,17 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + [[package]] name = "serde_cbor_2" version = "0.13.0" diff --git a/Cargo.toml b/Cargo.toml index e8f55dcd..78bd14e2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,6 +19,8 @@ members = [ "crates/tools", "crates/fs-operation", "crates/flow", + "crates/config-source", + "crates/config-source-wasm", "crates/workdir", "crates/tui", "crates/memory", @@ -47,6 +49,8 @@ default-members = [ "crates/tools", "crates/fs-operation", "crates/flow", + "crates/config-source", + "crates/config-source-wasm", "crates/workdir", "crates/tui", "crates/memory", @@ -82,6 +86,7 @@ session-analytics = { path = "crates/session-analytics" } session-store = { path = "crates/session-store" } secrets = { path = "crates/secrets" } tools = { path = "crates/tools" } +config-source = { path = "crates/config-source" } fs-operation = { path = "crates/fs-operation" } workdir = { path = "crates/workdir" } tui = { path = "crates/tui" } @@ -93,7 +98,9 @@ yoi-workspace-server = { path = "crates/workspace-server" } async-trait = "0.1" axum = "0.8" base64 = "0.22.1" -decodal = "0.1.1" +decodal = "0.2.0" +decodal-language-service = "0.2.0" +decodal-language-tools = "0.2.0" fs4 = "0.13" futures = "0.3" libc = "0.2" diff --git a/crates/config-source-wasm/Cargo.toml b/crates/config-source-wasm/Cargo.toml new file mode 100644 index 00000000..eebee1eb --- /dev/null +++ b/crates/config-source-wasm/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "config-source-wasm" +version = "0.1.0" +edition.workspace = true +license.workspace = true +publish = false + +[lib] +crate-type = ["cdylib", "rlib"] + +[dependencies] +config-source.workspace = true +serde.workspace = true +serde-wasm-bindgen = "0.6.5" +wasm-bindgen = "0.2.105" diff --git a/crates/config-source-wasm/src/lib.rs b/crates/config-source-wasm/src/lib.rs new file mode 100644 index 00000000..e19501ad --- /dev/null +++ b/crates/config-source-wasm/src/lib.rs @@ -0,0 +1,51 @@ +use config_source::{ + ConfigTreeSnapshot, EvaluationResult, SnapshotEnvironment, ToolchainContract, VirtualPath, +}; +use serde_wasm_bindgen::{from_value, to_value}; +use wasm_bindgen::prelude::*; + +#[wasm_bindgen] +pub fn evaluate_snapshot(snapshot: JsValue, contract: JsValue) -> Result { + let snapshot: ConfigTreeSnapshot = decode(snapshot)?; + let contract: ToolchainContract = decode(contract)?; + encode( + SnapshotEnvironment::new(snapshot) + .evaluate_contract(&contract) + .map_err(|diagnostics| { + to_value(&diagnostics).unwrap_or_else(|_| JsValue::from_str("evaluation failed")) + })?, + ) +} + +#[wasm_bindgen] +pub fn analyze_snapshot( + snapshot: JsValue, + entrypoint: String, + source_override: Option, +) -> Result { + let snapshot: ConfigTreeSnapshot = decode(snapshot)?; + let entrypoint = VirtualPath::parse(entrypoint).map_err(js_error)?; + encode(SnapshotEnvironment::new(snapshot).analyze(&entrypoint, source_override.as_deref())) +} + +#[wasm_bindgen] +pub fn format_source(source: String) -> Result { + SnapshotEnvironment::new(ConfigTreeSnapshot::empty()) + .format(&source) + .map_err(|error| JsValue::from_str(&error)) +} + +fn decode(value: JsValue) -> Result { + from_value(value).map_err(|error| JsValue::from_str(&error.to_string())) +} + +fn encode(value: T) -> Result { + to_value(&value).map_err(|error| JsValue::from_str(&error.to_string())) +} + +fn js_error(error: impl std::fmt::Display) -> JsValue { + JsValue::from_str(&error.to_string()) +} + +#[allow(dead_code)] +fn _assert_serializable(_: EvaluationResult) {} diff --git a/crates/config-source/Cargo.toml b/crates/config-source/Cargo.toml new file mode 100644 index 00000000..9deb7fa9 --- /dev/null +++ b/crates/config-source/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "config-source" +version = "0.1.0" +edition.workspace = true +license.workspace = true +publish = false + +[dependencies] +decodal.workspace = true +decodal-language-service.workspace = true +decodal-language-tools.workspace = true +serde = { workspace = true, features = ["derive"] } +serde_json.workspace = true +sha2.workspace = true +thiserror.workspace = true + +[dev-dependencies] +pretty_assertions = "1" diff --git a/crates/config-source/src/lib.rs b/crates/config-source/src/lib.rs new file mode 100644 index 00000000..06e4a38c --- /dev/null +++ b/crates/config-source/src/lib.rs @@ -0,0 +1,906 @@ +use std::collections::{BTreeMap, BTreeSet}; +use std::fmt; + +use decodal::{ + Data, Diagnostic, DiagnosticKind, Engine, HostEnvironment, ImportCandidate, ImportLoader, + LoadedImport, Span, +}; +use decodal_language_service::{CompletionResult, LanguageService}; +use serde::{Deserialize, Serialize}; +use sha2::{Digest, Sha256}; + +pub const CONFIG_SOURCE_CONTRACT_VERSION: u32 = 1; +pub const DECODAL_VERSION: &str = "0.2.0"; +pub const DEFAULT_SCHEMA_VERSION: u32 = 1; +pub const DEFAULT_IMPORT_POLICY_VERSION: u32 = 1; +pub const MAX_ENTRY_COUNT: usize = 256; +pub const MAX_CHANGE_COUNT: usize = 256; +pub const MAX_ENTRY_BYTES: usize = 256 * 1024; +pub const MAX_TOTAL_BYTES: usize = 4 * 1024 * 1024; +pub const MAX_PATH_BYTES: usize = 512; + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] +#[serde(transparent)] +pub struct VirtualPath(String); + +impl VirtualPath { + pub fn parse(value: impl AsRef) -> Result { + let value = value.as_ref(); + if value.is_empty() { + return Err(ConfigTreeError::InvalidPath( + "path must not be empty".into(), + )); + } + if value.len() > MAX_PATH_BYTES { + return Err(ConfigTreeError::LimitExceeded("path bytes")); + } + if value.starts_with('/') + || value.contains('\\') + || value.contains('\0') + || value.contains("://") + { + return Err(ConfigTreeError::InvalidPath(value.into())); + } + let mut normalized = Vec::new(); + for component in value.split('/') { + if component.is_empty() || component == "." || component == ".." { + return Err(ConfigTreeError::InvalidPath(value.into())); + } + if component.chars().any(char::is_control) { + return Err(ConfigTreeError::InvalidPath(value.into())); + } + normalized.push(component); + } + Ok(Self(normalized.join("/"))) + } + + pub fn as_str(&self) -> &str { + &self.0 + } + + fn parent_components(&self) -> Vec<&str> { + let mut components = self.0.split('/').collect::>(); + components.pop(); + components + } +} + +impl fmt::Display for VirtualPath { + fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { + formatter.write_str(&self.0) + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum ConfigContentType { + Decodal, + Text, +} + +impl ConfigContentType { + pub fn media_type(self) -> &'static str { + match self { + Self::Decodal => "text/x-decodal", + Self::Text => "text/plain", + } + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub struct ConfigEntry { + pub path: VirtualPath, + pub content_type: ConfigContentType, + pub content: String, + pub content_digest: String, +} + +impl ConfigEntry { + pub fn new( + path: VirtualPath, + content_type: ConfigContentType, + content: impl Into, + ) -> Result { + let content = content.into(); + if content.len() > MAX_ENTRY_BYTES { + return Err(ConfigTreeError::LimitExceeded("entry bytes")); + } + Ok(Self { + path, + content_type, + content_digest: digest_bytes(content.as_bytes()), + content, + }) + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub struct ConfigTreeSnapshot { + pub revision: u64, + pub digest: String, + pub entries: BTreeMap, +} + +impl ConfigTreeSnapshot { + pub fn empty() -> Self { + Self::from_entries(0, Vec::new()).expect("empty config snapshot is valid") + } + + pub fn from_entries( + revision: u64, + entries: impl IntoIterator, + ) -> Result { + let mut ordered = BTreeMap::new(); + let mut total = 0usize; + for entry in entries { + total = total + .checked_add(entry.content.len()) + .ok_or(ConfigTreeError::LimitExceeded("total bytes"))?; + if total > MAX_TOTAL_BYTES { + return Err(ConfigTreeError::LimitExceeded("total bytes")); + } + if ordered.insert(entry.path.clone(), entry).is_some() { + return Err(ConfigTreeError::DuplicatePath); + } + } + if ordered.len() > MAX_ENTRY_COUNT { + return Err(ConfigTreeError::LimitExceeded("entry count")); + } + let digest = snapshot_digest(&ordered); + Ok(Self { + revision, + digest, + entries: ordered, + }) + } + + pub fn list_prefix(&self, prefix: Option<&VirtualPath>) -> Vec<&ConfigEntry> { + self.entries + .values() + .filter(|entry| { + prefix.is_none_or(|prefix| { + entry.path == *prefix + || entry + .path + .as_str() + .strip_prefix(prefix.as_str()) + .is_some_and(|rest| rest.starts_with('/')) + }) + }) + .collect() + } + + pub fn get(&self, path: &VirtualPath) -> Option<&ConfigEntry> { + self.entries.get(path) + } + + pub fn apply(&self, changes: &[ConfigTreeChange]) -> Result { + if changes.len() > MAX_CHANGE_COUNT { + return Err(ConfigTreeError::LimitExceeded("change count")); + } + let mut entries = self.entries.clone(); + let mut touched = BTreeSet::new(); + for change in changes { + for path in change.paths() { + if !touched.insert(path.clone()) { + return Err(ConfigTreeError::PathChangedMoreThanOnce(path.clone())); + } + } + match change { + ConfigTreeChange::Create { + path, + content_type, + content, + } => { + if entries.contains_key(path) { + return Err(ConfigTreeError::AlreadyExists(path.clone())); + } + entries.insert( + path.clone(), + ConfigEntry::new(path.clone(), *content_type, content.clone())?, + ); + } + ConfigTreeChange::Update { + path, + expected_digest, + content, + } => { + let current = entries + .get(path) + .ok_or_else(|| ConfigTreeError::NotFound(path.clone()))?; + if ¤t.content_digest != expected_digest { + return Err(ConfigTreeError::EntryConflict(path.clone())); + } + entries.insert( + path.clone(), + ConfigEntry::new(path.clone(), current.content_type, content.clone())?, + ); + } + ConfigTreeChange::Rename { + from, + to, + expected_digest, + } => { + if entries.contains_key(to) { + return Err(ConfigTreeError::AlreadyExists(to.clone())); + } + let current = entries + .remove(from) + .ok_or_else(|| ConfigTreeError::NotFound(from.clone()))?; + if ¤t.content_digest != expected_digest { + return Err(ConfigTreeError::EntryConflict(from.clone())); + } + entries.insert( + to.clone(), + ConfigEntry::new(to.clone(), current.content_type, current.content)?, + ); + } + ConfigTreeChange::Delete { + path, + expected_digest, + } => { + let current = entries + .get(path) + .ok_or_else(|| ConfigTreeError::NotFound(path.clone()))?; + if ¤t.content_digest != expected_digest { + return Err(ConfigTreeError::EntryConflict(path.clone())); + } + entries.remove(path); + } + } + } + Self::from_entries(self.revision, entries.into_values()) + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(tag = "kind", rename_all = "snake_case")] +pub enum ConfigTreeChange { + Create { + path: VirtualPath, + content_type: ConfigContentType, + content: String, + }, + Update { + path: VirtualPath, + expected_digest: String, + content: String, + }, + Rename { + from: VirtualPath, + to: VirtualPath, + expected_digest: String, + }, + Delete { + path: VirtualPath, + expected_digest: String, + }, +} + +impl ConfigTreeChange { + fn paths(&self) -> Vec<&VirtualPath> { + match self { + Self::Create { path, .. } | Self::Update { path, .. } | Self::Delete { path, .. } => { + vec![path] + } + Self::Rename { from, to, .. } => vec![from, to], + } + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub struct ToolchainContract { + pub contract_version: u32, + pub decodal_version: String, + pub schema_version: u32, + pub entrypoints: Vec, + pub import_policy_version: u32, + pub fingerprint: String, +} + +impl ToolchainContract { + pub fn new( + schema_version: u32, + mut entrypoints: Vec, + import_policy_version: u32, + ) -> Self { + entrypoints.sort(); + entrypoints.dedup(); + let mut contract = Self { + contract_version: CONFIG_SOURCE_CONTRACT_VERSION, + decodal_version: DECODAL_VERSION.to_string(), + schema_version, + entrypoints, + import_policy_version, + fingerprint: String::new(), + }; + contract.fingerprint = digest_bytes( + serde_json::to_vec(&( + contract.contract_version, + &contract.decodal_version, + contract.schema_version, + &contract.entrypoints, + contract.import_policy_version, + )) + .expect("toolchain contract serializes") + .as_slice(), + ); + contract + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub struct ConfigSpan { + pub start_byte: u32, + pub end_byte: u32, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub struct ConfigDiagnosticLabel { + pub span: ConfigSpan, + pub message: String, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub struct ConfigDiagnostic { + pub path: VirtualPath, + pub revision: u64, + pub tree_digest: String, + pub kind: String, + pub span: ConfigSpan, + pub message: String, + pub labels: Vec, + pub notes: Vec, +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct EvaluatedProjection { + pub entrypoint: VirtualPath, + pub data_json: serde_json::Value, + pub projection_digest: String, +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct EvaluationResult { + pub projections: Vec, + pub projection_digest: String, +} + +#[derive(Debug, Clone)] +pub struct SnapshotEnvironment { + snapshot: ConfigTreeSnapshot, +} + +impl SnapshotEnvironment { + pub fn new(snapshot: ConfigTreeSnapshot) -> Self { + Self { snapshot } + } + + pub fn snapshot(&self) -> &ConfigTreeSnapshot { + &self.snapshot + } + + pub fn evaluate_contract( + &self, + contract: &ToolchainContract, + ) -> Result> { + let service = LanguageService::new(self); + let mut projections = Vec::new(); + for entrypoint in &contract.entrypoints { + let Some(entry) = self.snapshot.get(entrypoint) else { + return Err(vec![self.config_error( + entrypoint.clone(), + "entrypoint_missing", + "configured entrypoint is missing", + )]); + }; + if entry.content_type != ConfigContentType::Decodal { + return Err(vec![self.config_error( + entrypoint.clone(), + "entrypoint_not_decodal", + "configured entrypoint is not Decodal source", + )]); + } + match service.evaluate(entrypoint.as_str(), entrypoint.as_str(), &entry.content) { + Ok(data) => { + let data_json = decodal_data_to_json(&data); + let projection_digest = digest_bytes( + serde_json::to_vec(&data_json) + .expect("Decodal projection serializes") + .as_slice(), + ); + projections.push(EvaluatedProjection { + entrypoint: entrypoint.clone(), + data_json, + projection_digest, + }); + } + Err(diagnostic) => { + return Err(vec![project_diagnostic( + &self.snapshot, + entrypoint.clone(), + &diagnostic, + )]); + } + } + } + let projection_digest = digest_bytes( + serde_json::to_vec(&projections) + .expect("projection set serializes") + .as_slice(), + ); + Ok(EvaluationResult { + projections, + projection_digest, + }) + } + + pub fn analyze( + &self, + entrypoint: &VirtualPath, + source_override: Option<&str>, + ) -> Vec { + let Some(entry) = self.snapshot.get(entrypoint) else { + return vec![self.config_error( + entrypoint.clone(), + "entrypoint_missing", + "configured entrypoint is missing", + )]; + }; + let service = LanguageService::new(self); + service + .analyze( + entrypoint.as_str(), + entrypoint.as_str(), + source_override.unwrap_or(&entry.content), + ) + .diagnostics + .iter() + .map(|diagnostic| project_diagnostic(&self.snapshot, entrypoint.clone(), diagnostic)) + .collect() + } + + pub fn complete( + &self, + entrypoint: &VirtualPath, + source: &str, + utf8_byte_offset: usize, + explicit: bool, + ) -> decodal::Result> { + LanguageService::new(self).complete(entrypoint.as_str(), source, utf8_byte_offset, explicit) + } + + pub fn format(&self, source: &str) -> Result { + decodal_language_tools::format_source(source).map_err(|error| error.to_string()) + } + + fn config_error( + &self, + path: VirtualPath, + kind: impl Into, + message: impl Into, + ) -> ConfigDiagnostic { + ConfigDiagnostic { + path, + revision: self.snapshot.revision, + tree_digest: self.snapshot.digest.clone(), + kind: kind.into(), + span: ConfigSpan { + start_byte: 0, + end_byte: 0, + }, + message: message.into(), + labels: Vec::new(), + notes: Vec::new(), + } + } +} + +impl HostEnvironment for &SnapshotEnvironment { + type Loader = SnapshotImportLoader; + + fn create_loader(&self) -> Self::Loader { + SnapshotImportLoader { + snapshot: self.snapshot.clone(), + } + } + + fn configure_engine(&self, _engine: &mut Engine) -> decodal::Result<()> { + Ok(()) + } +} + +#[derive(Debug, Clone)] +pub struct SnapshotImportLoader { + snapshot: ConfigTreeSnapshot, +} + +impl SnapshotImportLoader { + pub fn resolve( + &self, + current_key: Option<&str>, + specifier: &str, + ) -> Result { + let current = current_key + .map(VirtualPath::parse) + .transpose()? + .ok_or_else(|| ConfigTreeError::InvalidImport(specifier.into()))?; + resolve_import(¤t, specifier) + } +} + +impl ImportLoader for SnapshotImportLoader { + fn load( + &mut self, + current_key: Option<&str>, + specifier: &str, + ) -> decodal::Result { + let path = self.resolve(current_key, specifier).map_err(import_error)?; + let entry = self.snapshot.get(&path).ok_or_else(|| { + Diagnostic::new( + DiagnosticKind::Import, + Span::default(), + format!("virtual config import is missing: {path}"), + ) + })?; + Ok(LoadedImport::source( + path.as_str(), + path.as_str(), + entry.content.clone(), + )) + } + + fn complete_import( + &mut self, + current_key: Option<&str>, + prefix: &str, + ) -> decodal::Result> { + let current = current_key + .map(VirtualPath::parse) + .transpose() + .map_err(import_error)?; + Ok(import_completions(&self.snapshot, current.as_ref(), prefix) + .into_iter() + .map(|specifier| ImportCandidate::new(specifier).with_detail("virtual config source")) + .collect()) + } +} + +pub fn resolve_import( + current: &VirtualPath, + specifier: &str, +) -> Result { + if specifier.is_empty() + || specifier.starts_with('/') + || specifier.contains('\\') + || specifier.contains('\0') + || specifier.contains("://") + || specifier.contains(':') + { + return Err(ConfigTreeError::InvalidImport(specifier.into())); + } + let mut components = if specifier.starts_with("./") || specifier.starts_with("../") { + current.parent_components() + } else { + Vec::new() + }; + for component in specifier.split('/') { + match component { + "" | "." => {} + ".." => { + components + .pop() + .ok_or_else(|| ConfigTreeError::ImportEscape(specifier.into()))?; + } + value => components.push(value), + } + } + VirtualPath::parse(components.join("/")) +} + +pub fn import_completions( + snapshot: &ConfigTreeSnapshot, + current: Option<&VirtualPath>, + prefix: &str, +) -> Vec { + let mut candidates = BTreeSet::new(); + for path in snapshot.entries.keys() { + if current == Some(path) { + continue; + } + let absolute = path.as_str().to_string(); + if absolute.starts_with(prefix) { + candidates.insert(absolute); + } + if let Some(current) = current { + let current_parent = current.parent_components(); + let target = path.as_str().split('/').collect::>(); + let mut common = 0usize; + while common < current_parent.len() + && common < target.len() + && current_parent[common] == target[common] + { + common += 1; + } + let mut relative = vec![".."; current_parent.len().saturating_sub(common)]; + relative.extend_from_slice(&target[common..]); + let specifier = if relative.first().is_some_and(|item| *item == "..") { + relative.join("/") + } else { + format!("./{}", relative.join("/")) + }; + if specifier.starts_with(prefix) { + candidates.insert(specifier); + } + } + } + candidates.into_iter().collect() +} + +fn project_diagnostic( + snapshot: &ConfigTreeSnapshot, + fallback_path: VirtualPath, + diagnostic: &Diagnostic, +) -> ConfigDiagnostic { + ConfigDiagnostic { + path: fallback_path, + revision: snapshot.revision, + tree_digest: snapshot.digest.clone(), + kind: diagnostic_kind(diagnostic.kind).to_string(), + span: ConfigSpan { + start_byte: diagnostic.span.start, + end_byte: diagnostic.span.end, + }, + message: diagnostic.message.clone(), + labels: diagnostic + .labels + .iter() + .map(|label| ConfigDiagnosticLabel { + span: ConfigSpan { + start_byte: label.span.start, + end_byte: label.span.end, + }, + message: label.message.clone(), + }) + .collect(), + notes: diagnostic.notes.clone(), + } +} + +fn diagnostic_kind(kind: DiagnosticKind) -> &'static str { + match kind { + DiagnosticKind::Syntax => "syntax", + DiagnosticKind::UnresolvedIdentifier => "unresolved_identifier", + DiagnosticKind::TypeMismatch => "type_mismatch", + DiagnosticKind::ConstraintViolation => "constraint_violation", + DiagnosticKind::Conflict => "conflict", + DiagnosticKind::DefaultConflict => "default_conflict", + DiagnosticKind::Cycle => "cycle", + DiagnosticKind::Import => "import", + DiagnosticKind::MatchFailure => "match_failure", + DiagnosticKind::Materialize => "materialize", + DiagnosticKind::UnsupportedFeature => "unsupported_feature", + } +} + +fn import_error(error: ConfigTreeError) -> Diagnostic { + Diagnostic::new(DiagnosticKind::Import, Span::default(), error.to_string()) +} + +fn decodal_data_to_json(data: &Data) -> serde_json::Value { + match data { + Data::Bool(value) => serde_json::Value::Bool(*value), + Data::Int(value) => serde_json::Value::Number((*value).into()), + Data::Float(value) => serde_json::Number::from_f64(*value) + .map(serde_json::Value::Number) + .unwrap_or(serde_json::Value::Null), + Data::String(value) => serde_json::Value::String(value.clone()), + Data::Array(values) => { + serde_json::Value::Array(values.iter().map(decodal_data_to_json).collect()) + } + Data::Object(fields) => serde_json::Value::Object( + fields + .iter() + .map(|field| (field.name.clone(), decodal_data_to_json(&field.value))) + .collect(), + ), + } +} + +fn snapshot_digest(entries: &BTreeMap) -> String { + let mut hasher = Sha256::new(); + hasher.update(b"yoi-config-tree-v1\0"); + for (path, entry) in entries { + hasher.update(path.as_str().as_bytes()); + hasher.update([0]); + hasher.update(entry.content_type.media_type().as_bytes()); + hasher.update([0]); + hasher.update(entry.content.as_bytes()); + hasher.update([0]); + } + format_digest(hasher.finalize().as_slice()) +} + +pub fn digest_bytes(bytes: &[u8]) -> String { + format_digest(Sha256::digest(bytes).as_slice()) +} + +fn format_digest(bytes: &[u8]) -> String { + let mut output = String::from("sha256:"); + for byte in bytes { + use std::fmt::Write as _; + let _ = write!(output, "{byte:02x}"); + } + output +} + +#[derive(Debug, thiserror::Error, Clone, PartialEq, Eq)] +pub enum ConfigTreeError { + #[error("invalid virtual config path: {0}")] + InvalidPath(String), + #[error("invalid virtual config import: {0}")] + InvalidImport(String), + #[error("virtual config import escapes the tree: {0}")] + ImportEscape(String), + #[error("virtual config path already exists: {0}")] + AlreadyExists(VirtualPath), + #[error("virtual config path was not found: {0}")] + NotFound(VirtualPath), + #[error("virtual config entry changed: {0}")] + EntryConflict(VirtualPath), + #[error("virtual config path changed more than once in one candidate: {0}")] + PathChangedMoreThanOnce(VirtualPath), + #[error("duplicate virtual config path")] + DuplicatePath, + #[error("virtual config limit exceeded: {0}")] + LimitExceeded(&'static str), +} + +#[cfg(test)] +mod tests { + use super::*; + use pretty_assertions::assert_eq; + + fn path(value: &str) -> VirtualPath { + VirtualPath::parse(value).unwrap() + } + + fn entry(path_value: &str, content: &str) -> ConfigEntry { + ConfigEntry::new(path(path_value), ConfigContentType::Decodal, content).unwrap() + } + + #[test] + fn virtual_paths_reject_ambiguous_or_escaping_forms() { + for invalid in ["", "/root.dcdl", "a//b", "a/./b", "a/../b", "a\\b", "a\0b"] { + assert!(VirtualPath::parse(invalid).is_err(), "{invalid:?}"); + } + assert_eq!(path("profiles/main.dcdl").as_str(), "profiles/main.dcdl"); + } + + #[test] + fn candidate_changes_are_atomic_ordered_and_conflict_checked() { + let base = ConfigTreeSnapshot::from_entries( + 7, + [ + entry("profiles/a.dcdl", "{ a = 1; }"), + entry("shared.dcdl", "{}"), + ], + ) + .unwrap(); + let updated = base + .apply(&[ + ConfigTreeChange::Update { + path: path("profiles/a.dcdl"), + expected_digest: base.entries[&path("profiles/a.dcdl")] + .content_digest + .clone(), + content: "{ a = 2; }".into(), + }, + ConfigTreeChange::Rename { + from: path("shared.dcdl"), + to: path("lib/shared.dcdl"), + expected_digest: base.entries[&path("shared.dcdl")].content_digest.clone(), + }, + ]) + .unwrap(); + assert_eq!( + updated + .entries + .keys() + .map(VirtualPath::as_str) + .collect::>(), + ["lib/shared.dcdl", "profiles/a.dcdl"] + ); + assert_ne!(updated.digest, base.digest); + assert!(matches!( + base.apply(&[ConfigTreeChange::Delete { + path: path("shared.dcdl"), + expected_digest: "sha256:stale".into(), + }]), + Err(ConfigTreeError::EntryConflict(_)) + )); + } + + #[test] + fn snapshot_digest_is_deterministic() { + let left = ConfigTreeSnapshot::from_entries( + 1, + [entry("z.dcdl", "{}"), entry("a.dcdl", "{ x = 1; }")], + ) + .unwrap(); + let right = ConfigTreeSnapshot::from_entries( + 99, + [entry("a.dcdl", "{ x = 1; }"), entry("z.dcdl", "{}")], + ) + .unwrap(); + assert_eq!(left.digest, right.digest); + } + + #[test] + fn relative_imports_and_completion_share_the_snapshot_namespace() { + let snapshot = ConfigTreeSnapshot::from_entries( + 1, + [ + entry("profiles/main.dcdl", r#"import "../shared/value.dcdl""#), + entry("shared/value.dcdl", "{ answer = 42; }"), + entry("other.dcdl", "{}"), + ], + ) + .unwrap(); + assert_eq!( + resolve_import(&path("profiles/main.dcdl"), "../shared/value.dcdl").unwrap(), + path("shared/value.dcdl") + ); + assert!(resolve_import(&path("main.dcdl"), "../escape.dcdl").is_err()); + assert_eq!( + import_completions(&snapshot, Some(&path("profiles/main.dcdl")), "../sh"), + ["../shared/value.dcdl"] + ); + } + + #[test] + fn host_environment_evaluation_uses_only_snapshot_imports() { + let snapshot = ConfigTreeSnapshot::from_entries( + 3, + [ + entry("profiles/main.dcdl", r#"import "./shared.dcdl""#), + entry("profiles/shared.dcdl", "{ answer = 42; }"), + ], + ) + .unwrap(); + let contract = ToolchainContract::new( + DEFAULT_SCHEMA_VERSION, + vec![path("profiles/main.dcdl")], + DEFAULT_IMPORT_POLICY_VERSION, + ); + let result = SnapshotEnvironment::new(snapshot) + .evaluate_contract(&contract) + .unwrap(); + assert_eq!(result.projections[0].data_json["answer"], 42); + } + + #[test] + fn missing_import_and_cycles_are_structured_failures() { + let missing = + ConfigTreeSnapshot::from_entries(1, [entry("main.dcdl", r#"import "./missing.dcdl""#)]) + .unwrap(); + let contract = ToolchainContract::new(1, vec![path("main.dcdl")], 1); + let diagnostics = SnapshotEnvironment::new(missing) + .evaluate_contract(&contract) + .unwrap_err(); + assert_eq!(diagnostics[0].kind, "import"); + + let cycle = ConfigTreeSnapshot::from_entries( + 1, + [ + entry("a.dcdl", r#"import "./b.dcdl""#), + entry("b.dcdl", r#"import "./a.dcdl""#), + ], + ) + .unwrap(); + let diagnostics = SnapshotEnvironment::new(cycle) + .evaluate_contract(&ToolchainContract::new(1, vec![path("a.dcdl")], 1)) + .unwrap_err(); + assert_eq!(diagnostics[0].kind, "cycle"); + } +} diff --git a/crates/flow/src/definition.rs b/crates/flow/src/definition.rs index 28dd1599..8849e7b8 100644 --- a/crates/flow/src/definition.rs +++ b/crates/flow/src/definition.rs @@ -2,7 +2,7 @@ use std::collections::{BTreeMap, BTreeSet, VecDeque}; use std::fmt; use std::fmt::Write as _; -use decodal::{Engine, LoadedSource, SourceLoader}; +use decodal::{Engine, ImportLoader, LoadedImport}; use serde::{Deserialize, Serialize}; use sha2::{Digest, Sha256}; @@ -527,12 +527,12 @@ fn content_digest(content: &str) -> String { struct RejectImports; -impl SourceLoader for RejectImports { +impl ImportLoader for RejectImports { fn load( &mut self, _current_key: Option<&str>, specifier: &str, - ) -> decodal::Result { + ) -> decodal::Result { Err(decodal::Diagnostic::new( decodal::DiagnosticKind::Import, decodal::Span::default(), diff --git a/crates/worker-runtime/src/profile_archive.rs b/crates/worker-runtime/src/profile_archive.rs index a610fe20..2bf5f813 100644 --- a/crates/worker-runtime/src/profile_archive.rs +++ b/crates/worker-runtime/src/profile_archive.rs @@ -1,4 +1,4 @@ -use decodal::{Engine, LoadedSource, SourceLoader}; +use decodal::{Engine, ImportLoader, LoadedImport}; use manifest::{ProfileSource, WorkerManifest, resolve_profile_artifact_value}; use serde::{Deserialize, Serialize}; use sha2::{Digest, Sha256}; @@ -424,12 +424,12 @@ impl<'a> ArchiveSourceLoader<'a> { } } -impl SourceLoader for ArchiveSourceLoader<'_> { +impl ImportLoader for ArchiveSourceLoader<'_> { fn load( &mut self, current_key: Option<&str>, specifier: &str, - ) -> decodal::Result { + ) -> decodal::Result { let path = archive_import_map_lookup(&self.archive.manifest.imports, current_key, specifier) .map_err(import_diagnostic)?; @@ -453,11 +453,7 @@ impl SourceLoader for ArchiveSourceLoader<'_> { format!("archive source missing: {path}"), ) })?; - Ok(LoadedSource { - key: path.clone(), - name: path.clone(), - source: source.clone(), - }) + Ok(LoadedImport::source(path.clone(), path, source.clone())) } } From c8b57a6a5d74faa05a81df8e84f051799fa4c1ae Mon Sep 17 00:00:00 2001 From: Hare Date: Thu, 13 Aug 2026 22:25:55 +0900 Subject: [PATCH 02/12] server: persist evaluated virtual config trees --- Cargo.lock | 1 + crates/workspace-server/Cargo.toml | 1 + crates/workspace-server/src/config_source.rs | 463 +++++++++++++++++++ crates/workspace-server/src/lib.rs | 3 + crates/workspace-server/src/server.rs | 118 ++++- crates/workspace-server/src/store.rs | 48 ++ 6 files changed, 631 insertions(+), 3 deletions(-) create mode 100644 crates/workspace-server/src/config_source.rs diff --git a/Cargo.lock b/Cargo.lock index d25198cf..cdc5792b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6227,6 +6227,7 @@ dependencies = [ "async-trait", "axum", "chrono", + "config-source", "flow", "futures", "manifest", diff --git a/crates/workspace-server/Cargo.toml b/crates/workspace-server/Cargo.toml index 4f7f7e4f..b2008cfb 100644 --- a/crates/workspace-server/Cargo.toml +++ b/crates/workspace-server/Cargo.toml @@ -19,6 +19,7 @@ async-trait.workspace = true axum = { workspace = true, features = ["ws"] } chrono = { version = "0.4", default-features = false, features = ["clock"] } futures.workspace = true +config-source.workspace = true flow = { path = "../flow" } manifest.workspace = true protocol = { workspace = true } diff --git a/crates/workspace-server/src/config_source.rs b/crates/workspace-server/src/config_source.rs new file mode 100644 index 00000000..232c86d2 --- /dev/null +++ b/crates/workspace-server/src/config_source.rs @@ -0,0 +1,463 @@ +use chrono::{SecondsFormat, Utc}; +use config_source::{ + ConfigContentType, ConfigEntry, ConfigTreeChange, ConfigTreeSnapshot, DECODAL_VERSION, + DEFAULT_IMPORT_POLICY_VERSION, DEFAULT_SCHEMA_VERSION, EvaluationResult, SnapshotEnvironment, + ToolchainContract, VirtualPath, +}; +use rusqlite::{OptionalExtension, TransactionBehavior, params}; +use serde::{Deserialize, Serialize}; + +use crate::{Error, Result, SqliteWorkspaceStore}; + +pub const DEFAULT_CONFIG_ENTRYPOINT: &str = "workspace.dcdl"; + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct WorkspaceConfigState { + pub snapshot: ConfigTreeSnapshot, + pub contract: ToolchainContract, + pub projection_digest: String, +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct EvaluatedConfigCandidate { + pub base_revision: u64, + pub base_digest: String, + pub snapshot: ConfigTreeSnapshot, + pub contract: ToolchainContract, + pub evaluation: EvaluationResult, +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct ConfigCommitRequest { + pub base_revision: u64, + pub base_digest: String, + pub changes: Vec, + pub entrypoints: Vec, +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +pub struct ConfigPreviewRequest { + pub changes: Vec, + pub entrypoints: Vec, +} + +impl SqliteWorkspaceStore { + pub fn load_workspace_config( + &self, + workspace_id: &str, + ) -> Result> { + self.with_conn(|conn| load_state(conn, workspace_id)) + } + + pub fn evaluate_workspace_config_candidate( + &self, + workspace_id: &str, + request: &ConfigCommitRequest, + ) -> Result { + let current = self + .load_workspace_config(workspace_id)? + .unwrap_or_else(empty_state); + if current.snapshot.revision != request.base_revision + || current.snapshot.digest != request.base_digest + { + return Err(config_conflict(format!( + "base revision/digest mismatch; current revision is {}", + current.snapshot.revision + ))); + } + evaluate_candidate(current, &request.changes, request.entrypoints.clone()) + } + + pub fn preview_workspace_config( + &self, + workspace_id: &str, + request: &ConfigPreviewRequest, + ) -> Result { + let current = self + .load_workspace_config(workspace_id)? + .unwrap_or_else(empty_state); + evaluate_candidate(current, &request.changes, request.entrypoints.clone()) + } + + pub fn commit_evaluated_workspace_config( + &self, + workspace_id: &str, + candidate: &EvaluatedConfigCandidate, + ) -> Result { + self.with_conn_mut(|conn| { + let tx = conn.transaction_with_behavior(TransactionBehavior::Immediate)?; + let workspace_exists: bool = tx.query_row( + "SELECT EXISTS(SELECT 1 FROM workspaces WHERE workspace_id = ?1)", + [workspace_id], + |row| row.get(0), + )?; + if !workspace_exists { + return Err(Error::WorkspaceIdMismatch); + } + let current = load_state(&tx, workspace_id)?.unwrap_or_else(empty_state); + if current.snapshot.revision != candidate.base_revision + || current.snapshot.digest != candidate.base_digest + { + return Err(config_conflict(format!( + "base revision/digest mismatch; current revision is {}", + current.snapshot.revision + ))); + } + let next_revision = current.snapshot.revision + 1; + let mut snapshot = candidate.snapshot.clone(); + snapshot.revision = next_revision; + let now = Utc::now().to_rfc3339_opts(SecondsFormat::Millis, true); + tx.execute( + r#"INSERT INTO workspace_config_trees ( + workspace_id, revision, tree_digest, schema_version, entrypoints_json, + decodal_version, import_policy_version, toolchain_fingerprint, + projection_digest, updated_at + ) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10) + ON CONFLICT(workspace_id) DO UPDATE SET + revision = excluded.revision, + tree_digest = excluded.tree_digest, + schema_version = excluded.schema_version, + decodal_version = excluded.decodal_version, + import_policy_version = excluded.import_policy_version, + toolchain_fingerprint = excluded.toolchain_fingerprint, + projection_digest = excluded.projection_digest, + updated_at = excluded.updated_at"#, + params![ + workspace_id, + next_revision as i64, + snapshot.digest, + candidate.contract.schema_version, + serde_json::to_string(&candidate.contract.entrypoints) + .map_err(|error| Error::Store(error.to_string()))?, + candidate.contract.decodal_version, + candidate.contract.import_policy_version, + candidate.contract.fingerprint, + candidate.evaluation.projection_digest, + now, + ], + )?; + tx.execute( + "DELETE FROM workspace_config_entries WHERE workspace_id = ?1", + [workspace_id], + )?; + for entry in snapshot.entries.values() { + tx.execute( + r#"INSERT INTO workspace_config_entries ( + workspace_id, path, content_type, content, content_digest + ) VALUES (?1, ?2, ?3, ?4, ?5)"#, + params![ + workspace_id, + entry.path.as_str(), + content_type_label(entry.content_type), + entry.content, + entry.content_digest, + ], + )?; + } + let manifest_json = serde_json::to_string(&snapshot.entries) + .map_err(|error| Error::Store(error.to_string()))?; + tx.execute( + r#"INSERT INTO workspace_config_tree_revisions ( + workspace_id, revision, tree_digest, toolchain_fingerprint, + projection_digest, manifest_json, created_at + ) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7)"#, + params![ + workspace_id, + next_revision as i64, + snapshot.digest, + candidate.contract.fingerprint, + candidate.evaluation.projection_digest, + manifest_json, + now, + ], + )?; + tx.commit()?; + Ok(WorkspaceConfigState { + snapshot, + contract: candidate.contract.clone(), + projection_digest: candidate.evaluation.projection_digest.clone(), + }) + }) + } + + pub fn evaluate_and_commit_workspace_config( + &self, + workspace_id: &str, + request: &ConfigCommitRequest, + ) -> Result { + let candidate = self.evaluate_workspace_config_candidate(workspace_id, request)?; + self.commit_evaluated_workspace_config(workspace_id, &candidate) + } +} + +fn evaluate_candidate( + current: WorkspaceConfigState, + changes: &[ConfigTreeChange], + entrypoints: Vec, +) -> Result { + let snapshot = current.snapshot.apply(changes).map_err(config_error)?; + let contract = ToolchainContract::new( + DEFAULT_SCHEMA_VERSION, + entrypoints, + DEFAULT_IMPORT_POLICY_VERSION, + ); + let evaluation = SnapshotEnvironment::new(snapshot.clone()) + .evaluate_contract(&contract) + .map_err(|diagnostics| { + Error::InvalidInput( + serde_json::to_string(&diagnostics) + .unwrap_or_else(|_| "virtual config evaluation failed".to_string()), + ) + })?; + Ok(EvaluatedConfigCandidate { + base_revision: current.snapshot.revision, + base_digest: current.snapshot.digest, + snapshot, + contract, + evaluation, + }) +} + +fn load_state( + conn: &rusqlite::Connection, + workspace_id: &str, +) -> Result> { + let header = conn + .query_row( + r#"SELECT revision, tree_digest, schema_version, entrypoints_json, + decodal_version, import_policy_version, toolchain_fingerprint, projection_digest + FROM workspace_config_trees WHERE workspace_id = ?1"#, + [workspace_id], + |row| { + Ok(( + row.get::<_, i64>(0)?, + row.get::<_, String>(1)?, + row.get::<_, u32>(2)?, + row.get::<_, String>(3)?, + row.get::<_, String>(4)?, + row.get::<_, u32>(5)?, + row.get::<_, String>(6)?, + row.get::<_, String>(7)?, + )) + }, + ) + .optional()?; + let Some(( + revision, + stored_digest, + schema_version, + entrypoints_json, + decodal_version, + import_policy_version, + fingerprint, + projection_digest, + )) = header + else { + return Ok(None); + }; + let mut statement = conn.prepare( + r#"SELECT path, content_type, content, content_digest + FROM workspace_config_entries WHERE workspace_id = ?1 ORDER BY path"#, + )?; + let entries = statement + .query_map([workspace_id], |row| { + let path = row.get::<_, String>(0)?; + let content_type = row.get::<_, String>(1)?; + let content = row.get::<_, String>(2)?; + let stored_entry_digest = row.get::<_, String>(3)?; + Ok((path, content_type, content, stored_entry_digest)) + })? + .collect::, _>>()? + .into_iter() + .map(|(path, content_type, content, stored_entry_digest)| { + let path = VirtualPath::parse(path).map_err(config_error)?; + let entry = ConfigEntry::new(path, parse_content_type(&content_type)?, content) + .map_err(config_error)?; + if entry.content_digest != stored_entry_digest { + return Err(Error::RegistryInconsistency(format!( + "virtual config entry digest mismatch for {}", + entry.path + ))); + } + Ok(entry) + }) + .collect::>>()?; + let snapshot = + ConfigTreeSnapshot::from_entries(revision as u64, entries).map_err(config_error)?; + if snapshot.digest != stored_digest { + return Err(Error::RegistryInconsistency(format!( + "virtual config tree digest mismatch for Workspace {workspace_id}" + ))); + } + let entrypoints: Vec = serde_json::from_str(&entrypoints_json) + .map_err(|error| Error::RegistryInconsistency(error.to_string()))?; + let contract = ToolchainContract::new(schema_version, entrypoints, import_policy_version); + if decodal_version != DECODAL_VERSION || contract.fingerprint != fingerprint { + return Err(Error::RegistryInconsistency(format!( + "virtual config toolchain metadata mismatch for Workspace {workspace_id}" + ))); + } + Ok(Some(WorkspaceConfigState { + snapshot, + contract, + projection_digest, + })) +} + +fn empty_state() -> WorkspaceConfigState { + WorkspaceConfigState { + snapshot: ConfigTreeSnapshot::empty(), + contract: ToolchainContract::new( + DEFAULT_SCHEMA_VERSION, + Vec::new(), + DEFAULT_IMPORT_POLICY_VERSION, + ), + projection_digest: config_source::digest_bytes(b"[]"), + } +} + +fn content_type_label(value: ConfigContentType) -> &'static str { + match value { + ConfigContentType::Decodal => "decodal", + ConfigContentType::Text => "text", + } +} + +fn parse_content_type(value: &str) -> Result { + match value { + "decodal" => Ok(ConfigContentType::Decodal), + "text" => Ok(ConfigContentType::Text), + _ => Err(Error::RegistryInconsistency(format!( + "unknown virtual config content type {value:?}" + ))), + } +} + +fn config_error(error: impl std::fmt::Display) -> Error { + Error::InvalidInput(error.to_string()) +} + +fn config_conflict(message: impl Into) -> Error { + Error::WorkspaceConfigConflict(message.into()) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::{ControlPlaneStore, WorkspaceRecord}; + + fn workspace() -> WorkspaceRecord { + WorkspaceRecord { + workspace_id: "w-config".into(), + owner_account_id: None, + display_name: "Config".into(), + state: "active".into(), + created_at: "2026-08-13T00:00:00Z".into(), + updated_at: "2026-08-13T00:00:00Z".into(), + } + } + + fn path(value: &str) -> VirtualPath { + VirtualPath::parse(value).unwrap() + } + + #[tokio::test] + async fn invalid_candidate_is_never_persisted() { + let store = SqliteWorkspaceStore::in_memory().unwrap(); + store.upsert_workspace(&workspace()).await.unwrap(); + let current = ConfigTreeSnapshot::empty(); + let error = store + .evaluate_and_commit_workspace_config( + "w-config", + &ConfigCommitRequest { + base_revision: 0, + base_digest: current.digest, + changes: vec![ConfigTreeChange::Create { + path: path(DEFAULT_CONFIG_ENTRYPOINT), + content_type: ConfigContentType::Decodal, + content: "{ broken = ; }".into(), + }], + entrypoints: vec![path(DEFAULT_CONFIG_ENTRYPOINT)], + }, + ) + .unwrap_err(); + assert!(matches!(error, Error::InvalidInput(_))); + assert!(store.load_workspace_config("w-config").unwrap().is_none()); + } + + #[tokio::test] + async fn valid_candidate_commits_snapshot_revision_and_provenance_atomically() { + let store = SqliteWorkspaceStore::in_memory().unwrap(); + store.upsert_workspace(&workspace()).await.unwrap(); + let empty = ConfigTreeSnapshot::empty(); + let committed = store + .evaluate_and_commit_workspace_config( + "w-config", + &ConfigCommitRequest { + base_revision: 0, + base_digest: empty.digest, + changes: vec![ConfigTreeChange::Create { + path: path(DEFAULT_CONFIG_ENTRYPOINT), + content_type: ConfigContentType::Decodal, + content: "{ answer = 42; }".into(), + }], + entrypoints: vec![path(DEFAULT_CONFIG_ENTRYPOINT)], + }, + ) + .unwrap(); + assert_eq!(committed.snapshot.revision, 1); + assert_eq!(committed.contract.decodal_version, DECODAL_VERSION); + assert!(!committed.projection_digest.is_empty()); + let reread = store.load_workspace_config("w-config").unwrap().unwrap(); + assert_eq!(reread.snapshot, committed.snapshot); + } + + #[tokio::test] + async fn stale_cas_cannot_overwrite_newer_tree() { + let store = SqliteWorkspaceStore::in_memory().unwrap(); + store.upsert_workspace(&workspace()).await.unwrap(); + let empty = ConfigTreeSnapshot::empty(); + let request = ConfigCommitRequest { + base_revision: 0, + base_digest: empty.digest, + changes: vec![ConfigTreeChange::Create { + path: path(DEFAULT_CONFIG_ENTRYPOINT), + content_type: ConfigContentType::Decodal, + content: "{ answer = 42; }".into(), + }], + entrypoints: vec![path(DEFAULT_CONFIG_ENTRYPOINT)], + }; + let candidate = store + .evaluate_workspace_config_candidate("w-config", &request) + .unwrap(); + store + .commit_evaluated_workspace_config("w-config", &candidate) + .unwrap(); + let error = store + .commit_evaluated_workspace_config("w-config", &candidate) + .unwrap_err(); + assert!(matches!(error, Error::WorkspaceConfigConflict(_))); + } + + #[test] + fn migration_creates_config_authority_without_changing_applied_migrations() { + let store = SqliteWorkspaceStore::in_memory().unwrap(); + store + .with_conn(|conn| { + for table in [ + "workspace_config_trees", + "workspace_config_entries", + "workspace_config_tree_revisions", + ] { + let exists: bool = conn.query_row( + "SELECT EXISTS(SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?1)", + [table], + |row| row.get(0), + )?; + assert!(exists, "missing {table}"); + } + Ok(()) + }) + .unwrap(); + } +} diff --git a/crates/workspace-server/src/lib.rs b/crates/workspace-server/src/lib.rs index daa9f66e..811a3f0a 100644 --- a/crates/workspace-server/src/lib.rs +++ b/crates/workspace-server/src/lib.rs @@ -8,6 +8,7 @@ pub mod auth; pub mod authority; pub mod companion; pub mod config; +pub mod config_source; pub mod hosts; pub mod identity; pub mod memory_backend; @@ -106,6 +107,8 @@ pub enum Error { TicketAssignmentConflict(String), #[error("Workdir attachment conflict: {0}")] WorkdirAttachmentConflict(String), + #[error("Workspace config update conflict: {0}")] + WorkspaceConfigConflict(String), #[error("Registry inconsistency: {0}")] RegistryInconsistency(String), #[error("Worker source identity is invalid: {0}")] diff --git a/crates/workspace-server/src/server.rs b/crates/workspace-server/src/server.rs index 8a0aac22..afeede77 100644 --- a/crates/workspace-server/src/server.rs +++ b/crates/workspace-server/src/server.rs @@ -12,6 +12,7 @@ use axum::response::{IntoResponse, Response}; use axum::routing::{delete, get, patch, post, put}; use axum::{Json, Router}; use chrono::{Duration, SecondsFormat, Utc}; +use config_source::ConfigTreeSnapshot; use flow::{FlowSourceKind, FlowSourceResolveRequest, ResolvedFlowSource}; use futures::{SinkExt, StreamExt}; use memory::backend::{ @@ -61,6 +62,7 @@ use crate::companion::{ CompanionStatusResponse, CompanionTranscriptProjection, }; use crate::config::{BackendRuntimesConfigFile, RemoteRuntimeConfigFile, resolve_remote_runtime}; +use crate::config_source::{ConfigCommitRequest, ConfigPreviewRequest}; use crate::hosts::{ ConfigBundleCheckResult, ConfigBundleSyncResult, DiagnosticSeverity, EMBEDDED_RUNTIME_ID, EmbeddedWorkerRuntime, HostSummary, RemoteRuntimeConfig, RemoteWorkerRuntime, @@ -252,6 +254,7 @@ const ORCHESTRATOR_ATTENTION_PROMPT: &str = include_str!(concat!( pub struct WorkspaceApi { pub(crate) config: ServerConfig, pub(crate) store: Arc, + config_store: Arc, authority: SqliteWorkspaceAuthority, runtime: Arc, companion: Arc, @@ -741,7 +744,11 @@ impl WorkspaceApi { let runtime = Arc::new(runtime); let companion = Arc::new(CompanionConsole::disabled()); let observation_proxy = BackendObservationProxy::new(config.runtime_event_sources.clone()); + let config_store = Arc::new(crate::SqliteWorkspaceStore::open( + config.database_path.clone(), + )?); let api = Self { + config_store, authority: SqliteWorkspaceAuthority::new( config.database_path.clone(), config.workspace_id.clone(), @@ -1132,6 +1139,22 @@ pub fn build_router(api: WorkspaceApi) -> Router { "/api/w/{workspace_id}/settings/workspace", get(scoped_get_workspace_settings).put(scoped_update_workspace_settings), ) + .route( + "/api/w/{workspace_id}/config/source-tree", + get(scoped_get_workspace_config_tree), + ) + .route( + "/api/w/{workspace_id}/config/source-tree/preview", + post(scoped_preview_workspace_config_tree), + ) + .route( + "/api/w/{workspace_id}/config/source-tree/commit", + post(scoped_commit_workspace_config_tree), + ) + .route( + "/api/w/{workspace_id}/config/source-tree/entries/{*path}", + get(scoped_get_workspace_config_entry), + ) .route( "/api/w/{workspace_id}/settings/profiles", get(scoped_get_profile_settings).post(scoped_create_profile_source), @@ -2418,6 +2441,95 @@ async fn scoped_update_workspace_settings( )) } +#[derive(Debug, Deserialize)] +struct WorkspaceConfigEntryPath { + workspace_id: String, + path: String, +} + +#[derive(Debug, Serialize)] +struct WorkspaceConfigTreeResponse { + snapshot: ConfigTreeSnapshot, + contract: config_source::ToolchainContract, + projection_digest: String, +} + +async fn scoped_get_workspace_config_tree( + State(api): State, + AxumPath(path): AxumPath, +) -> ApiResult> { + validate_workspace_scope(&api, &path.workspace_id)?; + let state = api + .config_store + .load_workspace_config(&path.workspace_id)? + .unwrap_or_else(|| crate::config_source::WorkspaceConfigState { + snapshot: ConfigTreeSnapshot::empty(), + contract: config_source::ToolchainContract::new( + config_source::DEFAULT_SCHEMA_VERSION, + Vec::new(), + config_source::DEFAULT_IMPORT_POLICY_VERSION, + ), + projection_digest: config_source::digest_bytes(b"[]"), + }); + Ok(Json(WorkspaceConfigTreeResponse { + snapshot: state.snapshot, + contract: state.contract, + projection_digest: state.projection_digest, + })) +} + +async fn scoped_get_workspace_config_entry( + State(api): State, + AxumPath(path): AxumPath, +) -> ApiResult> { + validate_workspace_scope(&api, &path.workspace_id)?; + let virtual_path = config_source::VirtualPath::parse(&path.path) + .map_err(|error| ApiError::from(Error::InvalidInput(error.to_string())))?; + let state = api + .config_store + .load_workspace_config(&path.workspace_id)? + .ok_or_else(|| { + ApiError::from(Error::InvalidRecordId("virtual config source tree".into())) + })?; + let entry = state + .snapshot + .get(&virtual_path) + .cloned() + .ok_or_else(|| ApiError::from(Error::InvalidRecordId(path.path)))?; + Ok(Json(entry)) +} + +async fn scoped_preview_workspace_config_tree( + State(api): State, + AxumPath(path): AxumPath, + Json(request): Json, +) -> ApiResult> { + validate_workspace_scope(&api, &path.workspace_id)?; + Ok(Json( + api.config_store + .preview_workspace_config(&path.workspace_id, &request)?, + )) +} + +async fn scoped_commit_workspace_config_tree( + State(api): State, + AxumPath(path): AxumPath, + Json(request): Json, +) -> ApiResult<(StatusCode, Json)> { + validate_workspace_scope(&api, &path.workspace_id)?; + let state = api + .config_store + .evaluate_and_commit_workspace_config(&path.workspace_id, &request)?; + Ok(( + StatusCode::CREATED, + Json(WorkspaceConfigTreeResponse { + snapshot: state.snapshot, + contract: state.contract, + projection_digest: state.projection_digest, + }), + )) +} + async fn scoped_get_profile_settings( State(api): State, AxumPath(path): AxumPath, @@ -11255,9 +11367,9 @@ impl IntoResponse for ApiError { Error::BrowserMergeConfirmationRequired | Error::BrowserReopenConfirmationRequired => { StatusCode::FORBIDDEN } - Error::TicketAssignmentConflict(_) | Error::WorkdirAttachmentConflict(_) => { - StatusCode::CONFLICT - } + Error::TicketAssignmentConflict(_) + | Error::WorkdirAttachmentConflict(_) + | Error::WorkspaceConfigConflict(_) => StatusCode::CONFLICT, Error::WorkerSourceIdentity(_) | Error::InvalidInput(_) => StatusCode::BAD_REQUEST, Error::InvalidRuntimeIdentifier { .. } | Error::ReservedWorkerName(_) => { StatusCode::BAD_REQUEST diff --git a/crates/workspace-server/src/store.rs b/crates/workspace-server/src/store.rs index 23236931..019c47f5 100644 --- a/crates/workspace-server/src/store.rs +++ b/crates/workspace-server/src/store.rs @@ -166,6 +166,11 @@ const MIGRATIONS: &[Migration] = &[ name: "create Worker mutation source proof replay guard", apply: create_worker_mutation_source_proof_replay_guard, }, + Migration { + version: 30, + name: "create Workspace virtual config source authority", + apply: create_workspace_config_source_authority, + }, ]; struct Migration { @@ -4527,6 +4532,49 @@ fn current_schema_version(conn: &Connection) -> Result { .map_err(Error::from) } +fn create_workspace_config_source_authority(conn: &Connection) -> Result<()> { + conn.execute_batch( + r#" + CREATE TABLE workspace_config_trees ( + workspace_id TEXT PRIMARY KEY, + revision INTEGER NOT NULL CHECK (revision >= 0), + tree_digest TEXT NOT NULL, + schema_version INTEGER NOT NULL, + entrypoints_json TEXT NOT NULL, + decodal_version TEXT NOT NULL, + import_policy_version INTEGER NOT NULL, + toolchain_fingerprint TEXT NOT NULL, + projection_digest TEXT NOT NULL, + updated_at TEXT NOT NULL, + FOREIGN KEY (workspace_id) REFERENCES workspaces(workspace_id) ON DELETE CASCADE + ); + CREATE TABLE workspace_config_entries ( + workspace_id TEXT NOT NULL, + path TEXT NOT NULL, + content_type TEXT NOT NULL, + content TEXT NOT NULL, + content_digest TEXT NOT NULL, + PRIMARY KEY (workspace_id, path), + FOREIGN KEY (workspace_id) REFERENCES workspace_config_trees(workspace_id) ON DELETE CASCADE + ); + CREATE INDEX idx_workspace_config_entries_prefix + ON workspace_config_entries(workspace_id, path); + CREATE TABLE workspace_config_tree_revisions ( + workspace_id TEXT NOT NULL, + revision INTEGER NOT NULL, + tree_digest TEXT NOT NULL, + toolchain_fingerprint TEXT NOT NULL, + projection_digest TEXT NOT NULL, + manifest_json TEXT NOT NULL, + created_at TEXT NOT NULL, + PRIMARY KEY (workspace_id, revision), + FOREIGN KEY (workspace_id) REFERENCES workspaces(workspace_id) ON DELETE CASCADE + ); + "#, + )?; + Ok(()) +} + fn create_worker_mutation_source_proof_replay_guard(conn: &Connection) -> Result<()> { conn.execute_batch( r#" From 8c6dcb948377216501f4d4bec248ac5586596efe Mon Sep 17 00:00:00 2001 From: Hare Date: Thu, 13 Aug 2026 22:34:56 +0900 Subject: [PATCH 03/12] web: edit virtual config sources with WASM core --- web/workspace/deno.lock | 13 + .../config-source/ConfigSourceEditor.svelte | 240 ++++++++ .../lib/workspace/config-source/api.test.ts | 60 ++ .../src/lib/workspace/config-source/api.ts | 70 +++ .../generated/config_source_wasm.d.ts | 50 ++ .../generated/config_source_wasm.js | 582 ++++++++++++++++++ .../generated/config_source_wasm_bg.wasm | Bin 0 -> 435804 bytes .../generated/config_source_wasm_bg.wasm.d.ts | 15 + .../lib/workspace/config-source/toolchain.ts | 76 +++ .../config-source/toolchain.worker.ts | 69 +++ .../src/lib/workspace/config-source/types.ts | 92 +++ .../src/lib/workspace/settings/model.ts | 15 + .../src/lib/workspace/styles/settings.css | 151 +++++ .../settings/configuration/+page.svelte | 27 + 14 files changed, 1460 insertions(+) create mode 100644 web/workspace/src/lib/workspace/config-source/ConfigSourceEditor.svelte create mode 100644 web/workspace/src/lib/workspace/config-source/api.test.ts create mode 100644 web/workspace/src/lib/workspace/config-source/api.ts create mode 100644 web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.d.ts create mode 100644 web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.js create mode 100644 web/workspace/src/lib/workspace/config-source/generated/config_source_wasm_bg.wasm create mode 100644 web/workspace/src/lib/workspace/config-source/generated/config_source_wasm_bg.wasm.d.ts create mode 100644 web/workspace/src/lib/workspace/config-source/toolchain.ts create mode 100644 web/workspace/src/lib/workspace/config-source/toolchain.worker.ts create mode 100644 web/workspace/src/lib/workspace/config-source/types.ts create mode 100644 web/workspace/src/routes/w/[workspaceId]/settings/configuration/+page.svelte diff --git a/web/workspace/deno.lock b/web/workspace/deno.lock index fbd75248..21b562fc 100644 --- a/web/workspace/deno.lock +++ b/web/workspace/deno.lock @@ -1,6 +1,8 @@ { "version": "5", "specifiers": { + "jsr:@std/assert@*": "1.0.19", + "jsr:@std/internal@^1.0.12": "1.0.14", "npm:@codemirror/state@6.5.2": "6.5.2", "npm:@codemirror/view@6.38.8": "6.38.8", "npm:@fontsource/ibm-plex-mono@5.3.0": "5.3.0", @@ -20,6 +22,17 @@ "npm:typescript@5.9.3": "5.9.3", "npm:vite@7.2.7": "7.2.7" }, + "jsr": { + "@std/assert@1.0.19": { + "integrity": "eaada96ee120cb980bc47e040f82814d786fe8162ecc53c91d8df60b8755991e", + "dependencies": [ + "jsr:@std/internal" + ] + }, + "@std/internal@1.0.14": { + "integrity": "291516b3d4c35024d6ffbc0a9df5bf4c64116e05b50012cf846710152d2ffdf7" + } + }, "npm": { "@codemirror/language@6.12.4": { "integrity": "sha512-1q4PaT+o6PbgpkJt4Q8Fv5XJxTy4FUZ4MWETtyiDw3J0Pyr9E2vqcKL+k9wcvjNTIsauxvE7OfmWj3FRPHQ76A==", diff --git a/web/workspace/src/lib/workspace/config-source/ConfigSourceEditor.svelte b/web/workspace/src/lib/workspace/config-source/ConfigSourceEditor.svelte new file mode 100644 index 00000000..aab09791 --- /dev/null +++ b/web/workspace/src/lib/workspace/config-source/ConfigSourceEditor.svelte @@ -0,0 +1,240 @@ + + +
+ + +
+
+
+ Virtual path + {selectedPath || "Select or create a source"} +
+
+ + + + + +
+
+ source = value} /> +

{status}

+ {#if diagnostics.length > 0} +
    + {#each diagnostics as diagnostic} +
  1. + {diagnostic.kind} + {diagnostic.message} + bytes {diagnostic.span.start_byte}–{diagnostic.span.end_byte} +
  2. + {/each} +
+ {/if} +
+
diff --git a/web/workspace/src/lib/workspace/config-source/api.test.ts b/web/workspace/src/lib/workspace/config-source/api.test.ts new file mode 100644 index 00000000..e072e44d --- /dev/null +++ b/web/workspace/src/lib/workspace/config-source/api.test.ts @@ -0,0 +1,60 @@ +/// + +import { assert, assertEquals } from "jsr:@std/assert"; +import { + commitConfigTree, + fetchConfigEntry, + fetchConfigTree, + previewConfigTree, +} from "./api.ts"; + +function response(body: unknown, status = 200): Response { + return new Response(JSON.stringify(body), { + status, + headers: { "content-type": "application/json" }, + }); +} + +Deno.test("config source API stays workspace-scoped and separates preview from commit", async () => { + const calls: Array<{ url: string; init?: RequestInit }> = []; + const fetcher = ((input: string | URL | Request, init?: RequestInit) => { + calls.push({ url: String(input), init }); + return Promise.resolve(response({ ok: true })); + }) as typeof fetch; + + await fetchConfigTree("w/one", fetcher); + await fetchConfigEntry("w/one", "profiles/main.dcdl", fetcher); + await previewConfigTree("w/one", { changes: [], entrypoints: [] }, fetcher); + await commitConfigTree("w/one", { + base_revision: 4, + base_digest: "sha256:base", + changes: [], + entrypoints: [], + }, fetcher); + + assertEquals(calls.map((call) => call.url), [ + "/api/w/w%2Fone/config/source-tree", + "/api/w/w%2Fone/config/source-tree/entries/profiles%2Fmain.dcdl", + "/api/w/w%2Fone/config/source-tree/preview", + "/api/w/w%2Fone/config/source-tree/commit", + ]); + assertEquals(calls[2].init?.method, "POST"); + assertEquals(calls[3].init?.method, "POST"); + assert( + String(calls[3].init?.body).includes('"base_digest":"sha256:base"'), + ); +}); + +Deno.test("config source API surfaces failed evaluation instead of treating it as a draft write", async () => { + const fetcher = (() => + Promise.resolve( + new Response("structured diagnostics", { status: 422 }), + )) as typeof fetch; + let message = ""; + try { + await previewConfigTree("w", { changes: [], entrypoints: [] }, fetcher); + } catch (error) { + message = String(error); + } + assert(message.includes("structured diagnostics")); +}); diff --git a/web/workspace/src/lib/workspace/config-source/api.ts b/web/workspace/src/lib/workspace/config-source/api.ts new file mode 100644 index 00000000..40722e87 --- /dev/null +++ b/web/workspace/src/lib/workspace/config-source/api.ts @@ -0,0 +1,70 @@ +import type { + ConfigCommitRequest, + ConfigEntry, + EvaluatedConfigCandidate, + WorkspaceConfigTreeResponse, +} from "./types.ts"; + +function sourceTreeUrl(workspaceId: string): string { + return `/api/w/${encodeURIComponent(workspaceId)}/config/source-tree`; +} + +async function readJson(response: Response): Promise { + if (!response.ok) { + const body = await response.text(); + throw new Error(body || `${response.status} ${response.statusText}`); + } + return await response.json() as T; +} + +export async function fetchConfigTree( + workspaceId: string, + fetcher: typeof fetch = fetch, +): Promise { + return await readJson( + await fetcher(sourceTreeUrl(workspaceId), { + headers: { accept: "application/json" }, + }), + ); +} + +export async function fetchConfigEntry( + workspaceId: string, + path: string, + fetcher: typeof fetch = fetch, +): Promise { + return await readJson( + await fetcher( + `${sourceTreeUrl(workspaceId)}/entries/${encodeURIComponent(path)}`, + { headers: { accept: "application/json" } }, + ), + ); +} + +export async function previewConfigTree( + workspaceId: string, + request: Omit, + fetcher: typeof fetch = fetch, +): Promise { + return await readJson( + await fetcher(`${sourceTreeUrl(workspaceId)}/preview`, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify(request), + }), + ); +} + +export async function commitConfigTree( + workspaceId: string, + request: ConfigCommitRequest, + fetcher: typeof fetch = fetch, +): Promise { + return await readJson( + await fetcher(`${sourceTreeUrl(workspaceId)}/commit`, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify(request), + }), + ); +} diff --git a/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.d.ts b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.d.ts new file mode 100644 index 00000000..88d3b53b --- /dev/null +++ b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.d.ts @@ -0,0 +1,50 @@ +/* tslint:disable */ +/* eslint-disable */ + +export function analyze_snapshot(snapshot: any, entrypoint: string, source_override?: string | null): any; + +export function evaluate_snapshot(snapshot: any, contract: any): any; + +export function formatSource(source: string): string; + +export function format_source(source: string): string; + +export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; + +export interface InitOutput { + readonly memory: WebAssembly.Memory; + readonly analyze_snapshot: (a: any, b: number, c: number, d: number, e: number) => [number, number, number]; + readonly evaluate_snapshot: (a: any, b: any) => [number, number, number]; + readonly format_source: (a: number, b: number) => [number, number, number, number]; + readonly formatSource: (a: number, b: number) => [number, number]; + readonly __wbindgen_malloc: (a: number, b: number) => number; + readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; + readonly __wbindgen_exn_store: (a: number) => void; + readonly __externref_table_alloc: () => number; + readonly __wbindgen_externrefs: WebAssembly.Table; + readonly __externref_table_dealloc: (a: number) => void; + readonly __wbindgen_free: (a: number, b: number, c: number) => void; + readonly __wbindgen_start: () => void; +} + +export type SyncInitInput = BufferSource | WebAssembly.Module; + +/** + * Instantiates the given `module`, which can either be bytes or + * a precompiled `WebAssembly.Module`. + * + * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated. + * + * @returns {InitOutput} + */ +export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput; + +/** + * If `module_or_path` is {RequestInfo} or {URL}, makes a request and + * for everything else, calls `WebAssembly.instantiate` directly. + * + * @param {{ module_or_path: InitInput | Promise }} module_or_path - Passing `InitInput` directly is deprecated. + * + * @returns {Promise} + */ +export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise } | InitInput | Promise): Promise; diff --git a/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.js b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.js new file mode 100644 index 00000000..0af013fc --- /dev/null +++ b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.js @@ -0,0 +1,582 @@ +/* @ts-self-types="./config_source_wasm.d.ts" */ + +/** + * @param {any} snapshot + * @param {string} entrypoint + * @param {string | null} [source_override] + * @returns {any} + */ +export function analyze_snapshot(snapshot, entrypoint, source_override) { + const ptr0 = passStringToWasm0(entrypoint, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + var ptr1 = isLikeNone(source_override) ? 0 : passStringToWasm0(source_override, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len1 = WASM_VECTOR_LEN; + const ret = wasm.analyze_snapshot(snapshot, ptr0, len0, ptr1, len1); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); +} + +/** + * @param {any} snapshot + * @param {any} contract + * @returns {any} + */ +export function evaluate_snapshot(snapshot, contract) { + const ret = wasm.evaluate_snapshot(snapshot, contract); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); +} + +/** + * @param {string} source + * @returns {string} + */ +export function formatSource(source) { + let deferred2_0; + let deferred2_1; + try { + const ptr0 = passStringToWasm0(source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.formatSource(ptr0, len0); + deferred2_0 = ret[0]; + deferred2_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } +} + +/** + * @param {string} source + * @returns {string} + */ +export function format_source(source) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.format_source(ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } +} + +function __wbg_get_imports() { + const import0 = { + __proto__: null, + __wbg_Error_2e59b1b37a9a34c3: function(arg0, arg1) { + const ret = Error(getStringFromWasm0(arg0, arg1)); + return ret; + }, + __wbg_Number_e6ffdb596c888833: function(arg0) { + const ret = Number(arg0); + return ret; + }, + __wbg_String_8564e559799eccda: function(arg0, arg1) { + const ret = String(arg1); + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, + __wbg___wbindgen_bigint_get_as_i64_2c5082002e4826e2: function(arg0, arg1) { + const v = arg1; + const ret = typeof(v) === 'bigint' ? v : undefined; + getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); + }, + __wbg___wbindgen_boolean_get_a86c216575a75c30: function(arg0) { + const v = arg0; + const ret = typeof(v) === 'boolean' ? v : undefined; + return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0; + }, + __wbg___wbindgen_debug_string_dd5d2d07ce9e6c57: function(arg0, arg1) { + const ret = debugString(arg1); + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, + __wbg___wbindgen_in_4bd7a57e54337366: function(arg0, arg1) { + const ret = arg0 in arg1; + return ret; + }, + __wbg___wbindgen_is_bigint_6c98f7e945dacdde: function(arg0) { + const ret = typeof(arg0) === 'bigint'; + return ret; + }, + __wbg___wbindgen_is_function_49868bde5eb1e745: function(arg0) { + const ret = typeof(arg0) === 'function'; + return ret; + }, + __wbg___wbindgen_is_object_40c5a80572e8f9d3: function(arg0) { + const val = arg0; + const ret = typeof(val) === 'object' && val !== null; + return ret; + }, + __wbg___wbindgen_is_string_b29b5c5a8065ba1a: function(arg0) { + const ret = typeof(arg0) === 'string'; + return ret; + }, + __wbg___wbindgen_is_undefined_c0cca72b82b86f4d: function(arg0) { + const ret = arg0 === undefined; + return ret; + }, + __wbg___wbindgen_jsval_eq_7d430e744a913d26: function(arg0, arg1) { + const ret = arg0 === arg1; + return ret; + }, + __wbg___wbindgen_jsval_loose_eq_3a72ae764d46d944: function(arg0, arg1) { + const ret = arg0 == arg1; + return ret; + }, + __wbg___wbindgen_number_get_7579aab02a8a620c: function(arg0, arg1) { + const obj = arg1; + const ret = typeof(obj) === 'number' ? obj : undefined; + getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); + }, + __wbg___wbindgen_string_get_914df97fcfa788f2: function(arg0, arg1) { + const obj = arg1; + const ret = typeof(obj) === 'string' ? obj : undefined; + var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, + __wbg___wbindgen_throw_81fc77679af83bc6: function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }, + __wbg_call_7f2987183bb62793: function() { return handleError(function (arg0, arg1) { + const ret = arg0.call(arg1); + return ret; + }, arguments); }, + __wbg_done_547d467e97529006: function(arg0) { + const ret = arg0.done; + return ret; + }, + __wbg_entries_616b1a459b85be0b: function(arg0) { + const ret = Object.entries(arg0); + return ret; + }, + __wbg_get_4848e350b40afc16: function(arg0, arg1) { + const ret = arg0[arg1 >>> 0]; + return ret; + }, + __wbg_get_ed0642c4b9d31ddf: function() { return handleError(function (arg0, arg1) { + const ret = Reflect.get(arg0, arg1); + return ret; + }, arguments); }, + __wbg_get_unchecked_7d7babe32e9e6a54: function(arg0, arg1) { + const ret = arg0[arg1 >>> 0]; + return ret; + }, + __wbg_get_with_ref_key_6412cf3094599694: function(arg0, arg1) { + const ret = arg0[arg1]; + return ret; + }, + __wbg_instanceof_ArrayBuffer_ff7c1337a5e3b33a: function(arg0) { + let result; + try { + result = arg0 instanceof ArrayBuffer; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, + __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) { + let result; + try { + result = arg0 instanceof Uint8Array; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, + __wbg_isArray_db61795ad004c139: function(arg0) { + const ret = Array.isArray(arg0); + return ret; + }, + __wbg_isSafeInteger_ea83862ba994770c: function(arg0) { + const ret = Number.isSafeInteger(arg0); + return ret; + }, + __wbg_iterator_de403ef31815a3e6: function() { + const ret = Symbol.iterator; + return ret; + }, + __wbg_length_0c32cb8543c8e4c8: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_length_6e821edde497a532: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_new_4f9fafbb3909af72: function() { + const ret = new Object(); + return ret; + }, + __wbg_new_99cabae501c0a8a0: function() { + const ret = new Map(); + return ret; + }, + __wbg_new_a560378ea1240b14: function(arg0) { + const ret = new Uint8Array(arg0); + return ret; + }, + __wbg_new_f3c9df4f38f3f798: function() { + const ret = new Array(); + return ret; + }, + __wbg_next_01132ed6134b8ef5: function(arg0) { + const ret = arg0.next; + return ret; + }, + __wbg_next_b3713ec761a9dbfd: function() { return handleError(function (arg0) { + const ret = arg0.next(); + return ret; + }, arguments); }, + __wbg_prototypesetcall_3e05eb9545565046: function(arg0, arg1, arg2) { + Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); + }, + __wbg_set_08463b1df38a7e29: function(arg0, arg1, arg2) { + const ret = arg0.set(arg1, arg2); + return ret; + }, + __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) { + arg0[arg1] = arg2; + }, + __wbg_set_6c60b2e8ad0e9383: function(arg0, arg1, arg2) { + arg0[arg1 >>> 0] = arg2; + }, + __wbg_value_7f6052747ccf940f: function(arg0) { + const ret = arg0.value; + return ret; + }, + __wbindgen_cast_0000000000000001: function(arg0) { + // Cast intrinsic for `F64 -> Externref`. + const ret = arg0; + return ret; + }, + __wbindgen_cast_0000000000000002: function(arg0) { + // Cast intrinsic for `I64 -> Externref`. + const ret = arg0; + return ret; + }, + __wbindgen_cast_0000000000000003: function(arg0, arg1) { + // Cast intrinsic for `Ref(String) -> Externref`. + const ret = getStringFromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_cast_0000000000000004: function(arg0) { + // Cast intrinsic for `U64 -> Externref`. + const ret = BigInt.asUintN(64, arg0); + return ret; + }, + __wbindgen_init_externref_table: function() { + const table = wasm.__wbindgen_externrefs; + const offset = table.grow(4); + table.set(0, undefined); + table.set(offset + 0, undefined); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); + }, + }; + return { + __proto__: null, + "./config_source_wasm_bg.js": import0, + }; +} + +function addToExternrefTable0(obj) { + const idx = wasm.__externref_table_alloc(); + wasm.__wbindgen_externrefs.set(idx, obj); + return idx; +} + +function debugString(val) { + // primitive types + const type = typeof val; + if (type == 'number' || type == 'boolean' || val == null) { + return `${val}`; + } + if (type == 'string') { + return `"${val}"`; + } + if (type == 'symbol') { + const description = val.description; + if (description == null) { + return 'Symbol'; + } else { + return `Symbol(${description})`; + } + } + if (type == 'function') { + const name = val.name; + if (typeof name == 'string' && name.length > 0) { + return `Function(${name})`; + } else { + return 'Function'; + } + } + // objects + if (Array.isArray(val)) { + const length = val.length; + let debug = '['; + if (length > 0) { + debug += debugString(val[0]); + } + for(let i = 1; i < length; i++) { + debug += ', ' + debugString(val[i]); + } + debug += ']'; + return debug; + } + // Test for built-in + const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); + let className; + if (builtInMatches && builtInMatches.length > 1) { + className = builtInMatches[1]; + } else { + // Failed to match the standard '[object ClassName]' + return toString.call(val); + } + if (className == 'Object') { + // we're a user defined class or Object + // JSON.stringify avoids problems with cycles, and is generally much + // easier than looping through ownProperties of `val`. + try { + return 'Object(' + JSON.stringify(val) + ')'; + } catch (_) { + return 'Object'; + } + } + // errors + if (val instanceof Error) { + return `${val.name}: ${val.message}\n${val.stack}`; + } + // TODO we could test for more things here, like `Set`s and `Map`s. + return className; +} + +function getArrayU8FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); +} + +let cachedDataViewMemory0 = null; +function getDataViewMemory0() { + if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) { + cachedDataViewMemory0 = new DataView(wasm.memory.buffer); + } + return cachedDataViewMemory0; +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return decodeText(ptr, len); +} + +let cachedUint8ArrayMemory0 = null; +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} + +function handleError(f, args) { + try { + return f.apply(this, args); + } catch (e) { + const idx = addToExternrefTable0(e); + wasm.__wbindgen_exn_store(idx); + } +} + +function isLikeNone(x) { + return x === undefined || x === null; +} + +function passStringToWasm0(arg, malloc, realloc) { + if (realloc === undefined) { + const buf = cachedTextEncoder.encode(arg); + const ptr = malloc(buf.length, 1) >>> 0; + getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr; + } + + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + + const mem = getUint8ArrayMemory0(); + + let offset = 0; + + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 0x7F) break; + mem[ptr + offset] = code; + } + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); + } + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); + const ret = cachedTextEncoder.encodeInto(arg, view); + + offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; + } + + WASM_VECTOR_LEN = offset; + return ptr; +} + +function takeFromExternrefTable0(idx) { + const value = wasm.__wbindgen_externrefs.get(idx); + wasm.__externref_table_dealloc(idx); + return value; +} + +let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); +cachedTextDecoder.decode(); +const MAX_SAFARI_DECODE_BYTES = 2146435072; +let numBytesDecoded = 0; +function decodeText(ptr, len) { + numBytesDecoded += len; + if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { + cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + cachedTextDecoder.decode(); + numBytesDecoded = len; + } + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} + +const cachedTextEncoder = new TextEncoder(); + +if (!('encodeInto' in cachedTextEncoder)) { + cachedTextEncoder.encodeInto = function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; + }; +} + +let WASM_VECTOR_LEN = 0; + +let wasmModule, wasm; +function __wbg_finalize_init(instance, module) { + wasm = instance.exports; + wasmModule = module; + cachedDataViewMemory0 = null; + cachedUint8ArrayMemory0 = null; + wasm.__wbindgen_start(); + return wasm; +} + +async function __wbg_load(module, imports) { + if (typeof Response === 'function' && module instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === 'function') { + try { + return await WebAssembly.instantiateStreaming(module, imports); + } catch (e) { + const validResponse = module.ok && expectedResponseType(module.type); + + if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + + } else { throw e; } + } + } + + const bytes = await module.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + } else { + const instance = await WebAssembly.instantiate(module, imports); + + if (instance instanceof WebAssembly.Instance) { + return { instance, module }; + } else { + return instance; + } + } + + function expectedResponseType(type) { + switch (type) { + case 'basic': case 'cors': case 'default': return true; + } + return false; + } +} + +function initSync(module) { + if (wasm !== undefined) return wasm; + + + if (module !== undefined) { + if (Object.getPrototypeOf(module) === Object.prototype) { + ({module} = module) + } else { + console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + } + } + + const imports = __wbg_get_imports(); + if (!(module instanceof WebAssembly.Module)) { + module = new WebAssembly.Module(module); + } + const instance = new WebAssembly.Instance(module, imports); + return __wbg_finalize_init(instance, module); +} + +async function __wbg_init(module_or_path) { + if (wasm !== undefined) return wasm; + + + if (module_or_path !== undefined) { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({module_or_path} = module_or_path) + } else { + console.warn('using deprecated parameters for the initialization function; pass a single object instead') + } + } + + if (module_or_path === undefined) { + module_or_path = new URL('config_source_wasm_bg.wasm', import.meta.url); + } + const imports = __wbg_get_imports(); + + if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) { + module_or_path = fetch(module_or_path); + } + + const { instance, module } = await __wbg_load(await module_or_path, imports); + + return __wbg_finalize_init(instance, module); +} + +export { initSync, __wbg_init as default }; diff --git a/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm_bg.wasm b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5e6dcaddda46a2814a2063cccda3d3c017f56fe7 GIT binary patch literal 435804 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 eE8i2Z2YDu6%OQsBRq4nRud}{ [number, number, number]; +export const evaluate_snapshot: (a: any, b: any) => [number, number, number]; +export const format_source: (a: number, b: number) => [number, number, number, number]; +export const formatSource: (a: number, b: number) => [number, number]; +export const __wbindgen_malloc: (a: number, b: number) => number; +export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; +export const __wbindgen_exn_store: (a: number) => void; +export const __externref_table_alloc: () => number; +export const __wbindgen_externrefs: WebAssembly.Table; +export const __externref_table_dealloc: (a: number) => void; +export const __wbindgen_free: (a: number, b: number, c: number) => void; +export const __wbindgen_start: () => void; diff --git a/web/workspace/src/lib/workspace/config-source/toolchain.ts b/web/workspace/src/lib/workspace/config-source/toolchain.ts new file mode 100644 index 00000000..b0f98fa9 --- /dev/null +++ b/web/workspace/src/lib/workspace/config-source/toolchain.ts @@ -0,0 +1,76 @@ +import type { + ConfigDiagnostic, + ConfigTreeSnapshot, + ToolchainContract, +} from "./types.ts"; +import type { + ConfigSourceWorkerRequest, + ConfigSourceWorkerResponse, +} from "./toolchain.worker.ts"; + +type ConfigSourceWorkerCommand = + | Omit, "id"> + | Omit, "id"> + | Omit, "id">; + +export class ConfigSourceToolchain { + #worker: Worker; + #nextId = 1; + #pending = new Map< + number, + { resolve: (value: unknown) => void; reject: (reason: unknown) => void } + >(); + + constructor( + worker = new Worker(new URL("./toolchain.worker.ts", import.meta.url), { + type: "module", + }), + ) { + this.#worker = worker; + worker.addEventListener( + "message", + (event: MessageEvent) => { + const pending = this.#pending.get(event.data.id); + if (!pending) return; + this.#pending.delete(event.data.id); + if (event.data.ok) pending.resolve(event.data.result); + else pending.reject(event.data.error); + }, + ); + } + + analyze( + snapshot: ConfigTreeSnapshot, + path: string, + source?: string, + ): Promise { + return this.#request({ kind: "analyze", snapshot, path, source }); + } + + evaluate(snapshot: ConfigTreeSnapshot, contract: ToolchainContract) { + return this.#request({ kind: "evaluate", snapshot, contract }); + } + + format(source: string): Promise { + return this.#request({ kind: "format", source }); + } + + close(): void { + this.#worker.terminate(); + for (const pending of this.#pending.values()) { + pending.reject(new Error("config source toolchain was closed")); + } + this.#pending.clear(); + } + + #request(request: ConfigSourceWorkerCommand): Promise { + const id = this.#nextId++; + return new Promise((resolve, reject) => { + this.#pending.set(id, { + resolve: (value) => resolve(value as T), + reject, + }); + this.#worker.postMessage({ ...request, id }); + }); + } +} diff --git a/web/workspace/src/lib/workspace/config-source/toolchain.worker.ts b/web/workspace/src/lib/workspace/config-source/toolchain.worker.ts new file mode 100644 index 00000000..aec5bc4f --- /dev/null +++ b/web/workspace/src/lib/workspace/config-source/toolchain.worker.ts @@ -0,0 +1,69 @@ +import init, { + analyze_snapshot, + evaluate_snapshot, + format_source, +} from "./generated/config_source_wasm.js"; +import type { + ConfigDiagnostic, + ConfigTreeSnapshot, + ToolchainContract, +} from "./types.ts"; + +export type ConfigSourceWorkerRequest = + | { + id: number; + kind: "analyze"; + snapshot: ConfigTreeSnapshot; + path: string; + source?: string; + } + | { + id: number; + kind: "evaluate"; + snapshot: ConfigTreeSnapshot; + contract: ToolchainContract; + } + | { id: number; kind: "format"; source: string }; + +export type ConfigSourceWorkerResponse = + | { id: number; ok: true; result: unknown } + | { id: number; ok: false; error: unknown }; + +const ready = init(); + +self.onmessage = async ( + event: MessageEvent, +): Promise => { + const request = event.data; + try { + await ready; + let result: unknown; + switch (request.kind) { + case "analyze": + result = analyze_snapshot( + request.snapshot, + request.path, + request.source, + ) as ConfigDiagnostic[]; + break; + case "evaluate": + result = evaluate_snapshot(request.snapshot, request.contract); + break; + case "format": + result = format_source(request.source); + break; + } + self.postMessage({ id: request.id, ok: true, result }); + } catch (error) { + self.postMessage({ + id: request.id, + ok: false, + error: normalizeError(error), + }); + } +}; + +function normalizeError(error: unknown): unknown { + if (error instanceof Error) return error.message; + return error; +} diff --git a/web/workspace/src/lib/workspace/config-source/types.ts b/web/workspace/src/lib/workspace/config-source/types.ts new file mode 100644 index 00000000..7f910c8e --- /dev/null +++ b/web/workspace/src/lib/workspace/config-source/types.ts @@ -0,0 +1,92 @@ +export type VirtualPath = string; + +export type ConfigContentType = "decodal" | "text"; + +export interface ConfigEntry { + path: VirtualPath; + content_type: ConfigContentType; + content: string; + content_digest: string; +} + +export interface ConfigTreeSnapshot { + revision: number; + digest: string; + entries: Record; +} + +export type ConfigTreeChange = + | { + kind: "create"; + path: VirtualPath; + content_type: ConfigContentType; + content: string; + } + | { + kind: "update"; + path: VirtualPath; + expected_digest: string; + content: string; + } + | { + kind: "rename"; + from: VirtualPath; + to: VirtualPath; + expected_digest: string; + } + | { + kind: "delete"; + path: VirtualPath; + expected_digest: string; + }; + +export interface ToolchainContract { + contract_version: number; + decodal_version: string; + schema_version: number; + entrypoints: VirtualPath[]; + import_policy_version: number; + fingerprint: string; +} + +export interface ConfigDiagnostic { + path: VirtualPath; + revision: number; + tree_digest: string; + kind: string; + span: { start_byte: number; end_byte: number }; + message: string; + labels: Array<{ + span: { start_byte: number; end_byte: number }; + message: string; + }>; + notes: string[]; +} + +export interface WorkspaceConfigTreeResponse { + snapshot: ConfigTreeSnapshot; + contract: ToolchainContract; + projection_digest: string; +} + +export interface EvaluatedConfigCandidate { + base_revision: number; + base_digest: string; + snapshot: ConfigTreeSnapshot; + contract: ToolchainContract; + evaluation: { + projections: Array<{ + entrypoint: VirtualPath; + data_json: unknown; + projection_digest: string; + }>; + projection_digest: string; + }; +} + +export interface ConfigCommitRequest { + base_revision: number; + base_digest: string; + changes: ConfigTreeChange[]; + entrypoints: VirtualPath[]; +} diff --git a/web/workspace/src/lib/workspace/settings/model.ts b/web/workspace/src/lib/workspace/settings/model.ts index 768f31fc..9aab0873 100644 --- a/web/workspace/src/lib/workspace/settings/model.ts +++ b/web/workspace/src/lib/workspace/settings/model.ts @@ -7,6 +7,7 @@ export type Diagnostic = { export type SettingsSectionId = | "runtime-connections" | "runtime-inventory" + | "configuration-sources" | "profile-sources" | "backend-config" | "workspace-identity"; @@ -98,6 +99,18 @@ export const SETTINGS_SECTIONS: readonly SettingsSection[] = [ "Console routes may still target a Runtime handle directly, but Runtime discovery belongs under Settings.", ], }, + { + id: "configuration-sources", + label: "Configuration Sources", + status: "editable", + summary: + "Edit the Server-owned virtual Decodal source tree through one native/WASM toolchain contract.", + bullets: [ + "Virtual paths and imports resolve inside the committed Workspace tree, never from browser or Server host paths.", + "Browser analysis is advisory; Server evaluation is required before an atomic revision commit.", + "Profile, Skill, Prompt, and Plugin consumers remain on their existing authorities until their follow-up cutovers.", + ], + }, { id: "profile-sources", label: "Profile Sources", @@ -160,6 +173,8 @@ export function settingsSectionHref(id: SettingsSectionId): string { return `${SETTINGS_ROUTE}/runtime-connections`; case "runtime-inventory": return `${SETTINGS_ROUTE}/runtimes`; + case "configuration-sources": + return `${SETTINGS_ROUTE}/configuration`; case "profile-sources": return `${SETTINGS_ROUTE}/profiles`; case "workspace-identity": diff --git a/web/workspace/src/lib/workspace/styles/settings.css b/web/workspace/src/lib/workspace/styles/settings.css index 9dec29b5..a2b9568d 100644 --- a/web/workspace/src/lib/workspace/styles/settings.css +++ b/web/workspace/src/lib/workspace/styles/settings.css @@ -515,6 +515,157 @@ font-weight: 800; text-transform: uppercase; } + .config-source-shell { + display: grid; + grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr); + min-height: 40rem; + overflow: hidden; + border: 1px solid var(--line); + border-radius: var(--radius-panel); + background: var(--bg-raised); + } + .config-source-tree { + display: grid; + grid-template-rows: auto minmax(0, 1fr) auto; + border-right: 1px solid var(--line); + background: var(--bg-subtle); + } + .config-source-tree__header, + .config-source-workbench__header { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--space-3); + padding: var(--space-3); + border-bottom: 1px solid var(--line); + } + .config-source-tree nav { + display: grid; + align-content: start; + overflow: auto; + padding: var(--space-2); + } + .config-source-tree nav button { + border: 0; + border-radius: 0.45rem; + background: transparent; + color: var(--text-muted); + padding: 0.45rem 0.55rem; + font: inherit; + font-family: var(--font-mono); + text-align: left; + cursor: pointer; + } + .config-source-tree nav button.active, + .config-source-tree nav button:hover { + background: var(--interactive-hover); + color: var(--text-strong); + } + .config-source-create { + display: grid; + gap: var(--space-2); + padding: var(--space-3); + border-top: 1px solid var(--line); + } + .config-source-create label, + .config-source-workbench__header span { + color: var(--text-muted); + font-size: 0.75rem; + } + .config-source-create input { + min-width: 0; + border: 1px solid var(--line); + border-radius: 0.45rem; + background: var(--bg-raised); + color: var(--text-strong); + padding: 0.45rem; + font: inherit; + font-family: var(--font-mono); + } + .config-source-create button, + .config-source-actions button { + border: 1px solid var(--line); + border-radius: 0.45rem; + background: var(--bg-subtle); + color: var(--text-strong); + padding: 0.4rem 0.6rem; + cursor: pointer; + } + .config-source-actions button.primary { + border-color: transparent; + background: var(--accent); + color: var(--bg); + } + .config-source-actions button.danger { + color: var(--danger); + } + .config-source-actions button:disabled { + cursor: not-allowed; + opacity: 0.45; + } + .config-source-workbench { + display: grid; + grid-template-rows: auto minmax(20rem, 1fr) auto auto; + min-width: 0; + } + .config-source-workbench__header > div:first-child { + display: grid; + min-width: 0; + } + .config-source-workbench__header strong { + overflow: hidden; + font-family: var(--font-mono); + text-overflow: ellipsis; + white-space: nowrap; + } + .config-source-actions { + display: flex; + flex-wrap: wrap; + gap: var(--space-2); + } + .config-source-status { + margin: 0; + padding: var(--space-2) var(--space-3); + border-top: 1px solid var(--line); + color: var(--text-muted); + font-size: 0.8rem; + } + .config-source-diagnostics { + display: grid; + gap: var(--space-2); + max-height: 12rem; + overflow: auto; + margin: 0; + padding: var(--space-3); + border-top: 1px solid var(--line); + } + .config-source-diagnostics li { + display: grid; + grid-template-columns: auto 1fr auto; + gap: var(--space-2); + color: var(--text-muted); + } + .config-source-diagnostics strong { + color: var(--danger); + } + @media (max-width: 48rem) { + .config-source-shell { + grid-template-columns: 1fr; + } + .config-source-tree { + grid-template-rows: auto auto auto; + border-right: 0; + border-bottom: 1px solid var(--line); + } + .config-source-tree nav { + max-height: 12rem; + } + .config-source-workbench__header { + align-items: stretch; + flex-direction: column; + } + } + .status-message.error { color: var(--danger); } diff --git a/web/workspace/src/routes/w/[workspaceId]/settings/configuration/+page.svelte b/web/workspace/src/routes/w/[workspaceId]/settings/configuration/+page.svelte new file mode 100644 index 00000000..8928e527 --- /dev/null +++ b/web/workspace/src/routes/w/[workspaceId]/settings/configuration/+page.svelte @@ -0,0 +1,27 @@ + + + + Configuration | {workspaceName} + + +
+ + + +
From 02a09ae2d707afeb1f88f12b07397f90e3e13e31 Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 14 Aug 2026 00:31:22 +0900 Subject: [PATCH 04/12] test: verify browser WASM config parity --- crates/config-source-wasm/src/lib.rs | 8 ++- .../generated/config_source_wasm_bg.wasm | Bin 435804 -> 435980 bytes .../config-source/api.test.ts | 2 +- .../test/config-source/wasm-parity.test.ts | 67 ++++++++++++++++++ 4 files changed, 73 insertions(+), 4 deletions(-) rename web/workspace/{src/lib/workspace => test}/config-source/api.test.ts (97%) create mode 100644 web/workspace/test/config-source/wasm-parity.test.ts diff --git a/crates/config-source-wasm/src/lib.rs b/crates/config-source-wasm/src/lib.rs index e19501ad..042312bb 100644 --- a/crates/config-source-wasm/src/lib.rs +++ b/crates/config-source-wasm/src/lib.rs @@ -1,7 +1,7 @@ use config_source::{ ConfigTreeSnapshot, EvaluationResult, SnapshotEnvironment, ToolchainContract, VirtualPath, }; -use serde_wasm_bindgen::{from_value, to_value}; +use serde_wasm_bindgen::{Serializer, from_value}; use wasm_bindgen::prelude::*; #[wasm_bindgen] @@ -12,7 +12,7 @@ pub fn evaluate_snapshot(snapshot: JsValue, contract: JsValue) -> Result(value: JsValue) -> Result } fn encode(value: T) -> Result { - to_value(&value).map_err(|error| JsValue::from_str(&error.to_string())) + value + .serialize(&Serializer::json_compatible()) + .map_err(|error| JsValue::from_str(&error.to_string())) } fn js_error(error: impl std::fmt::Display) -> JsValue { diff --git a/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm_bg.wasm b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm_bg.wasm index 5e6dcaddda46a2814a2063cccda3d3c017f56fe7..dbbca6626c33ffbe02c59f6b579ad0b043013c19 100644 GIT binary patch delta 1158 zcmbVKO=wd=5Z;;HBri=KzNm;;54&j(MHE}mL{XvJHsa60qhdwzugar{iU$u$>K~#M z^dPK9MXVka)GALz#Dho=MLZ}*XlX1WJxI;Lp9&V7dC5UJAZk5_i#MldeDKOG!q(i|aWwAhI6m>K zpk>zp{emJ^+@VQqURr^$fCsg-qY#pv5@GOE`lw|aR=}j#k3l}czUpuSZ-8<`6WC7f z-2`qu)P{$R$Ju_9W_QfcxAxTO0k0rNXq=@1WJe&hpfR|p>K%>3PVD4&1@cWLUuZ1( zRA4Kj-_)mp0qq&YPDypv3pMH{cfE>R%35kwz$xx73i##^QllKZ{NOo-$2feAxF(Cp zyeUBx3p9^jQ!yxl#$;niqrkx1@HOOP(r+NRs|*lE0w#2dpg~Yo849dX_N=#&f-3li z89RIbxv)8|RvH=^;0(?AOzV8lP14-N(`jcu;Exu{)Hf7!2zWsQ_4N~?A+*9ITyYYY z{QJRT4smi<;!@aFgRoW1$=JuV7+a)aU+5aQ`A>~Za8-)`%SG#6<0U`R zAMxxm*b&{#$)V+HI1OpH#mWO-GE3V5lZ>8OnFB~UD9L%`K6c4XkaWwt{#WonrQqAO#oPxy0Mm{jqOl6O|g1TXegl4LMLzC zFUcP0jUHT(={t0>rz_QgC$K$gt*KA5?!|OsHT1fs>BJ`3;o577ok6i<_sZ49j(z+4 Qb{F>a?d^+ZrxUxP-?cs)S^xk5 delta 927 zcmZuvPe>F|7@zNZGrKc8J2bmS#A@|s^&p{?P-}JC=k5wBo&%M_2#jG5B@rHiHOd0n zLx-JIP=t37z9Gbgyj+g0?Aa83@jOz_Mel#=$DJYN9UtD(J~#1s9zf zaMm+PpWBTU*|mbrP?3Wxm`YT@i*nYERY)7k*5t$rK8C1lS;doN23PTXNqpCQ&s5>7 zo~2CDiz##6L(YVj!DZ?%D&W((488!4?zFBls^ICE#jLtlAZ-^Mjbp)~1X0t9USlM9 zz%36k%P3EnK1Xi53)He5<7zv3^d089#NPaCO(fhoU8Qne+%fy8o9=F-&C%0sZn__V zA~7|@;xXA=#b3vSrlzPRuaI%oij(1@-!$KyL3w%&kN=0C4nor?AwX24vR^TWHGt5< zA-HtNT`gEx!wyK+!Ee(J*kbVoE!s^*>+;8YY zLVs$3DYpe1GmSXf0z4zQ+`|$85jkIAO=PBXtUncUrKM3Q9VdDfheV`Gmm4|ON?IlJ zY(S3Y*T>(y&bb8n=Z-(NLM6~PUOs|L$T;~A3WkOl#Bk#Bo`4$ z{o`PVPMSyRg~CNtHo+^kvMTq#uRYPAw`HSZn!V$MF{YzM)mON?L@?E z$xlZd&9;?Hgr38`tPskob0dQ{rI%wzVO*88m=~B$-V@og+RJZi6d-CUo c(GSD2zGYmHk2Vb#M�laW + +import { assertEquals } from "jsr:@std/assert"; +// The generated wasm-bindgen loader is JavaScript with an adjacent declaration file. +// @ts-expect-error Deno checks the generated JS implementation rather than its .d.ts. +import init, { + analyze_snapshot, + evaluate_snapshot, +} from "../../src/lib/workspace/config-source/generated/config_source_wasm.js"; +import type { ConfigTreeSnapshot, ToolchainContract } from "../../src/lib/workspace/config-source/types.ts"; + +const bytes = await Deno.readFile( + new URL("../../src/lib/workspace/config-source/generated/config_source_wasm_bg.wasm", import.meta.url), +); +await init({ module_or_path: bytes }); + +const snapshot: ConfigTreeSnapshot = { + revision: 4, + digest: "sha256:test-tree", + entries: { + "workspace.dcdl": { + path: "workspace.dcdl", + content_type: "decodal", + content: 'import "./lib/value.dcdl"', + content_digest: "sha256:root", + }, + "lib/value.dcdl": { + path: "lib/value.dcdl", + content_type: "decodal", + content: "{ answer = 42; }", + content_digest: "sha256:value", + }, + }, +}; + +const contract: ToolchainContract = { + contract_version: 1, + decodal_version: "0.2.0", + schema_version: 1, + entrypoints: ["workspace.dcdl"], + import_policy_version: 1, + fingerprint: "sha256:test-contract", +}; + +Deno.test("generated WASM evaluates the same virtual import contract", () => { + const result = evaluate_snapshot(snapshot, contract) as { + projections: Array<{ data_json: { answer: number } }>; + }; + assertEquals(result.projections[0].data_json, { answer: 42 }); +}); + +Deno.test("generated WASM diagnostics carry snapshot provenance", () => { + const diagnostics = analyze_snapshot( + snapshot, + "workspace.dcdl", + "{ broken = ; }", + ) as Array<{ + path: string; + revision: number; + tree_digest: string; + kind: string; + }>; + assertEquals(diagnostics[0].path, "workspace.dcdl"); + assertEquals(diagnostics[0].revision, 4); + assertEquals(diagnostics[0].tree_digest, "sha256:test-tree"); + assertEquals(diagnostics[0].kind, "syntax"); +}); From 0689116e4dffa129a1a7d499b1e881e6cdba1195 Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 14 Aug 2026 00:33:00 +0900 Subject: [PATCH 05/12] server: update schema migration expectations --- crates/workspace-server/src/store.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/workspace-server/src/store.rs b/crates/workspace-server/src/store.rs index 019c47f5..47aea7a7 100644 --- a/crates/workspace-server/src/store.rs +++ b/crates/workspace-server/src/store.rs @@ -5181,7 +5181,7 @@ CREATE TABLE ticket_worker_links (ticket_id TEXT, worker_ref_key TEXT); apply_migrations(&conn).unwrap(); - assert_eq!(current_schema_version(&conn).unwrap(), 29); + assert_eq!(current_schema_version(&conn).unwrap(), 30); assert!(table_exists(&conn, "worker_workdir_attachment_reservations").unwrap()); } @@ -5214,7 +5214,7 @@ CREATE TABLE flow_events (event_id TEXT PRIMARY KEY); apply_migrations(&conn).unwrap(); - assert_eq!(current_schema_version(&conn).unwrap(), 29); + assert_eq!(current_schema_version(&conn).unwrap(), 30); assert!(table_exists(&conn, "flow_sources").unwrap()); assert!(table_exists(&conn, "flow_source_revisions").unwrap()); assert!(!table_exists(&conn, "flow_instances").unwrap()); @@ -5281,7 +5281,7 @@ INSERT INTO worker_workdir_attachment_reservations ( apply_migrations(&conn).unwrap(); - assert_eq!(current_schema_version(&conn).unwrap(), 29); + assert_eq!(current_schema_version(&conn).unwrap(), 30); let repositories_sql: String = conn .query_row( "SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'repositories'", From dfea679f0bf11cc8023f897944b9fb9be173411f Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 14 Aug 2026 00:36:39 +0900 Subject: [PATCH 06/12] web: update Decodal CodeMirror baseline --- web/workspace/deno.json | 6 +++--- web/workspace/deno.lock | 26 +++++++++++++------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/web/workspace/deno.json b/web/workspace/deno.json index 6571eeb6..f0f9491e 100644 --- a/web/workspace/deno.json +++ b/web/workspace/deno.json @@ -15,9 +15,9 @@ "@sveltejs/adapter-static": "npm:@sveltejs/adapter-static@3.0.9", "@sveltejs/kit": "npm:@sveltejs/kit@2.49.4", "@sveltejs/vite-plugin-svelte": "npm:@sveltejs/vite-plugin-svelte@6.2.1", - "@codemirror/state": "npm:@codemirror/state@6.5.2", - "@codemirror/view": "npm:@codemirror/view@6.38.8", - "decodal-codemirror": "npm:decodal-codemirror@0.1.2", + "@codemirror/state": "npm:@codemirror/state@6.7.1", + "@codemirror/view": "npm:@codemirror/view@6.43.8", + "decodal-codemirror": "npm:decodal-codemirror@0.1.6", "clsx": "npm:clsx@2.1.1", "cookie": "npm:cookie@0.6.0", "devalue": "npm:devalue@5.6.4", diff --git a/web/workspace/deno.lock b/web/workspace/deno.lock index 21b562fc..0242d46c 100644 --- a/web/workspace/deno.lock +++ b/web/workspace/deno.lock @@ -3,15 +3,15 @@ "specifiers": { "jsr:@std/assert@*": "1.0.19", "jsr:@std/internal@^1.0.12": "1.0.14", - "npm:@codemirror/state@6.5.2": "6.5.2", - "npm:@codemirror/view@6.38.8": "6.38.8", + "npm:@codemirror/state@6.7.1": "6.7.1", + "npm:@codemirror/view@6.43.8": "6.43.8", "npm:@fontsource/ibm-plex-mono@5.3.0": "5.3.0", "npm:@sveltejs/adapter-static@3.0.9": "3.0.9_@sveltejs+kit@2.49.4__@sveltejs+vite-plugin-svelte@6.2.1___svelte@5.45.6___vite@7.2.7__svelte@5.45.6__typescript@5.9.3__vite@7.2.7_@sveltejs+vite-plugin-svelte@6.2.1__svelte@5.45.6__vite@7.2.7_svelte@5.45.6_typescript@5.9.3_vite@7.2.7", "npm:@sveltejs/kit@2.49.4": "2.49.4_@sveltejs+vite-plugin-svelte@6.2.1__svelte@5.45.6__vite@7.2.7_svelte@5.45.6_typescript@5.9.3_vite@7.2.7", "npm:@sveltejs/vite-plugin-svelte@6.2.1": "6.2.1_svelte@5.45.6_vite@7.2.7", "npm:clsx@2.1.1": "2.1.1", "npm:cookie@0.6.0": "0.6.0", - "npm:decodal-codemirror@0.1.2": "0.1.2", + "npm:decodal-codemirror@0.1.6": "0.1.6_@codemirror+view@6.43.8", "npm:devalue@5.6.4": "5.6.4", "npm:gen-interface-jp@0.8.0": "0.8.0", "npm:set-cookie-parser@2.7.2": "2.7.2", @@ -37,7 +37,6 @@ "@codemirror/language@6.12.4": { "integrity": "sha512-1q4PaT+o6PbgpkJt4Q8Fv5XJxTy4FUZ4MWETtyiDw3J0Pyr9E2vqcKL+k9wcvjNTIsauxvE7OfmWj3FRPHQ76A==", "dependencies": [ - "@codemirror/state", "@codemirror/view", "@lezer/common", "@lezer/highlight", @@ -45,14 +44,14 @@ "style-mod" ] }, - "@codemirror/state@6.5.2": { - "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", + "@codemirror/state@6.7.1": { + "integrity": "sha512-9QzNDgE4EYDnAHfrTlR2lwiPciiOymLtwKK+8yHQzCc7GXhAP9xdEbEJFy2IWB1j9UGUl9BsgMmTo/ImA02T7A==", "dependencies": [ "@marijn/find-cluster-break" ] }, - "@codemirror/view@6.38.8": { - "integrity": "sha512-XcE9fcnkHCbWkjeKyi0lllwXmBLtyYb5dt89dJyx23I9+LSh5vZDIuk7OLG4VM1lgrXZQcY6cxyZyk5WVPRv/A==", + "@codemirror/view@6.43.8": { + "integrity": "sha512-qtItTDssZ/5GFfi94hrILu9j/VUeFPDPkhovEfmWFj2ipTxnzPB8DdHgfbb8HYTzLTYhrndKmyQxXUz/PDLenw==", "dependencies": [ "@codemirror/state", "crelt", @@ -544,10 +543,11 @@ "ms" ] }, - "decodal-codemirror@0.1.2": { - "integrity": "sha512-VR+cFsBLPb9kZU3gJhElZck+IUVhOC1HoWgA8bxP1kxwn+eCZaeBHErHESlRZbsWvN2J5T8VKcDCtxLDYe9QyA==", + "decodal-codemirror@0.1.6_@codemirror+view@6.43.8": { + "integrity": "sha512-XTS5vAY+vTb/yEg5n+1yORtBPuhozG4KO0YGbYEFR8oZX0KghZuHyFEsq/CJMXF223YMC/FQt3SC19NVYGWKMw==", "dependencies": [ "@codemirror/language", + "@codemirror/view", "@lezer/highlight", "@lezer/lr" ] @@ -988,14 +988,14 @@ }, "workspace": { "dependencies": [ - "npm:@codemirror/state@6.5.2", - "npm:@codemirror/view@6.38.8", + "npm:@codemirror/state@6.7.1", + "npm:@codemirror/view@6.43.8", "npm:@sveltejs/adapter-static@3.0.9", "npm:@sveltejs/kit@2.49.4", "npm:@sveltejs/vite-plugin-svelte@6.2.1", "npm:clsx@2.1.1", "npm:cookie@0.6.0", - "npm:decodal-codemirror@0.1.2", + "npm:decodal-codemirror@0.1.6", "npm:devalue@5.6.4", "npm:set-cookie-parser@2.7.2", "npm:shiki@3.13.0", From 9cd1c1c4485c30356fbb138370a0ecbc6db77d4d Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 14 Aug 2026 00:40:39 +0900 Subject: [PATCH 07/12] runtime: update Decodal import loader test --- crates/worker-runtime/src/profile_archive.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/worker-runtime/src/profile_archive.rs b/crates/worker-runtime/src/profile_archive.rs index 2bf5f813..b8362347 100644 --- a/crates/worker-runtime/src/profile_archive.rs +++ b/crates/worker-runtime/src/profile_archive.rs @@ -742,7 +742,12 @@ mod tests { let loaded = loader .load(Some("profiles/main.dcdl"), "./shared.dcdl") .unwrap(); - assert_eq!(loaded.key, "profiles/shared.dcdl"); + match loaded { + LoadedImport::Source(source) => { + assert_eq!(source.key, "profiles/shared.dcdl"); + } + LoadedImport::Value(_) => panic!("expected source import"), + } } #[test] From 0a7e67e373bdd49583193d1d5dae8d7c7e2ac898 Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 14 Aug 2026 00:45:20 +0900 Subject: [PATCH 08/12] config: validate every Decodal source before commit --- crates/config-source/src/lib.rs | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/crates/config-source/src/lib.rs b/crates/config-source/src/lib.rs index 06e4a38c..f1806799 100644 --- a/crates/config-source/src/lib.rs +++ b/crates/config-source/src/lib.rs @@ -385,6 +385,25 @@ impl SnapshotEnvironment { contract: &ToolchainContract, ) -> Result> { let service = LanguageService::new(self); + let diagnostics = self + .snapshot + .entries + .values() + .filter(|entry| entry.content_type == ConfigContentType::Decodal) + .flat_map(|entry| { + service + .analyze(entry.path.as_str(), entry.path.as_str(), &entry.content) + .diagnostics + .iter() + .map(|diagnostic| { + project_diagnostic(&self.snapshot, entry.path.clone(), diagnostic) + }) + .collect::>() + }) + .collect::>(); + if !diagnostics.is_empty() { + return Err(diagnostics); + } let mut projections = Vec::new(); for entrypoint in &contract.entrypoints { let Some(entry) = self.snapshot.get(entrypoint) else { @@ -879,6 +898,23 @@ mod tests { assert_eq!(result.projections[0].data_json["answer"], 42); } + #[test] + fn candidate_evaluation_rejects_invalid_unreferenced_decodal_source() { + let snapshot = ConfigTreeSnapshot::from_entries( + 1, + [ + entry("workspace.dcdl", "{ answer = 42; }"), + entry("unused.dcdl", "{ broken = ; }"), + ], + ) + .unwrap(); + let diagnostics = SnapshotEnvironment::new(snapshot) + .evaluate_contract(&ToolchainContract::new(1, vec![path("workspace.dcdl")], 1)) + .unwrap_err(); + assert_eq!(diagnostics[0].path, path("unused.dcdl")); + assert_eq!(diagnostics[0].kind, "syntax"); + } + #[test] fn missing_import_and_cycles_are_structured_failures() { let missing = From fa9bd8207f01f54d2888aa4d0e75d07164ee6473 Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 14 Aug 2026 01:07:14 +0900 Subject: [PATCH 09/12] config: complete virtual tree editor contract --- crates/config-source-wasm/src/lib.rs | 95 +++++++++++++- crates/workspace-server/src/config_source.rs | 55 ++++++++ web/workspace/deno.json | 1 + web/workspace/deno.lock | 12 ++ .../config-source/ConfigSourceEditor.svelte | 119 ++++++++++++------ .../generated/config_source_wasm.d.ts | 12 ++ .../generated/config_source_wasm.js | 63 ++++++++++ .../generated/config_source_wasm_bg.wasm | Bin 435980 -> 635839 bytes .../generated/config_source_wasm_bg.wasm.d.ts | 4 + .../lib/workspace/config-source/toolchain.ts | 80 +++++------- .../config-source/toolchain.worker.ts | 66 +++++----- .../src/lib/workspace/config-source/types.ts | 1 + .../settings/DecodalSourceEditor.svelte | 9 ++ .../src/lib/workspace/styles/settings.css | 3 +- web/workspace/test/config-source/api.test.ts | 5 +- 15 files changed, 398 insertions(+), 127 deletions(-) diff --git a/crates/config-source-wasm/src/lib.rs b/crates/config-source-wasm/src/lib.rs index 042312bb..21d64ac7 100644 --- a/crates/config-source-wasm/src/lib.rs +++ b/crates/config-source-wasm/src/lib.rs @@ -1,9 +1,102 @@ use config_source::{ - ConfigTreeSnapshot, EvaluationResult, SnapshotEnvironment, ToolchainContract, VirtualPath, + ConfigTreeChange, ConfigTreeSnapshot, EvaluationResult, SnapshotEnvironment, ToolchainContract, + VirtualPath, }; use serde_wasm_bindgen::{Serializer, from_value}; +use std::cell::RefCell; use wasm_bindgen::prelude::*; +thread_local! { + static SESSION: RefCell> = const { RefCell::new(None) }; +} + +#[wasm_bindgen] +pub fn set_snapshot(snapshot: JsValue) -> Result<(), JsValue> { + let snapshot: ConfigTreeSnapshot = decode(snapshot)?; + SESSION.with(|session| session.replace(Some(snapshot))); + Ok(()) +} + +#[wasm_bindgen] +pub fn apply_changes(changes: JsValue) -> Result { + let changes: Vec = decode(changes)?; + SESSION.with(|session| { + let mut session = session.borrow_mut(); + let snapshot = session + .as_ref() + .ok_or_else(|| JsValue::from_str("config source snapshot is not initialized"))? + .apply(&changes) + .map_err(js_error)?; + *session = Some(snapshot.clone()); + encode(snapshot) + }) +} + +#[wasm_bindgen] +pub fn evaluate_current(contract: JsValue) -> Result { + let contract: ToolchainContract = decode(contract)?; + SESSION.with(|session| { + let session = session.borrow(); + let snapshot = session + .as_ref() + .ok_or_else(|| JsValue::from_str("config source snapshot is not initialized"))?; + encode( + SnapshotEnvironment::new(snapshot.clone()) + .evaluate_contract(&contract) + .map_err(|diagnostics| { + encode(&diagnostics).unwrap_or_else(|_| JsValue::from_str("evaluation failed")) + })?, + ) + }) +} + +#[derive(serde::Serialize)] +struct WasmCompletionResult { + from: usize, + items: Vec, +} + +#[derive(serde::Serialize)] +struct WasmCompletionItem { + label: String, + kind: String, + detail: Option, + priority: i32, +} + +#[wasm_bindgen] +pub fn complete_current( + entrypoint: String, + source: String, + utf8_byte_offset: usize, + explicit: bool, +) -> Result { + let entrypoint = VirtualPath::parse(entrypoint).map_err(js_error)?; + SESSION.with(|session| { + let session = session.borrow(); + let snapshot = session + .as_ref() + .ok_or_else(|| JsValue::from_str("config source snapshot is not initialized"))?; + let result = SnapshotEnvironment::new(snapshot.clone()) + .complete(&entrypoint, &source, utf8_byte_offset, explicit) + .map_err(|error| JsValue::from_str(&format!("{error:?}")))? + .map(|result| WasmCompletionResult { + from: result.from, + items: result + .items + .into_iter() + .map(|item| WasmCompletionItem { + label: item.label, + kind: format!("{:?}", item.kind).to_lowercase(), + detail: item.detail, + priority: item.priority, + }) + .collect(), + }); + encode(result) + }) +} + #[wasm_bindgen] pub fn evaluate_snapshot(snapshot: JsValue, contract: JsValue) -> Result { let snapshot: ConfigTreeSnapshot = decode(snapshot)?; diff --git a/crates/workspace-server/src/config_source.rs b/crates/workspace-server/src/config_source.rs index 232c86d2..e9f72a25 100644 --- a/crates/workspace-server/src/config_source.rs +++ b/crates/workspace-server/src/config_source.rs @@ -33,6 +33,7 @@ pub struct ConfigCommitRequest { pub base_digest: String, pub changes: Vec, pub entrypoints: Vec, + pub toolchain_fingerprint: String, } #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] @@ -65,6 +66,17 @@ impl SqliteWorkspaceStore { current.snapshot.revision ))); } + let expected_contract = ToolchainContract::new( + DEFAULT_SCHEMA_VERSION, + request.entrypoints.clone(), + DEFAULT_IMPORT_POLICY_VERSION, + ); + if expected_contract.fingerprint != request.toolchain_fingerprint { + return Err(config_conflict(format!( + "toolchain fingerprint mismatch; current fingerprint is {}", + expected_contract.fingerprint + ))); + } evaluate_candidate(current, &request.changes, request.entrypoints.clone()) } @@ -378,6 +390,12 @@ mod tests { content: "{ broken = ; }".into(), }], entrypoints: vec![path(DEFAULT_CONFIG_ENTRYPOINT)], + toolchain_fingerprint: ToolchainContract::new( + DEFAULT_SCHEMA_VERSION, + vec![path(DEFAULT_CONFIG_ENTRYPOINT)], + DEFAULT_IMPORT_POLICY_VERSION, + ) + .fingerprint, }, ) .unwrap_err(); @@ -402,6 +420,12 @@ mod tests { content: "{ answer = 42; }".into(), }], entrypoints: vec![path(DEFAULT_CONFIG_ENTRYPOINT)], + toolchain_fingerprint: ToolchainContract::new( + DEFAULT_SCHEMA_VERSION, + vec![path(DEFAULT_CONFIG_ENTRYPOINT)], + DEFAULT_IMPORT_POLICY_VERSION, + ) + .fingerprint, }, ) .unwrap(); @@ -426,6 +450,12 @@ mod tests { content: "{ answer = 42; }".into(), }], entrypoints: vec![path(DEFAULT_CONFIG_ENTRYPOINT)], + toolchain_fingerprint: ToolchainContract::new( + DEFAULT_SCHEMA_VERSION, + vec![path(DEFAULT_CONFIG_ENTRYPOINT)], + DEFAULT_IMPORT_POLICY_VERSION, + ) + .fingerprint, }; let candidate = store .evaluate_workspace_config_candidate("w-config", &request) @@ -439,6 +469,31 @@ mod tests { assert!(matches!(error, Error::WorkspaceConfigConflict(_))); } + #[tokio::test] + async fn commit_rejects_mismatched_toolchain_fingerprint() { + let store = SqliteWorkspaceStore::in_memory().unwrap(); + store.upsert_workspace(&workspace()).await.unwrap(); + let empty = ConfigTreeSnapshot::empty(); + let error = store + .evaluate_and_commit_workspace_config( + "w-config", + &ConfigCommitRequest { + base_revision: 0, + base_digest: empty.digest, + changes: vec![ConfigTreeChange::Create { + path: path(DEFAULT_CONFIG_ENTRYPOINT), + content_type: ConfigContentType::Decodal, + content: "{ answer = 42; }".into(), + }], + entrypoints: vec![path(DEFAULT_CONFIG_ENTRYPOINT)], + toolchain_fingerprint: "sha256:stale-toolchain".into(), + }, + ) + .unwrap_err(); + assert!(matches!(error, Error::WorkspaceConfigConflict(_))); + assert!(store.load_workspace_config("w-config").unwrap().is_none()); + } + #[test] fn migration_creates_config_authority_without_changing_applied_migrations() { let store = SqliteWorkspaceStore::in_memory().unwrap(); diff --git a/web/workspace/deno.json b/web/workspace/deno.json index f0f9491e..07317361 100644 --- a/web/workspace/deno.json +++ b/web/workspace/deno.json @@ -15,6 +15,7 @@ "@sveltejs/adapter-static": "npm:@sveltejs/adapter-static@3.0.9", "@sveltejs/kit": "npm:@sveltejs/kit@2.49.4", "@sveltejs/vite-plugin-svelte": "npm:@sveltejs/vite-plugin-svelte@6.2.1", + "@codemirror/autocomplete": "npm:@codemirror/autocomplete@6.20.0", "@codemirror/state": "npm:@codemirror/state@6.7.1", "@codemirror/view": "npm:@codemirror/view@6.43.8", "decodal-codemirror": "npm:decodal-codemirror@0.1.6", diff --git a/web/workspace/deno.lock b/web/workspace/deno.lock index 0242d46c..0811f3fa 100644 --- a/web/workspace/deno.lock +++ b/web/workspace/deno.lock @@ -3,6 +3,7 @@ "specifiers": { "jsr:@std/assert@*": "1.0.19", "jsr:@std/internal@^1.0.12": "1.0.14", + "npm:@codemirror/autocomplete@6.20.0": "6.20.0", "npm:@codemirror/state@6.7.1": "6.7.1", "npm:@codemirror/view@6.43.8": "6.43.8", "npm:@fontsource/ibm-plex-mono@5.3.0": "5.3.0", @@ -34,9 +35,19 @@ } }, "npm": { + "@codemirror/autocomplete@6.20.0": { + "integrity": "sha512-bOwvTOIJcG5FVo5gUUupiwYh8MioPLQ4UcqbcRf7UQ98X90tCa9E1kZ3Z7tqwpZxYyOvh1YTYbmZE9RTfTp5hg==", + "dependencies": [ + "@codemirror/language", + "@codemirror/state", + "@codemirror/view", + "@lezer/common" + ] + }, "@codemirror/language@6.12.4": { "integrity": "sha512-1q4PaT+o6PbgpkJt4Q8Fv5XJxTy4FUZ4MWETtyiDw3J0Pyr9E2vqcKL+k9wcvjNTIsauxvE7OfmWj3FRPHQ76A==", "dependencies": [ + "@codemirror/state", "@codemirror/view", "@lezer/common", "@lezer/highlight", @@ -988,6 +999,7 @@ }, "workspace": { "dependencies": [ + "npm:@codemirror/autocomplete@6.20.0", "npm:@codemirror/state@6.7.1", "npm:@codemirror/view@6.43.8", "npm:@sveltejs/adapter-static@3.0.9", diff --git a/web/workspace/src/lib/workspace/config-source/ConfigSourceEditor.svelte b/web/workspace/src/lib/workspace/config-source/ConfigSourceEditor.svelte index aab09791..ffeae315 100644 --- a/web/workspace/src/lib/workspace/config-source/ConfigSourceEditor.svelte +++ b/web/workspace/src/lib/workspace/config-source/ConfigSourceEditor.svelte @@ -21,6 +21,10 @@ let diagnostics = $state([]); let status = $state("Loading source tree…"); let busy = $state(false); + let draftChanges = $state([]); + let baseRevision = $state(0); + let baseDigest = $state(""); + let renamePath = $state(""); let toolchain: ConfigSourceToolchain | null = null; const paths = $derived( @@ -29,7 +33,7 @@ const selected = $derived( treeState && selectedPath ? treeState.snapshot.entries[selectedPath] : undefined, ); - const dirty = $derived(selected ? source !== selected.content : source.length > 0); + const dirty = $derived(draftChanges.length > 0 || (selected ? source !== selected.content : source.length > 0)); onMount(() => { toolchain = new ConfigSourceToolchain(); @@ -44,6 +48,11 @@ selectedPath = Object.keys(treeState.snapshot.entries).toSorted()[0] ?? ""; } source = selectedPath ? treeState.snapshot.entries[selectedPath].content : ""; + baseRevision = treeState.snapshot.revision; + baseDigest = treeState.snapshot.digest; + await toolchain?.setSnapshot(treeState.snapshot); + draftChanges = []; + renamePath = selectedPath; diagnostics = []; status = treeState.snapshot.revision === 0 ? "No committed sources yet. Create workspace.dcdl to begin." @@ -53,9 +62,23 @@ } } - function select(path: string) { + async function stageCurrent() { + const change = currentChange(); + if (!change || !toolchain) return; + draftChanges = [...draftChanges.filter((item) => !changeTouches(item, selectedPath)), change]; + const candidate = await toolchain.applyChanges([change]); + if (treeState) treeState = { ...treeState, snapshot: candidate }; + } + + function changeTouches(change: ConfigTreeChange, path: string): boolean { + return change.kind === "rename" ? change.from === path || change.to === path : change.path === path; + } + + async function select(path: string) { + await stageCurrent(); selectedPath = path; source = treeState?.snapshot.entries[path]?.content ?? ""; + renamePath = path; diagnostics = []; } @@ -81,7 +104,9 @@ function entrypoints(): string[] { if (!treeState) return []; - if (treeState.contract.entrypoints.length > 0) return treeState.contract.entrypoints; + const known = new Set(Object.keys(treeState.snapshot.entries)); + const configured = treeState.contract.entrypoints.filter((path) => known.has(path)); + if (configured.length > 0) return configured; if (treeState.snapshot.entries["workspace.dcdl"] || selectedPath === "workspace.dcdl") { return ["workspace.dcdl"]; } @@ -90,7 +115,7 @@ async function analyze() { if (!toolchain || !treeState || !selectedPath) return; - diagnostics = await toolchain.analyze(treeState.snapshot, selectedPath, source); + diagnostics = await toolchain.analyze(selectedPath, source); status = diagnostics.length === 0 ? "No diagnostics." : `${diagnostics.length} diagnostic(s).`; } @@ -106,16 +131,17 @@ async function preview() { if (!treeState) return; - const change = currentChange(); - if (!change) { + await stageCurrent(); + if (draftChanges.length === 0) { status = "No draft changes to preview."; return; } busy = true; try { const candidate = await previewConfigTree(workspaceId, { - changes: [change], + changes: draftChanges, entrypoints: entrypoints(), + toolchain_fingerprint: treeState.contract.fingerprint, }); diagnostics = []; status = `Preview valid · projection ${candidate.evaluation.projection_digest.slice(0, 20)}…`; @@ -128,19 +154,24 @@ async function commit() { if (!treeState) return; - const change = currentChange(); - if (!change) { + await stageCurrent(); + if (draftChanges.length === 0) { status = "No draft changes to commit."; return; } busy = true; try { treeState = await commitConfigTree(workspaceId, { - base_revision: treeState.snapshot.revision, - base_digest: treeState.snapshot.digest, - changes: [change], + base_revision: baseRevision, + base_digest: baseDigest, + changes: draftChanges, entrypoints: entrypoints(), + toolchain_fingerprint: treeState.contract.fingerprint, }); + draftChanges = []; + baseRevision = treeState.snapshot.revision; + baseDigest = treeState.snapshot.digest; + await toolchain?.setSnapshot(treeState.snapshot); source = treeState.snapshot.entries[selectedPath]?.content ?? ""; diagnostics = []; status = `Committed revision ${treeState.snapshot.revision}.`; @@ -161,29 +192,38 @@ } async function deleteEntry() { - if (!treeState || !selected) return; - busy = true; - try { - const remainingEntrypoints = treeState.contract.entrypoints.filter((path) => path !== selectedPath); - treeState = await commitConfigTree(workspaceId, { - base_revision: treeState.snapshot.revision, - base_digest: treeState.snapshot.digest, - changes: [{ - kind: "delete", - path: selectedPath, - expected_digest: selected.content_digest, - }], - entrypoints: remainingEntrypoints, - }); - selectedPath = Object.keys(treeState.snapshot.entries).toSorted()[0] ?? ""; - source = selectedPath ? treeState.snapshot.entries[selectedPath].content : ""; - diagnostics = []; - status = `Committed revision ${treeState.snapshot.revision}.`; - } catch (error) { - status = String(error); - } finally { - busy = false; - } + if (!treeState || !selected || !toolchain) return; + const change: ConfigTreeChange = { + kind: "delete", + path: selectedPath, + expected_digest: selected.content_digest, + }; + draftChanges = [...draftChanges.filter((item) => !changeTouches(item, selectedPath)), change]; + const candidate = await toolchain.applyChanges([change]); + treeState = { ...treeState, snapshot: candidate }; + selectedPath = Object.keys(candidate.entries).toSorted()[0] ?? ""; + source = selectedPath ? candidate.entries[selectedPath].content : ""; + renamePath = selectedPath; + status = "Delete staged. Preview and Commit to persist the candidate tree."; + } + + async function renameEntry() { + if (!treeState || !selected || !toolchain) return; + const to = renamePath.trim(); + if (!to || to === selectedPath) return; + await stageCurrent(); + const change: ConfigTreeChange = { + kind: "rename", + from: selectedPath, + to, + expected_digest: selected.content_digest, + }; + draftChanges = [...draftChanges.filter((item) => !changeTouches(item, selectedPath)), change]; + const candidate = await toolchain.applyChanges([change]); + treeState = { ...treeState, snapshot: candidate }; + selectedPath = to; + source = candidate.entries[to]?.content ?? ""; + status = `Rename to ${to} staged. Preview and Commit to persist.`; } @@ -216,6 +256,8 @@ {selectedPath || "Select or create a source"}
+ + @@ -223,7 +265,12 @@
- source = value} /> + source = value} + onComplete={(value, offset, explicit) => toolchain?.complete(selectedPath, value, offset, explicit) ?? Promise.resolve(null)} + />

{status}

{#if diagnostics.length > 0}
    diff --git a/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.d.ts b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.d.ts index 88d3b53b..6e3d657c 100644 --- a/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.d.ts +++ b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.d.ts @@ -3,19 +3,31 @@ export function analyze_snapshot(snapshot: any, entrypoint: string, source_override?: string | null): any; +export function apply_changes(changes: any): any; + +export function complete_current(entrypoint: string, source: string, utf8_byte_offset: number, explicit: boolean): any; + +export function evaluate_current(contract: any): any; + export function evaluate_snapshot(snapshot: any, contract: any): any; export function formatSource(source: string): string; export function format_source(source: string): string; +export function set_snapshot(snapshot: any): void; + export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; export interface InitOutput { readonly memory: WebAssembly.Memory; readonly analyze_snapshot: (a: any, b: number, c: number, d: number, e: number) => [number, number, number]; + readonly apply_changes: (a: any) => [number, number, number]; + readonly complete_current: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number]; + readonly evaluate_current: (a: any) => [number, number, number]; readonly evaluate_snapshot: (a: any, b: any) => [number, number, number]; readonly format_source: (a: number, b: number) => [number, number, number, number]; + readonly set_snapshot: (a: any) => [number, number]; readonly formatSource: (a: number, b: number) => [number, number]; readonly __wbindgen_malloc: (a: number, b: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; diff --git a/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.js b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.js index 0af013fc..f12b9440 100644 --- a/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.js +++ b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm.js @@ -18,6 +18,49 @@ export function analyze_snapshot(snapshot, entrypoint, source_override) { return takeFromExternrefTable0(ret[0]); } +/** + * @param {any} changes + * @returns {any} + */ +export function apply_changes(changes) { + const ret = wasm.apply_changes(changes); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); +} + +/** + * @param {string} entrypoint + * @param {string} source + * @param {number} utf8_byte_offset + * @param {boolean} explicit + * @returns {any} + */ +export function complete_current(entrypoint, source, utf8_byte_offset, explicit) { + const ptr0 = passStringToWasm0(entrypoint, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.complete_current(ptr0, len0, ptr1, len1, utf8_byte_offset, explicit); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); +} + +/** + * @param {any} contract + * @returns {any} + */ +export function evaluate_current(contract) { + const ret = wasm.evaluate_current(contract); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); +} + /** * @param {any} snapshot * @param {any} contract @@ -75,6 +118,16 @@ export function format_source(source) { } } +/** + * @param {any} snapshot + */ +export function set_snapshot(snapshot) { + const ret = wasm.set_snapshot(snapshot); + if (ret[1]) { + throw takeFromExternrefTable0(ret[0]); + } +} + function __wbg_get_imports() { const import0 = { __proto__: null, @@ -199,6 +252,16 @@ function __wbg_get_imports() { const ret = result; return ret; }, + __wbg_instanceof_Map_a10a2795ef4bfe97: function(arg0) { + let result; + try { + result = arg0 instanceof Map; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, __wbg_instanceof_Uint8Array_4b8da683deb25d72: function(arg0) { let result; try { diff --git a/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm_bg.wasm b/web/workspace/src/lib/workspace/config-source/generated/config_source_wasm_bg.wasm index dbbca6626c33ffbe02c59f6b579ad0b043013c19..7b59d0fa511dc0d0c3180be005068146e45dc2bb 100644 GIT binary patch literal 635839 zcmeFa4V)dHc*=DzI9y}Nf`B(0>CH1|rDc8MLYq}A@qgnuvYu$5ROrZLn7)4Ih4K@Ab$^zXI?956&lO)%6Y1`N1~Lq%dz0S--r z2?p%=|NTAB%-nnTO_J?6DRgDunK?6ao^zh_yr1Ws31&~cy$}RJ;m+c>-Vg*g1clrA z|L6^c+XMdRf}i)^5Z=xuKV0+6e>xOz=g&%Sv)`jPL=*(}%Y$}1@B^16Jl+qB#s<7iLO%=cPp_UKVPYL7&>tKt&BIu`x;;_ddJ9cV(AF7+qO@@o0^ zqka|Lew53?Z9K!z(Hp|s)R~BiRq|f{q4>RaeN@*+H6(?jhPc8}28K&F{=mDSlLH6e_WFer z+YTIf*TJ_Pc-#ER1MfI;=*Ia&H_y)Y`9srFJ7@RK9Xvc2eDlR$oI84C{=lBe>AA_N>G{3Wdv@)en3xKtS9x*N zA-;3=mUqk_m_9r;v1ixx3>>69*?JW)C0QIkhT=)AvsB-qfL~iG#c5XJ+Rn=J)QN*&X~}tKg~ay@{F0soe*6 z&K=%8Gdn%MYj5!PS9xzotDWz^w9vJ2N{GgqQZ-;oXP!&K;fvO^0_Mp58lisqal5 z-g|iV@WF$-_fG7cJv_bZQs0~1Gc~b$dS-rh=dQ_#gF7czrQS}`n>e(4*P(+mdnR`u znwg(GG_xw{r9*n_@uMe?o_x=(^U%_v*;{TouzP-D&-}r?dnWhnnc6ckITc*73ZAZ9 z!ae`^rXwe3lHa4^JQ3 zxqCMZHNX4d?%lJiR<${;>V!9A?%>o;SQ-A9n52@utG=5Gznf0{quImrZ#r^v{%t^? zpPkt~GqvmB?B2bT)6)}&R;?k0K7Ryqoj-A4YUk9!owKk9<8p9*;^3;oxg~A+$@$~6 zCyyRKfDoD3J%4!j&Y7KiW_Qm|tx7}fQg>qKPDJ(G)Xv=u!u;Vqt3pkgL_%nOZenV3 z*P+RSd*^oVoSQqmDnF+HjcTS3@7g;vy>n*w!Glu>&fTlNm{N^8d()A*x6L0paO53t zKM11Lgy}ugduL}4PV9n7r*?tt)%ZIduC|(PIs)CzK`7Jn@WJls-BVM+-&=)(Q#NR; z;pC0SkG|``%+AAyrl+T9%V9coXeubLQpq>@xV2TXZ~|R)VE!12b8`2@{Pg7H?B1Qb z=XR~$n3SFWZ^y>`)ZxQ(2lwoqIyA%I?%lyPt280ifY%;B4&CgUhu(IgdS~~}?w&lf zJLp~I&DSky{7okg9K7jmFfz(z@62Iz@Z_Gk*+b~GRVjbjijE#!m_LMen>e&*c4lJF zG@9x##C7=z5n4cO03UKYY^>jJ87)hYrn7?>acce^ZAi=T@z2Vo6<2!?zqg zdSYIbyql_K=clJ8G0W!mPEM}MR=bzfmQs{3KYQZ9O;eKxb{*O?F|%u8V%PlS%&w{V z)dyf{S5YhPz!Nl$*BA9gwZ7t&+^)^jqSwq9O zRK~Wb{nbiT1=Wml-I|sDcpKA;!D6Lep#}Wac#1KL>UH{CtJOvUvuQIZuhB%V?GMyC z>Vz%+Y5)gouLExaS$rJ`(}<;i>UfnQ0 gM$M_d#T(%EWGmgx0It|6m{1?`Mz@B z-o53ns5~S7x=sCs;hL)_~@WNaF_krS+NFztBzVtzZ_~%Pc5iLK?JO2{-A!fLQSZY zAyVu6GS5*|ES5{$4@4tYJ3l2qsT2b>FsK%L!&?i#%fF++sjgB~2nNgDL~@c-r_Kev zmEQ{o%5R^4`_bd?34{9Vk=a|`^H1jwoH#Oj>xmnWo(#^FYO}ZAddqtb9J+D#$lK;m z1ix9TA3FN>TW^^^Ie*~LJB}a6b`2gb)#v3-&$g9)sx*+7<+c5nQtj~3<8PlmnMM+V zPnN3kOY;YwELHu1e`Jw{;I~QxZ6fsT_#8(M1wUOHY%4rI@1?&`8g46{fA*WV3AF2E_((=B_k5zuW@=*D6#m^Uirt)tq&z1jOhQ2hPU9~RG-{#)tG#m^Q$T{>U<2UpDq1p`D5ir%70P%AH}~6pDzDk@jphtUHZfD`SPEZ{!{6nm4CVXm!(Ha z50%cAzOVdZ@hhcYDSxW?qs6<6|0Vj>;xCteuJlsz`O+U3pAWykbgukYr9UbDRruNR z>B?W1{5Z^F-)KT!E<>5Ih| z!cUgZlpibqQR#1@e;xf=`CpZOA^KwJneu-r|3>*&N>3I4Yx(i=FIHYE{aNwF@Iv`h zF1(5i@#L){_eQ)sH;Vg%#%Np`k7gR1^z>viY(z=W$eR4fRrdCogQ;-*xAQ8|8S@hZ~^)dgYB`wXpmn@Aq2tXm1?E#i_6>4idv=5HlRf zONC>{r@|`tM)$`bh|3>Q<0^OT@A|;$IOL*m$LZ;)ULEUIm#%DdSS zFXEyy72X@Q4+Nw5JqvxsLKFt2Uix`IgPxS@?<>`cG^SXMRQNM0j8qsU1q$hBCHaU7 zODYVL(0f)H3xebmfAGtnFTb%?NTNouxBg!%$ym}=|4O+TU0dsgt{4p?jVLZ&6Nq?h zs6;l1nyGM<9zw4pel;8i`#%6`x~8KX9}$Gc7#IyY!Buzkii+Rb=+@!88a?5@XkT26 zyWdi)h5O>3xR?w>p}k{aU9AXW&Z>l=N05`S}bj*Vg(N3}O6ysAF7SmD4&W8*2 zPufsugu0T#F|~}-Dy;Oe+ZU1z#)rwN!kZ|M>i0)ANTZbe_uwNUfKqaAwD1we{H$uE zvgC!2oa6oEEcO1|BIuh~gr%6fhWjx)qgB%|Z;({e*3hh!e;J5tf=N(coQ`4+fmk`% zFG@ehdELh*fY|DPQfe@yf)56GFDcaDS5z;a3B@jBKuHSM)%tXL0V;{h*VeZCPf;j& zp(hBc+ePvPF#cY(p#Be3!1EK0l$fi!nru`c$Qr=liZcMs+G7MASA@MvGI|T7-<#AI zG_DMo)d(L(KD1Cs2fHnozeyWNDm+H#bd3cZc9}m{u4M#G9tY<;nL- zARq;*n^GinJ4!0yKEp<{*9e)eA$ZhPS_(yre2ev;w7MW~wWplij%2s?K>1PyAPQB$ zq1z-%ayo?tSV^4f6|fVPf%Ge_vPN-LHl8vakXCZJY@8{L>bA6>Mk+J(%P64VI@>^R z8HYD}bodT&S|NENSg8LJY$=|PdtmYAfYcCOsK-%G9bKRXaVklJcoCiTBn3F}t&Bk( z9jXJ_H+SbqtFr?o04IraS}aa)ct&cifOQe5OpKSMe7nhHXz>UyGk_Ln3$G75W>pUTase^ zcgsRBTvY!|B)Tjm=K?joITWXjSJO+ez)gejlx`n_UEzYpFkCCm(2U+vt2&`TBSnpt zkW`dLfTxkaBB`kUh@`x1nlh?^2Q>uyg!E!OEMC!@@lYxz#ag1IE^4CD4~ETRD#9PY z%rLcLV+!q1H^d_5}iaCp7&K0}g&12p1APww|2OHhhbzng%UUD}VFJlWJ zIc=9@OEh7E#U-;z1~_@bsiGzdaGK>rBwb$+IYl5cC16gVgJzT!tHukV##7b}An)@O(XDqxw665OZOw?q^P4fwxa9OJS1h|OdB&3<%;NeNVF;o9!u^9?iV$u-& z(4YE0K>dD5v|)-{Ts)f7#aMVZBz|pen_h?N;Batjk|gs9aRRU7(7$&q^o96wdQh4gWb|fFTLG=F zWCiLiine9+**m;BvQYm;@NN_)xyJ~gR9{mHi9JOvax&8n}hj7cfLY*;s$)VUz0e7S)) z{`}iU@^s1w9w*3#M;6WBL8A7tU5=>FtU}ahT13rbVDKB0sOj8_L@o8vIq)uvi71tl zhuxWRX@+trW^&!`ti6?z2Rjy-k-XvjN=%_2Yl6AUJz4A4JDEe@SuX~LkrdXkm-}D+ml(*!492cFr z8ELe`ISlb*1;tKZ(*gb##VubGh}i&tiy~{U3B+uGzeP^_YXUJF;BS%t_nJTy5Rufk zRJXoH5V6Zsh|S*QXFqo?Ah!M_hx)%LBb{6Tu5Ol#5|C8Tj-Y zp+*H^g;+@^>0Aohy*;U8yuHlUY>RFsXDP3!hNcas6xdZPlXcP zK_V<-AZ>){eT?E`uxkA|c=fIAA30#qatt}G&v6l6u)sZXmcnH}+-$f;DnQ$>Ts`>P1FSOiY!O@jb0 zH|S8z;t3YX&M%e*91N{$%qD`G$yohgR7|gSCl3<;@YzNu8j&MD=`U$I<+p=ZAui$` zV;c5QGna{tT)?MX92lvtS2)~Awf+O}S*zJS7^SE3X;F~5yhU!2p17Lg+3(o+~c zF{o`hd+r0Kj%3RMVzFTRT{97_?XDb6qZ1IH1R&&YLe$@KA-$U2>?bl z^%)fi^QgADgTo^IzvW{<4<&Elt)agIy{!)ZUFhV%N^wFlh9;a4k^f4D!0>A%Ar0vqzHT8ldYMhY*aUrR0;b9>p9o~e zD(=2H89ma_BpK%zKS|K&waKw=<~23@T4DOlr_MMlzPy<;3t=jnabGouQFc418fK3~4NSHt{*plcz&m}J`4-$@D$LM=gD z<9!BF^Rx_OXv0W)m<=QItm!av_VR|27l}k`gj7ZQFoqgNW`%7Svs8EcG+c@&t{iA`HY{ZhE4l)OB&Vf zf>x7pvoXClt;8v}@WU%*?6lkZHe;8YIhW!_m_<&gYd`qKFmP2p6ra}6<1dS)zDW{K7l;bb)PJK~g>m83i3neC2hNxcpHVu7&&Xe<~{FiPK z0;3F?swAb=f2tVQRGlTnSjFEJi!?x|CB%T=db3ApZcB*i^*kq#B5WxyhQNsj3>XPd zB2x`1spY&X^s>2P~F=KLgj{>5;~9yS2lX6_dIbi2r%VG5o9K?dE}Ww(-N02zyxGtJyrm( z6rZ=OAO?#>5AwLl^|5p##R4q7JA5u|Y}R1D5H_~xcsgptu?_EC1P!m`lo?_)zov|( zZ+REa>E|(wcEmq9aPa%PuO&g*=-XnX4SO>tV{& zI;I9xx+vLlqpivbxHhlS@@cawJzKh?N+sS><*jLz3@+9*zt0vHe5}#&_tTj?J=5|o z>G=bg4(j~eOXdV4o^l9vvhqbIHL6x=OB$t$FH2<5y=+FX zDYI9>Bq#-{iO_r`Fc^T`!;&vR?m%jlCn`5V=RQJKE}Fyic5B_8GS67Brh-3@N|i)- z&xAg7`82XkL)YxbN9a^C0^zWjf~2u#*R_d1r6$K= zYC|d0dIb$*`goC+F==mpg!HZ<&(V|m390CJ)TCv(KJvaoQ|jxLqQnA;9hPTlL;*Hw z6>P)p2_w2xyF6P^Cz#`xqBIbOf~;aOEd3x?TnVCMk_4oHWlFQ1h7HTh&~WH%;WUg7 zV{E}{hlnmh!$r|>QEcJ#XLJbt86DzYiA+SV4~jFPS5j7uUd>^X#)VT;`UErN{#NQo z)KEkiZ(1Hvo<&liGmJHJ2NuM{?P_-`FEQ&a6Dv>_bMa0j1T7dtQrLy;<0A&E$9c;#E5PKn^;{8EqR<& zh^))Np<7$v=r0+`^-mYH+{7Jl%Z^^ zSI-t2EW|akCZ+$X*V$WGhOZ{&Y5_B6@x{zcN#W zXVE@YA5Cw^`GU)SWvzRbGNFbLRg4{{#9FFFxOZ5tn5^>CQ*)O-NRZk@lo45*bH|f% zv{zWolewQnYD8wT6}<(_Bt#3_g5DqASJ-ho%`{V>fHhw}DK-scu%otRu$OcgMh|kR zqq#X$vFSNIdW9B2KUP1sqT zvn%avfU_|>8{}-8oegnDPk3XPGiEqATf^Ciovr0;*v{5*M!Gh4@sp64ge%A1CC8@lNhkBEd zll+|eYIH2=I(eMau6Np%?!5E(@#e;bh2|*1F#+o}V7&%R#M1*Xeg&)`4=V_oRn=E* z)mP2yjidw3+(zFEO!L95myZClL9*$$8pa>Gj_0Xycw{uz{UnPcCgKb z=6Zo$Z(!FO*!3}h0n4wzj>aPbJkkO@k^|pBDog1s(>%^ksB2TXbf*xoiIk1UI1dbCw?{vhGyy2oqUUN~B5|S?fc35DCTVRKCu-p;YD^et{iPv8g$>f(`gro%aS-=hn z>`)8rP!5(m0^3ZHJRBnwE`sDCarQ+?>Pvtf6xhKQ*ufkucLa8OisT`Y)I}(H@RCUC zIlvAG>_7|bKn|8W0=pwcGM?;0bHEvBAQmMLh=B%-fd*EWQk^9AJYeerTW^7_=U}-b zuuOCtC2x))sk(!$#{+<^3vAuM)^o5Iky0Al7XaHYu>CEt{W)0f2rO$IpyUAr1|-$* zVEf}bVEYBO-@x`eScKyxkkqOFk;Huh+t&iymxJYwz#=OK=otb7lFC&us<1wx-bs z?0|tCFt7tOSW=4LR9xH%*iFg$ck$DQhTW7z?>rH2T!`VB%}KwsOO4{qNzXe^Fs#4^ zR6KfuU>np`L*60UYl2-f*fodUx2*O9I=B0z zU_8AVnk?=UiS;4$fZZq9eFnSFVZ%zx64wB*s}Q7%$-9Bw5bTD*ZW!z>3o+bN7wo#h zt~+c1_W~-eogh90oedu2bOGiE_MpKYbl6CbWi&&(9u#5U1MIDWz13iEHQ0@X7#8Xm z?0$pY@32{_Qv+1ocOo8w!k6Ixq)jMD|04eYfBdu>UPshrvd$z)r)0J#4Ut z9X5a=!)Clmu%Wf>$2dg}3HEk_y*-D$j0v__t~~_oF~J@)*kcA8!2&z25$rVvdyT^e zutZ+m6l`d1$1zTkLxR1-VDHFbUjnT?4D4~i9yi$I1{=WwJFOM$wFY~w!v-+Ju_N9t z*wEV8F;0;~f<0!i$8y-0AlDuN_GZD}Y_K;QYy=DJv`(S#4XbnXH>`{X~YOs+glBeo-r{Wgu$2)Njt*wUhi_jX10@&*f z_IiVjM1hZ%QQU(4L?_OnwbgKb5gm%60Cvq_*9S$lXsu7M z`wVuU!A7D;o(kukid(Rs>cly;wi?baMr(tDJ!r584K@-5Hd{t<3-;5UIEU6&!}-N% zZAh?(4EB)0MxrdQxCQ%sC(fa@)o^|>S{oMZVS_zvun{cFD{jGlrW5DT+G;qz7_F@l z>@@~^jlo8+EU&l)`$8wqp|#a;elc2GVyGclmRH<@{cI=BU5BnH&o4%6OAJ&5%kqj_ zu)oxabJw9O%JYlS+7f37!Lq#K7VPIbalV=kMV?=b)|MD*2$tm)w_rctiSt*eLzgIS z1k3V@Td-f~#Q7`Kp_iw>PhEI5b?D{k@6&?)s_D?n)8BUrcFS&AO^0HiUyRl+S$~gf zyzgqqx!G&|ZYwU0vRvFZxODwJCfIkUIPZ5`5n3B?TXAVT3)ss<@9;o#KXfJiJuV$O zZuZ)^+iTke`<@i%195-q8>~OZsq`K;@_Mt8*Sn3pV_AER_&Koo#s5ZiBhQ!W?=it1 zGuUGeyC&H83O3??eLQdigAus~&IhPwDb9httXxwZuWF%TR5!4f>hJA>z1?7Mci7~c z;i?NZ5w3p1MZkvE!1;P$FU2{qFGg#Zr@zk#HsaoJzC*r2>^NUK?*Qy&B6{sH4^;Q% z=L9>Z?wj*#(O#aEq_Qj?{vI{^Rqe5W8oYf3eMw|aK4NVZJ&X_ z(WBq(ffn>Pj>j^Nw_raY*u-yBoI`7?;rwE>ww(S(XfES;3-*JZIEU6&#QFA%)7mBL zZ{x9t+Ht;JvAq>>PK@hfw06n*+j#8ZcAT$KAbCZc1N&mMwu1g%8r-seKhlnKi?3B( zwp1n8swUT}F4u^s_A8FuZ*gRzlEj1iHP2;oO>tx#PKNQEs$8te%@1D^>(dH4-X4>L#4CTa`J*cXy> zfmTY8I~*t#B+Udb+18&*GEjnEx=kS&wps(s)^b|gKt64egVKR|dw=}@jrwjc+*Ww+ zRyMp1Z*GR$0#5_Fv|lBujCgVqYZpjc4EL!>DGlVXH?{g9c^zw3lo(?&J271s-ApRU8w(pClQl|Y^l#Am}q@Nk+*{8 zbU?3SMj__FD2#Go6h_D&=@Ovv*6vugv!K#($okNbWGEW0UQN5kqwBL>8!y^`W#Pqj z?KGO^NNMERk5=u>!I06qs0r2A1Ne0S9=ODwFAsQNuK|9ar*K~q;HxweBr|laG!|8XHTVYNrGAKkuUoq$8tP`sh%%r zH`kc_DppDr*r%DCC0lfqv(^Zp$;U%R2leYEm0n=eXMk|_JSk%Bn_nSmPWhTM5~Tb! zP9%sV7)X#x%UIX#X{iATQfZm5gR|!dQ+dA+&?^K=blA4!TJS+qIruBRd81`q+cvqQNJX{~VNko4;?xf8t^CeIYI z)|(i8n(Y-%aVGsl@^zS$t_j%ER7qQ02uWdbfz-uEqeh`qASpAhid>K`dE#$Ap6+cx zE5{iDWut3ow1Vu(ml7=~Q%0CBAI~m*1=*w7CAS{&bIUn&)Z}X|0tt=@S^(nXwk2-b zx0xkw>@%^S6nLpm%h+QSghDpo@lF)#|CBRdX~l9E3Hvm+*-OcyW?mdF5dE`t zG&bH~$?ks#1G7A>+zYMHyi2APLTTVP$cDt$FoenZz;*;M%CT{Hs#PHTvU)715@U24 zV@nG-K5a|D!sKZN?N?BQ6rC@SZK#E)EYh);Auu{+n|q6lBl;cpq?yf;^kBAlGE|x( z%WmLlNUoiUwFF6Q4Cxso%8(cm(`Mt=EM^?NGLLRfdGuO#Z0#VNwMHpl&Pc-v=h^Ji z3Fn#Y62f`9jc~A1Qs%rU#gMJuMlqXHig5+3g@0Ps)XnbXpv)qbDbc zJnI?x0KQ*S@sXO2%G}j%Pc~*ILAoSC`qMFkq$N6)37ymyjhU|+OR1fmR&#mU%*U#~ zbF8##^y=WZUP!(<5R*I4|N09ZJpb|R(ueM&*(F2wAN<^S{xXKH*)ep@tiyCo^eO>Q z9~P-1r%l?}SAPf#M8dwdP1+@botG$tD5TUB!q;;|&GN(uQU}qn?IYUtmRg-Qrd()a zsu5k+F`_KrONaZSno>K|c5tB&<)3DQyJCA>Hz&q%PSN2w4oR$IU8I1tr6+ zt|qBeaqZ0;$<*f7D6dgkl&(SqZEV!M%SicdQDwW7*B0?E<-6@O5JfGx!aUG=D=O1+ zD%zuEoJ9^YEl~Hq1~ZfEsf>W4Y!h({5H8ko^|q3yEXp)bIcqF9AQ?V0NZC3I0eWXBA(M7E z(&twS0n1p!snytr3^=X=~7 z8FzC33UeZ`U80K#n{+|LqK=pYA&A@~ZgWK40S%{sZs5Yvn>W0g_bQs5G4cdpSzC1WXbVCzaXQc_5uu-Q#?jnEk(S^ zDXUEl_gz;TSvDiimH?Io1pD*s^l&{;wkEwj<|qbT76dzD|;kpe59(1w$fAzF-vY zOQ2qTrhzYY#KkvnM8KGr-r;VdI?QN9H^~jKoiK8DlR^|`e)7Baq~Y7e6kG2CJDGlOqd#<&pJ;_3Hz+xs>PzZlBBjM#Nl3S7hqeIg9enw@)ne zZ3!a&6^dc@?at2QW{6oql17)7w07|!jE#PXSbNDG;+^Q%^XwBr?un;tjq zfJyOYFJ1+>@9(6g)QZ7s#Vf0tr);MRCSAt3!lc6Fzqofe)M3oAVS-G>ezP1O@3b6$ zwas$;Wjn79YsaY}Yi+{U`cT-3f5|T);44Y%>Y$oOfm>3v>+2W=PMv=2kf2(ZAWePC zEO=hGsGGdV9(j>k!O#CtSShAp6oM;5a`F(^Gl1pI@L9X5tLwU`QO1jEA#^PBzso1Y zy4>6)uqV9)-CPqCAfSGS9%~=VP#|jEl+@Eh1879AC zB|jVLGqDm2W-i>v1~KPAOdMVv{4~gagmco@^qowO_oSVnQ)wUrX+=4mD(gt6Dmv1s zo;bWJILjVG+KY*x7zToE&%m~uCd(|yW?T2vQvrqpB0gn9t~f#rqTM`%1|P>=h(Q!| zqc^okzf|B!09{BeQq6Atyj!G9ll8clBPLWJ#9ToP261N5_cqJpYDC#ozllMMvI!5` z5lmq+D5QNzG1IKU?UA)+SJGz4deGYR5yYYfb_@e{z}ICUjJgOp`hc(xB_z_-M%oHW zAoU?C*>Eeyn71~H$yT=py4fZLYOOGITTG4r@mDPXq)4a&K%e`n1%SE(O2OAUOLmx4Ysw2k>&-A z1K(#3!c#z#x3u-1h(v_(u!tPWct}U2_=6l%OJX#65$iMA(e6uhFR~=QMvnh-z67-C zz686`WKC>MdAE$6#Z7!IwXwBPE+cJh#n2IaGDGlu)7frUrN-!Ov)y=$41qIy8Wo)i zaV)dh?uR=)ng_GlZbs2&yStZqHu6wcnC)gqZc%zm6EC)xw`PWM`$K5=%*Rb0r1H}Q zbgyN0Kt@K%_tLAf`K-^gpDwu!zEEh|E;h&kq>?t% z!At4r8_%k1Yvy2bUL3ipog)`VKEFmBxyqyi^cNU1HB?WFh#Bb9eC)FoSz~U-N>8aY z&*V5S+Ge+3{Be^#P;p1DhNk^jpk7qSBIWP#xz)XXV?%49)2q!~b%X$|q3~cw2#|JO zYP;BzI-{v!o0v^yX+8O(f~c?i1{}E_)F9ryY4}Jkeiz(~<-tf%*41o9WuzNaCL>H5 zl6lb)`CB}1={lxMD8&0{4YCwVg4?yyAWMp@FvuWNQLa4r0+;8~M^QLAgl7(z5 z&qbOrxrj~*+Q27~ZPSw+Y4)~2oD$^7%kp}xVw&S@Y2f1+)-S8fZHBK@W4=4NGE5Yk-# z=Nri>+(n=R&%-xl#*IkW927smw*F22yM0W#`8u{1I~Vdf<;IoCpZWKdE1JKe;Hu=a zS;47D1+V8>&eS*dK1?3=(;BC6C*+K)=BJ|zcx!&jvvp3NB=|SLQLl4%Fg@j+A?-|D zXLB_URd!aZNE8ahT25(*J}kYC)5l1M=5&NpLF0722H}HJIE0MEZkAmK~!l)L>)n|Xmf(9qx`Sh#GSd-Am1`LJ1Vx=4u#EM?Q8*3Y@c4gmi zePeBdc2jJB`HeV7l>}D*Rt~@M`E%GF`*_1DwC6TtK!}c971SFWFR!OGWXn7Fd7lz! z7mgvY_3d1~GtRbaDmsyrISsDgXm<)BA2eF_PERji0pcrJT_0`ik{!iycMNu#W2Ceb zh9ft-i#z^=-Lda0!h=3emhnlBp?}pEUmiM1FYtZs41KXX-gW5O+72afUFK`^*VeXc zYW^}`J6O9yDI1sb)~9N#6^g!g5>cKF)bR(-+lGG7BDO?`&$GG7BD4Sh}aGG9AL z%z^MjPvx9wpc2t@t zfKf3NSrUk6=hIAt|J>OKdPgo;yErJ;eyYIv+?(I^q?j4 zjCl|T2Uhvg%KaPp9ptxnMjir6A9OXjYqVaVQoe$xEzNcJZ-BRtQ8B67+Sd6V>q&Q47;N;Yrr+KJW}Pn>IRVLVEjHe$6CBa$33yXnOH= z3^UJuHxne|VA-PKac}0yn11xVKCs7$zB=mVz`N|77xW=;b zvDUcic@hQvd0&AMrR)KqwA_;l^K!@~X684Sf6^|cWYyBw>uanfR@aSJuAt0kmtvwoAt$pVR4ldNGVeLvoGq!qhiBU{1E)GaG41jBPLAzj9^mXW9*of zSzjR{i5=+aaZXL{xV*{aPbzmXoiT!yFTtUU4?u7zHeyF&Z0Xm*tINZW;(i+cJiqo zebdI5+FDgyU(Z`&RMAOmGQgOC?BSmxQlJ3P4xHcyTU|6Z#ygUq`Q4xS-QdkB<&Q!6 z#m2biBzUsk_$Dzxk>|z;3e)3pF~AP*b}`=3*hrtoVlrM)a1vngH?byJaK<^ZcQk$3 zl(v1d=nu97D^s=e~3pMvPq`1fbsyUo+xuUhTvdb6k;(Wm|2E8{k8EVrsJJzJpGY#76Qv*}INj z+hgn6==7`%35X1zxT4i^ddR3I-X`WbRY(V&)JkqOH?-4@rAhO&hRGcJ`af4KLXEln zen}VrOl42`O+|fXRR8nF^pdIB91k&f6t;q2C|ae zwW!eg=3$AfP7U%4nNB1!y4}r&4HC(05@A;1Z@8@oBiQAm*=1@}WS6N?kzLBDuyYr0 zXvH!0IMa%1ISamBF{({OLS%NR9PKg=qTvy--sWVxq&(XaOUm1o)WtS+fw_{+vOBgh zIN8vcf?7t0S^1doA{dKwp4lBLU!)^f(y4|@J>Sy7GXz1Lq{;cvSYKK@LO>c z(8V?aveg-hC7RU`1n$R#dl!2qW6rU#1B^2)DU5v8tH~pW3m!BcX?vWF=uaDdENIql z$7ME$f@$q`UwgTYm+EO7FFkMLtMZmzNt1GJi zs{!lojt37XTG~D{3B)KZOz1sQ|E2L$bB68db3TaI8k0{j>Kj`@IHxSW8nz}iv>qrl zvBCl~*=X0nuiNA*SJzXA$xy4*R$v$(n_!|2W8l7&qO&Q+Z*w_u zW0R(gg*UiSdYCXf`*&Yu~_xW*m7|{Z9$4H{L4h z+{(sUm|ffBE3T^zDCal9&B%z(r=6I8ax&y(#BSv!IXMw6ZX=`>L&wC=%8Is|KxOWc zxjCjL@gGu0yZ+Y*e%zlhGelFf!iAU=LQ5E?I?n5o$WQ=7!r66PTE3ixa&0VCG||tHiM;B8b(OhTr3nh7F)ZA*Ub6F5P_iKz7NkuXdUb=%SYS zu*9i0rM20JePe<@*cESdgTb!wx81M>nH!e`DqK&c$id2E?O%#5-Dxucnj1Rqv>6S} zjU9JPg}9l~%#8pOE~dD2XToNb-T8zM7n=?ps;kX(kb6x_Q78P;Jf@y;oa-NoQX}1J zw)r5lh*Le*vP7(ahPT@58Z2&g&DB>+dD<(Cb&eJZ6E*3SO^>)I>Ke12YaeMcqmTQe zoH%mr_CTvlb=^r_sXu)mr>HagkfG_v(~-yV_^zV%?m_k?FW4+sUsM>V475D?RRVVQ z8i`@#mh?&&p<3$Zk((g%Z(Y_klbmM9XKLUQ`Sx(O(+SPSi%%!jG)jz59aSrjNnwjd z%L2<)E=lbu+wkkDY#%XY%QS79{4?L&^?q_?9!iwOGzQy_1%Lh7eZIqw2hP6iR(}>p z{*&y|dHi$PrStfwvrBmVxBYyzNOv0gR0QD(BwiljeoPmHzt8E&=cga$C*XH!(tHspBQM4x{FQ;xb5&Yje)u;%^-LBUnZv7 zgmo^E^?aMC?kH~))E(t*VmdXq2otn~bSfg3L_kj|F*A*T7Ci!5G{eXvpc@edB1*DU zxoHtlLSB5NQ9^y=q6p|ck^5mhuQFMzwrnDs}79KP@cl5(Ba$ z0_rB?J#B)Uk1Z`0+I$FUvCJNn1(WIcA$Kfbw?R8If$f4i6Wrta5bo900ZG*>GqY&1 zeMEcRn9AH2zGRlSC0?IFv7oA%#fZ?WExW)pM0>6~Xh*7>9e3L7SiFVQ!MO*2H@$T? zh*!2n>dL6Jh=Iol=Uzz~O4}fJWJBhT+?7g5r1;&cJxh6^CL*bPySEidO@ZDZC1cHT zYuQskjTD;g8iI5X*AP@i?cd$ui@o(5!4>%}Et88yY^0SF?(~B}&n4!x=b{flHJoPDI<`%mi@ph1zfP(rOlkknx0nBW-n= zvz znk9eX3z)xZ;@{ZcsRsXaLQ_hlUiuTLMz-}HIUP?J=)Wvv!eb$R-0Ab%x@0cjN4 z6$c6=v;~3!L=)FoS{7{367)1rL;<(VPc1C=Q}HDwlzXX}mhm~`7}2n#?KaO9AY!;_ zj(Ex@w!I;_4|!x+m89LXU10o0^-!x&=oh;*#+wvQ3F1*-HB9=A(n(3!RSNItu8T%) z@A4Gh^Q7=b+k*We^PACrqCgYqm?F_DP%%e|W)KOPhTp9~WwBY(p{rTOsAyI!!xywG z1wH#0mu>d6hYCmIQllbAxQJ??%ZFMGGvYjFP+Ib}G^S03TB zBf~z8Ivq&cqf2sj2h%(Kr0=TH85|~Pd(;LT^GcKWp7xEVsR2#BQXI1^a`>W_n1nZ#j9Nki2lL zuULq}f`yNJl9vj{KtB`Xtdxq^UdQ6nC|-X}u#dx*>1c+-M(9n>6_ML?>jIYEi1Z!= z1L=arFQ4A;J66FIc>aHSdVl-=rk~F)JudK>?2;#c$IqkW5dv@GTF60&AgB78;2hiU z1w`#l`Y3Sv-O%ut0xnF1! ze5B(@YQ9i34&J7tvlh~cbA)M8fRE(a3`35vGufph?B48>k-Xc^VHYT#$QK)hDmTWN z;UPF6=|QQSl0UcRTj##nc;XaB0A@5w0veQmq!uE zP!tzt#)uRxd=M^g^i)~Bu@ZA#o#Va&AXfTJaDWryBFt4(wyJB;^!KN}Ob zKcC1heLNq_E`2=DWtTpl4`-K*=YxJuj;wWI8|`5!WZOuTlfw0gixKENU5mb-Tr>n` z`@eXNt(1u5^z`KjQ*vsCFeqkpfB2oqpG_Z&H+?kT{Nat5mDz+klFzCW4N5=TU1T+%O&NEwVfvRSV4?} zXcV%h@i}{J1PgGoVla$LwjYOQS+MiSa`Ioh4pnZpHq!^r=>v^t0a)4rS@P{2Fq^rz zWwrL^R_oFZun`JP^Mn!WKyTgw21C(YbwuB6F@qedH17b7u|gey{V_a(qIR*1lE+M_XI!7@RVy};hVX~keJ)wTUGCar znSEn|kZtYr*W5m!wqFlAG(sY~$8-+HXIUx(59=h>y~Za`=J*Lfzax7 z@ek2LhF_oM{< zN&@X!3wJKZ$%+VzlV52|&xRftIukBxZypRWyZxS^8lKa85gU}vo%^=tTMP*LMG7iXESX3_ut;wn-|;?2;D!8$XYdCqr8p3yVD^7F$89ugYRiht6Q4Qq4e` zeBEJO$VgfEhgkNhh^K<@RD@dw0Kboc41eQ4o<=q`>fbLXf>H*x3P&}gyKl(F^EBxF{iYjWMTgc8ckJXQA*tREvje>UjV1Sd2xx9?8jm;Z*8mOAe0*&z(xG z1((CmW|uC9pUEy=4nLh;y3~6zyL74dcy>v(kNWw_F@$^u3o1blGsV`D!)JAo&4BG) z6iwLc!2~%=jS)twQVXPG3T*bdHt(|b?&`DteJG0>cpJYryQGaTdK*Vl!{-d!_#|r; zI6$szrrNHUNmumwQ;`gxUQKjG$?r!UhR^-lAk6JnYf7sb3T=2ZemsNg&G?b*l4ksn zol^rYHlJO$WKFfn44gA;4QD>f%1!(K%qB~l_6seWj2Gp#&^pz7H}YSzqSp~Skh?BX zYubIO21xw?N$15Dgvu6M5Gq@2L8xr81);Lsg0S3>y_pnV+j#;mXz^TA5j>+^u5M`Z zU4&>~EbCK2LWbV|`NVpq6(p=I2@6aJ-j5`9*XT+TX(#fWV z#Y44$2|MElR4c)=S~WJQzNiXbG&xV`F-rn?K-u%21+c-h0Al67;Cp9%i!^DN_l72DY)3yn9+@rasK){MVqVy#JX z{1swV@E!A}!*^E5dr^ZlY~KxJ5kW?Ux|nNLsIhSKw`W64Q>cr@U7urkECtzD<3d47 zKOtwOEaKx9D6{q{{-4HP^)k$BYXdEiJ%aGbb7zf#H8%_|`-oT+j`h%Bg494qC~edl zaB^&Z_V0(ox0i2Yle|;Ko14XL;;K?co1I6c3n_wX!s0|y0x4{c*4I@DwEtCi7sDO+ zP)JfzkwI3HQWrT))o$H>zXVO^Z8po|%hTFyGRO$M{cW;eu3=MDDhGVAVY`8MHEgrW zDiqE(IaA>o(x-A$9hX>gvC$oO@sV~ADHJ{m4amb_dq3Ng2Z5vM4PKXJ!YSKUrgpPc zT0GvYA*RUr@!}EEe!xtf{|BOdDd%>@z3-1u5Oytau3W-8*8wTw4pK z7sYr`7>d+FgMyhpP=8EIWzKk%%wfByN= zkgnU<7}Q?xAyT*zl4R?}Y$!<0J`#Gb!4AgW02&ex*7v|HEXX|-xl3J4p2tb>woIyL zB6|V*QeJ$e`lM#4_(ER1&5GB1u@H?f;Ps5!oeh5Hsr-duD<<1U^*oUm8~&Q3R;(_c zj+&d8?g*inNzzN4!g1zpKdT_wwh*s(4aSFbH~1Oad841f38QvK4w7++z2BYO$P5-8 z&roM`HA7-UP;q~Oa#sRA2y8EK7bIh1+IW>y$-VgbTIk#w zM$lutl)i@`8=wOA0fk%`n5I5hg>zuSuWIs&Is~yTPYkT6b1c`l98{BEsQ}RcHV^Kudtdss3`K zge}M#Ozm@Ht(4TYeQpLgHnjjLZGE0;H<%HaD65L7Bo!2vESYf!?L8i1NPvOI!UjPs zQ#sGD^%>L`KCLa#L}5m1h6Hur%T_heG4J=saUM_=Db;ZODe48d8ci>6Ot`O0g!tGMXx{La|PzD`_p?9^o>z z*7;lsb*L;!KO=V^dTGB@Yq?xZiDGrdWeu{FvX`&8v}rD^WJ$*<&^DG=`AS@Qy>q2$ zINKt~coFsOR2xA~^-tLXV~EA&>jg_BSC>tZd+iywr*bxLO;#>?zn;(Cic#n>A;^p` zjov5)V*R5LLJzymbY40 zj@@GWRiomP|MZ2&*Rz3^SLvUGxsMO#AUev14|tx993_W_p-Y7iy2#~5kt&b2E=dzM zhSfIoG4u@lCi>wBj6&{4bgVIGweYosfK9?wYh2?a7KpBbEq^K;!_urb!t4&BO4+gC z$}+V%tf!F-nZm~@1|{m@B6KV996R8QxOFYtLORe|lGVap)u)PPRMA+gq6t|>s))k0 zN~0Y!)k6t^thR}~wwb)P^T>#T9?Bc`6eVeeq?=?lYGbst#tW?)p_a6p3D0INyi;3P zCDfDGd5V&>&gWZovS(3N=iP<8m9z-=G?dPg(1w86QbS%I8gozsRE`H1$e|xJ5 zgkVtUUk>%yN|4jb#Xn6^6UNde#A_P1P80*5{8&7$mPMyb_Zy*7gyI|r(%f%w=H*vd zHqNL|a!k!Eu?&lJ$9(42?EcfZ%4Px&tM9M~jzH?1T_-Y?X7ET(n8d2`!Tf!Z4FzX? zs|4h-b=h@7EE8P%%g8R%6KR>|ZNU%ph-KtMEcQ;r$?BEdP8rlLmlit?e=9|>d`wc| z>YpwsuM|yZAuASal>9^^k)o&rb)*&hcUe%IRnTVZo!WfkYAOxo8fTI*wH+JvTsoGZ zF31^YqY;|nV=~d@kjo-Q3c^@seMgolHz)^qP(mt1)@7-FgZ7?im$N0Qej=eoc2ef1 z1hT$b#GZG9rBLkP4|Bxf&E^KdomgoBt-cIz2;n}CHn2rRnZR$w3)~E2(%Q*W0}^D~ ztM!x&W`f8Ao;~9=i=JC`xHkFWYR%d}Lw-4p{blH+Y4YFIAvSZB3WMGNnG-|RkEw-d^ zCZVHFL(@sDWoQnf06Gm#77$qj><$$2e+;^)`M`Xtzh%)!=gvp(?<&Fu1fi_9+UEqx9T zr*RpxOC|$?)=f8fGPU8B&OK1Suz0d<>fsg)oREQUmbFS4$I*n0d5X;TNXnMAYJ;Um zHX*T=9% z-t7v&ZJ=fk+aq^IZOC)*;9?N30eH+elFeZ--Eb%IVdw`)`fjFS$+*Z>WX(3emTqB2 z#ER-)5Vjw)-Vj5^L9vdgz;tk`o73`Cm#`hVtgDlavTNToi1C;wl^W1gypGtVZR)W9NEufS>Ii~jkpn!cDp zWU81vL!D3l`*Ruth)R3M7?^I3% z)z&$j*{0vkaAOj%3o}n@=+s4nMh5y3-V0@UOGkt)~j&dA$J{`b=>~o!NRU zxik=DYhp=QSP4Val;g+%Q_U-CEt5-7*Gq=UVxC!gWUCat{zC%qb)a_c4Z&ls+=e?;Qsh^qnsW}opx6AZY>plt(^ zk(yvYMj|Y%1o>E|1mo392$a|q3$iqyXSE_;#V^c+4{L%YZrJJ9B$O()>0}d0Inzs+ z1E5Li_cKJ}^@E(SXd1Ue}r^D7y_!OEMe! zlBUT_jsoRUCkZsYsmU#oo*B-q*|N2*xd3_o(nIQ>&6d^GJyQk1vX!shsrz88XlC<} ztsjSad@`(NsI?967|oNaZ7jUS1Hf!lUjG#j0N+Y=qZa=KnD4qBN+plPnivexg|Z1; z`LRtzR(oB+T5g=osI$+N@*o^D821B)IdiRo9kd0BVM_SMa?EtJD1LAe#Se<&G5kzt zu1fJSd^R55;vtCdMSOJRM7T5aT=pdi^S_Ep)_CBW!qDxcYMc*lZkDz|6iffnXTG8s zH_O`oq@oX1a5>CJ#ql+}^#MV}$(4iC!&42G9rBfAR2>g7u@?7$f-Wf-B`$E@-Ke;v zN#1L`U42ug{d&LM6`#qOO2RixE3mgJu!IBVuOInxwo!J^RY8#4#uK*FMws-xrB+Bj zL_^+bOCgmELyBVZslOz&+#uy>xY5_@m_9NdpatKv(AOOV#bU7#Mg=k%h8lgCYRLcx zqBejiTos)A%Y9rHND*$ZLcUM6!g&0?iCiYUd3ret`^z@$<@@hFDi~=fkB_-({r{$o z&B~kbt+{v$Sg2SEl!(2n$%p8j?qL{FVgWoN>X6ZY7}*m_cj8IX#Ym2`#fo|Y^6paW znAfym6nC!#8y~X}1r-8XgVZCj&!O!m)JgcB6%7~>tc|Vz2GSH4I*Uf>;tg~LkTk|d z+Y*exrnjusE~z?1qX}`-k!ds4O;0M)`__KFtR@Smbd<}UPm@fh*(;A@w)sumbPvsLVC4qc34DZ!^9P>}RZh2Oye zX~VD*hvqgfYFi)ZieF|O>VL*80sH{PbEw;p_Saw}QN3?sk?Ee4;vom{ARJfQDZX12 z-<>M7)({ZbEWDW)L>xvQ`5=H#!#eulZ~nUQ&4Hc~))PnfI*{8ol$Tb|@ZxG>)!Ku+ zs?c$LlCyp{P?8wa{ZSH)*g2{GSqFQ0{=D zFk)lC6o2O!AbF}ClBYEe1MTBb)i_jN-Z*^b7nhF1+72SW1ghw0O^YhfOgJ9>1bjl= zvwp?7BSt1v&Y6rgWGfT}S=E0Sv&i&~zwt8Y;4@3_)L#5r_2yE$XRmL=9I(KSpH65m>NOE_*IZI$jAiB?Z)x z$xxG!{aW`$7crlW1lvt@TL2 zwDs-@w8j=otu?mvKBlJ{H6w!2L?<@3igsrs>N2i1qP^Ou%tcbK>pQKyY1eo5g?1xl z!%5FV(l)R>Yy(??tkl|Ozdnwsd0Fx@Ted+4!bkk(B+8^GyCk%!);8(+nWrEAU*S}s z?&u{jAPuWaI$HE$ei;O`7|BGvRbP{&1S7_`)F77BNRs*)H2u=7^Z9mo+0Z>8R+2f@ zZNe|#=S`~Dd0(3O22jBpGMS8rq+h(?-B!>o40yo}DoAY8KS_0MV`uP0w(lmwgk-_q zl0T*TZV)~9Gu4Y~40S-AjM2@wacq;BeA$Bgj9li>~x**Kh7HP+QFH79MzNNfPG>VSNC3G9kh?@L# zcnR7_El815M`vY0LS|+`n)_}XPnd|0oVQt!VpAE7>Mr|pzw)NH+0mI)r}6cswIM}J z)l#sX@fkc?F8K~QopcfJ>h>F3#E-XzNT?&pkZu;;#;s#A*oc{}k5kvkIah29#%-|L zXcHl8-U~-}A;t7Ny5b8~P1FYpPgbDlHdbMS8EH*F#utf(3z+98w zHUbdSVnOseFs~d{uVw$Len3ie|K7-*5$*4OccL)52ACDXyw5TqU;(Sc)#!4`#%r z;4VQ@u7ojp1BNkE40yj%L%kTDy-q8aX>GN!r3p3$UG(ZeUWW2rME(dps;e{a!6EhZ z$oGYu3={m=pq5-RR}#Wf?f6frzXD<1jPwpn9kdrge&-HSP;x0!U_CUEnE5`dq0?uD3fb@nTmh zYe^8-UoBVa%vW4PgC-o>Mz8dRBvV=DHosB3X8!-#dmCuEuIs*U?!7bfX6DVjHxGCK z9^S*pogqX$h@=R|5=l#{jEh+OkeCRmnJ%`gZPZn@I2!c8Rtjhi>UE%3&->VN+G}7J}cItTBg{%u47iI=-hv5ns5p;8wqc9NK1-7?h7fO=tT)Wi*$2$XhTWu_peAW6;aIbU zISY#HG+TY(QmM$Q2~W`~VsGQzclImlW{UM)2lCH}*TS&Ekp2}xWHtw@I{ z8fbq1j9n(UQyW)|@$?cUb>8E@Ag})MmFwNE>I{AOt{t0r-g`uk4voVfxDf=gK zJf<%))s*`uH1$!fkn_K_9$<=v$bS^%XXVg;Bm;5E#RMt5KwyAOv4 zgXePkU@~e7(8tVk*Hl-W2k?{Y6sOF!f;sBQ)!D(BGLcx>fKx|~00hOd-xpG0D{tl% zIE0x~#4VT*ISa!dbU+RW6GEkt)AnA1*2w?Bu0*jq(GTgoyc;Zpisvmymy?Frl;@SlZ|qJN&zpo$(Je7D zc6V`gEc*1MJ!&yD4Z9!`(QYD408gDm!ChQ3TiET+<1E9peq|Y~lWZulaHx(BUID)` zp2_MP=ArAjL527i*QK}fqf;Mvb6m&hd7{xL^h+PONx^mfHg5_j-LB9Y<|?Jv!=K{N+X(EzIfDIK1D3_%U>rdCG@;S7qeGIY zYr)e=)2^HscxhuNCWV27evnN#HR^dry<|vFs~fcbl%C1AQIW4vS?@Cl#Af-Wbc7JI zLZ`yVgdws@G-M5J_;Uv4Gv9``USV@Qhqb$}Xa^4vaf#s%Qt|^#tVGs8Kl{er;U9y~ zwjn*pyF+3hJDif?f0IQN4xEAVPt*{LlIB8$0m?qYc{4a8`5QctX2Khb#~>d`f5Sm? z+)>qQ`cwNRm#dDy`AEc2CoPWag%^Hs&ubIW>7<{3;^+7#Z@{MThE(u@VjlJ~1Lp6k zbaqDfLNIQ;A2Sj1UgiV8R(_$et$eRG2;mT2hCJiyL);_brw%*=z|Ph(K7!v=iCkN+ z7m{@HE!Tq@{08zCI-Sr3}B&fbr4xKR5-v;fj*H#j8m>#-R(KQ*?oI>pl{eVbwULxhVtd}=~B@n9#O z^{|jb@h-HHoN%*&T_`m(0R+rP?~O|%G0p#rf6Bot4_07-2;@Vj0ru_fG4YRi z!Xs%k_;WnY?_@qm>r+;p6stpD{06D-rQs!ITO2?QnJb`dQzD9RF04-2RIQx967+&M zg&pLM1y!s7d57?#8L_DOFKKONr;V)3!=KhfJd8iaA0-mXs%JDOe;{U7vIX9x5i`q= zBRHPasE@+~JH_Mn?~{CKsLAkEm%bmfj+O+MtC~-;;nQ=5WMlAM19FgXp?L|9fOz5k zIfKp%mG|c@hd2Ncf7L0GFY*9KS_Y|KDAq{fNl3v*5D9_%+Dvroz`-N%@;GdjI*v@z z?}Kav==Y(fp(6A?`~wrhY|!5(Fw2R=u>95l0=OwU)!z+PDoC+u5x`W*<6Nkv-;+(# z(2@@)_wp@V{j+=vNgw4W`B397e%^mwdZ)j;!{2?{pFYJ8Z6f$ogn>F~0;=I}T9d0e z^HBTQKv=#+%+_+ce{9EgNd15v$C?wWvK*Nc?Qs(4+T_R6vBkLHc$)Z!6uZ1d9h))u zp*%{D0W3Pf%mING#$JvKu(Ke_osv5*F{Jd<#xyv?;?sUil>z39(1S`s?59c#W zs3VP!gC&id56k0FA_&xp<4es~)A3%n=n zctA&YC-K2kH6%abEC#Ov&)(v=uWTc7NB{BGNw(2=ppbS~rDznfqZAYgGb5$bV$$0zERnN>2b$spPPyiSY;bS} z9Ld*5Mt~51=MgAs!yAiLh>LlsrP>(b5dO}zfpKl1rbC3G+R=ed@w{{8z!~&J_d{cP zVpySiJpsZ{p`HMP*Af6mB`26!iQVV*%M7B+P{ed>33%kW+@B1}QR0VS{q$NTbb7BQ z;5mQTs%3BvFuF}^rc9zgiy0r3VNG_#2y`Mn=(5h07((1ZF^~7j*o^R6j#!=5P3FXmj|xQs}*X{uLmG zYxjG-UJKZ-0CYvQHx(2t($nLF2k?n-9aOFU5$h)9p~%=lSysVC^C(LM-HBp7A3h+B zqd)=$m@%006sggN&ajxoI)-optIdLCitj9|r>AMvCxR;A;a_TLIRZn{Dug%E5(HRj>$GJnc|)TJAJ!$`GCVkCen~JRzJLl80IxE!xTm9; z9dl};t|yz71(xma8C5@pAog{(L@v>>jrW_%O}?q%vWY_U%`iYPu(mI`cu!J^x}6g zFzL$Y`C@)`0 ze7F;e6IM$Uv0#zd1}&8ALWS6qC0aBXD}m^-ZdXxPU}dBgapc5+i8jL3=6fx;wo3A$ zw3=Z><>a%=$VXL2MN`4%LO1--w1L>8-hIlut$&d*b&e8%Zf}0caPgqQny_J-?pxnR z#eZCjo+`~uQ8>y;5=Qz zxnxr;vtd&QeoR8E<){n}Dd-l+yB?E*CzMR8TQaF2iNR{aQ%Ir4q#}I>lXRU)NgiAh zlZw+?ZV=Tu zEIDszFE9ii>9-GWFugvHM_HNpcr>NXnpIx zqcSe>5Y~FmU*Q36sT4CrIqz!E6GD_!30SM>btTr4U7WJhsK0$(`kt`An%Q|&s)CG%|&x$A;pIyqGD*})YDQRRLQ2MSGjU@ z-b!_VA&SO6#ci6WN(QT3CZ+UF}^N6uNI#EtyAQ@N>ZnT>Dk#7 z{1unphd30bc?HAo6+%f}Z4hgwYe&pzLtc9$qi~~ghJmm0By3iHRoE=q>D^Z|Wl7Kv zVYAGtXijdVnleF}H6W8I630166Bm(=u%sg_p(}QHwVU_oKnQ*mrsYPo=yvg^>`bB? z%l%G<&X(ejP>-Dx8Dshu2q0@FY>fAun@S=MSfIA-4(Vt)c3ysV&{cl+09<~SeHWHa z@PK0oIFV=O#E#3eP>&${XHdMC)6b49mZ=uKa&#d`3sJOan)BrjIv_l7_iRuv*Rjmc z1~3culd-ize1O^Oi4`M^4#PFohQ755uAYjsjx8&Fg@x>S=}z?GY&y;+ zTPSpFFGwLFYBA1RimMzxwTQ7T-QN@xDbBB88Y>>GWMDjNDS$;;LZ}%0J>reXKwiUNV&F3_ZRb^ z5eq9ba4IiEQ?Ng0n)9}Z1tkaHDwk)zRUTEuAq&^58s?`<$mnzz(=3s`X+tO%|Jt>W=?GR5#x)>M@Y1SWv1WFRnGvNuGm$gwF@1STp= z#0A`w?uXkfr+1B^80*qeqZ%Xdeorg8d0!2Q89WTy9(!u_8!K+&N;F+mA)(XxYlCTgu>I{9yl(J=dn)pbfBvIEPhP6_tzFD= zlTOrJ)4&&$e|V5LsA6}U2ogW5qEqww>}J7rhcA#(%xD}r*s;tSX(NZWt?hf^W6$idS>Mx3dI%txnWM0jDhv)`U9(BzKomD@I^P{5PGSy$yAMz%nxmc8 zP5FZ7vVCZqcHsU(%ttfd?J7q<-z~p1l)}DT&YYv=IK-=+o&1h_4hk210sG-0NHjBO z^@WUm_9xLH5Fmitam_;L*p0ibd^gJ1N28w>!L;(KG?NKgu18gq43~W0$0JeMrwmgCjoxTLy?h$!o;BX z!w1COXqsJBBNKfS;JoDlpk-$P9jmE5Jk<6?=_5h_>FYEzgi*w8d3oF?$%@BySSSpDT9Nf=*z~~wOzO`4C%>oAFE`_hHw(MynZ$rUnv14MX8@(Sr<@j{~^ZTD*;8(Q%Sr$ zha=@K*xxG&b!C)LS4y!$hpz~Bq`V3C_ew(P-f7@a6YSKyLaiOQvrql+7AQl=q40%_hx-OGPv^YptI)3=0@(Tkk<*jA0?iW&yIB zXRl!DZImFrbU=5H>$|-V1auotP`t|dVe~=+IeT0Q&c7F&zY?5Z2Iu#VMmqhu5NLIa zxbFi0l+Pdnp{~O-t)flsMcb)>0~iRxn7_kQml8ne1*k-q090Sl*H1Jsg~ zU@1BJCsA>vX6hI%Y7>r#`A92crdMiCJhyu*RwB^&;JB}YBcyK4>CwG#K2wIO2yO)< z8Q-Ms=*qWvg#pyj`(hO=tm+&p&85lcSVabK9(^ft7?9mLOqtO82jhEFQ0dm1{8S5M zHTY^WE)9u1o=e7@J~tNdT{0)CQ_kUG*L4nWYkFm#u1N?)tRzGn5rI;xBYN>&F`^iH zmCnDIuxyNmQlEq;D@L9MS%^0q{8K6#iJed3^lm>hPR=x`tccyLwTg4X11R9cF3SU} z=1i+BZX%EXQ(R*SPpkcuYL8KJy(5pV(-C|+YaM|%$Bw{zFR3GsPdf5MwIk}}9c3Ty zjO}8AwX5)248trh#%HlFbNbc$z7A3l$=eNCZ*~guZMyOCEdXJ@HB_`72z)$i0ik8y zG$#@JGA|8(%=&Y)pcNTV8TJ-K`!MewE_M*BS1C-hhA#@k?UUCH_=0`JBtRFoDif3N zB^AEV5A$Zn-#AvQjXQLnn=cT!)Z#2U16B=F74tveLaEwTnQRHb)f6sJ6wDj2xsRaG zc8O#tkG6#Z3&xrwJ)z+S#75X>!GbNbOl8Z-oNg;SGMV!R-wR)0sDAiK3q#xjKHwGZ z$=v}(L7aDx#&(6>{Qyq8eFn@vqP1f(05K%H^pn43HfmXK^!P-4Bz?luxJsF=^PxS0wUSOGMLu_=Q@z)085 zEn}-i8Bbu}(%pY#KW=7NS-gf~AfVYc6KtyZi zj^<|2i!tX~L>zGr3p3?o<^|EgFgl%&GPfNH;C92(`Lzxda z`;yX}y{ev$JJ@!Y;6d0G;V!D*V?CPe36c-BsIg~|Obn8AkXW7|t$7hL6$v>+G*p#L zxEa7`)Els;DYz|cE}!~@{<-BaCo=ICyicfs*NshqYV$vQ*)jyf4LiY_&EyeJh~Btg zh#U=pH2|^CZy;KyOuC?p3z^NfAOw+{7_psJO`_krmsdJspQuzMG$~Ei23MCnr#peGqUCn4t)anqamdZKsbfjxtX-Mf&zd;o3$zc zXIBAGENN{Z`kU`AAnnl6?8O5TFa&1$?+KJXK!Ygp@-?uWWl_^bVqzVD_%O1eY#K{fXep5*7CwkT>7IgZQp$Ja7+ALLL=~W&qGW3cB0E;axeB&dv!7Lid4lmm&INr z%tfs>A@@fA@Fm|D8C8zwjT3Rpi*qE*0DZ*Dbg}%2*lX|rRk2y97bM}E_BF{FUAA^2 zVXu*Z`}}gbjacev0gBwt+;3-Raa!;d*9T-~Qw_BfI1{i~ ze%}~~ai9xR7O}mu zUR5wG*Qa)Y?fhjHOdIaA^~opO;nNZ6BWqb>D$p#}R*1D_9u?xq*H$(wXHgCT;Hic>;Y^pZ zvRRVy!5K)a3bKhS8%A!k+RRxeKi12apd=wQNerXgHC8XHb;q?8?@=NQt1cSe+11Niqcd{Lj<9rxrfd_uu3W|-KC8E0W?SZn!^3AUa?&2(ho3HRxG>RNU=-6(`|@av6KMZB>+ZcJDmUCX?(%_ znRad%kTQ3?YgaCp3djgXEP(j50l#p^F#g{$A77XGX?Z|87rYJ!{Syl&P!CLN+1d&D7()U_&$kCU*I7g!J_TcIWIrKOY%RQU_O@r2+pEhP`X|d># z{RyH-0ckkI1k!62s7=LM1>UfRq}GH)WVOlV`1B_V8OPcqKHJpGZTt8yfC%=sUiLyy zE9(J1#Uo`sz=!9@^{iHCG4yDSR?HSu0a3l|%C{@pT~TubD`0i(&wiQtxTbiOpP|ji z@sng+Up%FrS;lk9xUP7%%y{tU$=FdmReti~&ylgSc)ZLwsf-=PBQfI(?@#mlGTHW@ zBrsvN2QPdXTiEK*?#6BY^8=pAPO&nt_MaWfB!G&}M1R23^E$i4c@sG%?cs-~+~4RD zpB4(h4ayCt(3eSLDqY}5?)KNEAK{n%cCNZUG&~CxRsU!oW*(%s9^9E{W{y9G3+Jb` zGc#`|?UhpK;Fc(7)X^pmAM8#0?oAimFB`de{$zgWg9WX2vmtKwA7x0$iYFi|R#!ce zuRuR+^2wk=r(hYL#4R7ckxb56vKG#eeA;#o2v_V$z8{jrdt3(PIg)26z;|Qa+J}4e zCYdI6N3-f6wEC8i+=pwl@sFu7_vDFZaPp~x>4Kjo{?Sc2MvoRVcmUUMV|7?ms2TB{ zYm=`xS#9He!?xLIr<*g<{kqFD-+?LE-HHxjpFYD*3;m>Ex zDOlTQzQHJ1oS_GMW{tjF>opJjD>o6kufIzg9gAowl*7A(Tz3uP+*53hvf&&U7ie3G zonf0={slpXKb!hC-Z9Q%hpqBV!}?>0x^eADs}=k9RGee{Ff=u z)XMH?LtV%O-REV1wK~TO)=R|;Rt-4N(4~$(=h*GbWO+pdRDg>0N!aSABLomIkAdCU zew%ovxRLK3Y1PErC5p?ln;iBXa15V1GTz2B=&ryK5~TRDWDIAUwuZM!A)r(T&442I zPVd+I%Xe)&^nEWNPi;TR&!IXJ=Iv{fzk?hF=A&)&NX>E(HB}!J%NIhShHI0DGbm*n zz2V>Rg=4i5o2_`D6Tj;jTod*ek3proteI4!+D#*=JGt{iLpwFTolb9Uov<41Vq^@G zlG1vNV8cK~lKhrgI<*FMofn&U6v(4z>F zw3p&jMe|HGA78_?er#a=4M6vd_T4O2k>C>|TQfK8l!_eAfd67z;y4C1kt8`yIVD+; zX>g5_#}eCT=3v~52(&5MX&2xA7r*#>!fACFDFR->#l=-Y?BTz{!2>PGI1JtJD4d4p z5SzzOk($J-=RjcnQe>Muv1$2D#`DZNwSl=mqq}z-+zk8NemO|bD}Bn-n;?HZJ{=!P zKk4c00PfVMpajsfU3@=QXeETQ4q*D>2ls%1+OYmmvVG5Z*Ox7>D|eXZyM|vB8B)QK z@hx|T z&pznol)sxapXcv6aKnSgj~`c`Y%Xs2OfjWR0po-mN5X!+5P7)mz3)3TUd*@FvKapM ze0MF2D5N{`EwwCQm*WNK=YqX@z&px!*0Pv^alR{N31Etnc`jo~;ol^h^Z@1n^e`7; zX2OJpd0fb^u;~mF(DuhgpO)?Zv%`OK|G^zYUyS|7Fm*-q!p2yy!Q_TRp_KrkRq$B_ zomH?|1({WFc|)i`vZ75z1uGVgLKaN$k)m_-ZjzmQ?1|LEJ$K)YuLNh?RQSY33O^VM zKemy=M76YrQnm#G z108hW%4xEV1|2$0th1Q69P^fAo=#!w;KQ9_8OAnf_K5_nv$erz3PM7n&@Roik}S(u z`+1M$6KUMnf;6===Ql$$Mj8MKhopxRjP2ozV(zH*l79%%)P$(o8cC~?HbKiLWgg(V zunw@7dTv=k>6NQJZ#69<+TQRN0Hi+AdjJ>S6TU-VYXQ^6OATQuT0$W^ofd!cYbeJ% z16j%nH@-BWn9V836ZRLsFI_@A*{kH zIa(~CLubWnoSjWwCJ9H5UZ0%~T60CgS3A;7Dhj?H4bg^wn5?VV`_#A!VDKnafG}$> zrRA)>h|u?0lim`h%yj?BlxbO3nXOQXVtEI6zbF-B;m*Q*)V=kylO|r?NE58*s!eDX z&sYOCw=b)K-~`J=PShe>X{7rRsTZ}@aOK;8>vVQ*(p`s}VPOfkfP!nOPNrkkR44cX z(>zh1PzC%ss8Fnu{5j}QL2qJSqb_yg%_vb>aRR)1s}-rIvqM347I;3!B(bt%^7%>f z#YytaBq`PFhFDx*y}MN>rh`ZgVO`QL)=;5bn?#$cD?8{?+~94RCds-6g;Ir0$KH`# zj2e+?7-&~At_e&ep3z|vxt&l??@7pr}7S2guTh$k({c%LmEkBsZNrc;yX!^ zpn>h;wOTL@ET~>VkxG1OJN`4}Kb!n#=b9Q=P}YKe92BvZe-ZStrawgutlGS-2duAk z)vNx5ldcbFUn#n504CBj(1}P3U=8I<@#h0ZMn-@}uvmFKtRgUL`Np;#kTHK9FiOn8 zzAme5(n;TLmCZyf2)vfcR%&Eg)}l>KG%uv$-t^Pb%ghlyDs`Gz%VV-*$YR-DhyTpP zL0fjH~T;lxBz5uTHn!m&yiy zrV(u5!OqR9lmF0d_we2G02jNicn!gpNVSTq&4e^1JNW##gY~$hyA!2qn0ASSlMWF~ zW1h-;zUQhy1K5tq?~HY48Wv;HL&fXA_&=D9%yD?`;y;aFcwaFY_F$b@V2KO=H`$^p z7FkLc_RaUsm;Sp z@nNmsY)5m)^ja@M-j;3Y4(;k`WMj^+&0~!PPIJK4;L9(|lw3gVe;?{@rDQQPn(6pk_Xg;@EX zvhu&oZBw18J@s;nvD_79xqs`X!46jS||tVTF5po*9=IUY{Q13InEngz=ORQ+AI@V#pijoLQgA=QQ0AnC{5Z z{^0mVHXh~`I*hqyFZk4Wj#C=rO-o~To0h3_-a?2O`@ta-Z%~lqcTM=-uB)pkbK7_` z7h|c4d=qtcY4fYe5!vSFic>^OZr@Yvzk9?T=)AGrVXjw@Z(sdSpefmO2B{Gz^GjfL ziq{)Dg9KZ_5KB#W3uc`FFWTV+@B+pdMu=KK5Re7o562}K&t+eeGnPi*1%N>c1uUFmzg($%zJBbBSQ zXkiP#_*fyZ0Pt8Y>CW0`{6@F&=2IgRV#04bC^N6(MiE91o0m9Rv<5j)Q-vHjfMMi- z*9e=n42;{DnY#7Jfj3OAdS>K+WOJh2TmXR#EPIE$K#Kq&4AaeH=p5`!hzuu0&u%g_ zKiZ-*@pFghvj#zoUH%FHU~R-zsEKNbAO&eHg3dxIJH&W!w3Sc{Gs^V3tWh#EGI1E0 z^YdncU@iLk=HhqYCzbH*iP**bhyZMnWu)}gqp=CKm~c8FM;P%832se2M4b1X4IcE^ z?%hv>K>2uki?vQe?OTPa76R0?fWC!k5nEhA^lvhBumC?r( zD|Y&YFV@)Uzpk)@?|9nz2P}Yk4PFg{m!PHCh+&jOFc+eQG0sYia3!dLgx<|rX`xWr zeUvcOD0?VBY+?~E&QW#Gq2VvPA$J+SCB==WCb@So91VOf%VM6kY8XTa7)w5CI_Y>}~v7d~|O4PvRr5e#O%L zZ5o9R=j+G8&JT#HxfXt04WRblEMEpq0v(ifoWCY*I0idceE!f(yO||vd&)!w!vvWg z{NmRe!;`v$ue(eQwncx_0C>>GT{=sRJu-n@xA=KwPT5IiV*bx)b626(pbN$X zr{L0X#mG!0d&o7pvu%KupZ5-rP&+;F+&15!ZH#6B6T{O?Bah(^TiM?hQ=bPbc{e8` z={7($=bMtD00rmeM^MFmy98K$LB`#p@MjjY)#~pH`{{u$?gH?bz2h`wG(r*BhKlf0 z7V(+#i_v|NX5Xpy!^4-&|KOU&K|aD9bo&U8IDlcJF1Cz#TWkr8O9SW^14EyOBfdEL z{8)SheeU0P!UPj18<+wYOW)0wFEOn;%>xX8tG|~O7${5WU=xAfc7^vPRX~SCW7UDMt8s<-w!CLUu zSv>IlUp&w|&=~#{3*Eg0Jm#Mvd&l4Z#eW;K02mawDJm>XoAZue9%D-T>$pNJevbXs zr62qZ2%DHft##YjE{1D^lZx~rl*>YUE33+AnggNzFMp0%T3LZ&E%Z1dBgQRK>>Z+R z#2v%x7Q@OQR*wLIhsh(100mn-?I8V9_tSjNy8naf{=K35x?x_GQ!`sPUAUjRqiG|Q zHTFV-R;?Nl6oSFOvQf-^`Cbl}#R{}7V|uk=T-2@|<6J#{{YPs2{QQqh)Z=rWE-}va zadktja$G`3#Bn8C{L*NP;}#SIw9ouV(XU@5H|{@KmY~BQNZY>I0~}oD6~SK z0_Nw)aNQf0C($a-SD!G`2WszjQ$-gvQQPr`v5``QzFa-FK+~j_gPwtZUIU~GAJ4^) zJMLqq8~NZ{Zk#iI>$h65MJQDtJmYXYI8KFo1YKL-E%QO#9%Mi0D&d$8iL)HJF1?u_ z2Kod1ur9%MGT-9vm0L@9%;6aEN_Q2(b)WIinc}J&J=XMg3{MM0Y;BJ=udx=4{N>I5 z<}))_HE?fhwh)rt-gJL3GdrByw0VBZ)@=*h7ngSI+_gI&jj!1Ao-5zGy!U+#Iexc% z2b!hzK^ZyR?q-JReKKxV?b7?M&koA!@rGrVD-{#v^`MLwWlOjj9hB)JEAXv5D2qi_ z;J@j%5X5bPsA32D?>C8h8QT9+cXh6`Pb=P-?SM+mvE@4@y_f3TF5qS`aBF`Je*P zWyLn7Sk>Y+tJEf?@b5m@XT6^li%Ow)WChN*2c>Le1*feJO2fzseC!XpgCzHn9JDyY z1;M5cT1??0S4!wsjFghCLE+&Kx~Jb2N}-Wv#U7;)@>%g7r6B#RxKb%;gT;H5f_G-c zvQh}Ktk|m*gqukhJjgHC(#UmI%bHF4If#esMhVeAUqc7=OF>W(YdR>?i4H1~Vf81H zL7B;cW|JQ#sR6aX?%863l|VZKsCE_~)=jwHZf5fq`lI8)uXxYee#KYEE%nWj8*Gl; zfa@-)Pevx&v}fnrZijz(IbCum>{D&Kz2MU6&I7aH5JX@W56d!AI#GJ)AzIRWoaYDb z`;mVKE|ce@+YsW3hhHIP>qmhLw=iId%H6Ex;a5&_%A#nH7sIb$uU7aK8X=-NO4G`4 zC#~Ws{6@-fCsc{^t196a4_U&U(1rEGogk@zej;sEE#MViMmDi{gY+e-MmCx9$R;Yu zt0@m|Lc|hbnSB5{tqNj7gmMnOdwucHd#05yh-u3?D}W0nDhK)5ehazO_QQwtP$xzZ z8P-vqoaV5I*f=$+UQ`Gv3%R;rCveUFtAH8BznMhD$f?z0UrYSDQz6BySXro2WRz1Sy_N&X=iS?t3^b?2+89ZHDzNDTLv@*4uQ4=A z01attYy)(pBS|cEiu5QKoBzUJE|R0#dEstGoO&maNEw8ka`GcfUmoQvz{2$mb+C*C z7U2V+I^>Mp9mescWg|IANrq3>G$4DH6P_jVguC1W*P;Ti(4T=gMq_wm}Y| zXehJ|-x7RA<(Yb1=N$uPnR^!1tg)C_I&NXL9AkMA&i^~bnS&GVO4bTXI8aHIW1@+X zZCLoKe_{gzo#*O>N!C$PG<1~)8fQ4qNhGkP2O(DpNaL(oQ&&9Jc;UvuYG9#Rod7L9N zwbL}m5T7Ve=GVsUo5!05158!T!(T(XLtuyV3@gs&kLlcY83CnL zyuki+T^Lv%vYOB)+OmViQQ&;Gx)^yL0cA^BY_(|dx;aqDB@1dyXA9@NLM4YJ`AErb zNGbvfmKKYFg2iTwMKM{(x7zP^I0iQ(m`gi!XTFJM8UVtJoKLXmO`N(GNi6aN@MQx^ zcn!74z#XXEc!LE!5~VX!IxyJRU&zzKceFSN7|C-&peEGBS4@VevI@fp=Op1C&?n8> z`6J0oOEXOgoT&`mLBI8&9We{t!LcHa&Z~&3H6AHm8IVWJfLoyWv7i}|N213!9Hl$P z8M%Wzuu3Z?HaWNjwZF315^JBun|05gI_L*zOk=So`<^|3F;C5;7x zXR2FKQc5n#(KN;HIH@2hJ2{jE$65f=`~}jxBuu94thF=338aToCN>0V6x3bPu}w2m zIuVc8;R1su8_P#Vy9He3I>2|ufHW%r4o<(50N=3!;C2jXZGdmtFu+;8v~t!qCkbvZ zj}6vh9ADGlh}zvXQ5*aGMghL75}Zb919%8d6EHji{0%T1mhesjd?kio0O0jFK#~lu z2du_$Fgl>P4*l6tZepb%>J_xZI1*OLHFybLFdGH9f)_*#_do{Vvf?5bhJ(b8;qZ1^ zGM3Vh7_MkQ6_$c3Q3W{X3nLjvmSQVHlahg@_~FS|Of02&3;QZnma=O-ma;NX%>>|+ z$QyyBn5ft=ma~=*(hs0BCa@gmOl`WQ`O+csJcf#aAFv28#)l{2{8k53`-`DptkNzd zn$a!@p0=iTfpvMa6lXZ-5PLw!3@WS^UzQT7CW>wO z=8Y6vyWCRo2qPnrD(xM)pkiA^yq;E0QfnCx+baR{%zSS03mYRA6D~r~U)ZR{KEi}z zY}D{oI-{0eRAB0(fGD_V85OiNR#-a99s*j}y^6lFn<#3ZfSa{15FnI~2?INmHj<7h zlKGH$V-~+ZQSgZbZsSfZS`cCxWa9+~5^`C7_MjM&1|#};mbpMezN?rOPesZrwCc@@XR8>PV|FOM$Fav_XB7Kr()w)2 zI#RDt@ipS&5f>_5pvr)Bn_go6QtGL~3D5?URUxw)4e++Mo^t>&eA}al1ka)vyJ*9M zZ?uY2ZFffX-oFrgfB)5K+g(zRB^PB81O%F-cA7N0ohjSplO5q)Hjd5>svuAJB&7O+w zJ?hFZlCiL1uj5wRRJZS_oqckQuVA}bL_@fgtXS3spEgmfl(^stUo_r2s%zE|L z_%*1NH-|q75na<5jyPkl^$?!SlcT?^-1au+u5Wbn2I7#fZaB2J(U1>Xqu8tG@0mQ0 z^t^ZSyj{Ihx}%Mcs^Sb}4!riS zLt#q3>S?=76(clpx60GO@pkFE)@C?J$~94+*xM$LL{oK!WAZ4OFr4H942L}(BzA@2 zn4WG7NB)-Dp|8uMl?(@Y1na8+5fuRyz@4V-sIM+Y7&&AEFJU|@Pzdd5Eop4-(>D69 z1E*xST#Rm`?|#=uFZFUFjX@!a33GLsAP{9Z>-V-J5b{G(OdcOnZRF!oxjtjrJwCc7 z91r}kO0;zHP@*`y>w5W%6sh0AF^zGVSOZf0gzTMrK0HwxJf0IXh`7|Mtuomfye7ME zFvzFBnooa)iz@Q|SM&Z?h_(Nppdj=v^OU!or?7**4o~@%lTAhZn-X)Gr$`K6<|$Dq zT>ydJ1W)kN z-UN;9-!P4N`+>$RJVLqfd!x0$r$;!%Vr|3J#=2vL8BRvTV+mH_>8~uOo9=5{Y~C!~ zyH}U=MkeEy+qZN!hvi~ZYf^qY1XICWv41QF43^wyFr8y$w^#)qp$WSOw_Pv_9|G&x z_TKac3kupS2;P(9Z8iM3;%GmCflT+{Dddj5;(BmC8r#LW&EnBA`)b8|8gJFYiVKCx z>^+vf&9fgYvv*kbf@dEqv*#^)yJw%XUWZou_GZ!E=tjen>3E3j~7;7H*&y3_aWDyo@%6!>- zT{a6WhOn+VmAAUBJXO7w$D%63bfeHRvuSt;O9Y}6zsB+cYMqyX+6MfDG7e-^NUoW-C`O*a0jo4-5WG&WZint5 zm?uPEME(8dKR6|TG6loObu=?A}b(F?6 z_y9Xs!Z6J=^lZJLl8=@(3t3bQLpt<><$F>!IMjf*7)symKibe1i=iA(cilkw~*h1BGIAamxhWI;9w z7u-J?ifo6rHG@w=+&>v=@@)Tv)MV#@c{?;}Y21orjMF>CyPU5 zQbTXRRewVmuwe<^CgHqN#1ny-*?Q6_qz{R1oMG854MH-ec`u=@15t4T=4loB&NoiM zGM`dXp$|^%xo z=EOe?73?@Po()+bpt=F57-3`)M9>S_cp@N-opXq+USr_KBJ@r3Zb~s`CsuKY;r*#o zTkKy$V$ga8JQ@WQW__^-Xv=zG4@{M{Zx7IuwW^2ED!AjDh&tBeQo?3O{a7e5-=v4J zALW<9LTw_BDF|*tg@QOzCa@pS>|EvQbcaUA?p|&MT0EZCh~!xMZlIFa67dh?B*zpI zJTj1G#SCKzD#Fs4&yV;{im6a3yUsej|LpHrF!xk(q)=&}`JMe*LW(N&_*8t%?eS!M z^lg{N;cL=B9U38D8M`0H*Qh!t-f8i^XFv&ra!~c|Flu z`TYp73;C5=b&}uWBf2a(?f{Ql%V~}q0Y5wBxXd*WquF=YXte{b(droJ^ZMoB-CCng z!>H3RYMoMAF>1K71qYpCwsGF(s!2Q>=cF2m44FhZn%lJzBy~BXvk1Lg<`UuXj$|j& zw0%ba#F_ApM9D7z1lnYCC=>jj^w7=I}{P!Nu=*c&c}D6<|iUYbe(#< z1)f~03a0#n0_QBC#|KNCl~B9J(D08VW;v3ci;s?^XXB$I>6!TGNcv)YbR>N~K7ypD zE$vMAnRE=RT!u-D_0A2SM)Xbr&U{GRRk&>NL8&M(e)%@o6Kao`{W%n19b1E&;UjP0 zpU*c3$V;rN1^7_Jp{vJe81|?R>Vl9X{@2 z5TWSMUdfAXG0~Rcz?yh#`Uf$o8n54lxMuKi-G%0R?dzt-mQ$@)Q(o=dswUqQcFuFc{ zl3(Kn{OUv~@`!uugWOzm{6uX^icuUb)3Rd0!mJ~(s!Nsulehx~NVs2FrihX_R3d8e z9k}X}McS~+nnc(PsQEA2It8l&p)o}C5KTvlm0}r`>l7V7M}gIHC6sX}UwED3 zOpA4jpqvj_?=o*2T9-gK^uzSz$Q7$g5~h-QdaKtY!V$EL&`)UVuFCS{=<4N(5NhT6 zM0qP0D9T&8LQ&qzC5rM^u2Ga%U!qGX_2bNsnm6%CkoB>RfxPzR1^(#Ha>R@Xpr-3OqxlbaJ%(<}Q-!PVSm8{2BOu~l&%FqI{ktwus}qIBHAf(xJ8@8gMx z$7%68lyUZ#SQ!4MiXczi?Ltnn3Y?I951%ejj&JlS#zH~t4L?=jyYEdd=~D&B`=DL5 zbC{2xGm-PZgX^?k*bZMSe;E zi{yQ@x}8rkforVW|Kay-Y+?y{kzgd{Kx6ss;s!q@Mh2K0Fi}w;66oR<9EuYQ{&*kp zd`Y(Nv74uOH`F~)kllwGbNpZ_S9r)_k>XBHkPVI~+%u9pv;s%+Z5vX?KmK)G-osbA z=Z7nR^zjr12KzYkkFD0t{$9nVLM>jJusrt^cUgIQt2iFkZ!_n2P(Yy|bQ?u>p#g<{ zf&LAQZ%7w8%!hm9VI`6`Rx{Q^n?tWbW^&c{h6F}P5o7&;A<7iGB~zq1Ri(qzP4lyj z)dL8}>5Ww{m)C;Wn|$-eeZjL-r6h?2D9%TevQK@IB7Z~9q)=w~-)fGBu3mFijjOme z*a$|i4L9=lDvh{DeSbWK^-u^V48-eDX5Dr?<~iZUxvYX9m7k!NSm+l2wV1Y9UNuPB zXsR$L6pa9j-3C=%Q-^T2k^V}slXcBbHtt0Wt}Yej{Dm+YvBIhbE82KEwqhSG$ce3Z z7WJ%+m!GqbWOK%~loH>1vYaDVBI7)yxI9h%C=&Da!+37HKBWm9F` z6l;p$Dr$;Dy=ygP9}kJ3Z6fVPE*rGUW|?Qg3@q?NABp#r6YXcn4~u_1165nj4;vcz z2I{~#`)>+Th~QQ*B{OzO0<{#?v3ZXjlbtF!N=M;Q3l^0OAJNGbo1ck5PWM{?Hz*4; zX?Y`yzJvM;x^M$ZcjgmQ96ye@dv2AuqYeuxr6Uqi8^phqf#i7Qn=>k*8s=DoVUcy} zCA`WjUpUn$PGG%Jjkc>4Bq)PwVzXlbRx2XgZ4|OVsL7dyBCQue@hgh}FWg(}y;#*t z_=%PkcGQxe!vfs;uo9$jT%ABln_)K3%fJflX&*m^^O`y1bxp;c*h8A1Tt7}f32M)H z3InQ#>Pc|oH*6Tqa#Tk&Ye+WzB=nVEDDa3BiWkghI4>mj}<}oOFr$*~K z`WVziz30(xsnL1cPxDB8s!vUrMLh-1+CZd{*={B3;>>K)XrvAQFKbS<(8f5AWH6@g z9KBp%O^Y+ox+`Png-ib%4IR~{$+Qj=VR%uj0AePLTH2aq6Y~zPhs$#Q-nR55G8Fu$GWtm}kb4LhTDu5lCGhh$Rx-!YjMuf`;oC@E<}j-Py!9KsOjlk+i|V%Z3}Sy2{f z7QYvBTUMui)}9oYDqfBSh&>yV-AQh*_=A``UHpDb_9rzAia(0EGu{L!-jccBhNt!k ziKV{&%a}}yZ^tA@K4Y?Jbz0fhqyV>+ssLQZ=R6hjmF5D5S40UbWDpPm{l9{a*EH@j zCx#W63I;55(6TjQPoQbj@R+MMxlyu;C5F?(pKwMHaWhON4IG(iCTZ3XscRPr@iE~! zfni8~!Hk2Y1V?b9S2}gdT4==R>ItnF1+W2Z6lk)#+IM4L#c82+bNIJgs}?#^MBZdC zO8EVXR`k?%7r}|FH{yFWnh(rWpiCy9v=x`1H2N$t*bLH}eOt7Y=WA6IDQS&iNo9KL zhUHyq#nFXMtuwk(fC)o{&n25q2oDs8IiI%(nQ7ZivlpDYz!+AKk*d+A!0dQN>rEh1 zWeR<)TjN+m=iX?nieguGh(m4w|Fc|Ui#)H*KRmy91RbQfx;XVD%>MDUq{7=%VlJQ3 z2}I)a$mwKC3Ml?a{7BQC$Z3wOR9>5RmY^29ocg)Gt9 zP-Ho1H8dL!0H6b~ej3 zg`BeG4y@(ExU6htRfGs1YE{G{_;As>#}4I@zHvOoxH@(1%{5+40ZKqLL8X`tZK;Cw zCmNr~)91E?xP1&mxhrR`)wt}RuihWjUPP);^M<$%;0rN+ST&!^f>yBsQFNeYB7F6& zsiSeSxEq*jiSw<@v#A48Ph?nn$1q2F#?c;Co)m@C0>`($pIH0eD9X zOk`+5Junj<=d3M?pI(-|;pG&l;BUC*-Xfz_JCBEk!~;JD_k<-yTL9LQ&wl|lXe2hY^B_&9B6eQ3;R-!oenBuiQxRMvHnthebrz!yo-KWIcTG(yfQ< zeYyeb;d-BLzIDt(2Gj2U(E9B3R_3$J*S#e?OVXes8*27wn%hp5j zw!f&>!zZwDyjklZ*Xqn98TP~YUmER)-+K8U{b9|1s4H?_{RWP@glk|CZq~zzN%3N> zhif)$_QP7kvLCK!*sOBdD%x^Z#ihQM$Bxitj-?w?OX;I}labS?YlTWbi^;#T&}3tIpwvdX?` z#sFXDW9q3H0>lD68ZpdlT~UMR^lOJ0`uu2W?~CgzLaS_CT)bVpqtvUR1N({WSf-n~;O} za!Gqb0>hv3!uG&lZI;f8sy=uVZnSzgH?DB>TW3)6S~OY9#+4@cg5HEbT`|>}(Q&0W z;d+f+jM4FDDve-tq*E96CVc072<6yk`+{{JLi5eLNFPG&8tTvRzhX0s7`{3Ug-$*{ zn&vJ#{M=4{;X;-w#nodw8DB&Bcujl_OSeY$7_Vu}jp$i$Yh2UU&`p$YXqfEgREO*0 zT7HIWxfJGXXlln1_xHEZHYgX(OY|(1j>{2|xZh2DptKI)X>;?Ex8$YzV~}Ux>(Q5`|i!S-j(ij?#^ab zGF#WnbaysOPEGvnIuqZ#Zt?#`>s)W*(l_n?b|CHB=~)N+iOAUFnhm_q_=3I_tiBL%k_KzlwX7pezei=+QcUSrl1ifht|k z>K=A}Gq;JaHHH?bWlf9ITk3h{BG`nmh6u9w(aF_)()d>m&LAx{2=_|v%QnBd=!=D5 zUR_J{$a?!n7B(4=+BI%AcNexEmQF}`Y`J+o`qOQBH~G_X$=zG%Pggil zz3I$DJ0K|r6}i7fA1-sh#M>Km;>3LJ9&@wqG3Opz%5#r7yyD~>2gKKPj>C-(=eT^P zqEDHI@V45;1{EJU(%*d_x!wf6^4b+_-AB$Lie9H{GUlUt2kTB&s&{NYRovuooj&b* z5*N0IK?5Z{qnw!|UTmiHi<_T~f&o}l6ORUqumeq%8 zF8-JbhodUTR5s>Yx6X=Bs;v9g{aT)EyN@%u`QdTKk=%wZ(=bC=YL^}R19O_%ofO!r zaA4%d7PMi-S4l=%!&q#7R^J@U7;*Ymt9Uumnj0qoxkcQzI2SG%<~_$)MpM|jT3nlH zmvp4grAFO7-iRnPm>@nN7=_sb{tX{wO+*Hr(TIS|@X3sL`>zUJ*xuu@jx6G~e%z3cscNw+iEYj zg_qoKt!lT{UTzI9r~T!Y+RH8BWzS#E*Iv$tmtB9kx%P5%cu5cuwYjPGa#MIIM{Qot z)n3kpmu-JJti2qDm)v!#FK25nXT!^;znrPPoCz;8e>teV9E6vI0#UX7+RJ`;Nn9Mg z?A2cO!b`oGuDzMIH(huPG&EJ*MdY1gR##%fKD!dVA|wubIbq?zoVSTW0>$Yn=T6=u zijNZ%_n33WjSOpktwyHk6t{}nz07%k1c$~eSV!O>a(Rfu>hKWPqPWaxs{uUBhn!R4 z^TWDBR+o{E6xt^}G*)}qHvLPwO4K5P1Lf&qcirO}|#X ztK&c4e}sWHi`_^3VjPlxLuZ|PMf+&pxf{O3HE7&zs~&cg$44n2as4UWtXbTpF3?U`7Foptg8P3tp|*w)3aPGWp`X{%?X({ zj~JxDe4dH}ZX=7mJnTpKXB)*A`)?lLQKu(kn@m!1Kl{LdrpYl?s~f*-8#z}`eO$F! zCYPu)8ZMnZ#feiYL5v9wO~x8Zd~Q-gWOAz&ne`$Jo*QyiK{0hiklAElQGg9S&D5Sc zdV)0{JN9gYW3Alm?E(V8B-~I=cX-FKbzoV1Dfug)U}yMG2p*K!7sUDm_vGxZ@BPU> z`FDv{QEX&i_wfDaG-fxn-tf`!XbpCYpQS-i zefS$Ga8=(}0v|DgS^VTc5zus%EkIW{=fMV_2rd$~i3p%4ADR#tX-ab;w2>6kbbLY6 z(abm7bWlrE#nj$>utFi^LjH?4YMWmkE8;#k?W z!iJSyn1!%Xg)^F{7Iv)cPq1<_HfO4QD0o0739^zL}LcO12EEd0_ zA+qggw`sN+=>QkWSd3@1IN|{ zhN+ccP(}?5G6Rk@Tii>v3JmDJ6)>=Y62LGZQgJ?01%rZ>0tU>$Bs`1Nwt^$Su)s|p@!vdComb@WFzsZ}1@{rpG zBqywZE7K0731KOtMp%fmj^Tom?wPOEeWQCNxRs zR$`2)v#T+tB&l^V#)eOA>taluq@eQvAclzc5&=Z$idCG4yg*DP=OHU{p5{ohC~%(U z1V9oVRV;EOasW+pB+&pQ-qVXDC9O=nhw4I;urK32ph3hX#)(?9is$qq&#^Cvn&FUD zNZmkEd}!}*kaV7-cN3nYYD-*#=kOc=gru@dxQDVviDRusD2p##GM@=TmCT2%$b7h> zOapYPt07dK`K$}C5}_imrn-nwYr?C!2E0myx^#He5ek79;Durn;05_+UVcTxVl!jdWOsksF#41bht zD=_arEI$gKTWfAd4s!>UD6=nXc z=ZXUo@IfCcCH|+N>Z7ECo74jLhuu-m*ghaSLt}OB66nr=4%>_(Y(dV^r13X z00+;}M827YoNPl%HA(S)w58zwQZZSyxmdJlvV@uxq5$+ki`G0ZGCQ!m zRiXbuWW~H=xWjV^AkUYWMB)$Gbp}9^td+pdUL!)XnCwo_sLqWHDTTYZI(v!Qm%xwxOixgqaC<@aKAtc zV56DK63EnL`SyGV?E#6cYIds=0jQiQP(oM^POHlzg~(h@^jRM&R!<0D(Nk?mS* zWV=?6Z2O9l?GU2vhyz^6x34|G?LNTm7aAbEW=R9omCK_gE|i}PaM1=RBpvN4=L|Gd zm?WFC`HjulJ3ni%3#Mdh?O97oGT3F8WgL*N9~X^WkP5U@W@u~JP(|B619QychdFMq zKgZ4$wp|1`@cd~O&#?~}58CDei>2I_vw!0zh$rKf`khBn$3VSj|1w4B#Jj3<(QiaEx<<*?Rt&xwI z)OJp|1txS|qGCw6Q`&pD(w;)+*2vVf$-a`I;AwHu8PqqMkT48-q+u|DP@<2+^bpH$sQ)M?6)M40=V)v! z+!;$qPB=~Tn#MzEJ`1P8ltV+pqY9@v6+i&SZgt!&G4_-Na9@qFrz6HX@Em6iZY9pD zW9Ww%o^53wr&rhW7zt~jx|t`pVE8;JPI9IONh+TUfCI~7^6qdb2{guSshc}sUJX45 zRw0rQ>Iz+gD_CbhTz7(Ltyj#m7|0(OK!#N=`cQH4QKe(V(cY7lm9}jd z5-87>xcNX2RIZya#Iv3Xh3rNQ25{3DhITR(dLk5hJQO;iXWl=iXXzrwB!<6eknq)s zdT>e`6&}!3P(e}mw;0&9sh1#8Kwx)RJKzAB|6_-tJKyy-e7BCB&#oe@aI6m@h)u*k9ZQD#dP z1UFb%?}vXC5R=g{~zj)F?2rpmi1JpIc39NV@X<{i|uwJ8(8B z$Al!U4foZ_tMlb64aixi(PhaF#HoB>Fd(n`VZL93G#^PWjW!=mHbR{0hw%p`&ZP>r zbUaVz?@MLCd7d!s?L7#VH~u4|O=CP|i`q^x&3<6fV!N-5E!-BG{R`vL*4`v)_S#8XnoLg!VH2DfF7YA&ZU_cRg#zY7% zfzm0|p9wB+Z^~eWHpU7u4uM}F#x}8l zK*sB{W1@y|h(jxaAzOu*J9OQW#%Cr4>ln|BFW$ds?-^gb-N~Lc2eDJC{}}ZzQ~lI3 zWF7duA1Q(}4hVF*hz)LLv>81l!)}eIiK1~p{HL0}UnWAWa9MiA#fDg-r;3)gqNhe& z3u)m6p=W2TQ(_Mz3$re3sKy&OEYvT@jl^%9O%(DGhcT*xC5&-4+?y?n<=U)<(Q7Q0 z#lS7g13p?7V-GMWOELTa2G5G@dW!o$M1tCig-iJA`gCsx09HqbUSfs%zpvu?SP7%1&0>=!K*% zZ`rZX9-IU(J^{=SBud#kwZWmKz8Lm4>J*AE7_M3Y5ZN$*N#>=YvLiC%2tx}jaa)DO zD2ws14H3DDu}7HTJS&4L$JFYCwL!?5@V4CK3JVRoDm9fsv1t!t=EN-miG}9oBA1k? z&o!$IO=u6AMttw9f)IWd#H9w6a9m*khCrOU6Z+XEPVPtl_$nX z4H8f%vw~-$glNYZV#gUGBGnjTr(_D9)vTr?Nl<5qy6?=hTw=i^b>W$3p+OlZb%sd0 zhsSfmneD=vEsk9DW4oionjNx9niE6ZtdGRtg+=r_eDv1!l1d{(oD)`zc{O2GiR8W5f5^rtkP7 zbBpQXg@1(M>P%`oz>_yD`6_Q-rA+a`;^ePT^e3=!QOT=iB}uKQw2OZ6a#`tP`gFN? zRvG#6a`X zZH5A3ynNXpE30PynVoW= zOuN`EV{7rpufIMeLvXXW5))wOp8sr|9KMHB#Joz59xgtLN!HAvu^Dtk>UlI{$3&N7 z6HMTIroz*=EOGiXyJyV*2|Fp0pTZ!bMo<~f1l=M#I>rE($h!qwTT(olxMf;C288`k zAPxM9bcmfJ?H%nqTc1y0nPyuWgOLw_#ZFsQ-ys90+59jsF~YogSUYK>ww*?3>za^+ zPLP+yy-tnl~+p%J-IX&6A_{9i@SF<|9aA;=-Fk(n!dd#Wr z1~1rnqGLM8Znm;{K|wd++7saCfHhv^);j<~b!^Ye=(OM?9FE&=gtia?R*V>`Hc(#h ztntkI_Y3li*51BDk|8q<_b8AZE!d`FBd?(Ehwnae#~9P?(Q#YIfyJ;h=Ht$o01CFR z=!n67f<-s*=BLW$LElQdx;eOMdwQWSZ6*tl0~Ju{1Y5j@op@Si;oQ8Vbi2^rOLh+z z26Kv@F>=EoH9V@bbD|-7W-(UEM`o(Su^%-jdnoRA>Lw8{{ReDjdID@1#dS0&$X!Pt z%=5`HIs)>sELc!!%)+ziw3H8v6nH_t!BP{$mc1DjZ9F)LB&v(?Bo1XGQJi%!4_C&+ z*<~M(%*Kqz<^t4(!s(Y~frHQ|*xU{DDW4CfOXCBXoeZ#GiW=f<*vLiMv9l0(ZSJjl zfMUa^-zR{Xwp}z4qB1Z*#2a}GeJS^?*g$|=$zM@S3xG6=?YvFyIn2MiZ(KTR@e2~8 z`OX;J76OlZc~ct>{2V6DP8U$;>mE4D>1%2dqX4OyPIX1ZDwOPj=G|iFJw@{fd|){4 z+_a?JC5mzoo~Cl!&q()^+rHZ>B8EmjRU&cTvMprIa><``D zj9bPuz^*@C7Q0|_dG4tV>jGUT!7*~3No1$<|7Y)QfbFWTJI`~@{r-6O-S;IueGs2} zqpE(Y5shX{361e|bY9yAjJrd6Xcv`nO;b~@YD!YM04r*FMwT9yz^Vje%1sg`O?A{0 z66g+0l!WOp6B55TRGW0s6Q$cuXq(t_kK>RIiHY0o&<$v-kSiYp=c5+G0nl=z_#U8ieoLLDIbA^bPlE_~P5@A*4GLIxhUUk?@n>E2a_? zPh-NbITC)NZ~7Xr4&55_@rpLgw3#syez5DL@N15QU(dI*>-{Gt?qbRG=408|{cS3>~uU|tU(QSst@c;HL`03WKX z;mF93B0nc_u0-OMz>i!-ex%Jx|DR-P3@){5WfBN-M zdcjLCcRUx%-kKI(O!2z4Lz(sN$-sZjTvmpwZ1d#YbIrFL>P-L){Br z`hwT}cBuP;m*N?#@xL1CzT~AZd)?DU=KHdjy>tZ)RB%-(P+HM%Qk$j!kTudctam*?`Cb0`6Xx_Pn#>_E}tx8idY*K$%;+*m&DL|ldWrZ(3sbjx&2f8^^ zRt(NOKs{ufM5{QqeNfsjmk3cDb~3qP~r=pCbxB;*{ES8m%VFKs=bNsr(Q7KSbtdslPbovMdlw<2Pc5V z*7X`Nu_J0=8i7YS^KKP<1zibZ%_l4&+699chaQ+96a(PnwF7lCe{15YAvlARVp}ql zQ-{OtNDu-1Gh($Upjvau!tBh>j^B+Y;ppN&O*@%EbGvj`=btjH5YMDrUzfrax&aEm(1Qmq~n z|0pOujR|}R)qGb%%I=(lM{vMHO|S$${ene#SBIDA`J6vjwMLo5N43+K#HWv|cxnfk zNUGPwcv`wr10}$7w<8pFVv3)iGCDYA6BulABC~K9PGDJBa{|jI4ZZ$}%>Qz9BD0zg zC$L;<^BbPXyjfq~$l)kI0Tc^Dxs@(u!xNb|`v{8IB_H$h(AY6ghfta0-i^pYjGzVJSZaaP%qi2l=NolT&iZN1jLy=&Td;!0J)U z%ZSxS<~}kfNkQwQm&=$6Y{)Z%`Yb~S9A|6#v82nG1N0t8gcM{y-A|rIf+!7dr%z*1 ze-?g1B~g|qI>;<6-O9p@2)yyoNJSv`a%mTKNKp@4Q}N=dRhFkK-T*eRvIS63mCY)h ztRkam{0J)NWyviqLng_IjyUPk2_jH0dfW;h-bE#Ta{V~TrA5ums_4&q7`lw&9YjoK zR)@SJva31S$sp8mIsuV;2MtH<=m+`D&F5_9lT*kA8 zxh&5b7I0ZjXL8d$zz=lB^eRVOL@gr@681jKXywr;lk_6Zz@#f&gTNOpjHAkEiTv{= z9XPGp85rc%%@T1HqLis3b4HY=5_nRw8>@6!-deCii^WViBS4nwCQ|?j?(H~@(koqz zHP%rXKz0=&i9g3_)Rgu3&-&dGJinR=cuSmkG8Uz`{`;x|h@xN#T{uRtoIRLjUxaqb zIc38k1kTV9Mlu&TR4?;@yi0R&T%l7Ek{gVx6#fM4RZY!U%8rpV%qVLN3!9vT`)98) zE#rkv_u9U(=^h&ebU7*DmApq8*O^u&&7E*X{jmp{LP`=!N628@QDW!-k4ebq1PwOK zHlVXPbVLVW7^PCmId!N@;jFfih?~&-nE3o}(+PnSHaCn^ko_k z6Oa2c#!_aLFuR0+3KPWrYbyH{Ic=v&u=lI$_sPPYHzsuq*ENiXCv=Uf6f}k5*L)Hd zaq4wboNf_E-JSz;eH>0GzKzmg3Ww@J(EBIVImrNC2Lw@52ZF7Lp1AxF-h4%~UvSinyNN>1yE3Gb58>hO$$Fm9@zI?7I%@b4fB+rSaqM7k*EUmkwk7=8wk_p{|Gdl|_^ob6?F(QLIl-KpMme+E+quNIHJ@@q-|J5^LF>Fgw(@3Y3tVu@qK{DoVPX{aaBmtSp6$CQt=dOubaO ziSA*>)7Bwz!*q;qXwO(HAngk(I-7U$VGp}x??!fTRb>yilNea;&CmaN=hYl2NT|+ z<+v>d%q1kXwf$T1QDyNOCU#BtMRH}b@@gUa(d$LBJ9+t);u^bUUgh?scniOB`$D|s z`hs641d1!X*n8@B;gZ8&Ojt%oLGt;->@`(gMa_ z6fE`Ec(yL>D94#?Alu$XEQ*zC#9*>HSbri{DtkN48Mwu|kv}onmHcV^+zs6ji?Xnv zWKsH1oPITk(xMObPD8y=bC1iZ0bOY3J&yH|$-#uBVZr)fZd`#xIk8%xfUE=`1d?%Z zKII%-lKo%Q6bU<(Q>3Tz6q3m@jr0*IT>KBnQAO}&lo7?|lw>ffa3GYPZu|Lk-oJ4N z#hrW_G;5=edM1_iLn@bin$1TMl!P<_TyX2<-Cm#E$kp+g4w&=dkvN4)Y*Jq@$RpFs z!LDXh0%3_k*ijTU)FreR`2h~>dN~Ev3ldg9K~Tl4&&Q1JvbFuGEH*y#7BpUsjrZSz z#_O^1>9?S9(iAz&dv8JG?b!I#ThKVs{ND5KThMqfHg0Cu%S+~;>c__IT<*)<_-t&v z^%j6-J~rNb3mV@N8<*AaGK-c^Eyl)8++JpwZ;y?e5$ZBGzB4v%=Ap~mIH$fi53x9x zW<64sr8mX(;`%k7W>eEH##VwGtQR*}RjyxqO3mCknh#Cw#2ZLS5KIA0Q9wQ4Kb>Ss z7%e5`xUybPypU*>{K}4O!LtUQeG^#&KO-mqv8;i%+G(<)3|RxaY$Hem8_ODaFV0uy z+oWnr>%u|@GDg$m(7H>^8rTV014BkBORL5N9WqK?ENkFmnKiIoEFMfWv`2y^g ztbvBh(tbo{r(iR(#-%2Pd%SY#`L*e1*oe|@>?kXsWwUsYs?xDXSpm=Jq#qK4@q!M_ z1Q_-*$=y5wo(%@29XO%?pLiN;Pht`{$|j%D>LpPgXKu*7T>lr{>CgZAk5T$%ow4370iM_Hk?T0A?^A`)LW2zG=ynQ`*5{AUwy@F2EjD73{H zNdz@s){2ae6^ADZilssrQl=!3FsIDZSUuFza*l1%;PaNmvlSQTW z^e5%&(Z)7L`pPB{NMHGzvcqly8MEz|8TfM9!q~;~#h?t&>hmb$9`}Mm;3>-ngj5BtA23dogzJuas=`on~Sr0mQQggvs9G`8juvwf6StLD?0dI#?hfOo!N$72m0S|d=QVGOKxq;+@ zK%#F(9B}6D3W?C6EIZ7=_}p$_dP|YTjR{)jIk1g7;OXo{IeE*|*+GYvl1~9|&K1am z5gnDBp$2qPE?YNHR-jx*CcS~anlgEczAQq4A1*AN9fy!gFDixP7A`jyl3T-*^+J-x zxxG^gNn5L5&sseQM6US!fqcQbWEj|n+?3)Y1%S?@L6}H#P#9I=xTJPQc+DX+S8^QpvabEVAK84Dt(n&d$OGghq6{G#_4q z&Mxw0Dn`+=AoSVxQqx4s0;33`MPgSnq~dKN?2LN!u~M{X27o%GGn&Z@P^TNQ%3Jl5nv`f^dPJtR2WGwBy1> zbQXlm=#dK-BS9A;0{7kNiBioD*37f&?DRJkV6oX@us zv)+Wyx1+>zKHsiQESK9H+8rP+p~^6q$}*@KI3|`88pjjMJ@B8|&%B_-a^p|hMW+}& zd4f8Gl)tE|7E<0Uo+%qqV!2UOwmOP#@o?Gb^Z$ugmx|Nz)f{u4?+{-sv7FI>2X;v* zuPCuxl)53Y9Qb7Bvcz&oSW7I2kf?xFX_H_`iRDauu#mHNU<+5Fpjh0yMA$=RRtz#_@vvJ5OcXhnC zWN|i8dQXxy$>IbL+tnz6`mFjB!o(+`rOr#_owY5}&+p7yC+kWXzd|C*$|a_Z2Np}& zfnkU}<654k&m>Grw!2j?{?ltjjB^|_-?>NobT{tkRjc)+!B$BPmCa5_43D(+f%7{W zai2h}iae@J>)@Y2ytcc>=HIQ_OK76i@q@dbx6BR*+e2pG9@Hc{C;!j^d-l-+c`WCy zUL$d9EkLL!-VF7TuUB>0mEttK4B1v4O{881ia0|ruKMV*O|B2x@zrnQE$tfF_utUB zSlIhpvDbH3i_?NIa9H>3#jLnHJVT$g_c)jN#}#t{2+>v_1K>Jlp?eJ>chn#tIF^ZQVWSzD$SdN={UU7J_uWOy`7DQDRo3F`m%8Oq%xv55WYVscTyjTv9-uAo|PkXUTS=H`ZF&p!= zEm8YWI-Jprm(Uq^DX`6SAf8Z$o6D46ac)k}ujUWt(|*-GnD^~Uo-0+Vo4i5O)iPZ$ z*FV^HfK`95&w1EDoF>#4v`st7%*LrF(7ksawKQ66)XU0QCIlQkjNoV*^tAhXg)k9~ z2P9r5xJoO)e&pSl0Ii;s9h`u!o*1G3xd7OQeZ9*y`6X3kS<*}+$m?1H=@jg|l-)c` zbYLP^w}74?V0FMFzC|E_PLB|v0>-xv?nIyqpVqR!$GyVAGQV=laW^Eu+&Ju(&U;jLzk0LecfbK(`01F zl;PwI!}?@|ddPcPg>t2d-6tbk_@+#nOh)PzlTph{nvAFrC!=QZ!(lRV zPnOX{E(W;_6Zxm(%dEF&D~}>X zU5*XJwPc?|M|M9KaHTM{5*%3xj+_OfEhEJFhyu-_VOfzd&vNfJ z3=<@Xk2-u+K1Z-f2P^OQ=zeK*k1(o_J42deLGP5Je?F2D<0Z#|GiB+OThW=JJSnYH zCO~klc|kM`hx%LnPp4~uH?C4-^v!IZlggdJdjvI8?^5lI{(p<2B~c$lqC)HrJQv2n zByLXqF8|6!NboatXoq^i(NtxldTN@pb#+j(rc|X5Fq~Z|afZCwUAfgywq@qS9ZP;# zU4EF}^%|sN%K|7|6Qj2yiM3*9k6qZt;qkVRJnM(Y!^Vg$x$TCIY4OB;*{LeXmXwj-cpMRiRNSq7R1*tk9jqTlfd^L^0oSysD3B+EbRoW-#_XxDpD zM$737gvnL*s%nn?m!DnOR(BpA;seO}^C(d0D9r&wRXVJuNU+N|KFlrv9Qbsi&^+tel^X_n~uA_B`Git@IG)hYI&#mpInDiAl1>QB+vmEiXCvL z9loFIxC1n4i+}1t(?bLj25X$em0O;HQz=Dh+HwvPe9D&E@i0e zzhB=wpQ5?Vl$ORBh;66?cKKNhGEC-YG)ir^40nVw5aOzV2}+Sx*b5sSz{puq0_sgU z>C~384-83v=Nc+^*K^Ri%&_R6NyMDBK?fUJa`0e&xDzAmU@HLM&Z(*Y?2G^Gi^+{s zEukad3NEUHD>N!Cu?F8G+mz0t*~;cUJH=N>H`wVIYvelz+rce1d&O-SRpsA9EP=jr zg|ZfGV`N_L*c5YujNNEpQUbB{%HFwMbLw`RQ=J?EQ6s-Xm8&@`gy+@v3l0@C+#192 z;Op@L%2TLI2wTJ$Q<^79 zle4Owwru)!?z%Km53f{-JEqQ|UookEuU+LB@uGh1!@Ui@4!oRDV%BM(a2Udl%WeUg z+5BFUO~Eium19)t9yad{&0Lh+G!ke=pV9?bidKu~Q7h3Ssq!J&)$Qt5UXOYti?tC? z)HtsMN@fTgB45%!s~3^Yi2hXohRXv;1O2ZE`_6dQ2kxlZzw!TP$Q7)|P+PrZ)EaKa zP^*M~uZJ7*I7QrqiLX#mz|PP)!SFML{Lc`PsAop6b`rVKaNo$5ej=|9AQSo7FX24h z|3Bygckf1$n#Hyem>EiD14II$;pRPgq3U7f0E=&vBc-5ih#Q=lOJ%Yl4Z+LGt+0lz z%eMr19(`RU1L*-mRX^`hw|f02y<6AwA<0(Ol0?WF*=lqyn_QI;DZ9*bc_pQQGT++S zmwiCX9nFM@Y+7L+WU7-QtSFnYXU2be2Fo((#7;^>4TB~gN-K|rd@e9=S93OQ20r(5 zZW(U)tlGqrf5oMnMA9TMD8Q*j>)feg=SOr>6D0}>2HC!1ldp$V2ofqNQrSRPDYxCI zZQ=FW)7&{B_xAhi!dz(9lqAc7pu?loEL$notZ7l~3ai=7XE%l1AQerK1HG|v3%y2} zNlgFEP2FXJmu3t0qrPd%bE%GMa^6ly=?V_#qJ`~tB-M64sP*tjzw#cA*29f;>*2a| z!Mf&4(u2}}Uk_u0;p|K+FiDBRbQn1cI>bU3#{T&T_iHyRz4e_|bMM zLI?{RlWqIeED}S^eb!buUtEl*D=V7t5>Hn)g%2rbCoJEWypIgMOK`#(W0vCsn0XUP4I zFvhD?-+d$5GS$1mWe{w0GOWflY~h~#5{Uk?rjgiibRGw4A>Guw2>3WYhm~j#R z)9zznV=@0of6U03I>w&oZTn*M3E?4MlH;4x18S5Xetc8jz}>9Lh@jGqJt8kQI(LZN zXmpGNcSgbseRLfk9b<;DHy&N*bw)S#Tpkv{b8K{cX~WU=gamVg?Bh^3N4^y%x;Y_$ z2pLC!z(|jRCuH~aJt4KTe{e9%J5-L;I0Krd^I1cK<7kZwB`Ap0sJe4Tjj6xUDyebK zdL>7Rk{T_GII>`bySR|XSRK}Y0jqP2BG75{J=D;qT$`7QGKV)8F;y~`iOa;(QYftU z0kcYIHJ6l*io_afzoZvV2A&$su#6-32}6%QiTC1UAqWbFg7(NKagVGCrAuOYFmT(3 zE?EzWFhywcbO|9N1e2nCNz6g9Vyy-T#h#yv*;9ahf*@eFBhHU24I~W6hokvP>|?Q~ z=EXOyPtCt~xBv(^V^k8rJ%H%6%5Vpi!(s3Wy7VvQ({c+k2aUGen~@^!e?ymKPsxtZ ztdm1qhv7;fgktgo;8ij5IGi$ivLlID#YB%o{D0I)@c?F=(&LbpuT62qK$Zyrkl ze(Z)RnRjqFY~!^U+ZcB^q#5Av&A3aDoCifj<4-2t4ac5{R-(7zSTWPD3_r94V$IpG z2j5-nXkK)L>5;FYc-u;%tKsTM#1c#Y3_m&&Rf{02dw7fTv*wr?y4 zy*%x8d8 z^_j`)>m&!SMzOM0a7LGtfDvcovTB?NXNS{>M-G3}hTiD#XPixE*E;;sb@E0TZ+p9; zMe%kju_|~X7LD~_OTm6qf4}KTe?RfIwK4AR2eQpWPt7=Q%SkKncKKw|+i&b0bw@AA z*>9{^yuIGn&*F_)3r`UCUM)?+?DIa-*u`l_Q;bs<(6+#2O)zrUYs<>V5%f$n3T|d1 z!i*RWg1tYB{(5q?JM$+54PTJIUKRXo{Nz#U;IDThs&nino^)m$Iz*^{v_T$%+DdF0gveIQk(gSa1-NP-gclb9(Q3 zyH5U4FX1ucOLJSav-)ceEmdYFZ&=H^m0ah3k%U|qa|2d)T8eAIs5dbn;2^3)A`5w< zvqEH#*G%_~qCw<65484YtA|xJJ8(}E=EYi+ou3fNP;g+2miG2c&o}$adv<~kpTwH4 z)i$T-q{RbYV6V)Ua23Lh2r%XEcz#~lDXvOCr!c5I#aFChhvcbGOC0H=4r&h%qYlkq zm9ADX{AW)w1_2P8-Riz%63G*4Y4l(@$lZpo3;BysAT&EvC*A)n` zsM{L5cv`ht!2$20~x8?Z!_>h9K=pY5Ryyx=q(JU@xb~MMTPIj1?s9e^Qpu zj!x*LB16(f-uK;M+aCG^?P70M>TJsEM~Cgl!|P|)96(wKH2*>#h3j{J51z-cr73*618SpFo{yd zkb6K@3-yPM31#o3Cs!uBL=&yzYVxvW2L!b)c_B&&bq^L_d6vSEsiRxG9~Z>pAO9<> zN0*f}M=!Mwv5hzSB47Sf0t`a(lg&U29msEy-d)F~$bxePy+?BO13_Jxc=2!k3XGh{ ztRvUwtCDX#d*E7b0dB!&QH%HG#?mVG-U#h>lmsNcO%(R-=w#6L(%;@j_HgzrV}`3 z1K5o?CJs@slP9{GEeX%~x#Sp#3DLk#Il@e*rxyu5%p zdVjoA;e}Lm@LW2W0Z0(rFQvg#zo2U9Ma+_5MKrKN!e*w9$A`1a*WQ!QEVu3%&gHYq zm3vN8vhv-^spX}6PE)Y5@@nJM^5Q*qx$^S#spaN9r%&@jdXK^rDd2kgjMr27JGkcc zd~SLFnbW6FV-n8fQYmXby~A7iqeVmc1v2?IFb;N2Q4efLWrUAE+p9D%{*22`a1HTi zOG=O8&$w(%Jj;~<#h-B*U26P2!iW?wsqb+)HSr#Psmju*XI%Csp5ekf9iDO7kIw}6 z3wWcRmC@e6U{guQanbZoB@l?LSTbsrpadf2RG% zUR?8eC_D6ZKOP89YYy!3yS*X}4R&wzx{06-jq#n!Mh}nS(3{ffp#FQJBsF!JGpEgwL7jBkKW0tX`BklANgfpLS+t# zw93z3N@Y%=w93z1O67B*^3#`6`LR%W^-?N78Y(|^DU~^8lRv0}ms0sGu4$kI3h5sc zYRu*6m*=ytr)FCrHCqiOURx;ccP7s(yo$`PUuS7p;IDaOnd@7X$um`$bzcfVZyV0a zTb|ZF6s9>plUXV~ardSe`?u};S_aS!P1ttdl3rVAh))g|;%y`9E6eyUX3wJpvm;hA=Z9{zk-OcYPVD_U>d0iH;| z!6nTMb?VY+mRH^)N>!R!>y0G~^i`$^*3JkoNmRZZpwyh^ zR>^a|mNq%cffdIH?VFL}1lihWMV#)f;b*`125m-aR1POh5UUuoCB}qcM7bm8d}AaE zXV=h1prt^Him_S6-6bVm4TyMo zFE3BYDTJk?lTIU$Mq?AwnIJ7Oh8QGo!|^dunK76-o07?SBZk-$8DgoV;x^H`^x_g2 zf|-BB54$2iN;bB*3e824?vkLfMRV1ChN={v)aV7fSwU zau*|if)RyYg*CcqERsKhdM)`gkFO>Fc_)8PiD6oTTws(ns;M(? zyD-@l0tmyHM(UURR24M$PHaYa56gGNo;HfBSimnO|LC)3qin#2GC@4>S+i#}aOcqN zz46wMH8>q_-Q4-=uZGGpe(X-Z9dEgQF=(WVk_)BPC9ua=dvk}$i1*xUSHNrD3nVIm0{w8Sh(AT;h@Z}(UfV^qHQLUYxF;X^(qLCI>)Rr ztQnS*=$MTo#b;LPh*p5p_LHV&IGju-)kn?Knl*Y}Bk>0D4v*rYq|^W}K}bmIdhxua z8`616`lyN#qxIqosVSRtT0?m;vant}>&5e%~)Eyk%4j71oO< zym+e>XM&72o2>QeDyf7QdoJG6PYT%e_{| zdx1M4PNU^~kp4}|1(CQwI`%ai}2N(Jv(oK3Ap{Eo&z-tvD@Uy&^RF z`_c6*w+lSI>o%2(qiz751rc69p5a52UajzfYxR80Ly~o`OMOG!iOm2Z1@gVmd855P?j! za2i%e5jxd%5jvyvN$CKscszZQEfz>7pb^KwBa|-f8sKXSilqQ$wlcxoja0={8iR8b zvWbc?%EmEyCq}vdLX63I!{`>WjT`{+k7aaaoVs)#m^4*Dbjv81)T#@d%osd@D7?yH z3q%5lX!L^wAl5WI76vpCfQUB74&(@km32T=CN*EeDWMf%IF^ITma1mn<4VO2#E|ww z3^qWF35cv`VG+9ZVWmi68Nq-eB!zyeGJRM!4D-`j{EDXbU2XboX9=hdH2nKpUz*%aXL`;3mf;`ix5 zijbu7I3&rbB3kheY!FYRtf~-@=dcRu_xTiOO=ESztj!i5KiF%giT#(dQbgX^={kPYlg$u1!HNK99ka*M zN_ibv&v*I38hI9&y5T-?9+!#q&6@uc`bgW2Qiz17OP%hg{QvAu{C}hww z(e}ohvk%1PBC#nM3e9P|P%#=%nW^eT0y zQKjYt7XptzPexJY9giw+k7CG~ ztR--mk|l7^nx(b!IqO9D(tZk7q2JM`a<&#RY@n2gb`>p7_)mxyx2!9ph;d7bJW{HB zKb=5uUPQz;{b&G18EgNO`A1V!+XGiqlR@nuc@%DAzVmvBGHiKJv?NhbDS=zWeTN#AYBMD6!BfQ;1G%mWpF(Y4>SG$uV;u1z2lIN!CsrF_ns3W(vct zzyAXY2)f0wq;&zN-T)NSv>gVM$835T8z7kl_?!0aWn&qtfR&exWwAmt_A)f)`0f~- zy$renwViCn%Y8>T%2rjS&t^k zv&%81q{7x(X`hay{R5VJi78`4aSxz27x&}HM`=@ko7$w}j2F-1&?^4ONuV0>|9}15 z<-tGtAaqDh^D=dWp>MCm>Ah~7X$!Dcx}?(6Za%SnKr2P|w~AMhVF*!n1VddD(%<${ zGvioYlXo1qpt@$ou~HL`U-wco;+RzX&=AW_4sFvJ>w{Tk$Zv}1(u6bXS9~Z~YG^!I zYG}|cHD;y}NuD)*>rZF1hMx|-Nrku7(F- zr(@ruEmkRGZG2H})M&#U3u4n>icM>FPvv-GZMQdU8$(m*6d=naK`|_{0z)^%K-K^E zll{|CBkTKT?q0mE^;Q3QOb*(3(d(@DGoeS2DgK?hmC{>e3VqtE@fz5accZf3y5Zw( zG2R@Pow1j{aM72?fn}Sb)`Lu@v^|EH9K@ia(k$J=p;2u!sSFZZp$f+s%6+}4IxK(k znx$r;RJL5p^nwXQm)ZlPhDiB9RjU^q%ULnmbmn%LFbe2l}`KvN^d4FG*H zlMPj!(e|w!nKUgFr>zUfxhVsRbYuc6voHuBLMIoGE>ObV2z<>cxYu*P=nc!p$jm65+ zq-Oy}${mgN5ZN0nZp7Y8W9*IHYOi(3+1rl4guNYMS~hUvxTwL}DeF!(M*Qqv``x)s=){AZ+UYV#lOwqe=ZEpln@wvh!|9Yj-~8@tp9`< zTp0jF+fwZ%V~StDn;7kk=^@aj&NB}pffSl&QhSGe$9EXa^ZkyIj4Wbp0lTzRiFm~zF3PJ}wByKp;Wz+k{mDU+D$!bNpEBJwEdv*JR=1`yW6axCk-7w5RlIwibbfXwojOTi z%3eEghKbaKLS?i#)is^G7T7DLDby`6csW9mAytClXR}Jl|ttBR!4A;Z863*J-W&J*Y^I2KEEm; z(AS>~UEjw3J;Sf6dqh-N2Q_j=?S9`E?-`>pQ(@Creq&vPVg)d$jzeY>E=*%<6$h?| zK{Q}tJgjvzl+#$x9T<@r~&dc#Y_Ev_$ z$lT@%gxUSqwqDy-WZn}SyJQ9S&b(oc<~#tI0uAvJ)XmjNN zVW!VHUYOTp0TAA~3g;(R1%6J?0LFX`W3mnPz~3%Q^CsP;f}qaMV+j?Cs9s$Q86~)W z>5l?roHh64&YIYecL}(8T|?Eo_W0d9Dby}u-MmsS-5V?L@ilpsa* z=u__?EQS}F#ovQ}F_+elJ2;O z$=NU{8kz0l07d!DRCGv)cGy#>_PZq8U&{9IC4QEa$c;`ZWNeC+MH65ZD<|*7Xxt>K zO1_?ITc4wgQ}0UD(_XQf-bt{6d=;8S_b4{yUVP7Ac2843z?xp%Um!6>Xvh6&=_uK6CP5ufbVJm9&xp z^oH$gGhQI#vQGdJIK}{i#wds|BY=N~2g6YXJz$UWg{u82ZyzyWx2gyGm4 z8w%%&eoGRvrw=%hYh=sSQc%7lsOu7n+P05dOH{^ngrwYyHWfwW%`*#tp~=~cm1$nv z!J3pO97=6c6fMhAVVRhgkxGfrwK;00zzVg({3a(!CQWq(blcfyC?#3|X?7gz4;m}G za(B&VTir@@-m`u(Ce}nqE%0k6FnzTSqv(o%eiNUir+*P0lhlb5c3gzCw!Knw6Jv(P zFHCxuwUzTCy~I;Ml{iln8H+?J)2a5 zHg#Gmr_DyUZj_?FTvOcv9{7VEvL#zjr1afjA;#(b z0Um4x{yX!Y)-(2z9^uBuNu7CK0CfHF5#hq{LkD}EO0$`zNt6Gou*OVr_s_55Sj8^X z6!S5%-3otHh0`je9STwOXNrea*i#|$mO`ZAOz{gU)Fu{cafL$Ie5Uvn6)va{cBBwB zXr}nrWzDRpQE1a>KREOCgDdb{xS!K~UIVkt(x%Bwll~Lsu5J?xnJL`~(CUqkGG4QT z+ek4E)-VzZe1>)ZS|iujG$w4+(o9R50CGC<3UJn8nEv^iw1rt=| z#)pgj`^;5w)Vs@olC2w|L?=dQC;^YJgOaVAqogOQp8&GXDKzskCh!Qt$SRwl1ip)O zC|vaWzky6QXiNGD8=)zYHFK?|DLwzjt}132Z^#VK*6do%VKLVC&C&Bz-IJ5YTJRh!!fXP6MEmd zZUoGIhHkBbC;HFv9$H|N-rjpfkD`>^xcicsHajrOYIRj5;v)#)ODYc8A9qu#-Ja%$N4njH2(W0E@Xi-jcwAkf`b8FZv$+rMGeps<3xqSRmbNKEd z@FG0!V>X$Dws8WJMVOp6ser92OjN2MwKEWu-2%=aL%H2Rh6<8~(IC!*unCl_6Hpz~ z^bezv369%Q6F*=&Zy6e&n#pE73bSuPn2{7W|CJSuSiY;$ zA5JkSC?5vO1$rvGDrR466&NmLv12=%vR3iG9PDK*TO<%z+F0*os#6*QnL)I$qMBvQ zHm^lf=?|k|8S>Z?^}zOU%UU5O%;rpPnc7P&8-<)Uucc$^NtGpFeJ~{?+g(qlj(Z6= zkZ&2jmO4g|DKC+(r@`=YNEEF1m6IJ^Lz*^TPI8Y{Fw}0$p<4{R%26$JDn~y^@0VG9 zdBu9br}G}V1LJNLA5+XBmbXjo3igGM;>qbliCtl#Ls!feOaAOlx?-nmhfsWs5Y|FR z!!z?IYE69 z5z|pViR)5yuMQGr%V29hZMg*ML+s{IldMwog*6WrNBv{Yur^l9rTUm)HSsjN zm(MGcD#+qjc(hdz6oez19-P6+&QBL5QdN?H9U>EHd6Vh6cw5x~*tV&8sto>id2i`E&IJ;{!C;SpgdmZ5n*;RbAw5~gYG>t)EZCH91 zs;Zd@6Jn@hx(_TN=Rbj23Z*~ ze7qUYT1+u5O+N9g#d?xWJ~6_gSXqmqjIt@qS}X{VuNtFjqG>)Y$5lfQf_({c^fTAkZ~}1~+ZEn=u*fB4}h)H4-4tgd~h_xG2Eb z5@>6`zy*zRx{DVxM=@`W7<_1O)zE1X847twk%8rf@IjN-lr-Mah2ejMu!wmNwiTb+ zVwo0%Qiq(=d_$ZEBBLpuiyJJz2BHJF)$|x^q&vmxs5@o|0ILHCMBqy4FWf5DoY})V z%z+6SXWrI4&~!3yj*&S}4h`o;<_iMDoCAuQ3l4*cS2(7b}#SOAsk7a(7j#85D7hl&`o~9!A4eX8MqT#K(^{&4;yR@ zp#?yF5xS;3XBH8Gv+9ef`^wBbM_pucbdshXb;|aCz{R0H%1y8lT`ID!@JF613$~RU# z#(SjS{<>Zd>9=DgjTv$+8wOPDxII+ff8hmQT`FGX$6ozRKb;A?Z4LJ+XMh8lER9HI zr0f4rT1#ZbEye;OHs3tAjg(NUK*{d^k20@NP*jc%Tg8JJ^xEcL9#vchX^hvM5C}UW zHnC&$Pm?T6ABdZYQ^u%5LXR?2O~?^1O+{tXyfb~n4(v3{f|#lZdkK!X*rAky%&X0E zJ!{p5%1kzUD4*IvfHdzO%KJNpt&iG14m|*e#LjTQi2nKueO;+(T&QAOopwpN5bLp;tzEoO=?wTCnDRnDeSbY2rfYI3Mp`iRtP{Ruus5E?_~ z9siY_6bML1qaQ)9?L9_8g2(gDj>0#wh&;OiD;NqoAku7~;*~j^=R5(X(7C~uioVeT z2U{p7jSlD*A2P+=0^fqL$q%>GX*nwMP5bmTfO8}OT`mP(Qt&6&?*LC~k-mj7wgs-% z2wdjA-WtKGEyb@j0+bM#$J{;B#XF8F)0-5)C2|PlJ+sWx`7JpX0)mjd!pbqBBuL3H;tGtJ-1h4WQPzhe;y;P6MUUP24Z1G(dHR(qU5z}Sey_^Cx zUKe}K^mtpVi3-L(rmP*)qu#WOb2zwxSS@=1PG1TU)Z%h)i)NOs6bbt+>%~d$!DSj9 zds6xY@VtRlg;Pn!lL18ih`cq_&lE0_$}Z2x))T%?)8Mn>F6rDD zqnr&iHqS?>kB97U%z*5Pf|+S@JBkHl2;pdu1khv5*MqOE>!6}H zd{gUBXR^L0hrOQ#Qe_vjHNxMr+L%wBY%V@cY4K8r5;;vsQ#e0JG%ZV5i4hGg|5I0h z@rjjT3409HrRNrMO`!6cTEjPZPpb`rl!gs!wE}kKNtW_Yz^WB7cSxZlR>*_ltq@_G zj&N&5$XjxiP1Hi<;#xmZgtXCeJ+_sncEv`d1r(^E{!?jYOYsBc+TEYhlA`Mww;h(w zEgPMh{f6z>TsUTVC>sIdCZ^OQb*+S=VcP6D#E z2I<%`?!oXGcKD#U&^*7^h&c}{zeDA~c$ZiQ^FghB=#qVyF7X?>60WcLk5<>9(S zSm`7in+mj?v+LH~qca~X>Degkp!J2FWt8!(s*sIA2ghiK^EM+^D5)_dt z)3}K-bBD>bz5XF77)m@=5fR?Z9fcq8!t1^8Jq1Q}bzzs1p;?7ny~0iYBVK1_>HnCS ztEkBLdBr3y0id*;3Y-2P?yxJ>~>@`9U&y9~!oUG^mANobt7RgOM>K z*gO}E$;>;RSlAvehKCCBf~BC~kaZaAnk359p&`xFJGsWzr7o_JjPtcU%DJ5JfMJZsH3`Ni2Czj^qB8SC=7INa~`3wwh zra#_BDhy?I5j_%>Y>kG(A zLC_mKQZt3IE@i~ykt+ppZ`4Hgt5e-F`Eic~O!%crBm3M-*y~Ga^ zc$eSh{Ltt;KV}o;dXa0n4e5vRL83}~sn6gW?Q2jopUqsuZDbwOKLj&VfozhFxzgiVgLTwAq|5&1bdPw1o`pZ!?UZ zE*>1t13?!cWhpb|0;MiRD8j5oX={WQv zY}4@w8-;dWLBgTp#6fdXpy-fRr_^!F(Q;@MzKy=$P{RXbp#gKUAf*O$+d8NHw8?7`}tvlx;nSubJrLq6P0+` zk}06D0ZSOoDbg(5)N5sMke9jn!OCDHFLRaF%4|Mztt9YR1$9Nr%OCc$y1OEuE!CG@ zAf1dezXCOYZRVw2;|2*bLdaTDk)w6l<%(qwgyXH4UPrN_+SYSwyQX4tMa9;6ipRu_ zimm??m-5EjwjoeFCV6nQ#@xNQ42RT*XfqS0e6v$#5P z3C(vmYX0`J`6DzReXAIzpB(SQ^_?E`wm`ku&CIBHK>W^Z?^;S{lDFi~z}lHRUqE&P z(h&1iQwD*UUf$zpH`D1QQ&$!HA+q=}tVMqjL}8sPiRTTG1KOUE!`F-)0GU#nFt7*Z z*Uaw&3ijale$SA~)n7eIF$-K50zhNZRx?5`(g7Uu>rAtfjJQ15mE3M(ibREl|c7FKOt^6S9WD-I8!K=#HbxiMd2YiW8 zSZfz`24&x(H5C%3=V;B6KmJGRHU=FCkb|*856w6|Os`Cm0uK_tZuzq$fHVa$4fBlx z+jWuj@0VMtUd9ZrpW-PQxxZ6IK2O{gXa3`AQv76EJjbu8-s%Z+gsCr>J#s1P<#%YE zvYq@?_{iTId%_zDMf=8!%$136Q!_x65HIJYJ<_w$nC0D)9jLIjWZHoH2Qztr9 zb=R1<^XNEBd0!yONZ?!qV8&j04l8_Ve@tk#tP6CpQB{CQy9Vq60I*LYsLL zu%JS-tN<`dhJ}Yuve!Mu&(H zFzf8fjdYzbL#)`>-~$EEnHXA9xE-;<2aC4C#Y|dDCv<^rvz+m&bbhCoTgwUMLlYB< zt@sK^`be?Od{e{Z8CS_mkNNGr<$CI<%Xc`(9AaH|trW7DrNu4!i z%VatL@qOYk)21d_WmmZyVK(C|84HD z1%tJ%A+(!ggZlDGJd+LGXhvFB6#wSazh-$zp{(z_Q2)m@=<~d+ioe0mRr%N+LLT+y69dRgM>?^t;P*m$oMz=%ZU3G8fvJ=> zR@Fw{yZLcdd4VdNEVTR+zxa)3|5yHQ3t!^Q#dP`T2^Isr! z&Iww>-VfsInnH&FZ)&-H!obK_IQY*y-TQ%3;`4g-)J>8dZPDEh{%I}0DkpROmz>Hw zKL{E+#Zw<=$`qfR`tHwso z1BJ&CTI4}K=#>1UU;b8lxac1}$YFY-n_-9kJFOd;*Gf7ba(tB|6o$@K2QnW$763{{ zK>r4e+3DO{)5%x<>WaS#AXMP^Jrnrhep={9%6~A0B-f#MI-vN`@XERISDqYu1-5Z4 zll~CM(v246UUuUGr79Tj#%+#Y2pkkReveJ!7aSRWr(hl63s19Fjf6NQspQDSe#9s9 z2EI*{96y!!ghOfE(?$)NC&1L_e&?!{A(E+H=<*{-n!N`Vxm-c~qhO7Y{db3$mM|SM zN2})HLytpmzx*fv{OS|SOJ|l}`g!8-PS7<9Us*b_JcpcwiC>yNwfxX)mGI#AlM~DB zGs~Y|d1~dQyH*>gmcNsRC;KHm%A?^VkHXP#CYs8l;o8eh9S3Je!?l+e%cJ4i>Vh2& z*Y=~~=*77Ut9PBc=iUeR9=`@nksDpTuQbG;TAK~5MU_8-$GI9@MFzvWt5nGt5WR6veiLj zsuX`+6d`s+oLDTWy`vrB(K}3f&qLjX^=|#kciB` zCM71=2~|5(r4gY_REwr=JC@!VTJgqe%Ey}CDAHt5#XEjzSovsPVIQPuy{2sIIRjJM4wc_`FJ1KteOAfOgn%1jW!XzRy zbO#Ie*mMR5ekMt2cmu+QF|y9nut4(h}8(U@hRHFRLmyW}G#2M29;pnwBky;2Cwg zC-Aaofse$0$)oCA8GWnFd8fzB%-sgx45iC{hjy-kO-cENmK&z#+97;<=nzk^md5u#Gk~mIk zXvNc);%+ceN;kbT9SEP{RH$Tu5yg^j$hjaCV{_=|v9>#g+{ja|sxsu;mF*5d99m6! zuPqh6U?1Nc`;J^B{X0UIw)Qsvkolt6hwQ5S5PDzy5SxXYd`SBT{-IYy6&L+bT8_xB z$`3gk^&yL{xO7%SY~)>qLW_J^`G{QLhbdN@Qvefs$&4$YaqpvXk^1N~xd&lJ6W$OL5o00GdV%7)786!5$bx>IWgSEoUoLGlCh6 z0dStVhp%D`vO{@y$1p3B_XC^cdi-ZN*c&Jz2$;x_NrK7_zBfI%LTJMq_~2kizMW6m zcIExqKtoV1k6|S^)j_GLbfU97_qMi zWGOLbaI>FXCW`onY2rU*gDoAonB$eb03ZND2e<64geHE3Layk#iJ7f}vdQDE!9LEU zVYu8X=?kia{g&vA-XnjLarvulk(8LC*?dd?e_;0qDNFslwZqLaHhBVnCUi|Ta1z=B zn-x#YRH|%Nq{p!!L?=^bdWPw^AN`wG3KC5}Q!}}3*RRwJ`lt~S!|q5qCW2&GcHvaH zji==8!AL1B=VRQx%u>PMc=9gng8#M(QIL3o$>NwBQ!OGf=7FLr-~LM7K4Y64+&*B2 zX0XVZ{;NukGGev9TsMXA1$4j_wnY#LQ})Uhu){qSkOUom6*ZLyOgg#AV| z5&AHsv^OC&!|QZE6@c_6;5(L6GxU+T{ok(2zrk4PJrhi%Q?$NhONzArs|_=L^A))? zLNB-~N{)O$-_&_q`?BlHM%iraKWp}3Egg*D_~KG_JXmH``Y~W`DV%*@0S54m%gHUi z>wSyQ0r4Eo{xmGaMxFDY=y-w^d30FxqfFS6%u)mTq!mD%Ow==$MYKdHXr#|s%f~d# zE0g2c-%k)ipH-MdD#a&l-QtwM9_p~cx)vaYbr6hn+cn8aL3MX>?3zRrjgID(3XYzS z$k?4EyeR6XYg)l!0`LFRijon<_ zDhF3{D^4J86R7+QV7{hH7N?x{;%NV$E;;!Gl}^U zkdc@s0Ga^M30#czv89YX@Y1^ybLZiScuQm^lBLfg+Ws&2npDJXB-8(mz{bQzo823V zl*+~Hw}@7uU3UpmLuy#RxB-QRMZZv%eQWd)`59>^Ffj=TMja5;y%=9ve?py$;7O6q zr#bzu?w&?YR~uno^1JZ{M2hqX!^m2}FBG#C?fYnw5-$3G`VENwgf`xo=*I^F(uEH; zo4Nq&_(W==ziy!bzsV-GA`YY{We3PRB^@Fw?tWr5;l_;>8CNA|a91a&Y2yEuIKKB8&^8qLn@30oj;&;DV1&S)+FW;&bpz?i&D^&Zn6N+)$c62x^v!6l>kEsm`b+5(H%~+Kb zaEO-Qu^Xam4=yFiKAyKQB2kL_k4=8ugMJRJ8QsgA0m+ol!6G3u<$c}>PiC~Jn6Y6& z7xG|81f*~XWxTjcN*n@#xk>3J8o-q^1x3E>ui{l^$B4XxPzwxTzn0$U*?fQ+D(YlgQ7 zHppj;xcf*E114F3gx(1vcNQzOqNft?v4+;dTQ)Ju2n)$MXQI3QJtK7MQs5|DRIFx6 z;nfW(+z*9TATGc?^ikf4Ai)IOVQA_JoC@LhMd(Cri0~T_zTNk@*N|o2dkx~iZUo88 zRKR&bPW$Y*i3PZ=QqJxV7yAz*Kx=xsfIyL_eN)cZ1PbkkmSGuQi_j`#K-hV zd`NO|Uy2V&4(?0wA<4mgDLw$YQ#X@{r`TkMW_NBvUUbwY7Ghyi(h8sX3cq|))JL(4 zOfk7k5kK6^<~)Db`HW2$+ke1W7ltw;vX+voh^5De+g66#^KB=_O8?H|ZmU9dxJ&LN zs0*JBp|H$lO!9}A`gvLZFvl?|(!lY-b~GCzt6Th_tC9^MCHoi28u$yZ@Gs`?m{{OO z^I*=QI~u$q_`zMYWFh*soj%&2BV>*V9+S0SR8A5oP(;}^>NA_Ju#Jv z74>WZOWA@Ox|k#Kg+uw49n2*%x05k-7UMc*7IK;Ae0xD9aPxxiRt&dd_*qaRdXvB2 z%$zO{<#TF=HQfUE#~iqY*=H-0+>9HEls7;&DYeLGxB7R8%X~B6VKXkf$akP%0Mmi# zfmf!z2h>oyA&~LySs4iF#L>Z4424|bjZTLX<;h?ucvH&6J(RcmV4Fs)q8SxUQKV^L zD&MA`8CG1PGVlKA?<)}z^+R76l0@LMlhm0J$>MrY1 zTOE**@(9W5p_(qEWlW4Oz4PyDJb#14G8&!cb**6ODs|KZWTTo38`rc!k$OpEqY};X z_lDv8j^ToeLK~(|!%v5YW`?zm$b23@pRk6?XAWwf=G*hUlnv$q3Oz@DlU>jZ`y9Dp zzu^E;aet5lTlnG@XW+grEl&;!4BkK7LMH<8D(?+LaKCjZUP*7bcb|2;M}RL#fIDN@ zp5y{wDDNR6^~e*?KyaFBHNCv!sDLyi7gaP?FAlH;GXPN~X=xT113z21`%oBy|IQS* z>fTW4S0uk8=bLf_;eo=X4F!es{X`*J8^TJFoC2u|FWLjgab z(=08N>cP8jyEXG-8Ty@T<4*G@V+I?DAq1mG<{4TXZ6YV}k)@QM&u6I&YvFWYHv6vL zbIL|CkZ(P4I#!-8I)oem-HLJ%g$lS>??cj@o}H**tRzBA^3+I>iD?b7(&G6{bKy_) zJR20t+lJyFtv=fzMtF%1tFTQUuKL3^TB3G(T1Ad2^J%)Z1NEtv^Kj>|djo`5(_i?W zT;kW=fh6R~B2I1=b%mYuj=@X?TBZBS;ABy^I3E}bw1Kn9t-SKLw8h$HCqf@oR$15% z^}Z?Uh<|KXf_CNw1|C+C2uJ}$fDT+SJ`H^tEZ7IxO0k(U>_bbrl*g$pAgHOS)N-Xw zld5F&5VjzIc}u}EIn}k2KKBO;(C9+=l<~JqON7uCP*?~3Xne@Qh2rIJW9-wJA}m;N z_GhYN)8zNfRKReQvW`t5%%H6FkTf>TsyK9PEMVDIfLh?>^H3K!1@HRP#}m~6LvAE( zlr3n#XG`!zwOW|PShAORQA49YhAk~&(0fD;C#;z;znynW<>jBuZ zRlX3`Q=$TJ!o$#()q^)`fC{uA8^x1_#f+u>^S~Q*iVQ-(%StrYjEfjDIM{+2Zd4H~ z1|2ScBua^ zS?kKYLfSd;8{RlVwGca;<>(IdO1_S*c?{vE!04+Q;E2f7JIzDpVbl!fud+QFMBmmn&sif>QCEz*?+z7BpOErTFar8ss3!N7tSg_f2C zYoOJ1Xm$U*pe2G~j|flqQ;aLfXmY&1VKp_eTh8u+d02~R2HqLXA>6PP!-F{6|2!~b>4kEaT zwpbpjHR_E{w8S!K(~t{?21){R<73n5RynDiE2HaJya~BPZx}a~nE}cZw~3qComH=? z+ysco3xKmi$P2*4i5j3z`DCuh{%EDC6kn&^y26}jTYA1VbB5sH57CalbA~;vx*e$; zZ9B*jWEN|q`yoWms@E}^-EeiB!7lwUF z?bs{OA1FMKDdzrqdS%Iw>k7R`9S5{AwEt>u`VWjk`;{7iM)&Z;Czkl3(VhIn(Eglj z+FaBR!!y18e*4TWx?=4QHxBJ*c1`<_IInFQ+7HMTbl3lfwmXDDTe~XrlcD`m`YOfM zu@V+&+m7<+{%61WYZl#q?@PG$S#Hm10zCP z8y|QF^wjCb5kvMyDY+0N=vx3C%C4|{Oqz)jPTkc4w*!XKxnz4X+H8UAy zKmKGg$bRgJq;rh1A1eld^k{<+`}?#xB^e4h-e`zD0L0@OgzDn;LhJ?Yl)>8kVIlU` zJ&50lY#_nLv@{W6ze=B28*Uh3PlG;KrhxILKwv1RxyeTljvgt#e*7(Pp|?ii^*lrd zt9O?WUGGwD!|3|+$jV}=cv&J-0+OkAEV}-tGP*v`5s7}_26F^P9`Rg7xktIs5}uxf zW4To3%W}#H9h3wv^Fwo&f__pJFB%WtNBZXkLk9Fh4fwD*uMJ=wyRI zX+8i3Jmc%d>GG>ho*+?_p+g+Rz#AHPhtH9+PYVrx_?)sqLf*1RB7>B2qQ~HY12wS= z(`jDRz7};=X)`dWylkK@fZ+3@1s?stKB3GhI;_@ulBp9i9>``1`rHI=OReVr%ig;H zTXvm=ndh8+?z!i_Pd_BJ-0gVZQ_9S3kRoLwtR7o~dv_EgTk;?hC8eQU6-||^qUu%{ zOV+3~sg~8YWkrCJD2X7VqDe%oASIEF0RtvhpluYQfIP{ALx$ujO0+0dtSi-yS_rGi z;M{Ken;RHw7|Bq8YCegz!v-)~-`ubx8);w=MwYDgj-Y0hZN>UD%j|8SyU1qcwg9q?^$TBjKDup<|*%4D^HYf9`~31+NLdM(|V9+>)&ZVkv*zw*+1Qzr-Z#u zC;1kTU`6xSXQ!{@j*2O3yVvqVbw~2u)%otKyt|wqn1`(_qJ1kuy0CBkPI5{laB!#b zyvzs@JTYW`>diHf20gMT598;HW9ZlON;`07w^zg6urC5@Wsu+k9~&}_s`do&osKwM zsXJKnbi(Xa{*smie4q%jAhgo;o*Qsana!jxpnRH95SoN!0T@Pu4a5Y(Q4fK_KB|YZ zBSLc7^pJ=QQ5X;}1-U|~At3Pm8xGQYDnbT)FhbgJTr9CwKl5XzqXz*QOs2jqeV(Hs z@XG4B7MoI7;>p}Q zFuI=H8Eya#$dWWltM~v3sHq_k3z!opqh^vIjr@!u+WbIWL@Q_#QM-aLaDs?+%?To& zpDNE!=Hq*KI%46BNvFjDgijC)duHUMfw)4h-kljEQ))J{nP(hoh;(2Pj!sfeGT*t}U}Ir3yM`N2N4c#$8LTu8jIx-8m&f!cuH zOdDWm816f5fOZ?)ciI5yD)*f>fGxb#%%_M5`w!Ot*ns=^Ljj z2dC?0iA%fyS4RRQUfg$dCJs>RGYS@mr*#LK`cV1KaPEsvv>6aIzRAu=ExelR%yM>S z`5&`+XygB+Az?;kH62P0Ip8>o= zKUF3Zl>yJ-=$Mz;MbMY0Is+~u-r6GOaerlFW%6qr&HmMTe@$8Pr%4(e!BgB_>E_OV zp2-Mp9qeRtF&i_SWCV}yHMoSWf2m{gpWw-uITleD__4>_*kAtQo(pEFQ!}wjjbFW&-xsQUr)-d)&uK`-k^I@ zl`>WLB>h6J=ncCk3#H6L_XI{gY98ei`Qil@2yB4jd=t`ze+5em+F-Y_)iB%>&>b}Y z;QLPVaZ|;isl+%z0Q_+t!f&Bp#c>41>g!D~2huh3&q++hbB}^oAzq+HE2FCat1!oW zdR5xl4{*|v)xaqQ28f^A;4}Dn3)~_h8P40K2$^Yeh+Z zd5>g(xiK$0Rj)w_0- zs;Kc!UhKUKt^cQc#GHyVJz{?p`eaI0=%Jx)*jNz^LwE6Jz(cOPZ1-HB(p23+p!A{N z>Sb~`WyD{zrdR?1b|YrPj?v1+<-_~l7=EEP7pHVMcGnz?^ksRz-!=<9W`WnZtgkIP z7or23_2u;-O#1W|zl_IARau7M9Bv&59>X3_v%)~haSA z2m~kyZOv+TCc}o(>ggBb3nn0EBx@+BXMl|8l>B~Rg_D6YK9JGWv>nb1Rn7fQqkbdmwd)2iIb9_f|I06N}QxH+vv8!iJHqZ)MR$FOwq5Umy`7Q|R{CD7sbPiN#KKQ*HlQnSxq;{(XC>6~B`cj>x>q8n1Mw&|4 z15vR$b_sNz*NGhx$#);#=r6gEl6seYG*Nl>x9)+)>tb{@B=~k)m%OYD?ReTF+KVVC z=Rnm|ekT0Q#+xjZczE22qAVRc-u(KneAh3GUX9Un8bb7fv!IQB(5_jv!xO2~v%jFi zT(z-)cxbh(@8|~67vT(>-d69_r;buPdl{k~s=fbHN3pU%vqi^emA}kBfA$kU_0OWu z+CM|3uu=Za{-$wn!Bckrx(6WqvpV?=rGm_}YoA?P>n}oNVJ(+(#L4>?_)a7-zQ96! z7^oQ&G}l3hR{)QJ&kemm6#h7PmKLV}5eIE1u8p44pS)$-(_X;9tG69T-)b2ALTqdZ zE)QJjZwJXsv^YP9mut8(%&HMPOy0tX6)QR*aEz&C=9O|pxWpLMFsly)nHx}UJ6&(E`}pnBn_Lq1 zX*jKNr{$Vl25~L)716_I)=sh1db3v@1z!-+GneLh5bmM(Isu){$7&(I)SJaH!jQAF0p<=P2WBk>p;MsT>iSY#`;h|WQqOSC;^Fe52V6=^ZhyG6TGBcMk!vZHXog4&|Sm1O+TbkF1@`3BjLP-Ll
    KV4yJ*!8ymVEXnF8cZ0Vs-JlA#*NWuc~ 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 [number, number, number]; +export const apply_changes: (a: any) => [number, number, number]; +export const complete_current: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number]; +export const evaluate_current: (a: any) => [number, number, number]; export const evaluate_snapshot: (a: any, b: any) => [number, number, number]; export const format_source: (a: number, b: number) => [number, number, number, number]; +export const set_snapshot: (a: any) => [number, number]; export const formatSource: (a: number, b: number) => [number, number]; export const __wbindgen_malloc: (a: number, b: number) => number; export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; diff --git a/web/workspace/src/lib/workspace/config-source/toolchain.ts b/web/workspace/src/lib/workspace/config-source/toolchain.ts index b0f98fa9..d1164e64 100644 --- a/web/workspace/src/lib/workspace/config-source/toolchain.ts +++ b/web/workspace/src/lib/workspace/config-source/toolchain.ts @@ -1,75 +1,57 @@ -import type { - ConfigDiagnostic, - ConfigTreeSnapshot, - ToolchainContract, -} from "./types.ts"; -import type { - ConfigSourceWorkerRequest, - ConfigSourceWorkerResponse, -} from "./toolchain.worker.ts"; +import type { ConfigDiagnostic, ConfigTreeChange, ConfigTreeSnapshot, ToolchainContract } from "./types.ts"; +import type { ConfigSourceWorkerRequest, ConfigSourceWorkerResponse } from "./toolchain.worker.ts"; -type ConfigSourceWorkerCommand = +type Command = + | Omit, "id"> + | Omit, "id"> | Omit, "id"> | Omit, "id"> + | Omit, "id"> | Omit, "id">; export class ConfigSourceToolchain { #worker: Worker; #nextId = 1; - #pending = new Map< - number, - { resolve: (value: unknown) => void; reject: (reason: unknown) => void } - >(); + #pending = new Map void; reject: (reason: unknown) => void }>(); - constructor( - worker = new Worker(new URL("./toolchain.worker.ts", import.meta.url), { - type: "module", - }), - ) { + constructor(worker = new Worker(new URL("./toolchain.worker.ts", import.meta.url), { type: "module" })) { this.#worker = worker; - worker.addEventListener( - "message", - (event: MessageEvent) => { - const pending = this.#pending.get(event.data.id); - if (!pending) return; - this.#pending.delete(event.data.id); - if (event.data.ok) pending.resolve(event.data.result); - else pending.reject(event.data.error); - }, - ); + worker.addEventListener("message", (event: MessageEvent) => { + const pending = this.#pending.get(event.data.id); + if (!pending) return; + this.#pending.delete(event.data.id); + if (event.data.ok) pending.resolve(event.data.result); + else pending.reject(event.data.error); + }); } - analyze( - snapshot: ConfigTreeSnapshot, - path: string, - source?: string, - ): Promise { - return this.#request({ kind: "analyze", snapshot, path, source }); + setSnapshot(snapshot: ConfigTreeSnapshot): Promise { + return this.#request({ kind: "set_snapshot", snapshot }); } - - evaluate(snapshot: ConfigTreeSnapshot, contract: ToolchainContract) { - return this.#request({ kind: "evaluate", snapshot, contract }); + applyChanges(changes: ConfigTreeChange[]): Promise { + return this.#request({ kind: "apply_changes", changes }); + } + analyze(path: string, source?: string): Promise { + return this.#request({ kind: "analyze", path, source }); + } + evaluate(contract: ToolchainContract) { + return this.#request({ kind: "evaluate", contract }); + } + complete(path: string, source: string, utf8ByteOffset: number, explicit = false): Promise { + return this.#request({ kind: "complete", path, source, utf8ByteOffset, explicit }); } - format(source: string): Promise { return this.#request({ kind: "format", source }); } - close(): void { this.#worker.terminate(); - for (const pending of this.#pending.values()) { - pending.reject(new Error("config source toolchain was closed")); - } + for (const pending of this.#pending.values()) pending.reject(new Error("config source toolchain was closed")); this.#pending.clear(); } - - #request(request: ConfigSourceWorkerCommand): Promise { + #request(request: Command): Promise { const id = this.#nextId++; return new Promise((resolve, reject) => { - this.#pending.set(id, { - resolve: (value) => resolve(value as T), - reject, - }); + this.#pending.set(id, { resolve: (value) => resolve(value as T), reject }); this.#worker.postMessage({ ...request, id }); }); } diff --git a/web/workspace/src/lib/workspace/config-source/toolchain.worker.ts b/web/workspace/src/lib/workspace/config-source/toolchain.worker.ts index aec5bc4f..9ca865f4 100644 --- a/web/workspace/src/lib/workspace/config-source/toolchain.worker.ts +++ b/web/workspace/src/lib/workspace/config-source/toolchain.worker.ts @@ -1,28 +1,19 @@ import init, { analyze_snapshot, - evaluate_snapshot, + apply_changes, + complete_current, + evaluate_current, format_source, + set_snapshot, } from "./generated/config_source_wasm.js"; -import type { - ConfigDiagnostic, - ConfigTreeSnapshot, - ToolchainContract, -} from "./types.ts"; +import type { ConfigTreeChange } from "./types.ts"; export type ConfigSourceWorkerRequest = - | { - id: number; - kind: "analyze"; - snapshot: ConfigTreeSnapshot; - path: string; - source?: string; - } - | { - id: number; - kind: "evaluate"; - snapshot: ConfigTreeSnapshot; - contract: ToolchainContract; - } + | { id: number; kind: "set_snapshot"; snapshot: unknown } + | { id: number; kind: "apply_changes"; changes: ConfigTreeChange[] } + | { id: number; kind: "analyze"; path: string; source?: string } + | { id: number; kind: "evaluate"; contract: unknown } + | { id: number; kind: "complete"; path: string; source: string; utf8ByteOffset: number; explicit: boolean } | { id: number; kind: "format"; source: string }; export type ConfigSourceWorkerResponse = @@ -30,24 +21,32 @@ export type ConfigSourceWorkerResponse = | { id: number; ok: false; error: unknown }; const ready = init(); +let snapshot: unknown = null; -self.onmessage = async ( - event: MessageEvent, -): Promise => { +self.onmessage = async (event: MessageEvent): Promise => { const request = event.data; try { await ready; let result: unknown; switch (request.kind) { + case "set_snapshot": + snapshot = request.snapshot; + set_snapshot(request.snapshot); + result = null; + break; + case "apply_changes": + snapshot = apply_changes(request.changes); + result = snapshot; + break; case "analyze": - result = analyze_snapshot( - request.snapshot, - request.path, - request.source, - ) as ConfigDiagnostic[]; + if (!snapshot) throw new Error("config source snapshot is not initialized"); + result = analyze_snapshot(snapshot, request.path, request.source); break; case "evaluate": - result = evaluate_snapshot(request.snapshot, request.contract); + result = evaluate_current(request.contract); + break; + case "complete": + result = complete_current(request.path, request.source, request.utf8ByteOffset, request.explicit); break; case "format": result = format_source(request.source); @@ -55,15 +54,6 @@ self.onmessage = async ( } self.postMessage({ id: request.id, ok: true, result }); } catch (error) { - self.postMessage({ - id: request.id, - ok: false, - error: normalizeError(error), - }); + self.postMessage({ id: request.id, ok: false, error: error instanceof Error ? error.message : error }); } }; - -function normalizeError(error: unknown): unknown { - if (error instanceof Error) return error.message; - return error; -} diff --git a/web/workspace/src/lib/workspace/config-source/types.ts b/web/workspace/src/lib/workspace/config-source/types.ts index 7f910c8e..f157a515 100644 --- a/web/workspace/src/lib/workspace/config-source/types.ts +++ b/web/workspace/src/lib/workspace/config-source/types.ts @@ -89,4 +89,5 @@ export interface ConfigCommitRequest { base_digest: string; changes: ConfigTreeChange[]; entrypoints: VirtualPath[]; + toolchain_fingerprint: string; } diff --git a/web/workspace/src/lib/workspace/settings/DecodalSourceEditor.svelte b/web/workspace/src/lib/workspace/settings/DecodalSourceEditor.svelte index 16db8214..6a9411d0 100644 --- a/web/workspace/src/lib/workspace/settings/DecodalSourceEditor.svelte +++ b/web/workspace/src/lib/workspace/settings/DecodalSourceEditor.svelte @@ -1,5 +1,6 @@