-
Notifications
You must be signed in to change notification settings - Fork 1
Description
The recursion depth limit in the descriptor parser is enforced after the full parse has already completed, which defeats its protective purpose. Specifically, the check is performed only after parser::parse(value) returns a fully constructed AST (ctx). As a result, if the input descriptor contains excessive nesting, the recursive parsing process may overflow the stack before reaching the post-parse limit check.
To ensure safety, recursion depth limits must be applied within the parsing logic itself (e.g., inside parser::parse_internal or equivalent recursive functions). This would allow the parser to detect and abort excessive recursion early, preventing uncontrolled stack growth and potential stack-overflow crashes.
Since this is a relatively new project, perhaps it's worth trying to remove all recursion?
More context here: rust-bitcoin/rust-miniscript#696
impl<'a> TryFrom<&'a str> for Context {
type Error = ContextError<'a>;
fn try_from(value: &'a str) -> Result<Self, Self::Error> {
let ctx = parser::parse(value).map_err(ContextError::ParserError)?;
// Type check the AST for correctness properties
let type_info = CorrectnessPropertiesVisitor::new()
.visit(&ctx)
.map_err(ContextError::TypeCheckerError)?;
// Validate the descriptor structure
let _: () = DescriptorValidator::new()
.validate(&ctx)
.map_err(ContextError::DescriptorVisitorError)?;
// Check the recursion depth
limits::check_recursion_depth(type_info.tree_height).map_err(ContextError::LimitsError)?;
// Check the script size
limits::check_script_size(&ctx.descriptor(), type_info.pk_cost)
.map_err(ContextError::LimitsError)?;
Ok(ctx)
}
}input:
wsh(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(or_d(pk(key))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
Result:
==119709==ERROR: AddressSanitizer: stack-overflow on address 0x7fff22d42b20 (pc 0x7fc5b2149125 bp 0x7fff22d470f0 sp 0x7fff22d42b20 T0)
#0 0x7fc5b2149125 in tinyminiscript::parser::parse_internal
#1 0x7fc5b2149d58 in tinyminiscript::parser::ParserContext::parse_call
#2 0x7fc5b21492c7 in tinyminiscript::parser::parse_internal
#3 0x7fc5b2149d58 in tinyminiscript::parser::ParserContext::parse_call
...