diff --git a/relay_config/aggregator/struct.AggregatorServiceConfig.html b/relay_config/aggregator/struct.AggregatorServiceConfig.html index 81dfd82ea3..2e7f25a7ee 100644 --- a/relay_config/aggregator/struct.AggregatorServiceConfig.html +++ b/relay_config/aggregator/struct.AggregatorServiceConfig.html @@ -1,10 +1,10 @@ AggregatorServiceConfig in relay_config::aggregator - Rust

Struct relay_config::aggregator::AggregatorServiceConfig

source ·
pub struct AggregatorServiceConfig {
-    pub aggregator: AggregatorConfig,
+    pub aggregator: AggregatorConfig,
     pub max_total_bucket_bytes: Option<usize>,
     pub max_flush_bytes: usize,
     pub flush_interval_ms: u64,
 }
Expand description

Parameters used for metric aggregation.

-

Fields§

§aggregator: AggregatorConfig

The config used by the internal aggregator.

+

Fields§

§aggregator: AggregatorConfig

The config used by the internal aggregator.

§max_total_bucket_bytes: Option<usize>

Maximum amount of bytes used for metrics aggregation.

When aggregating metrics, Relay keeps track of how many bytes a metric takes in memory. This is only an approximation and does not take into account things such as pre-allocation diff --git a/relay_config/struct.Config.html b/relay_config/struct.Config.html index ab5c2f5fb1..acc5c6ba55 100644 --- a/relay_config/struct.Config.html +++ b/relay_config/struct.Config.html @@ -157,7 +157,7 @@

source

pub fn cogs_granularity(&self) -> Duration

Granularity for COGS measurements.

source

pub fn cogs_max_queue_size(&self) -> u64

Maximum amount of COGS measurements buffered in memory.

source

pub fn cogs_relay_resource_id(&self) -> &str

Resource ID to use for Relay COGS measurements.

-
source

pub fn permissive_aggregator_config(&self) -> AggregatorConfig

Creates an AggregatorConfig that is compatible with every other aggregator.

+
source

pub fn permissive_aggregator_config(&self) -> AggregatorConfig

Creates an [AggregatorConfig] that is compatible with every other aggregator.

A lossless aggregator can be put in front of any of the configured aggregators without losing data that the configured aggregator would keep. This is useful for pre-aggregating metrics together in a single aggregator instance.

source

pub fn default_aggregator_config(&self) -> &AggregatorServiceConfig

Returns configuration for the default metrics aggregator.

diff --git a/relay_event_normalization/all.html b/relay_event_normalization/all.html index 5be51506fa..270aacc66c 100644 --- a/relay_event_normalization/all.html +++ b/relay_event_normalization/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Enums

Functions

Type Aliases

Statics

Constants

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Functions

Type Aliases

Statics

Constants

\ No newline at end of file diff --git a/relay_event_normalization/fn.browser_from_client_hints.html b/relay_event_normalization/fn.browser_from_client_hints.html new file mode 100644 index 0000000000..e0309d521a --- /dev/null +++ b/relay_event_normalization/fn.browser_from_client_hints.html @@ -0,0 +1,7 @@ +browser_from_client_hints in relay_event_normalization - Rust
pub fn browser_from_client_hints(s: &str) -> Option<(String, String)>
Expand description

The sec-ch-ua field looks something like this: +“Not_A Brand”;v=“99”, “Google Chrome”;v=“109”, “Chromium”;v=“109” +The order of the items are randomly shuffled.

+

It tries to detect the “not a brand” item and the browser engine, if it’s neither its assumed +to be a browser and gets returned as such.

+

Returns None if no browser field detected.

+
\ No newline at end of file diff --git a/relay_event_normalization/fn.normalize_measurements.html b/relay_event_normalization/fn.normalize_measurements.html index 2fd4ae51ed..bc8e53c0f9 100644 --- a/relay_event_normalization/fn.normalize_measurements.html +++ b/relay_event_normalization/fn.normalize_measurements.html @@ -1,4 +1,4 @@ -normalize_measurements in relay_event_normalization - Rust
pub fn normalize_measurements(
+normalize_measurements in relay_event_normalization - Rust
pub fn normalize_measurements(
     measurements: &mut Measurements,
     meta: &mut Meta,
     measurements_config: Option<CombinedMeasurementsConfig<'_>>,
diff --git a/relay_event_normalization/fn.normalize_performance_score.html b/relay_event_normalization/fn.normalize_performance_score.html
index 9cbffd3585..2adad9a8dc 100644
--- a/relay_event_normalization/fn.normalize_performance_score.html
+++ b/relay_event_normalization/fn.normalize_performance_score.html
@@ -1,7 +1,7 @@
-normalize_performance_score in relay_event_normalization - Rust
pub fn normalize_performance_score(
-    event: &mut Event,
+normalize_performance_score in relay_event_normalization - Rust
pub fn normalize_performance_score(
+    event: &mut (impl Getter + MutMeasurements),
     performance_score: Option<&PerformanceScoreConfig>
-)
Expand description

Computes performance score measurements for an event.

+) -> Option<String>
Expand description

Computes performance score measurements for an event.

This computes score from vital measurements, using config options to define how it is calculated.

\ No newline at end of file diff --git a/relay_event_normalization/index.html b/relay_event_normalization/index.html index fbd5552ab8..3d1d991371 100644 --- a/relay_event_normalization/index.html +++ b/relay_event_normalization/index.html @@ -1,6 +1,8 @@ -relay_event_normalization - Rust

Crate relay_event_normalization

source ·
Expand description

Event normalization and processing.

+relay_event_normalization - Rust

Crate relay_event_normalization

source ·
Expand description

Event normalization and processing.

Modules§

  • Computation of breakdowns from event data.
  • Computation and normalization of contexts from event data.
  • Contains helper function for NEL reports.
  • Validation and normalization of Replay events.
  • Normalization of the Request interface.
  • Span normalization logic.
  • Generate context data from user agent and client hints.
  • Deprecated. Utilities for extracting common event fields.

Structs§

Enums§

  • Configuration to define breakdown to be generated based on properties and breakdown type.
  • Describes what to do with the matched pattern.

Functions§

Enums§

  • Configuration to define breakdown to be generated based on properties and breakdown type.
  • Describes what to do with the matched pattern.

Traits§

Functions§

  • Applies the rule if any found to the transaction name.
  • The sec-ch-ua field looks something like this: +“Not_A Brand”;v=“99”, “Google Chrome”;v=“109”, “Chromium”;v=“109” +The order of the items are randomly shuffled.
  • Returns true if the event’s transaction name is known to contain unsanitized values.
  • Returns true if the given platform string is a known platform identifier.
  • Replaces snake_case app start spans op with dot.case op.
  • Computes breakdowns for an event based on the given configuration.
  • Normalizes an event.
  • Ensure only valid measurements are ingested.
  • Computes performance score measurements for an event.
  • Apply parametrization to transaction.
  • Generates context data from client hints or user agent.
  • Low-level version of normalize_user_agent operating on parts.
  • Set a default transaction source if it is missing, but only if the transaction name was extracted as a metrics tag. This behavior makes it possible to identify transactions for which the transaction name was not extracted as a tag on the corresponding metrics, because diff --git a/relay_event_normalization/normalize/user_agent/fn.browser_from_client_hints.html b/relay_event_normalization/normalize/user_agent/fn.browser_from_client_hints.html new file mode 100644 index 0000000000..4a56f3442f --- /dev/null +++ b/relay_event_normalization/normalize/user_agent/fn.browser_from_client_hints.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

    Redirecting to ../../../relay_event_normalization/user_agent/fn.browser_from_client_hints.html...

    + + + \ No newline at end of file diff --git a/relay_event_normalization/normalize/user_agent/trait.FromUserAgentInfo.html b/relay_event_normalization/normalize/user_agent/trait.FromUserAgentInfo.html new file mode 100644 index 0000000000..b612b2329f --- /dev/null +++ b/relay_event_normalization/normalize/user_agent/trait.FromUserAgentInfo.html @@ -0,0 +1,11 @@ + + + + + Redirection + + +

    Redirecting to ../../../relay_event_normalization/user_agent/trait.FromUserAgentInfo.html...

    + + + \ No newline at end of file diff --git a/relay_event_normalization/sidebar-items.js b/relay_event_normalization/sidebar-items.js index 500e74df66..577a15935a 100644 --- a/relay_event_normalization/sidebar-items.js +++ b/relay_event_normalization/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["BreakdownConfig","RedactionRule"],"fn":["apply_transaction_rename_rules","is_high_cardinality_sdk","is_valid_platform","normalize_app_start_spans","normalize_breakdowns","normalize_event","normalize_measurements","normalize_performance_score","normalize_transaction_name","normalize_user_agent","normalize_user_agent_info_generic","set_default_transaction_source","validate_environment","validate_event","validate_release","validate_span"],"mod":["breakdowns","contexts","nel","replay","request","span","user_agent","utils"],"struct":["BreakdownsConfig","BuiltinMeasurementKey","ClientHints","ClockDriftProcessor","CombinedMeasurementsConfig","EventValidationConfig","GeoIpLookup","MeasurementsConfig","ModelCost","ModelCosts","NormalizationConfig","PerformanceScoreConfig","PerformanceScoreProfile","PerformanceScoreWeightedComponent","RawUserAgentInfo","RemoveOtherProcessor","SchemaProcessor","SpanDescriptionRule","SpanDescriptionRuleScope","SpanOperationsConfig","TimeWindowSpan","TimestampProcessor","TransactionNameConfig","TransactionNameRule","TransactionsProcessor","TrimmingProcessor"],"type":["GeoIpError"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["BreakdownConfig","RedactionRule"],"fn":["apply_transaction_rename_rules","browser_from_client_hints","is_high_cardinality_sdk","is_valid_platform","normalize_app_start_spans","normalize_breakdowns","normalize_event","normalize_measurements","normalize_performance_score","normalize_transaction_name","normalize_user_agent","normalize_user_agent_info_generic","set_default_transaction_source","validate_environment","validate_event","validate_release","validate_span"],"mod":["breakdowns","contexts","nel","replay","request","span","user_agent","utils"],"struct":["BreakdownsConfig","BuiltinMeasurementKey","ClientHints","ClockDriftProcessor","CombinedMeasurementsConfig","EventValidationConfig","GeoIpLookup","MeasurementsConfig","ModelCost","ModelCosts","NormalizationConfig","PerformanceScoreConfig","PerformanceScoreProfile","PerformanceScoreWeightedComponent","RawUserAgentInfo","RemoveOtherProcessor","SchemaProcessor","SpanDescriptionRule","SpanDescriptionRuleScope","SpanOperationsConfig","TimeWindowSpan","TimestampProcessor","TransactionNameConfig","TransactionNameRule","TransactionsProcessor","TrimmingProcessor"],"trait":["FromUserAgentInfo"],"type":["GeoIpError"]}; \ No newline at end of file diff --git a/relay_event_normalization/trait.FromUserAgentInfo.html b/relay_event_normalization/trait.FromUserAgentInfo.html new file mode 100644 index 0000000000..e1ab23b3ed --- /dev/null +++ b/relay_event_normalization/trait.FromUserAgentInfo.html @@ -0,0 +1,12 @@ +FromUserAgentInfo in relay_event_normalization - Rust
    pub trait FromUserAgentInfo: Sized {
    +    // Required methods
    +    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>;
    +    fn parse_user_agent(user_agent: &str) -> Option<Self>;
    +
    +    // Provided method
    +    fn from_hints_or_ua(raw_info: &RawUserAgentInfo<&str>) -> Option<Self> { ... }
    +}
    Expand description

    Computes a Context from either a user agent string and client hints.

    +

    Required Methods§

    source

    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>

    Tries to populate the context from client hints.

    +
    source

    fn parse_user_agent(user_agent: &str) -> Option<Self>

    Tries to populate the context from a user agent header string.

    +

    Provided Methods§

    source

    fn from_hints_or_ua(raw_info: &RawUserAgentInfo<&str>) -> Option<Self>

    Tries to populate the context from client hints or a user agent header string.

    +

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl FromUserAgentInfo for BrowserContext

    source§

    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>

    source§

    fn parse_user_agent(user_agent: &str) -> Option<Self>

    source§

    impl FromUserAgentInfo for DeviceContext

    source§

    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>

    source§

    fn parse_user_agent(user_agent: &str) -> Option<Self>

    source§

    impl FromUserAgentInfo for OsContext

    source§

    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>

    source§

    fn parse_user_agent(user_agent: &str) -> Option<Self>

    Implementors§

    \ No newline at end of file diff --git a/relay_event_normalization/user_agent/fn.browser_from_client_hints.html b/relay_event_normalization/user_agent/fn.browser_from_client_hints.html new file mode 100644 index 0000000000..fe118f5532 --- /dev/null +++ b/relay_event_normalization/user_agent/fn.browser_from_client_hints.html @@ -0,0 +1,7 @@ +browser_from_client_hints in relay_event_normalization::user_agent - Rust
    pub fn browser_from_client_hints(s: &str) -> Option<(String, String)>
    Expand description

    The sec-ch-ua field looks something like this: +“Not_A Brand”;v=“99”, “Google Chrome”;v=“109”, “Chromium”;v=“109” +The order of the items are randomly shuffled.

    +

    It tries to detect the “not a brand” item and the browser engine, if it’s neither its assumed +to be a browser and gets returned as such.

    +

    Returns None if no browser field detected.

    +
    \ No newline at end of file diff --git a/relay_event_normalization/user_agent/index.html b/relay_event_normalization/user_agent/index.html index b33fb6106f..e775e3eae5 100644 --- a/relay_event_normalization/user_agent/index.html +++ b/relay_event_normalization/user_agent/index.html @@ -1,8 +1,10 @@ -relay_event_normalization::user_agent - Rust

    Module relay_event_normalization::user_agent

    source ·
    Expand description

    Generate context data from user agent and client hints.

    +relay_event_normalization::user_agent - Rust

    Module relay_event_normalization::user_agent

    source ·
    Expand description

    Generate context data from user agent and client hints.

    This module is responsible for taking the user agent string parsing it and filling in the browser, os and device information in the event.

    §NOTICE

    Adding user_agent parsing to your module will incur a latency penalty in the test suite. Because of this some integration tests may fail. To fix this, you will need to add a timeout to your consumer.

    -

    Structs§

    • The client hint variable names mirror the name of the “SEC-CH” headers.
    • A container housing both the user-agent string and the client hint headers.

    Functions§

    \ No newline at end of file +

    Structs§

    • The client hint variable names mirror the name of the “SEC-CH” headers.
    • A container housing both the user-agent string and the client hint headers.

    Traits§

    Functions§

    \ No newline at end of file diff --git a/relay_event_normalization/user_agent/sidebar-items.js b/relay_event_normalization/user_agent/sidebar-items.js index 376d39957d..7203393398 100644 --- a/relay_event_normalization/user_agent/sidebar-items.js +++ b/relay_event_normalization/user_agent/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"fn":["normalize_user_agent","normalize_user_agent_info_generic"],"struct":["ClientHints","RawUserAgentInfo"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":["browser_from_client_hints","normalize_user_agent","normalize_user_agent_info_generic"],"struct":["ClientHints","RawUserAgentInfo"],"trait":["FromUserAgentInfo"]}; \ No newline at end of file diff --git a/relay_event_normalization/user_agent/trait.FromUserAgentInfo.html b/relay_event_normalization/user_agent/trait.FromUserAgentInfo.html new file mode 100644 index 0000000000..5204027edb --- /dev/null +++ b/relay_event_normalization/user_agent/trait.FromUserAgentInfo.html @@ -0,0 +1,12 @@ +FromUserAgentInfo in relay_event_normalization::user_agent - Rust
    pub trait FromUserAgentInfo: Sized {
    +    // Required methods
    +    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>;
    +    fn parse_user_agent(user_agent: &str) -> Option<Self>;
    +
    +    // Provided method
    +    fn from_hints_or_ua(raw_info: &RawUserAgentInfo<&str>) -> Option<Self> { ... }
    +}
    Expand description

    Computes a Context from either a user agent string and client hints.

    +

    Required Methods§

    source

    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>

    Tries to populate the context from client hints.

    +
    source

    fn parse_user_agent(user_agent: &str) -> Option<Self>

    Tries to populate the context from a user agent header string.

    +

    Provided Methods§

    source

    fn from_hints_or_ua(raw_info: &RawUserAgentInfo<&str>) -> Option<Self>

    Tries to populate the context from client hints or a user agent header string.

    +

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl FromUserAgentInfo for BrowserContext

    source§

    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>

    source§

    fn parse_user_agent(user_agent: &str) -> Option<Self>

    source§

    impl FromUserAgentInfo for DeviceContext

    source§

    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>

    source§

    fn parse_user_agent(user_agent: &str) -> Option<Self>

    source§

    impl FromUserAgentInfo for OsContext

    source§

    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>

    source§

    fn parse_user_agent(user_agent: &str) -> Option<Self>

    Implementors§

    \ No newline at end of file diff --git a/relay_event_schema/processor/trait.ProcessValue.html b/relay_event_schema/processor/trait.ProcessValue.html index 4a8207fc65..51187e0fcd 100644 --- a/relay_event_schema/processor/trait.ProcessValue.html +++ b/relay_event_schema/processor/trait.ProcessValue.html @@ -29,7 +29,7 @@ state: &ProcessingState<'_> ) -> ProcessingResult
    where P: Processor,

Recurses into children of this value.

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl ProcessValue for MetricUnit

source§

impl ProcessValue for bool

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl ProcessValue for bool

source§

fn value_type(&self) -> EnumSet<ValueType>

source§

fn process_value<P>( &mut self, meta: &mut Meta, processor: &mut P, @@ -59,7 +59,7 @@ processor: &mut P, state: &ProcessingState<'_> ) -> ProcessingResult
where - P: Processor,

source§

impl ProcessValue for Uuid

source§

impl ProcessValue for Value

source§

impl ProcessValue for Uuid

source§

impl ProcessValue for MetricUnit

source§

impl ProcessValue for Value

source§

fn value_type(&self) -> EnumSet<ValueType>

source§

fn process_value<P>( &mut self, meta: &mut Meta, processor: &mut P, @@ -156,6 +156,6 @@ processor: &mut P, state: &ProcessingState<'_> ) -> ProcessingResult
where - P: Processor,

Implementors§

source§

impl ProcessValue for Context

source§

impl ProcessValue for DebugImage

source§

impl ProcessValue for EventType

source§

impl ProcessValue for InstructionAddrAdjustment

source§

impl ProcessValue for Level

source§

impl ProcessValue for LockReasonType

source§

impl ProcessValue for NetworkReportPhases

source§

impl ProcessValue for SpanStatus

source§

impl ProcessValue for ThreadId

source§

impl ProcessValue for TransactionSource

source§

impl ProcessValue for Addr

source§

impl ProcessValue for AppContext

source§

impl ProcessValue for AppleDebugImage

source§

impl ProcessValue for Breadcrumb

source§

impl ProcessValue for Breakdowns

source§

impl ProcessValue for BrowserContext

source§

impl ProcessValue for CError

source§

impl ProcessValue for ClientSdkInfo

source§

impl ProcessValue for ClientSdkPackage

source§

impl ProcessValue for CloudResourceContext

source§

impl ProcessValue for CodeId

source§

impl ProcessValue for ContextInner

source§

impl ProcessValue for Contexts

source§

impl ProcessValue for Cookies

source§

impl ProcessValue for Csp

source§

impl ProcessValue for DebugId

source§

impl ProcessValue for DebugMeta

source§

impl ProcessValue for DeviceContext

source§

impl ProcessValue for Event

source§

impl ProcessValue for EventId

source§

impl ProcessValue for EventProcessingError

source§

impl ProcessValue for Exception

source§

impl ProcessValue for ExpectCt

source§

impl ProcessValue for ExpectStaple

source§

impl ProcessValue for ExtraValue

source§

impl ProcessValue for Fingerprint

source§

impl ProcessValue for Frame

source§

impl ProcessValue for FrameData

source§

impl ProcessValue for FrameVars

source§

impl ProcessValue for Geo

source§

impl ProcessValue for GpuContext

source§

impl ProcessValue for GroupingConfig

source§

impl ProcessValue for HeaderName

source§

impl ProcessValue for HeaderValue

source§

impl ProcessValue for Headers

source§

impl ProcessValue for Hpkp

source§

impl ProcessValue for IpAddr

source§

impl ProcessValue for JsonLenientString

source§

impl ProcessValue for JvmDebugImage

source§

impl ProcessValue for LenientString

source§

impl ProcessValue for LinuxDistribution

source§

impl ProcessValue for LockReason

source§

impl ProcessValue for LogEntry

source§

impl ProcessValue for MachException

source§

impl ProcessValue for Measurement

source§

impl ProcessValue for Measurements

source§

impl ProcessValue for Mechanism

source§

impl ProcessValue for MechanismMeta

source§

impl ProcessValue for Message

source§

impl ProcessValue for MetricSummary

source§

impl ProcessValue for Metrics

source§

impl ProcessValue for MetricsSummary

source§

impl ProcessValue for MonitorContext

source§

impl ProcessValue for NativeDebugImage

source§

impl ProcessValue for NativeImagePath

source§

impl ProcessValue for NelContext

source§

impl ProcessValue for NsError

source§

impl ProcessValue for OsContext

source§

impl ProcessValue for OtelContext

source§

impl ProcessValue for PerformanceScoreContext

source§

impl ProcessValue for PosixSignal

source§

impl ProcessValue for ProfileContext

source§

impl ProcessValue for ProguardDebugImage

source§

impl ProcessValue for Query

source§

impl ProcessValue for RawStacktrace

source§

impl ProcessValue for RegVal

source§

impl ProcessValue for RelayInfo

source§

impl ProcessValue for Replay

source§

impl ProcessValue for ReplayContext

source§

impl ProcessValue for ReprocessingContext

source§

impl ProcessValue for Request

source§

impl ProcessValue for ResponseContext

source§

impl ProcessValue for Route

source§

impl ProcessValue for RuntimeContext

source§

impl ProcessValue for SingleCertificateTimestamp

source§

impl ProcessValue for SourceMapDebugImage

source§

impl ProcessValue for Span

source§

impl ProcessValue for SpanData

source§

impl ProcessValue for SpanId

source§

impl ProcessValue for Stacktrace

source§

impl ProcessValue for SystemSdkInfo

source§

impl ProcessValue for TagEntry

source§

impl ProcessValue for Tags

source§

impl ProcessValue for TemplateInfo

source§

impl ProcessValue for Thread

source§

impl ProcessValue for Timestamp

source§

impl ProcessValue for TraceContext

source§

impl ProcessValue for TraceId

source§

impl ProcessValue for TransactionInfo

source§

impl ProcessValue for TransactionNameChange

source§

impl ProcessValue for User

source§

impl ProcessValue for UserReportV2Context

source§

impl<T> ProcessValue for PairList<T>
where + P: Processor,

Implementors§

source§

impl ProcessValue for Context

source§

impl ProcessValue for DebugImage

source§

impl ProcessValue for EventType

source§

impl ProcessValue for InstructionAddrAdjustment

source§

impl ProcessValue for Level

source§

impl ProcessValue for LockReasonType

source§

impl ProcessValue for NetworkReportPhases

source§

impl ProcessValue for SpanStatus

source§

impl ProcessValue for ThreadId

source§

impl ProcessValue for TransactionSource

source§

impl ProcessValue for Addr

source§

impl ProcessValue for AppContext

source§

impl ProcessValue for AppleDebugImage

source§

impl ProcessValue for Breadcrumb

source§

impl ProcessValue for Breakdowns

source§

impl ProcessValue for BrowserContext

source§

impl ProcessValue for CError

source§

impl ProcessValue for ClientSdkInfo

source§

impl ProcessValue for ClientSdkPackage

source§

impl ProcessValue for CloudResourceContext

source§

impl ProcessValue for CodeId

source§

impl ProcessValue for ContextInner

source§

impl ProcessValue for Contexts

source§

impl ProcessValue for Cookies

source§

impl ProcessValue for Csp

source§

impl ProcessValue for DebugId

source§

impl ProcessValue for DebugMeta

source§

impl ProcessValue for DeviceContext

source§

impl ProcessValue for Event

source§

impl ProcessValue for EventId

source§

impl ProcessValue for EventProcessingError

source§

impl ProcessValue for Exception

source§

impl ProcessValue for ExpectCt

source§

impl ProcessValue for ExpectStaple

source§

impl ProcessValue for ExtraValue

source§

impl ProcessValue for Fingerprint

source§

impl ProcessValue for Frame

source§

impl ProcessValue for FrameData

source§

impl ProcessValue for FrameVars

source§

impl ProcessValue for Geo

source§

impl ProcessValue for GpuContext

source§

impl ProcessValue for GroupingConfig

source§

impl ProcessValue for HeaderName

source§

impl ProcessValue for HeaderValue

source§

impl ProcessValue for Headers

source§

impl ProcessValue for Hpkp

source§

impl ProcessValue for IpAddr

source§

impl ProcessValue for JsonLenientString

source§

impl ProcessValue for JvmDebugImage

source§

impl ProcessValue for LenientString

source§

impl ProcessValue for LinuxDistribution

source§

impl ProcessValue for LockReason

source§

impl ProcessValue for LogEntry

source§

impl ProcessValue for MachException

source§

impl ProcessValue for Measurement

source§

impl ProcessValue for Measurements

source§

impl ProcessValue for Mechanism

source§

impl ProcessValue for MechanismMeta

source§

impl ProcessValue for Message

source§

impl ProcessValue for MetricSummary

source§

impl ProcessValue for Metrics

source§

impl ProcessValue for MetricsSummary

source§

impl ProcessValue for MonitorContext

source§

impl ProcessValue for NativeDebugImage

source§

impl ProcessValue for NativeImagePath

source§

impl ProcessValue for NelContext

source§

impl ProcessValue for NsError

source§

impl ProcessValue for OsContext

source§

impl ProcessValue for OtelContext

source§

impl ProcessValue for PerformanceScoreContext

source§

impl ProcessValue for PosixSignal

source§

impl ProcessValue for ProfileContext

source§

impl ProcessValue for ProguardDebugImage

source§

impl ProcessValue for Query

source§

impl ProcessValue for RawStacktrace

source§

impl ProcessValue for RegVal

source§

impl ProcessValue for RelayInfo

source§

impl ProcessValue for Replay

source§

impl ProcessValue for ReplayContext

source§

impl ProcessValue for ReprocessingContext

source§

impl ProcessValue for Request

source§

impl ProcessValue for ResponseContext

source§

impl ProcessValue for Route

source§

impl ProcessValue for RuntimeContext

source§

impl ProcessValue for SingleCertificateTimestamp

source§

impl ProcessValue for SourceMapDebugImage

source§

impl ProcessValue for Span

source§

impl ProcessValue for SpanData

source§

impl ProcessValue for SpanId

source§

impl ProcessValue for Stacktrace

source§

impl ProcessValue for SystemSdkInfo

source§

impl ProcessValue for TagEntry

source§

impl ProcessValue for Tags

source§

impl ProcessValue for TemplateInfo

source§

impl ProcessValue for Thread

source§

impl ProcessValue for Timestamp

source§

impl ProcessValue for TraceContext

source§

impl ProcessValue for TraceId

source§

impl ProcessValue for TransactionInfo

source§

impl ProcessValue for TransactionNameChange

source§

impl ProcessValue for User

source§

impl ProcessValue for UserReportV2Context

source§

impl<T> ProcessValue for PairList<T>
where T: ProcessValue + AsPair,

source§

impl<T> ProcessValue for Values<T>
where T: ProcessValue,

\ No newline at end of file diff --git a/relay_event_schema/protocol/enum.EventType.html b/relay_event_schema/protocol/enum.EventType.html index dba3a17efb..0972ed5a10 100644 --- a/relay_event_schema/protocol/enum.EventType.html +++ b/relay_event_schema/protocol/enum.EventType.html @@ -1,4 +1,4 @@ -EventType in relay_event_schema::protocol - Rust

Enum relay_event_schema::protocol::EventType

source ·
pub enum EventType {
+EventType in relay_event_schema::protocol - Rust

Enum relay_event_schema::protocol::EventType

pub enum EventType {
     Error,
     Csp,
     Hpkp,
@@ -30,15 +30,15 @@
 
§

UserReportV2

User feedback payload.

TODO(Jferg): Change this to UserFeedback once old UserReport logic is deprecated.

§

Default

All events that do not qualify as any other type.

-

Implementations§

source§

impl EventType

source

pub fn as_str(&self) -> &'static str

Returns the string representation of this event type.

-

Trait Implementations§

source§

impl Clone for EventType

source§

fn clone(&self) -> EventType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for EventType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for EventType

source§

fn default() -> EventType

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for EventType

Implementations§

§

impl EventType

pub fn as_str(&self) -> &'static str

Returns the string representation of this event type.

+

Trait Implementations§

§

impl Clone for EventType

§

fn clone(&self) -> EventType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for EventType

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for EventType

§

fn default() -> EventType

Returns the “default value” for a type. Read more
§

impl<'de> Deserialize<'de> for EventType

§

fn deserialize<__D>( __deserializer: __D ) -> Result<EventType, <__D as Deserializer<'de>>::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for EventType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Empty for EventType

source§

fn is_empty(&self) -> bool

Returns whether this value is empty.
§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
source§

impl FromStr for EventType

§

type Err = ParseEventTypeError

The associated error which can be returned from parsing.
source§

fn from_str(string: &str) -> Result<EventType, <EventType as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl FromValue for EventType

source§

fn from_value(value: Annotated<Value>) -> Annotated<EventType>

Creates a meta structure from an annotated boxed value.
source§

impl Hash for EventType

source§

fn hash<__H>(&self, state: &mut __H)
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Display for EventType

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Empty for EventType

§

fn is_empty(&self) -> bool

Returns whether this value is empty.
§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
§

impl FromStr for EventType

§

type Err = ParseEventTypeError

The associated error which can be returned from parsing.
§

fn from_str(string: &str) -> Result<EventType, <EventType as FromStr>::Err>

Parses a string s to return a value of this type. Read more
§

impl FromValue for EventType

§

fn from_value(value: Annotated<Value>) -> Annotated<EventType>

Creates a meta structure from an annotated boxed value.
§

impl Hash for EventType

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl IntoValue for EventType

source§

fn into_value(self) -> Value
where - EventType: Sized,

Boxes the meta structure back into a value.
source§

fn serialize_payload<S>( + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl IntoValue for EventType

§

fn into_value(self) -> Value
where + EventType: Sized,

Boxes the meta structure back into a value.
§

fn serialize_payload<S>( &self, s: S, _behavior: SkipSerialization @@ -46,12 +46,12 @@ EventType: Sized, S: Serializer,

Efficiently serializes the payload directly.
§

fn extract_child_meta(&self) -> BTreeMap<String, MetaTree>
where Self: Sized,

Extracts children meta map out of a value.
§

fn extract_meta_tree(value: &Annotated<Self>) -> MetaTree
where - Self: Sized,

Extracts the meta tree out of annotated value. Read more
source§

impl JsonSchema for EventType

source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
source§

impl Ord for EventType

source§

fn cmp(&self, other: &EventType) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Extracts the meta tree out of annotated value. Read more
§

impl JsonSchema for EventType

§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
§

impl Ord for EventType

§

fn cmp(&self, other: &EventType) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for EventType

source§

fn eq(&self, other: &EventType) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized + PartialOrd,
Restrict a value to a certain interval. Read more
§

impl PartialEq for EventType

§

fn eq(&self, other: &EventType) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for EventType

source§

fn partial_cmp(&self, other: &EventType) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= +sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for EventType

§

fn partial_cmp(&self, other: &EventType) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl ProcessValue for EventType

source§

fn value_type(&self) -> EnumSet<ValueType>

Returns the type of the value.
source§

fn process_value<P>( &mut self, @@ -64,11 +64,11 @@ processor: &mut P, state: &ProcessingState<'_> ) -> ProcessingResult
where - P: Processor,

Recurses into children of this value.
source§

impl Serialize for EventType

Recurses into children of this value.
§

impl Serialize for EventType

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for EventType

source§

impl Eq for EventType

source§

impl StructuralPartialEq for EventType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Copy for EventType

§

impl Eq for EventType

§

impl StructuralPartialEq for EventType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DynClone for T
where diff --git a/relay_event_schema/protocol/enum.SpanStatus.html b/relay_event_schema/protocol/enum.SpanStatus.html index a7762b96e9..ee01464ddd 100644 --- a/relay_event_schema/protocol/enum.SpanStatus.html +++ b/relay_event_schema/protocol/enum.SpanStatus.html @@ -1,4 +1,4 @@ -SpanStatus in relay_event_schema::protocol - Rust

Enum relay_event_schema::protocol::SpanStatus

source ·
#[repr(u8)]
pub enum SpanStatus { +SpanStatus in relay_event_schema::protocol - Rust

Enum relay_event_schema::protocol::SpanStatus

#[repr(u8)]
pub enum SpanStatus {
Show 17 variants Ok = 0, Cancelled = 1, Unknown = 2, @@ -50,8 +50,8 @@
§

DataLoss = 15

Unrecoverable data loss or corruption

§

Unauthenticated = 16

401 Unauthorized (actually does mean unauthenticated according to RFC 7235)

Prefer PermissionDenied if a user is logged in.

-

Implementations§

source§

impl SpanStatus

source

pub fn as_str(&self) -> &'static str

Returns the string representation of the status.

-

Trait Implementations§

source§

impl AsRef<str> for SpanStatus

source§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for SpanStatus

source§

fn clone(&self) -> SpanStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SpanStatus

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for SpanStatus

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Empty for SpanStatus

source§

fn is_empty(&self) -> bool

Returns whether this value is empty.
§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
source§

impl FromStr for SpanStatus

§

type Err = ParseSpanStatusError

The associated error which can be returned from parsing.
source§

fn from_str(string: &str) -> Result<SpanStatus, <SpanStatus as FromStr>::Err>

Parses a string s to return a value of this type. Read more
source§

impl FromValue for SpanStatus

source§

fn from_value(value: Annotated<Value>) -> Annotated<SpanStatus>

Creates a meta structure from an annotated boxed value.
source§

impl IntoValue for SpanStatus

source§

fn into_value(self) -> Value

Boxes the meta structure back into a value.
source§

fn serialize_payload<S>( +

Implementations§

§

impl SpanStatus

pub fn as_str(&self) -> &'static str

Returns the string representation of the status.

+

Trait Implementations§

§

impl AsRef<str> for SpanStatus

§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
§

impl Clone for SpanStatus

§

fn clone(&self) -> SpanStatus

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for SpanStatus

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for SpanStatus

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Empty for SpanStatus

§

fn is_empty(&self) -> bool

Returns whether this value is empty.
§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
§

impl FromStr for SpanStatus

§

type Err = ParseSpanStatusError

The associated error which can be returned from parsing.
§

fn from_str(string: &str) -> Result<SpanStatus, <SpanStatus as FromStr>::Err>

Parses a string s to return a value of this type. Read more
§

impl FromValue for SpanStatus

§

fn from_value(value: Annotated<Value>) -> Annotated<SpanStatus>

Creates a meta structure from an annotated boxed value.
§

impl IntoValue for SpanStatus

§

fn into_value(self) -> Value

Boxes the meta structure back into a value.
§

fn serialize_payload<S>( &self, s: S, _behavior: SkipSerialization @@ -59,7 +59,7 @@ SpanStatus: Sized, S: Serializer,

Efficiently serializes the payload directly.
§

fn extract_child_meta(&self) -> BTreeMap<String, MetaTree>
where Self: Sized,

Extracts children meta map out of a value.
§

fn extract_meta_tree(value: &Annotated<Self>) -> MetaTree
where - Self: Sized,

Extracts the meta tree out of annotated value. Read more
source§

impl JsonSchema for SpanStatus

source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
source§

impl PartialEq for SpanStatus

source§

fn eq(&self, other: &SpanStatus) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,
Extracts the meta tree out of annotated value. Read more
§

impl JsonSchema for SpanStatus

§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
§

impl PartialEq for SpanStatus

§

fn eq(&self, other: &SpanStatus) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl ProcessValue for SpanStatus

source§

fn value_type(&self) -> EnumSet<ValueType>

Returns the type of the value.
source§

fn process_value<P>( &mut self, @@ -72,11 +72,11 @@ processor: &mut P, state: &ProcessingState<'_> ) -> ProcessingResult
where - P: Processor,

Recurses into children of this value.
source§

impl Serialize for SpanStatus

Recurses into children of this value.
§

impl Serialize for SpanStatus

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Copy for SpanStatus

source§

impl StructuralPartialEq for SpanStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Copy for SpanStatus

§

impl StructuralPartialEq for SpanStatus

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DynClone for T
where diff --git a/relay_event_schema/protocol/struct.DiscardedEvent.html b/relay_event_schema/protocol/struct.DiscardedEvent.html index 34947efbca..f8ba3a29b5 100644 --- a/relay_event_schema/protocol/struct.DiscardedEvent.html +++ b/relay_event_schema/protocol/struct.DiscardedEvent.html @@ -1,8 +1,8 @@ DiscardedEvent in relay_event_schema::protocol - Rust

Struct relay_event_schema::protocol::DiscardedEvent

source ·
pub struct DiscardedEvent {
     pub reason: String,
-    pub category: DataCategory,
+    pub category: DataCategory,
     pub quantity: u32,
-}

Fields§

§reason: String§category: DataCategory§quantity: u32

Trait Implementations§

source§

impl Clone for DiscardedEvent

source§

fn clone(&self) -> DiscardedEvent

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DiscardedEvent

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for DiscardedEvent

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where +}

Fields§

§reason: String§category: DataCategory§quantity: u32

Trait Implementations§

source§

impl Clone for DiscardedEvent

source§

fn clone(&self) -> DiscardedEvent

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for DiscardedEvent

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for DiscardedEvent

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for DiscardedEvent

source§

fn eq(&self, other: &DiscardedEvent) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for DiscardedEvent

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where diff --git a/relay_event_schema/protocol/struct.Measurement.html b/relay_event_schema/protocol/struct.Measurement.html index 8a8a17ab1c..58aea9ee5d 100644 --- a/relay_event_schema/protocol/struct.Measurement.html +++ b/relay_event_schema/protocol/struct.Measurement.html @@ -1,9 +1,9 @@ Measurement in relay_event_schema::protocol - Rust

Struct relay_event_schema::protocol::Measurement

source ·
pub struct Measurement {
     pub value: Annotated<f64>,
-    pub unit: Annotated<MetricUnit>,
+    pub unit: Annotated<MetricUnit>,
 }
Expand description

An individual observed measurement.

Fields§

§value: Annotated<f64>

Value of observed measurement value.

-
§unit: Annotated<MetricUnit>

The unit of this measurement, defaulting to no unit.

+
§unit: Annotated<MetricUnit>

The unit of this measurement, defaulting to no unit.

Trait Implementations§

source§

impl Clone for Measurement

source§

fn clone(&self) -> Measurement

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Measurement

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Measurement

source§

fn default() -> Measurement

Returns the “default value” for a type. Read more
source§

impl Empty for Measurement

source§

fn is_empty(&self) -> bool

Returns whether this value is empty.
source§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
source§

impl FromValue for Measurement

source§

fn from_value(__value: Annotated<Value>) -> Annotated<Self>

Creates a meta structure from an annotated boxed value.
source§

impl IntoValue for Measurement

source§

fn into_value(self) -> Value

Boxes the meta structure back into a value.
source§

fn serialize_payload<S>( &self, __serializer: S, diff --git a/relay_event_schema/protocol/struct.ParseEventTypeError.html b/relay_event_schema/protocol/struct.ParseEventTypeError.html index fd76f000fd..12cc835094 100644 --- a/relay_event_schema/protocol/struct.ParseEventTypeError.html +++ b/relay_event_schema/protocol/struct.ParseEventTypeError.html @@ -1,5 +1,5 @@ -ParseEventTypeError in relay_event_schema::protocol - Rust

Struct relay_event_schema::protocol::ParseEventTypeError

source ·
pub struct ParseEventTypeError;
Expand description

An error used when parsing EventType.

-

Trait Implementations§

source§

impl Clone for ParseEventTypeError

source§

fn clone(&self) -> ParseEventTypeError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ParseEventTypeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for ParseEventTypeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for ParseEventTypeError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl Copy for ParseEventTypeError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +ParseEventTypeError in relay_event_schema::protocol - Rust

Struct relay_event_schema::protocol::ParseEventTypeError

pub struct ParseEventTypeError;
Expand description

An error used when parsing EventType.

+

Trait Implementations§

§

impl Clone for ParseEventTypeError

§

fn clone(&self) -> ParseEventTypeError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ParseEventTypeError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for ParseEventTypeError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for ParseEventTypeError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl Copy for ParseEventTypeError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DynClone for T
where diff --git a/relay_event_schema/protocol/struct.ParseSpanStatusError.html b/relay_event_schema/protocol/struct.ParseSpanStatusError.html index 781b53db7b..486e41fee0 100644 --- a/relay_event_schema/protocol/struct.ParseSpanStatusError.html +++ b/relay_event_schema/protocol/struct.ParseSpanStatusError.html @@ -1,5 +1,5 @@ -ParseSpanStatusError in relay_event_schema::protocol - Rust
pub struct ParseSpanStatusError;
Expand description

Error parsing a SpanStatus.

-

Trait Implementations§

source§

impl Clone for ParseSpanStatusError

source§

fn clone(&self) -> ParseSpanStatusError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ParseSpanStatusError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Display for ParseSpanStatusError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Error for ParseSpanStatusError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl Copy for ParseSpanStatusError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +ParseSpanStatusError in relay_event_schema::protocol - Rust
pub struct ParseSpanStatusError;
Expand description

Error parsing a SpanStatus.

+

Trait Implementations§

§

impl Clone for ParseSpanStatusError

§

fn clone(&self) -> ParseSpanStatusError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ParseSpanStatusError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Display for ParseSpanStatusError

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Error for ParseSpanStatusError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
§

impl Copy for ParseSpanStatusError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DynClone for T
where diff --git a/relay_event_schema/protocol/struct.Route.html b/relay_event_schema/protocol/struct.Route.html index 62dca44d2c..03a60bfa9f 100644 --- a/relay_event_schema/protocol/struct.Route.html +++ b/relay_event_schema/protocol/struct.Route.html @@ -1,4 +1,4 @@ -Route in relay_event_schema::protocol - Rust

Struct relay_event_schema::protocol::Route

source ·
pub struct Route {
+Route in relay_event_schema::protocol - Rust

Struct relay_event_schema::protocol::Route

source ·
pub struct Route {
     pub name: Annotated<String>,
     pub params: Annotated<Object<Value>>,
     pub other: Object<Value>,
@@ -6,29 +6,29 @@
 

Fields§

§name: Annotated<String>

The name of the route.

§params: Annotated<Object<Value>>

Parameters assigned to this route.

§other: Object<Value>

Additional arbitrary fields for forwards compatibility.

-

Trait Implementations§

source§

impl Clone for Route

source§

fn clone(&self) -> Route

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Route

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Route

source§

fn default() -> Route

Returns the “default value” for a type. Read more
source§

impl Empty for Route

source§

fn is_empty(&self) -> bool

Returns whether this value is empty.
source§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
source§

impl FromValue for Route

source§

fn from_value(value: Annotated<Value>) -> Annotated<Self>
where - Self: Sized,

Creates a meta structure from an annotated boxed value.
source§

impl IntoValue for Route

source§

fn into_value(self) -> Value

Boxes the meta structure back into a value.
source§

fn serialize_payload<S>( +

Trait Implementations§

source§

impl Clone for Route

source§

fn clone(&self) -> Route

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Route

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Route

source§

fn default() -> Route

Returns the “default value” for a type. Read more
source§

impl Empty for Route

source§

fn is_empty(&self) -> bool

Returns whether this value is empty.
source§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
source§

impl FromValue for Route

source§

fn from_value(value: Annotated<Value>) -> Annotated<Self>
where + Self: Sized,

Creates a meta structure from an annotated boxed value.
source§

impl IntoValue for Route

source§

fn into_value(self) -> Value

Boxes the meta structure back into a value.
source§

fn serialize_payload<S>( &self, __serializer: S, __behavior: SkipSerialization ) -> Result<S::Ok, S::Error>
where Self: Sized, - S: Serializer,

Efficiently serializes the payload directly.
source§

fn extract_child_meta(&self) -> MetaMap
where + S: Serializer,

Efficiently serializes the payload directly.
source§

fn extract_child_meta(&self) -> MetaMap
where Self: Sized,

Extracts children meta map out of a value.
§

fn extract_meta_tree(value: &Annotated<Self>) -> MetaTree
where - Self: Sized,

Extracts the meta tree out of annotated value. Read more
source§

impl JsonSchema for Route

source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
source§

impl PartialEq for Route

source§

fn eq(&self, other: &Route) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,

Extracts the meta tree out of annotated value. Read more

source§

impl JsonSchema for Route

source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
source§

impl PartialEq for Route

source§

fn eq(&self, other: &Route) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl ProcessValue for Route

source§

fn value_type(&self) -> EnumSet<ValueType>

Returns the type of the value.
source§

fn process_value<P>( +sufficient, and should not be overridden without very good reason.

source§

impl ProcessValue for Route

source§

fn value_type(&self) -> EnumSet<ValueType>

Returns the type of the value.
source§

fn process_value<P>( &mut self, __meta: &mut Meta, __processor: &mut P, __state: &ProcessingState<'_> ) -> ProcessingResult
where - P: Processor,

Executes a processor on this value.
source§

fn process_child_values<P>( + P: Processor,

Executes a processor on this value.
source§

fn process_child_values<P>( &mut self, __processor: &mut P, __state: &ProcessingState<'_> ) -> ProcessingResult
where - P: Processor,

Recurses into children of this value.
source§

impl StructuralPartialEq for Route

Auto Trait Implementations§

§

impl Freeze for Route

§

impl RefUnwindSafe for Route

§

impl Send for Route

§

impl Sync for Route

§

impl Unpin for Route

§

impl UnwindSafe for Route

Blanket Implementations§

source§

impl<T> Any for T
where + P: Processor,

Recurses into children of this value.

source§

impl StructuralPartialEq for Route

Auto Trait Implementations§

§

impl Freeze for Route

§

impl RefUnwindSafe for Route

§

impl Send for Route

§

impl Sync for Route

§

impl Unpin for Route

§

impl UnwindSafe for Route

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DynClone for T
where diff --git a/relay_event_schema/protocol/struct.Span.html b/relay_event_schema/protocol/struct.Span.html index b99d28deff..b3d55eae75 100644 --- a/relay_event_schema/protocol/struct.Span.html +++ b/relay_event_schema/protocol/struct.Span.html @@ -51,7 +51,7 @@

See Event::platform.

§was_transaction: Annotated<bool>

Whether the span is a segment span that was converted from a transaction.

§other: Object<Value>

Additional arbitrary fields for forwards compatibility.

-

Trait Implementations§

source§

impl Clone for Span

source§

fn clone(&self) -> Span

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Span

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Span

source§

fn default() -> Span

Returns the “default value” for a type. Read more
source§

impl Empty for Span

source§

fn is_empty(&self) -> bool

Returns whether this value is empty.
source§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
source§

impl From<&Event> for Span

source§

fn from(event: &Event) -> Self

Converts to this type from the input type.
source§

impl FromValue for Span

source§

fn from_value(__value: Annotated<Value>) -> Annotated<Self>

Creates a meta structure from an annotated boxed value.
source§

impl Getter for Span

source§

fn get_value(&self, path: &str) -> Option<Val<'_>>

Returns the serialized value of a field pointed to by a path.
§

fn get_iter(&self, _path: &str) -> Option<GetterIter<'_>>

Returns an iterator over the array pointed to by a path. Read more
source§

impl IntoValue for Span

source§

fn into_value(self) -> Value

Boxes the meta structure back into a value.
source§

fn serialize_payload<S>( +

Trait Implementations§

source§

impl Clone for Span

source§

fn clone(&self) -> Span

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Span

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Span

source§

fn default() -> Span

Returns the “default value” for a type. Read more
source§

impl Empty for Span

source§

fn is_empty(&self) -> bool

Returns whether this value is empty.
source§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
source§

impl From<&Event> for Span

source§

fn from(event: &Event) -> Self

Converts to this type from the input type.
source§

impl FromValue for Span

source§

fn from_value(__value: Annotated<Value>) -> Annotated<Self>

Creates a meta structure from an annotated boxed value.
source§

impl Getter for Span

source§

fn get_value(&self, path: &str) -> Option<Val<'_>>

Returns the serialized value of a field pointed to by a path.
§

fn get_iter(&self, _path: &str) -> Option<GetterIter<'_>>

Returns an iterator over the array pointed to by a path. Read more
source§

impl IntoValue for Span

source§

fn into_value(self) -> Value

Boxes the meta structure back into a value.
source§

fn serialize_payload<S>( &self, __serializer: S, __behavior: SkipSerialization diff --git a/relay_event_schema/protocol/struct.SpanData.html b/relay_event_schema/protocol/struct.SpanData.html index 761c5ef806..3d9e99c090 100644 --- a/relay_event_schema/protocol/struct.SpanData.html +++ b/relay_event_schema/protocol/struct.SpanData.html @@ -1,4 +1,4 @@ -SpanData in relay_event_schema::protocol - Rust

Struct relay_event_schema::protocol::SpanData

source ·
pub struct SpanData {
Show 51 fields +SpanData in relay_event_schema::protocol - Rust

Struct relay_event_schema::protocol::SpanData

source ·
pub struct SpanData {
Show 51 fields pub app_start_type: Annotated<Value>, pub ai_total_tokens_used: Annotated<Value>, pub ai_prompt_tokens_used: Annotated<Value>, @@ -114,28 +114,28 @@
§previous_route: Annotated<Route>

The previous route in the application

Set by React Native SDK.

§other: Object<Value>

Other fields in span.data.

-

Trait Implementations§

source§

impl Clone for SpanData

source§

fn clone(&self) -> SpanData

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SpanData

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SpanData

source§

fn default() -> SpanData

Returns the “default value” for a type. Read more
source§

impl Empty for SpanData

source§

fn is_empty(&self) -> bool

Returns whether this value is empty.
source§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
source§

impl FromValue for SpanData

source§

fn from_value(__value: Annotated<Value>) -> Annotated<Self>

Creates a meta structure from an annotated boxed value.
source§

impl Getter for SpanData

source§

fn get_value(&self, path: &str) -> Option<Val<'_>>

Returns the serialized value of a field pointed to by a path.
§

fn get_iter(&self, _path: &str) -> Option<GetterIter<'_>>

Returns an iterator over the array pointed to by a path. Read more
source§

impl IntoValue for SpanData

source§

fn into_value(self) -> Value

Boxes the meta structure back into a value.
source§

fn serialize_payload<S>( +

Trait Implementations§

source§

impl Clone for SpanData

source§

fn clone(&self) -> SpanData

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SpanData

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SpanData

source§

fn default() -> SpanData

Returns the “default value” for a type. Read more
source§

impl Empty for SpanData

source§

fn is_empty(&self) -> bool

Returns whether this value is empty.
source§

fn is_deep_empty(&self) -> bool

Returns whether this value is empty or all of its descendants are empty. Read more
source§

impl FromValue for SpanData

source§

fn from_value(__value: Annotated<Value>) -> Annotated<Self>

Creates a meta structure from an annotated boxed value.
source§

impl Getter for SpanData

source§

fn get_value(&self, path: &str) -> Option<Val<'_>>

Returns the serialized value of a field pointed to by a path.
§

fn get_iter(&self, _path: &str) -> Option<GetterIter<'_>>

Returns an iterator over the array pointed to by a path. Read more
source§

impl IntoValue for SpanData

source§

fn into_value(self) -> Value

Boxes the meta structure back into a value.
source§

fn serialize_payload<S>( &self, __serializer: S, __behavior: SkipSerialization ) -> Result<S::Ok, S::Error>
where Self: Sized, - S: Serializer,

Efficiently serializes the payload directly.
source§

fn extract_child_meta(&self) -> MetaMap
where + S: Serializer,

Efficiently serializes the payload directly.
source§

fn extract_child_meta(&self) -> MetaMap
where Self: Sized,

Extracts children meta map out of a value.
§

fn extract_meta_tree(value: &Annotated<Self>) -> MetaTree
where - Self: Sized,

Extracts the meta tree out of annotated value. Read more
source§

impl JsonSchema for SpanData

source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
source§

impl PartialEq for SpanData

source§

fn eq(&self, other: &SpanData) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,

Extracts the meta tree out of annotated value. Read more
source§

impl JsonSchema for SpanData

source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
source§

fn json_schema(gen: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
source§

impl PartialEq for SpanData

source§

fn eq(&self, other: &SpanData) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl ProcessValue for SpanData

source§

fn value_type(&self) -> EnumSet<ValueType>

Returns the type of the value.
source§

fn process_value<P>( +sufficient, and should not be overridden without very good reason.

source§

impl ProcessValue for SpanData

source§

fn value_type(&self) -> EnumSet<ValueType>

Returns the type of the value.
source§

fn process_value<P>( &mut self, __meta: &mut Meta, __processor: &mut P, __state: &ProcessingState<'_> ) -> ProcessingResult
where - P: Processor,

Executes a processor on this value.
source§

fn process_child_values<P>( + P: Processor,

Executes a processor on this value.
source§

fn process_child_values<P>( &mut self, __processor: &mut P, __state: &ProcessingState<'_> ) -> ProcessingResult
where - P: Processor,

Recurses into children of this value.
source§

impl StructuralPartialEq for SpanData

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + P: Processor,

Recurses into children of this value.

source§

impl StructuralPartialEq for SpanData

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DynClone for T
where diff --git a/relay_monitors/fn.process_check_in.html b/relay_monitors/fn.process_check_in.html index ab1054adb2..9fe336bc31 100644 --- a/relay_monitors/fn.process_check_in.html +++ b/relay_monitors/fn.process_check_in.html @@ -1,5 +1,5 @@ process_check_in in relay_monitors - Rust

Function relay_monitors::process_check_in

source ·
pub fn process_check_in(
     payload: &[u8],
-    project_id: ProjectId
+    project_id: ProjectId
 ) -> Result<ProcessedCheckInResult, ProcessCheckInError>
Expand description

Normalizes a monitor check-in payload.

\ No newline at end of file diff --git a/relay_spans/fn.otel_to_sentry_span.html b/relay_spans/fn.otel_to_sentry_span.html index ca3aacb97c..d3b789fc70 100644 --- a/relay_spans/fn.otel_to_sentry_span.html +++ b/relay_spans/fn.otel_to_sentry_span.html @@ -1,2 +1,2 @@ -otel_to_sentry_span in relay_spans - Rust

Function relay_spans::otel_to_sentry_span

source ·
pub fn otel_to_sentry_span(otel_span: Span) -> Span
Expand description

Transform an OtelSpan to a Sentry span.

+otel_to_sentry_span in relay_spans - Rust

Function relay_spans::otel_to_sentry_span

source ·
pub fn otel_to_sentry_span(otel_span: Span) -> Span
Expand description

Transform an OtelSpan to a Sentry span.

\ No newline at end of file diff --git a/search-index.js b/search-index.js index 768c0b0d60..eb9932efc8 100644 --- a/search-index.js +++ b/search-index.js @@ -15,7 +15,7 @@ var searchIndex = new Map(JSON.parse('[\ ["relay_dashboard",{"t":"FSFFPGFPFPOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNCHNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNFFONNNNNNNNNNNNONNNNNNCOHNNNONNNNONNNONHFJNNHNNNNNNNONNNOH","n":["Logs","MAX_LOG_SIZE","Main","MenuBar","NotFound","Route","Stats","Stats","Tools","Tools","_marker","_marker","_marker","_marker","_marker","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","changed","changed","changed","changed","changed","clone","clone_into","create","create","create","create","create","default","destroy","destroy","destroy","destroy","destroy","eq","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_path","function_component","function_component","function_component","function_component","function_component","into","into","into","into","into","into","into_prop_value","into_prop_value","into_prop_value","into_prop_value","into_prop_value","into_prop_value","into_prop_value","into_prop_value","into_prop_value","into_prop_value","into_prop_value","into_prop_value","main","not_found_route","prepare_state","prepare_state","prepare_state","prepare_state","prepare_state","recognize","rendered","rendered","rendered","rendered","rendered","routes","run","run","run","run","run","stats","switch","to_owned","to_path","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","update","update","update","update","update","utils","view","view","view","view","view","Metric","Stats","_marker","borrow","borrow","borrow_mut","borrow_mut","changed","create","destroy","eq","fmt","fmt","from","from","function_component","into","into","into_prop_value","into_prop_value","into_prop_value","into_prop_value","js","name","parse_metric","prepare_state","rendered","run","tags","try_from","try_from","try_into","try_into","ty","type_id","type_id","update","value","view","update_chart","AutoSocket","RELAY_URL","borrow","borrow_mut","buffering_socket","from","into","into_prop_value","into_prop_value","next","open","reconnect","socket","try_from","try_into","type_id","url","window_location"],"q":[[0,"relay_dashboard"],[133,"relay_dashboard::stats"],[172,"relay_dashboard::stats::js"],[173,"relay_dashboard::utils"],[191,"yew::html::component"],[192,"core::fmt"],[193,"std::collections::hash::map"],[194,"core::option"],[195,"alloc::string"],[196,"alloc::vec"],[197,"yew::functional"],[198,"yew::html"],[199,"core::result"],[200,"core::any"],[201,"core::time"],[202,"core::ops::function"]],"i":[0,0,0,0,8,0,0,8,0,8,1,4,5,6,7,8,1,4,5,6,7,8,1,4,5,6,7,1,4,5,6,7,8,8,1,4,5,6,7,8,1,4,5,6,7,8,1,4,5,6,7,8,1,4,5,6,7,8,1,4,5,6,7,8,1,4,5,6,7,8,8,1,1,4,4,5,5,6,6,7,7,0,8,1,4,5,6,7,8,1,4,5,6,7,8,1,4,5,6,7,0,0,8,8,8,1,4,5,6,7,8,1,4,5,6,7,8,1,4,5,6,7,1,4,5,6,7,0,1,4,5,6,7,0,0,22,22,23,22,23,22,22,22,23,22,23,22,23,22,22,23,22,22,23,23,0,23,0,22,22,22,23,22,23,22,23,23,22,23,22,23,22,0,0,0,27,27,0,27,27,27,27,27,27,27,27,27,27,27,27,0],"f":"```````````````{ce{}{}}00000000000{{b{d{b}}c}f{}}{{h{d{h}}c}f{}}{{j{d{j}}c}f{}}{{l{d{l}}c}f{}}{{n{d{n}}c}f{}}{A`A`}{{ce}Ab{}{}}{{{d{b}}}b}{{{d{h}}}h}{{{d{j}}}j}{{{d{l}}}l}{{{d{n}}}n}{{}A`}{{b{d{b}}}Ab}{{h{d{h}}}Ab}{{j{d{j}}}Ab}{{l{d{l}}}Ab}{{n{d{n}}}Ab}{{A`A`}f}{{bAd}Af}{{hAd}Af}{{jAd}Af}{{lAd}Af}{{nAd}Af}{cc{}}00000{{Ah{Aj{AhAh}}}{{Al{A`}}}}`````{ce{}{}}00000{c{{Al{e}}}{}{}}10101101001{{}Ab}{{}{{Al{A`}}}}{b{{Al{An}}}}{h{{Al{An}}}}{j{{Al{An}}}}{l{{Al{An}}}}{n{{Al{An}}}}{Ah{{Al{A`}}}}{{b{d{b}}f}Ab}{{h{d{h}}f}Ab}{{j{d{j}}f}Ab}{{l{d{l}}f}Ab}{{n{d{n}}f}Ab}{{}{{B`{Ah}}}}{{Bbc}Bd{}}0000`{A`Bf}{ce{}{}}{A`An}{c{{Bh{e}}}{}{}}00000000000{cBj{}}00000{{b{d{b}}c}f{}}{{h{d{h}}c}f{}}{{j{d{j}}c}f{}}{{l{d{l}}c}f{}}{{n{d{n}}c}f{}}`{{b{d{b}}}Bd}{{h{d{h}}}Bd}{{j{d{j}}}Bd}{{l{d{l}}}Bd}{{n{d{n}}}Bd}```===={{Bl{d{Bl}}c}f{}}{{{d{Bl}}}Bl}{{Bl{d{Bl}}}Ab}{{BnBn}f}{{BlAd}Af}{{BnAd}Af}{cc{}}0`{ce{}{}}0{c{{Al{e}}}{}{}}110``{AhBn}{Bl{{Al{An}}}}{{Bl{d{Bl}}f}Ab}{{Bbc}Bd{}}`{c{{Bh{e}}}{}{}}000`{cBj{}}0>`{{Bl{d{Bl}}}Bd}{{AhAhAhC`}Ab}``99{{AnCbc}Ab{{Cd{{B`{An}}}}}};:9:{CfAn}{AnCf}{CfAb}`776`{{}An}","D":"Bn","p":[[5,"MenuBar",0],[5,"Context",191],[1,"bool"],[5,"Tools",0],[5,"Main",0],[5,"Stats",0],[5,"Logs",0],[6,"Route",0],[1,"unit"],[5,"Formatter",192],[8,"Result",192],[1,"str"],[5,"HashMap",193],[6,"Option",194],[5,"String",195],[5,"Vec",196],[5,"HookContext",197],[8,"HtmlResult",198],[8,"Html",198],[6,"Result",199],[5,"TypeId",200],[5,"Stats",133],[5,"Metric",133],[1,"f32"],[5,"Duration",201],[10,"Fn",202],[5,"AutoSocket",173]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAKgACAAAADMAOgAFAEYATACVAAAAmAAVAK8AAgC1AAEAuQAFAA=="}],\ ["relay_dynamic_config",{"t":"GPPGFGPFPFPPPPTPPGPPPFGFPFGPPFPTFFFFFFPFPPPPFFPPPPPPPPPFFFGFFFFPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOHOOONNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNONNNOOOOOOOOOOONOOOOOONNNHNONNOOOONOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNOONNOOOONOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AcceptTransactionNames","Array","Base64","BucketEncoding","BucketEncodings","CardinalityLimiterMode","ClientBased","CombinedMetricExtractionConfig","ContinuousProfiling","CustomMeasurementConfig","CustomMetrics","DeviceClassSynthesis","Disabled","DiscardTransaction","EMPTY","Enabled","Err","ErrorBoundary","ExtractAddonsSpanMetricsFromEvent","ExtractCommonSpanMetricsFromEvent","ExtractSpansFromEvent","ExtrapolationConfig","Feature","FeatureSet","Field","GlobalConfig","GroupKey","IngestUnsampledProfiles","Legacy","LimitedProjectConfig","Literal","MAX_SUPPORTED_VERSION","MetricExtractionConfig","MetricExtractionGroup","MetricExtractionGroupOverride","MetricExtractionGroups","MetricSpec","Metrics","Ok","Options","OtelEndpoint","Other","Passive","Profiling","ProjectConfig","SessionMetricsConfig","SessionReplay","SessionReplayCombinedEnvelopeItems","SessionReplayRecordingScrubbing","SessionReplayVideoDisabled","SpanMetricsAddons","SpanMetricsCommon","SpanMetricsTx","StandaloneSpanIngestion","Strict","Tag","TagBlock","TagMapping","TagSource","TagSpec","TagWithSource","TaggingRule","TransactionMetricsConfig","Unknown","UserReportV2Ingest","Zstd","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","_conditional_tags_extended","_span_metrics_extended","ai_model_costs","allowed_domains","allowed_domains","always","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","breakdowns_v2","breakdowns_v2","cardinality_limiter_error_sample_rate","cardinality_limiter_mode","cardinality_limits","category","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","compare","compare","condition","condition","condition","convert_conditional_tagging","custom_measurements","datascrubbing_settings","datascrubbing_settings","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","denied_names","denied_tags","deprecated1","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","empty","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","event_retention","exclude","extract_custom_tags","extrapolate","extrapolation_duplication_limit","features","features","feedback_ingest_topic_rollout_rate","field","field","filter_settings","filter_settings","filters","filters","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_namespace","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_field","from_iter","from_str","get_hash","get_or_insert_with","global_groups","grouping_config","groups","has","hash","include","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_disabled","is_empty","is_empty","is_empty","is_empty","is_enabled","is_enabled","is_enabled","is_enabled","is_enabled","is_err","is_ok","is_supported","key","load","matches","matches","measurements","measurements","measurements","metric_bucket_dist_encodings","metric_bucket_set_encodings","metric_conditional_tagging","metric_conditional_tagging","metric_extraction","metric_extraction","metric_extraction","metric_stats_rollout_rate","metrics","metrics","metrics","metrics","metrics","mri","name","new","new","normalize","normalize_json","ok","options","partial_cmp","partial_cmp","performance_score","performance_score","pii_config","pii_config","produces_spans","profile_metrics_allowed_platforms","profile_metrics_sample_rate","profiles_function_generic_metrics_enabled","quotas","quotas","sampling","sampling","sanitize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","session_metrics","session_metrics","should_extract_abnormal_mechanism","source","span_description_rules","span_description_rules","span_extraction_sample_rate","tag_value","tags","tags","tags","tags","tags","tags","target_metrics","target_tag","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","transaction_metrics","transaction_metrics","trusted_relays","trusted_relays","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","tx_name_ready","tx_name_ready","tx_name_rules","tx_name_rules","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unsampled_profiles_enabled","unwrap_or_else","value","version","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","when","with_key","with_value"],"q":[[0,"relay_dynamic_config"],[707,"dyn_clone::sealed"],[708,"relay_dynamic_config::metrics"],[709,"relay_dynamic_config::error_boundary"],[710,"core::clone"],[711,"relay_dynamic_config::feature"],[712,"relay_dynamic_config::global"],[713,"relay_dynamic_config::project"],[714,"core::cmp"],[715,"core::default"],[716,"core::result"],[717,"serde::de"],[718,"erased_serde::ser"],[719,"erased_serde::error"],[720,"relay_filter::config"],[721,"core::option"],[722,"core::fmt"],[723,"relay_base_schema::metrics::mri"],[724,"alloc::string"],[725,"core::convert"],[726,"core::iter::traits::collect"],[727,"core::hash"],[728,"core::marker"],[729,"core::ops::function"],[730,"std::path"],[731,"anyhow"],[732,"core::iter::traits::iterator"],[733,"serde::ser"],[734,"core::any"],[735,"core::error"],[736,"relay_protocol::condition"],[737,"relay_dynamic_config::utils"]],"i":[0,13,13,0,0,0,19,0,7,0,7,7,11,7,22,11,5,0,7,7,7,0,0,0,29,0,0,7,13,0,29,24,0,0,0,0,0,0,5,0,7,26,11,7,0,0,7,7,7,7,26,26,26,7,19,0,0,0,0,0,0,0,0,29,7,13,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,24,24,9,31,46,3,48,3,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,46,48,3,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,46,31,46,10,10,14,27,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,7,26,7,26,16,27,4,0,20,31,46,5,8,9,10,11,12,13,14,15,17,18,19,20,22,24,25,30,31,14,14,20,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,4,30,31,24,7,8,10,11,12,13,14,15,19,26,4,29,7,7,7,7,7,8,8,8,8,8,26,26,26,26,26,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,4,30,31,31,30,20,24,10,31,46,10,27,4,31,46,9,9,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,26,27,28,4,29,30,31,46,12,48,3,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,21,22,23,24,25,26,27,28,4,29,30,31,46,48,8,26,7,5,24,31,22,8,7,30,48,3,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,46,17,8,14,22,30,17,20,24,23,25,5,5,24,4,9,28,30,9,31,46,10,10,31,46,9,31,46,10,21,23,24,28,31,27,15,20,21,9,0,5,9,7,26,31,46,31,46,8,10,10,10,9,31,31,46,31,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,23,24,25,26,27,28,4,30,31,46,31,46,17,4,31,46,10,16,21,15,23,24,27,28,16,16,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,26,31,46,31,46,48,3,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,46,48,3,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,46,31,46,31,46,48,3,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,46,10,5,4,20,24,48,3,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,4,29,30,31,46,3,48,48],"f":"``````````````````````````````````````````````````````````````````{{cb}d{}}00000000000000000000000000`````{fh}{ce{}{}}00000000000000000000000000000000000000000000000000000000000``````{{{j{c}}}{{j{c}}}l}{nn}{A`A`}{AbAb}{AdAd}{AfAf}{AhAh}{AjAj}{AlAl}{AnAn}{B`B`}{BbBb}{BdBd}{BfBf}{BhBh}{BjBj}{BlBl}{BnBn}{C`C`}{CbCb}{CdCd}{CfCf}{ChCh}{hh}{CjCj}{ClCl}{CnCn}{{ce}d{}{}}00000000000000000000000000{{nn}D`}{{CdCd}D`}{{ce}D`{}{}}0```{Cnd}```{{}{{j{c}}}Db}{{}A`}{{}Ab}{{}Ad}{{}Af}{{}Ah}{{}Aj}{{}Al}{{}An}{{}Bb}{{}Bd}{{}Bf}{{}Bh}{{}Bl}{{}C`}{{}Cb}{{}Cl}{{}Cn}```{c{{Dd{{j{e}}}}}DfDh}{c{{Dd{n}}}Df}{c{{Dd{A`}}}Df}{c{{Dd{Ab}}}Df}{c{{Dd{Ad}}}Df}{c{{Dd{Af}}}Df}{c{{Dd{Ah}}}Df}{c{{Dd{Aj}}}Df}{c{{Dd{Al}}}Df}{c{{Dd{An}}}Df}{c{{Dd{B`}}}Df}{c{{Dd{Bb}}}Df}{c{{Dd{Bd}}}Df}{c{{Dd{Bf}}}Df}{c{{Dd{Bh}}}Df}{c{{Dd{Bl}}}Df}{c{{Dd{Bn}}}Df}{c{{Dd{C`}}}Df}{c{{Dd{Cb}}}Df}{c{{Dd{Cd}}}Df}{c{{Dd{Cf}}}Df}{c{{Dd{Ch}}}Df}{c{{Dd{h}}}Df}{c{{Dd{Cl}}}Df}{c{{Dd{Cn}}}Df}{{}C`}{{nn}Dj}{{A`A`}Dj}{{AdAd}Dj}{{AfAf}Dj}{{AhAh}Dj}{{AjAj}Dj}{{AlAl}Dj}{{AnAn}Dj}{{BfBf}Dj}{{CdCd}Dj}{{hh}Dj}{{CjCj}Dj}{{ce}Dj{}{}}00000000000000{{cDl}{{Dd{DnE`}}}{}}000000000000000000000000````````````{Ab{{Ed{Eb}}}}`{{{j{c}}Ef}EhEj}{{nEf}Eh}{{A`Ef}Eh}{{AbEf}Eh}{{AdEf}Eh}{{AfEf}Eh}{{AhEf}Eh}{{AjEf}Eh}{{AlEf}Eh}{{AnEf}Eh}{{B`Ef}Eh}{{BbEf}Eh}{{BdEf}Eh}{{BfEf}Eh}{{BhEf}Eh}{{BjEf}Eh}{{BlEf}Eh}{{BnEf}Eh}{{C`Ef}Eh}{{CbEf}Eh}{{CdEf}Eh}0{{CfEf}Eh}{{ChEf}Eh}{{hEf}Eh}{{CjEf}Eh}{{ClEf}Eh}{{CnEf}Eh}{{ElEf}Eh}{{AhEn}Aj}{cc{}}0000000000000000{C`Bj}1111111111111{{F`c}f{{Fd{Fb}}}}{cA`{{Fh{}{{Ff{n}}}}}}{Fj{{Dd{Cdc}}}{}}{{ce}Fl{FnG`}Gb}{{{j{c}}e}c{}{{Gf{}{{Gd{c}}}}}}```{{A`n}Dj}{{nc}dGh}`{ce{}{}}00000000000000000000000000000{BbDj}{A`Dj}{AlDj}{BlDj}{ClDj}4{BhDj}{C`Dj}``{{{j{c}}}Dj{}}01`{Gj{{Gl{{Ed{Ab}}}}}}{{ChFj}Dj}{{ClFj}Dj}```````````{Bj{{`{{Gn{}{{Ff{Cf}}}}}}}}``````{{}Bh}{{BlC`}Bj}{Abd}{Fj{{Gl{Fb}}}}{{{j{c}}}{{Ed{c}}}{}}`{{nn}{{Ed{D`}}}}{{CdCd}{{Ed{D`}}}}````{A`Dj}```````{Cnd}{{{j{c}}e}DdH`Hb}{{nc}DdHb}{{A`c}DdHb}{{Abc}DdHb}{{Adc}DdHb}{{Afc}DdHb}{{Ahc}DdHb}{{Ajc}DdHb}{{Alc}DdHb}{{Anc}DdHb}{{B`c}DdHb}{{Bbc}DdHb}{{Bdc}DdHb}{{Bfc}DdHb}{{Bhc}DdHb}{{Blc}DdHb}{{Bnc}DdHb}{{C`c}DdHb}{{Cbc}DdHb}{{Cdc}DdHb}{{Cfc}DdHb}{{Chc}DdHb}{{hc}DdHb}{{Clc}DdHb}{{Cnc}DdHb}0``{BbDj}{hCj}````{Bj{{`{{Gn{}{{Ff{Ch}}}}}}}}```````{ce{}{}}00000000000000000000000000{cFb{}}````{c{{Dd{e}}}{}{}}00000000000000000000000000000000000000000000000000000000000````{cHd{}}00000000000000000000000000000`{{{j{c}}e}c{}{{Gf{Hf}{{Gd{c}}}}}}```444444444444444444444444444444{{fHh}h}{cF`{{Fd{Fb}}}}{{F`c}f{{Fd{Fb}}}}","D":"ANh","p":[[5,"Private",707],[1,"unit"],[5,"TagWithSource",0,708],[5,"TagSpec",0,708],[6,"ErrorBoundary",0,709],[10,"Clone",710],[6,"Feature",0,711],[5,"FeatureSet",0,711],[5,"GlobalConfig",0,712],[5,"Options",0,712],[6,"CardinalityLimiterMode",0,712],[5,"BucketEncodings",0,712],[6,"BucketEncoding",0,712],[5,"Metrics",0,708],[5,"TagBlock",0,708],[5,"TaggingRule",0,708],[5,"SessionMetricsConfig",0,708],[5,"CustomMeasurementConfig",0,708],[6,"AcceptTransactionNames",0,708],[5,"TransactionMetricsConfig",0,708],[5,"CombinedMetricExtractionConfig",0,708],[5,"MetricExtractionGroups",0,708],[5,"MetricExtractionGroup",0,708],[5,"MetricExtractionConfig",0,708],[5,"MetricExtractionGroupOverride",0,708],[6,"GroupKey",0,708],[5,"MetricSpec",0,708],[5,"TagMapping",0,708],[6,"TagSource",0,708],[5,"ExtrapolationConfig",0,708],[5,"ProjectConfig",0,713],[6,"Ordering",714],[10,"Default",715],[6,"Result",716],[10,"Deserializer",717],[10,"Deserialize",717],[1,"bool"],[10,"Serializer",718],[5,"Ok",718],[5,"Error",719],[5,"GenericFiltersConfig",720],[6,"Option",721],[5,"Formatter",722],[8,"Result",722],[10,"Debug",722],[5,"LimitedProjectConfig",0,713],[6,"MetricNamespace",723],[5,"Tag",0,708],[5,"String",724],[10,"Into",725],[17,"Item"],[10,"IntoIterator",726],[1,"str"],[1,"u64"],[10,"Hash",727],[10,"Sized",728],[10,"BuildHasher",727],[17,"Output"],[10,"FnOnce",729],[10,"Hasher",727],[5,"Path",730],[8,"Result",731],[10,"Iterator",732],[10,"Serialize",733],[10,"Serializer",733],[5,"TypeId",734],[10,"Error",735],[6,"RuleCondition",736]],"r":[[0,708],[3,712],[4,712],[5,712],[7,708],[9,708],[17,709],[21,708],[22,711],[23,711],[25,712],[26,708],[29,713],[32,708],[33,708],[34,708],[35,708],[36,708],[37,708],[39,712],[44,713],[45,708],[55,708],[56,708],[57,708],[58,708],[59,708],[60,708],[61,708],[62,708],[226,708],[483,737]],"b":[[363,"impl-Display-for-GroupKey"],[364,"impl-Debug-for-GroupKey"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAM8BGwBDABoAYgAAAGQAOwChAAAApgA5AOYAEgD8ABgAFgEzAFABAABVAQAAWAEcAJYBAgCeAQAA0QEAANUBAADYAQAA5wEBAOoBAADsAQAA9AEAAPYBGQARAgAAIAIbAD0CAAA/AjwAfwIeAKMCHQA="}],\ ["relay_event_derive",{"t":"Y","n":["ProcessValue"],"q":[[0,"relay_event_derive"]],"i":[0],"f":"`","D":"d","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ -["relay_event_normalization",{"t":"PGFFFFFPFIFPPPTPFFFFFFFFGFPFFFPFFFFFFFPPNNNNNNNNNNNNNNNONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCONOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOCNONNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNHOHOONNNNONOOOOOOONOCNNNNNHHHHHOHHOHONOOOOOONNNNNNNNNNNNNNNNNNNNNOOOOOOOCOCOOOOOOONNNNNNNNNNNHCOONNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCOOCHHHHOONNNNNNNNNNNNNNNNNNNNNNOOGFPFFPNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNONHNNNONNNNNNNNNNNNNNNNNNNNHHHPPPPGNNNNNNNHNNNNNHNHCCCCHHHHHHHHPPPPPPPPPPPPPJPPPPPPPPPPPPPPPPPPGPPPPPPPPPPPPPPNNNNNNNNNNNNNHHHHNNNNNNNNNNFFTTTTTNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNHHNOOOONNNNNNNNNNNONNSSSHHHHH","n":["AddressNotFoundError","BreakdownConfig","BreakdownsConfig","BuiltinMeasurementKey","ClientHints","ClockDriftProcessor","CombinedMeasurementsConfig","DecodingError","EventValidationConfig","GeoIpError","GeoIpLookup","InvalidDatabaseError","InvalidNetworkError","IoError","MEASUREMENT_MRI_OVERHEAD","MapError","MeasurementsConfig","ModelCost","ModelCosts","NormalizationConfig","PerformanceScoreConfig","PerformanceScoreProfile","PerformanceScoreWeightedComponent","RawUserAgentInfo","RedactionRule","RemoveOtherProcessor","Replace","SchemaProcessor","SpanDescriptionRule","SpanDescriptionRuleScope","SpanOperations","SpanOperationsConfig","TimeWindowSpan","TimestampProcessor","TransactionNameConfig","TransactionNameRule","TransactionsProcessor","TrimmingProcessor","Unknown","Unsupported","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","after_process","ai_model_costs","allow_negative","apply_transaction_rename_rules","at_least","before_process","before_process","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","breakdowns","breakdowns_config","builtin_measurement_keys","builtin_measurements","client","client_hints","client_ip","client_sample_rate","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","condition","contexts","cost_per_1k_tokens","costs","default","default","default","default","default","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","device_class_synthesis_config","emit_event_errors","enable_trimming","end","enrich_spans","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","error_kind","expiry","expiry","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","geoip_lookup","get_hash","get_hash","grouping_config","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_drifted","is_enabled","is_high_cardinality_sdk","is_renormalize","is_valid_platform","is_validated","key_id","lookup","match_and_apply","match_and_apply","matches","matches","max_custom_measurements","max_custom_measurements","max_name_and_unit_len","max_secs_in_future","max_secs_in_past","max_tag_value_length","measurement","measurements","name","name","nel","new","new","new","new","new","normalize_app_start_spans","normalize_breakdowns","normalize_event","normalize_measurements","normalize_performance_score","normalize_spans","normalize_transaction_name","normalize_user_agent","normalize_user_agent","normalize_user_agent_info_generic","op","open","optional","p10","p50","pattern","pattern","performance_score","process_array","process_array","process_breadcrumb","process_breadcrumb","process_datetime","process_event","process_event","process_event","process_event","process_object","process_object","process_other","process_raw_stacktrace","process_replay","process_span","process_span","process_string","process_string","process_timestamp","process_timestamp","process_value","profiles","project_id","protocol_version","received_at","redaction","redaction","remove_other","replay","replay_id","request","rules","scope","score_components","sec_ch_ua","sec_ch_ua_model","sec_ch_ua_platform","sec_ch_ua_platform_version","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_default_transaction_source","span","span_description_rules","start","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","transaction_name_config","transaction_timestamp_range","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unit","user_agent","user_agent","user_agent","utils","validate_environment","validate_event","validate_release","validate_span","version","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","weight","substitution","BreakdownConfig","BreakdownsConfig","SpanOperations","SpanOperationsConfig","TimeWindowSpan","Unsupported","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","deref","deserialize","deserialize","deserialize","duration","end","erased_serialize","erased_serialize","erased_serialize","fmt","fmt","fmt","fmt","from","from","from","from","into","into","into","into","matches","new","normalize_breakdowns","serialize","serialize","serialize","start","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","get_android_api_version","normalize_context","enrich_event","CouldNotParse","CouldNotScrub","InvalidPayload","NoContent","ReplayError","borrow","borrow_mut","fmt","fmt","from","from","into","normalize","source","to_string","try_from","try_into","type_id","validate","vzip","normalize_request","ai","description","exclusive_time","tag_extraction","extract_ai_measurements","normalize_ai_measurements","concatenate_host_and_port","scrub_domain_name","scrub_host","scrub_ipv4","scrub_ipv6","compute_span_exclusive_time","AIPipelineGroup","Action","AppStartType","BrowserName","CacheHit","CacheKey","Category","Description","DeviceClass","Domain","Environment","FileExtension","Group","HTTP_METHOD_EXTRACTOR_REGEX","HttpDecodedResponseContentLength","HttpResponseContentLength","HttpResponseTransferSize","MainThread","MessagingDestinationName","MessagingMessageId","Mobile","OsName","Platform","ProfilerId","RawDomain","Release","ReplayId","ResourceRenderBlockingStatus","SdkName","SdkVersion","SpanOp","SpanStatus","SpanTagKey","StatusCode","System","ThreadId","ThreadName","TimeToFullDisplay","TimeToInitialDisplay","TraceStatus","Transaction","TransactionMethod","TransactionOp","User","UserEmail","UserID","UserUsername","__clone_box","borrow","borrow_mut","clone","clone_into","cmp","compare","eq","equivalent","equivalent","equivalent","equivalent","equivalent","extract_measurements","extract_segment_span_tags","extract_span_tags","extract_tags","fmt","from","into","partial_cmp","sentry_tag_key","to_owned","try_from","try_into","type_id","vzip","ClientHints","RawUserAgentInfo","SEC_CH_UA","SEC_CH_UA_MODEL","SEC_CH_UA_PLATFORM","SEC_CH_UA_PLATFORM_VERSION","USER_AGENT","__clone_box","__clone_box","as_deref","as_deref","borrow","borrow","borrow_mut","borrow_mut","client_hints","clone","clone","clone_into","clone_into","copy_from","default","default","deserialize","deserialize","eq","eq","erased_serialize","erased_serialize","fmt","fmt","from","from","from_headers","into","into","is_empty","is_empty","normalize_user_agent","normalize_user_agent_info_generic","populate_event_headers","sec_ch_ua","sec_ch_ua_model","sec_ch_ua_platform","sec_ch_ua_platform_version","serialize","serialize","set_ua_field_from_header","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","user_agent","vzip","vzip","MAIN_THREAD_NAME","MAX_DURATION_MOBILE_MS","MOBILE_SDKS","calculate_cdf_score","extract_http_status_code","extract_transaction_op","get_event_user_tag","http_status_code_from_span"],"q":[[0,"relay_event_normalization"],[497,"relay_event_normalization::RedactionRule"],[498,"relay_event_normalization::breakdowns"],[573,"relay_event_normalization::contexts"],[575,"relay_event_normalization::nel"],[576,"relay_event_normalization::replay"],[596,"relay_event_normalization::request"],[597,"relay_event_normalization::span"],[601,"relay_event_normalization::span::ai"],[603,"relay_event_normalization::span::description"],[608,"relay_event_normalization::span::exclusive_time"],[609,"relay_event_normalization::span::tag_extraction"],[683,"relay_event_normalization::user_agent"],[742,"relay_event_normalization::utils"],[750,"dyn_clone::sealed"],[751,"relay_event_normalization::trimming"],[752,"core::option"],[753,"relay_protocol::meta"],[754,"relay_event_schema::processor::attrs"],[755,"relay_event_schema::processor::traits"],[756,"relay_event_normalization::normalize"],[757,"alloc::string"],[758,"relay_protocol::annotated"],[759,"relay_event_normalization::transactions::rules"],[760,"relay_event_normalization::clock_drift"],[761,"core::time"],[762,"relay_event_normalization::schema"],[763,"core::iter::traits::iterator"],[764,"relay_event_normalization::event"],[765,"relay_event_normalization::transactions::processor"],[766,"relay_event_normalization::validation"],[767,"core::result"],[768,"serde::de"],[769,"erased_serde::ser"],[770,"erased_serde::error"],[771,"relay_event_normalization::geo"],[772,"core::fmt"],[773,"core::hash"],[774,"core::marker"],[775,"relay_event_schema::protocol::event"],[776,"relay_event_schema::protocol::user"],[777,"alloc::borrow"],[778,"chrono::offset::utc"],[779,"chrono::datetime"],[780,"relay_base_schema::metrics::units"],[781,"core::convert"],[782,"relay_event_normalization::normalize::breakdowns"],[783,"relay_event_schema::protocol::measurements"],[784,"relay_event_schema::protocol::types"],[785,"relay_event_schema::protocol::contexts"],[786,"relay_event_normalization::normalize::user_agent"],[787,"std::path"],[788,"relay_protocol::value"],[789,"relay_event_normalization::remove_other"],[790,"relay_event_schema::protocol::breadcrumb"],[791,"relay_event_normalization::timestamp"],[792,"relay_event_schema::protocol::stacktrace"],[793,"relay_event_schema::protocol::replay"],[794,"relay_event_schema::protocol::span"],[795,"relay_common::time"],[796,"serde::ser"],[797,"core::any"],[798,"sentry_release_parser::parser"],[799,"core::ops::range"],[800,"relay_event_schema::protocol::nel"],[801,"serde_json::error"],[802,"core::net::ip_addr"],[803,"core::error"],[804,"relay_event_schema::protocol::request"],[805,"url::host"],[806,"relay_event_normalization::normalize::span::tag_extraction"],[807,"core::cmp"],[808,"alloc::collections::btree::map"],[809,"core::clone"],[810,"core::default"],[811,"relay_event_schema::protocol::contexts::trace"],[812,"relay_event_normalization::normalize::contexts"],[813,"relay_event_normalization::normalize::nel"],[814,"relay_event_normalization::normalize::request"],[815,"relay_event_normalization::normalize::span"],[816,"relay_event_normalization::normalize::span::ai"],[817,"relay_event_normalization::normalize::span::description"],[818,"relay_event_normalization::normalize::span::exclusive_time"],[819,"relay_event_normalization::normalize::utils"]],"i":[52,0,0,0,0,0,0,52,0,0,0,52,52,52,22,52,0,0,0,0,0,0,0,0,0,0,30,0,0,0,83,0,0,0,0,0,0,0,30,83,21,9,22,18,23,24,25,26,27,28,29,30,31,13,3,21,9,0,15,17,3,42,67,17,69,15,21,9,22,18,23,24,25,26,27,28,34,29,30,31,13,3,35,42,67,17,69,15,21,9,22,18,23,24,25,26,27,28,34,29,30,31,13,3,35,0,21,18,22,21,63,21,21,21,9,22,18,23,24,25,26,27,28,29,30,31,13,21,9,22,18,23,24,25,26,27,28,29,30,31,13,24,0,26,26,21,9,22,23,24,25,26,28,34,29,30,3,35,9,22,23,24,25,26,27,29,30,31,13,21,21,21,81,21,9,22,29,30,13,9,9,9,9,9,29,29,29,29,29,30,30,30,30,30,13,13,13,13,13,9,22,23,24,25,26,27,29,30,31,13,15,31,13,42,15,21,9,22,18,23,24,25,26,27,28,34,29,30,31,13,35,42,67,17,69,15,21,9,22,18,23,24,25,26,27,28,34,29,30,31,31,13,3,35,21,9,22,21,9,22,42,67,17,69,15,21,9,22,18,23,24,25,26,27,28,34,29,30,31,13,3,35,15,26,0,21,0,35,21,42,31,13,27,82,18,22,21,35,35,21,23,21,9,24,0,15,9,18,34,3,0,0,0,0,0,21,0,0,21,0,29,42,23,23,23,31,13,21,17,3,67,69,15,67,69,15,34,17,3,67,3,3,69,34,17,3,15,15,3,25,21,21,35,31,13,21,0,21,0,28,31,24,98,98,98,98,9,22,23,24,25,26,27,29,30,31,13,0,0,21,81,21,9,22,18,23,24,25,26,27,28,29,30,31,13,21,35,42,67,17,69,15,21,9,22,18,23,24,25,26,27,28,34,29,30,31,13,3,35,42,67,17,69,15,21,9,22,18,23,24,25,26,27,28,34,29,30,31,13,3,35,42,67,17,69,15,21,9,22,18,23,24,25,26,27,28,34,29,30,31,13,3,35,9,0,21,63,0,0,0,0,0,24,26,42,67,17,69,15,21,9,22,18,23,24,25,26,27,28,34,29,30,31,13,3,35,23,108,0,0,83,0,0,83,81,82,83,59,81,82,83,59,81,82,83,59,81,82,83,59,81,82,83,59,59,59,82,83,59,81,81,82,83,59,81,82,83,59,81,82,83,59,81,82,83,59,82,81,0,82,83,59,81,81,82,83,59,81,82,83,59,81,82,83,59,81,82,83,59,81,82,83,59,0,0,0,86,86,86,86,0,86,86,86,86,86,86,86,0,86,86,86,86,86,0,86,0,0,0,0,0,0,0,0,0,0,0,0,0,95,95,95,95,95,95,95,95,95,95,95,95,95,0,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,0,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,0,0,0,0,95,95,95,95,95,95,95,95,95,95,0,0,98,98,98,98,63,63,98,63,98,63,98,63,98,63,63,98,63,98,98,63,98,63,98,63,98,63,98,63,98,63,98,63,63,98,63,98,0,0,63,98,98,98,98,63,98,63,63,98,63,98,63,98,63,98,63,63,98,0,0,0,0,0,0,0,0],"f":"````````````````````````````````````````{{cb}d{}}0000000000000{{f{h{c}}jl}nA`}`{AbAd}{{{Ah{Af}}{Al{Aj}}}d}{{AnB`}An}{{Bb{h{c}}jl}nA`}4{ce{}{}}0000000000000000000000000000000000000000000``{Bd{{`{{Bh{}{{Bf{Ab}}}}}}}}`````{BjBj}{AbAb}{BlBl}{BdBd}{BnBn}{C`C`}{CbCb}{CdCd}{CfCf}{ChCh}{CjCj}{ClCl}{CnCn}{AjAj}{{ce}d{}{}}0000000000000``{{CdD`Ad}{{h{Db}}}}`{{}Bj}{{}Ab}{{}Bl}{{}Bn}{{}C`}{{}Cb}{{}Cd}{{}Ch}{{}Dd}{{}Cj}{{}Cl}{{}f}{{}Df}{c{{Dh{Ab}}}Dj}{c{{Dh{Bl}}}Dj}{c{{Dh{Bn}}}Dj}{c{{Dh{C`}}}Dj}{c{{Dh{Cb}}}Dj}{c{{Dh{Cd}}}Dj}{c{{Dh{Cf}}}Dj}{c{{Dh{Cj}}}Dj}{c{{Dh{Cl}}}Dj}{c{{Dh{Cn}}}Dj}{c{{Dh{Aj}}}Dj}`````{{AbAb}Ad}{{BlBl}Ad}{{CjCj}Ad}{{ClCl}Ad}{{AjAj}Ad}{{ce}Ad{}{}}0000000000000000000{{cDl}{{Dh{DnE`}}}{}}0000000000{{AnEb}An}``{{EdEf}Eh}{{AnEf}Eh}{{BjEf}Eh}{{AbEf}Eh}{{BlEf}Eh}{{BdEf}Eh}{{BnEf}Eh}{{C`Ef}Eh}{{CbEf}Eh}{{CdEf}Eh}{{CfEf}Eh}{{ChEf}Eh}{{DdEf}Eh}{{CjEf}Eh}{{ClEf}Eh}{{CnEf}Eh}{{AjEf}Eh}{{DfEf}Eh}{cc{}}00000000000000000{AjCn}1111`{{ce}Ej{ElEn}F`}0`{{Abc}dFb}{{Blc}dFb}{ce{}{}}000000000000000000000{AnAd}{CdAd}{FdAd}`{D`Ad}``{{EdD`}{{Dh{{h{Ff}}Fh}}}}{{Cn{Fj{Af}}}{{h{Af}}}}{{Aj{Fj{Af}}}{{h{Af}}}}{{CfD`Ad}Ad}`{Bd{{h{Fl}}}}```````{AbD`}``{{{h{{G`{Fn}}}}{G`{Fn}}}An}{{cGb}Ab{{Gd{Af}}}}{{{h{Bl}}{h{Bl}}}Bd}{ChDd}{{}f}{Fdd}{{FdGf}d}{{{Ah{Fd}}Bj}d}{{Ghj{h{Bd}}{h{Fl}}{h{Gj}}{h{Gj}}}d}{{Fd{h{Cb}}}d}`{{{Ah{Af}}{Al{Aj}}}d}5`{{Gl{Ah{Af}}{Gn{D`}}}d}`{c{{Dh{EdFh}}}{{Hb{H`}}}}``````{{Bb{Hd{c}}jl}nA`}{{f{Hd{c}}jl}nA`}{{HfHhjl}n}{{HjHhjl}n}{{An{G`{Fn}}}d}{{HfFdjl}n}{{HjFdjl}n}{{AnFdjl}n}{{DdFdjl}n}{{Bb{Hl{c}}jl}nA`}{{f{Hl{c}}jl}nA`}{{Hf{Hl{Hn}}l}n}{{fI`jl}n}{{fIbjl}n}{{HjIdjl}n}{{DdIdjl}n}{{BbAfjl}n}{{fAfjl}n}{{AnGjjl}n}{{AnIf}d}{{fHnjl}n}`````````````````{{Abc}DhIh}{{Blc}DhIh}{{Bnc}DhIh}{{C`c}DhIh}{{Cbc}DhIh}{{Cdc}DhIh}{{Cfc}DhIh}{{Cjc}DhIh}{{Clc}DhIh}{{Cnc}DhIh}{{Ajc}DhIh}{Fdd}```{ce{}{}}0000000000000``{c{{Dh{e}}}{}{}}0000000000000000000000000000000000000000000{cIj{}}000000000000000000000{AbGb}````{D`{{Dh{dIl}}}}{{{Ah{Fd}}Df}n}{D`{{Dh{dIn}}}}{{Id{h{{J`{If}}}}}n}``7777777777777777777777````````{{cb}d{}}00088888888{JbJb}{JdJd}{JfJf}{GfGf}{{ce}d{}{}}000{{}Gf}{Gfc{}}{c{{Dh{Jd}}}Dj}{c{{Dh{Jf}}}Dj}{c{{Dh{Gf}}}Dj}{JbB`}`{{cDl}{{Dh{DnE`}}}{}}00{{JbEf}Eh}{{JdEf}Eh}{{JfEf}Eh}{{GfEf}Eh}{cc{}}000{ce{}{}}000`{{GjGj}Jb}{{FdGf}d}{{Jdc}DhIh}{{Jfc}DhIh}{{Gfc}DhIh}`5555{c{{Dh{e}}}{}{}}0000000{cIj{}}0007777{D`{{h{D`}}}}{Jhd}{{Fd{Ah{Jj}}}d}`````::{{JlEf}Eh}0<{JnJl}<{{{Ah{Ib}}{h{K`}}{Gn{D`}}}d}{Jl{{h{Kb}}}}{cAf{}}998{Ib{{Dh{dJl}}}}{ce{}{}}{Kdd}````{{IdCd}d}{{Fd{h{Cd}}}d}{{{h{D`}}{h{Kf}}}{{Fj{D`}}}}{D`{{Fj{D`}}}}{{{Kh{D`}}}{{Fj{D`}}}}{KjD`}{KlD`}{Fdd}```````````````````````````````````````````````{{cb}d{}}::{KnKn}{{ce}d{}{}}{{KnKn}L`}{{ce}L`{}{}}{{KnKn}Ad}{{ce}Ad{}{}}0000{{IdAd}d}{{Fd{Al{{Ah{Id}}}}}d}{{Fd{Al{{Ah{Id}}}}Fl}d}{{IdFl{h{Gj}}{h{Gj}}Ad{h{D`}}}{{Lb{KnAf}}}}{{KnEf}Eh}{cc{}}{ce{}{}}{{KnKn}{{h{L`}}}}{KnD`}2{c{{Dh{e}}}{}{}}0{cIj{}}4```````{{cb}d{}}0{{{Gn{Af}}}{{Gn{D`}}}}{{{Ld{Af}}}{{Ld{D`}}}}7777`{{{Gn{c}}}{{Gn{c}}}{LfLh{Hb{D`}}}}{{{Ld{c}}}{{Ld{c}}}{Lh{Hb{D`}}Lf}}{{ce}d{}{}}0{{{Ld{c}}{Ld{c}}}d{{Hb{D`}}Lh}}{{}{{Gn{c}}}{LhLh{Hb{D`}}}}{{}{{Ld{c}}}{Lh{Hb{D`}}Lh}}{c{{Dh{{Gn{e}}}}}Dj{LjLh{Hb{D`}}}}{c{{Dh{{Ld{e}}}}}Dj{Lh{Hb{D`}}Lj}}{{{Gn{c}}{Gn{c}}}Ad{LlLh{Hb{D`}}}}{{{Ld{c}}{Ld{c}}}Ad{Lh{Hb{D`}}Ll}}{{cDl}{{Dh{DnE`}}}{}}0{{{Gn{c}}Ef}Eh{LnLh{Hb{D`}}}}{{{Ld{c}}Ef}Eh{Lh{Hb{D`}}Ln}}{cc{}}0{M`{{Gn{D`}}}}{ce{}{}}0{{{Gn{c}}}Ad{{Hb{D`}}Lh}}{{{Ld{c}}}Ad{{Hb{D`}}Lh}}{Fdd}{{Gl{Ah{Af}}{Gn{D`}}}d}{{{Gn{c}}M`}d{{Hb{D`}}Lh}}````{{{Gn{c}}e}Dh{MbLh{Hb{D`}}}Ih}{{{Ld{c}}e}Dh{Lh{Hb{D`}}Mb}Ih}{{{Gn{c}}D`{h{c}}}d{{Hb{D`}}Lh}}88{c{{Dh{e}}}{}{}}000{cIj{}}0`::```{{DbDbDb}Db}{Fd{{h{Af}}}}{Md{{h{Af}}}}{Mf{{h{Af}}}}{Id{{h{Af}}}}","D":"BCh","p":[[5,"Private",750],[1,"unit"],[5,"TrimmingProcessor",0,751],[6,"Option",752],[5,"Meta",753],[5,"ProcessingState",754],[8,"ProcessingResult",755],[10,"ProcessValue",755],[5,"BuiltinMeasurementKey",0,756],[1,"bool"],[5,"String",757],[5,"Annotated",758],[5,"TransactionNameRule",0,759],[1,"slice"],[5,"ClockDriftProcessor",0,760],[5,"Duration",761],[5,"SchemaProcessor",0,762],[5,"CombinedMeasurementsConfig",0,756],[17,"Item"],[10,"Iterator",763],[5,"NormalizationConfig",0,764],[5,"MeasurementsConfig",0,756],[5,"PerformanceScoreWeightedComponent",0,756],[5,"PerformanceScoreProfile",0,756],[5,"PerformanceScoreConfig",0,756],[5,"ModelCosts",0,756],[5,"ModelCost",0,756],[5,"TransactionNameConfig",0,765],[5,"SpanDescriptionRuleScope",0,759],[6,"RedactionRule",0,759],[5,"SpanDescriptionRule",0,759],[1,"str"],[1,"f64"],[5,"TransactionsProcessor",0,765],[5,"EventValidationConfig",0,766],[6,"Result",767],[10,"Deserializer",768],[10,"Serializer",769],[5,"Ok",769],[5,"Error",770],[6,"ErrorKind",753],[5,"GeoIpLookup",0,771],[5,"Formatter",772],[8,"Result",772],[1,"u64"],[10,"Hash",773],[10,"Sized",774],[10,"BuildHasher",773],[10,"Hasher",773],[5,"Event",775],[5,"Geo",776],[8,"GeoIpError",0,771],[6,"Cow",777],[1,"usize"],[5,"Utc",778],[5,"DateTime",779],[6,"MetricUnit",780],[10,"Into",781],[5,"BreakdownsConfig",498,782],[5,"Measurements",783],[5,"Timestamp",784],[5,"Contexts",785],[5,"RawUserAgentInfo",683,786],[5,"Path",787],[10,"AsRef",781],[8,"Array",788],[5,"RemoveOtherProcessor",0,789],[5,"Breadcrumb",790],[5,"TimestampProcessor",0,791],[8,"Object",788],[6,"Value",788],[5,"RawStacktrace",792],[5,"Replay",793],[5,"Span",794],[5,"UnixTimestamp",795],[10,"Serializer",796],[5,"TypeId",797],[6,"InvalidEnvironment",798],[6,"InvalidRelease",798],[5,"Range",799],[5,"TimeWindowSpan",498,782],[5,"SpanOperationsConfig",498,782],[6,"BreakdownConfig",498,782],[6,"Context",785],[5,"NetworkReportRaw",800],[6,"ReplayError",576],[5,"Error",801],[6,"IpAddr",802],[10,"Error",803],[5,"Request",804],[1,"u16"],[6,"Host",805],[5,"Ipv4Addr",802],[5,"Ipv6Addr",802],[6,"SpanTagKey",609,806],[6,"Ordering",807],[5,"BTreeMap",808],[5,"ClientHints",683,786],[10,"Clone",809],[10,"Default",810],[10,"Deserialize",768],[10,"PartialEq",807],[10,"Debug",772],[5,"Headers",804],[10,"Serialize",796],[5,"TraceContext",811],[5,"User",776],[15,"Replace",497]],"r":[[1,782],[2,782],[3,756],[4,786],[5,760],[6,756],[8,766],[9,771],[10,771],[16,756],[17,756],[18,756],[19,764],[20,756],[21,756],[22,756],[23,786],[24,759],[25,789],[27,762],[28,759],[29,759],[31,782],[32,782],[33,791],[34,765],[35,759],[36,765],[37,751],[57,765],[105,756],[142,756],[284,765],[286,756],[304,756],[310,756],[311,782],[312,764],[313,764],[314,764],[316,765],[317,786],[319,786],[358,756],[377,765],[378,756],[464,756],[467,756],[468,798],[469,766],[470,798],[471,766],[498,782],[499,782],[501,782],[502,782],[548,782],[573,812],[574,812],[575,813],[596,814],[597,815],[598,815],[599,815],[600,815],[601,816],[602,816],[603,817],[604,817],[605,817],[606,817],[607,817],[608,818],[622,806],[641,806],[669,806],[670,806],[671,806],[672,806],[683,786],[684,786],[721,786],[722,786],[742,819],[743,819],[744,819],[745,819],[746,819],[747,819],[748,819],[749,819]],"b":[[346,"impl-Processor-for-ClockDriftProcessor"],[347,"impl-ClockDriftProcessor"],[583,"impl-Debug-for-ReplayError"],[584,"impl-Display-for-ReplayError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAANIBLQABAAAACAAAAAwAAgAQAAAAKQAOADwALQByABsAkgAXAK8AIwDWABEA+gAAAAABAQADAQEASQEDAE4BDQBdAQAAbwEKAH4BDQCOAUEA2wEVAPkBGAAUAgYAJgICACoCEwBGAgMASwIAAE4CBABUAgAAYwIAAGUCBwBuAgAAcAICAHQCDQCDAgMAiQIUAKICAAClAgAApwIEALMCAQC3AgMAvAIDAMECCQDZAgEA3AIHAOUCAQA="}],\ +["relay_event_normalization",{"t":"PGFFFFFPFKIFPPPTPFFFFFFFFGFPFFFPFFFFFFFPPNNNNNNNNNNNNNNNONHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCOHNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNOCNONNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNHOHOONNNNONOOOOOOONOCNNNNNHHHHHOHHOHONOOOMMOOONNNNNNNNNNNNNNNNNNNNNOOOOOOOCOCOOOOOOONNNNNNNNNNNHCOONNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCOOCHHHHOONNNNNNNNNNNNNNNNNNNNNNOOGFPFFPNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNONHNNNONNNNNNNNNNNNNNNNNNNNHHHPPPPGNNNNNNNHNNNNNHNHCCCCHHHHHHHHPPPPPPPPPPPPPJPPPPPPPPPPPPPPPPPPGPPPPPPPPPPPPPPNNNNNNNNNNNNNHHHHNNNNNNNNNNFKFTTTTTNNNNNNNNHONNNNNNNNNNNNNNNNNNNNNNNNNHHMMNOOOONNNNNNNNNNNONNSSSHHHHH","n":["AddressNotFoundError","BreakdownConfig","BreakdownsConfig","BuiltinMeasurementKey","ClientHints","ClockDriftProcessor","CombinedMeasurementsConfig","DecodingError","EventValidationConfig","FromUserAgentInfo","GeoIpError","GeoIpLookup","InvalidDatabaseError","InvalidNetworkError","IoError","MEASUREMENT_MRI_OVERHEAD","MapError","MeasurementsConfig","ModelCost","ModelCosts","NormalizationConfig","PerformanceScoreConfig","PerformanceScoreProfile","PerformanceScoreWeightedComponent","RawUserAgentInfo","RedactionRule","RemoveOtherProcessor","Replace","SchemaProcessor","SpanDescriptionRule","SpanDescriptionRuleScope","SpanOperations","SpanOperationsConfig","TimeWindowSpan","TimestampProcessor","TransactionNameConfig","TransactionNameRule","TransactionsProcessor","TrimmingProcessor","Unknown","Unsupported","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","after_process","ai_model_costs","allow_negative","apply_transaction_rename_rules","at_least","before_process","before_process","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","breakdowns","breakdowns_config","browser_from_client_hints","builtin_measurement_keys","builtin_measurements","client","client_hints","client_ip","client_sample_rate","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","condition","contexts","cost_per_1k_tokens","costs","default","default","default","default","default","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","device_class_synthesis_config","emit_event_errors","enable_trimming","end","enrich_spans","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","erased_serialize","error_kind","expiry","expiry","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","geoip_lookup","get_hash","get_hash","grouping_config","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","is_drifted","is_enabled","is_high_cardinality_sdk","is_renormalize","is_valid_platform","is_validated","key_id","lookup","match_and_apply","match_and_apply","matches","matches","max_custom_measurements","max_custom_measurements","max_name_and_unit_len","max_secs_in_future","max_secs_in_past","max_tag_value_length","measurement","measurements","name","name","nel","new","new","new","new","new","normalize_app_start_spans","normalize_breakdowns","normalize_event","normalize_measurements","normalize_performance_score","normalize_spans","normalize_transaction_name","normalize_user_agent","normalize_user_agent","normalize_user_agent_info_generic","op","open","optional","p10","p50","parse_client_hints","parse_user_agent","pattern","pattern","performance_score","process_array","process_array","process_breadcrumb","process_breadcrumb","process_datetime","process_event","process_event","process_event","process_event","process_object","process_object","process_other","process_raw_stacktrace","process_replay","process_span","process_span","process_string","process_string","process_timestamp","process_timestamp","process_value","profiles","project_id","protocol_version","received_at","redaction","redaction","remove_other","replay","replay_id","request","rules","scope","score_components","sec_ch_ua","sec_ch_ua_model","sec_ch_ua_platform","sec_ch_ua_platform_version","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_default_transaction_source","span","span_description_rules","start","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","transaction_name_config","transaction_timestamp_range","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unit","user_agent","user_agent","user_agent","utils","validate_environment","validate_event","validate_release","validate_span","version","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","weight","substitution","BreakdownConfig","BreakdownsConfig","SpanOperations","SpanOperationsConfig","TimeWindowSpan","Unsupported","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","deref","deserialize","deserialize","deserialize","duration","end","erased_serialize","erased_serialize","erased_serialize","fmt","fmt","fmt","fmt","from","from","from","from","into","into","into","into","matches","new","normalize_breakdowns","serialize","serialize","serialize","start","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","get_android_api_version","normalize_context","enrich_event","CouldNotParse","CouldNotScrub","InvalidPayload","NoContent","ReplayError","borrow","borrow_mut","fmt","fmt","from","from","into","normalize","source","to_string","try_from","try_into","type_id","validate","vzip","normalize_request","ai","description","exclusive_time","tag_extraction","extract_ai_measurements","normalize_ai_measurements","concatenate_host_and_port","scrub_domain_name","scrub_host","scrub_ipv4","scrub_ipv6","compute_span_exclusive_time","AIPipelineGroup","Action","AppStartType","BrowserName","CacheHit","CacheKey","Category","Description","DeviceClass","Domain","Environment","FileExtension","Group","HTTP_METHOD_EXTRACTOR_REGEX","HttpDecodedResponseContentLength","HttpResponseContentLength","HttpResponseTransferSize","MainThread","MessagingDestinationName","MessagingMessageId","Mobile","OsName","Platform","ProfilerId","RawDomain","Release","ReplayId","ResourceRenderBlockingStatus","SdkName","SdkVersion","SpanOp","SpanStatus","SpanTagKey","StatusCode","System","ThreadId","ThreadName","TimeToFullDisplay","TimeToInitialDisplay","TraceStatus","Transaction","TransactionMethod","TransactionOp","User","UserEmail","UserID","UserUsername","__clone_box","borrow","borrow_mut","clone","clone_into","cmp","compare","eq","equivalent","equivalent","equivalent","equivalent","equivalent","extract_measurements","extract_segment_span_tags","extract_span_tags","extract_tags","fmt","from","into","partial_cmp","sentry_tag_key","to_owned","try_from","try_into","type_id","vzip","ClientHints","FromUserAgentInfo","RawUserAgentInfo","SEC_CH_UA","SEC_CH_UA_MODEL","SEC_CH_UA_PLATFORM","SEC_CH_UA_PLATFORM_VERSION","USER_AGENT","__clone_box","__clone_box","as_deref","as_deref","borrow","borrow","borrow_mut","borrow_mut","browser_from_client_hints","client_hints","clone","clone","clone_into","clone_into","copy_from","default","default","deserialize","deserialize","eq","eq","erased_serialize","erased_serialize","fmt","fmt","from","from","from_headers","from_hints_or_ua","from_hints_or_ua","from_hints_or_ua","into","into","is_empty","is_empty","normalize_user_agent","normalize_user_agent_info_generic","parse_client_hints","parse_user_agent","populate_event_headers","sec_ch_ua","sec_ch_ua_model","sec_ch_ua_platform","sec_ch_ua_platform_version","serialize","serialize","set_ua_field_from_header","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","user_agent","vzip","vzip","MAIN_THREAD_NAME","MAX_DURATION_MOBILE_MS","MOBILE_SDKS","calculate_cdf_score","extract_http_status_code","extract_transaction_op","get_event_user_tag","http_status_code_from_span"],"q":[[0,"relay_event_normalization"],[501,"relay_event_normalization::RedactionRule"],[502,"relay_event_normalization::breakdowns"],[577,"relay_event_normalization::contexts"],[579,"relay_event_normalization::nel"],[580,"relay_event_normalization::replay"],[600,"relay_event_normalization::request"],[601,"relay_event_normalization::span"],[605,"relay_event_normalization::span::ai"],[607,"relay_event_normalization::span::description"],[612,"relay_event_normalization::span::exclusive_time"],[613,"relay_event_normalization::span::tag_extraction"],[687,"relay_event_normalization::user_agent"],[753,"relay_event_normalization::utils"],[761,"dyn_clone::sealed"],[762,"relay_event_normalization::trimming"],[763,"core::option"],[764,"relay_protocol::meta"],[765,"relay_event_schema::processor::attrs"],[766,"relay_event_schema::processor::traits"],[767,"relay_event_normalization::normalize"],[768,"alloc::string"],[769,"relay_protocol::annotated"],[770,"relay_event_normalization::transactions::rules"],[771,"relay_event_normalization::clock_drift"],[772,"core::time"],[773,"relay_event_normalization::schema"],[774,"core::iter::traits::iterator"],[775,"relay_event_normalization::event"],[776,"relay_event_normalization::transactions::processor"],[777,"relay_event_normalization::validation"],[778,"core::result"],[779,"serde::de"],[780,"erased_serde::ser"],[781,"erased_serde::error"],[782,"relay_event_normalization::geo"],[783,"core::fmt"],[784,"core::hash"],[785,"core::marker"],[786,"relay_event_schema::protocol::event"],[787,"relay_event_schema::protocol::user"],[788,"alloc::borrow"],[789,"chrono::offset::utc"],[790,"chrono::datetime"],[791,"relay_base_schema::metrics::units"],[792,"core::convert"],[793,"relay_event_normalization::normalize::breakdowns"],[794,"relay_event_schema::protocol::measurements"],[795,"relay_event_schema::protocol::types"],[796,"relay_protocol::traits"],[797,"relay_event_schema::protocol::contexts"],[798,"relay_event_normalization::normalize::user_agent"],[799,"std::path"],[800,"relay_protocol::value"],[801,"relay_event_normalization::remove_other"],[802,"relay_event_schema::protocol::breadcrumb"],[803,"relay_event_normalization::timestamp"],[804,"relay_event_schema::protocol::stacktrace"],[805,"relay_event_schema::protocol::replay"],[806,"relay_event_schema::protocol::span"],[807,"relay_common::time"],[808,"serde::ser"],[809,"core::any"],[810,"sentry_release_parser::parser"],[811,"core::ops::range"],[812,"relay_event_schema::protocol::nel"],[813,"serde_json::error"],[814,"core::net::ip_addr"],[815,"core::error"],[816,"relay_event_schema::protocol::request"],[817,"url::host"],[818,"relay_event_normalization::normalize::span::tag_extraction"],[819,"core::cmp"],[820,"alloc::collections::btree::map"],[821,"core::clone"],[822,"core::default"],[823,"relay_event_schema::protocol::contexts::trace"],[824,"relay_event_normalization::normalize::contexts"],[825,"relay_event_normalization::normalize::nel"],[826,"relay_event_normalization::normalize::request"],[827,"relay_event_normalization::normalize::span"],[828,"relay_event_normalization::normalize::span::ai"],[829,"relay_event_normalization::normalize::span::description"],[830,"relay_event_normalization::normalize::span::exclusive_time"],[831,"relay_event_normalization::normalize::utils"]],"i":[53,0,0,0,0,0,0,53,0,0,0,0,53,53,53,24,53,0,0,0,0,0,0,0,0,0,0,32,0,0,0,87,0,0,0,0,0,0,0,32,87,23,9,24,20,25,26,27,28,29,30,31,32,33,13,3,23,9,0,15,17,3,43,71,17,73,15,23,9,24,20,25,26,27,28,29,30,35,31,32,33,13,3,36,43,71,17,73,15,23,9,24,20,25,26,27,28,29,30,35,31,32,33,13,3,36,0,23,0,20,24,23,65,23,23,23,9,24,20,25,26,27,28,29,30,31,32,33,13,23,9,24,20,25,26,27,28,29,30,31,32,33,13,26,0,28,28,23,9,24,25,26,27,28,30,35,31,32,3,36,9,24,25,26,27,28,29,31,32,33,13,23,23,23,85,23,9,24,31,32,13,9,9,9,9,9,31,31,31,31,31,32,32,32,32,32,13,13,13,13,13,9,24,25,26,27,28,29,31,32,33,13,15,33,13,43,15,23,9,24,20,25,26,27,28,29,30,35,31,32,33,13,36,43,71,17,73,15,23,9,24,20,25,26,27,28,29,30,35,31,32,33,33,13,3,36,23,9,24,23,9,24,43,71,17,73,15,23,9,24,20,25,26,27,28,29,30,35,31,32,33,13,3,36,15,28,0,23,0,36,23,43,33,13,29,86,20,24,23,36,36,23,25,23,9,26,0,15,9,20,35,3,0,0,0,0,0,23,0,0,23,0,31,43,25,25,25,69,69,33,13,23,17,3,71,73,15,71,73,15,35,17,3,71,3,3,73,35,17,3,15,15,3,27,23,23,36,33,13,23,0,23,0,30,33,26,68,68,68,68,9,24,25,26,27,28,29,31,32,33,13,0,0,23,85,23,9,24,20,25,26,27,28,29,30,31,32,33,13,23,36,43,71,17,73,15,23,9,24,20,25,26,27,28,29,30,35,31,32,33,13,3,36,43,71,17,73,15,23,9,24,20,25,26,27,28,29,30,35,31,32,33,13,3,36,43,71,17,73,15,23,9,24,20,25,26,27,28,29,30,35,31,32,33,13,3,36,9,0,23,65,0,0,0,0,0,26,28,43,71,17,73,15,23,9,24,20,25,26,27,28,29,30,35,31,32,33,13,3,36,25,111,0,0,87,0,0,87,85,86,87,60,85,86,87,60,85,86,87,60,85,86,87,60,85,86,87,60,60,60,86,87,60,85,85,86,87,60,85,86,87,60,85,86,87,60,85,86,87,60,86,85,0,86,87,60,85,85,86,87,60,85,86,87,60,85,86,87,60,85,86,87,60,85,86,87,60,0,0,0,90,90,90,90,0,90,90,90,90,90,90,90,0,90,90,90,90,90,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,99,99,99,99,99,99,99,99,99,99,99,0,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,0,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,0,0,0,0,99,99,99,99,99,99,99,99,99,99,0,0,0,68,68,68,68,65,65,68,65,68,65,68,65,68,0,65,65,68,65,68,68,65,68,65,68,65,68,65,68,65,68,65,68,65,69,69,69,65,68,65,68,0,0,69,69,65,68,68,68,68,65,68,65,65,68,65,68,65,68,65,68,65,65,68,0,0,0,0,0,0,0,0],"f":"`````````````````````````````````````````{{cb}d{}}0000000000000{{f{h{c}}jl}nA`}`{AbAd}{{{Ah{Af}}{Al{Aj}}}d}{{AnB`}An}{{Bb{h{c}}jl}nA`}4{ce{}{}}0000000000000000000000000000000000000000000``{Bd{{h{{Bf{AfAf}}}}}}{Bh{{`{{Bl{}{{Bj{Ab}}}}}}}}`````{BnBn}{AbAb}{C`C`}{BhBh}{CbCb}{CdCd}{CfCf}{ChCh}{CjCj}{ClCl}{CnCn}{D`D`}{DbDb}{AjAj}{{ce}d{}{}}0000000000000``{{ChBdAd}{{h{Dd}}}}`{{}Bn}{{}Ab}{{}C`}{{}Cb}{{}Cd}{{}Cf}{{}Ch}{{}Cl}{{}Df}{{}Cn}{{}D`}{{}f}{{}Dh}{c{{Dj{Ab}}}Dl}{c{{Dj{C`}}}Dl}{c{{Dj{Cb}}}Dl}{c{{Dj{Cd}}}Dl}{c{{Dj{Cf}}}Dl}{c{{Dj{Ch}}}Dl}{c{{Dj{Cj}}}Dl}{c{{Dj{Cn}}}Dl}{c{{Dj{D`}}}Dl}{c{{Dj{Db}}}Dl}{c{{Dj{Aj}}}Dl}`````{{AbAb}Ad}{{C`C`}Ad}{{CnCn}Ad}{{D`D`}Ad}{{AjAj}Ad}{{ce}Ad{}{}}0000000000000000000{{cDn}{{Dj{E`Eb}}}{}}0000000000{{AnEd}An}``{{EfEh}Ej}{{AnEh}Ej}{{BnEh}Ej}{{AbEh}Ej}{{C`Eh}Ej}{{BhEh}Ej}{{CbEh}Ej}{{CdEh}Ej}{{CfEh}Ej}{{ChEh}Ej}{{CjEh}Ej}{{ClEh}Ej}{{DfEh}Ej}{{CnEh}Ej}{{D`Eh}Ej}{{DbEh}Ej}{{AjEh}Ej}{{DhEh}Ej}{cc{}}000000000000000000{AjDb}111`{{ce}El{EnF`}Fb}0`{{Abc}dFd}{{C`c}dFd}{ce{}{}}000000000000000000000{AnAd}{ChAd}{FfAd}`{BdAd}``{{EfBd}{{Dj{{h{Fh}}Fj}}}}{{Db{Fl{Af}}}{{h{Af}}}}{{Aj{Fl{Af}}}{{h{Af}}}}{{CjBdAd}Ad}`{Bh{{h{Fn}}}}```````{AbBd}``{{{h{{Gb{G`}}}}{Gb{G`}}}An}{{cGd}Ab{{Gf{Af}}}}{{{h{C`}}{h{C`}}}Bh}{ClDf}{{}f}{Ffd}{{FfGh}d}{{{Ah{Ff}}Bn}d}{{Gjj{h{Bh}}{h{Fn}}{h{Gl}}{h{Gl}}}d}{{c{h{Cf}}}{{h{Af}}}{Gn`}}`{{{Ah{Af}}{Al{Aj}}}d}5`{{H`{Ah{Af}}{Hb{Bd}}}d}`{c{{Dj{EfFj}}}{{Hf{Hd}}}}```{{{Hh{Bd}}}{{h{Hj}}}}{Bd{{h{Hj}}}}```{{Bb{Hl{c}}jl}nA`}{{f{Hl{c}}jl}nA`}{{HnI`jl}n}{{IbI`jl}n}{{An{Gb{G`}}}d}{{HnFfjl}n}{{IbFfjl}n}{{AnFfjl}n}{{DfFfjl}n}{{Bb{Id{c}}jl}nA`}{{f{Id{c}}jl}nA`}{{Hn{Id{If}}l}n}{{fIhjl}n}{{fIjjl}n}{{IbIljl}n}{{DfIljl}n}{{BbAfjl}n}{{fAfjl}n}{{AnIn}d}{{AnGljl}n}{{fIfjl}n}`````````````````{{Abc}DjJ`}{{C`c}DjJ`}{{Cbc}DjJ`}{{Cdc}DjJ`}{{Cfc}DjJ`}{{Chc}DjJ`}{{Cjc}DjJ`}{{Cnc}DjJ`}{{D`c}DjJ`}{{Dbc}DjJ`}{{Ajc}DjJ`}{Ffd}```{ce{}{}}0000000000000``{c{{Dj{e}}}{}{}}0000000000000000000000000000000000000000000{cJb{}}000000000000000000000{AbGd}````{Bd{{Dj{dJd}}}}{{{Ah{Ff}}Dh}n}{Bd{{Dj{dJf}}}}{{Il{h{{Jh{In}}}}}n}``7777777777777777777777````````{{cb}d{}}00088888888{JjJj}{JlJl}{JnJn}{GhGh}{{ce}d{}{}}000{{}Gh}{Ghc{}}{c{{Dj{Jl}}}Dl}{c{{Dj{Jn}}}Dl}{c{{Dj{Gh}}}Dl}{JjB`}`{{cDn}{{Dj{E`Eb}}}{}}00{{JjEh}Ej}{{JlEh}Ej}{{JnEh}Ej}{{GhEh}Ej}{cc{}}000{ce{}{}}000`{{GlGl}Jj}{{FfGh}d}{{Jlc}DjJ`}{{Jnc}DjJ`}{{Ghc}DjJ`}`5555{c{{Dj{e}}}{}{}}0000000{cJb{}}0007777{Bd{{h{Bd}}}}{K`d}{{Ff{Ah{Kb}}}d}`````::{{KdEh}Ej}0<{KfKd}<{{{Ah{Ij}}{h{Kh}}{Hb{Bd}}}d}{Kd{{h{Kj}}}}{cAf{}}998{Ij{{Dj{dKd}}}}{ce{}{}}{Kld}````{{IlCh}d}{{Ff{h{Ch}}}d}{{{h{Bd}}{h{Kn}}}{{Fl{Bd}}}}{Bd{{Fl{Bd}}}}{{{L`{Bd}}}{{Fl{Bd}}}}{LbBd}{LdBd}{Ffd}```````````````````````````````````````````````{{cb}d{}}::{LfLf}{{ce}d{}{}}{{LfLf}Lh}{{ce}Lh{}{}}{{LfLf}Ad}{{ce}Ad{}{}}0000{{IlAd}d}{{Ff{Al{{Ah{Il}}}}}d}{{Ff{Al{{Ah{Il}}}}Fn}d}{{IlFn{h{Gl}}{h{Gl}}Ad{h{Bd}}}{{Lj{LfAf}}}}{{LfEh}Ej}{cc{}}{ce{}{}}{{LfLf}{{h{Lh}}}}{LfBd}2{c{{Dj{e}}}{}{}}0{cJb{}}4````````{{cb}d{}}0{{{Hb{Af}}}{{Hb{Bd}}}}{{{Hh{Af}}}{{Hh{Bd}}}}7777{Bd{{h{{Bf{AfAf}}}}}}`{{{Hb{c}}}{{Hb{c}}}{LlLn{Hf{Bd}}}}{{{Hh{c}}}{{Hh{c}}}{Ln{Hf{Bd}}Ll}}{{ce}d{}{}}0{{{Hh{c}}{Hh{c}}}d{{Hf{Bd}}Ln}}{{}{{Hb{c}}}{LnLn{Hf{Bd}}}}{{}{{Hh{c}}}{Ln{Hf{Bd}}Ln}}{c{{Dj{{Hb{e}}}}}Dl{M`Ln{Hf{Bd}}}}{c{{Dj{{Hh{e}}}}}Dl{Ln{Hf{Bd}}M`}}{{{Hb{c}}{Hb{c}}}Ad{MbLn{Hf{Bd}}}}{{{Hh{c}}{Hh{c}}}Ad{Ln{Hf{Bd}}Mb}}{{cDn}{{Dj{E`Eb}}}{}}0{{{Hb{c}}Eh}Ej{MdLn{Hf{Bd}}}}{{{Hh{c}}Eh}Ej{Ln{Hf{Bd}}Md}}{cc{}}0{Mf{{Hb{Bd}}}}{{{Hb{Bd}}}{{h{Hj}}}}00{ce{}{}}0{{{Hb{c}}}Ad{{Hf{Bd}}Ln}}{{{Hh{c}}}Ad{{Hf{Bd}}Ln}}{Ffd}{{H`{Ah{Af}}{Hb{Bd}}}d}{{{Hh{Bd}}}{{h{Hj}}}}{Bd{{h{Hj}}}}{{{Hb{c}}Mf}d{{Hf{Bd}}Ln}}````{{{Hb{c}}e}Dj{MhLn{Hf{Bd}}}J`}{{{Hh{c}}e}Dj{Ln{Hf{Bd}}Mh}J`}{{{Hb{c}}Bd{h{c}}}d{{Hf{Bd}}Ln}}::{c{{Dj{e}}}{}{}}000{cJb{}}0`<<```{{DdDdDd}Dd}{Ff{{h{Af}}}}{Mj{{h{Af}}}}{Ml{{h{Af}}}}{Il{{h{Af}}}}","D":"BDn","p":[[5,"Private",761],[1,"unit"],[5,"TrimmingProcessor",0,762],[6,"Option",763],[5,"Meta",764],[5,"ProcessingState",765],[8,"ProcessingResult",766],[10,"ProcessValue",766],[5,"BuiltinMeasurementKey",0,767],[1,"bool"],[5,"String",768],[5,"Annotated",769],[5,"TransactionNameRule",0,770],[1,"slice"],[5,"ClockDriftProcessor",0,771],[5,"Duration",772],[5,"SchemaProcessor",0,773],[1,"str"],[1,"tuple"],[5,"CombinedMeasurementsConfig",0,767],[17,"Item"],[10,"Iterator",774],[5,"NormalizationConfig",0,775],[5,"MeasurementsConfig",0,767],[5,"PerformanceScoreWeightedComponent",0,767],[5,"PerformanceScoreProfile",0,767],[5,"PerformanceScoreConfig",0,767],[5,"ModelCosts",0,767],[5,"ModelCost",0,767],[5,"TransactionNameConfig",0,776],[5,"SpanDescriptionRuleScope",0,770],[6,"RedactionRule",0,770],[5,"SpanDescriptionRule",0,770],[1,"f64"],[5,"TransactionsProcessor",0,776],[5,"EventValidationConfig",0,777],[6,"Result",778],[10,"Deserializer",779],[10,"Serializer",780],[5,"Ok",780],[5,"Error",781],[6,"ErrorKind",764],[5,"GeoIpLookup",0,782],[5,"Formatter",783],[8,"Result",783],[1,"u64"],[10,"Hash",784],[10,"Sized",785],[10,"BuildHasher",784],[10,"Hasher",784],[5,"Event",786],[5,"Geo",787],[8,"GeoIpError",0,782],[6,"Cow",788],[1,"usize"],[5,"Utc",789],[5,"DateTime",790],[6,"MetricUnit",791],[10,"Into",792],[5,"BreakdownsConfig",502,793],[5,"Measurements",794],[5,"Timestamp",795],[10,"Getter",796],[5,"Contexts",797],[5,"RawUserAgentInfo",687,798],[5,"Path",799],[10,"AsRef",792],[5,"ClientHints",687,798],[10,"FromUserAgentInfo",687,798],[8,"Array",800],[5,"RemoveOtherProcessor",0,801],[5,"Breadcrumb",802],[5,"TimestampProcessor",0,803],[8,"Object",800],[6,"Value",800],[5,"RawStacktrace",804],[5,"Replay",805],[5,"Span",806],[5,"UnixTimestamp",807],[10,"Serializer",808],[5,"TypeId",809],[6,"InvalidEnvironment",810],[6,"InvalidRelease",810],[5,"Range",811],[5,"TimeWindowSpan",502,793],[5,"SpanOperationsConfig",502,793],[6,"BreakdownConfig",502,793],[6,"Context",797],[5,"NetworkReportRaw",812],[6,"ReplayError",580],[5,"Error",813],[6,"IpAddr",814],[10,"Error",815],[5,"Request",816],[1,"u16"],[6,"Host",817],[5,"Ipv4Addr",814],[5,"Ipv6Addr",814],[6,"SpanTagKey",613,818],[6,"Ordering",819],[5,"BTreeMap",820],[10,"Clone",821],[10,"Default",822],[10,"Deserialize",779],[10,"PartialEq",819],[10,"Debug",783],[5,"Headers",816],[10,"Serialize",808],[5,"TraceContext",823],[5,"User",787],[15,"Replace",501]],"r":[[1,793],[2,793],[3,767],[4,798],[5,771],[6,767],[8,777],[9,798],[10,782],[11,782],[17,767],[18,767],[19,767],[20,775],[21,767],[22,767],[23,767],[24,798],[25,770],[26,801],[28,773],[29,770],[30,770],[32,793],[33,793],[34,803],[35,776],[36,770],[37,776],[38,762],[58,776],[106,767],[108,798],[144,767],[286,776],[288,767],[306,767],[312,767],[313,793],[314,775],[315,775],[316,775],[318,776],[319,798],[321,798],[362,767],[381,776],[382,767],[468,767],[471,767],[472,810],[473,777],[474,810],[475,777],[502,793],[503,793],[505,793],[506,793],[552,793],[577,824],[578,824],[579,825],[600,826],[601,827],[602,827],[603,827],[604,827],[605,828],[606,828],[607,829],[608,829],[609,829],[610,829],[611,829],[612,830],[626,818],[645,818],[673,818],[674,818],[675,818],[676,818],[687,798],[688,798],[689,798],[703,798],[730,798],[731,798],[753,831],[754,831],[755,831],[756,831],[757,831],[758,831],[759,831],[760,831]],"b":[[350,"impl-ClockDriftProcessor"],[351,"impl-Processor-for-ClockDriftProcessor"],[587,"impl-Display-for-ReplayError"],[588,"impl-Debug-for-ReplayError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAANIBLQABAAAACAAAAA0AAgARAAAAKgAOAD0ALQB0ABsAlAAXALEAIwDYABEA/QAAAAIBAQAFAQEATQEDAFIBDABgAQEAcwEKAIIBDQCSAUEA3wEVAP0BGAAYAgYAKgICAC4CEwBKAgMATwIAAFICBABYAgAAZwIAAGkCBwByAgAAdAICAHgCDQCHAgMAjQIUAKYCAACpAgAAqwIEALgCAQC8AgMAwgIDAMcCCQDkAgEA5wIHAPACAQA="}],\ ["relay_event_schema",{"t":"CCTPPPPPFGPPPPTFPPPPFPPPPPPPPPPFGKYGIFFKPPPPPPPPPPFPGNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNHNNNONOOOONNNNNONNNNNNNONNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNONNNONONNNHNNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOPGPFPPPPPPPFPFPKPPPPPFFFPFFPPFFFPFFPPPGFFFPFPPGPPPPPFGFPKPPFFFPPPPPFFFGFPFPPFPPGGFPPFPPFPFPFFPPFFTFFFFPPPPPGPPPPPFFFFPFRTFGFFGPFTFPPFFFFPFFIFFPPFFFPPPFGGFPPPPFPPPIIPFPFPPPPPSFFFFFPPFFPPPFPPFPPFPFPFFPFFFPFPPPFFPPPPFPFPPFFPPPPPGFFFGKGFFPPFFFFGFPPPPPFFFPFFGFPFFPFFGPPPPPPPPPPPPFFPPFSRFPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOMNNMNNOOONNOOOOOOOOOOOMNNOOOOOOOOONNNNOOOMNMNNNNNNNNNNNNNNNNNNNNNNNNOONOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOOOOOOOOOOOOOOOOMNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNOOOOOOOOOOOOOOOONNNNNOONOOOOOOOOOOOMNNOOOOOOOOOOOOOHOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOMNNOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOHOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNOOOOOOOOOOOOOOOOOOONOOOOONOOOOOOOOOOOOOOOOOOOOOONOOOOOOOOOOOOOOOOONNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNOOOOOOOONOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOONOONOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOONOOOOOOOOOOOOOOMNNOOOOOOOOOOONOOOOOOOOOOOOOOOONOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOOOOOOOOONNOOOOOOOOONNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNO","n":["processor","protocol","ALL","Array","Attachments","Binary","Boolean","Breadcrumb","CharacterSet","Chunk","ClientSdkInfo","DateTime","DeleteValueHard","DeleteValueSoft","EMPTY","EnumSet","Err","Event","Exception","False","FieldAttrs","Frame","HeapMemory","InvalidTransaction","LogEntry","Maybe","Message","Minidump","Number","Object","Ok","Path","Pii","ProcessValue","ProcessValue","ProcessingAction","ProcessingResult","ProcessingState","ProcessingStateIter","Processor","Redaction","Replay","Request","Span","StackMemory","Stacktrace","String","Text","Thread","True","UnknownValueTypeError","User","ValueType","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","after_process","after_process","all","apply","as_array","as_array_truncated","as_repr","as_str","as_str","as_u128","as_u128_truncated","as_u16","as_u16_truncated","as_u32","as_u32_truncated","as_u64","as_u64_truncated","as_u8","as_u8_truncated","as_usize","as_usize_truncated","attrs","attrs","before_process","before_process","bit_width","bitand","bitand","bitand_assign","bitor","bitor","bitor_assign","bitxor","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","char_is_valid","characters","clear","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","complement","contains","copy_into_slice","copy_into_slice_truncated","count","default","default","default","depth","depth","deserialize","difference","empty","enter_borrowed","enter_index","enter_nothing","enter_owned","enter_static","entered_anything","enum_from_u32","enum_into_u32","enum_set","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extend","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","for_field","from","from","from","from","from","from","from","from","from","from","from","from","from_array","from_array_truncated","from_array_unchecked","from_iter","from_iter","from_repr","from_repr_truncated","from_repr_unchecked","from_slice","from_slice_truncated","from_slice_unchecked","from_str","from_u128","from_u128_truncated","from_u128_unchecked","from_u16","from_u16_truncated","from_u16_unchecked","from_u32","from_u32_truncated","from_u32_unchecked","from_u64","from_u64_truncated","from_u64_unchecked","from_u8","from_u8_truncated","from_u8_unchecked","from_usize","from_usize_truncated","from_usize_unchecked","hash","hash","index","inner_attrs","insert","insert_all","intersection","into","into","into","into","into","into","into","into","into","into","into","into_iter","into_iter","is_disjoint","is_empty","is_empty","is_negative","is_subset","is_superset","iter","iter","iter","join_chunks","key","len","len","max_bytes","max_chars","max_chars","max_chars_allowance","max_depth","name","new","new","new_root","next","nonempty","nonempty","not","not","only","partial_cmp","partial_cmp","path","pii","pii","process_array","process_array","process_bool","process_bool","process_breadcrumb","process_breadcrumb","process_child_values","process_child_values","process_chunked_value","process_client_sdk_info","process_client_sdk_info","process_context","process_context","process_contexts","process_contexts","process_debug_image","process_debug_image","process_debug_meta","process_debug_meta","process_event","process_event","process_exception","process_exception","process_f64","process_f64","process_frame","process_frame","process_geo","process_geo","process_header_name","process_header_name","process_i64","process_i64","process_logentry","process_logentry","process_native_image_path","process_native_image_path","process_object","process_object","process_other","process_other","process_pairlist","process_pairlist","process_raw_stacktrace","process_raw_stacktrace","process_replay","process_replay","process_request","process_request","process_span","process_span","process_stacktrace","process_stacktrace","process_string","process_string","process_template_info","process_template_info","process_thread","process_thread","process_timestamp","process_timestamp","process_trace_context","process_trace_context","process_u64","process_u64","process_user","process_user","process_value","process_value","process_value","process_value","process_value","process_values","process_values","ranges","remove","remove_all","required","required","retain","retain","root","serialize","size_hint","split_chunks","sub","sub","sub_assign","sum","sum","sum","sum","symmetrical_difference","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","trim","trim_whitespace","trim_whitespace","try_as_array","try_as_u128","try_as_u16","try_as_u32","try_as_u64","try_as_u8","try_as_usize","try_copy_into_slice","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from_array","try_from_repr","try_from_slice","try_from_u128","try_from_u16","try_from_u32","try_from_u64","try_from_u8","try_from_usize","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into_parent","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","union","value_type","value_type","value_type","variant_count","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","rule_id","text","text","ty","Abnormal","AbnormalMechanism","Aborted","Addr","Aggregated","All","AllButFirst","AlreadyExists","AnrBackground","AnrForeground","App","AppContext","Apple","AppleDebugImage","Application","AsPair","Auto","BadProducedAt","BaseUri","BlockAllMixedContent","Blocked","BodyRaw","Breadcrumb","Breakdowns","Browser","BrowserContext","CError","Cancelled","ChildSrc","ClientReport","ClientSdkInfo","ClientSdkPackage","CloudResource","CloudResourceContext","CodeId","Component","ConnectSrc","Connections","Context","ContextInner","Contexts","Cookies","Crashed","Csp","Csp","Csp","CspDirective","Custom","DNS","DataLoss","DeadlineExceeded","Debug","DebugId","DebugImage","DebugMeta","Default","DefaultContext","DefaultSrc","Device","DeviceClass","DeviceContext","DiscardedEvent","Elf","Error","Error","ErrorResponse","Errored","Event","EventId","EventProcessingError","EventType","Exception","Exited","ExpectCt","ExpectCt","ExpectCt","ExpectStaple","ExpectStaple","ExpectStaple","ExpectStapleCertStatus","ExpectStapleResponseStatus","ExtraValue","FailedPrecondition","Fatal","Fingerprint","FontSrc","FormAction","Frame","FrameAncestors","FrameData","FrameSrc","FrameVars","Geo","Good","Gpu","GpuContext","GroupingConfig","HIGH","HeaderName","HeaderValue","Headers","Hpkp","Hpkp","Hpkp","ImgSrc","Individual","Info","InstructionAddrAdjustment","Int","InternalError","InvalidArgument","InvalidDate","InvalidJson","InvalidRegVal","InvalidSecurityError","IpAddr","JsonLenientString","Jvm","JvmDebugImage","Key","LOW","LenientString","Level","LinuxDistribution","LockReason","LockReasonType","Locked","LogEntry","MEDIUM","MachException","MachO","ManifestSrc","Measurement","Measurements","Mechanism","MechanismMeta","MediaSrc","Message","MetricSummary","MetricSummaryMapping","Metrics","MetricsSummary","Missing","Monitor","MonitorContext","NativeDebugImage","NativeImagePath","NavigateTo","Nel","Nel","NelContext","NetworkReportError","NetworkReportPhases","NetworkReportRaw","NoMatchingResponse","None","None","NotFound","NsError","ObjectSrc","Ok","Ok","OperationType","OriginType","Os","OsContext","Otel","OtelContext","Other","Other","Other","Other","OutOfRange","PROTOCOL_VERSION","PairList","ParseAbnormalMechanismError","ParseEventTypeError","ParseLevelError","ParseNetworkReportPhaseError","ParseResponseDataError","ParseResponseError","ParseSessionStatusError","ParseSpanStatusError","Pe","PeDotnet","PerformanceScore","PerformanceScoreContext","PermissionDenied","PluginTypes","PosixSignal","PrefetchSrc","Profile","ProfileContext","Proguard","ProguardDebugImage","Provided","Query","RawStacktrace","Referrer","RegVal","RelayInfo","Replay","Replay","ReplayContext","ReportTo","ReportUri","Reprocessing","ReprocessingContext","Request","RequireSriFor","RequireTrustedTypesFor","ResourceExhausted","Response","ResponseContext","Revoked","Route","Route","Runtime","RuntimeContext","SampleRate","Sandbox","Sanitized","ScriptSrc","ScriptSrcAttr","ScriptSrcElem","SecurityReportType","SessionAggregateItem","SessionAggregates","SessionAttributes","SessionErrored","SessionLike","SessionStatus","SessionUpdate","SingleCertificateTimestamp","Sleeping","SourceMap","SourceMapDebugImage","Span","SpanData","SpanId","SpanStatus","Stacktrace","String","StyleSrc","StyleSrcAttr","StyleSrcElem","Symbolic","SystemSdkInfo","TagEntry","Tags","Task","TemplateInfo","Thread","ThreadId","Timestamp","Trace","TraceContext","TraceId","Transaction","TransactionInfo","TransactionNameChange","TransactionSource","TrustedTypes","Unauthenticated","Unavailable","Unimplemented","Unknown","Unknown","Unknown","Unknown","Unknown","Unsupported","UpgradeInsecureRequests","Url","User","UserReport","UserReportV2","UserReportV2","UserReportV2Context","VALID_PLATFORMS","Value","Values","View","Waiting","Warning","Wasm","WorkerSrc","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","_dsc","_metrics","_metrics_summary","_metrics_summary","abnormal","abnormal_count","abnormal_count","abnormal_count","abnormal_mechanism","abnormal_mechanism","abnormal_mechanism","abnormal_mechanism","abs_path","abs_path","add","add","addr_mode","address","age","aggregates","ai_completion_tokens_used","ai_input_messages","ai_model_id","ai_pipeline_name","ai_prompt_tokens_used","ai_responses","ai_total_tokens_used","all_errors","all_errors","all_errors","api_target","api_type","app_build","app_identifier","app_memory","app_name","app_start_time","app_start_type","app_version","apply_to_event","apply_to_event","apply_to_event","apply_to_event","arch","arch","arch","as_pair","as_pair","as_pair_mut","as_pair_mut","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_str","as_str","as_str","as_str","as_str","as_str","as_str","as_str","as_str","as_str","as_str","as_str","as_str","attributes","attributes","auto","battery_level","battery_status","blocked_uri","body","body_size","body_size","boot_time","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","brand","breadcrumbs","breakdown","breakdowns","browser_name","build","build","build_type","bytes_ingested_event","bytes_ingested_event_applecrashreport","bytes_ingested_event_attachment","bytes_ingested_event_minidump","bytes_stored_event","bytes_stored_event_applecrashreport","bytes_stored_event_attachment","bytes_stored_event_minidump","cache_hit","cache_item_size","cache_key","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","cast_mut","category","category","changes","charging","checksum","city","class_name","client_address","client_ip","client_sample_rate","client_sdk","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cloud_account_id","cloud_availability_zone","cloud_platform","cloud_provider","cloud_region","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","code","code","code","code_file","code_file","code_filepath","code_function","code_id","code_lineno","code_name","code_namespace","colno","colno","column_number","comments","contact_email","contains","contains","contains_key","context","context","context_line","context_line","context_mut","contexts","contexts","cookies","cookies","count","country_code","cpu_description","cpu_subtype","cpu_type","crashed","crashed","crashed_count","crashed_count","crashed_count","csp","culprit","current","data","data","data","data","data","data","data","data","date_time","date_time","datetime_to_timestamp","db_operation","db_system","debug_checksum","debug_file","debug_file","debug_id","debug_id","debug_id","debug_meta","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","default_key","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","device_app_hash","device_type","device_unique_identifier","discarded_events","disposition","dist","dist","distinct_id","distinct_id","distinct_id","distinct_id","distinct_id","distribution","document_uri","domain","duration","effective_directive","effective_expiration_date","effective_expiration_date","elapsed_time","elapsed_time","email","email","enhancements","env","environment","environment","environment","environment","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","errno","error_ids","error_type","errored","errors","errors","event_id","event_id","event_id","event_json_schema","exception_id","exceptions","exclusive_time","exclusive_time","exited","expectct","expectstaple","external_free_storage","external_storage_size","extra","extra_at","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","extract_child_meta","failure_mode","family","features","filename","filename","filtered_events","filtered_sampling_events","fingerprint","flag_processing_error","flag_processing_fatal","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","formatted","fragment","frames","frames_delay","frames_frozen","frames_slow","frames_total","free_memory","free_storage","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_context","from_contexts","from_iter","from_iter","from_json","from_pair","from_pair","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_str","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","from_value","function","function_id","geo","get","get","get","get_header","get_iter","get_key","get_key_mut","get_mut","get_or_default","get_or_insert_with","get_value","get_value","get_value","get_value","get_value","get_value","get_value","graphics_shader_level","grouping_config","handled","has_integration","has_module","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","headers","headers","held_locks","help_link","host_id","host_type","hostname","hostname","hpkp","http_decoded_response_content_length","http_request_method","http_response_content_length","http_response_status_code","http_response_transfer_size","id","id","id","id","id","image_addr","image_addr","image_addr","image_size","image_size","image_vmaddr","image_vmaddr","images","in_app","in_foreground","include_subdomains","inferred_content_type","inferred_content_type","ingest_path","init","insert","insert","instruction_addr","instruction_addr_adjustment","integrations","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_context","into_inner","into_inner","into_inner","into_inner","into_inner","into_inner","into_pair","into_pair","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","into_value","ip_address","ip_address","is_auto","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_deep_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_empty","is_error","is_exception_group","is_fatal","is_nil","is_referenceable","is_referenceable","is_referenceable","is_referenceable","is_referenceable","is_referenceable","is_referenceable","is_referenceable","is_segment","is_terminal","is_valid","is_valid_breakdown_name","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","json_schema","kernel_version","key","key","key_id","known_pins","lang","lang","level","level","line_number","lineno","lineno","locale","lock","logentry","logger","low_memory","mach_exception","main","manufacturer","max","max_texture_size","measurement","measurements","measurements","mechanism","memory_size","memory_size","merge","message","message","message","messaging_destination_name","messaging_message_body_size","messaging_message_id","messaging_message_receive_latency","messaging_message_retry_count","meta","method","method","min","model","model_id","module","module","modules","ms_processing_jvm","ms_processing_proguard","ms_processing_sourcemaps","ms_processing_symbolicator","multi_threaded_rendering","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","new","new","new","new","new","noted_hostname","npot_support","ns_error","number","number","online","op","op","orientation","origin","origin","original","original_issue_id","original_policy","original_primary_hash","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","package","package_name","packages","params","params","parent_id","parent_span_id","parent_span_id","parse","parse","parse","parse","parse","parse","parse_release","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","phase","phase","platform","platform","platform","platform","port","port","position","post_context","post_context","pre_context","pre_context","pretty_name","previous_route","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_child_values","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","process_value","processor_count","processor_frequency","profile_id","profile_id","profiler_id","project","propagations","propagations","protocol","protocol","public_key","quantity","query_string","rate_limited_events","raw_description","raw_description","raw_function","raw_stacktrace","raw_stacktrace","reason","received","received","referrer","referrer","region","registers","release","release","release","release","remove","remove","remove_key","replay_id","replay_id","replay_id","replay_start_timestamp","replay_type","request","request","resource_render_blocking_status","rooted","route","sample_rates","sampled","sampling_fraction","sampling_fraction","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","schema_name","scheme","score_profile_version","scraping_attempts","screen_density","screen_dpi","screen_height_pixels","screen_resolution","screen_width_pixels","script_sample","scts","sdk","sdk_name","sdk_name","sdk_name","sdk_version","sdk_version","segment","segment_id","segment_id","segment_name","sentry_tags","sentry_user","sequence","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialize_payload","serialized_sct","served_certificate_chain","served_certificate_chain","server_address","server_ip","server_ip","server_name","session_id","signal","simulator","site","snapshot","source","source","source","source","source","source_file","span_id","span_id","spans","stack_start","stacktrace","stacktrace","stacktrace","start_timestamp","start_timestamp","started","started","started","started","started","state","status","status","status","status","status_code","status_code","status_code","storage_size","sub","subcode","subdivision","sum","supports_accelerometer","supports_audio","supports_compute_shaders","supports_draw_call_instancing","supports_geometry_shaders","supports_gyroscope","supports_location_service","supports_ray_tracing","supports_vibration","symbol","symbol_addr","synthetic","system_sdk","tag_value","tags","tags","tags","tags","template","test_report","thread_id","thread_id","thread_id","thread_name","threads","time_spent","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timestamp","timezone","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","to_string","total_count","total_count","total_count","trace_id","trace_id","trace_ids","transaction","transaction_info","trust","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","ty","ty","ty","ty","ty","ty","ty","ty","ty","ty","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","ui_component_name","unit","update_value","url","url","url_full","url_scheme","urls","usable_memory","user","user","user","user_agent","user_agent","user_agent","user_agent","user_agent_original","username","uuid","uuid","uuid","validated_certificate_chain","validated_certificate_chain","value","value","value","value","value","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","value_type","values","vars","vendor_id","vendor_name","version","version","version","version","version","version","version","version","version","version","version_major","version_minor","version_patchlevel","view_names","violated_directive","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","was_transaction"],"q":[[0,"relay_event_schema"],[2,"relay_event_schema::processor"],[465,"relay_event_schema::processor::Chunk"],[469,"relay_event_schema::protocol"],[4829,"dyn_clone::sealed"],[4830,"relay_event_schema::processor::traits"],[4831,"core::option"],[4832,"relay_protocol::meta"],[4833,"relay_event_schema::processor::attrs"],[4834,"enumset::set"],[4835,"enumset::traits"],[4836,"relay_protocol::annotated"],[4837,"relay_protocol::traits"],[4838,"core::convert"],[4839,"core::ops::function"],[4840,"relay_event_schema::processor::chunks"],[4841,"core::clone"],[4842,"core::cmp"],[4843,"core::result"],[4844,"serde::de"],[4845,"alloc::borrow"],[4846,"core::iter::traits::collect"],[4847,"alloc::string"],[4848,"core::fmt"],[4849,"core::hash"],[4850,"alloc::vec"],[4851,"relay_protocol::value"],[4852,"relay_event_schema::protocol::breadcrumb"],[4853,"relay_event_schema::protocol::clientsdk"],[4854,"relay_event_schema::protocol::contexts"],[4855,"relay_event_schema::protocol::debugmeta"],[4856,"relay_event_schema::protocol::event"],[4857,"relay_event_schema::protocol::exception"],[4858,"relay_event_schema::protocol::stacktrace"],[4859,"relay_event_schema::protocol::user"],[4860,"relay_event_schema::protocol::request"],[4861,"relay_event_schema::protocol::logentry"],[4862,"relay_event_schema::protocol::types"],[4863,"relay_event_schema::protocol::replay"],[4864,"relay_event_schema::protocol::span"],[4865,"relay_event_schema::protocol::templateinfo"],[4866,"relay_event_schema::protocol::thread"],[4867,"relay_event_schema::protocol::contexts::trace"],[4868,"serde::ser"],[4869,"core::iter::traits::iterator"],[4870,"core::any"],[4871,"relay_event_schema::protocol::session"],[4872,"chrono::duration"],[4873,"serde_json::error"],[4874,"relay_event_schema::protocol::tags"],[4875,"relay_base_schema::spans"],[4876,"relay_event_schema::protocol::nel"],[4877,"relay_base_schema::events"],[4878,"relay_event_schema::protocol::security_report"],[4879,"relay_event_schema::protocol::transaction"],[4880,"relay_event_schema::protocol::contexts::app"],[4881,"relay_event_schema::protocol::contexts::browser"],[4882,"relay_event_schema::protocol::contexts::cloud_resource"],[4883,"relay_event_schema::protocol::contexts::device"],[4884,"relay_event_schema::protocol::contexts::gpu"],[4885,"relay_event_schema::protocol::contexts::monitor"],[4886,"relay_event_schema::protocol::contexts::nel"],[4887,"relay_event_schema::protocol::contexts::os"],[4888,"relay_event_schema::protocol::contexts::otel"],[4889,"relay_event_schema::protocol::contexts::performance_score"],[4890,"relay_event_schema::protocol::contexts::profile"],[4891,"relay_event_schema::protocol::contexts::replay"],[4892,"relay_event_schema::protocol::contexts::reprocessing"],[4893,"relay_event_schema::protocol::contexts::response"],[4894,"relay_event_schema::protocol::contexts::runtime"],[4895,"relay_event_schema::protocol::contexts::user_report_v2"],[4896,"relay_event_schema::protocol::breakdowns"],[4897,"relay_event_schema::protocol::client_report"],[4898,"relay_event_schema::protocol::device_class"],[4899,"relay_event_schema::protocol::fingerprint"],[4900,"relay_event_schema::protocol::measurements"],[4901,"relay_event_schema::protocol::mechanism"],[4902,"relay_event_schema::protocol::metrics"],[4903,"relay_event_schema::protocol::metrics_summary"],[4904,"relay_event_schema::protocol::relay_info"],[4905,"chrono::offset::utc"],[4906,"chrono::datetime"],[4907,"core::default"],[4908,"relay_event_schema::protocol::user_report"],[4909,"core::net::ip_addr"],[4910,"schemars::gen"],[4911,"schemars::schema"],[4912,"sentry_release_parser::parser"],[4913,"core::error"],[4914,"relay_event_derive"],[4915,"relay_event_schema::processor::funcs"],[4916,"enumset"],[4917,"relay_event_schema::protocol::constants"],[4918,"relay_event_schema::protocol::schema"]],"i":[0,0,9,19,19,19,19,19,0,0,19,19,32,32,9,0,7,19,19,30,0,19,19,32,19,30,19,19,19,19,7,0,0,0,0,0,0,0,0,0,21,19,19,19,19,19,19,21,19,30,0,19,0,9,19,30,27,31,6,21,32,3,3,9,0,9,9,9,19,21,9,9,9,9,9,9,9,9,9,9,9,9,6,28,3,3,9,9,19,9,9,19,9,9,19,9,50,9,46,19,30,27,31,6,28,21,32,50,9,46,19,30,27,31,6,28,21,32,31,27,9,9,19,30,27,31,6,21,32,9,19,30,27,31,6,21,32,9,19,9,9,9,9,21,9,27,6,6,28,21,9,9,6,6,6,6,6,6,19,19,0,9,9,19,19,30,21,32,9,9,19,19,30,30,32,32,9,9,9,46,46,19,19,30,27,31,6,28,28,21,21,32,32,19,50,9,9,46,19,30,27,31,6,28,21,32,9,9,9,9,9,9,9,9,9,9,9,19,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,30,28,6,9,9,9,50,9,46,19,30,27,31,6,28,21,32,50,9,9,9,21,31,9,9,9,6,28,0,28,9,21,27,27,27,27,27,27,9,27,6,50,27,27,9,19,9,9,19,6,27,27,3,3,3,3,3,3,8,8,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,8,8,3,3,31,9,9,27,27,27,27,6,21,50,0,9,19,9,9,9,9,9,9,9,19,30,27,31,6,21,32,46,19,28,21,32,27,27,27,9,9,9,9,9,9,9,9,50,9,46,19,30,27,31,6,28,21,32,9,9,9,9,9,9,9,9,9,50,9,46,19,30,27,31,6,28,21,32,6,50,9,46,19,30,27,31,6,28,21,32,9,8,8,6,9,50,9,46,19,30,27,31,6,28,21,32,218,219,218,218,178,0,100,0,94,185,185,100,91,91,57,0,59,0,104,0,185,111,110,110,188,0,0,0,57,0,0,100,110,0,0,0,57,0,0,113,110,104,0,0,0,0,178,0,109,177,0,113,104,100,100,194,0,0,0,109,0,110,57,0,0,0,59,109,194,111,178,0,0,0,0,0,178,0,109,177,0,109,177,0,0,0,100,194,0,110,110,0,110,0,110,0,0,112,57,0,0,146,0,0,0,0,109,177,110,94,194,0,187,100,100,111,201,0,0,0,0,59,0,73,146,0,0,0,0,0,188,0,146,0,59,110,0,0,0,0,110,0,0,0,0,0,111,57,0,0,0,110,109,57,0,0,0,0,111,91,185,100,0,110,100,178,0,0,57,0,57,0,57,59,104,113,100,0,0,0,0,0,0,111,111,0,0,59,59,57,0,100,110,0,110,57,0,59,0,111,0,0,110,0,0,0,57,0,110,110,57,0,0,110,110,100,57,0,112,0,113,57,0,0,110,113,110,110,110,0,0,0,0,0,0,0,0,0,188,59,0,0,0,0,0,0,187,110,110,110,59,0,0,0,113,0,0,0,0,57,0,0,109,0,0,0,110,100,100,100,100,112,178,185,113,177,110,113,0,0,109,57,0,0,73,0,113,188,194,59,110,109,130,100,131,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,91,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,65,83,61,61,61,77,90,88,89,90,88,89,90,89,64,79,58,81,64,189,166,180,181,181,181,181,181,181,181,88,89,90,76,118,114,114,114,114,114,181,114,172,174,175,176,117,139,142,73,99,73,99,100,101,102,103,104,66,105,106,107,108,109,100,69,104,66,110,111,112,91,113,106,107,108,89,180,106,117,117,172,166,127,76,117,109,130,100,131,94,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,201,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,202,91,203,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,204,192,193,106,205,194,107,108,81,65,83,198,109,130,100,131,94,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,201,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,202,91,203,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,204,192,193,106,205,194,107,108,81,65,83,198,117,61,61,61,181,121,128,114,161,161,161,161,161,161,161,161,181,181,181,92,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,82,129,92,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,82,129,55,133,191,117,61,65,189,181,56,82,61,109,130,100,131,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,91,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,65,83,109,130,100,131,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,91,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,65,83,116,116,116,116,116,109,147,66,105,178,187,192,193,106,194,107,108,81,155,156,157,142,143,181,181,142,181,157,181,64,79,172,198,129,58,72,58,61,75,64,79,61,61,75,127,76,163,65,117,139,139,90,80,88,89,90,61,61,80,55,127,82,159,76,77,64,83,174,175,0,181,181,142,142,143,142,143,144,61,109,55,132,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,58,138,139,142,143,144,145,60,147,149,150,61,62,68,103,152,153,154,155,156,157,158,159,160,161,162,163,165,166,167,75,168,169,170,76,171,172,173,174,175,176,178,91,77,181,182,64,183,184,74,185,78,99,186,79,80,113,191,84,72,192,193,106,194,65,83,92,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,82,129,132,119,140,141,151,153,168,66,105,169,170,78,186,72,107,108,132,119,140,141,151,153,168,66,105,169,170,78,186,72,107,108,159,77,109,133,134,102,69,140,141,147,104,110,111,112,178,91,179,89,90,180,185,187,113,193,106,198,114,117,117,134,172,61,75,88,89,90,89,90,121,172,156,89,172,174,175,120,165,83,198,150,76,61,75,179,181,109,100,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,91,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,81,65,83,109,109,102,102,140,140,141,141,147,147,66,66,105,105,171,171,110,110,111,111,112,112,177,177,178,178,185,185,187,187,188,188,113,113,192,192,193,193,106,106,194,194,107,107,108,108,81,81,158,75,120,90,61,89,55,75,198,0,159,61,82,77,90,61,61,117,117,61,61,55,132,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,142,143,144,145,59,60,146,148,149,150,61,62,68,103,152,153,154,155,156,157,158,159,160,161,162,163,165,166,167,75,168,66,105,169,170,76,172,173,174,175,176,77,181,182,64,183,184,74,78,99,186,79,189,80,190,191,84,72,106,107,108,65,83,174,117,56,64,79,134,134,61,161,161,109,109,130,130,100,100,131,131,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,102,82,129,57,137,58,69,138,139,140,140,141,141,142,143,144,145,59,60,146,146,147,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,104,164,164,201,201,165,166,167,75,168,66,105,169,170,76,171,171,110,110,172,173,174,175,111,111,112,112,176,177,178,178,202,202,91,91,203,203,179,89,90,180,77,181,182,64,183,184,74,185,185,78,99,186,79,187,187,188,189,80,113,113,190,191,84,72,204,204,192,192,193,193,106,106,205,205,194,194,107,108,81,81,65,83,198,68,76,74,181,181,181,181,117,117,109,130,100,131,94,55,132,133,134,135,56,114,115,116,117,118,119,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,137,58,69,69,138,139,140,140,141,141,142,143,144,145,59,60,146,147,148,148,149,150,61,62,151,151,68,68,103,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,201,201,165,166,167,75,168,66,66,66,105,105,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,202,91,203,179,89,90,180,77,77,181,182,64,183,183,184,74,74,185,78,78,99,186,186,79,187,188,189,80,113,190,191,84,72,72,204,192,193,106,106,205,194,107,107,108,108,81,81,65,83,198,92,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,82,129,146,170,72,177,73,99,109,100,102,140,141,147,104,110,111,112,178,91,185,113,192,193,106,194,109,100,55,132,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,165,166,167,75,168,66,105,169,170,76,172,173,174,175,176,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,65,83,64,64,83,58,186,72,169,61,58,58,58,58,58,61,62,153,75,77,181,72,118,61,159,56,61,109,102,147,66,105,178,187,192,193,106,194,107,108,127,76,80,159,116,116,174,175,61,181,181,181,181,181,118,150,61,80,83,139,142,64,139,142,139,142,60,64,114,175,127,76,61,89,58,72,64,74,56,109,130,100,131,94,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,201,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,202,91,203,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,204,192,193,106,205,194,107,108,81,65,83,198,92,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,82,129,153,66,106,107,108,81,73,99,109,100,55,132,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,165,166,167,75,168,66,105,169,170,76,172,173,174,175,176,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,65,83,179,83,106,55,132,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,142,143,144,145,59,60,146,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,165,166,167,75,168,66,105,169,170,76,172,173,174,175,176,77,181,182,64,183,184,74,78,99,186,79,188,189,80,190,191,84,72,106,107,108,65,83,109,100,55,132,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,165,166,167,75,168,66,105,169,170,76,172,173,174,175,176,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,65,83,178,159,178,147,148,170,84,72,192,193,106,107,77,178,106,132,109,100,55,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,147,148,149,61,62,151,68,103,154,155,156,157,158,159,160,161,162,163,104,165,166,167,75,168,66,105,169,170,76,77,181,182,64,183,184,74,185,78,99,186,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,65,83,121,73,73,61,175,64,74,55,61,172,64,79,117,64,61,61,117,158,80,117,163,118,61,61,77,62,117,118,163,55,129,68,181,181,181,181,181,159,165,76,163,117,117,62,64,61,161,161,161,161,118,194,135,56,115,117,118,121,136,128,139,149,154,155,157,182,80,83,198,58,147,66,105,84,175,118,158,154,157,117,82,77,117,82,77,191,126,172,126,55,56,114,115,116,117,118,120,121,136,122,123,125,126,127,128,82,129,138,139,142,143,144,145,60,149,61,62,68,158,159,165,166,167,76,172,175,77,181,182,64,184,74,79,189,80,84,65,83,64,189,56,68,182,159,82,77,134,168,170,89,180,106,61,109,147,66,105,178,187,192,193,106,194,107,108,81,81,120,165,61,75,77,64,174,175,72,64,79,64,79,136,181,55,132,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,142,143,144,145,59,60,148,149,150,61,62,68,103,152,153,154,155,156,157,158,159,162,163,104,167,75,168,66,105,169,170,76,172,173,174,175,176,77,181,182,64,183,184,74,185,78,99,186,79,188,189,80,190,191,84,72,106,107,108,65,83,55,132,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,142,143,144,145,59,60,148,149,150,61,62,68,103,152,153,154,155,156,157,158,159,162,163,104,167,75,168,66,105,169,170,76,172,173,174,175,176,77,181,182,64,183,184,74,185,78,99,186,79,188,189,80,190,191,84,72,106,107,108,81,65,83,117,117,124,77,124,61,190,191,165,76,167,133,76,134,121,128,64,62,80,133,61,77,165,172,65,74,61,75,179,181,58,72,58,125,75,181,75,75,61,75,181,121,181,161,82,120,165,109,100,55,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,147,148,149,61,62,151,68,103,154,155,156,157,158,159,160,161,162,163,104,165,166,167,75,168,66,105,169,170,76,77,181,182,64,183,184,74,185,78,99,186,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,65,83,174,123,61,117,117,117,117,117,172,174,75,61,138,181,61,181,83,75,77,181,77,83,89,109,100,133,134,134,102,69,140,141,147,104,110,111,112,178,91,179,89,89,90,180,180,185,187,113,193,106,198,109,100,55,132,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,165,166,167,75,168,66,105,169,170,76,172,173,174,175,176,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,65,83,173,174,175,181,120,165,61,89,158,117,61,74,201,159,173,190,191,172,82,77,61,64,61,62,80,61,77,88,89,90,89,90,80,82,173,89,77,127,165,172,117,81,155,65,163,117,117,118,118,118,117,117,118,117,64,64,159,60,61,61,163,75,77,61,174,62,181,189,181,61,61,55,134,61,75,89,77,190,117,109,130,100,131,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,91,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,192,193,106,194,107,108,81,65,83,109,130,100,131,102,140,141,146,147,104,164,201,171,110,111,112,178,202,91,203,185,187,113,204,192,193,106,205,194,81,88,89,90,82,77,75,61,61,64,109,130,100,131,94,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,201,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,202,91,203,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,204,192,193,106,205,194,107,108,81,65,83,198,109,130,100,131,94,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,201,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,202,91,203,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,204,192,193,106,205,194,107,108,81,65,83,198,55,149,61,62,155,159,165,166,75,189,109,130,100,131,94,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,201,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,202,91,203,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,204,192,193,106,205,194,107,108,81,65,83,198,181,152,162,166,76,181,181,75,117,61,75,181,61,75,166,179,181,83,117,139,145,174,175,73,73,149,62,152,55,132,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,142,143,144,145,59,60,148,149,150,61,62,68,103,152,153,154,155,156,157,158,159,162,163,104,167,75,168,66,105,169,170,76,172,173,174,175,176,77,181,182,64,183,184,74,185,78,99,186,79,188,189,80,190,191,84,72,106,107,108,81,65,83,84,64,118,118,135,56,115,118,121,136,128,61,167,173,138,138,138,114,172,109,130,100,131,94,55,132,133,134,135,56,114,115,116,117,118,119,120,121,136,122,123,124,125,126,127,128,101,102,82,129,57,137,58,69,138,139,140,141,142,143,144,145,59,60,146,147,148,149,150,61,62,151,68,103,152,153,154,155,156,157,158,159,160,161,162,163,104,164,201,165,166,167,75,168,66,105,169,170,76,171,110,172,173,174,175,111,112,176,177,178,202,91,203,179,89,90,180,77,181,182,64,183,184,74,185,78,99,186,79,187,188,189,80,113,190,191,84,72,204,192,193,106,205,194,107,108,81,65,83,198,77],"f":"`````````````````````````````````````````````````````{{cb}d{}}0000000{{f{h{c}}jl}nA`}0{{}{{Ab{c}}}Ad}{{{Af{c}}g}nAh{{Aj{n}}}{{An{cj}{{Al{e}}}}}}{{{Ab{c}}}{{Bb{B`}}}Ad}0{{{Ab{c}}}{}{AdBd}}{BfBh}{BjBh}{{{Ab{c}}}BlAd}0{{{Ab{c}}}BnAd}0{{{Ab{c}}}C`Ad}0{{{Ab{c}}}B`Ad}0{{{Ab{c}}}CbAd}0{{{Ab{c}}}CdAd}0{lCf}{ChCf}>>{{}C`}{{{Ab{c}}e}{}Ad{{Aj{{Ab{c}}}}}}{{Bfc}e{{Aj{{Ab{Bf}}}}}{}}{{{Ab{c}}e}dAd{{Aj{{Ab{c}}}}}}210210{ce{}{}}000000000000000000000``{{{Ab{c}}}dAd}{{{Ab{c}}}{{Ab{c}}}{CjAd}}{BfBf}{ClCl}{CfCf}{CnCn}{ll}{BjBj}{D`D`}{{ce}d{}{}}0000000{{{Ab{c}}{Ab{c}}}DbAd}{{BfBf}Db}{{{Ab{c}}}{{Ab{c}}}Ad}{{{Ab{c}}c}DdAd}{{{Ab{c}}{Df{B`}}}dAd}0{BjCd}{{}{{Ab{c}}}Ad}{{}Cf}{{}l}{lCd}{ChCd}{c{{Dh{Bj}}}Dj}{{{Ab{c}}{Ab{c}}}{{Ab{c}}}Ad}6{{lBh{h{{Dl{Cf}}}}c}l{{E`{}{{Dn{Bf}}}}}}{{lCd{h{{Dl{Cf}}}}c}l{{E`{}{{Dn{Bf}}}}}}{{l{h{{Dl{Cf}}}}}l}{{lEb{h{{Dl{Cf}}}}c}l{{E`{}{{Dn{Bf}}}}}}3{lDd}{C`Bf}{BfC`}`{{{Ab{c}}c}DdAd}{{{Ab{c}}{Ab{c}}}Dd{EdAd}}{{Bf{Ab{Bf}}}Dd}{{BfBf}Dd}{{ClCl}Dd}{{BjBj}Dd}{{D`D`}Dd}{{ce}Dd{}{}}0000000{{{Ab{c}}e}dAd{{E`{}{{Dn{c}}}}}}{{{Ab{c}}e}dAd{{E`{}{{Dn{{Ab{c}}}}}}}}{{{Ab{c}}Ef}{{Dh{dEh}}}{AdEj}}{{ElEf}En}0{{BfEf}En}0{{ClEf}En}{{CfEf}En}{{CnEf}En}{{lEf}En}{{ChEf}En}0{{BjEf}En}0{{D`Ef}En}0{{{Af{c}}}{{Ab{Bf}}}A`}{cc{}}{c{{Ab{c}}}Ad}1111111111{{{Bb{B`}}}{{Ab{c}}}Ad}00{e{{Ab{c}}}Ad{{E`{}{{Dn{{Ab{c}}}}}}}}{e{{Ab{c}}}Ad{{E`{}{{Dn{c}}}}}}{{}{{Ab{c}}}{AdBd}}00{{{Df{B`}}}{{Ab{c}}}Ad}00{Bh{{Dh{Bfc}}}{}}{Bl{{Ab{c}}}Ad}00{Bn{{Ab{c}}}Ad}00{C`{{Ab{c}}}Ad}00{B`{{Ab{c}}}Ad}00{Cb{{Ab{c}}}Ad}00{Cd{{Ab{c}}}Ad}00{{{Ab{c}}e}dAdF`}{{Clc}dF`}{Ch{{h{Cd}}}}{l{{h{{Dl{Cf}}}}}}{{{Ab{c}}c}DdAd}{{{Ab{c}}{Ab{c}}}dAd}{{{Ab{c}}{Ab{c}}}{{Ab{c}}}Ad}{ce{}{}}00000000000{{{Ab{c}}}{}Ad}{{{Ab{c}}{Ab{c}}}DdAd}{{{Ab{c}}}DdAd}{BjDd}`22{{{Ab{c}}}{{Fb{c}}}Ad}{lFd}{ChFd}{c{{Fj{Eb{Fh{Ff}}}}}{{E`{}{{Dn{Bj}}}}}}{Ch{{h{Bh}}}}{{{Ab{c}}}CdAd}{BjCd}`{{CfCd}Cf}````{{}{{Ab{c}}}Ad}{{}Cf}{{{h{{Dl{Cf}}}}c}l{{E`{}{{Dn{Bf}}}}}}{Fd{{h{c}}}{}}{{CfDd}Cf}`{{{Ab{c}}}{}Ad}{Bfc{}}{c{{Ab{c}}}Ad}{{{Ab{c}}{Ab{c}}}{{h{Db}}}Ad}{{BfBf}{{h{Db}}}}{lCh}{{CfCl}Cf}`{{f{Fl{c}}jl}nA`}0{{fDdjl}n}0{{fFnjl}n}0{{A`cl}nf}0{{Ebjc}d{{An{{Fh{Bj}}}{{Al{{Fh{Bj}}}}}}}}{{fG`jl}n}0{{fGbjl}n}0{{fGdjl}n}0{{fGfjl}n}0{{fGhjl}n}0{{fGjjl}n}0{{fGljl}n}0{{fGnjl}n}0{{fH`jl}n}0{{fHbjl}n}0{{fHdjl}n}0{{fHfjl}n}0{{fHhjl}n}0{{fHjjl}n}0{{f{Hl{c}}jl}nA`}0{{f{Hl{Hn}}l}n}0{{f{I`{c}}jl}n{A`Ib}}0{{fIdjl}n}0{{fIfjl}n}0{{fIhjl}n}0{{fIjjl}n}0{{fIljl}n}0{{fEbjl}n}0{{fInjl}n}0{{fJ`jl}n}0{{fJbjl}n}0{{fJdjl}n}0{{fB`jl}n}0{{fJfjl}n}0{{{Af{c}}el}nA`f}{{fHnjl}n}0{{A`jcl}nf}0{{f{Jh{c}}jl}nA`}0`{{{Ab{c}}c}DdAd}{{{Ab{c}}{Ab{c}}}dAd}{{CfDd}Cf}`0`{{}l}{{Bjc}DhJj}{Fd{{Fj{Cd{h{Cd}}}}}}{{Bhc}{{Fh{Bj}}}{{E`{}{{Dn{Ff}}}}}}{{{Ab{c}}e}{}Ad{{Aj{{Ab{c}}}}}}{{Bfc}e{{Aj{{Ab{Bf}}}}}{}}{{{Ab{c}}e}dAd{{Aj{{Ab{c}}}}}}{e{{Ab{c}}}Ad{{Jl{}{{Dn{c}}}}}}{e{{Ab{c}}}Ad{{Jl{}{{Dn{{Ab{c}}}}}}}}01{{{Ab{c}}{Ab{c}}}{{Ab{c}}}Ad}{ce{}{}}0000000{cEb{}}0000`<`{{{Ab{c}}}{{h{{Bb{B`}}}}}Ad}{{{Ab{c}}}{{h{Bl}}}Ad}{{{Ab{c}}}{{h{Bn}}}Ad}{{{Ab{c}}}{{h{C`}}}Ad}{{{Ab{c}}}{{h{B`}}}Ad}{{{Ab{c}}}{{h{Cb}}}Ad}{{{Ab{c}}}{{h{Cd}}}Ad}{{{Ab{c}}{Df{B`}}}{{h{d}}}Ad}{c{{Dh{e}}}{}{}}0000000000{{{Bb{B`}}}{{h{{Ab{c}}}}}Ad}{{}{{h{{Ab{c}}}}}{AdBd}}{{{Df{B`}}}{{h{{Ab{c}}}}}Ad}{Bl{{h{{Ab{c}}}}}Ad}{Bn{{h{{Ab{c}}}}}Ad}{C`{{h{{Ab{c}}}}}Ad}{B`{{h{{Ab{c}}}}}Ad}{Cb{{h{{Ab{c}}}}}Ad}{Cd{{h{{Ab{c}}}}}Ad}99999999999{l{{Dh{{h{l}}l}}}}{cJn{}}0000000000{{{Ab{c}}{Ab{c}}}{{Ab{c}}}Ad}{A`{{Ab{Bf}}}}0{l{{Ab{Bf}}}}{{}C`}{ce{}{}}0000000000```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{cb}d{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`````{K`C`}{KbC`}{KdC`}{K`Kf}{KbKf}{KdKf}```{{Gdc}dKh}{{JbKj}c{}}```````````{K`{{h{Kl}}}}{Kb{{h{Kl}}}}{Kd{{h{Kl}}}}`````````{{{Df{Cb}}Gj}{{Dh{dKn}}}}000```{{{Ib{}{{L`{c}}{Lb{e}}}}}{{Fj{{Af{c}}{Af{e}}}}}{{Ld{Bh}}}A`}{Lf{{Fj{{Af{c}}{Af{e}}}}}{}{}}10{LhBh}{LjBh}{LlBh}{LnBh}{M`Bh}{HdBh}{MbBh}{MdBh}{MfBh}{MhBh}{MjBh}:{HjBh}76{MlBh}{MnBh}{N`Bh}{KfBh}{NbBh}987``{{}Md}```````{ce{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000``{{GjBhBh}{{h{Gn}}}}````````````````{Gb{{h{Kh}}}}{Gb{{h{Nd}}}}{Gb{{h{Nf}}}}{Gb{{h{Nh}}}}{Gb{{h{Nj}}}}{Gb{{h{Nl}}}}{Gb{{h{Nn}}}}{Gb{{h{O`}}}}{Gb{{h{Ob}}}}{Gb{{h{Od}}}}{Gb{{h{Of}}}}{Gb{{h{Oh}}}}{Gb{{h{Oj}}}}{Gb{{h{Ol}}}}{Gb{{h{On}}}}{Gb{{h{A@`}}}}{Gb{{h{Jd}}}}{Gb{{h{A@b}}}}{Gb{{h{Kh}}}}{Gb{{h{Nd}}}}{Gb{{h{Nf}}}}{Gb{{h{Nh}}}}{Gb{{h{Nj}}}}{Gb{{h{Nl}}}}{Gb{{h{Nn}}}}{Gb{{h{O`}}}}{Gb{{h{Ob}}}}{Gb{{h{Od}}}}{Gb{{h{Of}}}}{Gb{{h{Oh}}}}{Gb{{h{Oj}}}}{Gb{{h{Ol}}}}{Gb{{h{On}}}}{Gb{{h{A@`}}}}{Gb{{h{Jd}}}}{Gb{{h{A@b}}}}```````````{MjMj}{A@dA@d}{LhLh}{A@fA@f}{FnFn}{A@hA@h}{A@jA@j}{A@lA@l}{A@nA@n}{G`G`}{NdNd}{NfNf}{NhNh}{NjNj}{NlNl}{NnNn}{O`O`}{ObOb}{AA`AA`}{OdOd}{OfOf}{OhOh}{OjOj}{OlOl}{OnOn}{A@`A@`}{LjLj}{LlLl}{JdJd}{A@bA@b}{GbGb}{AAbAAb}{GdGd}{HjHj}{AAdAAd}{AAfAAf}{AAhAAh}{AAjAAj}{AAlAAl}{AAnAAn}{AB`AB`}{ABbABb}{GfGf}{GhGh}{ABdABd}{ABfABf}{ABhABh}{ABjABj}{ABlABl}{GjGj}{GlGl}{ABnABn}{HhHh}{LnLn}{AC`AC`}{ACbACb}{ACdACd}{ACfACf}{AChACh}{ACjACj}{AClACl}{ACnACn}{AD`AD`}{ADbADb}{ADdADd}{ADfADf}{M`M`}{ADhADh}{ADjADj}{ADlADl}{ADnADn}{IfIf}{AE`AE`}{HdHd}{MbMb}{AEbAEb}{AEdAEd}{IhIh}{AEfAEf}{MlMl}{AEhAEh}{AEjAEj}{AElAEl}{AEnAEn}{MnMn}{N`N`}{AF`AF`}{AFbAFb}{AFdAFd}{KfKf}{AFfAFf}{KbKb}{KdKd}{AFhAFh}{IjIj}{AFjAFj}{AFlAFl}{H`H`}{AFnAFn}{AG`AG`}{IdId}{AGbAGb}{IlIl}{LfLf}{AGdAGd}{InIn}{AGfAGf}{AGhAGh}{AGjAGj}{J`J`}{NbNb}{AGlAGl}{AGnAGn}{{{Jh{c}}}{{Jh{c}}}Cj}{{{I`{c}}}{{I`{c}}}Cj}{AH`AH`}{AHbAHb}{MdMd}{AHdAHd}{MfMf}{MhMh}{JbJb}{HbHb}{JfJf}{{ce}d{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`````{{MjMj}Db}{{ABfABf}Db}{{HdHd}Db}{{MbMb}Db}{{AFdAFd}Db}{{AGfAGf}Db}{{AH`AH`}Db}{{AHbAHb}Db}{{MdMd}Db}{{AHdAHd}Db}{{MfMf}Db}{{MhMh}Db}{{JbJb}Db}````````````````{GdDd}{{{I`{g}}i}Dd{{Ld{Bh}}}A`{{Ib{}{{L`{c}}{Lb{e}}}}}{{Ld{Bh}}}}{{Gdc}Dd{{Ld{Bh}}}}{Gj{{h{c}}}Kh}{If{{h{c}}}Kh}``1```````````{K`C`}{KbC`}{KdC`}`````````````{{{AHh{AHf}}}Gn}`````````{{}Mj}{{}Fn}{{}A@h}{{}A@l}{{}A@n}{{}G`}{{}Nd}{{}Nf}{{}Nh}{{}Nj}{{}Nl}{{}Nn}{{}O`}{{}Ob}{{}AA`}{{}Od}{{}Of}{{}Oh}{{}Oj}{{}Ol}{{}On}{{}A@`}{{}Lj}{{}Ll}{{}Jd}{{}A@b}{{}Gd}{{}AAd}{{}AAf}{{}AAl}{{}AAn}{{}AB`}{{}ABb}{{}Gh}{{}ABf}{{}ABj}{{}ABl}{{}Gj}{{}Gl}{{}Hh}{{}Ln}{{}AC`}{{}ACb}{{}ACd}{{}ACf}{{}ACh}{{}ACj}{{}ACl}{{}ACn}{{}AD`}{{}ADb}{{}ADd}{{}ADf}{{}ADj}{{}ADl}{{}ADn}{{}If}{{}AE`}{{}AEb}{{}AEd}{{}Ih}{{}AEf}{{}AEh}{{}AEj}{{}AEl}{{}AEn}{{}AF`}{{}AFd}{{}Kf}{{}Ij}{{}AFj}{{}AFl}{{}H`}{{}AFn}{{}AG`}{{}Id}{{}AGb}{{}Il}{{}Lf}{{}AGd}{{}In}{{}J`}{{}Nb}{{}AGn}{{}{{Jh{c}}}{}}{{}{{I`{c}}}AHj}{{}AH`}{{}AHb}{{}Md}{{}AHd}{{}Hb}{{}Jf}{{}Bh}00000000000000000{A@hc{}}{Nnc{}}{AAhc{}}{AAjc{}}{ABnc{}}{ACbc{}}{AE`c{}}{Hdc{}}{Mbc{}}{AEbc{}}{AEdc{}}{IlId}{AGdc{}}{{{I`{c}}}e{}{}}{Mfc{}}{Mhc{}}?>=<;:9876543210``{c{{Dh{Mj}}}Dj}{c{{Dh{A@j}}}Dj}{c{{Dh{A@l}}}Dj}{c{{Dh{Ll}}}Dj}{c{{Dh{Hj}}}Dj}{c{{Dh{AAh}}}Dj}{c{{Dh{AAj}}}Dj}{c{{Dh{ABf}}}Dj}{c{{Dh{M`}}}Dj}{c{{Dh{Ml}}}Dj}{c{{Dh{Mn}}}Dj}{c{{Dh{N`}}}Dj}{c{{Dh{AFd}}}Dj}{c{{Dh{Kf}}}Dj}{c{{Dh{AFf}}}Dj}{c{{Dh{Kb}}}Dj}{c{{Dh{Kd}}}Dj}{c{{Dh{AFh}}}Dj}{c{{Dh{AGb}}}Dj}{c{{Dh{AGf}}}Dj}{c{{Dh{Nb}}}Dj}{c{{Dh{AHb}}}Dj}{c{{Dh{Md}}}Dj}{c{{Dh{AHl}}}Dj}```````{K`{{h{Eb}}}}{Kb{{h{Eb}}}}{Kd{{h{Eb}}}}```````````````````{{MjMj}Dd}{{LhLh}Dd}{{FnFn}Dd}{{A@hA@h}Dd}{{A@jA@j}Dd}{{A@lA@l}Dd}{{A@nA@n}Dd}{{G`G`}Dd}{{NdNd}Dd}{{NfNf}Dd}{{NhNh}Dd}{{NjNj}Dd}{{NlNl}Dd}{{NnNn}Dd}{{O`O`}Dd}{{ObOb}Dd}{{AA`AA`}Dd}{{OdOd}Dd}{{OfOf}Dd}{{OhOh}Dd}{{OjOj}Dd}{{OlOl}Dd}{{OnOn}Dd}{{A@`A@`}Dd}{{LjLj}Dd}{{LlLl}Dd}{{JdJd}Dd}{{A@bA@b}Dd}{{GbGb}Dd}{{AAbAAb}Dd}{{GdGd}Dd}{{HjHj}Dd}{{AAdAAd}Dd}{{AAfAAf}Dd}{{AAhAAh}Dd}{{AAjAAj}Dd}{{AAlAAl}Dd}{{AAnAAn}Dd}{{AB`AB`}Dd}{{ABbABb}Dd}{{GfGf}Dd}{{GhGh}Dd}{{ABdABd}Dd}{{ABfABf}Dd}{{ABhABh}Dd}{{ABjABj}Dd}{{ABlABl}Dd}{{GjGj}Dd}{{GlGl}Dd}{{ABnABn}Dd}{{HhHh}Dd}{{LnLn}Dd}{{AC`AC`}Dd}{{ACbACb}Dd}{{ACdACd}Dd}{{ACfACf}Dd}{{AChACh}Dd}{{ACjACj}Dd}{{AClACl}Dd}{{ACnACn}Dd}{{AD`AD`}Dd}{{ADbADb}Dd}{{ADdADd}Dd}{{ADfADf}Dd}{{M`M`}Dd}{{ADjADj}Dd}{{ADlADl}Dd}{{ADnADn}Dd}{{IfIf}Dd}{{AE`AE`}Dd}{{HdHd}Dd}{{MbMb}Dd}{{AEbAEb}Dd}{{AEdAEd}Dd}{{IhIh}Dd}{{AEfAEf}Dd}{{MlMl}Dd}{{AEhAEh}Dd}{{AEjAEj}Dd}{{AElAEl}Dd}{{AEnAEn}Dd}{{MnMn}Dd}{{N`N`}Dd}{{AF`AF`}Dd}{{AFbAFb}Dd}{{AFdAFd}Dd}{{KfKf}Dd}{{AFfAFf}Dd}{{KbKb}Dd}{{KdKd}Dd}{{AFhAFh}Dd}{{IjIj}Dd}{{AFjAFj}Dd}{{AFlAFl}Dd}{{H`H`}Dd}{{AFnAFn}Dd}{{AG`AG`}Dd}{{IdId}Dd}{{AGbAGb}Dd}{{IlIl}Dd}{{LfLf}Dd}{{AGdAGd}Dd}{{InIn}Dd}{{AGfAGf}Dd}{{AGhAGh}Dd}{{AGjAGj}Dd}{{J`J`}Dd}{{NbNb}Dd}{{AGlAGl}Dd}{{AGnAGn}Dd}{{{Jh{c}}{Jh{c}}}DdEd}{{{I`{c}}{I`{c}}}DdEd}{{AH`AH`}Dd}{{AHbAHb}Dd}{{MdMd}Dd}{{AHdAHd}Dd}{{MfMf}Dd}{{MhMh}Dd}{{Jb{AHh{AHf}}}Dd}{{JbJb}Dd}{{HbHb}Dd}{{JfJf}Dd}{{ce}Dd{}{}}00000000000000000000000000000000000000000000000`````````{{}{{`{AHn}}}}``````````{{GjBh}{{h{Hn}}}}{FnAI`}{A@hAI`}{A@nAI`}{G`AI`}{NdAI`}{NfAI`}{NhAI`}{NjAI`}{NlAI`}{NnAI`}{O`AI`}{ObAI`}{AA`AI`}{OdAI`}{OfAI`}{OhAI`}{OjAI`}{OlAI`}{OnAI`}{A@`AI`}{LjAI`}{LlAI`}{JdAI`}{A@bAI`}{GbAI`}{AAbAI`}{GdAI`}{HjAI`}{AAdAI`}{AAfAI`}{AAlAI`}{AAnAI`}{AB`AI`}{ABbAI`}{GfAI`}{GhAI`}{ABdAI`}{ABhAI`}{ABjAI`}{ABlAI`}{GjAI`}{GlAI`}{HhAI`}{LnAI`}{AC`AI`}{ACbAI`}{ACdAI`}{ACfAI`}{AChAI`}{ACjAI`}{AClAI`}{ACnAI`}{AD`AI`}{ADbAI`}{ADdAI`}{ADfAI`}{ADjAI`}{ADlAI`}{ADnAI`}{IfAI`}{AE`AI`}{HdAI`}{MbAI`}{AEbAI`}{AEdAI`}{IhAI`}{AEhAI`}{AEjAI`}{AElAI`}{AEnAI`}{AF`AI`}{IjAI`}{AFjAI`}{AFlAI`}{H`AI`}{AFnAI`}{AG`AI`}{IdAI`}{IlAI`}{LfAI`}{AGdAI`}{InAI`}{AGjAI`}{J`AI`}{AGlAI`}{AGnAI`}{{{Jh{c}}}AI`Ah}{{{I`{c}}}AI`Ah}{MdAI`}{MfAI`}{MhAI`}{HbAI`}{JfAI`}``````````{{MjEf}{{Dh{dEh}}}}0{{A@dEf}{{Dh{dEh}}}}0{{LhEf}{{Dh{dEh}}}}0{{A@fEf}{{Dh{dEh}}}}0{{FnEf}En}{{A@hEf}En}{{A@jEf}En}{{A@lEf}En}{{A@nEf}En}{{G`Ef}En}{{NdEf}En}{{NfEf}En}{{NhEf}En}{{NjEf}En}{{NlEf}En}{{NnEf}En}{{O`Ef}En}{{ObEf}En}{{AA`Ef}En}{{OdEf}En}{{OfEf}En}{{OhEf}En}{{OjEf}En}{{OlEf}En}{{OnEf}En}{{A@`Ef}En}{{LjEf}En}{{LlEf}En}0{{JdEf}En}{{A@bEf}En}{{GbEf}En}{{AAbEf}En}{{GdEf}En}{{HjEf}En}{{AAdEf}En}{{AAfEf}En}{{AAhEf}En}0{{AAjEf}En}0{{AAlEf}En}{{AAnEf}En}{{AB`Ef}En}{{ABbEf}En}{{GfEf}En}{{GhEf}En}{{ABdEf}En}0{{ABfEf}En}0{{ABhEf}En}{{ABjEf}En}{{ABlEf}En}{{GjEf}En}{{GlEf}En}{{ABnEf}En}{{HhEf}En}{{LnEf}En}{{AC`Ef}En}{{ACbEf}En}{{ACdEf}En}{{ACfEf}En}{{AChEf}En}{{ACjEf}En}{{AClEf}En}{{ACnEf}En}{{AD`Ef}En}{{ADbEf}En}{{ADdEf}En}{{ADfEf}En}{{M`Ef}En}0{{ADhEf}En}0{{AIbEf}En}0{{ADjEf}En}{{ADlEf}En}{{ADnEf}En}{{IfEf}En}{{AE`Ef}En}{{HdEf}En}{{MbEf}En}{{AEbEf}En}{{AEdEf}En}{{IhEf}En}{{AEfEf}En}0{{MlEf}En}0{{AEhEf}En}{{AEjEf}En}{{AElEf}En}{{AEnEf}En}{{MnEf}En}0{{N`Ef}En}0{{AF`Ef}En}{{AFbEf}En}{{AFdEf}En}0{{AIdEf}En}0{{KfEf}En}0{{AIfEf}En}0{{AFfEf}En}{{KbEf}En}{{KdEf}En}{{AFhEf}En}{{IjEf}En}{{AFjEf}En}{{AFlEf}En}{{H`Ef}En}{{AFnEf}En}{{AG`Ef}En}{{IdEf}En}{{AGbEf}En}0{{IlEf}En}{{LfEf}En}{{AGdEf}En}{{InEf}En}{{AGfEf}En}0{{AGhEf}En}{{AGjEf}En}{{J`Ef}En}{{NbEf}En}0{{AGlEf}En}{{AGnEf}En}{{{Jh{c}}Ef}EnEj}{{{I`{c}}Ef}EnEj}{{AIhEf}En}0{{AH`Ef}En}0{{AHbEf}En}0{{MdEf}En}0{{AIjEf}En}0{{AHdEf}En}0{{MfEf}En}{{MhEf}En}{{JbEf}En}0{{HbEf}En}{{JfEf}En}{{AHlEf}En}`````````{cc{}}000000000000000{{{Hl{Hn}}}Nn}11111111111111111{GbAAb}22{cHj{{Aj{Eb}}}}333{cAAh{}}4{cAAj{}}555555555{cABh{{Aj{Hn}}}}6666{{{Fh{Eb}}}ABn}7{EbHh}88{EbLn}99999999999999{KnAIb}::::::{BhHd}{EbHd}<{EbMb}={BhMb}>>>>>>>>>>>>>>>>>>>>>>{GjIj}???{{{Hl{Hn}}}AFn}{cc{}}00{IlId}1{IdIl}222{{{Hl{c}}}AGd{{Aj{Eb}}}}333333333{{{Fl{c}}}{{I`{c}}}{}}4444{AIlMd}555{EbMf}6{EbMh}7{{{AHh{AHf}}}Jb}8888{Gb{{h{Kh}}}}{Gb{{h{Nd}}}}{Gb{{h{Nf}}}}{Gb{{h{Nh}}}}{Gb{{h{Nj}}}}{Gb{{h{Nl}}}}{Gb{{h{Nn}}}}{Gb{{h{O`}}}}{Gb{{h{Ob}}}}{Gb{{h{Od}}}}{Gb{{h{Of}}}}{Gb{{h{Oh}}}}{Gb{{h{Oj}}}}{Gb{{h{Ol}}}}{Gb{{h{On}}}}{Gb{{h{A@`}}}}{Gb{{h{Jd}}}}{Gb{{h{A@b}}}}{Gd{{h{ABd}}}}{gAEd{{Aj{Eb}}}{{Aj{Eb}}}{{E`{}{{Dn{{Fj{ce}}}}}}}}{e{{I`{c}}}{}{{E`{}{{Dn{{Af{c}}}}}}}}{{{Df{Cb}}}{{Dh{{h{AFb}}Kn}}}}{{{Fj{{Af{c}}{Af{e}}}}}{{Ib{}{{L`{c}}{Lb{e}}}}}{{Ld{Bh}}}A`}{{{Fj{{Af{c}}{Af{e}}}}}Lf{}{}}{Bh{{Dh{Mj}}}}{Bh{{Dh{Lh}}}}{Bh{{Dh{Llc}}}{}}{Bh{{Dh{AAhc}}}{}}{Bh{{Dh{AAjc}}}{}}{Bh{{Dh{ABfc}}}{}}{Bh{{Dh{M`c}}}{}}{Bh{{Dh{Mlc}}}{}}{Bh{{Dh{Mnc}}}{}}{Bh{{Dh{N`c}}}{}}{Bh{{Dh{AFdc}}}{}}{Bh{{Dh{Kfc}}}{}}{Bh{{Dh{AGbc}}}{}}{Bh{{Dh{Nbc}}}{}}{Bh{{Dh{AH`c}}}{}}{Bh{{Dh{AHbc}}}{}}{Bh{{Dh{Mdc}}}{}}{Bh{{Dh{AHdc}}}{}}{{{Af{Hn}}}{{Af{Mj}}}}{{{Af{Hn}}}{{Af{Lh}}}}{{{Af{Hn}}}{{Af{Fn}}}}{{{Af{Hn}}}{{Af{A@h}}}}{{{Af{Hn}}}{{Af{A@n}}}}{{{Af{Hn}}}{{Af{G`}}}}{{{Af{Hn}}}{{Af{Nd}}}}{{{Af{Hn}}}{{Af{Nf}}}}{{{Af{Hn}}}{{Af{Nh}}}}{{{Af{Hn}}}{{Af{Nj}}}}{{{Af{Hn}}}{{Af{Nl}}}}{{{Af{Hn}}}{{Af{Nn}}}}{{{Af{Hn}}}{{Af{O`}}}}{{{Af{Hn}}}{{Af{Ob}}}}{{{Af{Hn}}}{{Af{AA`}}}}{{{Af{Hn}}}{{Af{Od}}}}{{{Af{Hn}}}{{Af{Of}}}}{{{Af{Hn}}}{{Af{Oh}}}}{{{Af{Hn}}}{{Af{Oj}}}}{{{Af{Hn}}}{{Af{Ol}}}}{{{Af{Hn}}}{{Af{On}}}}{{{Af{Hn}}}{{Af{A@`}}}}{{{Af{Hn}}}{{Af{Lj}}}}{{{Af{Hn}}}{{Af{Ll}}}}{{{Af{Hn}}}{{Af{Jd}}}}{{{Af{Hn}}}{{Af{A@b}}}}{{{Af{Hn}}}{{Af{Gb}}}}{{{Af{Hn}}}{{Af{AAb}}}}{{{Af{Hn}}}{{Af{Gd}}}}{{{Af{Hn}}}{{Af{Hj}}}}{{{Af{Hn}}}{{Af{AAd}}}}{{{Af{Hn}}}{{Af{AAf}}}}{{{Af{Hn}}}{{Af{AAh}}}}{{{Af{Hn}}}{{Af{AAj}}}}{{{Af{Hn}}}{{Af{AAl}}}}{{{Af{Hn}}}{{Af{AAn}}}}{{{Af{Hn}}}{{Af{AB`}}}}{{{Af{Hn}}}{{Af{ABb}}}}{{{Af{Hn}}}{{Af{Gf}}}}{{{Af{Hn}}}{{Af{Gh}}}}{{{Af{Hn}}}{{Af{ABd}}}}{{{Af{Hn}}}{{Af{ABf}}}}{{{Af{Hn}}}{{Af{ABh}}}}{{{Af{Hn}}}{{Af{ABj}}}}{{{Af{Hn}}}{{Af{ABl}}}}{{{Af{Hn}}}{{Af{Gj}}}}{{{Af{Hn}}}{{Af{Gl}}}}{{{Af{Hn}}}{{Af{ABn}}}}{{{Af{Hn}}}{{Af{Hh}}}}{{{Af{Hn}}}{{Af{Ln}}}}{{{Af{Hn}}}{{Af{AC`}}}}{{{Af{Hn}}}{{Af{ACb}}}}{{{Af{Hn}}}{{Af{ACd}}}}{{{Af{Hn}}}{{Af{ACf}}}}{{{Af{Hn}}}{{Af{ACh}}}}{{{Af{Hn}}}{{Af{ACj}}}}{{{Af{Hn}}}{{Af{ACl}}}}{{{Af{Hn}}}{{Af{ACn}}}}{{{Af{Hn}}}{{Af{AD`}}}}{{{Af{Hn}}}{{Af{ADb}}}}{{{Af{Hn}}}{{Af{ADd}}}}{{{Af{Hn}}}{{Af{ADf}}}}{{{Af{Hn}}}{{Af{M`}}}}{{{Af{Hn}}}{{Af{ADj}}}}{{{Af{Hn}}}{{Af{ADl}}}}{{{Af{Hn}}}{{Af{ADn}}}}{{{Af{Hn}}}{{Af{If}}}}{{{Af{Hn}}}{{Af{AE`}}}}{{{Af{Hn}}}{{Af{Hd}}}}{{{Af{Hn}}}{{Af{Mb}}}}{{{Af{Hn}}}{{Af{AEb}}}}{{{Af{Hn}}}{{Af{AEd}}}}{{{Af{Hn}}}{{Af{Ih}}}}{{{Af{Hn}}}{{Af{AEh}}}}{{{Af{Hn}}}{{Af{AEj}}}}{{{Af{Hn}}}{{Af{AEl}}}}{{{Af{Hn}}}{{Af{AEn}}}}{{{Af{Hn}}}{{Af{AF`}}}}{{{Af{Hn}}}{{Af{Ij}}}}{{{Af{Hn}}}{{Af{AFj}}}}{{{Af{Hn}}}{{Af{AFl}}}}{{{Af{Hn}}}{{Af{H`}}}}{{{Af{Hn}}}{{Af{AFn}}}}{{{Af{Hn}}}{{Af{AG`}}}}{{{Af{Hn}}}{{Af{Id}}}}{{{Af{Hn}}}{{Af{AGb}}}}{{{Af{Hn}}}{{Af{Il}}}}{{{Af{Hn}}}{{Af{Lf}}}}{{{Af{Hn}}}{{Af{AGd}}}}{{{Af{Hn}}}{{Af{In}}}}{{{Af{Hn}}}{{Af{AGf}}}}{{{Af{Hn}}}{{Af{AGh}}}}{{{Af{Hn}}}{{Af{AGj}}}}{{{Af{Hn}}}{{Af{J`}}}}{{{Af{Hn}}}{{Af{Nb}}}}{{{Af{Hn}}}{{Af{AGl}}}}{{{Af{Hn}}}{{Af{AGn}}}}{{{Af{Hn}}}{{Af{{Jh{c}}}}}AIn}{{{Af{Hn}}}{{Af{{I`{c}}}}}AIn}{{{Af{Hn}}}{{Af{AH`}}}}{{{Af{Hn}}}{{Af{AHb}}}}{{{Af{Hn}}}{{Af{Md}}}}{{{Af{Hn}}}{{Af{AHd}}}}{{{Af{Hn}}}{{Af{Mf}}}}{{{Af{Hn}}}{{Af{Mh}}}}{{{Af{Hn}}}{{Af{Jb}}}}{{{Af{Hn}}}{{Af{Hb}}}}{{{Af{Hn}}}{{Af{Jf}}}}```{Gd{{h{c}}}Kh}{{AGdBh}{{h{Bh}}}}{{{I`{g}}i}{{h{{Af{e}}}}}{{Ld{Bh}}}A`{{Ib{}{{L`{c}}{Lb{e}}}}}{{Ld{Bh}}}}{{AEbBh}{{h{Bh}}}}{{GjBh}{{h{AJ`}}}}{{Gdc}{{h{Gb}}}{{Ld{Bh}}}}05{GdcKh}{{Gdce}Gb{{Aj{Eb}}}{{An{}{{Al{Gb}}}}}}{{GjBh}{{h{AJb}}}}{{GlBh}{{h{AJb}}}}{{ACbBh}{{h{Gn}}}}{{IfBh}{{h{AJb}}}}{{IjBh}{{h{AJb}}}}{{AFjBh}{{h{AJb}}}}{{{I`{g}}i}{{h{e}}}{{Ld{Bh}}}A`{{Ib{}{{L`{c}}{Lb{e}}}}}{{Ld{Bh}}}}```{{G`c}Dd{{Ld{Bh}}}}{{GjBh}Dd}{{Mjc}dF`}{{Llc}dF`}{{ABfc}dF`}{{Hdc}dF`}{{Mbc}dF`}{{AFdc}dF`}{{AGfc}dF`}{{AH`c}dF`}{{AHbc}dF`}{{Mdc}dF`}{{AHdc}dF`}{{Mfc}dF`}{{Mhc}dF`}``````````````````````````````````{{GdEbGb}d}{{{I`{g}}c{Af{e}}}{{h{{Af{e}}}}}{{Ld{Bh}}}A`{{Ib{}{{L`{c}}{Lb{e}}}}}}```{ce{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{KhGb}{NdGb}{NfGb}{NhGb}{NjGb}{NlGb}{NnGb}{O`Gb}{ObGb}{OdGb}{OfGb}{OhGb}{OjGb}{OlGb}{OnGb}{A@`Gb}{JdGb}{A@bGb}{ACb{{Hl{AC`}}}}{HdEb}{MdEb}{MfEb}{MhEb}{Jb{{AHh{AHf}}}}{{{Ib{}{{L`{c}}{Lb{e}}}}}{{Fj{{Af{c}}{Af{e}}}}}{{Ld{Bh}}}A`}{Lf{{Fj{{Af{c}}{Af{e}}}}}{}{}}{MjHn}{LhHn}{FnHn}{A@hHn}{A@nHn}{G`Hn}{NdHn}{NfHn}{NhHn}{NjHn}{NlHn}{NnHn}{O`Hn}{ObHn}{AA`Hn}{OdHn}{OfHn}{OhHn}{OjHn}{OlHn}{OnHn}{A@`Hn}{LjHn}{LlHn}{JdHn}{A@bHn}{GbHn}{AAbHn}{GdHn}{HjHn}{AAdHn}{AAfHn}{AAhHn}{AAjHn}{AAlHn}{AAnHn}{AB`Hn}{ABbHn}{GfHn}{GhHn}{ABdHn}{ABfHn}{ABhHn}{ABjHn}{ABlHn}{GjHn}{GlHn}{ABnHn}{HhHn}{LnHn}{AC`Hn}{ACbHn}{ACdHn}{ACfHn}{AChHn}{ACjHn}{AClHn}{ACnHn}{AD`Hn}{ADbHn}{ADdHn}{ADfHn}{M`Hn}{ADjHn}{ADlHn}{ADnHn}{IfHn}{AE`Hn}{HdHn}{MbHn}{AEbHn}{AEdHn}{IhHn}{AEhHn}{AEjHn}{AElHn}{AEnHn}{AF`Hn}{IjHn}{AFjHn}{AFlHn}{H`Hn}{AFnHn}{AG`Hn}{IdHn}{AGbHn}{IlHn}{LfHn}{AGdHn}{InHn}{AGfHn}{AGhHn}{AGjHn}{J`Hn}{NbHn}{AGlHn}{AGnHn}{{{Jh{c}}}HnAh}{{{I`{c}}}HnAh}{AH`Hn}{AHbHn}{MdHn}{AHdHn}{MfHn}{MhHn}{JbHn}{HbHn}{JfHn}``{MdDd}{FnDd}{A@hDd}{A@nDd}{G`Dd}{NdDd}{NfDd}{NhDd}{NjDd}{NlDd}{NnDd}{O`Dd}{ObDd}{AA`Dd}{OdDd}{OfDd}{OhDd}{OjDd}{OlDd}{OnDd}{A@`Dd}{LjDd}{LlDd}{JdDd}{A@bDd}{GbDd}{AAbDd}{GdDd}{HjDd}{AAdDd}{AAfDd}{AAlDd}{AAnDd}{AB`Dd}{ABbDd}{GfDd}{GhDd}{ABdDd}{ABhDd}{ABjDd}{ABlDd}{GjDd}{GlDd}{ABnDd}{HhDd}{LnDd}{AC`Dd}{ACbDd}{ACdDd}{ACfDd}{AChDd}{ACjDd}{AClDd}{ACnDd}{AD`Dd}{ADbDd}{ADdDd}{ADfDd}{ADjDd}{ADlDd}{ADnDd}{IfDd}{AE`Dd}{HdDd}{MbDd}{AEbDd}{AEdDd}{IhDd}{AEhDd}{AEjDd}{AElDd}{AEnDd}{AF`Dd}{IjDd}{AFjDd}{AFlDd}{H`Dd}{AFnDd}{AG`Dd}{IdDd}{IlDd}{LfDd}{AGdDd}{InDd}{AGhDd}{AGjDd}{J`Dd}{AGlDd}{AGnDd}{{{Jh{c}}}DdAJd}{{{I`{c}}}DdAJd}{MdDd}{MfDd}{MhDd}{HbDd}{JfDd}{MjDd}{LhDd}{FnDd}{A@hDd}{A@nDd}{G`Dd}{NdDd}{NfDd}{NhDd}{NjDd}{NlDd}{NnDd}{O`Dd}{ObDd}{AA`Dd}{OdDd}{OfDd}{OhDd}{OjDd}{OlDd}{OnDd}{A@`Dd}{LjDd}{LlDd}{JdDd}{A@bDd}{GbDd}{AAbDd}{GdDd}{HjDd}{AAdDd}{AAfDd}{AAhDd}{AAjDd}{AAlDd}{AAnDd}{AB`Dd}{ABbDd}{GfDd}{GhDd}{ABdDd}{ABfDd}{ABhDd}{ABjDd}{ABlDd}{GjDd}{GlDd}{ABnDd}{HhDd}{LnDd}{AC`Dd}{ACbDd}{ACdDd}{ACfDd}{AChDd}{ACjDd}{AClDd}{ACnDd}{AD`Dd}{ADbDd}{ADdDd}{ADfDd}{M`Dd}{ADjDd}{ADlDd}{ADnDd}{IfDd}{AE`Dd}{HdDd}{MbDd}{AEbDd}{AEdDd}{IhDd}{AEhDd}{AEjDd}{AElDd}{AEnDd}{AF`Dd}{IjDd}{AFjDd}{AFlDd}{H`Dd}{AFnDd}{AG`Dd}{IdDd}{AGbDd}{IlDd}{LfDd}{AGdDd}{InDd}{AGfDd}{AGhDd}{AGjDd}{J`Dd}{NbDd}{AGlDd}{AGnDd}{{{Jh{c}}}DdAJd}{{{I`{c}}}DdAJd}{AH`Dd}{AHbDd}{MdDd}{AHdDd}{MfDd}{MhDd}{JbDd}{HbDd}{JfDd}{AFdDd}`0{ABfDd}{{}Dd}0000000`29{BhDd}{AJfAJh}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`{{{Ib{}{{L`{c}}{Lb{e}}}}}{{h{Bh}}}{{Ld{Bh}}}A`}0```````````````````{{GjBh}{{h{Gn}}}}`````{{ADfADf}d}``````````````````````{AHdBh}`````````````````{{}Gd}{{}ABf}{cHd{{Ld{Bh}}}}{cMb{{Ld{Bh}}}}{{{Fl{c}}}{{Jh{c}}}{}}````````````````````````````````````````````````````````````````````````{{{Df{Cb}}}{{Dh{A@lKn}}}}{Bh{{Dh{AE`AJj}}}}{BhAEd}{{{Df{Cb}}}{{Dh{KbKn}}}}{{{Df{Cb}}}{{Dh{AFhKn}}}}{c{{Dh{Mdc}}}{{Ld{Bh}}{Aj{Eb}}}}{Gj{{h{AJl}}}}{{MjMj}{{h{Db}}}}{{ABfABf}{{h{Db}}}}{{HdHd}{{h{Db}}}}{{MbMb}{{h{Db}}}}{{AFdAFd}{{h{Db}}}}{{AGfAGf}{{h{Db}}}}{{AH`AH`}{{h{Db}}}}{{AHbAHb}{{h{Db}}}}{{MdMd}{{h{Db}}}}{{AHdAHd}{{h{Db}}}}{{MfMf}{{h{Db}}}}{{MhMh}{{h{Db}}}}{{Jb{AHh{AHf}}}{{h{Db}}}}{{JbJb}{{h{Db}}}}````````{{{I`{g}}i}{{h{Cd}}}{{Ld{Bh}}}A`{{Ib{}{{L`{c}}{Lb{e}}}}}{{Ld{Bh}}}}``````{{Fncl}nf}{{A@hcl}nf}{{A@ncl}nf}{{G`cl}nf}{{Ndcl}nf}{{Nfcl}nf}{{Nhcl}nf}{{Njcl}nf}{{Nlcl}nf}{{Nncl}nf}{{O`cl}nf}{{Obcl}nf}{{AA`cl}nf}{{Odcl}nf}{{Ofcl}nf}{{Ohcl}nf}{{Ojcl}nf}{{Olcl}nf}{{Oncl}nf}{{A@`cl}nf}{{Ljcl}nf}{{Llcl}nf}{{Jdcl}nf}{{A@bcl}nf}{{Gbcl}nf}{{AAbcl}nf}{{Gdcl}nf}{{Hjcl}nf}{{AAdcl}nf}{{AAfcl}nf}{{AAlcl}nf}{{AAncl}nf}{{AB`cl}nf}{{ABbcl}nf}{{Gfcl}nf}{{Ghcl}nf}{{ABhcl}nf}{{ABjcl}nf}{{ABlcl}nf}{{Gjcl}nf}{{Glcl}nf}{{Hhcl}nf}{{Lncl}nf}{{AC`cl}nf}{{ACbcl}nf}{{ACdcl}nf}{{ACfcl}nf}{{AChcl}nf}{{ACjcl}nf}{{AClcl}nf}{{ACncl}nf}{{ADdcl}nf}{{ADfcl}nf}{{M`cl}nf}{{ADncl}nf}{{Ifcl}nf}{{AE`cl}nf}{{Hdcl}nf}{{Mbcl}nf}{{AEbcl}nf}{{AEdcl}nf}{{Ihcl}nf}{{AEhcl}nf}{{AEjcl}nf}{{AElcl}nf}{{AEncl}nf}{{AF`cl}nf}{{Ijcl}nf}{{AFjcl}nf}{{AFlcl}nf}{{H`cl}nf}{{AFncl}nf}{{AG`cl}nf}{{Idcl}nf}{{AGbcl}nf}{{Ilcl}nf}{{Lfcl}nf}{{AGdcl}nf}{{Incl}nf}{{AGhcl}nf}{{AGjcl}nf}{{J`cl}nf}{{AGlcl}nf}{{AGncl}nf}{{{Jh{c}}el}nA`f}{{{I`{c}}el}n{A`Ib}f}{{Mdcl}nf}{{Mfcl}nf}{{Mhcl}nf}{{Hbcl}nf}{{Jfcl}nf}{{Fnjcl}nf}{{A@hjcl}nf}{{A@njcl}nf}{{G`jcl}nf}{{Ndjcl}nf}{{Nfjcl}nf}{{Nhjcl}nf}{{Njjcl}nf}{{Nljcl}nf}{{Nnjcl}nf}{{O`jcl}nf}{{Objcl}nf}{{AA`jcl}nf}{{Odjcl}nf}{{Ofjcl}nf}{{Ohjcl}nf}{{Ojjcl}nf}{{Oljcl}nf}{{Onjcl}nf}{{A@`jcl}nf}{{Ljjcl}nf}{{Lljcl}nf}{{Jdjcl}nf}{{A@bjcl}nf}{{Gbjcl}nf}{{AAbjcl}nf}{{Gdjcl}nf}{{Hjjcl}nf}{{AAdjcl}nf}{{AAfjcl}nf}{{AAljcl}nf}{{AAnjcl}nf}{{AB`jcl}nf}{{ABbjcl}nf}{{Gfjcl}nf}{{Ghjcl}nf}{{ABhjcl}nf}{{ABjjcl}nf}{{ABljcl}nf}{{Gjjcl}nf}{{Gljcl}nf}{{Hhjcl}nf}{{Lnjcl}nf}{{AC`jcl}nf}{{ACbjcl}nf}{{ACdjcl}nf}{{ACfjcl}nf}{{AChjcl}nf}{{ACjjcl}nf}{{ACljcl}nf}{{ACnjcl}nf}{{ADdjcl}nf}{{ADfjcl}nf}{{M`jcl}nf}{{ADnjcl}nf}{{Ifjcl}nf}{{AE`jcl}nf}{{Hdjcl}nf}{{Mbjcl}nf}{{AEbjcl}nf}{{AEdjcl}nf}{{Ihjcl}nf}{{AEhjcl}nf}{{AEjjcl}nf}{{AEljcl}nf}{{AEnjcl}nf}{{AF`jcl}nf}{{Ijjcl}nf}{{AFjjcl}nf}{{AFljcl}nf}{{H`jcl}nf}{{AFnjcl}nf}{{AG`jcl}nf}{{Idjcl}nf}{{AGbjcl}nf}{{Iljcl}nf}{{Lfjcl}nf}{{AGdjcl}nf}{{Injcl}nf}{{AGhjcl}nf}{{AGjjcl}nf}{{J`jcl}nf}{{AGljcl}nf}{{AGnjcl}nf}{{{Jh{c}}jel}nA`f}{{{I`{c}}jel}n{A`Ib}f}{{Mdjcl}nf}{{Mfjcl}nf}{{Mhjcl}nf}{{Jbjcl}nf}{{Hbjcl}nf}{{Jfjcl}nf}``````````````````````````````{Gd{{h{c}}}Kh}{{{I`{g}}i}{{h{{Af{e}}}}}{{Ld{Bh}}}A`{{Ib{}{{L`{c}}{Lb{e}}}}}{{Ld{Bh}}}}{{Gdc}{{h{Gb}}}{{Ld{Bh}}}}``````````````{{}Eb}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000```````````{GjBh}``0````````{{Mjc}DhJj}{{Lhc}DhJj}{{A@jc}DhJj}{{A@lc}DhJj}{A@l{{Dh{{Fh{Cb}}Kn}}}}{{Llc}DhJj}{{Hjc}DhJj}{{AAhc}DhJj}{{AAjc}DhJj}{{ABfc}DhJj}{{M`c}DhJj}{{Mlc}DhJj}{{Mnc}DhJj}{{N`c}DhJj}{{AFdc}DhJj}{{Kfc}DhJj}{{AFfc}DhJj}{{Kbc}DhJj}{Kb{{Dh{{Fh{Cb}}Kn}}}}{{Kdc}DhJj}{{AFhc}DhJj}{AFh{{Dh{{Fh{Cb}}Kn}}}}{{AGbc}DhJj}{{AGfc}DhJj}{{Nbc}DhJj}{{AHbc}DhJj}{{Mdc}DhJj}{{AHlc}DhJj}{{MjcAJn}DhJj}{{LhcAJn}DhJj}{{FncAJn}DhJj}{{A@hcAJn}DhJj}{{A@ncAJn}DhJj}{{G`cAJn}DhJj}{{NdcAJn}DhJj}{{NfcAJn}DhJj}{{NhcAJn}DhJj}{{NjcAJn}DhJj}{{NlcAJn}DhJj}{{NncAJn}DhJj}{{O`cAJn}DhJj}{{ObcAJn}DhJj}{{AA`cAJn}DhJj}{{OdcAJn}DhJj}{{OfcAJn}DhJj}{{OhcAJn}DhJj}{{OjcAJn}DhJj}{{OlcAJn}DhJj}{{OncAJn}DhJj}{{A@`cAJn}DhJj}{{LjcAJn}DhJj}{{LlcAJn}DhJj}{{JdcAJn}DhJj}{{A@bcAJn}DhJj}{{GbcAJn}DhJj}{{AAbcAJn}DhJj}{{GdcAJn}DhJj}{{HjcAJn}DhJj}{{AAdcAJn}DhJj}{{AAfcAJn}DhJj}{{AAhcAJn}DhJj}{{AAjcAJn}DhJj}{{AAlcAJn}DhJj}{{AAncAJn}DhJj}{{AB`cAJn}DhJj}{{ABbcAJn}DhJj}{{GfcAJn}DhJj}{{GhcAJn}DhJj}{{ABdcAJn}DhJj}{{ABfcAJn}DhJj}{{ABhcAJn}DhJj}{{ABjcAJn}DhJj}{{ABlcAJn}DhJj}{{GjcAJn}DhJj}{{GlcAJn}DhJj}{{ABncAJn}DhJj}{{HhcAJn}DhJj}{{LncAJn}DhJj}{{AC`cAJn}DhJj}{{ACbcAJn}DhJj}{{ACdcAJn}DhJj}{{ACfcAJn}DhJj}{{AChcAJn}DhJj}{{ACjcAJn}DhJj}{{AClcAJn}DhJj}{{ACncAJn}DhJj}{{AD`cAJn}DhJj}{{ADbcAJn}DhJj}{{ADdcAJn}DhJj}{{ADfcAJn}DhJj}{{M`cAJn}DhJj}{{ADjcAJn}DhJj}{{ADlcAJn}DhJj}{{ADncAJn}DhJj}{{IfcAJn}DhJj}{{AE`cAJn}DhJj}{{HdcAJn}DhJj}{{MbcAJn}DhJj}{{AEbcAJn}DhJj}{{AEdcAJn}DhJj}{{IhcAJn}DhJj}{{AEhcAJn}DhJj}{{AEjcAJn}DhJj}{{AElcAJn}DhJj}{{AEncAJn}DhJj}{{AF`cAJn}DhJj}{{IjcAJn}DhJj}{{AFjcAJn}DhJj}{{AFlcAJn}DhJj}{{H`cAJn}DhJj}{{AFncAJn}DhJj}{{AG`cAJn}DhJj}{{IdcAJn}DhJj}{{AGbcAJn}DhJj}{{IlcAJn}DhJj}{{LfcAJn}DhJj}{{AGdcAJn}DhJj}{{IncAJn}DhJj}{{AGfcAJn}DhJj}{{AGhcAJn}DhJj}{{AGjcAJn}DhJj}{{J`cAJn}DhJj}{{NbcAJn}DhJj}{{AGlcAJn}DhJj}{{AGncAJn}DhJj}{{{Jh{c}}eAJn}DhAhJj}{{{I`{c}}eAJn}DhAhJj}{{AH`cAJn}DhJj}{{AHbcAJn}DhJj}{{MdcAJn}DhJj}{{AHdcAJn}DhJj}{{MfcAJn}DhJj}{{MhcAJn}DhJj}{{JbcAJn}DhJj}{{HbcAJn}DhJj}{{JfcAJn}DhJj}````````````{AIb{{h{AK`}}}}``````````````{K`{{AHh{AHf}}}}{Kb{{AHh{AHf}}}}{Kd{{AHh{AHf}}}}```````````{{JbJb}c{}}````````````````{{GjBh}{{h{Bh}}}}````````````````````{ce{}{}}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{cEb{}}00000000000000000000000000000{K`C`}{KbC`}{KdC`}``````{c{{Dh{e}}}{}{}}0000000000000000000000000000000000000000000000{Ll{{Dh{ABfc}}}{}}11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111``````````{cJn{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000``{{ADdc}d{{An{AKb}{{Al{AKb}}}}}}`````````{Gj{{h{Bh}}}}{If{{h{Bh}}}}`````````{{{Ib{}{{L`{c}}{Lb{e}}}}}{{h{e}}}{{Ld{Bh}}}A`}0```{Fn{{Ab{Bf}}}}{A@h{{Ab{Bf}}}}{A@n{{Ab{Bf}}}}{G`{{Ab{Bf}}}}{Nd{{Ab{Bf}}}}{Nf{{Ab{Bf}}}}{Nh{{Ab{Bf}}}}{Nj{{Ab{Bf}}}}{Nl{{Ab{Bf}}}}{Nn{{Ab{Bf}}}}{O`{{Ab{Bf}}}}{Ob{{Ab{Bf}}}}{AA`{{Ab{Bf}}}}{Od{{Ab{Bf}}}}{Of{{Ab{Bf}}}}{Oh{{Ab{Bf}}}}{Oj{{Ab{Bf}}}}{Ol{{Ab{Bf}}}}{On{{Ab{Bf}}}}{A@`{{Ab{Bf}}}}{Lj{{Ab{Bf}}}}{Ll{{Ab{Bf}}}}{Jd{{Ab{Bf}}}}{A@b{{Ab{Bf}}}}{Gb{{Ab{Bf}}}}{AAb{{Ab{Bf}}}}{Gd{{Ab{Bf}}}}{Hj{{Ab{Bf}}}}{AAd{{Ab{Bf}}}}{AAf{{Ab{Bf}}}}{AAl{{Ab{Bf}}}}{AAn{{Ab{Bf}}}}{AB`{{Ab{Bf}}}}{ABb{{Ab{Bf}}}}{Gf{{Ab{Bf}}}}{Gh{{Ab{Bf}}}}{ABh{{Ab{Bf}}}}{ABj{{Ab{Bf}}}}{ABl{{Ab{Bf}}}}{Gj{{Ab{Bf}}}}{Gl{{Ab{Bf}}}}{Hh{{Ab{Bf}}}}{Ln{{Ab{Bf}}}}{AC`{{Ab{Bf}}}}{ACb{{Ab{Bf}}}}{ACd{{Ab{Bf}}}}{ACf{{Ab{Bf}}}}{ACh{{Ab{Bf}}}}{ACj{{Ab{Bf}}}}{ACl{{Ab{Bf}}}}{ACn{{Ab{Bf}}}}{ADd{{Ab{Bf}}}}{ADf{{Ab{Bf}}}}{M`{{Ab{Bf}}}}{ADn{{Ab{Bf}}}}{If{{Ab{Bf}}}}{AE`{{Ab{Bf}}}}{Hd{{Ab{Bf}}}}{Mb{{Ab{Bf}}}}{AEb{{Ab{Bf}}}}{AEd{{Ab{Bf}}}}{Ih{{Ab{Bf}}}}{AEh{{Ab{Bf}}}}{AEj{{Ab{Bf}}}}{AEl{{Ab{Bf}}}}{AEn{{Ab{Bf}}}}{AF`{{Ab{Bf}}}}{Ij{{Ab{Bf}}}}{AFj{{Ab{Bf}}}}{AFl{{Ab{Bf}}}}{H`{{Ab{Bf}}}}{AFn{{Ab{Bf}}}}{AG`{{Ab{Bf}}}}{Id{{Ab{Bf}}}}{AGb{{Ab{Bf}}}}{Il{{Ab{Bf}}}}{Lf{{Ab{Bf}}}}{AGd{{Ab{Bf}}}}{In{{Ab{Bf}}}}{AGh{{Ab{Bf}}}}{AGj{{Ab{Bf}}}}{J`{{Ab{Bf}}}}{AGl{{Ab{Bf}}}}{AGn{{Ab{Bf}}}}{{{Jh{c}}}{{Ab{Bf}}}A`}{{{I`{c}}}{{Ab{Bf}}}{A`Ib}}{Md{{Ab{Bf}}}}{Mf{{Ab{Bf}}}}{Mh{{Ab{Bf}}}}{Jb{{Ab{Bf}}}}{Hb{{Ab{Bf}}}}{Jf{{Ab{Bf}}}}```````````````````{ce{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`","D":"JDj","p":[[5,"Private",4829],[1,"unit"],[10,"Processor",2,4830],[6,"Option",4831],[5,"Meta",4832],[5,"ProcessingState",2,4833],[8,"ProcessingResult",2,4830],[10,"ProcessValue",2,4830],[5,"EnumSet",2,4834],[10,"EnumSetType",4835],[5,"Annotated",4836],[10,"IntoValue",4837],[10,"Into",4838],[17,"Output"],[10,"FnOnce",4839],[1,"u64"],[1,"array"],[10,"EnumSetTypeWithRepr",4835],[6,"ValueType",2,4833],[1,"str"],[6,"Chunk",2,4840],[1,"u128"],[1,"u16"],[1,"u32"],[1,"u8"],[1,"usize"],[5,"FieldAttrs",2,4833],[5,"Path",2,4833],[10,"Clone",4841],[6,"Pii",2,4833],[5,"CharacterSet",2,4833],[6,"ProcessingAction",2,4830],[6,"Ordering",4842],[1,"bool"],[1,"slice"],[6,"Result",4843],[10,"Deserializer",4844],[6,"Cow",4845],[17,"Item"],[10,"IntoIterator",4846],[5,"String",4847],[10,"PartialEq",4842],[5,"Formatter",4848],[5,"Error",4848],[10,"Debug",4848],[5,"UnknownValueTypeError",2,4833],[8,"Result",4848],[10,"Hasher",4849],[5,"EnumSetIter",4834],[5,"ProcessingStateIter",2,4833],[5,"Remark",4832],[5,"Vec",4850],[1,"tuple"],[8,"Array",4851],[5,"Breadcrumb",469,4852],[5,"ClientSdkInfo",469,4853],[6,"Context",469,4854],[5,"Contexts",469,4854],[6,"DebugImage",469,4855],[5,"DebugMeta",469,4855],[5,"Event",469,4856],[5,"Exception",469,4857],[1,"f64"],[5,"Frame",469,4858],[5,"Geo",469,4859],[5,"HeaderName",469,4860],[1,"i64"],[5,"LogEntry",469,4861],[5,"NativeImagePath",469,4855],[8,"Object",4851],[6,"Value",4851],[5,"PairList",469,4862],[10,"AsPair",469,4862],[5,"RawStacktrace",469,4858],[5,"Replay",469,4863],[5,"Request",469,4860],[5,"Span",469,4864],[5,"Stacktrace",469,4858],[5,"TemplateInfo",469,4865],[5,"Thread",469,4866],[5,"Timestamp",469,4862],[5,"TraceContext",469,4867],[5,"User",469,4859],[5,"Values",469,4862],[10,"Serializer",4868],[10,"Iterator",4869],[5,"TypeId",4870],[10,"SessionLike",469,4871],[5,"SessionUpdate",469,4871],[5,"SessionAggregateItem",469,4871],[6,"AbnormalMechanism",469,4871],[10,"DefaultContext",469,4854],[5,"Duration",4872],[6,"SessionErrored",469,4871],[5,"Error",4873],[17,"Key"],[17,"Value"],[10,"AsRef",4838],[5,"TagEntry",469,4874],[6,"SpanStatus",469,4875],[5,"TraceId",469,4867],[5,"SpanId",469,4867],[5,"Message",469,4861],[6,"NetworkReportPhases",469,4876],[5,"HeaderValue",469,4860],[5,"IpAddr",469,4862],[5,"LenientString",469,4862],[5,"JsonLenientString",469,4862],[6,"EventType",469,4877],[6,"CspDirective",469,4878],[6,"ExpectStapleResponseStatus",469,4878],[6,"ExpectStapleCertStatus",469,4878],[6,"TransactionSource",469,4879],[5,"AppContext",469,4880],[5,"BrowserContext",469,4881],[5,"CloudResourceContext",469,4882],[5,"DeviceContext",469,4883],[5,"GpuContext",469,4884],[5,"MonitorContext",469,4885],[5,"NelContext",469,4886],[5,"OsContext",469,4887],[5,"OtelContext",469,4888],[5,"PerformanceScoreContext",469,4889],[5,"ProfileContext",469,4890],[5,"ReplayContext",469,4891],[5,"ReprocessingContext",469,4892],[5,"ResponseContext",469,4893],[5,"RuntimeContext",469,4894],[5,"UserReportV2Context",469,4895],[5,"ParseEventTypeError",469,4877],[5,"ParseSpanStatusError",469,4875],[5,"Breakdowns",469,4896],[5,"DiscardedEvent",469,4897],[5,"ClientReport",469,4897],[5,"ClientSdkPackage",469,4853],[5,"LinuxDistribution",469,4887],[5,"ContextInner",469,4854],[5,"SystemSdkInfo",469,4855],[5,"AppleDebugImage",469,4855],[5,"DebugId",469,4855],[5,"CodeId",469,4855],[5,"NativeDebugImage",469,4855],[5,"SourceMapDebugImage",469,4855],[5,"JvmDebugImage",469,4855],[5,"ProguardDebugImage",469,4855],[5,"DeviceClass",469,4898],[5,"EventId",469,4856],[5,"ExtraValue",469,4856],[5,"EventProcessingError",469,4856],[5,"GroupingConfig",469,4856],[5,"Fingerprint",469,4899],[5,"Measurement",469,4900],[5,"Measurements",469,4900],[5,"CError",469,4901],[5,"MachException",469,4901],[5,"NsError",469,4901],[5,"PosixSignal",469,4901],[5,"MechanismMeta",469,4901],[5,"Mechanism",469,4901],[5,"SampleRate",469,4902],[5,"Metrics",469,4902],[5,"MetricsSummary",469,4903],[5,"MetricSummary",469,4903],[5,"ParseNetworkReportPhaseError",469,4876],[5,"BodyRaw",469,4876],[5,"NetworkReportRaw",469,4876],[5,"RelayInfo",469,4904],[5,"Cookies",469,4860],[5,"Headers",469,4860],[5,"Query",469,4860],[5,"InvalidSecurityError",469,4878],[5,"Csp",469,4878],[5,"SingleCertificateTimestamp",469,4878],[5,"ExpectCt",469,4878],[5,"Hpkp",469,4878],[5,"ExpectStaple",469,4878],[6,"SecurityReportType",469,4878],[6,"SessionStatus",469,4871],[5,"SessionAttributes",469,4871],[5,"SessionAggregates",469,4871],[5,"SpanData",469,4864],[5,"Route",469,4864],[5,"FrameVars",469,4858],[5,"FrameData",469,4858],[6,"InstructionAddrAdjustment",469,4858],[5,"Tags",469,4874],[6,"ThreadId",469,4866],[6,"LockReasonType",469,4866],[5,"LockReason",469,4866],[5,"TransactionNameChange",469,4879],[5,"TransactionInfo",469,4879],[5,"RegVal",469,4862],[5,"Addr",469,4862],[6,"Level",469,4862],[5,"Utc",4905],[5,"DateTime",4906],[10,"Default",4907],[5,"UserReport",469,4908],[10,"Serialize",4868],[8,"MetaMap",4836],[6,"NetworkReportError",469,4876],[5,"ParseSessionStatusError",469,4871],[5,"ParseAbnormalMechanismError",469,4871],[5,"InvalidRegVal",469,4862],[5,"ParseLevelError",469,4862],[6,"IpAddr",4909],[10,"FromValue",4837],[5,"GetterIter",4837],[6,"Val",4851],[10,"Empty",4837],[5,"SchemaGenerator",4910],[6,"Schema",4911],[5,"Error",4832],[5,"Release",4912],[6,"SkipSerialization",4837],[10,"Error",4913],[8,"MetricSummaryMapping",469,4903],[15,"Redaction",465],[15,"Text",465]],"r":[[8,4833],[9,4840],[15,4834],[20,4833],[31,4833],[32,4833],[33,4830],[34,4914],[35,4830],[36,4830],[37,4833],[38,4833],[39,4830],[50,4833],[52,4833],[64,4915],[160,4916],[265,4840],[297,4840],[356,4915],[373,4840],[470,4871],[472,4862],[480,4880],[482,4855],[484,4862],[490,4876],[491,4852],[492,4896],[494,4881],[495,4901],[498,4897],[499,4853],[500,4853],[502,4882],[503,4855],[507,4854],[508,4854],[509,4854],[510,4860],[512,4878],[515,4878],[521,4855],[522,4855],[523,4855],[525,4854],[528,4898],[529,4883],[530,4897],[536,4856],[537,4856],[538,4856],[539,4877],[540,4857],[542,4878],[545,4878],[548,4878],[549,4878],[550,4856],[553,4899],[556,4858],[558,4858],[560,4858],[561,4859],[564,4884],[565,4856],[567,4860],[568,4860],[569,4860],[570,4878],[576,4858],[582,4862],[583,4878],[584,4862],[585,4862],[587,4855],[590,4862],[591,4862],[592,4887],[593,4866],[594,4866],[596,4861],[598,4901],[601,4900],[602,4900],[603,4901],[604,4901],[606,4861],[607,4903],[608,4903],[609,4902],[610,4903],[613,4885],[614,4855],[615,4855],[619,4886],[620,4876],[621,4876],[622,4876],[627,4901],[631,4854],[632,4854],[634,4887],[636,4888],[642,4917],[643,4862],[644,4871],[645,4877],[646,4862],[647,4876],[650,4871],[651,4875],[655,4889],[658,4901],[661,4890],[663,4855],[665,4860],[666,4858],[668,4862],[669,4904],[670,4863],[672,4891],[676,4892],[677,4860],[682,4893],[684,4864],[687,4894],[688,4902],[694,4878],[695,4871],[696,4871],[697,4871],[698,4871],[699,4871],[700,4871],[701,4871],[702,4878],[705,4855],[706,4864],[707,4864],[708,4867],[709,4875],[710,4858],[716,4855],[717,4874],[718,4874],[720,4865],[721,4866],[722,4866],[723,4862],[725,4867],[726,4867],[728,4879],[729,4879],[730,4879],[743,4859],[744,4908],[747,4895],[748,4917],[750,4862],[1608,4862],[1994,4918]],"b":[[161,"impl-PartialEq%3CT%3E-for-EnumSet%3CT%3E"],[162,"impl-PartialEq-for-EnumSet%3CT%3E"],[163,"impl-PartialEq%3CEnumSet%3CValueType%3E%3E-for-ValueType"],[164,"impl-PartialEq-for-ValueType"],[176,"impl-Extend%3CT%3E-for-EnumSet%3CT%3E"],[177,"impl-Extend%3CEnumSet%3CT%3E%3E-for-EnumSet%3CT%3E"],[179,"impl-Debug-for-UnknownValueTypeError"],[180,"impl-Display-for-UnknownValueTypeError"],[181,"impl-Debug-for-ValueType"],[182,"impl-Display-for-ValueType"],[187,"impl-Debug-for-Path%3C\'a%3E"],[188,"impl-Display-for-Path%3C\'a%3E"],[189,"impl-Display-for-Chunk%3C\'_%3E"],[190,"impl-Debug-for-Chunk%3C\'a%3E"],[191,"impl-Debug-for-ProcessingAction"],[192,"impl-Display-for-ProcessingAction"],[209,"impl-FromIterator%3CEnumSet%3CT%3E%3E-for-EnumSet%3CT%3E"],[210,"impl-FromIterator%3CT%3E-for-EnumSet%3CT%3E"],[377,"impl-Sum%3C%26T%3E-for-EnumSet%3CT%3E"],[378,"impl-Sum-for-EnumSet%3CT%3E"],[379,"impl-Sum%3C%26EnumSet%3CT%3E%3E-for-EnumSet%3CT%3E"],[380,"impl-Sum%3CT%3E-for-EnumSet%3CT%3E"],[1933,"impl-PartialEq%3CDateTime%3CUtc%3E%3E-for-Timestamp"],[1934,"impl-PartialEq-for-Timestamp"],[2109,"impl-Display-for-EventType"],[2110,"impl-Debug-for-EventType"],[2111,"impl-Display-for-ParseEventTypeError"],[2112,"impl-Debug-for-ParseEventTypeError"],[2113,"impl-Debug-for-SpanStatus"],[2114,"impl-Display-for-SpanStatus"],[2115,"impl-Display-for-ParseSpanStatusError"],[2116,"impl-Debug-for-ParseSpanStatusError"],[2140,"impl-Debug-for-SpanId"],[2141,"impl-Display-for-SpanId"],[2150,"impl-Display-for-DebugId"],[2151,"impl-Debug-for-DebugId"],[2152,"impl-Debug-for-CodeId"],[2153,"impl-Display-for-CodeId"],[2160,"impl-Display-for-DeviceClass"],[2161,"impl-Debug-for-DeviceClass"],[2162,"impl-Debug-for-EventId"],[2163,"impl-Display-for-EventId"],[2184,"impl-Debug-for-NetworkReportPhases"],[2185,"impl-Display-for-NetworkReportPhases"],[2186,"impl-Display-for-ParseNetworkReportPhaseError"],[2187,"impl-Debug-for-ParseNetworkReportPhaseError"],[2188,"impl-Debug-for-NetworkReportError"],[2189,"impl-Display-for-NetworkReportError"],[2200,"impl-Debug-for-InvalidSecurityError"],[2201,"impl-Display-for-InvalidSecurityError"],[2202,"impl-Debug-for-CspDirective"],[2203,"impl-Display-for-CspDirective"],[2208,"impl-Debug-for-ExpectStapleResponseStatus"],[2209,"impl-Display-for-ExpectStapleResponseStatus"],[2210,"impl-Debug-for-ExpectStapleCertStatus"],[2211,"impl-Display-for-ExpectStapleCertStatus"],[2214,"impl-Display-for-SessionStatus"],[2215,"impl-Debug-for-SessionStatus"],[2216,"impl-Display-for-ParseSessionStatusError"],[2217,"impl-Debug-for-ParseSessionStatusError"],[2218,"impl-Debug-for-AbnormalMechanism"],[2219,"impl-Display-for-AbnormalMechanism"],[2220,"impl-Debug-for-ParseAbnormalMechanismError"],[2221,"impl-Display-for-ParseAbnormalMechanismError"],[2233,"impl-Debug-for-InstructionAddrAdjustment"],[2234,"impl-Display-for-InstructionAddrAdjustment"],[2239,"impl-Debug-for-ThreadId"],[2240,"impl-Display-for-ThreadId"],[2244,"impl-Display-for-TransactionSource"],[2245,"impl-Debug-for-TransactionSource"],[2250,"impl-Debug-for-InvalidRegVal"],[2251,"impl-Display-for-InvalidRegVal"],[2252,"impl-Debug-for-RegVal"],[2253,"impl-Display-for-RegVal"],[2254,"impl-Display-for-Addr"],[2255,"impl-Debug-for-Addr"],[2256,"impl-Display-for-IpAddr"],[2257,"impl-Debug-for-IpAddr"],[2258,"impl-Debug-for-ParseLevelError"],[2259,"impl-Display-for-ParseLevelError"],[2260,"impl-Display-for-Level"],[2261,"impl-Debug-for-Level"],[2264,"impl-Display-for-Timestamp"],[2265,"impl-Debug-for-Timestamp"],[2363,"impl-From%3C%26str%3E-for-HeaderName"],[2364,"impl-From%3CString%3E-for-HeaderName"],[2366,"impl-From%3CString%3E-for-HeaderValue"],[2368,"impl-From%3C%26str%3E-for-HeaderValue"],[3409,"impl-PartialOrd%3CDateTime%3CUtc%3E%3E-for-Timestamp"],[3410,"impl-PartialOrd-for-Timestamp"],[3779,"impl-Serialize-for-ClientReport"],[3780,"impl-ClientReport"],[3793,"impl-Serialize-for-SessionUpdate"],[3794,"impl-SessionUpdate"],[3796,"impl-Serialize-for-SessionAggregates"],[3797,"impl-SessionAggregates"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALgNuAAEAAQACwABABIAAQAWAAEAGQAAABsAAwAnAAAAKgAFADEAAAA0AAAANgAJAFUAAQBYAB4AegARAJIAAQCWAAAAnwABAKIAIADEAAAA0gABANoAAADtAAEA/wABABcBAAAaAQEAHQEBACIBBQArATkAZgEBAGoBAQB0AQEAdwEGAH8BDACXAQoAqwEKALcBCgDFAQAAxwEKANcBAADeAQEA5wECAPIBAQD4AQAA+gEAAP0BAAADAgEACgIAAA8CAAARAgAAEwIAABcCAAAhAgAAJAIDACsCAQAuAgAAMAIAADMCAAA3AgAAPQIBAEUCAABIAgAATQIBAFYCAABZAgAAXgIBAGECAABkAgAAaQIAAHACAQB1AgAAhQIAAIkCAQCSAgAAlAIAAJkCAACcAgAAnwIAAKICAQCnAgEArAIAALECAQC0AgUAvgIAAMMCAADHAgAAyQICAM4CAADUAgAA2gIAANwCAADhAgAA5QIBAO4CAAD0AnwAdgMFAIADAACMAwIAmAMDAKADAACiAwoArwMAALYDAADEAwUB3gQQAPAEEAACBQAADAX3AAkGDAA5BgIASQYAAFMGWwCwBjAA4wYXAAIHAgAYB6kA1wddAD4InwDhCAAA9wgAAAkJAAAMCQAAEAkAABIJAAAcCQAAIQkAACMJAAAmCQAANQkAADwJAQA/CQAAQQkAAFgJAABcCQAAYAkAAGIJAABmCQAAcAkAAHUJAAB5CQAAewkAAH0JAACDCRMAmQl+AB4KAQAlCgEAKAoCAC8KAAAxCgwA6QoQAP8KAAABC2wAcQvKAEAMBwBLDGEAzQwAAOAMAAD1DAAABQ0AACoNAABADQEARg0NAFoNAABjDbYAJQ4AAC0OAABJDmEAsw4AAMEOAwDGDgwA1A4BANcOcwBVDwAAVw8AAGQPAgBrDwAAcg8AAIkPAACYD5wAOxAGAUwRggDkEQAA6xFbAFQSAABaEoIA"}],\ ["relay_ffi",{"t":"FNNXNNNNNHHNNNNH","n":["Panic","borrow","borrow_mut","catch_unwind","description","fmt","fmt","from","into","set_panic_hook","take_last_error","to_string","try_from","try_into","type_id","with_last_error"],"q":[[0,"relay_ffi"],[16,"core::fmt"],[17,"anyhow"],[18,"core::option"],[19,"alloc::string"],[20,"core::result"],[21,"core::any"],[22,"core::ops::function"],[23,"relay_ffi_macros"]],"i":[0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,0],"f":"`{ce{}{}}0`{bd}{{bf}h}0{cc{}}3{{}j}{{}{{n{l}}}}{cA`{}}{c{{Ab{e}}}{}{}}0{cAd{}}{e{{n{c}}}{}{{Ah{l}{{Af{c}}}}}}","D":"Ab","p":[[5,"Panic",0],[1,"str"],[5,"Formatter",16],[8,"Result",16],[1,"unit"],[5,"Error",17],[6,"Option",18],[5,"String",19],[6,"Result",20],[5,"TypeId",21],[17,"Output"],[10,"FnOnce",22]],"r":[[3,23]],"b":[[5,"impl-Debug-for-Panic"],[6,"impl-Display-for-Panic"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAcAAwACAAEABgABAAwAAwA="}],\ ["relay_ffi_macros",{"t":"X","n":["catch_unwind"],"q":[[0,"relay_ffi_macros"]],"i":[0],"f":"`","D":"d","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ diff --git a/search.desc/relay_event_normalization/relay_event_normalization-desc-0-.js b/search.desc/relay_event_normalization/relay_event_normalization-desc-0-.js index d739157ff9..dcaa72e5a5 100644 --- a/search.desc/relay_event_normalization/relay_event_normalization-desc-0-.js +++ b/search.desc/relay_event_normalization/relay_event_normalization-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("relay_event_normalization", 0, "Event normalization and processing.\nConfiguration to define breakdown to be generated based on …\nConfiguration for computing breakdowns from data in the …\nDefines a builtin measurement.\nThe client hint variable names mirror the name of the “…\nCorrects clock drift based on the sender’s and receivers …\nContainer for global and project level MeasurementsConfig. …\nConfiguration for validate_event.\nAn error in the GeoIpLookup.\nA geo ip lookup helper based on maxmind db files.\nThe length of a full measurement MRI, minus the name and …\nConfiguration for measurements normalization.\nA single mapping of (AI model ID, input/output, cost)\nA mapping of AI model types (like GPT-4) to their …\nConfiguration for normalize_event.\nDefines the performance configuration for the project.\nDefines a profile for performance score.\nDefines a weighted component for a performance score.\nA container housing both the user-agent string and the …\nDescribes what to do with the matched pattern.\nRemoves unknown, internal and deprecated fields from a …\nReplaces the matched pattern with a placeholder.\nValidates constraints such as empty strings or arrays and …\nThe rule describes how span descriptions should be changed.\nObject containing transaction attributes the rules must …\nCompute breakdowns based on span operation name.\nConfiguration to define breakdowns based on span operation …\nA time window declared by its start and end timestamp.\nEnsures an event’s timestamps are not stale.\nConfiguration for sanitizing unparameterized transaction …\nThe rule describes how transaction name should be changed.\nRejects transactions based on required fields.\nLimits properties to a maximum size and depth.\nUnsupported redaction rule for forward compatibility.\nAn unknown rule ignored for forward compatibility.\nConfiguration for calculating the cost of AI model runs\nReturn true if the built in measurement key allows …\nApplies the rule if any found to the transaction name.\nLimits clock drift correction to a minimum duration.\nComputation of breakdowns from event data.\nEmit breakdowns based on given configuration.\nReturns an iterator over the merged builtin measurement …\nA list of measurements that are built-in and are not …\nThe name and version of the SDK that sent the event.\nUser-Agent client hints.\nThe IP address of the SDK that sent the event.\nThe SDK’s sample rate as communicated via envelope …\nSee RuleCondition for all available options to specify and …\nComputation and normalization of contexts from event data.\nGets the cost per 1000 tokens, if defined for the given …\nThe mappings of model ID => cost\nWhen true, infers the device class from CPU and model.\nWhen enabled, adds errors in the meta to the event’s …\nWhen Some(true), individual parts of the event payload is …\nThe exclusive end timestamp of the span.\nWhen true, extracts tags from event and spans and …\nUse the given error kind for the attached eventerror …\nDate time when the rule expires and it should not be …\nDate time when the rule expires and it should not be …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAn initialized GeoIP lookup.\nConfiguration for issue grouping.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if the clocks are significantly drifted.\nfalse if measurement and metrics extraction should be …\nReturns true if the event’s transaction name is known to …\nWhen true, it is assumed that the event has been …\nReturns true if the given platform string is a known …\nControls whether the event has been validated before, in …\nThe internal identifier of the DSN, which gets added to …\nLooks up an IP address.\nApplies the span description rule to the given string, if …\nChecks is the current rule matches and tries to apply it.\ntrue if this cost definition matches the given model.\nA list of declarations for span operations to extract …\nGets the max custom measurements value from the …\nThe maximum number of measurements allowed per event that …\nThe maximum length for names of custom measurements.\nThe maximum amount of seconds an event can be predated …\nThe maximum amount of seconds an event can be dated in the …\nThe maximum allowed size of tag values in bytes. Longer …\nMeasurement (eg. measurements.lcp) to be matched against. …\nConfiguration for measurement normalization in transaction …\nReturns the name of the built in measurement key.\nName of the profile, used for debugging and faceting …\nContains helper function for NEL reports.\nCreates a new ClockDriftProcessor.\nCreates a new BuiltinMeasurementKey.\nConstructor for CombinedMeasurementsConfig.\nCreates a new TransactionsProcessor instance.\nCreates a new trimming processor.\nReplaces snake_case app start spans op with dot.case op.\nComputes breakdowns for an event based on the given …\nNormalizes an event.\nEnsure only valid measurements are ingested.\nComputes performance score measurements for an event.\nControls whether spans should be normalized (e.g. …\nApply parametrization to transaction.\nGenerates context data from client hints or user agent.\nWhen Some(true), context information is extracted from the …\nLow-level version of normalize_user_agent operating on …\nThe span operation type to match on.\nOpens a maxminddb file by path.\nWhether the measurement is optional. If the measurement is …\np10 used to define the log-normal for calculation\nMedian used to define the log-normal for calculation\nThe pattern which will be applied to the span description.\nThe pattern which will be applied to transaction name.\nConfiguration for generating performance score …\nProcesses the given DateTime.\nProcesses the given UnixTimestamp by applying clock drift …\nList of performance profiles, only the first with matching …\nThe identifier of the target project, which gets added to …\nThe version of the protocol.\nThe time at which the event was received in this Relay.\nObject describing what to do with the matched pattern.\nObject describing what to do with the matched pattern.\nOverrides the default flag for other removal.\nValidation and normalization of Replay events.\nThe identifier of the Replay running while this event was …\nNormalization of the Request interface.\nRules for identifier replacement that were discovered by …\nObject containing transaction attributes the rules must …\nScore components\nName of the client’s web browser and its version.\nDevice model, e.g. samsung galaxy 3.\nThe client’s OS, e.g. macos, android…\nThe version number of the client’s OS.\nSet a default transaction source if it is missing, but …\nSpan normalization logic.\nConfiguration for replacing identifiers in the span …\nThe inclusive start timestamp of the span.\nConfiguration to apply to transaction names, especially …\nTimestamp range in which a transaction must end.\nReturns the unit of the built in measurement key.\nGenerate context data from user agent and client hints.\nThe user-agent and client hints obtained from the …\nThe “old style” of a single UA string.\nDeprecated. Utilities for extracting common event fields.\nGiven a string checks if the environment name is generally …\nValidates an event.\nGiven a string checks if the release is generally valid.\nValidates a span.\nThe version of the profile, used to isolate changes to …\nThe version of the model cost struct\nWeight [0,1.0] of this component in the performance score\nThe string to substitute with.\nConfiguration to define breakdown to be generated based on …\nConfiguration for computing breakdowns from data in the …\nCompute breakdowns based on span operation name.\nConfiguration to define breakdowns based on span operation …\nA time window declared by its start and end timestamp.\nAn unknown rule ignored for forward compatibility.\nReturns the duration from start to end.\nThe exclusive end timestamp of the span.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nA list of declarations for span operations to extract …\nCreates a new time span with the given start and end date.\nComputes breakdowns for an event based on the given …\nThe inclusive start timestamp of the span.\nReturns the API version of an Android description.\nNormalizes the given context.\nEnriches the event with new values using the provided …\nThe Replay event could not be parsed from JSON.\nAn error occurred during PII scrubbing of the Replay.\nThe Replay contains invalid data or is missing a required …\nThe Replay event was parsed but did not match the schema.\nReplay validation or normalization error.\nReturns the argument unchanged.\nCalls U::from(self).\nAdds default fields and normalizes all values in to their …\nChecks if the Replay event is structurally valid.\nNormalizes the Request interface.\nAI cost calculation.\nSpan description scrubbing logic.\nSpan attribute materialization.\nLogic for persisting items into span.sentry_tags and …\nExtract the ai_total_cost measurement into the span.\nExtract the ai_total_cost measurements from all of an event…\nConcatenate an optional host and an optional port.\nSanitize a qualified domain string.\nScrub a Host object.\nScrub an IPv4 address.\nScrub an IPv6 address.\nComputes the exclusive time for all spans in the event.\nThe group of the ancestral span with op ai.pipeline.*\nThe start type of the application when the span occurred.\nFile extension for resource spans.\nRegex with a capture group to extract the HTTP method from …\nSpan started on main thread.\nA list of supported span tags for tag extraction.\nContributes to Time-To-Full-Display.\nContributes to Time-To-Initial-Display.\nCopies specific numeric values from span data to span …\nExtract segment span specific tags and measurements from …\nExtracts tags and measurements from event and spans and …\nWrites fields into Span::sentry_tags.\nReturns the argument unchanged.\nCalls U::from(self).\nThe key used to write this tag into span.sentry_keys.\nThe client hint variable names mirror the name of the “…\nA container housing both the user-agent string and the …\nProvides the user agent’s branding and significant …\nIndicates the device model on which the browser is running.\nProvides the platform or operating system on which the …\nProvides the version of the operating system on which the …\nThe name of the user agent HTTP header.\nConverts to a borrowed RawUserAgentInfo.\nReturns an instance of ClientHints that borrows from the …\nUser-Agent client hints.\nChecks every field of a passed-in ClientHints instance if …\nReturns the argument unchanged.\nReturns the argument unchanged.\nComputes a borrowed RawUserAgentInfo from the given HTTP …\nCalls U::from(self).\nCalls U::from(self).\nReturns true, if neither a user agent nor client hints are …\nChecks if every field is of value None.\nGenerates context data from client hints or user agent.\nLow-level version of normalize_user_agent operating on …\nConvert user-agent info to HTTP headers as stored in the …\nName of the client’s web browser and its version.\nDevice model, e.g. samsung galaxy 3.\nThe client’s OS, e.g. macos, android…\nThe version number of the client’s OS.\nChecks if key matches a user agent header, in which case …\nThe “old style” of a single UA string.\nAllowed value for main thread name.\nMaximum length of a mobile span or measurement in …\nUsed to decide when to extract mobile-specific tags.\nCalculates a log-normal CDF score based on a log-normal …\nExtracts the HTTP status code.\nReturns a normalized op from the given trace context.\nCompute the transaction event’s “user” tag as close …\nExtract the HTTP status code from the span data.") \ No newline at end of file +searchState.loadedDescShard("relay_event_normalization", 0, "Event normalization and processing.\nConfiguration to define breakdown to be generated based on …\nConfiguration for computing breakdowns from data in the …\nDefines a builtin measurement.\nThe client hint variable names mirror the name of the “…\nCorrects clock drift based on the sender’s and receivers …\nContainer for global and project level MeasurementsConfig. …\nConfiguration for validate_event.\nComputes a Context from either a user agent string and …\nAn error in the GeoIpLookup.\nA geo ip lookup helper based on maxmind db files.\nThe length of a full measurement MRI, minus the name and …\nConfiguration for measurements normalization.\nA single mapping of (AI model ID, input/output, cost)\nA mapping of AI model types (like GPT-4) to their …\nConfiguration for normalize_event.\nDefines the performance configuration for the project.\nDefines a profile for performance score.\nDefines a weighted component for a performance score.\nA container housing both the user-agent string and the …\nDescribes what to do with the matched pattern.\nRemoves unknown, internal and deprecated fields from a …\nReplaces the matched pattern with a placeholder.\nValidates constraints such as empty strings or arrays and …\nThe rule describes how span descriptions should be changed.\nObject containing transaction attributes the rules must …\nCompute breakdowns based on span operation name.\nConfiguration to define breakdowns based on span operation …\nA time window declared by its start and end timestamp.\nEnsures an event’s timestamps are not stale.\nConfiguration for sanitizing unparameterized transaction …\nThe rule describes how transaction name should be changed.\nRejects transactions based on required fields.\nLimits properties to a maximum size and depth.\nUnsupported redaction rule for forward compatibility.\nAn unknown rule ignored for forward compatibility.\nConfiguration for calculating the cost of AI model runs\nReturn true if the built in measurement key allows …\nApplies the rule if any found to the transaction name.\nLimits clock drift correction to a minimum duration.\nComputation of breakdowns from event data.\nEmit breakdowns based on given configuration.\nThe sec-ch-ua field looks something like this: “Not_A …\nReturns an iterator over the merged builtin measurement …\nA list of measurements that are built-in and are not …\nThe name and version of the SDK that sent the event.\nUser-Agent client hints.\nThe IP address of the SDK that sent the event.\nThe SDK’s sample rate as communicated via envelope …\nSee RuleCondition for all available options to specify and …\nComputation and normalization of contexts from event data.\nGets the cost per 1000 tokens, if defined for the given …\nThe mappings of model ID => cost\nWhen true, infers the device class from CPU and model.\nWhen enabled, adds errors in the meta to the event’s …\nWhen Some(true), individual parts of the event payload is …\nThe exclusive end timestamp of the span.\nWhen true, extracts tags from event and spans and …\nUse the given error kind for the attached eventerror …\nDate time when the rule expires and it should not be …\nDate time when the rule expires and it should not be …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nAn initialized GeoIP lookup.\nConfiguration for issue grouping.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if the clocks are significantly drifted.\nfalse if measurement and metrics extraction should be …\nReturns true if the event’s transaction name is known to …\nWhen true, it is assumed that the event has been …\nReturns true if the given platform string is a known …\nControls whether the event has been validated before, in …\nThe internal identifier of the DSN, which gets added to …\nLooks up an IP address.\nApplies the span description rule to the given string, if …\nChecks is the current rule matches and tries to apply it.\ntrue if this cost definition matches the given model.\nA list of declarations for span operations to extract …\nGets the max custom measurements value from the …\nThe maximum number of measurements allowed per event that …\nThe maximum length for names of custom measurements.\nThe maximum amount of seconds an event can be predated …\nThe maximum amount of seconds an event can be dated in the …\nThe maximum allowed size of tag values in bytes. Longer …\nMeasurement (eg. measurements.lcp) to be matched against. …\nConfiguration for measurement normalization in transaction …\nReturns the name of the built in measurement key.\nName of the profile, used for debugging and faceting …\nContains helper function for NEL reports.\nCreates a new ClockDriftProcessor.\nCreates a new BuiltinMeasurementKey.\nConstructor for CombinedMeasurementsConfig.\nCreates a new TransactionsProcessor instance.\nCreates a new trimming processor.\nReplaces snake_case app start spans op with dot.case op.\nComputes breakdowns for an event based on the given …\nNormalizes an event.\nEnsure only valid measurements are ingested.\nComputes performance score measurements for an event.\nControls whether spans should be normalized (e.g. …\nApply parametrization to transaction.\nGenerates context data from client hints or user agent.\nWhen Some(true), context information is extracted from the …\nLow-level version of normalize_user_agent operating on …\nThe span operation type to match on.\nOpens a maxminddb file by path.\nWhether the measurement is optional. If the measurement is …\np10 used to define the log-normal for calculation\nMedian used to define the log-normal for calculation\nTries to populate the context from client hints.\nTries to populate the context from a user agent header …\nThe pattern which will be applied to the span description.\nThe pattern which will be applied to transaction name.\nConfiguration for generating performance score …\nProcesses the given DateTime.\nProcesses the given UnixTimestamp by applying clock drift …\nList of performance profiles, only the first with matching …\nThe identifier of the target project, which gets added to …\nThe version of the protocol.\nThe time at which the event was received in this Relay.\nObject describing what to do with the matched pattern.\nObject describing what to do with the matched pattern.\nOverrides the default flag for other removal.\nValidation and normalization of Replay events.\nThe identifier of the Replay running while this event was …\nNormalization of the Request interface.\nRules for identifier replacement that were discovered by …\nObject containing transaction attributes the rules must …\nScore components\nName of the client’s web browser and its version.\nDevice model, e.g. samsung galaxy 3.\nThe client’s OS, e.g. macos, android…\nThe version number of the client’s OS.\nSet a default transaction source if it is missing, but …\nSpan normalization logic.\nConfiguration for replacing identifiers in the span …\nThe inclusive start timestamp of the span.\nConfiguration to apply to transaction names, especially …\nTimestamp range in which a transaction must end.\nReturns the unit of the built in measurement key.\nGenerate context data from user agent and client hints.\nThe user-agent and client hints obtained from the …\nThe “old style” of a single UA string.\nDeprecated. Utilities for extracting common event fields.\nGiven a string checks if the environment name is generally …\nValidates an event.\nGiven a string checks if the release is generally valid.\nValidates a span.\nThe version of the profile, used to isolate changes to …\nThe version of the model cost struct\nWeight [0,1.0] of this component in the performance score\nThe string to substitute with.\nConfiguration to define breakdown to be generated based on …\nConfiguration for computing breakdowns from data in the …\nCompute breakdowns based on span operation name.\nConfiguration to define breakdowns based on span operation …\nA time window declared by its start and end timestamp.\nAn unknown rule ignored for forward compatibility.\nReturns the duration from start to end.\nThe exclusive end timestamp of the span.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nA list of declarations for span operations to extract …\nCreates a new time span with the given start and end date.\nComputes breakdowns for an event based on the given …\nThe inclusive start timestamp of the span.\nReturns the API version of an Android description.\nNormalizes the given context.\nEnriches the event with new values using the provided …\nThe Replay event could not be parsed from JSON.\nAn error occurred during PII scrubbing of the Replay.\nThe Replay contains invalid data or is missing a required …\nThe Replay event was parsed but did not match the schema.\nReplay validation or normalization error.\nReturns the argument unchanged.\nCalls U::from(self).\nAdds default fields and normalizes all values in to their …\nChecks if the Replay event is structurally valid.\nNormalizes the Request interface.\nAI cost calculation.\nSpan description scrubbing logic.\nSpan attribute materialization.\nLogic for persisting items into span.sentry_tags and …\nExtract the ai_total_cost measurement into the span.\nExtract the ai_total_cost measurements from all of an event…\nConcatenate an optional host and an optional port.\nSanitize a qualified domain string.\nScrub a Host object.\nScrub an IPv4 address.\nScrub an IPv6 address.\nComputes the exclusive time for all spans in the event.\nThe group of the ancestral span with op ai.pipeline.*\nThe start type of the application when the span occurred.\nFile extension for resource spans.\nRegex with a capture group to extract the HTTP method from …\nSpan started on main thread.\nA list of supported span tags for tag extraction.\nContributes to Time-To-Full-Display.\nContributes to Time-To-Initial-Display.\nCopies specific numeric values from span data to span …\nExtract segment span specific tags and measurements from …\nExtracts tags and measurements from event and spans and …\nWrites fields into Span::sentry_tags.\nReturns the argument unchanged.\nCalls U::from(self).\nThe key used to write this tag into span.sentry_keys.\nThe client hint variable names mirror the name of the “…\nComputes a Context from either a user agent string and …\nA container housing both the user-agent string and the …\nProvides the user agent’s branding and significant …\nIndicates the device model on which the browser is running.\nProvides the platform or operating system on which the …\nProvides the version of the operating system on which the …\nThe name of the user agent HTTP header.\nConverts to a borrowed RawUserAgentInfo.\nReturns an instance of ClientHints that borrows from the …\nThe sec-ch-ua field looks something like this: “Not_A …\nUser-Agent client hints.\nChecks every field of a passed-in ClientHints instance if …\nReturns the argument unchanged.\nReturns the argument unchanged.\nComputes a borrowed RawUserAgentInfo from the given HTTP …\nTries to populate the context from client hints or a user …\nTries to populate the context from client hints or a user …\nTries to populate the context from client hints or a user …\nCalls U::from(self).\nCalls U::from(self).\nReturns true, if neither a user agent nor client hints are …\nChecks if every field is of value None.\nGenerates context data from client hints or user agent.\nLow-level version of normalize_user_agent operating on …\nTries to populate the context from client hints.\nTries to populate the context from a user agent header …\nConvert user-agent info to HTTP headers as stored in the …\nName of the client’s web browser and its version.\nDevice model, e.g. samsung galaxy 3.\nThe client’s OS, e.g. macos, android…\nThe version number of the client’s OS.\nChecks if key matches a user agent header, in which case …\nThe “old style” of a single UA string.\nAllowed value for main thread name.\nMaximum length of a mobile span or measurement in …\nUsed to decide when to extract mobile-specific tags.\nCalculates a log-normal CDF score based on a log-normal …\nExtracts the HTTP status code.\nReturns a normalized op from the given trace context.\nCompute the transaction event’s “user” tag as close …\nExtract the HTTP status code from the span data.") \ No newline at end of file diff --git a/src/relay_event_normalization/event.rs.html b/src/relay_event_normalization/event.rs.html index 79a4ee6a10..05412aeb34 100644 --- a/src/relay_event_normalization/event.rs.html +++ b/src/relay_event_normalization/event.rs.html @@ -4148,6 +4148,29 @@ 4148 4149 4150 +4151 +4152 +4153 +4154 +4155 +4156 +4157 +4158 +4159 +4160 +4161 +4162 +4163 +4164 +4165 +4166 +4167 +4168 +4169 +4170 +4171 +4172 +4173
//! Event normalization.
 //!
 //! This module provides a function to normalize events.
@@ -4167,12 +4190,12 @@
 use relay_event_schema::protocol::{
     AsPair, ClientSdkInfo, Context, ContextInner, Contexts, DebugImage, DeviceClass, Event,
     EventId, EventType, Exception, Headers, IpAddr, Level, LogEntry, Measurement, Measurements,
-    MetricSummaryMapping, NelContext, PerformanceScoreContext, ReplayContext, Request, SpanStatus,
-    Tags, Timestamp, TraceContext, User, VALID_PLATFORMS,
+    MetricSummaryMapping, NelContext, PerformanceScoreContext, ReplayContext, Request, Span,
+    SpanStatus, Tags, Timestamp, TraceContext, User, VALID_PLATFORMS,
 };
 use relay_protocol::{
-    Annotated, Empty, Error, ErrorKind, FromValue, IntoValue, Meta, Object, Remark, RemarkType,
-    Value,
+    Annotated, Empty, Error, ErrorKind, FromValue, Getter, IntoValue, Meta, Object, Remark,
+    RemarkType, Value,
 };
 use smallvec::SmallVec;
 use uuid::Uuid;
@@ -4447,7 +4470,13 @@
         config.measurements.clone(),
         config.max_name_and_unit_len,
     ); // Measurements are part of the metric extraction
-    normalize_performance_score(event, config.performance_score);
+    if let Some(version) = normalize_performance_score(event, config.performance_score) {
+        event
+            .contexts
+            .get_or_insert_with(Contexts::new)
+            .get_or_default::<PerformanceScoreContext>()
+            .score_profile_version = Annotated::new(version);
+    }
     normalize_ai_measurements(event, config.ai_model_costs);
     normalize_breakdowns(event, config.breakdowns_config); // Breakdowns are part of the metric extraction too
     normalize_default_attributes(event, meta, config);
@@ -5002,23 +5031,28 @@
     }
 }
 
+pub trait MutMeasurements {
+    fn measurements(&mut self) -> &mut Annotated<Measurements>;
+}
+
 /// Computes performance score measurements for an event.
 ///
 /// This computes score from vital measurements, using config options to define how it is
 /// calculated.
 pub fn normalize_performance_score(
-    event: &mut Event,
+    event: &mut (impl Getter + MutMeasurements),
     performance_score: Option<&PerformanceScoreConfig>,
-) {
+) -> Option<String> {
+    let mut version = None;
     let Some(performance_score) = performance_score else {
-        return;
+        return version;
     };
     for profile in &performance_score.profiles {
         if let Some(condition) = &profile.condition {
             if !condition.matches(event) {
                 continue;
             }
-            if let Some(measurements) = event.measurements.value_mut() {
+            if let Some(measurements) = event.measurements().value_mut() {
                 let mut should_add_total = false;
                 if profile.score_components.iter().any(|c| {
                     !measurements.contains_key(c.measurement.as_str())
@@ -5079,13 +5113,7 @@
                     );
                 }
                 if should_add_total {
-                    if let Some(version) = &profile.version {
-                        event
-                            .contexts
-                            .get_or_insert_with(Contexts::new)
-                            .get_or_default::<PerformanceScoreContext>()
-                            .score_profile_version = version.clone().into();
-                    }
+                    version.clone_from(&profile.version);
                     measurements.insert(
                         "score.total".to_owned(),
                         Measurement {
@@ -5099,6 +5127,19 @@
             break; // Stop after the first matching profile.
         }
     }
+    version
+}
+
+impl MutMeasurements for Event {
+    fn measurements(&mut self) -> &mut Annotated<Measurements> {
+        &mut self.measurements
+    }
+}
+
+impl MutMeasurements for Span {
+    fn measurements(&mut self) -> &mut Annotated<Measurements> {
+        &mut self.measurements
+    }
 }
 
 /// Compute additional measurements derived from existing ones.
@@ -7465,35 +7506,40 @@
         }))
         .unwrap();
 
-        normalize_performance_score(&mut event, Some(&performance_score));
+        normalize(
+            &mut event,
+            &mut Meta::default(),
+            &NormalizationConfig {
+                performance_score: Some(&performance_score),
+                ..Default::default()
+            },
+        );
 
-        insta::assert_ron_snapshot!(SerializableAnnotated(&Annotated::new(event)), {}, @r###"
+        insta::assert_ron_snapshot!(SerializableAnnotated(&event.contexts), {}, @r###"
         {
-          "type": "transaction",
-          "timestamp": 1619420405.0,
-          "start_timestamp": 1619420400.0,
-          "contexts": {
-            "performance_score": {
-              "score_profile_version": "beta",
-              "type": "performancescore",
-            },
+          "performance_score": {
+            "score_profile_version": "beta",
+            "type": "performancescore",
           },
-          "measurements": {
-            "inp": {
-              "value": 120.0,
-            },
-            "score.inp": {
-              "value": 0.0,
-              "unit": "ratio",
-            },
-            "score.total": {
-              "value": 0.0,
-              "unit": "ratio",
-            },
-            "score.weight.inp": {
-              "value": 1.0,
-              "unit": "ratio",
-            },
+        }
+        "###);
+        insta::assert_ron_snapshot!(SerializableAnnotated(&event.measurements), {}, @r###"
+        {
+          "inp": {
+            "value": 120.0,
+            "unit": "millisecond",
+          },
+          "score.inp": {
+            "value": 0.0,
+            "unit": "ratio",
+          },
+          "score.total": {
+            "value": 0.0,
+            "unit": "ratio",
+          },
+          "score.weight.inp": {
+            "value": 1.0,
+            "unit": "ratio",
           },
         }
         "###);
diff --git a/src/relay_event_normalization/normalize/user_agent.rs.html b/src/relay_event_normalization/normalize/user_agent.rs.html
index 411ddd0f79..969ec98275 100644
--- a/src/relay_event_normalization/normalize/user_agent.rs.html
+++ b/src/relay_event_normalization/normalize/user_agent.rs.html
@@ -1092,6 +1092,9 @@
 1092
 1093
 1094
+1095
+1096
+1097
 
//! Generate context data from user agent and client hints.
 //!
 //! This module is responsible for taking the user agent string parsing it and filling in
@@ -1381,12 +1384,15 @@
 }
 
 /// Computes a [`Context`] from either a user agent string and client hints.
-trait FromUserAgentInfo: Sized {
-    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>;
+pub trait FromUserAgentInfo: Sized {
+    /// Tries to populate the context from client hints.
+    fn parse_client_hints(client_hints: &ClientHints<&str>) -> Option<Self>;
 
-    fn parse_user_agent(user_agent: &str) -> Option<Self>;
+    /// Tries to populate the context from a user agent header string.
+    fn parse_user_agent(user_agent: &str) -> Option<Self>;
 
-    fn from_hints_or_ua(raw_info: &RawUserAgentInfo<&str>) -> Option<Self> {
+    /// Tries to populate the context from client hints or a user agent header string.
+    fn from_hints_or_ua(raw_info: &RawUserAgentInfo<&str>) -> Option<Self> {
         Self::parse_client_hints(&raw_info.client_hints)
             .or_else(|| raw_info.user_agent.and_then(Self::parse_user_agent))
     }
@@ -1456,7 +1462,7 @@
 /// to be a browser and gets returned as such.
 ///
 /// Returns None if no browser field detected.
-fn browser_from_client_hints(s: &str) -> Option<(String, String)> {
+pub fn browser_from_client_hints(s: &str) -> Option<(String, String)> {
     for item in s.split(',') {
         // if it contains one of these then we can know it isn't a browser field. atm chromium
         // browsers are the only ones supporting client hints.
diff --git a/src/relay_event_schema/protocol/span.rs.html b/src/relay_event_schema/protocol/span.rs.html
index f6bdc962d8..d7c7e9b6d1 100644
--- a/src/relay_event_schema/protocol/span.rs.html
+++ b/src/relay_event_schema/protocol/span.rs.html
@@ -814,6 +814,7 @@
 814
 815
 816
+817
 
mod convert;
 
 #[cfg(feature = "jsonschema")]
@@ -991,6 +992,7 @@
             "release" => self.data.value()?.release.as_str()?.into(),
             "environment" => self.data.value()?.environment.as_str()?.into(),
             "transaction" => self.data.value()?.segment_name.as_str()?.into(),
+            "contexts.browser.name" => self.data.value()?.browser_name.as_str()?.into(),
             // TODO: we might want to add additional fields once they are added to the span.
             _ => return None,
         })
diff --git a/src/relay_server/services/processor/span/processing.rs.html b/src/relay_server/services/processor/span/processing.rs.html
index 98ac6b1e4d..7bb4118699 100644
--- a/src/relay_server/services/processor/span/processing.rs.html
+++ b/src/relay_server/services/processor/span/processing.rs.html
@@ -854,6 +854,150 @@
 854
 855
 856
+857
+858
+859
+860
+861
+862
+863
+864
+865
+866
+867
+868
+869
+870
+871
+872
+873
+874
+875
+876
+877
+878
+879
+880
+881
+882
+883
+884
+885
+886
+887
+888
+889
+890
+891
+892
+893
+894
+895
+896
+897
+898
+899
+900
+901
+902
+903
+904
+905
+906
+907
+908
+909
+910
+911
+912
+913
+914
+915
+916
+917
+918
+919
+920
+921
+922
+923
+924
+925
+926
+927
+928
+929
+930
+931
+932
+933
+934
+935
+936
+937
+938
+939
+940
+941
+942
+943
+944
+945
+946
+947
+948
+949
+950
+951
+952
+953
+954
+955
+956
+957
+958
+959
+960
+961
+962
+963
+964
+965
+966
+967
+968
+969
+970
+971
+972
+973
+974
+975
+976
+977
+978
+979
+980
+981
+982
+983
+984
+985
+986
+987
+988
+989
+990
+991
+992
+993
+994
+995
+996
+997
+998
+999
+1000
 

//! Contains the processing-only functionality.
 
 use std::error::Error;
@@ -866,13 +1010,16 @@
     CombinedMetricExtractionConfig, ErrorBoundary, Feature, GlobalConfig, ProjectConfig,
 };
 use relay_event_normalization::{
-    normalize_measurements, normalize_performance_score, normalize_user_agent_info_generic,
-    span::tag_extraction, validate_span, CombinedMeasurementsConfig, MeasurementsConfig,
-    PerformanceScoreConfig, RawUserAgentInfo, TransactionsProcessor,
+    normalize_measurements, normalize_performance_score, span::tag_extraction, validate_span,
+    CombinedMeasurementsConfig, MeasurementsConfig, PerformanceScoreConfig, RawUserAgentInfo,
+    TransactionsProcessor,
+};
+use relay_event_normalization::{
+    normalize_transaction_name, ClientHints, FromUserAgentInfo, ModelCosts, SchemaProcessor,
+    TimestampProcessor, TransactionNameRule, TrimmingProcessor,
 };
-use relay_event_normalization::{normalize_transaction_name, ModelCosts};
 use relay_event_schema::processor::{process_value, ProcessingState};
-use relay_event_schema::protocol::{BrowserContext, Contexts, Event, Span, SpanData};
+use relay_event_schema::protocol::{BrowserContext, Span, SpanData};
 use relay_log::protocol::{Attachment, AttachmentType};
 use relay_metrics::{MetricNamespace, UnixTimestamp};
 use relay_pii::PiiProcessor;
@@ -887,7 +1034,7 @@
 use crate::services::processor::{
     dynamic_sampling, ProcessEnvelopeState, ProcessingError, SpanGroup, TransactionGroup,
 };
-use crate::utils::{sample, ItemAction};
+use crate::utils::{sample, ItemAction, ManagedEnvelope};
 use relay_event_normalization::span::ai::extract_ai_measurements;
 use thiserror::Error;
 
@@ -910,27 +1057,11 @@
         ErrorBoundary::Ok(ref config) if config.is_enabled() => Some(config),
         _ => None,
     };
-    let ai_model_costs_config = global_config.ai_model_costs.clone().ok();
-    let normalize_span_config = get_normalize_span_config(
-        Arc::clone(&config),
-        state.managed_envelope.received_at(),
-        global_config.measurements.as_ref(),
-        state.project_state.config().measurements.as_ref(),
-        state.project_state.config().performance_score.as_ref(),
-        ai_model_costs_config.as_ref(),
-    );
-
-    let meta = state.managed_envelope.envelope().meta();
-    let mut contexts = Contexts::new();
-    let user_agent_info = RawUserAgentInfo {
-        user_agent: meta.user_agent(),
-        client_hints: meta.client_hints().as_deref(),
-    };
-
-    normalize_user_agent_info_generic(
-        &mut contexts,
-        &Annotated::new("".to_string()),
-        &user_agent_info,
+    let normalize_span_config = NormalizeSpanConfig::new(
+        &config,
+        global_config,
+        state.project_state.config(),
+        &state.managed_envelope,
     );
 
     let client_ip = state.managed_envelope.envelope().meta().client_addr();
@@ -957,14 +1088,7 @@
             _ => return ItemAction::Keep,
         };
 
-        set_segment_attributes(&mut annotated_span);
-
-        if let Err(e) = normalize(
-            &mut annotated_span,
-            normalize_span_config.clone(),
-            Annotated::new(contexts.clone()),
-            state.project_state.config(),
-        ) {
+        if let Err(e) = normalize(&mut annotated_span, normalize_span_config.clone()) {
             relay_log::debug!("failed to normalize span: {}", e);
             return ItemAction::Drop(Outcome::Invalid(DiscardReason::Internal));
         };
@@ -1210,35 +1334,49 @@
     ///
     /// Measurements with longer names are removed from the transaction event and replaced with a
     /// metadata entry.
-    max_name_and_unit_len: Option<usize>,
+    max_name_and_unit_len: usize,
+    /// Transaction name normalization rules.
+    tx_name_rules: &'a [TransactionNameRule],
+    /// The user agent parsed from the request.
+    user_agent: Option<String>,
+    /// Client hints parsed from the request.
+    client_hints: ClientHints<String>,
 }
 
-fn get_normalize_span_config<'a>(
-    config: Arc<Config>,
-    received_at: DateTime<Utc>,
-    global_measurements_config: Option<&'a MeasurementsConfig>,
-    project_measurements_config: Option<&'a MeasurementsConfig>,
-    performance_score: Option<&'a PerformanceScoreConfig>,
-    ai_model_costs: Option<&'a ModelCosts>,
-) -> NormalizeSpanConfig<'a> {
-    let aggregator_config = config.aggregator_config_for(MetricNamespace::Spans);
-
-    NormalizeSpanConfig {
-        received_at,
-        timestamp_range: aggregator_config.aggregator.timestamp_range(),
-        max_tag_value_size: aggregator_config.aggregator.max_tag_value_length,
-        measurements: Some(CombinedMeasurementsConfig::new(
-            project_measurements_config,
-            global_measurements_config,
-        )),
-        max_name_and_unit_len: Some(
-            aggregator_config
+impl<'a> NormalizeSpanConfig<'a> {
+    fn new(
+        config: &'a Config,
+        global_config: &'a GlobalConfig,
+        project_config: &'a ProjectConfig,
+        managed_envelope: &ManagedEnvelope,
+    ) -> Self {
+        let aggregator_config = config.aggregator_config_for(MetricNamespace::Spans);
+        Self {
+            received_at: managed_envelope.received_at(),
+            timestamp_range: aggregator_config.aggregator.timestamp_range(),
+            max_tag_value_size: aggregator_config.aggregator.max_tag_value_length,
+            performance_score: project_config.performance_score.as_ref(),
+            measurements: Some(CombinedMeasurementsConfig::new(
+                project_config.measurements.as_ref(),
+                global_config.measurements.as_ref(),
+            )),
+            ai_model_costs: match &global_config.ai_model_costs {
+                ErrorBoundary::Err(_) => None,
+                ErrorBoundary::Ok(costs) => Some(costs),
+            },
+            max_name_and_unit_len: aggregator_config
                 .aggregator
                 .max_name_length
                 .saturating_sub(MeasurementsConfig::MEASUREMENT_MRI_OVERHEAD),
-        ),
-        performance_score,
-        ai_model_costs,
+
+            tx_name_rules: &project_config.tx_name_rules,
+            user_agent: managed_envelope
+                .envelope()
+                .meta()
+                .user_agent()
+                .map(String::from),
+            client_hints: managed_envelope.meta().client_hints().clone(),
+        }
     }
 }
 
@@ -1277,11 +1415,7 @@
 fn normalize(
     annotated_span: &mut Annotated<Span>,
     config: NormalizeSpanConfig,
-    contexts: Annotated<Contexts>,
-    project_config: &ProjectConfig,
 ) -> Result<(), ProcessingError> {
-    use relay_event_normalization::{SchemaProcessor, TimestampProcessor, TrimmingProcessor};
-
     let NormalizeSpanConfig {
         received_at,
         timestamp_range,
@@ -1290,8 +1424,13 @@
         measurements,
         ai_model_costs,
         max_name_and_unit_len,
+        tx_name_rules,
+        user_agent,
+        client_hints,
     } = config;
 
+    set_segment_attributes(annotated_span);
+
     // This follows the steps of `NormalizeProcessor::process_event`.
     // Ideally, `NormalizeProcessor` would execute these steps generically, i.e. also when calling
     // `process` on it.
@@ -1321,21 +1460,14 @@
         return Err(ProcessingError::NoEventPayload);
     };
 
-    if let Some(browser_name) = contexts
-        .value()
-        .and_then(|contexts| contexts.get::<BrowserContext>())
-        .and_then(|v| v.name.value())
-    {
-        let data = span.data.value_mut().get_or_insert_with(SpanData::default);
-        data.browser_name = Annotated::new(browser_name.to_owned());
-    }
+    populate_ua_fields(span, user_agent.as_deref(), client_hints.as_deref());
 
     if let Annotated(Some(ref mut measurement_values), ref mut meta) = span.measurements {
         normalize_measurements(
             measurement_values,
             meta,
             measurements,
-            max_name_and_unit_len,
+            Some(max_name_and_unit_len),
             span.start_timestamp.0,
             span.timestamp.0,
         );
@@ -1349,7 +1481,7 @@
         .as_mut()
         .map(|data| &mut data.segment_name)
     {
-        normalize_transaction_name(transaction, &project_config.tx_name_rules);
+        normalize_transaction_name(transaction, tx_name_rules);
     }
 
     // Tag extraction:
@@ -1361,17 +1493,10 @@
             .collect(),
     );
 
-    let mut event = Event {
-        contexts,
-        measurements: span.measurements.clone(),
-        spans: Annotated::from(vec![Annotated::new(span.clone())]),
-        ..Default::default()
-    };
-    normalize_performance_score(&mut event, performance_score);
+    normalize_performance_score(span, performance_score);
     if let Some(model_costs_config) = ai_model_costs {
         extract_ai_measurements(span, model_costs_config);
     }
-    span.measurements = event.measurements;
 
     tag_extraction::extract_measurements(span, is_mobile);
 
@@ -1384,6 +1509,32 @@
     Ok(())
 }
 
+fn populate_ua_fields(
+    span: &mut Span,
+    request_user_agent: Option<&str>,
+    mut client_hints: ClientHints<&str>,
+) {
+    let data = span.data.value_mut().get_or_insert_with(SpanData::default);
+
+    let user_agent = data.user_agent_original.value_mut();
+    if user_agent.is_none() {
+        *user_agent = request_user_agent.map(String::from);
+    } else {
+        // User agent in span payload should take precendence over request
+        // client hints.
+        client_hints = ClientHints::default();
+    }
+
+    if data.browser_name.value().is_none() {
+        if let Some(context) = BrowserContext::from_hints_or_ua(&RawUserAgentInfo {
+            user_agent: user_agent.as_deref(),
+            client_hints,
+        }) {
+            data.browser_name = context.name;
+        }
+    }
+}
+
 fn scrub(
     annotated_span: &mut Annotated<Span>,
     project_config: &ProjectConfig,
@@ -1484,6 +1635,7 @@
     use relay_event_schema::protocol::{
         Context, ContextInner, SpanId, Timestamp, TraceContext, TraceId,
     };
+    use relay_event_schema::protocol::{Contexts, Event, Span};
     use relay_protocol::get_value;
     use relay_sampling::evaluation::{ReservoirCounters, ReservoirEvaluator};
     use relay_system::Addr;
@@ -1709,5 +1861,141 @@
         assert_eq!(get_value!(span.is_segment), None);
         assert_eq!(get_value!(span.segment_id), None);
     }
+
+    #[test]
+    fn keep_browser_name() {
+        let mut span: Annotated<Span> = Annotated::from_json(
+            r#"{
+                "data": {
+                    "browser.name": "foo"
+                }
+            }"#,
+        )
+        .unwrap();
+        populate_ua_fields(
+            span.value_mut().as_mut().unwrap(),
+            None,
+            ClientHints::default(),
+        );
+        assert_eq!(get_value!(span.data.browser_name!), "foo");
+    }
+
+    #[test]
+    fn keep_browser_name_when_ua_present() {
+        let mut span: Annotated<Span> = Annotated::from_json(
+            r#"{
+                "data": {
+                    "browser.name": "foo",
+                    "user_agent.original": "Mozilla/5.0 (-; -; -) - Chrome/18.0.1025.133 Mobile Safari/535.19"
+                }
+            }"#,
+        )
+        .unwrap();
+        populate_ua_fields(
+            span.value_mut().as_mut().unwrap(),
+            None,
+            ClientHints::default(),
+        );
+        assert_eq!(get_value!(span.data.browser_name!), "foo");
+    }
+
+    #[test]
+    fn derive_browser_name() {
+        let mut span: Annotated<Span> = Annotated::from_json(
+            r#"{
+                "data": {
+                    "user_agent.original": "Mozilla/5.0 (-; -; -) - Chrome/18.0.1025.133 Mobile Safari/535.19"
+                }
+            }"#,
+        )
+        .unwrap();
+        populate_ua_fields(
+            span.value_mut().as_mut().unwrap(),
+            None,
+            ClientHints::default(),
+        );
+        assert_eq!(
+            get_value!(span.data.user_agent_original!),
+            "Mozilla/5.0 (-; -; -) - Chrome/18.0.1025.133 Mobile Safari/535.19"
+        );
+        assert_eq!(get_value!(span.data.browser_name!), "Chrome Mobile");
+    }
+
+    #[test]
+    fn keep_user_agent_when_meta_is_present() {
+        let mut span: Annotated<Span> = Annotated::from_json(
+            r#"{
+                "data": {
+                    "user_agent.original": "Mozilla/5.0 (-; -; -) - Chrome/18.0.1025.133 Mobile Safari/535.19"
+                }
+            }"#,
+        )
+        .unwrap();
+        populate_ua_fields(
+            span.value_mut().as_mut().unwrap(),
+            Some("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ONS Internet Explorer 6.1; .NET CLR 1.1.4322)"),
+            ClientHints::default(),
+        );
+        assert_eq!(
+            get_value!(span.data.user_agent_original!),
+            "Mozilla/5.0 (-; -; -) - Chrome/18.0.1025.133 Mobile Safari/535.19"
+        );
+        assert_eq!(get_value!(span.data.browser_name!), "Chrome Mobile");
+    }
+
+    #[test]
+    fn derive_user_agent() {
+        let mut span: Annotated<Span> = Annotated::from_json(r#"{}"#).unwrap();
+        populate_ua_fields(
+            span.value_mut().as_mut().unwrap(),
+            Some("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ONS Internet Explorer 6.1; .NET CLR 1.1.4322)"),
+            ClientHints::default(),
+        );
+        assert_eq!(
+            get_value!(span.data.user_agent_original!),
+            "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ONS Internet Explorer 6.1; .NET CLR 1.1.4322)"
+        );
+        assert_eq!(get_value!(span.data.browser_name!), "IE");
+    }
+
+    #[test]
+    fn keep_user_agent_when_client_hints_are_present() {
+        let mut span: Annotated<Span> = Annotated::from_json(
+            r#"{
+                "data": {
+                    "user_agent.original": "Mozilla/5.0 (-; -; -) - Chrome/18.0.1025.133 Mobile Safari/535.19"
+                }
+            }"#,
+        )
+        .unwrap();
+        populate_ua_fields(
+            span.value_mut().as_mut().unwrap(),
+            None,
+            ClientHints {
+                sec_ch_ua: Some(r#""Chromium";v="108", "Opera";v="94", "Not)A;Brand";v="99""#),
+                ..Default::default()
+            },
+        );
+        assert_eq!(
+            get_value!(span.data.user_agent_original!),
+            "Mozilla/5.0 (-; -; -) - Chrome/18.0.1025.133 Mobile Safari/535.19"
+        );
+        assert_eq!(get_value!(span.data.browser_name!), "Chrome Mobile");
+    }
+
+    #[test]
+    fn derive_client_hints() {
+        let mut span: Annotated<Span> = Annotated::from_json(r#"{}"#).unwrap();
+        populate_ua_fields(
+            span.value_mut().as_mut().unwrap(),
+            None,
+            ClientHints {
+                sec_ch_ua: Some(r#""Chromium";v="108", "Opera";v="94", "Not)A;Brand";v="99""#),
+                ..Default::default()
+            },
+        );
+        assert_eq!(get_value!(span.data.user_agent_original), None);
+        assert_eq!(get_value!(span.data.browser_name!), "Opera");
+    }
 }
 
\ No newline at end of file diff --git a/trait.impl/relay_event_normalization/normalize/user_agent/trait.FromUserAgentInfo.js b/trait.impl/relay_event_normalization/normalize/user_agent/trait.FromUserAgentInfo.js new file mode 100644 index 0000000000..242c2bff69 --- /dev/null +++ b/trait.impl/relay_event_normalization/normalize/user_agent/trait.FromUserAgentInfo.js @@ -0,0 +1,3 @@ +(function() {var implementors = { +"relay_event_normalization":[] +};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file