diff --git a/delog/all.html b/delog/all.html index fb57570..94bb171 100644 --- a/delog/all.html +++ b/delog/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Enums

Traits

Macros

Functions

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

List of all items

Structs

Enums

Traits

Macros

Functions

\ No newline at end of file diff --git a/delog/enum.Level.html b/delog/enum.Level.html index 8292be1..0bf5f57 100644 --- a/delog/enum.Level.html +++ b/delog/enum.Level.html @@ -1,4 +1,4 @@ -Level in delog - Rust

Enum Level

Source
#[repr(usize)]
pub enum Level { +Level in delog - Rust

Enum Level

Source
#[repr(usize)]
pub enum Level { Error = 1, Warn = 2, Info = 3, @@ -19,11 +19,11 @@

Designates lower priority information.

§

Trace = 5

The “trace” level.

Designates very low priority, often extremely verbose, information.

-

Implementations§

Source§

impl Level

Source

pub fn max() -> Level

Returns the most verbose logging level.

-
Source

pub fn to_level_filter(&self) -> LevelFilter

Converts the Level to the equivalent LevelFilter.

-
Source

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

Returns the string representation of the Level.

+

Implementations§

Source§

impl Level

Source

pub fn max() -> Level

Returns the most verbose logging level.

+
Source

pub fn to_level_filter(&self) -> LevelFilter

Converts the Level to the equivalent LevelFilter.

+
Source

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

Returns the string representation of the Level.

This returns the same string as the fmt::Display implementation.

-
Source

pub fn iter() -> impl Iterator<Item = Level>

Iterate through all supported logging levels.

+
Source

pub fn iter() -> impl Iterator<Item = Level>

Iterate through all supported logging levels.

The order of iteration is from more severe to less severe log messages.

§Examples
use log::Level;
@@ -32,25 +32,47 @@
 
 assert_eq!(Some(Level::Error), levels.next());
 assert_eq!(Some(Level::Trace), levels.last());
-

Trait Implementations§

Source§

impl Clone for Level

Source§

fn clone(&self) -> Level

Returns a duplicate 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 Level

Source§

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

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

impl Display for Level

Source§

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

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

impl FromStr for Level

Source§

type Err = ParseLevelError

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

fn from_str(level: &str) -> Result<Level, <Level as FromStr>::Err>

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

impl Hash for Level

Source§

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

Source

pub fn increment_severity(&self) -> Level

Get the next-highest Level from this one.

+

If the current Level is at the highest level, the returned Level will be the same as the +current one.

+
§Examples
+
use log::Level;
+
+let level = Level::Info;
+
+assert_eq!(Level::Debug, level.increment_severity());
+assert_eq!(Level::Trace, level.increment_severity().increment_severity());
+assert_eq!(Level::Trace, level.increment_severity().increment_severity().increment_severity()); // max level
+
Source

pub fn decrement_severity(&self) -> Level

Get the next-lowest Level from this one.

+

If the current Level is at the lowest level, the returned Level will be the same as the +current one.

+
§Examples
+
use log::Level;
+
+let level = Level::Info;
+
+assert_eq!(Level::Warn, level.decrement_severity());
+assert_eq!(Level::Error, level.decrement_severity().decrement_severity());
+assert_eq!(Level::Error, level.decrement_severity().decrement_severity().decrement_severity()); // min level
+

Trait Implementations§

Source§

impl Clone for Level

Source§

fn clone(&self) -> Level

Returns a duplicate 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 Level

Source§

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

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

impl Display for Level

Source§

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

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

impl FromStr for Level

Source§

type Err = ParseLevelError

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

fn from_str(level: &str) -> Result<Level, <Level as FromStr>::Err>

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

impl Hash for Level

Source§

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 Ord for Level

Source§

fn cmp(&self, other: &Level) -> 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,

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

impl Ord for Level

Source§

fn cmp(&self, other: &Level) -> 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,

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

impl PartialEq<Level> for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialEq<LevelFilter> for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialEq for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialOrd<Level> for LevelFilter

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

Tests less than or equal to (for self and other) and is used by the + Self: Sized,
Restrict a value to a certain interval. Read more
Source§

impl PartialEq<Level> for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialEq<LevelFilter> for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialEq for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialOrd<Level> for LevelFilter

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl PartialOrd<LevelFilter> for Level

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

Tests less than or equal to (for self and other) and is used by the +the >= operator. Read more
Source§

impl PartialOrd<LevelFilter> for Level

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl PartialOrd for Level

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

Tests less than or equal to (for self and other) and is used by the +the >= operator. Read more
Source§

impl PartialOrd for Level

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl Copy for Level

Source§

impl Eq for Level

Source§

impl StructuralPartialEq for Level

Auto Trait Implementations§

§

impl Freeze for Level

§

impl RefUnwindSafe for Level

§

impl Send for Level

§

impl Sync for Level

§

impl Unpin for Level

§

impl UnwindSafe for Level

Blanket Implementations§

Source§

impl<T> Any for T
where +the >= operator. Read more

Source§

impl Copy for Level

Source§

impl Eq for Level

Source§

impl StructuralPartialEq for Level

Auto Trait Implementations§

§

impl Freeze for Level

§

impl RefUnwindSafe for Level

§

impl Send for Level

§

impl Sync for Level

§

impl Unpin for Level

§

impl UnwindSafe for Level

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> CloneToUninit for T
where diff --git a/delog/enum.LevelFilter.html b/delog/enum.LevelFilter.html index 22b7838..762eb21 100644 --- a/delog/enum.LevelFilter.html +++ b/delog/enum.LevelFilter.html @@ -1,4 +1,4 @@ -LevelFilter in delog - Rust

Enum LevelFilter

Source
#[repr(usize)]
pub enum LevelFilter { +LevelFilter in delog - Rust

Enum LevelFilter

Source
#[repr(usize)]
pub enum LevelFilter { Off = 0, Error = 1, Warn = 2, @@ -14,12 +14,12 @@ to get and set the maximum log level with max_
§

Info = 3

Corresponds to the Info log level.

§

Debug = 4

Corresponds to the Debug log level.

§

Trace = 5

Corresponds to the Trace log level.

-

Implementations§

Source§

impl LevelFilter

Source

pub fn max() -> LevelFilter

Returns the most verbose logging level filter.

-
Source

pub fn to_level(&self) -> Option<Level>

Converts self to the equivalent Level.

+

Implementations§

Source§

impl LevelFilter

Source

pub fn max() -> LevelFilter

Returns the most verbose logging level filter.

+
Source

pub fn to_level(&self) -> Option<Level>

Converts self to the equivalent Level.

Returns None if self is LevelFilter::Off.

-
Source

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

Returns the string representation of the LevelFilter.

+
Source

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

Returns the string representation of the LevelFilter.

This returns the same string as the fmt::Display implementation.

-
Source

pub fn iter() -> impl Iterator<Item = LevelFilter>

Iterate through all supported filtering levels.

+
Source

pub fn iter() -> impl Iterator<Item = LevelFilter>

Iterate through all supported filtering levels.

The order of iteration is from less to more verbose filtering.

§Examples
use log::LevelFilter;
@@ -28,25 +28,48 @@ to get and set the maximum log level with max_
 
 assert_eq!(Some(LevelFilter::Off), levels.next());
 assert_eq!(Some(LevelFilter::Trace), levels.last());
-

Trait Implementations§

Source§

impl Clone for LevelFilter

Source§

fn clone(&self) -> LevelFilter

Returns a duplicate 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 LevelFilter

Source§

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

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

impl Display for LevelFilter

Source§

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

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

impl FromStr for LevelFilter

Source§

type Err = ParseLevelError

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

fn from_str(level: &str) -> Result<LevelFilter, <LevelFilter as FromStr>::Err>

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

impl Hash for LevelFilter

Source§

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

Source

pub fn increment_severity(&self) -> LevelFilter

Get the next-highest LevelFilter from this one.

+

If the current LevelFilter is at the highest level, the returned LevelFilter will be the +same as the current one.

+
§Examples
+
use log::LevelFilter;
+
+let level_filter = LevelFilter::Info;
+
+assert_eq!(LevelFilter::Debug, level_filter.increment_severity());
+assert_eq!(LevelFilter::Trace, level_filter.increment_severity().increment_severity());
+assert_eq!(LevelFilter::Trace, level_filter.increment_severity().increment_severity().increment_severity()); // max level
+
Source

pub fn decrement_severity(&self) -> LevelFilter

Get the next-lowest LevelFilter from this one.

+

If the current LevelFilter is at the lowest level, the returned LevelFilter will be the +same as the current one.

+
§Examples
+
use log::LevelFilter;
+
+let level_filter = LevelFilter::Info;
+
+assert_eq!(LevelFilter::Warn, level_filter.decrement_severity());
+assert_eq!(LevelFilter::Error, level_filter.decrement_severity().decrement_severity());
+assert_eq!(LevelFilter::Off, level_filter.decrement_severity().decrement_severity().decrement_severity());
+assert_eq!(LevelFilter::Off, level_filter.decrement_severity().decrement_severity().decrement_severity().decrement_severity()); // min level
+

Trait Implementations§

Source§

impl Clone for LevelFilter

Source§

fn clone(&self) -> LevelFilter

Returns a duplicate 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 LevelFilter

Source§

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

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

impl Display for LevelFilter

Source§

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

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

impl FromStr for LevelFilter

Source§

type Err = ParseLevelError

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

fn from_str(level: &str) -> Result<LevelFilter, <LevelFilter as FromStr>::Err>

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

impl Hash for LevelFilter

Source§

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 Ord for LevelFilter

Source§

fn cmp(&self, other: &LevelFilter) -> 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,

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

impl Ord for LevelFilter

Source§

fn cmp(&self, other: &LevelFilter) -> 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,

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

impl PartialEq<Level> for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialEq<LevelFilter> for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialEq for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialOrd<Level> for LevelFilter

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

Tests less than or equal to (for self and other) and is used by the + Self: Sized,

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

impl PartialEq<Level> for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialEq<LevelFilter> for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialEq for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialOrd<Level> for LevelFilter

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl PartialOrd<LevelFilter> for Level

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

Tests less than or equal to (for self and other) and is used by the +the >= operator. Read more
Source§

impl PartialOrd<LevelFilter> for Level

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl PartialOrd for LevelFilter

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

Tests less than or equal to (for self and other) and is used by the +the >= operator. Read more
Source§

impl PartialOrd for LevelFilter

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl Copy for LevelFilter

Source§

impl Eq for LevelFilter

Source§

impl StructuralPartialEq for LevelFilter

Auto Trait Implementations§

§

impl Freeze for LevelFilter

§

impl RefUnwindSafe for LevelFilter

§

impl Send for LevelFilter

§

impl Sync for LevelFilter

§

impl Unpin for LevelFilter

§

impl UnwindSafe for LevelFilter

Blanket Implementations§

Source§

impl<T> Any for T
where +the >= operator. Read more

Source§

impl Copy for LevelFilter

Source§

impl Eq for LevelFilter

Source§

impl StructuralPartialEq for LevelFilter

Auto Trait Implementations§

§

impl Freeze for LevelFilter

§

impl RefUnwindSafe for LevelFilter

§

impl Send for LevelFilter

§

impl Sync for LevelFilter

§

impl Unpin for LevelFilter

§

impl UnwindSafe for LevelFilter

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> CloneToUninit for T
where diff --git a/delog/fn.dequeue.html b/delog/fn.dequeue.html index 37e8b74..2b582bf 100644 --- a/delog/fn.dequeue.html +++ b/delog/fn.dequeue.html @@ -1,4 +1,4 @@ -dequeue in delog - Rust

Function dequeue

Source
pub unsafe fn dequeue(delogger: impl Delogger, buf: &mut [u8]) -> &str
Expand description

The core “read from circular buffer” method. Marked unsafe to discourage use!

+dequeue in delog - Rust

Function dequeue

Source
pub unsafe fn dequeue(delogger: impl Delogger, buf: &mut [u8]) -> &str
Expand description

The core “read from circular buffer” method. Marked unsafe to discourage use!

§Safety

Unfortunately exposed for all to see, as the delog! macro needs access to it to implement the logger at call site. Hence marked as unsafe.

diff --git a/delog/fn.enqueue.html b/delog/fn.enqueue.html index 4f7503c..859cf09 100644 --- a/delog/fn.enqueue.html +++ b/delog/fn.enqueue.html @@ -1,4 +1,4 @@ -enqueue in delog - Rust

Function enqueue

Source
pub unsafe fn enqueue(delogger: impl Delogger, record: &Record<'_>)
Expand description

The core “write to circular buffer” method. Marked unsafe to discourage use!

+enqueue in delog - Rust

Function enqueue

Source
pub unsafe fn enqueue(delogger: impl Delogger, record: &Record<'_>)
Expand description

The core “write to circular buffer” method. Marked unsafe to discourage use!

§Safety

Unfortunately exposed for all to see, as the delog! macro needs access to it to implement the logger at call site. Hence marked as unsafe.

diff --git a/delog/fn.logger.html b/delog/fn.logger.html index 8be0bae..636d8f3 100644 --- a/delog/fn.logger.html +++ b/delog/fn.logger.html @@ -1,2 +1,2 @@ -logger in delog - Rust

Function logger

Source
pub fn logger() -> &'static mut Option<&'static dyn TryLogWithStatistics>
Expand description

Returns a reference to the logger (as TryLogWithStatistics implementation)

+logger in delog - Rust

Function logger

Source
pub fn logger() -> &'static mut Option<&'static dyn TryLogWithStatistics>
Expand description

Returns a reference to the logger (as TryLogWithStatistics implementation)

\ No newline at end of file diff --git a/delog/fn.try_enqueue.html b/delog/fn.try_enqueue.html index 336973e..393c4dd 100644 --- a/delog/fn.try_enqueue.html +++ b/delog/fn.try_enqueue.html @@ -1,4 +1,4 @@ -try_enqueue in delog - Rust

Function try_enqueue

Source
pub unsafe fn try_enqueue(
+try_enqueue in delog - Rust

Function try_enqueue

Source
pub unsafe fn try_enqueue(
     delogger: impl Delogger,
     record: &Record<'_>,
 ) -> Result<(), ()>
Expand description

The fallible “write to circular buffer” method. Marked unsafe to discourage use!

diff --git a/delog/hex/fn.HexStr.html b/delog/hex/fn.HexStr.html index fd21309..08a5321 100644 --- a/delog/hex/fn.HexStr.html +++ b/delog/hex/fn.HexStr.html @@ -1,4 +1,4 @@ -HexStr in delog::hex - Rust

Function HexStr

Source
pub fn HexStr<T: ?Sized, U: Unsigned, S: Separator>(
+HexStr in delog::hex - Rust

Function HexStr

Source
pub fn HexStr<T: ?Sized, U: Unsigned, S: Separator>(
     value: &T,
 ) -> HexStr<'_, T, U, S>
Expand description

Explicitly construct a newtype to format with.

The first generic parameter specifies the block size in bytes, the second parameter diff --git a/delog/hex/index.html b/delog/hex/index.html index c32453b..f5f1ffd 100644 --- a/delog/hex/index.html +++ b/delog/hex/index.html @@ -1,4 +1,4 @@ -delog::hex - Rust

Module hex

Source
Expand description

Convenient Display and other traits for binary data.

+delog::hex - Rust

Module hex

Source
Expand description

Convenient Display and other traits for binary data.

Standard Rust uses the fmt::UpperHex and LowerHex traits to implement hexadecimal representations for use in format strings. For instance, format_args!("{:02X?}", &[7, 0xA1, 0xFF]) produces the string "[07, A1, FF]".

diff --git a/delog/hex/struct.HexStr.html b/delog/hex/struct.HexStr.html index 6758e60..f5b1069 100644 --- a/delog/hex/struct.HexStr.html +++ b/delog/hex/struct.HexStr.html @@ -1,4 +1,4 @@ -HexStr in delog::hex - Rust

Struct HexStr

Source
pub struct HexStr<'a, T: ?Sized, U, S>
where +HexStr in delog::hex - Rust

Struct HexStr

Source
pub struct HexStr<'a, T: ?Sized, U, S>
where U: Unsigned, S: Separator,
{ pub value: &'a T, diff --git a/delog/hex/struct.U1.html b/delog/hex/struct.U1.html index 37662ff..d40676b 100644 --- a/delog/hex/struct.U1.html +++ b/delog/hex/struct.U1.html @@ -1,4 +1,4 @@ -U1 in delog::hex - Rust

Struct U1

Source
pub struct U1;
Expand description

A type that represents the integer 1.

+U1 in delog::hex - Rust

Struct U1

Source
pub struct U1;
Expand description

A type that represents the integer 1.

Trait Implementations§

Source§

impl Unsigned for U1

Source§

const N: usize = 1usize

The actual number.

Auto Trait Implementations§

§

impl Freeze for U1

§

impl RefUnwindSafe for U1

§

impl Send for U1

§

impl Sync for U1

§

impl Unpin for U1

§

impl UnwindSafe for U1

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 diff --git a/delog/hex/trait.Separator.html b/delog/hex/trait.Separator.html index 3403194..970a1a8 100644 --- a/delog/hex/trait.Separator.html +++ b/delog/hex/trait.Separator.html @@ -1,4 +1,4 @@ -Separator in delog::hex - Rust

Trait Separator

Source
pub trait Separator {
+Separator in delog::hex - Rust

Trait Separator

Source
pub trait Separator {
     const SEPARATOR: &'static str;
 }
Expand description

A type that specifies a separator str.

Required Associated Constants§

Source

const SEPARATOR: &'static str

The actual separator str.

diff --git a/delog/hex/trait.Unsigned.html b/delog/hex/trait.Unsigned.html index e04d67b..5d116da 100644 --- a/delog/hex/trait.Unsigned.html +++ b/delog/hex/trait.Unsigned.html @@ -1,4 +1,4 @@ -Unsigned in delog::hex - Rust

Trait Unsigned

Source
pub trait Unsigned {
+Unsigned in delog::hex - Rust

Trait Unsigned

Source
pub trait Unsigned {
     const N: usize;
 }
Expand description

A type that specifies an unsigned integer.

We use this instead of typenum as the latter currently lacks diff --git a/delog/index.html b/delog/index.html index 95c51a0..1ec61dd 100644 --- a/delog/index.html +++ b/delog/index.html @@ -1,4 +1,4 @@ -delog - Rust

Crate delog

Source
Expand description

§Compile-time configurable deferred logging (for printf()-debugging aka tracing)

+delog - Rust

Crate delog

Source
Expand description

§Compile-time configurable deferred logging (for printf()-debugging aka tracing)

This is an implementation of the log::Log trait, suitable for use in both embedded and desktop environments.

It has two main goals:

diff --git a/delog/macro.delog.html b/delog/macro.delog.html index 119288b..fce6872 100644 --- a/delog/macro.delog.html +++ b/delog/macro.delog.html @@ -1,4 +1,4 @@ -delog in delog - Rust

Macro delog

Source
macro_rules! delog {
+delog in delog - Rust

Macro delog

Source
macro_rules! delog {
     ($logger:ident, $capacity:expr, $render_capacity:expr, $flusher:ty) => { ... };
     ($logger:ident, $capacity:expr, $flusher:ty) => { ... };
     ($logger:ident, $capacity:expr, $flusher:ty, renderer: $renderer:ty) => { ... };
diff --git a/delog/macro.generate_macros.html b/delog/macro.generate_macros.html
index ee9103b..bb0f191 100644
--- a/delog/macro.generate_macros.html
+++ b/delog/macro.generate_macros.html
@@ -1,4 +1,4 @@
-generate_macros in delog - Rust

Macro generate_macros

Source
macro_rules! generate_macros {
+generate_macros in delog - Rust

Macro generate_macros

Source
macro_rules! generate_macros {
     () => { ... };
 }
Expand description

Generate logging macros that can be gated by library.

Realize that these macros are generated in the namespace of the consuming library, the one diff --git a/delog/macro.hex_str.html b/delog/macro.hex_str.html index 90d2266..7966b33 100644 --- a/delog/macro.hex_str.html +++ b/delog/macro.hex_str.html @@ -1,4 +1,4 @@ -hex_str in delog - Rust

Macro hex_str

Source
macro_rules! hex_str {
+hex_str in delog - Rust

Macro hex_str

Source
macro_rules! hex_str {
     ($array:expr) => { ... };
     ($array:expr, sep: $separator:expr) => { ... };
     ($array:expr, $n:tt) => { ... };
diff --git a/delog/macro.hexstr.html b/delog/macro.hexstr.html
index 12e1544..afe3a6a 100644
--- a/delog/macro.hexstr.html
+++ b/delog/macro.hexstr.html
@@ -1,4 +1,4 @@
-hexstr in delog - Rust

Macro hexstr

Source
macro_rules! hexstr {
+hexstr in delog - Rust

Macro hexstr

Source
macro_rules! hexstr {
     ($array:expr) => { ... };
 }
Expand description

More compactly format byte arrays and slices as hexadecimals.

diff --git a/delog/render/fn.default.html b/delog/render/fn.default.html index bb6be6f..3ec6916 100644 --- a/delog/render/fn.default.html +++ b/delog/render/fn.default.html @@ -1,2 +1,2 @@ -default in delog::render - Rust

Function default

Source
pub fn default() -> &'static DefaultRenderer
Expand description

The default, minimal renderer.

+default in delog::render - Rust

Function default

Source
pub fn default() -> &'static DefaultRenderer
Expand description

The default, minimal renderer.

\ No newline at end of file diff --git a/delog/render/fn.render_arguments.html b/delog/render/fn.render_arguments.html index f4e1d38..23fb656 100644 --- a/delog/render/fn.render_arguments.html +++ b/delog/render/fn.render_arguments.html @@ -1,4 +1,4 @@ -render_arguments in delog::render - Rust

Function render_arguments

Source
pub fn render_arguments<'a>(buf: &'a mut [u8], args: Arguments<'_>) -> &'a [u8]
Expand description

For some reason, there seems to be no existing method to easily render +render_arguments in delog::render - Rust

Function render_arguments

Source
pub fn render_arguments<'a>(buf: &'a mut [u8], args: Arguments<'_>) -> &'a [u8]
Expand description

For some reason, there seems to be no existing method to easily render fmt::Arguments in a pre-allocated byte array.

That is what this does.

\ No newline at end of file diff --git a/delog/render/fn.render_record.html b/delog/render/fn.render_record.html index 1844618..57d33c3 100644 --- a/delog/render/fn.render_record.html +++ b/delog/render/fn.render_record.html @@ -1,2 +1,2 @@ -render_record in delog::render - Rust

Function render_record

Source
pub fn render_record<'a>(buf: &'a mut [u8], record: &Record<'_>) -> &'a [u8]
Expand description

Render record, based on feature flags.

+render_record in delog::render - Rust

Function render_record

Source
pub fn render_record<'a>(buf: &'a mut [u8], record: &Record<'_>) -> &'a [u8]
Expand description

Render record, based on feature flags.

\ No newline at end of file diff --git a/delog/render/index.html b/delog/render/index.html index 0b81610..e0444ec 100644 --- a/delog/render/index.html +++ b/delog/render/index.html @@ -1,3 +1,3 @@ -delog::render - Rust

Module render

Source
Expand description

The default, minimal renderer, and some helper functions.

+delog::render - Rust

Module render

Source
Expand description

The default, minimal renderer, and some helper functions.

Structs§

DefaultRenderer
Renders just the record.args().
RipgrepRenderer
Renders the record.args(), prefixed by level, target, and file, line if they are some.

Functions§

default
The default, minimal renderer.
render_arguments
For some reason, there seems to be no existing method to easily render fmt::Arguments in a pre-allocated byte array.
render_record
Render record, based on feature flags.
\ No newline at end of file diff --git a/delog/render/struct.DefaultRenderer.html b/delog/render/struct.DefaultRenderer.html index 8174670..8db836f 100644 --- a/delog/render/struct.DefaultRenderer.html +++ b/delog/render/struct.DefaultRenderer.html @@ -1,6 +1,6 @@ -DefaultRenderer in delog::render - Rust

Struct DefaultRenderer

Source
pub struct DefaultRenderer {}
Expand description

Renders just the record.args().

-

Trait Implementations§

Source§

impl Clone for DefaultRenderer

Source§

fn clone(&self) -> DefaultRenderer

Returns a duplicate 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 Renderer for DefaultRenderer

Source§

fn render<'a>(&self, buf: &'a mut [u8], record: &Record<'_>) -> &'a [u8]

Implementor must render record into buf, returning the slice containing the rendered -record.
Source§

impl Copy for DefaultRenderer

Source§

impl Send for DefaultRenderer

Source§

impl Sync for DefaultRenderer

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +DefaultRenderer in delog::render - Rust

Struct DefaultRenderer

Source
pub struct DefaultRenderer {}
Expand description

Renders just the record.args().

+

Trait Implementations§

Source§

impl Clone for DefaultRenderer

Source§

fn clone(&self) -> DefaultRenderer

Returns a duplicate 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 Renderer for DefaultRenderer

Source§

fn render<'a>(&self, buf: &'a mut [u8], record: &Record<'_>) -> &'a [u8]

Implementor must render record into buf, returning the slice containing the rendered +record.
Source§

impl Copy for DefaultRenderer

Source§

impl Send for DefaultRenderer

Source§

impl Sync for DefaultRenderer

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> CloneToUninit for T
where diff --git a/delog/render/struct.RipgrepRenderer.html b/delog/render/struct.RipgrepRenderer.html index 9b6f6e5..c57f40f 100644 --- a/delog/render/struct.RipgrepRenderer.html +++ b/delog/render/struct.RipgrepRenderer.html @@ -1,6 +1,6 @@ -RipgrepRenderer in delog::render - Rust

Struct RipgrepRenderer

Source
pub struct RipgrepRenderer {}
Expand description

Renders the record.args(), prefixed by level, target, and file, line if they are some.

-

Trait Implementations§

Source§

impl Clone for RipgrepRenderer

Source§

fn clone(&self) -> RipgrepRenderer

Returns a duplicate 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 Renderer for RipgrepRenderer

Source§

fn render<'a>(&self, buf: &'a mut [u8], record: &Record<'_>) -> &'a [u8]

Implementor must render record into buf, returning the slice containing the rendered -record.
Source§

impl Copy for RipgrepRenderer

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +RipgrepRenderer in delog::render - Rust

Struct RipgrepRenderer

Source
pub struct RipgrepRenderer {}
Expand description

Renders the record.args(), prefixed by level, target, and file, line if they are some.

+

Trait Implementations§

Source§

impl Clone for RipgrepRenderer

Source§

fn clone(&self) -> RipgrepRenderer

Returns a duplicate 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 Renderer for RipgrepRenderer

Source§

fn render<'a>(&self, buf: &'a mut [u8], record: &Record<'_>) -> &'a [u8]

Implementor must render record into buf, returning the slice containing the rendered +record.
Source§

impl Copy for RipgrepRenderer

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> CloneToUninit for T
where diff --git a/delog/struct.Record.html b/delog/struct.Record.html index 86bae9a..36ca99b 100644 --- a/delog/struct.Record.html +++ b/delog/struct.Record.html @@ -1,4 +1,4 @@ -Record in delog - Rust

Struct Record

Source
pub struct Record<'a> { /* private fields */ }
Expand description

The “payload” of a log message.

+Record in delog - Rust

Struct Record

Source
pub struct Record<'a> { /* private fields */ }
Expand description

The “payload” of a log message.

§Use

Record structures are passed as parameters to the log method of the Log trait. Logger implementors manipulate these @@ -30,17 +30,17 @@ module path, and message of any Record that is passed to it.

} fn flush(&self) {} }

-

Implementations§

Source§

impl<'a> Record<'a>

Source

pub fn builder() -> RecordBuilder<'a>

Returns a new builder.

-
Source

pub fn args(&self) -> &Arguments<'a>

The message body.

-
Source

pub fn metadata(&self) -> &Metadata<'a>

Metadata about the log directive.

-
Source

pub fn level(&self) -> Level

The verbosity level of the message.

-
Source

pub fn target(&self) -> &'a str

The name of the target of the directive.

-
Source

pub fn module_path(&self) -> Option<&'a str>

The module path of the message.

-
Source

pub fn module_path_static(&self) -> Option<&'static str>

The module path of the message, if it is a 'static string.

-
Source

pub fn file(&self) -> Option<&'a str>

The source file containing the message.

-
Source

pub fn file_static(&self) -> Option<&'static str>

The source file containing the message, if it is a 'static string.

-
Source

pub fn line(&self) -> Option<u32>

The line containing the message.

-

Trait Implementations§

Source§

impl<'a> Clone for Record<'a>

Source§

fn clone(&self) -> Record<'a>

Returns a duplicate 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<'a> Debug for Record<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Record<'a>

§

impl<'a> RefUnwindSafe for Record<'a>

§

impl<'a> !Send for Record<'a>

§

impl<'a> !Sync for Record<'a>

§

impl<'a> Unpin for Record<'a>

§

impl<'a> UnwindSafe for Record<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where +

Implementations§

Source§

impl<'a> Record<'a>

Source

pub fn builder() -> RecordBuilder<'a>

Returns a new builder.

+
Source

pub fn args(&self) -> &Arguments<'a>

The message body.

+
Source

pub fn metadata(&self) -> &Metadata<'a>

Metadata about the log directive.

+
Source

pub fn level(&self) -> Level

The verbosity level of the message.

+
Source

pub fn target(&self) -> &'a str

The name of the target of the directive.

+
Source

pub fn module_path(&self) -> Option<&'a str>

The module path of the message.

+
Source

pub fn module_path_static(&self) -> Option<&'static str>

The module path of the message, if it is a 'static string.

+
Source

pub fn file(&self) -> Option<&'a str>

The source file containing the message.

+
Source

pub fn file_static(&self) -> Option<&'static str>

The source file containing the message, if it is a 'static string.

+
Source

pub fn line(&self) -> Option<u32>

The line containing the message.

+

Trait Implementations§

Source§

impl<'a> Clone for Record<'a>

Source§

fn clone(&self) -> Record<'a>

Returns a duplicate 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<'a> Debug for Record<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Record<'a>

§

impl<'a> RefUnwindSafe for Record<'a>

§

impl<'a> !Send for Record<'a>

§

impl<'a> !Sync for Record<'a>

§

impl<'a> Unpin for Record<'a>

§

impl<'a> UnwindSafe for Record<'a>

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> CloneToUninit for T
where diff --git a/delog/struct.Statistics.html b/delog/struct.Statistics.html index 7187584..16245b7 100644 --- a/delog/struct.Statistics.html +++ b/delog/struct.Statistics.html @@ -1,4 +1,4 @@ -Statistics in delog - Rust

Struct Statistics

Source
pub struct Statistics {
+Statistics in delog - Rust

Struct Statistics

Source
pub struct Statistics {
     pub attempts: usize,
     pub successes: usize,
     pub flushes: usize,
@@ -10,7 +10,7 @@
 
§flushes: usize

How often was the flusher called.

§read: usize

How many bytes were flushed so far.

§written: usize

How many bytes were logged so far.

-

Trait Implementations§

Source§

impl Clone for Statistics

Source§

fn clone(&self) -> Statistics

Returns a duplicate 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 Statistics

Source§

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

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

impl Copy for Statistics

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +

Trait Implementations§

Source§

impl Clone for Statistics

Source§

fn clone(&self) -> Statistics

Returns a duplicate 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 Statistics

Source§

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

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

impl Copy for Statistics

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> CloneToUninit for T
where diff --git a/delog/trait.Delogger.html b/delog/trait.Delogger.html index 11f69c4..21bde76 100644 --- a/delog/trait.Delogger.html +++ b/delog/trait.Delogger.html @@ -1,4 +1,4 @@ -Delogger in delog - Rust

Trait Delogger

Source
pub unsafe trait Delogger:
+Delogger in delog - Rust

Trait Delogger

Source
pub unsafe trait Delogger:
     Log
     + TryLog
     + State<&'static AtomicUsize> {
@@ -16,9 +16,9 @@
 but always go through the delog! macro.

The user has access to the global logger via delog::logger(), but only as TryLog/Log implementation, not with this direct access to implementation details.

-

Required Methods§

Source

fn buffer(&self) -> &'static mut [u8]

the underlying buffer

-
Source

fn claimed(&self) -> &'static AtomicUsize

How many characters were claimed so far.

-
Source

fn flush(&self, logs: &str)

Call the flusher.

-
Source

fn render(&self, record: &Record<'_>) -> &'static [u8]

Actually render the arguments (via internal static buffer).

-

Provided Methods§

Source

fn capacity(&self) -> usize

Capacity of circular buffer.

+

Required Methods§

Source

fn buffer(&self) -> &'static mut [u8]

the underlying buffer

+
Source

fn claimed(&self) -> &'static AtomicUsize

How many characters were claimed so far.

+
Source

fn flush(&self, logs: &str)

Call the flusher.

+
Source

fn render(&self, record: &Record<'_>) -> &'static [u8]

Actually render the arguments (via internal static buffer).

+

Provided Methods§

Source

fn capacity(&self) -> usize

Capacity of circular buffer.

Implementors§

\ No newline at end of file diff --git a/delog/trait.Flusher.html b/delog/trait.Flusher.html index 8ea0015..b8d9669 100644 --- a/delog/trait.Flusher.html +++ b/delog/trait.Flusher.html @@ -1,4 +1,4 @@ -Flusher in delog - Rust

Trait Flusher

Source
pub trait Flusher: Debug + Send {
+Flusher in delog - Rust

Trait Flusher

Source
pub trait Flusher: Debug + Send {
     // Required method
     fn flush(&self, logs: &str);
 }
Expand description

A way to pass on logs, user supplied.

diff --git a/delog/trait.Renderer.html b/delog/trait.Renderer.html index 8d5e0f2..5f97d9c 100644 --- a/delog/trait.Renderer.html +++ b/delog/trait.Renderer.html @@ -1,7 +1,7 @@ -Renderer in delog - Rust

Trait Renderer

Source
pub trait Renderer: Send + Sync {
+Renderer in delog - Rust

Trait Renderer

Source
pub trait Renderer: Send + Sync {
     // Required method
     fn render<'a>(&self, buf: &'a mut [u8], record: &Record<'_>) -> &'a [u8];
 }
Expand description

A way to format logs, user supplied.

Required Methods§

Source

fn render<'a>(&self, buf: &'a mut [u8], record: &Record<'_>) -> &'a [u8]

Implementor must render record into buf, returning the slice containing the rendered record.

-

Implementors§

\ No newline at end of file +

Implementors§

\ No newline at end of file diff --git a/delog/trait.State.html b/delog/trait.State.html index 796f709..2e43cd4 100644 --- a/delog/trait.State.html +++ b/delog/trait.State.html @@ -1,4 +1,4 @@ -State in delog - Rust

Trait State

Source
pub trait State<T> {
+State in delog - Rust

Trait State

Source
pub trait State<T> {
     // Required methods
     fn attempts(&self) -> T;
     fn successes(&self) -> T;
@@ -6,9 +6,9 @@
     fn read(&self) -> T;
     fn written(&self) -> T;
 }
Expand description

Trait for either state or statistics of loggers.

-

Required Methods§

Source

fn attempts(&self) -> T

How often was one of the logging macros called.

-
Source

fn successes(&self) -> T

How often was one of the logging macros called without early exit (e.g., buffer not full)

-
Source

fn flushes(&self) -> T

How often was the flusher called.

-
Source

fn read(&self) -> T

How many bytes were flushed so far.

-
Source

fn written(&self) -> T

How many bytes were logged so far.

+

Required Methods§

Source

fn attempts(&self) -> T

How often was one of the logging macros called.

+
Source

fn successes(&self) -> T

How often was one of the logging macros called without early exit (e.g., buffer not full)

+
Source

fn flushes(&self) -> T

How often was the flusher called.

+
Source

fn read(&self) -> T

How many bytes were flushed so far.

+
Source

fn written(&self) -> T

How many bytes were logged so far.

Implementors§

\ No newline at end of file diff --git a/delog/trait.TryLog.html b/delog/trait.TryLog.html index 9fffec1..ffd309b 100644 --- a/delog/trait.TryLog.html +++ b/delog/trait.TryLog.html @@ -1,4 +1,4 @@ -TryLog in delog - Rust

Trait TryLog

Source
pub trait TryLog: Log {
+TryLog in delog - Rust

Trait TryLog

Source
pub trait TryLog: Log {
     // Required method
     fn try_log(&self, _: &Record<'_>) -> Result<(), ()>;
 }
Expand description

Fallible, panic-free version of the log::Log trait.

@@ -7,5 +7,5 @@ implement log::Log in a panic-free fashion, and simply drop logs that can’t be logged. Because, if the user can handle the error, they would be using the fallible macros, and if not, they most likely do not want to crash.

-

Required Methods§

Source

fn try_log(&self, _: &Record<'_>) -> Result<(), ()>

Fallible logging call (fails when buffer is full)

+

Required Methods§

Source

fn try_log(&self, _: &Record<'_>) -> Result<(), ()>

Fallible logging call (fails when buffer is full)

Implementors§

\ No newline at end of file diff --git a/delog/trait.TryLogWithStatistics.html b/delog/trait.TryLogWithStatistics.html index 21e6099..83c729f 100644 --- a/delog/trait.TryLogWithStatistics.html +++ b/delog/trait.TryLogWithStatistics.html @@ -1,6 +1,6 @@ -TryLogWithStatistics in delog - Rust

Trait TryLogWithStatistics

Source
pub trait TryLogWithStatistics: TryLog + State<usize> {
+TryLogWithStatistics in delog - Rust

Trait TryLogWithStatistics

Source
pub trait TryLogWithStatistics: TryLog + State<usize> {
     // Provided method
     fn statistics(&self) -> Statistics { ... }
 }
Expand description

TryLog with some usage statistics on top.

-

Provided Methods§

Source

fn statistics(&self) -> Statistics

Read out statistics on logger usage.

+

Provided Methods§

Source

fn statistics(&self) -> Statistics

Read out statistics on logger usage.

Implementors§

\ No newline at end of file diff --git a/log/all.html b/log/all.html index 6bf427d..e598ff5 100644 --- a/log/all.html +++ b/log/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/log/constant.STATIC_MAX_LEVEL.html b/log/constant.STATIC_MAX_LEVEL.html index 8c977f3..5213d33 100644 --- a/log/constant.STATIC_MAX_LEVEL.html +++ b/log/constant.STATIC_MAX_LEVEL.html @@ -1,4 +1,4 @@ -STATIC_MAX_LEVEL in log - Rust

Constant STATIC_MAX_LEVEL

Source
pub const STATIC_MAX_LEVEL: LevelFilter;
Expand description

The statically resolved maximum log level.

+STATIC_MAX_LEVEL in log - Rust

Constant STATIC_MAX_LEVEL

Source
pub const STATIC_MAX_LEVEL: LevelFilter;
Expand description

The statically resolved maximum log level.

See the crate level documentation for information on how to configure this.

This value is checked by the log macros, but not by the Logger returned by the logger function. Code that manually calls functions on that value diff --git a/log/enum.Level.html b/log/enum.Level.html index b40fa85..b463bab 100644 --- a/log/enum.Level.html +++ b/log/enum.Level.html @@ -1,4 +1,4 @@ -Level in log - Rust

Enum Level

Source
#[repr(usize)]
pub enum Level { +Level in log - Rust

Enum Level

Source
#[repr(usize)]
pub enum Level { Error = 1, Warn = 2, Info = 3, @@ -19,11 +19,11 @@

Designates lower priority information.

§

Trace = 5

The “trace” level.

Designates very low priority, often extremely verbose, information.

-

Implementations§

Source§

impl Level

Source

pub fn max() -> Level

Returns the most verbose logging level.

-
Source

pub fn to_level_filter(&self) -> LevelFilter

Converts the Level to the equivalent LevelFilter.

-
Source

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

Returns the string representation of the Level.

+

Implementations§

Source§

impl Level

Source

pub fn max() -> Level

Returns the most verbose logging level.

+
Source

pub fn to_level_filter(&self) -> LevelFilter

Converts the Level to the equivalent LevelFilter.

+
Source

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

Returns the string representation of the Level.

This returns the same string as the fmt::Display implementation.

-
Source

pub fn iter() -> impl Iterator<Item = Self>

Iterate through all supported logging levels.

+
Source

pub fn iter() -> impl Iterator<Item = Self>

Iterate through all supported logging levels.

The order of iteration is from more severe to less severe log messages.

§Examples
use log::Level;
@@ -32,24 +32,46 @@
 
 assert_eq!(Some(Level::Error), levels.next());
 assert_eq!(Some(Level::Trace), levels.last());
-

Trait Implementations§

Source§

impl Clone for Level

Source§

fn clone(&self) -> Level

Returns a duplicate 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 Level

Source§

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

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

impl Display for Level

Source§

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

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

impl FromStr for Level

Source§

type Err = ParseLevelError

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

fn from_str(level: &str) -> Result<Level, Self::Err>

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

impl Hash for Level

Source§

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

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

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

Source

pub fn increment_severity(&self) -> Self

Get the next-highest Level from this one.

+

If the current Level is at the highest level, the returned Level will be the same as the +current one.

+
§Examples
+
use log::Level;
+
+let level = Level::Info;
+
+assert_eq!(Level::Debug, level.increment_severity());
+assert_eq!(Level::Trace, level.increment_severity().increment_severity());
+assert_eq!(Level::Trace, level.increment_severity().increment_severity().increment_severity()); // max level
+
Source

pub fn decrement_severity(&self) -> Self

Get the next-lowest Level from this one.

+

If the current Level is at the lowest level, the returned Level will be the same as the +current one.

+
§Examples
+
use log::Level;
+
+let level = Level::Info;
+
+assert_eq!(Level::Warn, level.decrement_severity());
+assert_eq!(Level::Error, level.decrement_severity().decrement_severity());
+assert_eq!(Level::Error, level.decrement_severity().decrement_severity().decrement_severity()); // min level
+

Trait Implementations§

Source§

impl Clone for Level

Source§

fn clone(&self) -> Level

Returns a duplicate 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 Level

Source§

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

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

impl Display for Level

Source§

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

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

impl FromStr for Level

Source§

type Err = ParseLevelError

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

fn from_str(level: &str) -> Result<Level, Self::Err>

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

impl Hash for Level

Source§

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

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 Ord for Level

Source§

fn cmp(&self, other: &Level) -> 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,

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

impl Ord for Level

Source§

fn cmp(&self, other: &Level) -> 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,

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

impl PartialEq<Level> for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialEq<LevelFilter> for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialEq for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialOrd<Level> for LevelFilter

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

Tests less than or equal to (for self and other) and is used by the + Self: Sized,

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

impl PartialEq<Level> for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialEq<LevelFilter> for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialEq for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialOrd<Level> for LevelFilter

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl PartialOrd<LevelFilter> for Level

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

Tests less than or equal to (for self and other) and is used by the +the >= operator. Read more
Source§

impl PartialOrd<LevelFilter> for Level

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl PartialOrd for Level

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

Tests less than or equal to (for self and other) and is used by the +the >= operator. Read more
Source§

impl PartialOrd for Level

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl Copy for Level

Source§

impl Eq for Level

Source§

impl StructuralPartialEq for Level

Auto Trait Implementations§

§

impl Freeze for Level

§

impl RefUnwindSafe for Level

§

impl Send for Level

§

impl Sync for Level

§

impl Unpin for Level

§

impl UnwindSafe for Level

Blanket Implementations§

Source§

impl<T> Any for T
where +the >= operator. Read more

Source§

impl Copy for Level

Source§

impl Eq for Level

Source§

impl StructuralPartialEq for Level

Auto Trait Implementations§

§

impl Freeze for Level

§

impl RefUnwindSafe for Level

§

impl Send for Level

§

impl Sync for Level

§

impl Unpin for Level

§

impl UnwindSafe for Level

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> CloneToUninit for T
where diff --git a/log/enum.LevelFilter.html b/log/enum.LevelFilter.html index 922dda1..da4f69d 100644 --- a/log/enum.LevelFilter.html +++ b/log/enum.LevelFilter.html @@ -1,4 +1,4 @@ -LevelFilter in log - Rust

Enum LevelFilter

Source
#[repr(usize)]
pub enum LevelFilter { +LevelFilter in log - Rust

Enum LevelFilter

Source
#[repr(usize)]
pub enum LevelFilter { Off = 0, Error = 1, Warn = 2, @@ -14,12 +14,12 @@ to get and set the maximum log level with max_
§

Info = 3

Corresponds to the Info log level.

§

Debug = 4

Corresponds to the Debug log level.

§

Trace = 5

Corresponds to the Trace log level.

-

Implementations§

Source§

impl LevelFilter

Source

pub fn max() -> LevelFilter

Returns the most verbose logging level filter.

-
Source

pub fn to_level(&self) -> Option<Level>

Converts self to the equivalent Level.

+

Implementations§

Source§

impl LevelFilter

Source

pub fn max() -> LevelFilter

Returns the most verbose logging level filter.

+
Source

pub fn to_level(&self) -> Option<Level>

Converts self to the equivalent Level.

Returns None if self is LevelFilter::Off.

-
Source

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

Returns the string representation of the LevelFilter.

+
Source

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

Returns the string representation of the LevelFilter.

This returns the same string as the fmt::Display implementation.

-
Source

pub fn iter() -> impl Iterator<Item = Self>

Iterate through all supported filtering levels.

+
Source

pub fn iter() -> impl Iterator<Item = Self>

Iterate through all supported filtering levels.

The order of iteration is from less to more verbose filtering.

§Examples
use log::LevelFilter;
@@ -28,24 +28,47 @@ to get and set the maximum log level with max_
 
 assert_eq!(Some(LevelFilter::Off), levels.next());
 assert_eq!(Some(LevelFilter::Trace), levels.last());
-

Trait Implementations§

Source§

impl Clone for LevelFilter

Source§

fn clone(&self) -> LevelFilter

Returns a duplicate 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 LevelFilter

Source§

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

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

impl Display for LevelFilter

Source§

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

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

impl FromStr for LevelFilter

Source§

type Err = ParseLevelError

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

fn from_str(level: &str) -> Result<LevelFilter, Self::Err>

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

impl Hash for LevelFilter

Source§

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

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

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

Source

pub fn increment_severity(&self) -> Self

Get the next-highest LevelFilter from this one.

+

If the current LevelFilter is at the highest level, the returned LevelFilter will be the +same as the current one.

+
§Examples
+
use log::LevelFilter;
+
+let level_filter = LevelFilter::Info;
+
+assert_eq!(LevelFilter::Debug, level_filter.increment_severity());
+assert_eq!(LevelFilter::Trace, level_filter.increment_severity().increment_severity());
+assert_eq!(LevelFilter::Trace, level_filter.increment_severity().increment_severity().increment_severity()); // max level
+
Source

pub fn decrement_severity(&self) -> Self

Get the next-lowest LevelFilter from this one.

+

If the current LevelFilter is at the lowest level, the returned LevelFilter will be the +same as the current one.

+
§Examples
+
use log::LevelFilter;
+
+let level_filter = LevelFilter::Info;
+
+assert_eq!(LevelFilter::Warn, level_filter.decrement_severity());
+assert_eq!(LevelFilter::Error, level_filter.decrement_severity().decrement_severity());
+assert_eq!(LevelFilter::Off, level_filter.decrement_severity().decrement_severity().decrement_severity());
+assert_eq!(LevelFilter::Off, level_filter.decrement_severity().decrement_severity().decrement_severity().decrement_severity()); // min level
+

Trait Implementations§

Source§

impl Clone for LevelFilter

Source§

fn clone(&self) -> LevelFilter

Returns a duplicate 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 LevelFilter

Source§

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

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

impl Display for LevelFilter

Source§

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

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

impl FromStr for LevelFilter

Source§

type Err = ParseLevelError

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

fn from_str(level: &str) -> Result<LevelFilter, Self::Err>

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

impl Hash for LevelFilter

Source§

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

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 Ord for LevelFilter

Source§

fn cmp(&self, other: &LevelFilter) -> 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,

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

impl Ord for LevelFilter

Source§

fn cmp(&self, other: &LevelFilter) -> 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,

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

impl PartialEq<Level> for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialEq<LevelFilter> for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialEq for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl PartialOrd<Level> for LevelFilter

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

Tests less than or equal to (for self and other) and is used by the + Self: Sized,

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

impl PartialEq<Level> for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialEq<LevelFilter> for Level

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialEq for LevelFilter

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl PartialOrd<Level> for LevelFilter

Source§

fn partial_cmp(&self, other: &Level) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl PartialOrd<LevelFilter> for Level

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

Tests less than or equal to (for self and other) and is used by the +the >= operator. Read more
Source§

impl PartialOrd<LevelFilter> for Level

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl PartialOrd for LevelFilter

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

Tests less than or equal to (for self and other) and is used by the +the >= operator. Read more
Source§

impl PartialOrd for LevelFilter

Source§

fn partial_cmp(&self, other: &LevelFilter) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl Copy for LevelFilter

Source§

impl Eq for LevelFilter

Source§

impl StructuralPartialEq for LevelFilter

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +the >= operator. Read more

Source§

impl Copy for LevelFilter

Source§

impl Eq for LevelFilter

Source§

impl StructuralPartialEq for LevelFilter

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> CloneToUninit for T
where diff --git a/log/fn.logger.html b/log/fn.logger.html index 20e82c7..cf30732 100644 --- a/log/fn.logger.html +++ b/log/fn.logger.html @@ -1,3 +1,3 @@ -logger in log - Rust

Function logger

Source
pub fn logger() -> &'static dyn Log
Expand description

Returns a reference to the logger.

+logger in log - Rust

Function logger

Source
pub fn logger() -> &'static dyn Log
Expand description

Returns a reference to the logger.

If a logger has not been set, a no-op implementation is returned.

\ No newline at end of file diff --git a/log/fn.max_level.html b/log/fn.max_level.html index c0bfdf8..5a2fb03 100644 --- a/log/fn.max_level.html +++ b/log/fn.max_level.html @@ -1,4 +1,4 @@ -max_level in log - Rust

Function max_level

Source
pub fn max_level() -> LevelFilter
Expand description

Returns the current maximum log level.

+max_level in log - Rust

Function max_level

Source
pub fn max_level() -> LevelFilter
Expand description

Returns the current maximum log level.

The log!, error!, warn!, info!, debug!, and trace! macros check this value and discard any message logged at a higher level. The maximum log level is set by the set_max_level function.

diff --git a/log/fn.set_logger.html b/log/fn.set_logger.html index 12887f6..829566a 100644 --- a/log/fn.set_logger.html +++ b/log/fn.set_logger.html @@ -1,4 +1,4 @@ -set_logger in log - Rust

Function set_logger

Source
pub fn set_logger(logger: &'static dyn Log) -> Result<(), SetLoggerError>
Expand description

Sets the global logger to a &'static Log.

+set_logger in log - Rust

Function set_logger

Source
pub fn set_logger(logger: &'static dyn Log) -> Result<(), SetLoggerError>
Expand description

Sets the global logger to a &'static Log.

This function may only be called once in the lifetime of a program. Any log events that occur before the call to set_logger completes will be ignored.

This function does not typically need to be called manually. Logger diff --git a/log/fn.set_logger_racy.html b/log/fn.set_logger_racy.html index 0fc41bb..05857c8 100644 --- a/log/fn.set_logger_racy.html +++ b/log/fn.set_logger_racy.html @@ -1,4 +1,4 @@ -set_logger_racy in log - Rust

Function set_logger_racy

Source
pub unsafe fn set_logger_racy(
+set_logger_racy in log - Rust

Function set_logger_racy

Source
pub unsafe fn set_logger_racy(
     logger: &'static dyn Log,
 ) -> Result<(), SetLoggerError>
Expand description

A thread-unsafe version of set_logger.

This function is available on all platforms, even those that do not have diff --git a/log/fn.set_max_level.html b/log/fn.set_max_level.html index 48b8d05..b95c712 100644 --- a/log/fn.set_max_level.html +++ b/log/fn.set_max_level.html @@ -1,4 +1,4 @@ -set_max_level in log - Rust

Function set_max_level

Source
pub fn set_max_level(level: LevelFilter)
Expand description

Sets the global maximum log level.

+set_max_level in log - Rust

Function set_max_level

Source
pub fn set_max_level(level: LevelFilter)
Expand description

Sets the global maximum log level.

Generally, this should only be called by the active logging implementation.

Note that Trace is the maximum level, because it provides the maximum amount of detail in the emitted logs.

\ No newline at end of file diff --git a/log/fn.set_max_level_racy.html b/log/fn.set_max_level_racy.html index 5195764..212ce33 100644 --- a/log/fn.set_max_level_racy.html +++ b/log/fn.set_max_level_racy.html @@ -1,4 +1,4 @@ -set_max_level_racy in log - Rust

Function set_max_level_racy

Source
pub unsafe fn set_max_level_racy(level: LevelFilter)
Expand description

A thread-unsafe version of set_max_level.

+set_max_level_racy in log - Rust

Function set_max_level_racy

Source
pub unsafe fn set_max_level_racy(level: LevelFilter)
Expand description

A thread-unsafe version of set_max_level.

This function is available on all platforms, even those that do not have support for atomics that is needed by set_max_level.

In almost all cases, set_max_level should be preferred.

diff --git a/log/index.html b/log/index.html index fe479a3..a78306b 100644 --- a/log/index.html +++ b/log/index.html @@ -1,4 +1,4 @@ -log - Rust

Crate log

Source
Expand description

A lightweight logging facade.

+log - Rust

Crate log

Source
Expand description

A lightweight logging facade.

The log crate provides a single logging API that abstracts over the actual logging implementation. Libraries can use the logging API provided by this crate, and the consumer of those libraries can choose the logging diff --git a/log/macro.debug.html b/log/macro.debug.html index 95ae7c4..416e2aa 100644 --- a/log/macro.debug.html +++ b/log/macro.debug.html @@ -1,4 +1,4 @@ -debug in log - Rust

Macro debug

Source
macro_rules! debug {
+debug in log - Rust

Macro debug

Source
macro_rules! debug {
     (logger: $logger:expr, target: $target:expr, $($arg:tt)+) => { ... };
     (logger: $logger:expr, $($arg:tt)+) => { ... };
     (target: $target:expr, $($arg:tt)+) => { ... };
diff --git a/log/macro.error.html b/log/macro.error.html
index ca54434..0b684e5 100644
--- a/log/macro.error.html
+++ b/log/macro.error.html
@@ -1,4 +1,4 @@
-error in log - Rust

Macro error

Source
macro_rules! error {
+error in log - Rust

Macro error

Source
macro_rules! error {
     (logger: $logger:expr, target: $target:expr, $($arg:tt)+) => { ... };
     (logger: $logger:expr, $($arg:tt)+) => { ... };
     (target: $target:expr, $($arg:tt)+) => { ... };
diff --git a/log/macro.info.html b/log/macro.info.html
index d1b31cf..75a6c84 100644
--- a/log/macro.info.html
+++ b/log/macro.info.html
@@ -1,4 +1,4 @@
-info in log - Rust

Macro info

Source
macro_rules! info {
+info in log - Rust

Macro info

Source
macro_rules! info {
     (logger: $logger:expr, target: $target:expr, $($arg:tt)+) => { ... };
     (logger: $logger:expr, $($arg:tt)+) => { ... };
     (target: $target:expr, $($arg:tt)+) => { ... };
diff --git a/log/macro.log.html b/log/macro.log.html
index 618aed7..47cc5a6 100644
--- a/log/macro.log.html
+++ b/log/macro.log.html
@@ -1,4 +1,4 @@
-log in log - Rust

Macro log

Source
macro_rules! log {
+log in log - Rust

Macro log

Source
macro_rules! log {
     (logger: $logger:expr, target: $target:expr, $lvl:expr, $($arg:tt)+) => { ... };
     (logger: $logger:expr, $lvl:expr, $($arg:tt)+) => { ... };
     (target: $target:expr, $lvl:expr, $($arg:tt)+) => { ... };
diff --git a/log/macro.log_enabled.html b/log/macro.log_enabled.html
index fcd0884..2dbbb34 100644
--- a/log/macro.log_enabled.html
+++ b/log/macro.log_enabled.html
@@ -1,4 +1,4 @@
-log_enabled in log - Rust

Macro log_enabled

Source
macro_rules! log_enabled {
+log_enabled in log - Rust

Macro log_enabled

Source
macro_rules! log_enabled {
     (logger: $logger:expr, target: $target:expr, $lvl:expr) => { ... };
     (logger: $logger:expr, $lvl:expr) => { ... };
     (target: $target:expr, $lvl:expr) => { ... };
diff --git a/log/macro.trace.html b/log/macro.trace.html
index d2dc1cd..c8e451f 100644
--- a/log/macro.trace.html
+++ b/log/macro.trace.html
@@ -1,4 +1,4 @@
-trace in log - Rust

Macro trace

Source
macro_rules! trace {
+trace in log - Rust

Macro trace

Source
macro_rules! trace {
     (logger: $logger:expr, target: $target:expr, $($arg:tt)+) => { ... };
     (logger: $logger:expr, $($arg:tt)+) => { ... };
     (target: $target:expr, $($arg:tt)+) => { ... };
diff --git a/log/macro.warn.html b/log/macro.warn.html
index cd99a20..e6b7c9c 100644
--- a/log/macro.warn.html
+++ b/log/macro.warn.html
@@ -1,4 +1,4 @@
-warn in log - Rust

Macro warn

Source
macro_rules! warn {
+warn in log - Rust

Macro warn

Source
macro_rules! warn {
     (logger: $logger:expr, target: $target:expr, $($arg:tt)+) => { ... };
     (logger: $logger:expr, $($arg:tt)+) => { ... };
     (target: $target:expr, $($arg:tt)+) => { ... };
diff --git a/log/struct.Metadata.html b/log/struct.Metadata.html
index 272bd91..2341cbd 100644
--- a/log/struct.Metadata.html
+++ b/log/struct.Metadata.html
@@ -1,4 +1,4 @@
-Metadata in log - Rust

Struct Metadata

Source
pub struct Metadata<'a> { /* private fields */ }
Expand description

Metadata about a log message.

+Metadata in log - Rust

Struct Metadata

Source
pub struct Metadata<'a> { /* private fields */ }
Expand description

Metadata about a log message.

§Use

Metadata structs are created when users of the library use logging macros.

@@ -26,19 +26,19 @@ constructing expensive log messages.

fn flush(&self) {} }
-

Implementations§

Source§

impl<'a> Metadata<'a>

Source

pub fn builder() -> MetadataBuilder<'a>

Returns a new builder.

-
Source

pub fn level(&self) -> Level

The verbosity level of the message.

-
Source

pub fn target(&self) -> &'a str

The name of the target of the directive.

-

Trait Implementations§

Source§

impl<'a> Clone for Metadata<'a>

Source§

fn clone(&self) -> Metadata<'a>

Returns a duplicate 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<'a> Debug for Metadata<'a>

Source§

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

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

impl<'a> Hash for Metadata<'a>

Source§

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

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

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

Implementations§

Source§

impl<'a> Metadata<'a>

Source

pub fn builder() -> MetadataBuilder<'a>

Returns a new builder.

+
Source

pub fn level(&self) -> Level

The verbosity level of the message.

+
Source

pub fn target(&self) -> &'a str

The name of the target of the directive.

+

Trait Implementations§

Source§

impl<'a> Clone for Metadata<'a>

Source§

fn clone(&self) -> Metadata<'a>

Returns a duplicate 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<'a> Debug for Metadata<'a>

Source§

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

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

impl<'a> Hash for Metadata<'a>

Source§

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

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<'a> Ord for Metadata<'a>

Source§

fn cmp(&self, other: &Metadata<'a>) -> 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,

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

impl<'a> Ord for Metadata<'a>

Source§

fn cmp(&self, other: &Metadata<'a>) -> 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,

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

impl<'a> PartialEq for Metadata<'a>

Source§

fn eq(&self, other: &Metadata<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl<'a> PartialOrd for Metadata<'a>

Source§

fn partial_cmp(&self, other: &Metadata<'a>) -> 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

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

Tests less than or equal to (for self and other) and is used by the + Self: Sized,

Restrict a value to a certain interval. Read more

Source§

impl<'a> PartialEq for Metadata<'a>

Source§

fn eq(&self, other: &Metadata<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl<'a> PartialOrd for Metadata<'a>

Source§

fn partial_cmp(&self, other: &Metadata<'a>) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl<'a> Eq for Metadata<'a>

Source§

impl<'a> StructuralPartialEq for Metadata<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Metadata<'a>

§

impl<'a> RefUnwindSafe for Metadata<'a>

§

impl<'a> Send for Metadata<'a>

§

impl<'a> Sync for Metadata<'a>

§

impl<'a> Unpin for Metadata<'a>

§

impl<'a> UnwindSafe for Metadata<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where +the >= operator. Read more

Source§

impl<'a> Eq for Metadata<'a>

Source§

impl<'a> StructuralPartialEq for Metadata<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Metadata<'a>

§

impl<'a> RefUnwindSafe for Metadata<'a>

§

impl<'a> Send for Metadata<'a>

§

impl<'a> Sync for Metadata<'a>

§

impl<'a> Unpin for Metadata<'a>

§

impl<'a> UnwindSafe for Metadata<'a>

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> CloneToUninit for T
where diff --git a/log/struct.MetadataBuilder.html b/log/struct.MetadataBuilder.html index 33a7feb..09274ea 100644 --- a/log/struct.MetadataBuilder.html +++ b/log/struct.MetadataBuilder.html @@ -1,4 +1,4 @@ -MetadataBuilder in log - Rust

Struct MetadataBuilder

Source
pub struct MetadataBuilder<'a> { /* private fields */ }
Expand description

Builder for Metadata.

+MetadataBuilder in log - Rust

Struct MetadataBuilder

Source
pub struct MetadataBuilder<'a> { /* private fields */ }
Expand description

Builder for Metadata.

Typically should only be used by log library creators or for testing and “shim loggers”. The MetadataBuilder can set the different parameters of a Metadata object, and returns the created object when build is called.

@@ -9,25 +9,25 @@ the created object when build is called.

.level(Level::Debug) .target(target) .build();

-

Implementations§

Source§

impl<'a> MetadataBuilder<'a>

Source

pub fn new() -> MetadataBuilder<'a>

Construct a new MetadataBuilder.

+

Implementations§

Source§

impl<'a> MetadataBuilder<'a>

Source

pub fn new() -> MetadataBuilder<'a>

Construct a new MetadataBuilder.

The default options are:

  • level: Level::Info
  • target: ""
-
Source

pub fn level(&mut self, arg: Level) -> &mut MetadataBuilder<'a>

Setter for level.

-
Source

pub fn target(&mut self, target: &'a str) -> &mut MetadataBuilder<'a>

Setter for target.

-
Source

pub fn build(&self) -> Metadata<'a>

Returns a Metadata object.

-

Trait Implementations§

Source§

impl<'a> Debug for MetadataBuilder<'a>

Source§

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

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

impl Default for MetadataBuilder<'_>

Source§

fn default() -> Self

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

impl<'a> Hash for MetadataBuilder<'a>

Source§

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

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

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

Source

pub fn level(&mut self, arg: Level) -> &mut MetadataBuilder<'a>

Setter for level.

+
Source

pub fn target(&mut self, target: &'a str) -> &mut MetadataBuilder<'a>

Setter for target.

+
Source

pub fn build(&self) -> Metadata<'a>

Returns a Metadata object.

+

Trait Implementations§

Source§

impl<'a> Debug for MetadataBuilder<'a>

Source§

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

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

impl Default for MetadataBuilder<'_>

Source§

fn default() -> Self

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

impl<'a> Hash for MetadataBuilder<'a>

Source§

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

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<'a> Ord for MetadataBuilder<'a>

Source§

fn cmp(&self, other: &MetadataBuilder<'a>) -> 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,

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

impl<'a> Ord for MetadataBuilder<'a>

Source§

fn cmp(&self, other: &MetadataBuilder<'a>) -> 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,

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

impl<'a> PartialEq for MetadataBuilder<'a>

Source§

fn eq(&self, other: &MetadataBuilder<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl<'a> PartialOrd for MetadataBuilder<'a>

Source§

fn partial_cmp(&self, other: &MetadataBuilder<'a>) -> 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

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

Tests less than or equal to (for self and other) and is used by the + Self: Sized,

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

impl<'a> PartialEq for MetadataBuilder<'a>

Source§

fn eq(&self, other: &MetadataBuilder<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl<'a> PartialOrd for MetadataBuilder<'a>

Source§

fn partial_cmp(&self, other: &MetadataBuilder<'a>) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by -the >= operator. Read more
Source§

impl<'a> Eq for MetadataBuilder<'a>

Source§

impl<'a> StructuralPartialEq for MetadataBuilder<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for MetadataBuilder<'a>

§

impl<'a> RefUnwindSafe for MetadataBuilder<'a>

§

impl<'a> Send for MetadataBuilder<'a>

§

impl<'a> Sync for MetadataBuilder<'a>

§

impl<'a> Unpin for MetadataBuilder<'a>

§

impl<'a> UnwindSafe for MetadataBuilder<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where +the >= operator. Read more

Source§

impl<'a> Eq for MetadataBuilder<'a>

Source§

impl<'a> StructuralPartialEq for MetadataBuilder<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for MetadataBuilder<'a>

§

impl<'a> RefUnwindSafe for MetadataBuilder<'a>

§

impl<'a> Send for MetadataBuilder<'a>

§

impl<'a> Sync for MetadataBuilder<'a>

§

impl<'a> Unpin for MetadataBuilder<'a>

§

impl<'a> UnwindSafe for MetadataBuilder<'a>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/log/struct.ParseLevelError.html b/log/struct.ParseLevelError.html index 3eaccca..1ae8f9f 100644 --- a/log/struct.ParseLevelError.html +++ b/log/struct.ParseLevelError.html @@ -1,6 +1,6 @@ -ParseLevelError in log - Rust

Struct ParseLevelError

Source
pub struct ParseLevelError(/* private fields */);
Expand description

The type returned by from_str when the string doesn’t match any of the log levels.

-

Trait Implementations§

Source§

impl Debug for ParseLevelError

Source§

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

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

impl Display for ParseLevelError

Source§

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

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

impl PartialEq for ParseLevelError

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
Source§

impl Eq for ParseLevelError

Source§

impl StructuralPartialEq for ParseLevelError

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +ParseLevelError in log - Rust

Struct ParseLevelError

Source
pub struct ParseLevelError(/* private fields */);
Expand description

The type returned by from_str when the string doesn’t match any of the log levels.

+

Trait Implementations§

Source§

impl Debug for ParseLevelError

Source§

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

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

impl Display for ParseLevelError

Source§

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

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

impl PartialEq for ParseLevelError

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
Source§

impl Eq for ParseLevelError

Source§

impl StructuralPartialEq for ParseLevelError

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/log/struct.Record.html b/log/struct.Record.html index 205fd98..fb1b5b6 100644 --- a/log/struct.Record.html +++ b/log/struct.Record.html @@ -1,4 +1,4 @@ -Record in log - Rust

Struct Record

Source
pub struct Record<'a> { /* private fields */ }
Expand description

The “payload” of a log message.

+Record in log - Rust

Struct Record

Source
pub struct Record<'a> { /* private fields */ }
Expand description

The “payload” of a log message.

§Use

Record structures are passed as parameters to the log method of the Log trait. Logger implementors manipulate these @@ -30,17 +30,17 @@ module path, and message of any Record that is passed to it.

} fn flush(&self) {} }
-

Implementations§

Source§

impl<'a> Record<'a>

Source

pub fn builder() -> RecordBuilder<'a>

Returns a new builder.

-
Source

pub fn args(&self) -> &Arguments<'a>

The message body.

-
Source

pub fn metadata(&self) -> &Metadata<'a>

Metadata about the log directive.

-
Source

pub fn level(&self) -> Level

The verbosity level of the message.

-
Source

pub fn target(&self) -> &'a str

The name of the target of the directive.

-
Source

pub fn module_path(&self) -> Option<&'a str>

The module path of the message.

-
Source

pub fn module_path_static(&self) -> Option<&'static str>

The module path of the message, if it is a 'static string.

-
Source

pub fn file(&self) -> Option<&'a str>

The source file containing the message.

-
Source

pub fn file_static(&self) -> Option<&'static str>

The source file containing the message, if it is a 'static string.

-
Source

pub fn line(&self) -> Option<u32>

The line containing the message.

-

Trait Implementations§

Source§

impl<'a> Clone for Record<'a>

Source§

fn clone(&self) -> Record<'a>

Returns a duplicate 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<'a> Debug for Record<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Record<'a>

§

impl<'a> RefUnwindSafe for Record<'a>

§

impl<'a> !Send for Record<'a>

§

impl<'a> !Sync for Record<'a>

§

impl<'a> Unpin for Record<'a>

§

impl<'a> UnwindSafe for Record<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where +

Implementations§

Source§

impl<'a> Record<'a>

Source

pub fn builder() -> RecordBuilder<'a>

Returns a new builder.

+
Source

pub fn args(&self) -> &Arguments<'a>

The message body.

+
Source

pub fn metadata(&self) -> &Metadata<'a>

Metadata about the log directive.

+
Source

pub fn level(&self) -> Level

The verbosity level of the message.

+
Source

pub fn target(&self) -> &'a str

The name of the target of the directive.

+
Source

pub fn module_path(&self) -> Option<&'a str>

The module path of the message.

+
Source

pub fn module_path_static(&self) -> Option<&'static str>

The module path of the message, if it is a 'static string.

+
Source

pub fn file(&self) -> Option<&'a str>

The source file containing the message.

+
Source

pub fn file_static(&self) -> Option<&'static str>

The source file containing the message, if it is a 'static string.

+
Source

pub fn line(&self) -> Option<u32>

The line containing the message.

+

Trait Implementations§

Source§

impl<'a> Clone for Record<'a>

Source§

fn clone(&self) -> Record<'a>

Returns a duplicate 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<'a> Debug for Record<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Record<'a>

§

impl<'a> RefUnwindSafe for Record<'a>

§

impl<'a> !Send for Record<'a>

§

impl<'a> !Sync for Record<'a>

§

impl<'a> Unpin for Record<'a>

§

impl<'a> UnwindSafe for Record<'a>

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> CloneToUninit for T
where diff --git a/log/struct.RecordBuilder.html b/log/struct.RecordBuilder.html index b2d178b..9045f07 100644 --- a/log/struct.RecordBuilder.html +++ b/log/struct.RecordBuilder.html @@ -1,4 +1,4 @@ -RecordBuilder in log - Rust

Struct RecordBuilder

Source
pub struct RecordBuilder<'a> { /* private fields */ }
Expand description

Builder for Record.

+RecordBuilder in log - Rust

Struct RecordBuilder

Source
pub struct RecordBuilder<'a> { /* private fields */ }
Expand description

Builder for Record.

Typically should only be used by log library creators or for testing and “shim loggers”. The RecordBuilder can set the different parameters of Record object, and returns the created object when build is called.

@@ -29,7 +29,7 @@ the created object when build is called.

.file(Some("app.rs")) .module_path(Some("server")) .build();
-

Implementations§

Source§

impl<'a> RecordBuilder<'a>

Source

pub fn new() -> RecordBuilder<'a>

Construct new RecordBuilder.

+

Implementations§

Source§

impl<'a> RecordBuilder<'a>

Source

pub fn new() -> RecordBuilder<'a>

Construct new RecordBuilder.

The default options are:

  • args: format_args!("")
  • @@ -38,23 +38,23 @@ the created object when build is called.

  • file: None
  • line: None
-
Source

pub fn args(&mut self, args: Arguments<'a>) -> &mut RecordBuilder<'a>

Set args.

-
Source

pub fn metadata(&mut self, metadata: Metadata<'a>) -> &mut RecordBuilder<'a>

Set metadata. Construct a Metadata object with MetadataBuilder.

-
Source

pub fn level(&mut self, level: Level) -> &mut RecordBuilder<'a>

Source

pub fn target(&mut self, target: &'a str) -> &mut RecordBuilder<'a>

Source

pub fn module_path(&mut self, path: Option<&'a str>) -> &mut RecordBuilder<'a>

Source

pub fn module_path_static( +

Source

pub fn args(&mut self, args: Arguments<'a>) -> &mut RecordBuilder<'a>

Set args.

+
Source

pub fn metadata(&mut self, metadata: Metadata<'a>) -> &mut RecordBuilder<'a>

Set metadata. Construct a Metadata object with MetadataBuilder.

+
Source

pub fn level(&mut self, level: Level) -> &mut RecordBuilder<'a>

Source

pub fn target(&mut self, target: &'a str) -> &mut RecordBuilder<'a>

Source

pub fn module_path(&mut self, path: Option<&'a str>) -> &mut RecordBuilder<'a>

Source

pub fn module_path_static( &mut self, path: Option<&'static str>, ) -> &mut RecordBuilder<'a>

Set module_path to a 'static string

-
Source

pub fn file(&mut self, file: Option<&'a str>) -> &mut RecordBuilder<'a>

Set file

-
Source

pub fn file_static( +

Source

pub fn file(&mut self, file: Option<&'a str>) -> &mut RecordBuilder<'a>

Set file

+
Source

pub fn file_static( &mut self, file: Option<&'static str>, ) -> &mut RecordBuilder<'a>

Set file to a 'static string.

-
Source

pub fn line(&mut self, line: Option<u32>) -> &mut RecordBuilder<'a>

Set line

-
Source

pub fn build(&self) -> Record<'a>

Invoke the builder and return a Record

-

Trait Implementations§

Source§

impl<'a> Debug for RecordBuilder<'a>

Source§

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

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

impl Default for RecordBuilder<'_>

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<'a> Freeze for RecordBuilder<'a>

§

impl<'a> RefUnwindSafe for RecordBuilder<'a>

§

impl<'a> !Send for RecordBuilder<'a>

§

impl<'a> !Sync for RecordBuilder<'a>

§

impl<'a> Unpin for RecordBuilder<'a>

§

impl<'a> UnwindSafe for RecordBuilder<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where +

Source

pub fn line(&mut self, line: Option<u32>) -> &mut RecordBuilder<'a>

Set line

+
Source

pub fn build(&self) -> Record<'a>

Invoke the builder and return a Record

+

Trait Implementations§

Source§

impl<'a> Debug for RecordBuilder<'a>

Source§

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

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

impl Default for RecordBuilder<'_>

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<'a> Freeze for RecordBuilder<'a>

§

impl<'a> RefUnwindSafe for RecordBuilder<'a>

§

impl<'a> !Send for RecordBuilder<'a>

§

impl<'a> !Sync for RecordBuilder<'a>

§

impl<'a> Unpin for RecordBuilder<'a>

§

impl<'a> UnwindSafe for RecordBuilder<'a>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/log/struct.SetLoggerError.html b/log/struct.SetLoggerError.html index 21fb8bb..4b005f0 100644 --- a/log/struct.SetLoggerError.html +++ b/log/struct.SetLoggerError.html @@ -1,5 +1,5 @@ -SetLoggerError in log - Rust

Struct SetLoggerError

Source
pub struct SetLoggerError(/* private fields */);
Expand description

The type returned by set_logger if set_logger has already been called.

-

Trait Implementations§

Source§

impl Debug for SetLoggerError

Source§

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

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

impl Display for SetLoggerError

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +SetLoggerError in log - Rust

Struct SetLoggerError

Source
pub struct SetLoggerError(/* private fields */);
Expand description

The type returned by set_logger if set_logger has already been called.

+

Trait Implementations§

Source§

impl Debug for SetLoggerError

Source§

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

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

impl Display for SetLoggerError

Source§

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

Formats the value using the given formatter. Read more

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/log/trait.Log.html b/log/trait.Log.html index 4973176..a028686 100644 --- a/log/trait.Log.html +++ b/log/trait.Log.html @@ -1,10 +1,10 @@ -Log in log - Rust

Trait Log

Source
pub trait Log: Sync + Send {
+Log in log - Rust

Trait Log

Source
pub trait Log: Sync + Send {
     // Required methods
     fn enabled(&self, metadata: &Metadata<'_>) -> bool;
     fn log(&self, record: &Record<'_>);
     fn flush(&self);
 }
Expand description

A trait encapsulating the operations required of a logger.

-

Required Methods§

Source

fn enabled(&self, metadata: &Metadata<'_>) -> bool

Determines if a log message with the specified metadata would be +

Required Methods§

Source

fn enabled(&self, metadata: &Metadata<'_>) -> bool

Determines if a log message with the specified metadata would be logged.

This is used by the log_enabled! macro to allow callers to avoid expensive computation of log message arguments if the message would be @@ -13,14 +13,14 @@ discarded anyway.

This method isn’t called automatically by the log! macros. It’s up to an implementation of the Log trait to call enabled in its own log method implementation to guarantee that filtering is applied.

-
Source

fn log(&self, record: &Record<'_>)

Logs the Record.

+
Source

fn log(&self, record: &Record<'_>)

Logs the Record.

§For implementors

Note that enabled is not necessarily called before this method. Implementations of log should perform all necessary filtering internally.

-
Source

fn flush(&self)

Flushes any buffered records.

+
Source

fn flush(&self)

Flushes any buffered records.

§For implementors

This method isn’t called automatically by the log! macros. It can be called manually on shut-down to ensure any in-flight records are flushed.

-

Implementations on Foreign Types§

Source§

impl<T> Log for &T
where - T: ?Sized + Log,

Source§

fn enabled(&self, metadata: &Metadata<'_>) -> bool

Source§

fn log(&self, record: &Record<'_>)

Source§

fn flush(&self)

Implementors§

\ No newline at end of file +

Implementations on Foreign Types§

Source§

impl<T> Log for &T
where + T: ?Sized + Log,

Source§

fn enabled(&self, metadata: &Metadata<'_>) -> bool

Source§

fn log(&self, record: &Record<'_>)

Source§

fn flush(&self)

Implementors§

\ No newline at end of file diff --git a/search-index.js b/search-index.js index 35917d5..99a1918 100644 --- a/search-index.js +++ b/search-index.js @@ -1,4 +1,4 @@ -var searchIndex = new Map(JSON.parse('[["delog",{"t":"PPKPPKPPGGPFKKFPPKKPPNNNMONNNNNNNNMNNNMNNNNNNNNNNQHHNNNNNNMMMONNNNNNNNNNNNQNNCQQNNNNNNNNEHNNNNNNNNNMOCMMNNMONNNHNNNNNNNNMNNNNMOFHTTKFKNNNNNNNNNNNNNNNNNNOFFNNNNNNNNHNNNNNNHHNNNNNN","n":["Debug","","Delogger","Error","","Flusher","Info","","Level","LevelFilter","Off","Record","Renderer","State","Statistics","Trace","","TryLog","TryLogWithStatistics","Warn","","args","as_str","","attempts","","borrow","","","","borrow_mut","","","","buffer","builder","capacity","","claimed","clone","","","","clone_to_uninit","","","","cmp","","delog","dequeue","enqueue","eq","","","","file","file_static","flush","","flushes","","fmt","","","","","","from","","","","from_str","","generate_macros","hash","","hex","hex_str","hexstr","into","","","","iter","","level","line","log","logger","max","","metadata","module_path","module_path_static","partial_cmp","","","","read","","render","","","statistics","","successes","","target","to_level","to_level_filter","try_enqueue","try_from","","","","try_into","","","","try_log","type_id","","","","written","","HexStr","","N","SEPARATOR","Separator","U1","Unsigned","borrow","","borrow_mut","","fmt","","","","from","","into","","try_from","","try_into","","type_id","","value","DefaultRenderer","RipgrepRenderer","borrow","","borrow_mut","","clone","","clone_to_uninit","","default","from","","into","","render","","render_arguments","render_record","try_from","","try_into","","type_id",""],"q":[[0,"delog"],[127,"delog::hex"],[153,"delog::render"],[178,"log"],[179,"core::fmt"],[180,"delog::logger"],[181,"core::sync::atomic"],[182,"core::cmp"],[183,"core::option"],[184,"core::result"],[185,"core::hash"],[186,"core::iter::traits::iterator"],[187,"core::any"],[188,"core::marker"],[189,"core::convert"]],"i":"hl`10`10``0````10``10b21nA`04320432Af30001543154354```5544330Bh32266554265465`65```26546544``65444665532`1CnCj054678`48764876D`598765``DhDj```EbDd10000010101010100``DnE`101010`101010``101010","f":"`````````````````````{{{d{b}}}{{d{f}}}}{{{d{h}}}{{d{j}}}}{{{d{l}}}{{d{j}}}}{{{d{n}}}c{}}{A`Ab}{d{{d{c}}}{}}000{{{d{Ad}}}{{d{Adc}}}{}}000{{{d{Af}}}{{d{Ad{Aj{Ah}}}}}}{{}Al}{{{d{Af}}}Ab}0{{{d{Af}}}{{d{An}}}}{{{d{A`}}}A`}{{{d{h}}}h}{{{d{l}}}l}{{{d{b}}}b}{{dAh}B`}000{{{d{h}}{d{h}}}Bb}{{{d{l}}{d{l}}}Bb}`{{c{d{Ad{Aj{Ah}}}}}{{d{j}}}Af}{{c{d{b}}}B`Af}{{{d{h}}{d{l}}}Bd}{{{d{h}}{d{h}}}Bd}{{{d{l}}{d{l}}}Bd}{{{d{l}}{d{h}}}Bd}{{{d{b}}}{{Bf{{d{j}}}}}}0{{{d{Af}}{d{j}}}B`}{{{d{Bh}}{d{j}}}B`}{{{d{n}}}c{}}{A`Ab}{{{d{A`}}{d{AdBj}}}Bl}{{{d{h}}{d{AdBj}}}{{C`{B`Bn}}}}0{{{d{l}}{d{AdBj}}}{{C`{B`Bn}}}}0{{{d{b}}{d{AdBj}}}{{C`{B`Bn}}}}{cc{}}000{{{d{j}}}{{C`{h}}}}{{{d{j}}}{{C`{l}}}}`{{{d{h}}{d{Adc}}}B`Cb}{{{d{l}}{d{Adc}}}B`Cb}```{{}c{}}000{{}{{`{{Cf{}{{Cd{h}}}}}}}}{{}{{`{{Cf{}{{Cd{l}}}}}}}}{{{d{b}}}h}{{{d{b}}}{{Bf{Ch}}}}`{{}{{d{Ad{Bf{{d{Cj}}}}}}}}{{}h}{{}l}{{{d{b}}}{{d{Cl}}}}{{{d{b}}}{{Bf{{d{j}}}}}}0{{{d{h}}{d{l}}}{{Bf{Bb}}}}{{{d{h}}{d{h}}}{{Bf{Bb}}}}{{{d{l}}{d{h}}}{{Bf{Bb}}}}{{{d{l}}{d{l}}}{{Bf{Bb}}}}{{{d{n}}}c{}}{A`Ab}`{{{d{Af}}{d{b}}}{{d{{Aj{Ah}}}}}}{{{d{Cn}}{d{Ad{Aj{Ah}}}}{d{b}}}{{d{{Aj{Ah}}}}}}{{{d{Cj}}}A`}043{{{d{b}}}{{d{j}}}}{{{d{l}}}{{Bf{h}}}}{{{d{h}}}l}{{c{d{b}}}{{C`{B`B`}}}Af}{c{{C`{e}}}{}{}}000{{}{{C`{c}}}{}}000{{{d{D`}}{d{b}}}{{C`{B`B`}}}}{dDb}000<;`{{{d{c}}}{{Dd{ceg}}}DfDhDj}`````{d{{d{c}}}{}}0{{{d{Ad}}}{{d{Adc}}}{}}0{{{d{{Dd{ceg}}}}{d{AdBj}}}{{C`{B`Bn}}}{{Dl{{Aj{Ah}}}}Df}DhDj}000{cc{}}0{{}c{}}0998866{Ddd}``5544{{{d{Dn}}}Dn}{{{d{E`}}}E`}{{dAh}B`}0{{}{{d{Dn}}}}6655{{{d{Dn}}{d{Ad{Aj{Ah}}}}{d{b}}}{{d{{Aj{Ah}}}}}}{{{d{E`}}{d{Ad{Aj{Ah}}}}{d{b}}}{{d{{Aj{Ah}}}}}}{{{d{Ad{Aj{Ah}}}}f}{{d{{Aj{Ah}}}}}}{{{d{Ad{Aj{Ah}}}}{d{b}}}{{d{{Aj{Ah}}}}}}{c{{C`{e}}}{}{}}0{{}{{C`{c}}}{}}0{dDb}0","D":"Lh","p":[[5,"Record",0,178],[1,"reference",null,null,1],[5,"Arguments",179],[6,"Level",0,178],[1,"str"],[6,"LevelFilter",0,178],[10,"State",0,180],[5,"Statistics",0,180],[1,"usize"],[0,"mut"],[10,"Delogger",0,180],[1,"u8"],[1,"slice"],[5,"RecordBuilder",178],[5,"AtomicUsize",181],[1,"unit"],[6,"Ordering",182],[1,"bool"],[6,"Option",183,null,1],[10,"Flusher",0],[5,"Formatter",179],[8,"Result",179],[5,"Error",179],[6,"Result",184,null,1],[10,"Hasher",185],[17,"Item"],[10,"Iterator",186],[1,"u32"],[10,"TryLogWithStatistics",0,180],[5,"Metadata",178],[10,"Renderer",0],[10,"TryLog",0,180],[5,"TypeId",187],[5,"HexStr",127],[10,"Sized",188],[10,"Unsigned",127],[10,"Separator",127],[10,"AsRef",189],[5,"DefaultRenderer",153],[5,"RipgrepRenderer",153],[5,"U1",127]],"r":[[0,178],[1,178],[2,180],[3,178],[4,178],[6,178],[7,178],[8,178],[9,178],[10,178],[11,178],[13,180],[14,180],[15,178],[16,178],[17,180],[18,180],[19,178],[20,178],[21,178],[22,178],[23,178],[24,180],[25,180],[26,180],[27,178],[28,178],[29,178],[30,180],[31,178],[32,178],[33,178],[34,180],[35,178],[36,180],[37,180],[38,180],[39,180],[40,178],[41,178],[42,178],[43,180],[44,178],[45,178],[46,178],[47,178],[48,178],[50,180],[51,180],[52,178],[53,178],[54,178],[55,178],[56,178],[57,178],[58,180],[60,180],[61,180],[62,180],[63,178],[64,178],[65,178],[66,178],[67,178],[68,180],[69,178],[70,178],[71,178],[72,178],[73,178],[75,178],[76,178],[80,180],[81,178],[82,178],[83,178],[84,178],[85,178],[86,178],[87,178],[90,178],[91,178],[92,178],[93,178],[94,178],[95,178],[96,178],[97,178],[98,178],[99,180],[100,180],[102,180],[104,180],[105,180],[106,180],[107,180],[108,178],[109,178],[110,178],[111,180],[112,180],[113,178],[114,178],[115,178],[116,180],[117,178],[118,178],[119,178],[120,180],[121,180],[122,178],[123,178],[124,178],[125,180],[126,180]],"b":[[52,"impl-PartialEq%3CLevelFilter%3E-for-Level"],[53,"impl-PartialEq-for-Level"],[54,"impl-PartialEq-for-LevelFilter"],[55,"impl-PartialEq%3CLevel%3E-for-LevelFilter"],[63,"impl-Debug-for-Level"],[64,"impl-Display-for-Level"],[65,"impl-Debug-for-LevelFilter"],[66,"impl-Display-for-LevelFilter"],[95,"impl-PartialOrd%3CLevelFilter%3E-for-Level"],[96,"impl-PartialOrd-for-Level"],[97,"impl-PartialOrd%3CLevel%3E-for-LevelFilter"],[98,"impl-PartialOrd-for-LevelFilter"],[138,"impl-Debug-for-HexStr%3C\'_,+T,+U,+S%3E"],[139,"impl-UpperHex-for-HexStr%3C\'a,+T,+U,+S%3E"],[140,"impl-LowerHex-for-HexStr%3C\'a,+T,+U,+S%3E"],[141,"impl-Display-for-HexStr%3C\'_,+T,+U,+S%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAE4ADwAbAAcAKAAJADUAAwA/AAUASQABAEwAAQBZAAAAYAADAHEABwB6AAMAhwAHAJMABQCcAAcAqQABAK0ABQA=","P":[[24,"T"],[25,""],[26,"T"],[34,""],[60,"T"],[61,""],[68,"T"],[72,""],[75,"__H"],[80,"U"],[84,""],[99,"T"],[100,""],[106,"T"],[107,""],[112,"U,T"],[116,"U"],[120,""],[125,"T"],[126,""],[128,"T,U,S"],[134,"T"],[138,"T,U,S"],[142,"T"],[144,"U"],[146,"U,T"],[148,"U"],[150,""],[155,"T"],[159,""],[164,"T"],[166,"U"],[168,""],[172,"U,T"],[174,"U"],[176,""]]}],["flexiber",{"t":"PTTGKPKYFKYFPFGPTTPPPFPTTTPPPTPITTFFFKKIFPPTTPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNONMNNNNNNNNNNMNNMNNNNNNNNNNMNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOO","n":["Application","BIT_STRING","BOOLEAN","Class","Container","Context","Decodable","","Decoder","Encodable","","Encoder","Err","Error","ErrorKind","Failed","GENERALIZED_TIME","INTEGER","InvalidClass","InvalidLength","InvalidTag","Length","","NULL","OBJECT_IDENTIFIER","OCTET_STRING","Ok","Overflow","Overlength","PRINTABLE_STRING","Private","Result","SEQUENCE","SET","SimpleTag","Slice","Tag","TagLike","Tagged","TaggedSlice","TaggedValue","TrailingData","Truncated","UTC_TIME","UTF8_STRING","Underlength","UnexpectedTag","Universal","UnsupportedTagSize","add","","","","","application","as_bytes","","","as_ref","assert_eq","","at","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","class","clone","","","","","","","","clone_to_uninit","","","","","","","","cmp","constructed","","context","decode","","","","","","decode_nested","","decode_tagged_slice","decode_tagged_value","default","embedding","","","encode","","","","","","","encode_tagged_collection","encode_to_slice","","encode_untagged_collection","encoded_length","","","","","","eq","","","","","","","","error","","fields","finish","","fmt","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","from_bytes","","into","","","","","","","","","","is_empty","","","is_failed","","is_finished","kind","length","","","max","nested","new","","","","","number","partial_cmp","position","private","tag","","to_usize","try_from","","","","","","","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","universal","with_value","","zero","actual","","byte","decoded","expected","","remaining","tag","value"],"q":[[0,"flexiber"],[254,"flexiber::ErrorKind"],[263,"flexiber::length"],[264,"flexiber::error"],[265,"flexiber::tag"],[266,"flexiber::tagged"],[267,"core::marker"],[268,"flexiber::slice"],[269,"flexiber::simpletag"],[270,"core::clone"],[271,"core::cmp"],[272,"flexiber::decoder"],[273,"flexiber::traits"],[274,"core::ops::function"],[275,"flexiber::encoder"],[276,"core::fmt"],[277,"core::convert"],[278,"core::option"],[279,"core::result"],[280,"core::any"],[281,"flexiber_derive"]],"i":"Bbl0``1``````d``Al22000`022210023`22```````002200301b0003nAfAh1Aj05BnChAn87Bd6<;53219806<;5;19806<;519806<;58;;;C`8491<8644951=754Cl656544<<;;9?>>8:665444<;;;39?>>8822654<;39?>8:986564:98;465498>;4>Eh9<765=<<<44:Bb0l00;987?>6<10;987?>6<10;0::>DlDnE`Eb320EdEf","f":"`````````````````````````````````````````````````{{{d{b}}b}{{d{b}}}}{{bf}{{d{b}}}}{{bh}{{d{b}}}}{{bj}{{d{b}}}}{{bb}{{d{b}}}}{hl}{{{A`{{n{c}}}}}{{A`{{Ab{j}}}}}Ad}{{{A`{Af}}}{{A`{{Ab{j}}}}}}{{{A`{{Ah{Afc}}}}}{{A`{{Ab{j}}}}}Ad}1{{AjAj}{{d{Aj}}}}0{{Alb}An}{A`{{A`{c}}}{}}000000000{{{A`{B`}}}{{A`{B`c}}}{}}000000000{lBb}{{{A`{An}}}An}{{{A`{Al}}}Al}{{{A`{b}}}b}{{{A`{Bd}}}Bd}{{{A`{Af}}}Af}{{{A`{Bb}}}Bb}{{{A`{l}}}l}{{{A`{{Ah{ce}}}}}{{Ah{ce}}}BfBf}{{A`j}Bh}0000000{{{A`{b}}{A`{b}}}Bj}{ll}{lBl}{hl}{{{A`{B`Bn}}}{{d{C`}}}}{{{A`{B`Bn}}}{{d{{n{c}}}}}{C`Aj}}{{{A`{B`Bn}}}{{d{c}}}C`}{{{A`{B`Bn}}}{{d{b}}}}{{{A`{B`Bn}}}{{d{Bd}}}}{{{A`{B`Bn}}}{{d{l}}}}{{{A`{{n{c}}}}g}{{d{e}}}Ad{}{{Cd{{A`{B`Bn}}}{{Cb{{d{e}}}}}}}}{{{A`{{Ah{Afc}}}}g}{{d{e}}}Ad{}{{Cd{{A`{B`Bn}}}{{Cb{{d{e}}}}}}}}{{{A`{B`Bn}}c}{{d{{A`{{Ab{j}}}}}}}{C`Aj}}{{{A`{B`Bn}}c}{{d{e}}}{C`Aj}C`}{{}b}{Ajl}{Bdl}?{{{A`{Cf}}{A`{B`Ch}}}{{d{Bh}}}}{{{A`{{n{c}}}}{A`{B`Ch}}}{{d{Bh}}}{AdCf}}{{{A`{B`Ch}}{A`{c}}}{{d{Bh}}}Cf}{{{A`{b}}{A`{B`Ch}}}{{d{Bh}}}}{{{A`{Bd}}{A`{B`Ch}}}{{d{Bh}}}}{{{A`{l}}{A`{B`Ch}}}{{d{Bh}}}}{{{A`{{Ah{{A`{c}}e}}}}{A`{B`Ch}}}{{d{Bh}}}Cf{AdCf}}{{{A`{B`Ch}}l{A`{{Ab{{A`{Cf}}}}}}}{{d{Bh}}}}{{{A`{Cf}}{A`{B`{Ab{j}}}}}{{d{{A`{{Ab{j}}}}}}}}0{{{A`{B`Ch}}{A`{{Ab{{A`{Cf}}}}}}}{{d{Bh}}}}{{{A`{Cf}}}{{d{b}}}}{{{A`{{n{c}}}}}{{d{b}}}{AdCf}}{{{A`{b}}}{{d{b}}}}{{{A`{Bd}}}{{d{b}}}}{{{A`{l}}}{{d{b}}}}{{{A`{{Ah{{A`{c}}e}}}}}{{d{b}}}Cf{AdCf}}{{{A`{An}}{A`{An}}}Bl}{{{A`{Al}}{A`{Al}}}Bl}{{{A`{b}}{A`{b}}}Bl}{{{A`{Bd}}{A`{Bd}}}Bl}{{{A`{Af}}{A`{Af}}}Bl}{{{A`{Bb}}{A`{Bb}}}Bl}{{{A`{l}}{A`{l}}}Bl}{{{A`{{Ah{ce}}}}{A`{{Ah{ce}}}}}BlCjCj}{{{A`{B`Bn}}Al}{{d{c}}}{}}{{{A`{B`Ch}}Al}{{d{c}}}{}}{{{A`{Cl}}e}{{d{c}}}{}{{Cd{{A`{{Ab{{A`{Cf}}}}}}}{{Cb{{d{c}}}}}}}}{{Bnc}{{d{c}}}{}}{Ch{{d{{A`{{Ab{j}}}}}}}}{{{A`{Bn}}{A`{B`Cn}}}D`}{{{A`{Ch}}{A`{B`Cn}}}D`}{{{A`{An}}{A`{B`Cn}}}D`}0{{{A`{Al}}{A`{B`Cn}}}D`}0{{{A`{b}}{A`{B`Cn}}}D`}0{{{A`{Af}}{A`{B`Cn}}}D`}{{{A`{Bb}}{A`{B`Cn}}}D`}{{{A`{l}}{A`{B`Cn}}}D`}0{{{A`{{Ah{ce}}}}{A`{B`Cn}}}D`DbDb}{{c{A`{{Ab{j}}}}}{{d{{n{c}}}}}Ad}{cc{}}{{{A`{{Ab{j}}}}}Bn}1{DdAn}{AlAn}33{jb}{hb}55555{{BbBlh}l}6{{c{A`{{Ab{j}}}}}{{d{{Ah{Afc}}}}}Ad}{{{A`{{Ab{j}}}}}{{d{C`}}}}0{{}c{}}000000000{{{A`{{n{c}}}}}BlAd}{AfBl}{{{A`{{Ah{Afc}}}}}BlAd}{{{A`{Bn}}}Bl}{{{A`{Ch}}}Bl}1{AnAl}{{{A`{{n{c}}}}}bAd}{Afb}{{{A`{{Ah{Afc}}}}}bAd}{{}f}{{Anb}An}{{{A`{{Ab{j}}}}}Bn}{{{A`{B`{Ab{j}}}}}Ch}{{Alb}An}{{{A`{{Ab{j}}}}}{{d{Af}}}}{{ce}{{Ah{ec}}}Ad{}}{lh}{{{A`{b}}{A`{b}}}{{Df{Bj}}}}{An{{Df{b}}}}{hl}{{}l}{{{A`{{Ah{ce}}}}}e{}Ad}{bf}{c{{Dh{e}}}{}{}}000{{{A`{{Ab{{A`{Cf}}}}}}}{{d{b}}}}{f{{d{b}}}}2{j{{d{Bd}}}}33{j{{d{Bb}}}}4{j{{d{l}}}}5{{{A`{{Ab{j}}}}}{{d{l}}}}6{{}{{Dh{c}}}{}}000000000{A`Dj}000000000<{{Ajc}{{Ah{cAj}}}{}}0{{}b}{Dlb}{Dnl}{E`j}{Ebb}3{DnDf}1{Edl}{Efj}","D":"Nb","p":[[5,"Length",0,263],[8,"Result",0,264],[1,"usize"],[1,"u16"],[1,"u8"],[5,"Tag",0,265],[8,"TaggedSlice",0,266],[1,"reference",null,null,1],[1,"slice"],[10,"Copy",267],[5,"Slice",0,268],[5,"TaggedValue",0,266],[10,"TagLike",0,265],[6,"ErrorKind",0,264],[5,"Error",0,264],[0,"mut"],[6,"Class",0,265],[5,"SimpleTag",0,269],[10,"Clone",270],[1,"unit"],[6,"Ordering",271],[1,"bool"],[5,"Decoder",0,272],[10,"Decodable",0,273],[17,"Output"],[10,"FnOnce",274],[10,"Encodable",0,273],[5,"Encoder",0,275],[10,"PartialEq",271],[10,"Container",0,273],[5,"Formatter",276],[8,"Result",276],[10,"Debug",276],[6,"Infallible",277],[6,"Option",278,null,1],[6,"Result",279,null,1],[5,"TypeId",280],[15,"Underlength",254],[15,"UnexpectedTag",254],[15,"InvalidTag",254],[15,"TrailingData",254],[15,"Length",254],[15,"InvalidClass",254],[10,"Tagged",0]],"r":[[0,265],[1,265],[2,265],[3,265],[4,273],[5,265],[6,273],[7,281],[8,272],[9,273],[10,281],[11,275],[12,264],[13,264],[14,264],[15,264],[16,265],[17,265],[18,264],[19,264],[20,264],[21,263],[22,264],[23,265],[24,265],[25,265],[26,264],[27,264],[28,264],[29,265],[30,265],[31,264],[32,265],[33,265],[34,269],[35,268],[36,265],[37,265],[38,273],[39,266],[40,266],[41,264],[42,264],[43,265],[44,265],[45,264],[46,264],[47,265],[48,264],[49,264],[50,263],[51,263],[52,263],[53,263],[54,265],[55,266],[56,268],[57,266],[58,268],[59,265],[60,265],[61,264],[62,272],[63,275],[64,264],[65,264],[66,263],[67,269],[68,268],[69,265],[70,265],[71,266],[72,272],[73,275],[74,264],[75,264],[76,263],[77,269],[78,268],[79,265],[80,265],[81,266],[82,265],[83,264],[84,264],[85,263],[86,269],[87,268],[88,265],[89,265],[90,266],[91,264],[92,264],[93,263],[94,269],[95,268],[96,265],[97,265],[98,266],[99,263],[100,265],[101,265],[102,265],[103,273],[104,266],[105,272],[106,263],[107,269],[108,265],[109,266],[110,266],[111,272],[112,272],[113,263],[114,265],[115,269],[116,265],[117,273],[118,266],[119,275],[120,263],[121,269],[122,265],[123,266],[124,275],[125,273],[126,273],[127,275],[128,273],[129,266],[130,263],[131,269],[132,265],[133,266],[134,264],[135,264],[136,263],[137,269],[138,268],[139,265],[140,265],[141,266],[142,272],[143,275],[144,273],[145,272],[146,275],[147,272],[148,275],[149,264],[150,264],[151,264],[152,264],[153,263],[154,263],[155,268],[156,265],[157,265],[158,265],[159,266],[160,266],[161,272],[162,272],[163,275],[164,264],[165,264],[166,264],[167,264],[168,263],[169,263],[170,263],[171,269],[172,268],[173,265],[174,265],[175,265],[176,266],[177,266],[178,273],[179,273],[180,272],[181,275],[182,264],[183,264],[184,263],[185,269],[186,268],[187,265],[188,265],[189,266],[190,266],[191,268],[192,266],[193,272],[194,275],[195,272],[196,264],[197,266],[198,268],[199,266],[200,263],[201,264],[202,272],[203,275],[204,264],[205,268],[206,266],[207,265],[208,263],[209,264],[210,265],[212,266],[213,263],[214,272],[215,275],[216,264],[217,264],[218,263],[219,263],[220,263],[221,269],[222,269],[223,268],[224,265],[225,265],[226,265],[227,265],[228,265],[229,266],[230,272],[231,275],[232,264],[233,264],[234,263],[235,269],[236,268],[237,265],[238,265],[239,266],[240,272],[241,275],[242,264],[243,264],[244,263],[245,269],[246,268],[247,265],[248,265],[249,266],[250,265],[251,265],[252,265],[253,263]],"b":[[50,"impl-Add%3Cusize%3E-for-Length"],[51,"impl-Add%3Cu16%3E-for-Length"],[52,"impl-Add%3Cu8%3E-for-Length"],[53,"impl-Add-for-Length"],[149,"impl-Display-for-Error"],[150,"impl-Debug-for-Error"],[151,"impl-Debug-for-ErrorKind"],[152,"impl-Display-for-ErrorKind"],[153,"impl-Debug-for-Length"],[154,"impl-Display-for-Length"],[157,"impl-Display-for-Tag"],[158,"impl-Debug-for-Tag"],[164,"impl-From%3CInfallible%3E-for-Error"],[165,"impl-From%3CErrorKind%3E-for-Error"],[168,"impl-From%3Cu8%3E-for-Length"],[169,"impl-From%3Cu16%3E-for-Length"],[218,"impl-TryFrom%3C%26%5B%26dyn+Encodable%5D%3E-for-Length"],[219,"impl-TryFrom%3Cusize%3E-for-Length"],[226,"impl-TryFrom%3Cu8%3E-for-Tag"],[228,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-Tag"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJYAHAABAAIABgAAABEAAQAYAAIAHgABACEAAQAsAAEAMAAAADIABQA7AAAAPwAoAGkAAABrAAIAcgAAAHQAAQB3AAAAeQADAIIADACUAAwAowAAAKUAAQCpAAEAsAAAAM8AAgDTAAAA1QAAANcAJAAHAQAA","P":[[55,"T"],[56,""],[57,"T"],[58,""],[62,"T"],[82,""],[90,"V,T"],[91,""],[104,"T"],[106,""],[109,"T,R,F"],[111,"T"],[112,"T,V"],[113,""],[118,"T"],[120,""],[123,"E,T"],[124,""],[129,"T"],[130,""],[133,"E,T"],[134,""],[141,"V,T"],[142,"T"],[144,"T,F"],[145,"T"],[146,""],[159,"V,T"],[160,"T"],[162,""],[163,"T"],[164,""],[166,"T"],[168,""],[170,"T"],[175,""],[176,"T"],[178,""],[180,"U"],[190,"T"],[191,""],[192,"T"],[193,""],[197,"T"],[198,""],[199,"T"],[200,""],[206,"T,V"],[207,""],[212,"V,T"],[213,""],[214,"U,T"],[218,""],[220,"U,T"],[221,""],[222,"U,T"],[224,""],[225,"U,T"],[226,""],[227,"U,T"],[228,""],[229,"U,T"],[230,"U"],[240,""],[251,"V"],[253,""]]}],["flexiber_derive",{"t":"YY","n":["Decodable","Encodable"],"q":[[0,"flexiber_derive"]],"i":"``","f":"``","D":"f","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA=","P":[]}],["log",{"t":"PPPPPPGGKFFPFFFSFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNMNNNNNNNQNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNNNNNNNNNMQQHNNHNNNNNNNNNNNNNNHHHHNNNNNNQNNNNNNNNNNNNNNNNNNNNNNNNQ","n":["Debug","","Error","","Info","","Level","LevelFilter","Log","Metadata","MetadataBuilder","Off","ParseLevelError","Record","RecordBuilder","STATIC_MAX_LEVEL","SetLoggerError","Trace","","Warn","","args","","as_str","","borrow","","","","","","","","borrow_mut","","","","","","","","build","","builder","","clone","","","","clone_to_uninit","","","","cmp","","","","debug","default","","enabled","eq","","","","","","","error","file","","file_static","","flush","fmt","","","","","","","","","","","","from","","","","","","","","from_str","","hash","","","","info","into","","","","","","","","iter","","level","","","","line","","log","","log_enabled","logger","max","","max_level","metadata","","module_path","","module_path_static","","new","","partial_cmp","","","","","","set_logger","set_logger_racy","set_max_level","set_max_level_racy","target","","","","to_level","to_level_filter","trace","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","warn"],"q":[[0,"log"],[174,"core::fmt"],[175,"core::cmp"],[176,"core::option"],[177,"core::result"],[178,"core::hash"],[179,"core::iter::traits::iterator"],[180,"core::any"]],"i":"nb1010`````0`````1010dl323210AdAbBhB`765432104253765376537632`42Al8877431`6565088776543221187654321878743`87654321876543650```87`65656553887743````654378`876543218765432187654321`","f":"```````````````{{}b}`````{{{f{d}}}{{f{h}}}}{{{f{jl}}h}{{f{jl}}}}{{{f{n}}}{{f{A`}}}}{{{f{b}}}{{f{A`}}}}{f{{f{c}}}{}}0000000{{{f{j}}}{{f{jc}}}{}}0000000{{{f{l}}}d}{{{f{Ab}}}Ad}{{}l}{{}Ab}{{{f{n}}}n}{{{f{b}}}b}{{{f{d}}}d}{{{f{Ad}}}Ad}{{fAf}Ah}000{{{f{n}}{f{n}}}Aj}{{{f{b}}{f{b}}}Aj}{{{f{Ad}}{f{Ad}}}Aj}{{{f{Ab}}{f{Ab}}}Aj}`:9{{{f{Al}}{f{Ad}}}An}{{{f{n}}{f{n}}}An}{{{f{n}}{f{b}}}An}{{{f{b}}{f{b}}}An}{{{f{b}}{f{n}}}An}{{{f{Ad}}{f{Ad}}}An}{{{f{Ab}}{f{Ab}}}An}{{{f{B`}}{f{B`}}}An}`{{{f{d}}}{{Bb{{f{A`}}}}}}{{{f{jl}}{Bb{{f{A`}}}}}{{f{jl}}}}10{{{f{Al}}}Ah}{{{f{n}}{f{jBd}}}Bf}0{{{f{b}}{f{jBd}}}Bf}0{{{f{d}}{f{jBd}}}Bf}{{{f{l}}{f{jBd}}}Bf}{{{f{Ad}}{f{jBd}}}Bf}{{{f{Ab}}{f{jBd}}}Bf}{{{f{Bh}}{f{jBd}}}Bf}0{{{f{B`}}{f{jBd}}}Bf}0{cc{}}0000000{{{f{A`}}}{{Bj{nc}}}{}}{{{f{A`}}}{{Bj{bc}}}{}}{{{f{n}}{f{jc}}}AhBl}{{{f{b}}{f{jc}}}AhBl}{{{f{Ad}}{f{jc}}}AhBl}{{{f{Ab}}{f{jc}}}AhBl}`{{}c{}}0000000{{}{{`{{C`{}{{Bn{n}}}}}}}}{{}{{`{{C`{}{{Bn{b}}}}}}}}{{{f{d}}}n}{{{f{jl}}n}{{f{jl}}}}{{{f{Ad}}}n}{{{f{jAb}}n}{{f{jAb}}}}{{{f{d}}}{{Bb{Cb}}}}{{{f{jl}}{Bb{Cb}}}{{f{jl}}}}{{{f{Al}}{f{d}}}Ah}``{{}{{f{Al}}}}{{}n}{{}b}0{{{f{d}}}{{f{Ad}}}}{{{f{jl}}Ad}{{f{jl}}}}{{{f{d}}}{{Bb{{f{A`}}}}}}{{{f{jl}}{Bb{{f{A`}}}}}{{f{jl}}}}10{{}l}{{}Ab}{{{f{n}}{f{b}}}{{Bb{Aj}}}}{{{f{n}}{f{n}}}{{Bb{Aj}}}}{{{f{b}}{f{b}}}{{Bb{Aj}}}}{{{f{b}}{f{n}}}{{Bb{Aj}}}}{{{f{Ad}}{f{Ad}}}{{Bb{Aj}}}}{{{f{Ab}}{f{Ab}}}{{Bb{Aj}}}}{{{f{Al}}}{{Bj{AhBh}}}}0{bAh}0{{{f{d}}}{{f{A`}}}}{{{f{jl}}{f{A`}}}{{f{jl}}}}{{{f{Ad}}}{{f{A`}}}}{{{f{jAb}}{f{A`}}}{{f{jAb}}}}{{{f{b}}}{{Bb{n}}}}{{{f{n}}}b}`{c{{Bj{e}}}{}{}}0000000{{}{{Bj{c}}}{}}0000000{fCd}0000000`","D":"Kd","p":[[6,"LevelFilter",0],[5,"Record",0],[1,"reference",null,null,1],[5,"Arguments",174],[0,"mut"],[5,"RecordBuilder",0],[6,"Level",0],[1,"str"],[5,"MetadataBuilder",0],[5,"Metadata",0],[1,"u8"],[1,"unit"],[6,"Ordering",175],[10,"Log",0],[1,"bool"],[5,"ParseLevelError",0],[6,"Option",176,null,1],[5,"Formatter",174],[8,"Result",174],[5,"SetLoggerError",0],[6,"Result",177,null,1],[10,"Hasher",178],[17,"Item"],[10,"Iterator",179],[1,"u32"],[5,"TypeId",180]],"r":[],"b":[[61,"impl-PartialEq-for-Level"],[62,"impl-PartialEq%3CLevelFilter%3E-for-Level"],[63,"impl-PartialEq-for-LevelFilter"],[64,"impl-PartialEq%3CLevel%3E-for-LevelFilter"],[74,"impl-Display-for-Level"],[75,"impl-Debug-for-Level"],[76,"impl-Display-for-LevelFilter"],[77,"impl-Debug-for-LevelFilter"],[82,"impl-Display-for-SetLoggerError"],[83,"impl-Debug-for-SetLoggerError"],[84,"impl-Display-for-ParseLevelError"],[85,"impl-Debug-for-ParseLevelError"],[132,"impl-PartialOrd%3CLevelFilter%3E-for-Level"],[133,"impl-PartialOrd-for-Level"],[134,"impl-PartialOrd-for-LevelFilter"],[135,"impl-PartialOrd%3CLevel%3E-for-LevelFilter"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFQACAAaAA8ALgALADsAAQA+AAYASwALAF8ABQCFAAUAlgAXAA==","P":[[25,"T"],[41,""],[86,"T"],[94,"FromStr::Err"],[96,"__H"],[101,"U"],[109,""],[149,"U,T"],[157,"U"],[165,""]]}],["proc_macro2",{"t":"PPPGFPFPPFFPPPFPGFFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNFENNNNNNNNNNNNNNN","n":["Alone","Brace","Bracket","Delimiter","Group","","Ident","","Joint","LexError","Literal","","None","Parenthesis","Punct","","Spacing","Span","TokenStream","TokenTree","as_char","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","byte_character","byte_string","c_string","call_site","character","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","cmp","default","delim_span","delimiter","eq","","","","extend","","extra","f32_suffixed","f32_unsuffixed","f64_suffixed","f64_unsuffixed","fmt","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","from_iter","","from_str","","hash","i128_suffixed","i128_unsuffixed","i16_suffixed","i16_unsuffixed","i32_suffixed","i32_unsuffixed","i64_suffixed","i64_unsuffixed","i8_suffixed","i8_unsuffixed","into","","","","","","","","","","into_iter","is_empty","isize_suffixed","isize_unsuffixed","join","located_at","mixed_site","new","","","","new_raw","partial_cmp","resolved_at","set_span","","","","","source_text","spacing","span","","","","","","span_close","span_open","stream","string","subspan","to_owned","","","","","","","","","to_string","","","","","","","token_stream","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","u128_suffixed","u128_unsuffixed","u16_suffixed","u16_unsuffixed","u32_suffixed","u32_unsuffixed","u64_suffixed","u64_unsuffixed","u8_suffixed","u8_unsuffixed","unwrap","usize_suffixed","usize_unsuffixed","DelimSpan","borrow","borrow_mut","clone","clone_into","clone_to_uninit","close","fmt","from","into","join","open","to_owned","try_from","try_into","type_id","IntoIter","TokenStream","borrow","borrow_mut","clone","clone_into","clone_to_uninit","fmt","from","into","into_iter","next","size_hint","to_owned","try_from","try_into","type_id"],"q":[[0,"proc_macro2"],[239,"proc_macro2::extra"],[255,"proc_macro2::token_stream"],[272,"core::ffi::c_str"],[273,"core::cmp"],[274,"core::marker"],[275,"core::convert"],[276,"core::iter::traits::collect"],[277,"core::fmt"],[278,"proc_macro"],[279,"core::result"],[280,"core::hash"],[281,"core::option"],[282,"alloc::string"],[283,"core::ops::range"],[284,"core::any"]],"i":"AlAj0``Af`02``011`0````bCfAdAb4Ah647Anl5437286910000304372869104372869104372869101422891144`000055443772286691100544433777772869104440100000000005437286910440033342611137261036572610222004372869105472610`5437286910543728691054372869100000000000300`Bd00000000000000``Dn00000000000000","f":"````````````````````{{{d{b}}}f}{d{{d{c}}}{}}000000000{{{d{h}}}{{d{hc}}}{}}000000000{jl}{{{d{{n{j}}}}}l}{{{d{A`}}}l}{{}Ab}{fl}{{{d{Ad}}}Ad}{{{d{Ab}}}Ab}{{{d{Af}}}Af}{{{d{Ah}}}Ah}{{{d{Aj}}}Aj}{{{d{b}}}b}{{{d{Al}}}Al}{{{d{An}}}An}{{{d{l}}}l}{{d{d{hc}}}B`{}}00000000{{dj}B`}00000000{{{d{An}}{d{An}}}Bb}{{}Ad}{{{d{Ah}}}Bd}{{{d{Ah}}}Aj}{{{d{Aj}}{d{Aj}}}Bf}{{{d{Al}}{d{Al}}}Bf}{{{d{An}}{d{An}}}Bf}{{{d{An}}{d{c}}}Bf{Bh{Bl{Bj}}}}{{{d{hAd}}c}B`{{C`{}{{Bn{Af}}}}}}{{{d{hAd}}c}B`{{C`{}{{Bn{Ad}}}}}}`{Cbl}0{Cdl}0{{{d{Cf}}{d{hCh}}}Cj}0{{{d{Ad}}{d{hCh}}}Cj}0{{{d{Ab}}{d{hCh}}}Cj}{{{d{Af}}{d{hCh}}}Cj}0{{{d{Ah}}{d{hCh}}}Cj}0{{{d{Aj}}{d{hCh}}}Cj}{{{d{b}}{d{hCh}}}Cj}0{{{d{Al}}{d{hCh}}}Cj}{{{d{An}}{d{hCh}}}Cj}0{{{d{l}}{d{hCh}}}Cj}0{cc{}}0{ClAd}{AfAd}{CnAb}3{lAf}{bAf}{AnAf}{AhAf}7777777{cAd{{C`{}{{Bn{Af}}}}}}{cAd{{C`{}{{Bn{Ad}}}}}}{{{d{Bj}}}{{D`{AdCf}}}}{{{d{Bj}}}{{D`{lCf}}}}{{{d{An}}{d{hc}}}B`Db}{Ddl}0{Dfl}0{Dhl}0{Djl}0{Dll}0{{}c{}}000000000{AdDn}{{{d{Ad}}}Bf}{E`l}0{{{d{Ab}}Ab}{{Eb{Ab}}}}{{{d{Ab}}Ab}Ab}{{}Ab}{{}Ad}{{AjAd}Ah}{{fAl}b}{{{d{Bj}}Ab}An}0{{{d{An}}{d{An}}}{{Eb{Bb}}}}6{{{d{hAf}}Ab}B`}{{{d{hAh}}Ab}B`}{{{d{hb}}Ab}B`}{{{d{hAn}}Ab}B`}{{{d{hl}}Ab}B`}{{{d{Ab}}}{{Eb{Ed}}}}{{{d{b}}}Al}{{{d{Cf}}}Ab}{{{d{Af}}}Ab}{{{d{Ah}}}Ab}{{{d{b}}}Ab}{{{d{An}}}Ab}{{{d{l}}}Ab}33{{{d{Ah}}}Ad}{{{d{Bj}}}l}{{{d{l}}c}{{Eb{Ab}}}{{Eh{Ef}}}}{dc{}}00000000{dEd}000000`{c{{D`{e}}}{}{}}000000000{{}{{D`{c}}}{}}000000000{dEj}000000000{Ell}0{Enl}0{F`l}0{Fbl}0{jl}0{AbCn}{Efl}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Bd}}}Bd}{{d{d{hc}}}B`{}}{{dj}B`}{{{d{Bd}}}Ab}{{{d{Bd}}{d{hCh}}}Cj}{cc{}}{{}c{}}33{dc{}}{c{{D`{e}}}{}{}}{{}{{D`{c}}}{}}{dEj}``<;{{{d{Dn}}}Dn}:9{{{d{Dn}}{d{hCh}}}Cj}76{{}c{}}{{{d{hDn}}}{{Eb{Af}}}}{{{d{Dn}}}{{Fd{Ef{Eb{Ef}}}}}}8765","D":"Nh","p":[[5,"Punct",0],[1,"reference",null,null,1],[1,"char"],[0,"mut"],[1,"u8"],[5,"Literal",0],[1,"slice"],[5,"CStr",272],[5,"Span",0],[5,"TokenStream",0],[6,"TokenTree",0],[5,"Group",0],[6,"Delimiter",0],[6,"Spacing",0],[5,"Ident",0],[1,"unit"],[6,"Ordering",273],[5,"DelimSpan",239],[1,"bool"],[10,"Sized",274],[1,"str"],[10,"AsRef",275],[17,"Item"],[10,"IntoIterator",276],[1,"f32"],[1,"f64"],[5,"LexError",0],[5,"Formatter",277],[8,"Result",277],[5,"TokenStream",278],[5,"Span",278],[6,"Result",279,null,1],[10,"Hasher",280],[1,"i128"],[1,"i16"],[1,"i32"],[1,"i64"],[1,"i8"],[5,"IntoIter",255],[1,"isize"],[6,"Option",281,null,1],[5,"String",282],[1,"usize"],[10,"RangeBounds",283],[5,"TypeId",284],[1,"u128"],[1,"u16"],[1,"u32"],[1,"u64"],[1,"tuple",null,null,1]],"r":[[256,0]],"b":[[79,"impl-PartialEq-for-Ident"],[80,"impl-PartialEq%3CT%3E-for-Ident"],[81,"impl-Extend%3CTokenTree%3E-for-TokenStream"],[82,"impl-Extend%3CTokenStream%3E-for-TokenStream"],[88,"impl-Display-for-LexError"],[89,"impl-Debug-for-LexError"],[90,"impl-Debug-for-TokenStream"],[91,"impl-Display-for-TokenStream"],[93,"impl-Display-for-TokenTree"],[94,"impl-Debug-for-TokenTree"],[95,"impl-Display-for-Group"],[96,"impl-Debug-for-Group"],[98,"impl-Display-for-Punct"],[99,"impl-Debug-for-Punct"],[101,"impl-Display-for-Ident"],[102,"impl-Debug-for-Ident"],[103,"impl-Display-for-Literal"],[104,"impl-Debug-for-Literal"],[107,"impl-From%3CTokenStream%3E-for-TokenStream"],[108,"impl-From%3CTokenTree%3E-for-TokenStream"],[111,"impl-From%3CLiteral%3E-for-TokenTree"],[112,"impl-From%3CPunct%3E-for-TokenTree"],[113,"impl-From%3CIdent%3E-for-TokenTree"],[114,"impl-From%3CGroup%3E-for-TokenTree"],[122,"impl-FromIterator%3CTokenTree%3E-for-TokenStream"],[123,"impl-FromIterator%3CTokenStream%3E-for-TokenStream"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJwAEQAWABMALwAcAE4ABQBZABAAbAACAHAAAwB7AAQAlAAAAKAAAACpAAAAtAAPAMUAHQDxAAQA9wAAAPwAAwABAQYACgEGAA==","P":[[21,"T"],[41,""],[55,"T"],[64,""],[80,"T"],[81,"I"],[84,""],[105,"T"],[107,""],[110,"T"],[111,""],[115,"T"],[122,"I"],[124,""],[126,"H"],[127,""],[137,"U"],[147,""],[178,"R"],[179,"T"],[188,""],[196,"U,T"],[206,"U"],[216,""],[240,"T"],[242,""],[243,"T"],[244,""],[247,"T"],[248,"U"],[249,""],[251,"T"],[252,"U,T"],[253,"U"],[254,""],[257,"T"],[259,""],[260,"T"],[261,""],[263,"T"],[264,"U"],[265,"I"],[266,""],[268,"T"],[269,"U,T"],[270,"U"],[271,""]]}],["quote",{"t":"KKKMMMMMQNNQQNNNNM","n":["IdentFragment","ToTokens","TokenStreamExt","append","append_all","append_separated","append_terminated","fmt","format_ident","into_token_stream","","quote","quote_spanned","span","","to_token_stream","","to_tokens"],"q":[[0,"quote"],[18,"quote::ext"],[19,"proc_macro2"],[20,"core::convert"],[21,"core::iter::traits::collect"],[22,"quote::to_tokens"],[23,"quote::ident_fragment"],[24,"core::fmt"],[25,"core::option"]],"i":"```d000Ab`A`0``11000","f":"```{{{f{bd}}c}h{{l{j}}}}{{{f{bd}}c}hn}{{{f{bd}}ce}hnA`}0{{{f{Ab}}{f{bAd}}}Af}`{A`Ah}0``{{{f{Ab}}}{{Al{Aj}}}}0{{{f{A`}}}Ah}0{{{f{A`}}{f{bAh}}}h}","D":"Bf","p":[[0,"mut"],[10,"TokenStreamExt",0,18],[1,"reference",null,null,1],[1,"unit"],[6,"TokenTree",19],[10,"Into",20,null,1],[10,"IntoIterator",21],[10,"ToTokens",0,22],[10,"IdentFragment",0,23],[5,"Formatter",24],[8,"Result",24],[5,"TokenStream",19],[5,"Span",19],[6,"Option",25,null,1]],"r":[[0,23],[1,22],[2,18],[3,18],[4,18],[5,18],[6,18],[7,23],[9,22],[10,22],[13,23],[14,23],[15,22],[16,22],[17,22]],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA=","P":[[3,"U"],[4,"I"],[5,"I,U"],[7,""]]}],["syn",{"t":"FPPPPFPPPFPFPPGFPPFFGPPPPPPPPPFPPPPPPPPPPPPPFFPPGFFFPPFPPPPPFGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFPGFGFFPPPGGFPPPFPFPFPPPPPPPPFPPPPFPGPFFFFFFFFPPFPPGPPGGFFPPPPPPPPPPPPPPPPTPPPPFFPPPGFPFFPPFPPPPPPPPIPGPPPPPPPPPPQPFGPPPPPFGPPPPFFFFFFFFFGFFFFFFFGPPPPPPFPPPPFGFGPPOOOOOOOOOONOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOQOOOOQCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOONONNOOQQONNNOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOCNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOOOONOOOONOOOOOOONOONCOOOOOOOOOOONNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOQCHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNQNNNNNQQHNNNNNNOOOOOOOONOOOOCOOOONNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOCNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONONNNNNNOOOOOOOCOONNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKMTMFNNNNONNHONNNNFPFFFPRKFIKKIFNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNMNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKMMPFFFFGFFFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKMFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFKFFFFFFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNN","n":["Abi","Add","AddAssign","And","AngleBracketed","AngleBracketedGenericArguments","Array","","Assign","AssocConst","","AssocType","","Async","AttrStyle","Attribute","Await","BareFn","BareFnArg","BareVariadic","BinOp","Binary","BitAnd","BitAndAssign","BitOr","BitOrAssign","BitXor","BitXorAssign","Block","Bool","BoundLifetimes","Brace","Bracket","Break","Byte","ByteStr","CStr","Call","Cast","Char","Closure","Const","","","ConstParam","Constraint","","Continue","Data","DataEnum","DataStruct","DataUnion","Default","Deref","DeriveInput","Div","DivAssign","Enum","Eq","Err","Error","Expr","ExprArray","ExprAssign","ExprAsync","ExprAwait","ExprBinary","ExprBlock","ExprBreak","ExprCall","ExprCast","ExprClosure","ExprConst","ExprContinue","ExprField","ExprForLoop","ExprGroup","ExprIf","ExprIndex","ExprInfer","ExprLet","ExprLit","ExprLoop","ExprMacro","ExprMatch","ExprMethodCall","ExprParen","ExprPath","ExprRange","ExprRawAddr","ExprReference","ExprRepeat","ExprReturn","ExprStruct","ExprTry","ExprTryBlock","ExprTuple","ExprUnary","ExprUnsafe","ExprWhile","ExprYield","Field","","FieldMutability","FieldValue","Fields","FieldsNamed","FieldsUnnamed","Float","ForLoop","Ge","GenericArgument","GenericParam","Generics","Group","","Gt","Ident","If","ImplGenerics","ImplTrait","Index","","Infer","","Inherited","Inner","Int","Le","Let","Lifetime","","","","","LifetimeParam","List","Lit","","LitBool","LitByte","LitByteStr","LitCStr","LitChar","LitFloat","LitInt","LitStr","Loop","Lt","Macro","","","MacroDelimiter","Match","Maybe","Member","Meta","MetaList","MetaNameValue","MethodCall","Mul","MulAssign","NameValue","Named","","Ne","Neg","Never","None","","","Not","Ok","Or","Outer","PLACEHOLDER","Paren","","","Parenthesized","ParenthesizedGenericArguments","Path","","","","PathArguments","PathSegment","PreciseCapture","PredicateLifetime","PredicateType","Ptr","Public","QSelf","Range","RawAddr","Reference","","Rem","RemAssign","Repeat","Restricted","Result","Return","ReturnType","Shl","ShlAssign","Shr","ShrAssign","Slice","Str","Struct","","Sub","SubAssign","Token","Trait","TraitBound","TraitBoundModifier","TraitObject","Try","TryBlock","Tuple","","Turbofish","Type","","","","","TypeArray","TypeBareFn","TypeGenerics","TypeGroup","TypeImplTrait","TypeInfer","TypeMacro","TypeNever","TypeParam","TypeParamBound","TypeParen","TypePath","TypePtr","TypeReference","TypeSlice","TypeTraitObject","TypeTuple","UnOp","Unary","Union","Unit","Unnamed","","Unsafe","Variant","Verbatim","","","","VisRestricted","Visibility","WhereClause","WherePredicate","While","Yield","abi","and_token","","apostrophe","args","","","arguments","as_token","","as_turbofish","attrs","","","","","","","","","","","","","","","","","","","","","","","","bang_token","","base","base10_digits","","base10_parse","","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bounded_ty","bounds","","","","","","","brace_token","","","braced","bracket_token","","","","bracketed","buffer","clone","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","cmp","","colon2_token","colon_token","","","","","","","","combine","comma","const_params","const_params_mut","const_token","","custom_keyword","custom_punctuation","data","default","","","","","delimiter","","discriminant","dot2_token","dot_token","","dots","dyn_token","elem","","","","","","elems","","enum_token","eq","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","eq_token","","","","","expr","","","","","","","ext","extend","extern_token","fields","","","","fmt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","fn_token","for_token","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","func","generics","","","","get_ident","group_token","","gt_token","","","","hash","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ident","","","","","","","","","","impl_token","in_token","index","","inputs","","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_compile_error","into_iter","","","","","is_empty","","is_ident","is_none","iter","iter_mut","leading_colon","left","len","","lifetime","","","lifetimes","","","","","lifetimes_mut","lit","lt_token","","","","mac","","make_where_clause","member","","members","meta","","method","modifier","mutability","","","","name","","","named","new","","","","","","","","","","","","","new_raw","new_spanned","op","","output","","params","paren_token","","","","","","","","","","","parenthesized","parse","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","parse2","parse_any","parse_args","","parse_args_with","","parse_body","parse_body_with","parse_inner","parse_macro_input","parse_mod_style","parse_named","parse_nested_meta","","parse_outer","parse_quote","parse_quote_spanned","parse_str","parse_unnamed","parse_with","partial_cmp","","path","","","","","","","","","","peek","position","pound_token","predicates","pub_token","punctuated","qself","","","receiver","require_ident","require_list","require_name_value","require_path_only","rest","right","segments","semi_token","","set_span","","","","","","","","","","","span","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","spanned","split_for_impl","star_token","struct_token","style","suffix","","","","","","","","to_compile_error","to_owned","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","to_string","","","","","to_tokens","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","token","","","","","","","","","tokens","","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","turbofish","ty","","","","","","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","type_params","type_params_mut","underscore_token","union_token","unnamed","unraw","unsafety","value","","","","","","","","","variadic","variants","vis","","visit","where_clause","where_token","without_plus","","","","Cursor","TokenBuffer","any_group","begin","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","empty","eof","eq","from","","group","ident","into","","lifetime","literal","new","new2","partial_cmp","punct","span","to_owned","token_stream","token_tree","try_from","","try_into","","type_id","","IdentExt","parse_any","peek_any","unraw","ParseNestedMeta","borrow","borrow_mut","error","from","input","into","parse_nested_meta","parser","path","try_from","try_into","type_id","value","End","Err","Error","Lookahead1","Nothing","Ok","Output","Parse","ParseBuffer","ParseStream","Parser","Peek","Result","StepCursor","advance_to","borrow","","","","","borrow_mut","","","","","call","clone","","","clone_into","","","clone_to_uninit","","","cursor","deref","discouraged","display","drop","eq","error","","","fmt","","","fork","from","","","","","hash","into","","","","","is_empty","lookahead1","parse","","","","parse2","parse_any_delimiter","parse_str","parse_terminated","peek","","","peek2","peek3","span","","step","to_owned","","","to_string","to_tokens","try_from","","","","","try_into","","","","","type_id","","","","","AnyDelimiter","Speculative","advance_to","parse_any_delimiter","End","IntoIter","IntoPairs","Iter","IterMut","Pair","Pairs","PairsMut","Punctuated","","borrow","","","","","","","","borrow_mut","","","","","","","","clear","clone","","","","","","clone_from","clone_into","","","","","","clone_to_uninit","","","","","","cloned","default","empty_or_trailing","eq","extend","","first","first_mut","fmt","from","","","","","","","","from_iter","","get","get_mut","hash","index","index_mut","insert","into","","","","","","","","into_iter","","","","","","","","","into_pairs","into_tuple","into_value","is_empty","iter","iter_mut","last","last_mut","len","","","","","","","new","","next","","","","","","next_back","","","","","","pairs","pairs_mut","parse_separated_nonempty","parse_separated_nonempty_with","parse_terminated","parse_terminated_with","pop","pop_punct","punct","punct_mut","push","push_punct","push_value","size_hint","","","","","","span","","to_owned","","","","","","to_tokens","","trailing_punct","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","value","value_mut","Spanned","span","Abstract","And","AndAnd","AndEq","As","Async","At","Auto","Await","Become","Box","Brace","Bracket","Break","Caret","CaretEq","Colon","Comma","Const","Continue","Crate","Default","Do","Dollar","Dot","DotDot","DotDotDot","DotDotEq","Dyn","Else","Enum","Eq","EqEq","Extern","FatArrow","Final","Fn","For","Ge","Group","Gt","If","Impl","In","LArrow","Le","Let","Loop","Lt","Macro","Match","Minus","MinusEq","Mod","Move","Mut","Ne","Not","Or","OrEq","OrOr","Override","Paren","PathSep","Percent","PercentEq","Plus","PlusEq","Pound","Priv","Pub","Question","RArrow","Raw","Ref","Return","SelfType","SelfValue","Semi","Shl","ShlEq","Shr","ShrEq","Slash","SlashEq","Star","StarEq","Static","Struct","Super","Tilde","Token","Trait","Try","Type","Typeof","Underscore","Union","Unsafe","Unsized","Use","Virtual","Where","While","Yield","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","default","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deref","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","eq","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","fmt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","hash","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","parse","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","span","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","spans","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","surround","","","","to_owned","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","to_tokens","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Visit","visit_abi","","","visit_angle_bracketed_generic_arguments","","","visit_assoc_const","","","visit_assoc_type","","","visit_attr_style","","","visit_attribute","","","visit_bare_fn_arg","","","visit_bare_variadic","","","visit_bin_op","","","visit_bound_lifetimes","","","visit_const_param","","","visit_constraint","","","visit_data","","","visit_data_enum","","","visit_data_struct","","","visit_data_union","","","visit_derive_input","","","visit_expr","","","visit_expr_binary","","","visit_expr_call","","","visit_expr_cast","","","visit_expr_field","","","visit_expr_group","","","visit_expr_index","","","visit_expr_lit","","","visit_expr_macro","","","visit_expr_method_call","","","visit_expr_paren","","","visit_expr_path","","","visit_expr_reference","","","visit_expr_struct","","","visit_expr_tuple","","","visit_expr_unary","","","visit_field","","","visit_field_mutability","","","visit_field_value","","","visit_fields","","","visit_fields_named","","","visit_fields_unnamed","","","visit_generic_argument","","","visit_generic_param","","","visit_generics","","","visit_ident","","","visit_index","","","visit_lifetime","","","visit_lifetime_param","","","visit_lit","","","visit_lit_bool","","","visit_lit_byte","","","visit_lit_byte_str","","","visit_lit_char","","","visit_lit_cstr","","","visit_lit_float","","","visit_lit_int","","","visit_lit_str","","","visit_macro","","","visit_macro_delimiter","","","visit_member","","","visit_meta","","","visit_meta_list","","","visit_meta_name_value","","","visit_parenthesized_generic_arguments","","","visit_path","","","visit_path_arguments","","","visit_path_segment","","","visit_predicate_lifetime","","","visit_predicate_type","","","visit_qself","","","visit_return_type","","","visit_span","","","visit_token_stream","","visit_trait_bound","","","visit_trait_bound_modifier","","","visit_type","","","visit_type_array","","","visit_type_bare_fn","","","visit_type_group","","","visit_type_impl_trait","","","visit_type_infer","","","visit_type_macro","","","visit_type_never","","","visit_type_param","","","visit_type_param_bound","","","visit_type_paren","","","visit_type_path","","","visit_type_ptr","","","visit_type_reference","","","visit_type_slice","","","visit_type_trait_object","","","visit_type_tuple","","","visit_un_op","","","visit_variant","","","visit_vis_restricted","","","visit_visibility","","","visit_where_clause","","","visit_where_predicate","",""],"q":[[0,"syn"],[2569,"syn::buffer"],[2605,"syn::ext"],[2609,"syn::meta"],[2623,"syn::parse"],[2624,"syn"],[2625,"syn::parse"],[2628,"syn"],[2629,"syn::parse"],[2720,"syn::parse::discouraged"],[2724,"syn::punctuated"],[2897,"syn::spanned"],[2899,"syn::token"],[5016,"syn::visit"],[5304,"syn::ty"],[5305,"core::option"],[5306,"syn::expr"],[5307,"syn::lifetime"],[5308,"proc_macro2"],[5309,"syn::path"],[5310,"syn::generics"],[5311,"syn::data"],[5312,"alloc::vec"],[5313,"syn::derive"],[5314,"syn::mac"],[5315,"alloc::boxed"],[5316,"syn::lit"],[5317,"syn::error"],[5318,"core::str::traits"],[5319,"syn::attr"],[5320,"syn::op"],[5321,"syn::restriction"],[5322,"core::cmp"],[5323,"core::convert"],[5324,"core::marker"],[5325,"core::iter::traits::collect"],[5326,"core::fmt"],[5327,"core::result"],[5328,"core::hash"],[5329,"core::ffi::c_str"],[5330,"quote::to_tokens"],[5331,"proc_macro"],[5332,"core::ops::function"],[5333,"proc_macro2::extra"],[5334,"alloc::string"],[5335,"core::any"],[5336,"alloc::ffi::c_str"],[5337,"syn::lookahead"],[5338,"core::clone"],[5339,"core::default"],[5340,"syn::gen::visit"],[5341,"syn::gen"]],"i":"`Kn00Aj`IhFh1`Ld`02``21```24444442Jn`Kl0411144144J`3``35````NbL``99Ib:F```````````````````````````````````````````9`````69;```98;`9`8`998LlHf8=;`6JdJl;`Hh`>````````>Kn`?>`?Jh````Ih223HnIj4ClCnfD`DbDdDfDhDjDlDnE`EbEfCbEjEn10H`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbFfDhDjFj3FlFn;GbGfD``GhCfGlGn``H`HbHdBbBfl9HfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbHblAfBlDfDhDjDlFjFfFlH`=In05Ml``Bn2JbAj:9HjEbBhD`CbAdE`G`GlMbMh>jGnDbMnGfHb0HdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbHlDjDlLfLhAlCdCfClfDdDf`H`N`BhIdIfD`55Hb00HdBbBfl0GhHfHhHjHl=HnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIj0Il0DfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEj0En0KjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbbJbH`0Hb000000HdBbBflGhHfHh000HjHlBhHn00GbI`BlBnIbIdGfIfIh000000000000000000000000000000000000000AAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIj000Il0DfInJ`000DhDj0DlJbJd00JfJhJjJl00FjFfJn00000000K`KbKdKfKhEj0En0KjEbKlKnL`Lb0Ah0AjLdAfLfLhFlLjB`LlLnM`Fh00000000000000GlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbA`BnLfLhFlLbCdMbInJbAfB`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NblBhBlBnDjDlAhLfLhFlFnLnCfIlLjbH`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`00Hn000AjLb1220C`3GlDhFj?InJbJfFfb4Ch54AfB`CjMf9CbDfHn`GhAd:::7C`?IdGlHb?JnK`KbKdKfKhEjEnKjH`:::HdBbBfl0GhHhHjHlBhHnGbI`BlBnIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIj0Il0DfInJ`DhDjDlJbJdJfJhJjJlFjFfJn0K`0Kb0Kd0Kf0Kh0Ej0En0Kj0EbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnFhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbIlKj`In;IdGhJnK`KbKdKfKhEjEnH`0HbHdBbBfl>HfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`HblEjEn3HdBbBf5GhHhHjHlBhHnGbI`BlBnIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKnL`LbAhAjLdAfLfLhFlLjLlLnFhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`Nb`K`KbKdKfKhEjEnKjHjEbH`HbHdBbBflGhHfHh:HlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbAdBlAlDlLfB`8H`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbIn0>IfI`HbbK`KbKdKfKhKjHl1Lh8GfBlBn`?JjFhFnG`Nb``AIdAIh01011111110111011100111111010101`AIn00`AGf000000`00000`F````0AGd```````AJ`AJjAJd2AJfAJh32410421021021041`24034144043241003241044AG`56165654355551532151435214352143521``AK`AKbAKl````````0AbAKfALfAKhAKjAElAEn765432107665321766532176532177666666666543210766666666654321076665432106776666665432106754321054321066666666776665432106765321767665432107654321076543210777`ALj`````````````````````````````````````````````````````````````````````````````````````````````````````````AE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAAhhBAlBAnNjBBbBBdNnOjAEbAF`BCdEdBCjBDbBDfAGlBDjAH`BEfAHfBElAAhhBAlBAnNjBBbBBdNnOjAEbAF`BCdEdBCjBDbBDfAGlBDjAH`BEfAHfBElAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElAAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElAE`ALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfGdGjAFlAAhhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElAE`GdGjAFl3AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFl``BF`0`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`0000`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00","f":"````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{bd}{fh}{jh}{ln}{A`Ab}{AdAb}{AfAb}{AhAj}{AlAn}{B`d}{{{Bd{Bb}}}Bf}{BhBj}{BlBj}{BnBj}{C`Bj}{A`Bj}{AlBj}{CbBj}{CdBj}{CfBj}{ChBj}{CjBj}{AdBj}{ClBj}{CnBj}{fBj}{D`Bj}{DbBj}{DdBj}{DfBj}{DhBj}{DjBj}{DlBj}{DnBj}{E`Bj}{EbEd}{EfEd}{CbEh}{{{Bd{Ej}}}{{Bd{El}}}}{{{Bd{En}}}{{Bd{El}}}}{{{Bd{Ej}}}{{F`{c}}}Fb}{{{Bd{En}}}{{F`{c}}}Fb}{Bd{{Bd{c}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{Fd}}}{{Bd{Fdc}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{FfFh}{DhAb}{DjAb}{FjAb}{FfAb}{FlAb}{FnAb}{G`Ab}{GbGd}{GfGd}{D`Gd}`{GhGj}{CfGj}{GlGj}{GnGj}``{{{Bd{H`}}}H`}{{{Bd{Hb}}}Hb}{{{Bd{Hd}}}Hd}{{{Bd{Bb}}}Bb}{{{Bd{Bf}}}Bf}{{{Bd{l}}}l}{{{Bd{Gh}}}Gh}{{{Bd{Hf}}}Hf}{{{Bd{Hh}}}Hh}{{{Bd{Hj}}}Hj}{{{Bd{Hl}}}Hl}{{{Bd{Bh}}}Bh}{{{Bd{Hn}}}Hn}{{{Bd{Gb}}}Gb}{{{Bd{I`}}}I`}{{{Bd{Bl}}}Bl}{{{Bd{Bn}}}Bn}{{{Bd{Ib}}}Ib}{{{Bd{Id}}}Id}{{{Bd{Gf}}}Gf}{{{Bd{If}}}If}{{{Bd{Ih}}}Ih}{{{Bd{C`}}}C`}{{{Bd{A`}}}A`}{{{Bd{Al}}}Al}{{{Bd{Cb}}}Cb}{{{Bd{Cd}}}Cd}{{{Bd{Cf}}}Cf}{{{Bd{Ch}}}Ch}{{{Bd{Cj}}}Cj}{{{Bd{Ad}}}Ad}{{{Bd{Cl}}}Cl}{{{Bd{Cn}}}Cn}{{{Bd{f}}}f}{{{Bd{D`}}}D`}{{{Bd{Db}}}Db}{{{Bd{Dd}}}Dd}{{{Bd{Ij}}}Ij}{{{Bd{Il}}}Il}{{{Bd{Df}}}Df}{{{Bd{In}}}In}{{{Bd{J`}}}J`}{{{Bd{Dh}}}Dh}{{{Bd{Dj}}}Dj}{{{Bd{Dl}}}Dl}{{{Bd{Jb}}}Jb}{{{Bd{Jd}}}Jd}{{{Bd{Jf}}}Jf}{{{Bd{Jh}}}Jh}{{{Bd{Jj}}}Jj}{{{Bd{Jl}}}Jl}{{{Bd{Fj}}}Fj}{{{Bd{Ff}}}Ff}{{{Bd{Jn}}}Jn}{{{Bd{K`}}}K`}{{{Bd{Kb}}}Kb}{{{Bd{Kd}}}Kd}{{{Bd{Kf}}}Kf}{{{Bd{Kh}}}Kh}{{{Bd{Ej}}}Ej}{{{Bd{En}}}En}{{{Bd{Kj}}}Kj}{{{Bd{Eb}}}Eb}{{{Bd{Kl}}}Kl}{{{Bd{Kn}}}Kn}{{{Bd{L`}}}L`}{{{Bd{Lb}}}Lb}{{{Bd{Ah}}}Ah}{{{Bd{Aj}}}Aj}{{{Bd{Ld}}}Ld}{{{Bd{Af}}}Af}{{{Bd{Lf}}}Lf}{{{Bd{Lh}}}Lh}{{{Bd{Fl}}}Fl}{{{Bd{Lj}}}Lj}{{{Bd{B`}}}B`}{{{Bd{Ll}}}Ll}{{{Bd{Ln}}}Ln}{{{Bd{M`}}}M`}{{{Bd{Fh}}}Fh}{{{Bd{Gl}}}Gl}{{{Bd{b}}}b}{{{Bd{Mb}}}Mb}{{{Bd{Fn}}}Fn}{{{Bd{Md}}}Md}{{{Bd{Mf}}}Mf}{{{Bd{Ef}}}Ef}{{{Bd{Mh}}}Mh}{{{Bd{Mj}}}Mj}{{{Bd{Ml}}}Ml}{{{Bd{j}}}j}{{{Bd{Gn}}}Gn}{{{Bd{G`}}}G`}{{{Bd{Mn}}}Mn}{{{Bd{N`}}}N`}{{{Bd{Dn}}}Dn}{{{Bd{E`}}}E`}{{{Bd{Nb}}}Nb}{{Bd{Bd{Fdc}}}Nd{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{BdNf}Nd}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{Hb}}{Bd{Hb}}}Nh}{{{Bd{l}}{Bd{l}}}Nh}{Afd}{Bld}{Dfd}{Dhd}{Djd}{DlNj}{FjNj}{FfNj}{FlNj}{{{Bd{FdH`}}H`}Nd}{E`d}``{DlNl}{Mld}``{BnIb}{{}In}{{}Jb}{{}Aj}<{Dld}{HjKl}{EbKl}{Bhd}{D`d}{CbNn}{AdNn}{E`O`}{G`d}{GlEh}{MbEh}{MhEh}{MlEh}{jEh}{GnEh}{DbAb}{MnAb}{GfOb}{{{Bd{Hb}}{Bd{c}}}Od{{Of{El}}Oh}}{{{Bd{Hb}}{Bd{Hb}}}Od}{{{Bd{Hd}}{Bd{Hd}}}Od}{{{Bd{Bb}}{Bd{Bb}}}Od}{{{Bd{Bf}}{Bd{Bf}}}Od}{{{Bd{l}}{Bd{l}}}Od}{{{Bd{Gh}}{Bd{Gh}}}Od}{{{Bd{Hf}}{Bd{Hf}}}Od}{{{Bd{Hh}}{Bd{Hh}}}Od}{{{Bd{Hj}}{Bd{Hj}}}Od}{{{Bd{Hl}}{Bd{Hl}}}Od}{{{Bd{Bh}}{Bd{Bh}}}Od}{{{Bd{Hn}}{Bd{Hn}}}Od}{{{Bd{Gb}}{Bd{Gb}}}Od}{{{Bd{I`}}{Bd{I`}}}Od}{{{Bd{Bl}}{Bd{Bl}}}Od}{{{Bd{Bn}}{Bd{Bn}}}Od}{{{Bd{Ib}}{Bd{Ib}}}Od}{{{Bd{Id}}{Bd{Id}}}Od}{{{Bd{Gf}}{Bd{Gf}}}Od}{{{Bd{If}}{Bd{If}}}Od}{{{Bd{Ih}}{Bd{Ih}}}Od}{{{Bd{C`}}{Bd{C`}}}Od}{{{Bd{A`}}{Bd{A`}}}Od}{{{Bd{Al}}{Bd{Al}}}Od}{{{Bd{Cb}}{Bd{Cb}}}Od}{{{Bd{Cd}}{Bd{Cd}}}Od}{{{Bd{Cf}}{Bd{Cf}}}Od}{{{Bd{Ch}}{Bd{Ch}}}Od}{{{Bd{Cj}}{Bd{Cj}}}Od}{{{Bd{Ad}}{Bd{Ad}}}Od}{{{Bd{Cl}}{Bd{Cl}}}Od}{{{Bd{Cn}}{Bd{Cn}}}Od}{{{Bd{f}}{Bd{f}}}Od}{{{Bd{D`}}{Bd{D`}}}Od}{{{Bd{Db}}{Bd{Db}}}Od}{{{Bd{Dd}}{Bd{Dd}}}Od}{{{Bd{Ij}}{Bd{Ij}}}Od}{{{Bd{Il}}{Bd{Il}}}Od}{{{Bd{Df}}{Bd{Df}}}Od}{{{Bd{In}}{Bd{In}}}Od}{{{Bd{J`}}{Bd{J`}}}Od}{{{Bd{Dh}}{Bd{Dh}}}Od}{{{Bd{Dj}}{Bd{Dj}}}Od}{{{Bd{Dl}}{Bd{Dl}}}Od}{{{Bd{Jb}}{Bd{Jb}}}Od}{{{Bd{Jd}}{Bd{Jd}}}Od}{{{Bd{Jf}}{Bd{Jf}}}Od}{{{Bd{Jh}}{Bd{Jh}}}Od}{{{Bd{Jj}}{Bd{Jj}}}Od}{{{Bd{Jl}}{Bd{Jl}}}Od}{{{Bd{Fj}}{Bd{Fj}}}Od}{{{Bd{Ff}}{Bd{Ff}}}Od}{{{Bd{Jn}}{Bd{Jn}}}Od}{{{Bd{K`}}{Bd{K`}}}Od}{{{Bd{Kb}}{Bd{Kb}}}Od}{{{Bd{Kd}}{Bd{Kd}}}Od}{{{Bd{Kf}}{Bd{Kf}}}Od}{{{Bd{Kh}}{Bd{Kh}}}Od}{{{Bd{Ej}}{Bd{Ej}}}Od}{{{Bd{En}}{Bd{En}}}Od}{{{Bd{Kj}}{Bd{Kj}}}Od}{{{Bd{Eb}}{Bd{Eb}}}Od}{{{Bd{Kl}}{Bd{Kl}}}Od}{{{Bd{Kn}}{Bd{Kn}}}Od}{{{Bd{L`}}{Bd{L`}}}Od}{{{Bd{Lb}}{Bd{Lb}}}Od}{{{Bd{Ah}}{Bd{Ah}}}Od}{{{Bd{Aj}}{Bd{Aj}}}Od}{{{Bd{Ld}}{Bd{Ld}}}Od}{{{Bd{Af}}{Bd{Af}}}Od}{{{Bd{Lf}}{Bd{Lf}}}Od}{{{Bd{Lh}}{Bd{Lh}}}Od}{{{Bd{Fl}}{Bd{Fl}}}Od}{{{Bd{Lj}}{Bd{Lj}}}Od}{{{Bd{B`}}{Bd{B`}}}Od}{{{Bd{Ll}}{Bd{Ll}}}Od}{{{Bd{Ln}}{Bd{Ln}}}Od}{{{Bd{M`}}{Bd{M`}}}Od}{{{Bd{Fh}}{Bd{Fh}}}Od}{{{Bd{Gl}}{Bd{Gl}}}Od}{{{Bd{b}}{Bd{b}}}Od}{{{Bd{Mb}}{Bd{Mb}}}Od}{{{Bd{Fn}}{Bd{Fn}}}Od}{{{Bd{Md}}{Bd{Md}}}Od}{{{Bd{Mf}}{Bd{Mf}}}Od}{{{Bd{Ef}}{Bd{Ef}}}Od}{{{Bd{Mh}}{Bd{Mh}}}Od}{{{Bd{Mj}}{Bd{Mj}}}Od}{{{Bd{Ml}}{Bd{Ml}}}Od}{{{Bd{j}}{Bd{j}}}Od}{{{Bd{Gn}}{Bd{Gn}}}Od}{{{Bd{G`}}{Bd{G`}}}Od}{{{Bd{Mn}}{Bd{Mn}}}Od}{{{Bd{N`}}{Bd{N`}}}Od}{{{Bd{Dn}}{Bd{Dn}}}Od}{{{Bd{E`}}{Bd{E`}}}Od}{{{Bd{Nb}}{Bd{Nb}}}Od}{HlOj}{Djd}{Dld}{LfOj}{LhOj}{AlEh}{CdEh}{CfEh}{ClEh}{fEh}{DdEh}{DfIh}`{{{Bd{FdH`}}c}Nd{{On{}{{Ol{H`}}}}}}{N`A@`}{BhHn}{IdHn}{IfGb}{D`Ab}{{{Bd{H`}}{Bd{FdA@b}}}A@d}0{{{Bd{Hb}}{Bd{FdA@b}}}{{A@h{NdA@f}}}}00{{{Bd{Hd}}{Bd{FdA@b}}}A@d}{{{Bd{Bb}}{Bd{FdA@b}}}A@d}{{{Bd{Bf}}{Bd{FdA@b}}}A@d}{{{Bd{l}}{Bd{FdA@b}}}A@d}0{{{Bd{Gh}}{Bd{FdA@b}}}A@d}{{{Bd{Hf}}{Bd{FdA@b}}}A@d}{{{Bd{Hh}}{Bd{FdA@b}}}A@d}{{{Bd{Hj}}{Bd{FdA@b}}}A@d}{{{Bd{Hl}}{Bd{FdA@b}}}A@d}{{{Bd{Bh}}{Bd{FdA@b}}}A@d}{{{Bd{Hn}}{Bd{FdA@b}}}A@d}{{{Bd{Gb}}{Bd{FdA@b}}}A@d}{{{Bd{I`}}{Bd{FdA@b}}}A@d}{{{Bd{Bl}}{Bd{FdA@b}}}A@d}{{{Bd{Bn}}{Bd{FdA@b}}}A@d}{{{Bd{Ib}}{Bd{FdA@b}}}A@d}{{{Bd{Id}}{Bd{FdA@b}}}A@d}{{{Bd{Gf}}{Bd{FdA@b}}}A@d}{{{Bd{If}}{Bd{FdA@b}}}A@d}{{{Bd{Ih}}{Bd{FdA@b}}}A@d}{{{Bd{C`}}{Bd{FdA@b}}}A@d}{{{Bd{A`}}{Bd{FdA@b}}}A@d}{{{Bd{Al}}{Bd{FdA@b}}}A@d}{{{Bd{Cb}}{Bd{FdA@b}}}A@d}{{{Bd{Cd}}{Bd{FdA@b}}}A@d}{{{Bd{Cf}}{Bd{FdA@b}}}A@d}{{{Bd{Ch}}{Bd{FdA@b}}}A@d}{{{Bd{Cj}}{Bd{FdA@b}}}A@d}{{{Bd{Ad}}{Bd{FdA@b}}}A@d}{{{Bd{Cl}}{Bd{FdA@b}}}A@d}{{{Bd{Cn}}{Bd{FdA@b}}}A@d}{{{Bd{f}}{Bd{FdA@b}}}A@d}{{{Bd{D`}}{Bd{FdA@b}}}A@d}{{{Bd{Db}}{Bd{FdA@b}}}A@d}{{{Bd{Dd}}{Bd{FdA@b}}}A@d}{{{Bd{Ij}}{Bd{FdA@b}}}A@d}0{{{Bd{Il}}{Bd{FdA@b}}}A@d}0{{{Bd{Df}}{Bd{FdA@b}}}A@d}{{{Bd{In}}{Bd{FdA@b}}}A@d}{{{Bd{J`}}{Bd{FdA@b}}}A@d}{{{Bd{Dh}}{Bd{FdA@b}}}A@d}{{{Bd{Dj}}{Bd{FdA@b}}}A@d}{{{Bd{Dl}}{Bd{FdA@b}}}A@d}{{{Bd{Jb}}{Bd{FdA@b}}}A@d}{{{Bd{Jd}}{Bd{FdA@b}}}A@d}{{{Bd{Jf}}{Bd{FdA@b}}}A@d}{{{Bd{Jh}}{Bd{FdA@b}}}A@d}{{{Bd{Jj}}{Bd{FdA@b}}}A@d}{{{Bd{Jl}}{Bd{FdA@b}}}A@d}{{{Bd{Fj}}{Bd{FdA@b}}}A@d}{{{Bd{Ff}}{Bd{FdA@b}}}A@d}{{{Bd{Jn}}{Bd{FdA@b}}}A@d}{{{Bd{K`}}{Bd{FdA@b}}}A@d}{{{Bd{Kb}}{Bd{FdA@b}}}A@d}{{{Bd{Kd}}{Bd{FdA@b}}}A@d}{{{Bd{Kf}}{Bd{FdA@b}}}A@d}{{{Bd{Kh}}{Bd{FdA@b}}}A@d}{{{Bd{Ej}}{Bd{FdA@b}}}A@d}0{{{Bd{En}}{Bd{FdA@b}}}A@d}0{{{Bd{Kj}}{Bd{FdA@b}}}A@d}{{{Bd{Eb}}{Bd{FdA@b}}}A@d}{{{Bd{Kl}}{Bd{FdA@b}}}A@d}{{{Bd{Kn}}{Bd{FdA@b}}}A@d}{{{Bd{L`}}{Bd{FdA@b}}}A@d}{{{Bd{Lb}}{Bd{FdA@b}}}A@d}{{{Bd{Ah}}{Bd{FdA@b}}}A@d}{{{Bd{Aj}}{Bd{FdA@b}}}A@d}{{{Bd{Ld}}{Bd{FdA@b}}}A@d}{{{Bd{Af}}{Bd{FdA@b}}}A@d}{{{Bd{Lf}}{Bd{FdA@b}}}A@d}{{{Bd{Lh}}{Bd{FdA@b}}}A@d}{{{Bd{Fl}}{Bd{FdA@b}}}A@d}{{{Bd{Lj}}{Bd{FdA@b}}}A@d}{{{Bd{B`}}{Bd{FdA@b}}}A@d}{{{Bd{Ll}}{Bd{FdA@b}}}A@d}{{{Bd{Ln}}{Bd{FdA@b}}}A@d}{{{Bd{M`}}{Bd{FdA@b}}}A@d}{{{Bd{Fh}}{Bd{FdA@b}}}A@d}{{{Bd{Gl}}{Bd{FdA@b}}}A@d}{{{Bd{b}}{Bd{FdA@b}}}A@d}{{{Bd{Mb}}{Bd{FdA@b}}}A@d}{{{Bd{Fn}}{Bd{FdA@b}}}A@d}{{{Bd{Md}}{Bd{FdA@b}}}A@d}{{{Bd{Mf}}{Bd{FdA@b}}}A@d}{{{Bd{Ef}}{Bd{FdA@b}}}A@d}{{{Bd{Mh}}{Bd{FdA@b}}}A@d}{{{Bd{Mj}}{Bd{FdA@b}}}A@d}{{{Bd{Ml}}{Bd{FdA@b}}}A@d}{{{Bd{j}}{Bd{FdA@b}}}A@d}{{{Bd{Gn}}{Bd{FdA@b}}}A@d}{{{Bd{G`}}{Bd{FdA@b}}}A@d}{{{Bd{Mn}}{Bd{FdA@b}}}A@d}{{{Bd{N`}}{Bd{FdA@b}}}A@d}{{{Bd{Dn}}{Bd{FdA@b}}}A@d}{{{Bd{E`}}{Bd{FdA@b}}}A@d}{{{Bd{Nb}}{Bd{FdA@b}}}A@d}{bA@j}{JbA@l}{cc{}}{A@nH`}1{A@`Hb}{AA`Hb}{AAbHb}{AAdHb}{AAfHb}{AAhHb}777777{HjHh}{HlHh}9{LbHh}:::{I`Hn}{GbHn}<<<<<<<<<{ClIh}{fIh}{AAjIh}{DbIh}{DdIh}{AAlIh}{AAnIh}{AB`Ih}{ABbIh}{ABdIh}{ABfIh}{ABhIh}{C`Ih}{ABjIh}{ABlIh}{D`Ih}{cc{}}{AdIh}{AlIh}{ABnIh}{AC`Ih}{ACbIh}{ACdIh}{ACfIh}{CbIh}{AChIh}{CdIh}{ACjIh}{AClIh}{ACnIh}{CfIh}{AD`Ih}{ADbIh}{ADdIh}{CnIh}{ChIh}{ADfIh}{CjIh}{ADhIh}{A`Ih}{cc{}}00000000000000000000000000000000000000{ADjIj}1{IlIj}{HbIj}3{ADjIl}44{DhJ`}{DjJ`}{DlJ`}77{HbDj}888{JfJd}{lJd}:::::{FfJl}{FjJl}<<{K`Jn}{EnJn}{KjJn}{KbJn}{EjJn}{KhJn}{cc{}}{KfJn}{KdJn}222222{ADlEj}{ADlEn}4444444{cLb{{ADn{Ah}}}}5{cAh{{ADn{Hb}}}}66666666666{bFh}{MjFh}8{MnFh}{GlFh}{MbFh}{FnFh}{MdFh}{G`Fh}{MfFh}{GnFh}{jFh}{EfFh}{MlFh}{MhFh}{cc{}}00000000000000000{A`Eh}{BnIn}{Lfd}{Lhd}{Fld}{{{Bd{Lb}}}{{d{{Bd{Hb}}}}}}{CdAE`}{MbAE`}{Ind}{JbAEb}{AfAEb}{B`AEb}{{{Bd{Hb}}{Bd{Fdc}}}NdAEd}{{{Bd{Hd}}{Bd{Fdc}}}NdAEd}{{{Bd{Bb}}{Bd{Fdc}}}NdAEd}{{{Bd{Bf}}{Bd{Fdc}}}NdAEd}{{{Bd{l}}{Bd{Fdc}}}NdAEd}{{{Bd{Gh}}{Bd{Fdc}}}NdAEd}{{{Bd{Hf}}{Bd{Fdc}}}NdAEd}{{{Bd{Hh}}{Bd{Fdc}}}NdAEd}{{{Bd{Hj}}{Bd{Fdc}}}NdAEd}{{{Bd{Hl}}{Bd{Fdc}}}NdAEd}{{{Bd{Bh}}{Bd{Fdc}}}NdAEd}{{{Bd{Hn}}{Bd{Fdc}}}NdAEd}{{{Bd{Gb}}{Bd{Fdc}}}NdAEd}{{{Bd{I`}}{Bd{Fdc}}}NdAEd}{{{Bd{Bl}}{Bd{Fdc}}}NdAEd}{{{Bd{Bn}}{Bd{Fdc}}}NdAEd}{{{Bd{Ib}}{Bd{Fdc}}}NdAEd}{{{Bd{Id}}{Bd{Fdc}}}NdAEd}{{{Bd{Gf}}{Bd{Fdc}}}NdAEd}{{{Bd{If}}{Bd{Fdc}}}NdAEd}{{{Bd{Ih}}{Bd{Fdc}}}NdAEd}{{{Bd{C`}}{Bd{Fdc}}}NdAEd}{{{Bd{A`}}{Bd{Fdc}}}NdAEd}{{{Bd{Al}}{Bd{Fdc}}}NdAEd}{{{Bd{Cb}}{Bd{Fdc}}}NdAEd}{{{Bd{Cd}}{Bd{Fdc}}}NdAEd}{{{Bd{Cf}}{Bd{Fdc}}}NdAEd}{{{Bd{Ch}}{Bd{Fdc}}}NdAEd}{{{Bd{Cj}}{Bd{Fdc}}}NdAEd}{{{Bd{Ad}}{Bd{Fdc}}}NdAEd}{{{Bd{Cl}}{Bd{Fdc}}}NdAEd}{{{Bd{Cn}}{Bd{Fdc}}}NdAEd}{{{Bd{f}}{Bd{Fdc}}}NdAEd}{{{Bd{D`}}{Bd{Fdc}}}NdAEd}{{{Bd{Db}}{Bd{Fdc}}}NdAEd}{{{Bd{Dd}}{Bd{Fdc}}}NdAEd}{{{Bd{Ij}}{Bd{Fdc}}}NdAEd}{{{Bd{Il}}{Bd{Fdc}}}NdAEd}{{{Bd{Df}}{Bd{Fdc}}}NdAEd}{{{Bd{In}}{Bd{Fdc}}}NdAEd}{{{Bd{J`}}{Bd{Fdc}}}NdAEd}{{{Bd{Dh}}{Bd{Fdc}}}NdAEd}{{{Bd{Dj}}{Bd{Fdc}}}NdAEd}{{{Bd{Dl}}{Bd{Fdc}}}NdAEd}{{{Bd{Jb}}{Bd{Fdc}}}NdAEd}{{{Bd{Jd}}{Bd{Fdc}}}NdAEd}{{{Bd{Jf}}{Bd{Fdc}}}NdAEd}{{{Bd{Jh}}{Bd{Fdc}}}NdAEd}{{{Bd{Jj}}{Bd{Fdc}}}NdAEd}{{{Bd{Jl}}{Bd{Fdc}}}NdAEd}{{{Bd{Fj}}{Bd{Fdc}}}NdAEd}{{{Bd{Ff}}{Bd{Fdc}}}NdAEd}{{{Bd{Jn}}{Bd{Fdc}}}NdAEd}{{{Bd{K`}}{Bd{Fdc}}}NdAEd}{{{Bd{Kb}}{Bd{Fdc}}}NdAEd}{{{Bd{Kd}}{Bd{Fdc}}}NdAEd}{{{Bd{Kf}}{Bd{Fdc}}}NdAEd}{{{Bd{Kh}}{Bd{Fdc}}}NdAEd}{{{Bd{Ej}}{Bd{Fdc}}}NdAEd}{{{Bd{En}}{Bd{Fdc}}}NdAEd}{{{Bd{Kj}}{Bd{Fdc}}}NdAEd}{{{Bd{Eb}}{Bd{Fdc}}}NdAEd}{{{Bd{Kl}}{Bd{Fdc}}}NdAEd}{{{Bd{Kn}}{Bd{Fdc}}}NdAEd}{{{Bd{L`}}{Bd{Fdc}}}NdAEd}{{{Bd{Lb}}{Bd{Fdc}}}NdAEd}{{{Bd{Ah}}{Bd{Fdc}}}NdAEd}{{{Bd{Aj}}{Bd{Fdc}}}NdAEd}{{{Bd{Ld}}{Bd{Fdc}}}NdAEd}{{{Bd{Af}}{Bd{Fdc}}}NdAEd}{{{Bd{Lf}}{Bd{Fdc}}}NdAEd}{{{Bd{Lh}}{Bd{Fdc}}}NdAEd}{{{Bd{Fl}}{Bd{Fdc}}}NdAEd}{{{Bd{Lj}}{Bd{Fdc}}}NdAEd}{{{Bd{B`}}{Bd{Fdc}}}NdAEd}{{{Bd{Ll}}{Bd{Fdc}}}NdAEd}{{{Bd{Ln}}{Bd{Fdc}}}NdAEd}{{{Bd{M`}}{Bd{Fdc}}}NdAEd}{{{Bd{Fh}}{Bd{Fdc}}}NdAEd}{{{Bd{Gl}}{Bd{Fdc}}}NdAEd}{{{Bd{b}}{Bd{Fdc}}}NdAEd}{{{Bd{Mb}}{Bd{Fdc}}}NdAEd}{{{Bd{Fn}}{Bd{Fdc}}}NdAEd}{{{Bd{Md}}{Bd{Fdc}}}NdAEd}{{{Bd{Mf}}{Bd{Fdc}}}NdAEd}{{{Bd{Ef}}{Bd{Fdc}}}NdAEd}{{{Bd{Mh}}{Bd{Fdc}}}NdAEd}{{{Bd{Mj}}{Bd{Fdc}}}NdAEd}{{{Bd{Ml}}{Bd{Fdc}}}NdAEd}{{{Bd{j}}{Bd{Fdc}}}NdAEd}{{{Bd{Gn}}{Bd{Fdc}}}NdAEd}{{{Bd{G`}}{Bd{Fdc}}}NdAEd}{{{Bd{Mn}}{Bd{Fdc}}}NdAEd}{{{Bd{N`}}{Bd{Fdc}}}NdAEd}{{{Bd{Dn}}{Bd{Fdc}}}NdAEd}{{{Bd{E`}}{Bd{Fdc}}}NdAEd}{{{Bd{Nb}}{Bd{Fdc}}}NdAEd}{lHb}{BhHb}{Bld}{BnHb}{DjHb}{DlHb}{AhHb}{LfHb}{LhHb}{FlHb}{FnAEf}{Lnd}{CfEh}{IlAEh}{LjAb}{bAb}{{}c{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{H`AEj}{{{Bd{H`}}}c{}}{H`c{}}{{{Bd{Hn}}}c{}}{Hnc{}}{{{Bd{FdHn}}}c{}}{{{Bd{Hn}}}Od}{{{Bd{Aj}}}Od}{{{Bd{Lb}}{Bd{c}}}OdOh}1{{{Bd{Hn}}}{{AEl{Bl}}}}{{{Bd{FdHn}}}{{AEn{Bl}}}}{Lbd}{C`Eh}{{{Bd{Hn}}}ADj}{GlIh}{Dhl}{Fjl}{jd}`{JbAb}{Jfd}{Ffd}{bd}`{ChJn}{Ind}{JbAF`}{AfAF`}{B`AF`}{CjEb}{MfEb}{{{Bd{FdIn}}}{{Bd{FdJj}}}}{CbIj}{DfIj}``{GhHh}{AdHb}{JfJh}{BlM`}{fd}{Mld}{jd}{N`d}{Dnd}{E`d}{GbAb}{{nc}H`AFb}{{{Bd{El}}n}Hb}{{{Bd{El}}n}l}{lDh}{ADlJn}{{{Bd{El}}n}K`}{{{Bd{{AFd{Nf}}}}n}Kb}{{{Bd{AFf}}n}Kd}{{Nfn}Kf}{{AFhn}Kh}{{{Bd{El}}n}Ej}{{{Bd{El}}n}En}{{Odn}Kj};{{ce}H`AFjAFb}{C`Kn}{DdL`}{LjNb}{bNb}{InAb}{I`AFl}{A`AFl}{AdAFl}{ClAFl}{DbAFl}{Jfd}{LjAFl}{LnAFl}{bAFl}{MhAFl}{MnAFl}``{AFn{{F`{c}}}AG`}{AGb{{F`{Hb}}}}{AGb{{F`{l}}}}{AGb{{F`{Hh}}}}{AGb{{F`{Hj}}}}{AGb{{F`{Hl}}}}{AGb{{F`{Bh}}}}{AGb{{F`{Gb}}}}{AGb{{F`{I`}}}}{AGb{{F`{Bn}}}}{AGb{{F`{Ih}}}}{AGb{{F`{Ch}}}}{AGb{{F`{Cj}}}}{AGb{{F`{Cn}}}}{AGb{{F`{D`}}}}{AGb{{F`{Ij}}}}{AGb{{F`{Il}}}}{AGb{{F`{Df}}}}{AGb{{F`{In}}}}{AGb{{F`{J`}}}}{AGb{{F`{Dh}}}}{AGb{{F`{Dj}}}}{AGb{{F`{Dl}}}}{AGb{{F`{Jb}}}}{AGb{{F`{Jd}}}}{AGb{{F`{Jf}}}}{AGb{{F`{Jh}}}}{AGb{{F`{Jj}}}}{AGb{{F`{Jl}}}}{AGb{{F`{Jn}}}}{{{Bd{K`}}}{{F`{c}}}AG`}{AGb{{F`{K`}}}}{AGb{{F`{Kb}}}}{AGb{{F`{Kd}}}}{AGb{{F`{Kf}}}}{AGb{{F`{Kh}}}}{AGb{{F`{Ej}}}}{AGb{{F`{En}}}}{AGb{{F`{Kj}}}}{AGb{{F`{Eb}}}}{AGb{{F`{Kn}}}}{AGb{{F`{L`}}}}{AGb{{F`{Lb}}}}{AGb{{F`{Ah}}}}{AGb{{F`{Ld}}}}{AGb{{F`{Af}}}}{AGb{{F`{Lj}}}}{AGb{{F`{Ll}}}}{AGb{{F`{Fh}}}}{AGb{{F`{Gl}}}}{AGb{{F`{b}}}}{AGb{{F`{Mb}}}}{AGb{{F`{Fn}}}}{AGb{{F`{Md}}}}{AGb{{F`{Mf}}}}{AGb{{F`{Ef}}}}{AGb{{F`{Mh}}}}{AGb{{F`{Mj}}}}{AGb{{F`{Ml}}}}{AGb{{F`{j}}}}{AGb{{F`{Gn}}}}{AGb{{F`{G`}}}}{AGb{{F`{Mn}}}}{AGb{{F`{N`}}}}{AGb{{F`{Dn}}}}{AGb{{F`{Nb}}}}{AEj{{F`{c}}}AG`}{AGb{{F`{Hb}}}}{{{Bd{Gh}}}{{F`{c}}}AG`}{{{Bd{Hj}}}{{F`{c}}}AG`}{{{Bd{Gh}}c}F`AGd}{{{Bd{Hj}}c}F`AGd}{{{Bd{Eb}}}{{F`{c}}}AG`}{{{Bd{Eb}}c}F`AGd}{AGb{{F`{{Bj{Gh}}}}}}`{AGb{{F`{Lb}}}}{AGb{{F`{Bl}}}}{{{Bd{Gh}}c}{{F`{Nd}}}{{AGj{AGf}{{AGh{{F`{Nd}}}}}}}}{{{Bd{Hj}}c}{{F`{Nd}}}{{AGj{AGf}{{AGh{{F`{Nd}}}}}}}}4``{{{Bd{El}}}{{F`{c}}}AG`}3{{{Bd{K`}}c}F`AGd}{{{Bd{Hb}}{Bd{Hb}}}{{d{Nh}}}}{{{Bd{l}}{Bd{l}}}{{d{Nh}}}}{{{Bd{Gh}}}{{Bd{Lb}}}}{{{Bd{Hh}}}{{Bd{Lb}}}}{HjLb}{HlLb}{CnLb}{D`Lb}{JfLb}{EbLb}{LnEh}{MjLb}{AGbOd}{B`ADj}{GhAGl}{JjAb}{LnAGn}`{Cnd}{D`d}{Mjd}{AdEh}{{{Bd{Lb}}}{{F`{{Bd{Hb}}}}}}{{{Bd{Hh}}}{{F`{{Bd{Hj}}}}}}{{{Bd{Hh}}}{{F`{{Bd{Hl}}}}}}{{{Bd{Hh}}}{{F`{{Bd{Lb}}}}}}6{C`Eh}{LbAb}{Idd}{GlAH`}{{{Bd{FdHb}}n}Nd}{{{Bd{Fdl}}n}Nd}{{{Bd{FdJn}}n}Nd}{{{Bd{FdK`}}n}Nd}{{{Bd{FdKb}}n}Nd}{{{Bd{FdKd}}n}Nd}{{{Bd{FdKf}}n}Nd}{{{Bd{FdKh}}n}Nd}{{{Bd{FdEj}}n}Nd}{{{Bd{FdEn}}n}Nd}{{{Bd{FdKj}}n}Nd}{{{Bd{H`}}}n}{Bdn}{{{Bd{Hb}}}n}{{{Bd{Hb}}}{{d{n}}}}222{{{Bd{l}}}n}3333333333333333333333333333333333333333333333333333{{{Bd{Ij}}}{{d{n}}}}{{{Bd{Il}}}{{d{n}}}}5555555555555555{{{Bd{Jn}}}n}6{{{Bd{K`}}}n}{{{Bd{Kb}}}n}88{{{Bd{Kd}}}n}{{{Bd{Kf}}}n}::{{{Bd{Kh}}}n};{{{Bd{Ej}}}n}<{{{Bd{En}}}n}={{{Bd{Kj}}}n}>{{{Bd{Kl}}}{{Bd{AHb}}}}???????????{{{Bd{B`}}}n}{Bdn}00000000000000000000{Iln}{Kjn}`{{{Bd{In}}}{{AHd{HdBb{d{{Bd{Jj}}}}}}}}{MlAHf}{IdAHh}{GhHf}{{{Bd{Jn}}}{{Bd{El}}}}{{{Bd{K`}}}{{Bd{El}}}}{{{Bd{Kb}}}{{Bd{El}}}}{{{Bd{Kd}}}{{Bd{El}}}}{{{Bd{Kf}}}{{Bd{El}}}}{{{Bd{Kh}}}{{Bd{El}}}}{{{Bd{Ej}}}{{Bd{El}}}}{{{Bd{En}}}{{Bd{El}}}}{{{Bd{H`}}}AEj}{Bdc{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{BdAHj}0000{{{Bd{Hb}}{Bd{FdAEj}}}Nd}{{{Bd{Hd}}{Bd{FdAEj}}}Nd}{{{Bd{Bb}}{Bd{FdAEj}}}Nd}{{{Bd{Bf}}{Bd{FdAEj}}}Nd}{{{Bd{l}}{Bd{FdAEj}}}Nd}{{{Bd{Gh}}{Bd{FdAEj}}}Nd}{{{Bd{Hh}}{Bd{FdAEj}}}Nd}{{{Bd{Hj}}{Bd{FdAEj}}}Nd}{{{Bd{Hl}}{Bd{FdAEj}}}Nd}{{{Bd{Bh}}{Bd{FdAEj}}}Nd}{{{Bd{Hn}}{Bd{FdAEj}}}Nd}{{{Bd{Gb}}{Bd{FdAEj}}}Nd}{{{Bd{I`}}{Bd{FdAEj}}}Nd}{{{Bd{Bl}}{Bd{FdAEj}}}Nd}{{{Bd{Bn}}{Bd{FdAEj}}}Nd}{{{Bd{Ih}}{Bd{FdAEj}}}Nd}{{{Bd{AAn}}{Bd{FdAEj}}}Nd}{{{Bd{AB`}}{Bd{FdAEj}}}Nd}{{{Bd{ABb}}{Bd{FdAEj}}}Nd}{{{Bd{ABh}}{Bd{FdAEj}}}Nd}{{{Bd{C`}}{Bd{FdAEj}}}Nd}{{{Bd{ABj}}{Bd{FdAEj}}}Nd}{{{Bd{ABl}}{Bd{FdAEj}}}Nd}{{{Bd{A`}}{Bd{FdAEj}}}Nd}{{{Bd{Al}}{Bd{FdAEj}}}Nd}{{{Bd{ABn}}{Bd{FdAEj}}}Nd}{{{Bd{AC`}}{Bd{FdAEj}}}Nd}{{{Bd{ACf}}{Bd{FdAEj}}}Nd}{{{Bd{Cb}}{Bd{FdAEj}}}Nd}{{{Bd{ACh}}{Bd{FdAEj}}}Nd}{{{Bd{Cd}}{Bd{FdAEj}}}Nd}{{{Bd{ACn}}{Bd{FdAEj}}}Nd}{{{Bd{Cf}}{Bd{FdAEj}}}Nd}{{{Bd{AD`}}{Bd{FdAEj}}}Nd}{{{Bd{ADb}}{Bd{FdAEj}}}Nd}{{{Bd{Ch}}{Bd{FdAEj}}}Nd}{{{Bd{ADf}}{Bd{FdAEj}}}Nd}{{{Bd{Cj}}{Bd{FdAEj}}}Nd}{{{Bd{ADh}}{Bd{FdAEj}}}Nd}{{{Bd{Ad}}{Bd{FdAEj}}}Nd}{{{Bd{Cl}}{Bd{FdAEj}}}Nd}{{{Bd{Cn}}{Bd{FdAEj}}}Nd}{{{Bd{ACl}}{Bd{FdAEj}}}Nd}{{{Bd{AAj}}{Bd{FdAEj}}}Nd}{{{Bd{f}}{Bd{FdAEj}}}Nd}{{{Bd{ACb}}{Bd{FdAEj}}}Nd}{{{Bd{ADd}}{Bd{FdAEj}}}Nd}{{{Bd{D`}}{Bd{FdAEj}}}Nd}{{{Bd{ABd}}{Bd{FdAEj}}}Nd}{{{Bd{AAl}}{Bd{FdAEj}}}Nd}{{{Bd{Db}}{Bd{FdAEj}}}Nd}{{{Bd{Dd}}{Bd{FdAEj}}}Nd}{{{Bd{ABf}}{Bd{FdAEj}}}Nd}{{{Bd{ACd}}{Bd{FdAEj}}}Nd}{{{Bd{ACj}}{Bd{FdAEj}}}Nd}{{{Bd{Ij}}{Bd{FdAEj}}}Nd}{{{Bd{Il}}{Bd{FdAEj}}}Nd}{{{Bd{Df}}{Bd{FdAEj}}}Nd}{{{Bd{In}}{Bd{FdAEj}}}Nd}{{{Bd{J`}}{Bd{FdAEj}}}Nd}{{{Bd{Dh}}{Bd{FdAEj}}}Nd}{{{Bd{Dj}}{Bd{FdAEj}}}Nd}{{{Bd{Dl}}{Bd{FdAEj}}}Nd}{{{Bd{Jb}}{Bd{FdAEj}}}Nd}{{{Bd{Jd}}{Bd{FdAEj}}}Nd}{{{Bd{Jf}}{Bd{FdAEj}}}Nd}{{{Bd{Jh}}{Bd{FdAEj}}}Nd}{{{Bd{Jj}}{Bd{FdAEj}}}Nd}{{{Bd{Jl}}{Bd{FdAEj}}}Nd}{{{Bd{Fj}}{Bd{FdAEj}}}Nd}{{{Bd{Ff}}{Bd{FdAEj}}}Nd}{{{Bd{Jn}}{Bd{FdAEj}}}Nd}{{{Bd{K`}}{Bd{FdAEj}}}Nd}{{{Bd{Kb}}{Bd{FdAEj}}}Nd}{{{Bd{Kd}}{Bd{FdAEj}}}Nd}{{{Bd{Kf}}{Bd{FdAEj}}}Nd}{{{Bd{Kh}}{Bd{FdAEj}}}Nd}{{{Bd{Ej}}{Bd{FdAEj}}}Nd}{{{Bd{En}}{Bd{FdAEj}}}Nd}{{{Bd{Kj}}{Bd{FdAEj}}}Nd}{{{Bd{Eb}}{Bd{FdAEj}}}Nd}{{{Bd{Kn}}{Bd{FdAEj}}}Nd}{{{Bd{L`}}{Bd{FdAEj}}}Nd}{{{Bd{Lb}}{Bd{FdAEj}}}Nd}{{{Bd{Ah}}{Bd{FdAEj}}}Nd}{{{Bd{Aj}}{Bd{FdAEj}}}Nd}{{{Bd{Ld}}{Bd{FdAEj}}}Nd}{{{Bd{Af}}{Bd{FdAEj}}}Nd}{{{Bd{Lf}}{Bd{FdAEj}}}Nd}{{{Bd{Lh}}{Bd{FdAEj}}}Nd}{{{Bd{Fl}}{Bd{FdAEj}}}Nd}{{{Bd{Lj}}{Bd{FdAEj}}}Nd}{{{Bd{Ll}}{Bd{FdAEj}}}Nd}{{{Bd{Ln}}{Bd{FdAEj}}}Nd}{{{Bd{Fh}}{Bd{FdAEj}}}Nd}{{{Bd{Gl}}{Bd{FdAEj}}}Nd}{{{Bd{b}}{Bd{FdAEj}}}Nd}{{{Bd{Mb}}{Bd{FdAEj}}}Nd}{{{Bd{Fn}}{Bd{FdAEj}}}Nd}{{{Bd{Md}}{Bd{FdAEj}}}Nd}{{{Bd{Mf}}{Bd{FdAEj}}}Nd}{{{Bd{Ef}}{Bd{FdAEj}}}Nd}{{{Bd{Mh}}{Bd{FdAEj}}}Nd}{{{Bd{Mj}}{Bd{FdAEj}}}Nd}{{{Bd{Ml}}{Bd{FdAEj}}}Nd}{{{Bd{j}}{Bd{FdAEj}}}Nd}{{{Bd{Gn}}{Bd{FdAEj}}}Nd}{{{Bd{G`}}{Bd{FdAEj}}}Nd}{{{Bd{Mn}}{Bd{FdAEj}}}Nd}{{{Bd{N`}}{Bd{FdAEj}}}Nd}{{{Bd{Dn}}{Bd{FdAEj}}}Nd}{{{Bd{E`}}{Bd{FdAEj}}}Nd}{{{Bd{Nb}}{Bd{FdAEj}}}Nd}`{{{Bd{K`}}}ADl}{{{Bd{Kb}}}ADl}{{{Bd{Kd}}}ADl}{{{Bd{Kf}}}ADl}{{{Bd{Kh}}}ADl}{{{Bd{Ej}}}ADl}{{{Bd{En}}}ADl}{{{Bd{Kj}}}Hb}{HjAEj}{EbAEj}{c{{A@h{e}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{}{{A@h{c}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{Add}{BlFh}{AlEh}{DlFh}{LfFh}{B`Eh}{DnFh}{BdAHl}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000``{MdAAh}{IfAHn}{I`Ab}{{{Bd{Hb}}}Hb}{bd}{{{Bd{K`}}}AHj}{{{Bd{Kb}}}{{Bj{Nf}}}}{{{Bd{Kd}}}AI`}{{{Bd{Kf}}}Nf}{{{Bd{Kh}}}AFh}{{{Bd{Kj}}}Od}{HlIh}{KjOd}{LhIh}9{GfAb}{BlLl}{BnLl}`{Ind}{JjAIb}{AGb{{F`{Fh}}}}{AGb{{F`{Fn}}}}{AGb{{F`{G`}}}}{AGb{{F`{Nb}}}}``{AId{{d{{AHd{AIdAIfAHbAId}}}}}}{{{Bd{AIh}}}AId}{Bd{{Bd{c}}}{}}0{{{Bd{Fd}}}{{Bd{Fdc}}}{}}0{{{Bd{AId}}}AId}{{Bd{Bd{Fdc}}}Nd{}}{{BdNf}Nd}{{}AId}{AIdOd}{{{Bd{AId}}{Bd{AId}}}Od}{cc{}}0{{AIdAIf}{{d{{AHd{AIdAHbAId}}}}}}{AId{{d{{AHd{HbAId}}}}}}{{}c{}}0{AId{{d{{AHd{lAId}}}}}}{AId{{d{{AHd{ADlAId}}}}}}{AFnAIh}{AEjAIh}{{{Bd{AId}}{Bd{AId}}}{{d{Nh}}}}{AId{{d{{AHd{AIjAId}}}}}}{AIdn}{Bdc{}}{AIdAEj}{AId{{d{{AHd{AIlAId}}}}}}{c{{A@h{e}}}{}{}}0{{}{{A@h{c}}}{}}0{BdAHl}0`{AGb{{F`{AIn}}}}`{{{Bd{AIn}}}Hb}`{Bd{{Bd{c}}}{}}{{{Bd{Fd}}}{{Bd{Fdc}}}{}}{{{Bd{AGf}}c}H`AFb}{cc{}}{AGfAGb}{{}c{}}{{{Bd{AGf}}c}{{F`{Nd}}}{{AGj{AGf}{{AGh{{F`{Nd}}}}}}}}{c{{`{{AGd{}{{AGh{Nd}}}}}}}{{AGj{AGf}{{AGh{{F`{Nd}}}}}}}}{AGfLb}=<;{{{Bd{AGf}}}{{F`{AGb}}}}``````````````{{{Bd{AJ`}}{Bd{AJ`}}}Nd}:::::99999{{{Bd{AJ`}}{AJb{AGb}{{AGh{{F`{c}}}}}}}{{F`{c}}}{}}{{{Bd{AJd}}}AJd}{{{Bd{AJf}}}AJf}{{{Bd{AJh}}}AJh}{{Bd{Bd{Fdc}}}Nd{}}00{{BdNf}Nd}00{{{Bd{AJ`}}}AId}{{{Bd{AJf}}}{{Bd{c}}}{}}`{{}{{Bd{El}}}}{{{Bd{FdAJ`}}}Nd}{{{Bd{AJh}}{Bd{AJh}}}Od}{AJjH`}{{{Bd{AJ`}}c}H`AFb}{{AJfc}H`AFb}{{{Bd{AJ`}}{Bd{FdA@b}}}A@d}0{{{Bd{AJh}}{Bd{FdA@b}}}A@d}{{{Bd{AJ`}}}AJ`}{cc{}}0000{{{Bd{AJh}}{Bd{Fdc}}}NdAEd}{{}c{}}0000{{{Bd{AJ`}}}Od}{{{Bd{AJ`}}}AJj}{AGb{{F`{AG`}}}}{{{Bd{AJ`}}}{{F`{c}}}AG`}{{{AGd{}{{AGh{c}}}}AFn}{{F`{c}}}{}}{AGb{{F`{AJh}}}}{{{AGd{}{{AGh{c}}}}AEj}{{F`{c}}}{}}{{{Bd{AJ`}}}{{F`{{AHd{AIfAHbAJ`}}}}}}{{{AGd{}{{AGh{c}}}}{Bd{El}}}{{F`{c}}}{}}{{{Bd{AJ`}}{AJb{AGb}{{AGh{{F`{c}}}}}}e}{{F`{{Ab{c}}}}}{}AJl}{{{Bd{AJj}}c}OdAJl}{AIdOd}{{{Bd{AJ`}}c}OdAJl}00{{{Bd{AJ`}}}n}{Bdn}{{{Bd{AJ`}}e}{{F`{c}}}{}{{AJn{AJf}{{AGh{{F`{{AHd{cAId}}}}}}}}}}{Bdc{}}00{BdAHj}{{{Bd{AJh}}{Bd{FdAEj}}}Nd}{c{{A@h{e}}}{}{}}0000{{}{{A@h{c}}}{}}0000{BdAHl}0000``{{{Bd{AK`}}{Bd{AK`}}}Nd}{{{Bd{AKb}}}{{F`{{AHd{AIfAHbAJ`}}}}}}``````````{Bd{{Bd{c}}}{}}0000000{{{Bd{Fd}}}{{Bd{Fdc}}}{}}0000000{{{Bd{Fd{Ab{ce}}}}}Nd{}{}}{{{Bd{{Ab{ce}}}}}{{Ab{ce}}}AKdAKd}{{{Bd{{AKf{ce}}}}}{{AKf{ce}}}{}{}}{{{Bd{{AKh{ce}}}}}{{AKh{ce}}}AKdAKd}{{{Bd{{AKj{c}}}}}{{AKj{c}}}AKd}{{{Bd{{AEl{c}}}}}{{AEl{c}}}{}}{{{Bd{{AKl{ce}}}}}{{AKl{ce}}}AKdAKd}{{{Bd{Fd{Ab{ce}}}}{Bd{{Ab{ce}}}}}NdAKdAKd}{{Bd{Bd{Fdc}}}Nd{}}00000{{BdNf}Nd}00000{{{AKl{{Bd{c}}{Bd{e}}}}}{{AKl{ce}}}AKdAKd}{{}{{Ab{ce}}}{}{}}{{{Bd{{Ab{ce}}}}}Od{}{}}{{{Bd{{Ab{ce}}}}{Bd{{Ab{ce}}}}}OdAKnAKn}{{{Bd{Fd{Ab{ce}}}}g}Nd{}AL`{{On{}{{Ol{c}}}}}}{{{Bd{Fd{Ab{ce}}}}g}Nd{}AL`{{On{}{{Ol{{AKl{ce}}}}}}}}{{{Bd{{Ab{ce}}}}}{{d{{Bd{c}}}}}{}{}}{{{Bd{Fd{Ab{ce}}}}}{{d{{Bd{Fdc}}}}}{}{}}{{{Bd{{Ab{ce}}}}{Bd{FdA@b}}}A@dALbALb}{cc{}}0000000{g{{Ab{ce}}}{}{}{{On{}{{Ol{{AKl{ce}}}}}}}}{e{{Ab{cg}}}{}{{On{}{{Ol{c}}}}}AL`}{{{Bd{{Ab{ce}}}}ADj}{{d{{Bd{c}}}}}{}{}}{{{Bd{Fd{Ab{ce}}}}ADj}{{d{{Bd{Fdc}}}}}{}{}}{{{Bd{{Ab{ce}}}}{Bd{Fdg}}}NdALdALdAEd}{{{Bd{{Ab{ce}}}}ADj}{{Bd{g}}}{}{}{}}{{{Bd{Fd{Ab{ce}}}}ADj}{{Bd{Fdg}}}{}{}{}}{{{Bd{Fd{Ab{ce}}}}ADjc}Nd{}AL`}{{}c{}}0000000{{{Bd{Fd{Ab{ce}}}}}g{}{}{}}{{{Ab{ce}}}g{}{}{}}{{{Bd{{Ab{ce}}}}}g{}{}{}}{{}c{}}00000{{{Ab{ce}}}{{AKh{ce}}}{}{}}{{{AKl{ce}}}{{AHd{c{d{e}}}}}{}{}}{{{AKl{ce}}}c{}{}}{{{Bd{{Ab{ce}}}}}Od{}{}}{{{Bd{{Ab{ce}}}}}{{AEl{c}}}{}{}}{{{Bd{Fd{Ab{ce}}}}}{{AEn{c}}}{}{}}{{{Bd{{Ab{ce}}}}}{{d{{Bd{c}}}}}{}{}}{{{Bd{Fd{Ab{ce}}}}}{{d{{Bd{Fdc}}}}}{}{}}{{{Bd{{Ab{ce}}}}}ADj{}{}}{{{Bd{{AKf{ce}}}}}ADj{}{}}{{{Bd{{ALf{ce}}}}}ADj{}{}}{{{Bd{{AKh{ce}}}}}ADj{}{}}{{{Bd{{AKj{c}}}}}ADj{}}{{{Bd{{AEl{c}}}}}ADj{}}{{{Bd{{AEn{c}}}}}ADj{}}{{}{{Ab{ce}}}{}{}}{{c{d{e}}}{{AKl{ce}}}{}{}}{{{Bd{Fd{AKf{ce}}}}}{{d{g}}}{}{}{}}{{{Bd{Fd{ALf{ce}}}}}{{d{g}}}{}{}{}}{{{Bd{Fd{AKh{ce}}}}}{{d{g}}}{}{}{}}{{{Bd{Fd{AKj{c}}}}}{{d{e}}}{}{}}{{{Bd{Fd{AEl{c}}}}}{{d{e}}}{}{}}{{{Bd{Fd{AEn{c}}}}}{{d{e}}}{}{}}543210{{{Bd{{Ab{ce}}}}}{{AKf{ce}}}{}{}}{{{Bd{Fd{Ab{ce}}}}}{{ALf{ce}}}{}{}}{AGb{{F`{{Ab{ce}}}}}AG`{ALhAG`}}{{AGb{AJb{AGb}{{AGh{{F`{c}}}}}}}{{F`{{Ab{ce}}}}}{}{ALhAG`}}{AGb{{F`{{Ab{ce}}}}}AG`AG`}{{AGb{AJb{AGb}{{AGh{{F`{c}}}}}}}{{F`{{Ab{ce}}}}}{}AG`}{{{Bd{Fd{Ab{ce}}}}}{{d{{AKl{ce}}}}}{}{}}{{{Bd{Fd{Ab{ce}}}}}{{d{e}}}{}{}}{{{Bd{{AKl{ce}}}}}{{d{{Bd{e}}}}}{}{}}{{{Bd{Fd{AKl{ce}}}}}{{d{{Bd{Fde}}}}}{}{}}{{{Bd{Fd{Ab{ce}}}}c}Nd{}AL`}{{{Bd{Fd{Ab{ce}}}}e}Nd{}{}}{{{Bd{Fd{Ab{ce}}}}c}Nd{}{}}{{{Bd{{AKf{ce}}}}}{{AHd{ADj{d{ADj}}}}}{}{}}{{{Bd{{ALf{ce}}}}}{{AHd{ADj{d{ADj}}}}}{}{}}{{{Bd{{AKh{ce}}}}}{{AHd{ADj{d{ADj}}}}}{}{}}{{{Bd{{AKj{c}}}}}{{AHd{ADj{d{ADj}}}}}{}}{{{Bd{{AEl{c}}}}}{{AHd{ADj{d{ADj}}}}}{}}{{{Bd{{AEn{c}}}}}{{AHd{ADj{d{ADj}}}}}{}}{Bdn}0{Bdc{}}00000{{{Bd{{Ab{ce}}}}{Bd{FdAEj}}}NdAFjAFj}{{{Bd{{AKl{ce}}}}{Bd{FdAEj}}}NdAFjAFj}{{{Bd{{Ab{ce}}}}}Od{}{}}{c{{A@h{e}}}{}{}}0000000{{}{{A@h{c}}}{}}0000000{BdAHl}0000000{{{Bd{{AKl{ce}}}}}{{Bd{c}}}{}{}}{{{Bd{Fd{AKl{ce}}}}}{{Bd{Fdc}}}{}{}}`{{{Bd{ALj}}}n}`````````````````````````````````````````````````````````````````````````````````````````````````````````{Bd{{Bd{c}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{Fd}}}{{Bd{Fdc}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{AE`}}}AE`}{{{Bd{AAh}}}AAh}{{{Bd{ALl}}}ALl}{{{Bd{An}}}An}{{{Bd{ALn}}}ALn}{{{Bd{AM`}}}AM`}{{{Bd{AMb}}}AMb}{{{Bd{AMd}}}AMd}{{{Bd{AMf}}}AMf}{{{Bd{AMh}}}AMh}{{{Bd{Nl}}}Nl}{{{Bd{AMj}}}AMj}{{{Bd{AAf}}}AAf}{{{Bd{AMl}}}AMl}{{{Bd{AMn}}}AMn}{{{Bd{AN`}}}AN`}{{{Bd{ANb}}}ANb}{{{Bd{Ob}}}Ob}{{{Bd{A@`}}}A@`}{{{Bd{ANd}}}ANd}{{{Bd{A@j}}}A@j}{{{Bd{A@l}}}A@l}{{{Bd{ANf}}}ANf}{{{Bd{AEf}}}AEf}{{{Bd{ANh}}}ANh}{{{Bd{ANj}}}ANj}{{{Bd{ANl}}}ANl}{{{Bd{ANn}}}ANn}{{{Bd{AO`}}}AO`}{{{Bd{AOb}}}AOb}{{{Bd{AOd}}}AOd}{{{Bd{AOf}}}AOf}{{{Bd{AOh}}}AOh}{{{Bd{AOj}}}AOj}{{{Bd{AGn}}}AGn}{{{Bd{AOl}}}AOl}{{{Bd{AOn}}}AOn}{{{Bd{B@`}}}B@`}{{{Bd{AA`}}}AA`}{{{Bd{AAb}}}AAb}{{{Bd{B@b}}}B@b}{{{Bd{AHh}}}AHh}{{{Bd{AAd}}}AAd}{{{Bd{B@d}}}B@d}{{{Bd{B@f}}}B@f}{{{Bd{B@h}}}B@h}{{{Bd{B@j}}}B@j}{{{Bd{AHn}}}AHn}{{{Bd{B@l}}}B@l}{{{Bd{B@n}}}B@n}{{{Bd{BA`}}}BA`}{{{Bd{BAb}}}BAb}{{{Bd{AIb}}}AIb}{{{Bd{BAd}}}BAd}{{{Bd{BAf}}}BAf}{{{Bd{h}}}h}{{{Bd{BAh}}}BAh}{{{Bd{BAj}}}BAj}{{{Bd{BAl}}}BAl}{{{Bd{BAn}}}BAn}{{{Bd{BB`}}}BB`}{{{Bd{Nj}}}Nj}{{{Bd{BBb}}}BBb}{{{Bd{BBd}}}BBd}{{{Bd{Nn}}}Nn}{{{Bd{BBf}}}BBf}{{{Bd{O`}}}O`}{{{Bd{BBh}}}BBh}{{{Bd{Oj}}}Oj}{{{Bd{BBj}}}BBj}{{{Bd{BBl}}}BBl}{{{Bd{BBn}}}BBn}{{{Bd{AEb}}}AEb}{{{Bd{BC`}}}BC`}{{{Bd{BCb}}}BCb}{{{Bd{AF`}}}AF`}{{{Bd{BCd}}}BCd}{{{Bd{BCf}}}BCf}{{{Bd{BCh}}}BCh}{{{Bd{Ed}}}Ed}{{{Bd{BCj}}}BCj}{{{Bd{BCl}}}BCl}{{{Bd{BCn}}}BCn}{{{Bd{BD`}}}BD`}{{{Bd{BDb}}}BDb}{{{Bd{BDd}}}BDd}{{{Bd{BDf}}}BDf}{{{Bd{BDh}}}BDh}{{{Bd{AGl}}}AGl}{{{Bd{BDj}}}BDj}{{{Bd{BDl}}}BDl}{{{Bd{AH`}}}AH`}{{{Bd{BDn}}}BDn}{{{Bd{BE`}}}BE`}{{{Bd{BEb}}}BEb}{{{Bd{BEd}}}BEd}{{{Bd{BEf}}}BEf}{{{Bd{BEh}}}BEh}{{{Bd{AHf}}}AHf}{{{Bd{BEj}}}BEj}{{{Bd{BEl}}}BEl}{{{Bd{Gd}}}Gd}{{{Bd{Gj}}}Gj}{{{Bd{AFl}}}AFl}{{Bd{Bd{Fdc}}}Nd{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{BdNf}Nd}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{}AE`}{{}AAh}{{}ALl}{{}An}{{}ALn}{{}AM`}{{}AMb}{{}AMd}{{}AMf}{{}AMh}{{}Nl}{{}AMj}{{}AAf}{{}AMl}{{}AMn}{{}AN`}{{}ANb}{{}Ob}{{}A@`}{{}ANd}{{}A@j}{{}A@l}{{}ANf}{{}AEf}{{}ANh}{{}ANj}{{}ANl}{{}ANn}{{}AO`}{{}AOb}{{}AOd}{{}AOf}{{}AOh}{{}AOj}{{}AGn}{{}AOl}{{}AOn}{{}B@`}{{}AA`}{{}AAb}{{}B@b}{{}AHh}{{}AAd}{{}B@d}{{}B@f}{{}B@h}{{}B@j}{{}AHn}{{}B@l}{{}B@n}{{}BA`}{{}BAb}{{}AIb}{{}BAd}{{}BAf}{{}h}{{}BAh}{{}BAj}{{}BAl}{{}BAn}{{}BB`}{{}Nj}{{}BBb}{{}BBd}{{}Nn}{{}BBf}{{}O`}{{}BBh}{{}Oj}{{}BBj}{{}BBl}{{}BBn}{{}AEb}{{}BC`}{{}BCb}{{}AF`}{{}BCd}{{}BCf}{{}BCh}{{}Ed}{{}BCj}{{}BCl}{{}BCn}{{}BD`}{{}BDb}{{}BDd}{{}BDf}{{}BDh}{{}AGl}{{}BDj}{{}BDl}{{}AH`}{{}BDn}{{}BE`}{{}BEb}{{}BEd}{{}BEf}{{}BEh}{{}AHf}{{}BEj}{{}BEl}{{}Gd}{{}Gj}{{}AFl}{{{Bd{AAh}}}{{Bd{c}}}{}}{{{Bd{h}}}{{Bd{c}}}{}}{{{Bd{BAl}}}{{Bd{c}}}{}}{{{Bd{BAn}}}{{Bd{c}}}{}}{{{Bd{Nj}}}{{Bd{c}}}{}}{{{Bd{BBb}}}{{Bd{c}}}{}}{{{Bd{BBd}}}{{Bd{c}}}{}}{{{Bd{Nn}}}{{Bd{c}}}{}}{{{Bd{Oj}}}{{Bd{c}}}{}}{{{Bd{AEb}}}{{Bd{c}}}{}}{{{Bd{AF`}}}{{Bd{c}}}{}}{{{Bd{BCd}}}{{Bd{c}}}{}}{{{Bd{Ed}}}{{Bd{c}}}{}}{{{Bd{BCj}}}{{Bd{c}}}{}}{{{Bd{BDb}}}{{Bd{c}}}{}}{{{Bd{BDf}}}{{Bd{c}}}{}}{{{Bd{AGl}}}{{Bd{c}}}{}}{{{Bd{BDj}}}{{Bd{c}}}{}}{{{Bd{AH`}}}{{Bd{c}}}{}}{{{Bd{BEf}}}{{Bd{c}}}{}}{{{Bd{AHf}}}{{Bd{c}}}{}}{{{Bd{BEl}}}{{Bd{c}}}{}}{{{Bd{FdAAh}}}{{Bd{Fdc}}}{}}{{{Bd{Fdh}}}{{Bd{Fdc}}}{}}{{{Bd{FdBAl}}}{{Bd{Fdc}}}{}}{{{Bd{FdBAn}}}{{Bd{Fdc}}}{}}{{{Bd{FdNj}}}{{Bd{Fdc}}}{}}{{{Bd{FdBBb}}}{{Bd{Fdc}}}{}}{{{Bd{FdBBd}}}{{Bd{Fdc}}}{}}{{{Bd{FdNn}}}{{Bd{Fdc}}}{}}{{{Bd{FdOj}}}{{Bd{Fdc}}}{}}{{{Bd{FdAEb}}}{{Bd{Fdc}}}{}}{{{Bd{FdAF`}}}{{Bd{Fdc}}}{}}{{{Bd{FdBCd}}}{{Bd{Fdc}}}{}}{{{Bd{FdEd}}}{{Bd{Fdc}}}{}}{{{Bd{FdBCj}}}{{Bd{Fdc}}}{}}{{{Bd{FdBDb}}}{{Bd{Fdc}}}{}}{{{Bd{FdBDf}}}{{Bd{Fdc}}}{}}{{{Bd{FdAGl}}}{{Bd{Fdc}}}{}}{{{Bd{FdBDj}}}{{Bd{Fdc}}}{}}{{{Bd{FdAH`}}}{{Bd{Fdc}}}{}}{{{Bd{FdBEf}}}{{Bd{Fdc}}}{}}{{{Bd{FdAHf}}}{{Bd{Fdc}}}{}}{{{Bd{FdBEl}}}{{Bd{Fdc}}}{}}{{{Bd{AE`}}{Bd{AE`}}}Od}{{{Bd{AAh}}{Bd{AAh}}}Od}{{{Bd{ALl}}{Bd{ALl}}}Od}{{{Bd{An}}{Bd{An}}}Od}{{{Bd{ALn}}{Bd{ALn}}}Od}{{{Bd{AM`}}{Bd{AM`}}}Od}{{{Bd{AMb}}{Bd{AMb}}}Od}{{{Bd{AMd}}{Bd{AMd}}}Od}{{{Bd{AMf}}{Bd{AMf}}}Od}{{{Bd{AMh}}{Bd{AMh}}}Od}{{{Bd{Nl}}{Bd{Nl}}}Od}{{{Bd{AMj}}{Bd{AMj}}}Od}{{{Bd{AAf}}{Bd{AAf}}}Od}{{{Bd{AMl}}{Bd{AMl}}}Od}{{{Bd{AMn}}{Bd{AMn}}}Od}{{{Bd{AN`}}{Bd{AN`}}}Od}{{{Bd{ANb}}{Bd{ANb}}}Od}{{{Bd{Ob}}{Bd{Ob}}}Od}{{{Bd{A@`}}{Bd{A@`}}}Od}{{{Bd{ANd}}{Bd{ANd}}}Od}{{{Bd{A@j}}{Bd{A@j}}}Od}{{{Bd{A@l}}{Bd{A@l}}}Od}{{{Bd{ANf}}{Bd{ANf}}}Od}{{{Bd{AEf}}{Bd{AEf}}}Od}{{{Bd{ANh}}{Bd{ANh}}}Od}{{{Bd{ANj}}{Bd{ANj}}}Od}{{{Bd{ANl}}{Bd{ANl}}}Od}{{{Bd{ANn}}{Bd{ANn}}}Od}{{{Bd{AO`}}{Bd{AO`}}}Od}{{{Bd{AOb}}{Bd{AOb}}}Od}{{{Bd{AOd}}{Bd{AOd}}}Od}{{{Bd{AOf}}{Bd{AOf}}}Od}{{{Bd{AOh}}{Bd{AOh}}}Od}{{{Bd{AOj}}{Bd{AOj}}}Od}{{{Bd{AGn}}{Bd{AGn}}}Od}{{{Bd{AOl}}{Bd{AOl}}}Od}{{{Bd{AOn}}{Bd{AOn}}}Od}{{{Bd{B@`}}{Bd{B@`}}}Od}{{{Bd{AA`}}{Bd{AA`}}}Od}{{{Bd{AAb}}{Bd{AAb}}}Od}{{{Bd{B@b}}{Bd{B@b}}}Od}{{{Bd{AHh}}{Bd{AHh}}}Od}{{{Bd{AAd}}{Bd{AAd}}}Od}{{{Bd{B@d}}{Bd{B@d}}}Od}{{{Bd{B@f}}{Bd{B@f}}}Od}{{{Bd{B@h}}{Bd{B@h}}}Od}{{{Bd{B@j}}{Bd{B@j}}}Od}{{{Bd{AHn}}{Bd{AHn}}}Od}{{{Bd{B@l}}{Bd{B@l}}}Od}{{{Bd{B@n}}{Bd{B@n}}}Od}{{{Bd{BA`}}{Bd{BA`}}}Od}{{{Bd{BAb}}{Bd{BAb}}}Od}{{{Bd{AIb}}{Bd{AIb}}}Od}{{{Bd{BAd}}{Bd{BAd}}}Od}{{{Bd{BAf}}{Bd{BAf}}}Od}{{{Bd{h}}{Bd{h}}}Od}{{{Bd{BAh}}{Bd{BAh}}}Od}{{{Bd{BAj}}{Bd{BAj}}}Od}{{{Bd{BAl}}{Bd{BAl}}}Od}{{{Bd{BAn}}{Bd{BAn}}}Od}{{{Bd{BB`}}{Bd{BB`}}}Od}{{{Bd{Nj}}{Bd{Nj}}}Od}{{{Bd{BBb}}{Bd{BBb}}}Od}{{{Bd{BBd}}{Bd{BBd}}}Od}{{{Bd{Nn}}{Bd{Nn}}}Od}{{{Bd{BBf}}{Bd{BBf}}}Od}{{{Bd{O`}}{Bd{O`}}}Od}{{{Bd{BBh}}{Bd{BBh}}}Od}{{{Bd{Oj}}{Bd{Oj}}}Od}{{{Bd{BBj}}{Bd{BBj}}}Od}{{{Bd{BBl}}{Bd{BBl}}}Od}{{{Bd{BBn}}{Bd{BBn}}}Od}{{{Bd{AEb}}{Bd{AEb}}}Od}{{{Bd{BC`}}{Bd{BC`}}}Od}{{{Bd{BCb}}{Bd{BCb}}}Od}{{{Bd{AF`}}{Bd{AF`}}}Od}{{{Bd{BCd}}{Bd{BCd}}}Od}{{{Bd{BCf}}{Bd{BCf}}}Od}{{{Bd{BCh}}{Bd{BCh}}}Od}{{{Bd{Ed}}{Bd{Ed}}}Od}{{{Bd{BCj}}{Bd{BCj}}}Od}{{{Bd{BCl}}{Bd{BCl}}}Od}{{{Bd{BCn}}{Bd{BCn}}}Od}{{{Bd{BD`}}{Bd{BD`}}}Od}{{{Bd{BDb}}{Bd{BDb}}}Od}{{{Bd{BDd}}{Bd{BDd}}}Od}{{{Bd{BDf}}{Bd{BDf}}}Od}{{{Bd{BDh}}{Bd{BDh}}}Od}{{{Bd{AGl}}{Bd{AGl}}}Od}{{{Bd{BDj}}{Bd{BDj}}}Od}{{{Bd{BDl}}{Bd{BDl}}}Od}{{{Bd{AH`}}{Bd{AH`}}}Od}{{{Bd{BDn}}{Bd{BDn}}}Od}{{{Bd{BE`}}{Bd{BE`}}}Od}{{{Bd{BEb}}{Bd{BEb}}}Od}{{{Bd{BEd}}{Bd{BEd}}}Od}{{{Bd{BEf}}{Bd{BEf}}}Od}{{{Bd{BEh}}{Bd{BEh}}}Od}{{{Bd{AHf}}{Bd{AHf}}}Od}{{{Bd{BEj}}{Bd{BEj}}}Od}{{{Bd{BEl}}{Bd{BEl}}}Od}{{{Bd{Gd}}{Bd{Gd}}}Od}{{{Bd{Gj}}{Bd{Gj}}}Od}{{{Bd{AFl}}{Bd{AFl}}}Od}{{{Bd{AE`}}{Bd{FdA@b}}}A@d}{{{Bd{AAh}}{Bd{FdA@b}}}A@d}{{{Bd{ALl}}{Bd{FdA@b}}}A@d}{{{Bd{An}}{Bd{FdA@b}}}A@d}{{{Bd{ALn}}{Bd{FdA@b}}}A@d}{{{Bd{AM`}}{Bd{FdA@b}}}A@d}{{{Bd{AMb}}{Bd{FdA@b}}}A@d}{{{Bd{AMd}}{Bd{FdA@b}}}A@d}{{{Bd{AMf}}{Bd{FdA@b}}}A@d}{{{Bd{AMh}}{Bd{FdA@b}}}A@d}{{{Bd{Nl}}{Bd{FdA@b}}}A@d}{{{Bd{AMj}}{Bd{FdA@b}}}A@d}{{{Bd{AAf}}{Bd{FdA@b}}}A@d}{{{Bd{AMl}}{Bd{FdA@b}}}A@d}{{{Bd{AMn}}{Bd{FdA@b}}}A@d}{{{Bd{AN`}}{Bd{FdA@b}}}A@d}{{{Bd{ANb}}{Bd{FdA@b}}}A@d}{{{Bd{Ob}}{Bd{FdA@b}}}A@d}{{{Bd{A@`}}{Bd{FdA@b}}}A@d}{{{Bd{ANd}}{Bd{FdA@b}}}A@d}{{{Bd{A@j}}{Bd{FdA@b}}}A@d}{{{Bd{A@l}}{Bd{FdA@b}}}A@d}{{{Bd{ANf}}{Bd{FdA@b}}}A@d}{{{Bd{AEf}}{Bd{FdA@b}}}A@d}{{{Bd{ANh}}{Bd{FdA@b}}}A@d}{{{Bd{ANj}}{Bd{FdA@b}}}A@d}{{{Bd{ANl}}{Bd{FdA@b}}}A@d}{{{Bd{ANn}}{Bd{FdA@b}}}A@d}{{{Bd{AO`}}{Bd{FdA@b}}}A@d}{{{Bd{AOb}}{Bd{FdA@b}}}A@d}{{{Bd{AOd}}{Bd{FdA@b}}}A@d}{{{Bd{AOf}}{Bd{FdA@b}}}A@d}{{{Bd{AOh}}{Bd{FdA@b}}}A@d}{{{Bd{AOj}}{Bd{FdA@b}}}A@d}{{{Bd{AGn}}{Bd{FdA@b}}}A@d}{{{Bd{AOl}}{Bd{FdA@b}}}A@d}{{{Bd{AOn}}{Bd{FdA@b}}}A@d}{{{Bd{B@`}}{Bd{FdA@b}}}A@d}{{{Bd{AA`}}{Bd{FdA@b}}}A@d}{{{Bd{AAb}}{Bd{FdA@b}}}A@d}{{{Bd{B@b}}{Bd{FdA@b}}}A@d}{{{Bd{AHh}}{Bd{FdA@b}}}A@d}{{{Bd{AAd}}{Bd{FdA@b}}}A@d}{{{Bd{B@d}}{Bd{FdA@b}}}A@d}{{{Bd{B@f}}{Bd{FdA@b}}}A@d}{{{Bd{B@h}}{Bd{FdA@b}}}A@d}{{{Bd{B@j}}{Bd{FdA@b}}}A@d}{{{Bd{AHn}}{Bd{FdA@b}}}A@d}{{{Bd{B@l}}{Bd{FdA@b}}}A@d}{{{Bd{B@n}}{Bd{FdA@b}}}A@d}{{{Bd{BA`}}{Bd{FdA@b}}}A@d}{{{Bd{BAb}}{Bd{FdA@b}}}A@d}{{{Bd{AIb}}{Bd{FdA@b}}}A@d}{{{Bd{BAd}}{Bd{FdA@b}}}A@d}{{{Bd{BAf}}{Bd{FdA@b}}}A@d}{{{Bd{h}}{Bd{FdA@b}}}A@d}{{{Bd{BAh}}{Bd{FdA@b}}}A@d}{{{Bd{BAj}}{Bd{FdA@b}}}A@d}{{{Bd{BAl}}{Bd{FdA@b}}}A@d}{{{Bd{BAn}}{Bd{FdA@b}}}A@d}{{{Bd{BB`}}{Bd{FdA@b}}}A@d}{{{Bd{Nj}}{Bd{FdA@b}}}A@d}{{{Bd{BBb}}{Bd{FdA@b}}}A@d}{{{Bd{BBd}}{Bd{FdA@b}}}A@d}{{{Bd{Nn}}{Bd{FdA@b}}}A@d}{{{Bd{BBf}}{Bd{FdA@b}}}A@d}{{{Bd{O`}}{Bd{FdA@b}}}A@d}{{{Bd{BBh}}{Bd{FdA@b}}}A@d}{{{Bd{Oj}}{Bd{FdA@b}}}A@d}{{{Bd{BBj}}{Bd{FdA@b}}}A@d}{{{Bd{BBl}}{Bd{FdA@b}}}A@d}{{{Bd{BBn}}{Bd{FdA@b}}}A@d}{{{Bd{AEb}}{Bd{FdA@b}}}A@d}{{{Bd{BC`}}{Bd{FdA@b}}}A@d}{{{Bd{BCb}}{Bd{FdA@b}}}A@d}{{{Bd{AF`}}{Bd{FdA@b}}}A@d}{{{Bd{BCd}}{Bd{FdA@b}}}A@d}{{{Bd{BCf}}{Bd{FdA@b}}}A@d}{{{Bd{BCh}}{Bd{FdA@b}}}A@d}{{{Bd{Ed}}{Bd{FdA@b}}}A@d}{{{Bd{BCj}}{Bd{FdA@b}}}A@d}{{{Bd{BCl}}{Bd{FdA@b}}}A@d}{{{Bd{BCn}}{Bd{FdA@b}}}A@d}{{{Bd{BD`}}{Bd{FdA@b}}}A@d}{{{Bd{BDb}}{Bd{FdA@b}}}A@d}{{{Bd{BDd}}{Bd{FdA@b}}}A@d}{{{Bd{BDf}}{Bd{FdA@b}}}A@d}{{{Bd{BDh}}{Bd{FdA@b}}}A@d}{{{Bd{AGl}}{Bd{FdA@b}}}A@d}{{{Bd{BDj}}{Bd{FdA@b}}}A@d}{{{Bd{BDl}}{Bd{FdA@b}}}A@d}{{{Bd{AH`}}{Bd{FdA@b}}}A@d}{{{Bd{BDn}}{Bd{FdA@b}}}A@d}{{{Bd{BE`}}{Bd{FdA@b}}}A@d}{{{Bd{BEb}}{Bd{FdA@b}}}A@d}{{{Bd{BEd}}{Bd{FdA@b}}}A@d}{{{Bd{BEf}}{Bd{FdA@b}}}A@d}{{{Bd{BEh}}{Bd{FdA@b}}}A@d}{{{Bd{AHf}}{Bd{FdA@b}}}A@d}{{{Bd{BEj}}{Bd{FdA@b}}}A@d}{{{Bd{BEl}}{Bd{FdA@b}}}A@d}{{{Bd{Gd}}{Bd{FdA@b}}}A@d}{{{Bd{Gj}}{Bd{FdA@b}}}A@d}{{{Bd{AFl}}{Bd{FdA@b}}}A@d}{cc{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{AE`}}{Bd{Fdc}}}NdAEd}{{{Bd{AAh}}{Bd{Fdc}}}NdAEd}{{{Bd{ALl}}{Bd{Fdc}}}NdAEd}{{{Bd{An}}{Bd{Fdc}}}NdAEd}{{{Bd{ALn}}{Bd{Fdc}}}NdAEd}{{{Bd{AM`}}{Bd{Fdc}}}NdAEd}{{{Bd{AMb}}{Bd{Fdc}}}NdAEd}{{{Bd{AMd}}{Bd{Fdc}}}NdAEd}{{{Bd{AMf}}{Bd{Fdc}}}NdAEd}{{{Bd{AMh}}{Bd{Fdc}}}NdAEd}{{{Bd{Nl}}{Bd{Fdc}}}NdAEd}{{{Bd{AMj}}{Bd{Fdc}}}NdAEd}{{{Bd{AAf}}{Bd{Fdc}}}NdAEd}{{{Bd{AMl}}{Bd{Fdc}}}NdAEd}{{{Bd{AMn}}{Bd{Fdc}}}NdAEd}{{{Bd{AN`}}{Bd{Fdc}}}NdAEd}{{{Bd{ANb}}{Bd{Fdc}}}NdAEd}{{{Bd{Ob}}{Bd{Fdc}}}NdAEd}{{{Bd{A@`}}{Bd{Fdc}}}NdAEd}{{{Bd{ANd}}{Bd{Fdc}}}NdAEd}{{{Bd{A@j}}{Bd{Fdc}}}NdAEd}{{{Bd{A@l}}{Bd{Fdc}}}NdAEd}{{{Bd{ANf}}{Bd{Fdc}}}NdAEd}{{{Bd{AEf}}{Bd{Fdc}}}NdAEd}{{{Bd{ANh}}{Bd{Fdc}}}NdAEd}{{{Bd{ANj}}{Bd{Fdc}}}NdAEd}{{{Bd{ANl}}{Bd{Fdc}}}NdAEd}{{{Bd{ANn}}{Bd{Fdc}}}NdAEd}{{{Bd{AO`}}{Bd{Fdc}}}NdAEd}{{{Bd{AOb}}{Bd{Fdc}}}NdAEd}{{{Bd{AOd}}{Bd{Fdc}}}NdAEd}{{{Bd{AOf}}{Bd{Fdc}}}NdAEd}{{{Bd{AOh}}{Bd{Fdc}}}NdAEd}{{{Bd{AOj}}{Bd{Fdc}}}NdAEd}{{{Bd{AGn}}{Bd{Fdc}}}NdAEd}{{{Bd{AOl}}{Bd{Fdc}}}NdAEd}{{{Bd{AOn}}{Bd{Fdc}}}NdAEd}{{{Bd{B@`}}{Bd{Fdc}}}NdAEd}{{{Bd{AA`}}{Bd{Fdc}}}NdAEd}{{{Bd{AAb}}{Bd{Fdc}}}NdAEd}{{{Bd{B@b}}{Bd{Fdc}}}NdAEd}{{{Bd{AHh}}{Bd{Fdc}}}NdAEd}{{{Bd{AAd}}{Bd{Fdc}}}NdAEd}{{{Bd{B@d}}{Bd{Fdc}}}NdAEd}{{{Bd{B@f}}{Bd{Fdc}}}NdAEd}{{{Bd{B@h}}{Bd{Fdc}}}NdAEd}{{{Bd{B@j}}{Bd{Fdc}}}NdAEd}{{{Bd{AHn}}{Bd{Fdc}}}NdAEd}{{{Bd{B@l}}{Bd{Fdc}}}NdAEd}{{{Bd{B@n}}{Bd{Fdc}}}NdAEd}{{{Bd{BA`}}{Bd{Fdc}}}NdAEd}{{{Bd{BAb}}{Bd{Fdc}}}NdAEd}{{{Bd{AIb}}{Bd{Fdc}}}NdAEd}{{{Bd{BAd}}{Bd{Fdc}}}NdAEd}{{{Bd{BAf}}{Bd{Fdc}}}NdAEd}{{{Bd{h}}{Bd{Fdc}}}NdAEd}{{{Bd{BAh}}{Bd{Fdc}}}NdAEd}{{{Bd{BAj}}{Bd{Fdc}}}NdAEd}{{{Bd{BAl}}{Bd{Fdc}}}NdAEd}{{{Bd{BAn}}{Bd{Fdc}}}NdAEd}{{{Bd{BB`}}{Bd{Fdc}}}NdAEd}{{{Bd{Nj}}{Bd{Fdc}}}NdAEd}{{{Bd{BBb}}{Bd{Fdc}}}NdAEd}{{{Bd{BBd}}{Bd{Fdc}}}NdAEd}{{{Bd{Nn}}{Bd{Fdc}}}NdAEd}{{{Bd{BBf}}{Bd{Fdc}}}NdAEd}{{{Bd{O`}}{Bd{Fdc}}}NdAEd}{{{Bd{BBh}}{Bd{Fdc}}}NdAEd}{{{Bd{Oj}}{Bd{Fdc}}}NdAEd}{{{Bd{BBj}}{Bd{Fdc}}}NdAEd}{{{Bd{BBl}}{Bd{Fdc}}}NdAEd}{{{Bd{BBn}}{Bd{Fdc}}}NdAEd}{{{Bd{AEb}}{Bd{Fdc}}}NdAEd}{{{Bd{BC`}}{Bd{Fdc}}}NdAEd}{{{Bd{BCb}}{Bd{Fdc}}}NdAEd}{{{Bd{AF`}}{Bd{Fdc}}}NdAEd}{{{Bd{BCd}}{Bd{Fdc}}}NdAEd}{{{Bd{BCf}}{Bd{Fdc}}}NdAEd}{{{Bd{BCh}}{Bd{Fdc}}}NdAEd}{{{Bd{Ed}}{Bd{Fdc}}}NdAEd}{{{Bd{BCj}}{Bd{Fdc}}}NdAEd}{{{Bd{BCl}}{Bd{Fdc}}}NdAEd}{{{Bd{BCn}}{Bd{Fdc}}}NdAEd}{{{Bd{BD`}}{Bd{Fdc}}}NdAEd}{{{Bd{BDb}}{Bd{Fdc}}}NdAEd}{{{Bd{BDd}}{Bd{Fdc}}}NdAEd}{{{Bd{BDf}}{Bd{Fdc}}}NdAEd}{{{Bd{BDh}}{Bd{Fdc}}}NdAEd}{{{Bd{AGl}}{Bd{Fdc}}}NdAEd}{{{Bd{BDj}}{Bd{Fdc}}}NdAEd}{{{Bd{BDl}}{Bd{Fdc}}}NdAEd}{{{Bd{AH`}}{Bd{Fdc}}}NdAEd}{{{Bd{BDn}}{Bd{Fdc}}}NdAEd}{{{Bd{BE`}}{Bd{Fdc}}}NdAEd}{{{Bd{BEb}}{Bd{Fdc}}}NdAEd}{{{Bd{BEd}}{Bd{Fdc}}}NdAEd}{{{Bd{BEf}}{Bd{Fdc}}}NdAEd}{{{Bd{BEh}}{Bd{Fdc}}}NdAEd}{{{Bd{AHf}}{Bd{Fdc}}}NdAEd}{{{Bd{BEj}}{Bd{Fdc}}}NdAEd}{{{Bd{BEl}}{Bd{Fdc}}}NdAEd}{{{Bd{Gd}}{Bd{Fdc}}}NdAEd}{{{Bd{Gj}}{Bd{Fdc}}}NdAEd}{{{Bd{AFl}}{Bd{Fdc}}}NdAEd}{{}c{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{AGb{{F`{AAh}}}}{AGb{{F`{ALl}}}}{AGb{{F`{An}}}}{AGb{{F`{ALn}}}}{AGb{{F`{AM`}}}}{AGb{{F`{AMb}}}}{AGb{{F`{AMd}}}}{AGb{{F`{AMf}}}}{AGb{{F`{AMh}}}}{AGb{{F`{Nl}}}}{AGb{{F`{AMj}}}}{AGb{{F`{AAf}}}}{AGb{{F`{AMl}}}}{AGb{{F`{AMn}}}}{AGb{{F`{AN`}}}}{AGb{{F`{ANb}}}}{AGb{{F`{Ob}}}}{AGb{{F`{A@`}}}}{AGb{{F`{ANd}}}}{AGb{{F`{A@j}}}}{AGb{{F`{A@l}}}}{AGb{{F`{ANf}}}}{AGb{{F`{AEf}}}}{AGb{{F`{ANh}}}}{AGb{{F`{ANj}}}}{AGb{{F`{ANl}}}}{AGb{{F`{ANn}}}}{AGb{{F`{AO`}}}}{AGb{{F`{AOb}}}}{AGb{{F`{AOd}}}}{AGb{{F`{AOf}}}}{AGb{{F`{AOh}}}}{AGb{{F`{AOj}}}}{AGb{{F`{AGn}}}}{AGb{{F`{AOl}}}}{AGb{{F`{AOn}}}}{AGb{{F`{B@`}}}}{AGb{{F`{AA`}}}}{AGb{{F`{AAb}}}}{AGb{{F`{B@b}}}}{AGb{{F`{AHh}}}}{AGb{{F`{AAd}}}}{AGb{{F`{B@d}}}}{AGb{{F`{B@f}}}}{AGb{{F`{B@h}}}}{AGb{{F`{B@j}}}}{AGb{{F`{AHn}}}}{AGb{{F`{B@l}}}}{AGb{{F`{B@n}}}}{AGb{{F`{BA`}}}}{AGb{{F`{BAb}}}}{AGb{{F`{AIb}}}}{AGb{{F`{BAd}}}}{AGb{{F`{BAf}}}}{AGb{{F`{h}}}}{AGb{{F`{BAh}}}}{AGb{{F`{BAj}}}}{AGb{{F`{BAl}}}}{AGb{{F`{BAn}}}}{AGb{{F`{BB`}}}}{AGb{{F`{Nj}}}}{AGb{{F`{BBb}}}}{AGb{{F`{BBd}}}}{AGb{{F`{Nn}}}}{AGb{{F`{BBf}}}}{AGb{{F`{O`}}}}{AGb{{F`{BBh}}}}{AGb{{F`{Oj}}}}{AGb{{F`{BBj}}}}{AGb{{F`{BBl}}}}{AGb{{F`{BBn}}}}{AGb{{F`{AEb}}}}{AGb{{F`{BC`}}}}{AGb{{F`{BCb}}}}{AGb{{F`{AF`}}}}{AGb{{F`{BCd}}}}{AGb{{F`{BCf}}}}{AGb{{F`{BCh}}}}{AGb{{F`{Ed}}}}{AGb{{F`{BCj}}}}{AGb{{F`{BCl}}}}{AGb{{F`{BCn}}}}{AGb{{F`{BD`}}}}{AGb{{F`{BDb}}}}{AGb{{F`{BDd}}}}{AGb{{F`{BDf}}}}{AGb{{F`{BDh}}}}{AGb{{F`{AGl}}}}{AGb{{F`{BDj}}}}{AGb{{F`{BDl}}}}{AGb{{F`{AH`}}}}{AGb{{F`{BDn}}}}{AGb{{F`{BE`}}}}{AGb{{F`{BEb}}}}{AGb{{F`{BEd}}}}{AGb{{F`{BEf}}}}{AGb{{F`{BEh}}}}{AGb{{F`{AHf}}}}{AGb{{F`{BEj}}}}{AGb{{F`{BEl}}}}{Bdn}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{AE`n}{ALln}{Ann}{ALnn}{AM`n}{AMbn}{AMdn}{AMfn}{AMhn}{Nln}{AMjn}{AAfn}{AMln}{AMnn}{AN`n}{ANbn}{Obn}{A@`n}{ANdn}{A@jn}{A@ln}{ANfn}{AEfn}{ANhn}{ANjn}{ANln}{ANnn}{AO`n}{AObn}{AOdn}{AOfn}{AOhn}{AOjn}{AGnn}{AOln}{AOnn}{B@`n}{AA`n}{AAbn}{B@bn}{AHhn}{AAdn}{B@dn}{B@fn}{B@hn}{B@jn}{AHnn}{B@ln}{B@nn}{BA`n}{BAbn}{AIbn}{BAdn}{BAfn}{GdAHb}{GjAHb}{AFlAHb}{AAhBEn}{hBEn}{BAhBEn}{BAjBEn}{BAlBEn}{BAnBEn}{BB`BEn}{NjBEn}{BBbBEn}{BBdBEn}{NnBEn}{BBfBEn}{O`BEn}{BBhBEn}{OjBEn}{BBjBEn}{BBlBEn}{BBnBEn}{AEbBEn}{BC`BEn}{BCbBEn}{AF`BEn}{BCdBEn}{BCfBEn}{BChBEn}{EdBEn}{BCjBEn}{BClBEn}{BCnBEn}{BD`BEn}{BDbBEn}{BDdBEn}{BDfBEn}{BDhBEn}{AGlBEn}{BDjBEn}{BDlBEn}{AH`BEn}{BDnBEn}{BE`BEn}{BEbBEn}{BEdBEn}{BEfBEn}{BEhBEn}{AHfBEn}{BEjBEn}{BElBEn}{{{Bd{AE`}}{Bd{FdAEj}}c}Nd{{AJn{{Bd{FdAEj}}}}}}{{{Bd{Gd}}{Bd{FdAEj}}c}Nd{{AJn{{Bd{FdAEj}}}}}}{{{Bd{Gj}}{Bd{FdAEj}}c}Nd{{AJn{{Bd{FdAEj}}}}}}{{{Bd{AFl}}{Bd{FdAEj}}c}Nd{{AJn{{Bd{FdAEj}}}}}}{Bdc{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{AAh}}{Bd{FdAEj}}}Nd}{{{Bd{ALl}}{Bd{FdAEj}}}Nd}{{{Bd{An}}{Bd{FdAEj}}}Nd}{{{Bd{ALn}}{Bd{FdAEj}}}Nd}{{{Bd{AM`}}{Bd{FdAEj}}}Nd}{{{Bd{AMb}}{Bd{FdAEj}}}Nd}{{{Bd{AMd}}{Bd{FdAEj}}}Nd}{{{Bd{AMf}}{Bd{FdAEj}}}Nd}{{{Bd{AMh}}{Bd{FdAEj}}}Nd}{{{Bd{Nl}}{Bd{FdAEj}}}Nd}{{{Bd{AMj}}{Bd{FdAEj}}}Nd}{{{Bd{AAf}}{Bd{FdAEj}}}Nd}{{{Bd{AMl}}{Bd{FdAEj}}}Nd}{{{Bd{AMn}}{Bd{FdAEj}}}Nd}{{{Bd{AN`}}{Bd{FdAEj}}}Nd}{{{Bd{ANb}}{Bd{FdAEj}}}Nd}{{{Bd{Ob}}{Bd{FdAEj}}}Nd}{{{Bd{A@`}}{Bd{FdAEj}}}Nd}{{{Bd{ANd}}{Bd{FdAEj}}}Nd}{{{Bd{A@j}}{Bd{FdAEj}}}Nd}{{{Bd{A@l}}{Bd{FdAEj}}}Nd}{{{Bd{ANf}}{Bd{FdAEj}}}Nd}{{{Bd{AEf}}{Bd{FdAEj}}}Nd}{{{Bd{ANh}}{Bd{FdAEj}}}Nd}{{{Bd{ANj}}{Bd{FdAEj}}}Nd}{{{Bd{ANl}}{Bd{FdAEj}}}Nd}{{{Bd{ANn}}{Bd{FdAEj}}}Nd}{{{Bd{AO`}}{Bd{FdAEj}}}Nd}{{{Bd{AOb}}{Bd{FdAEj}}}Nd}{{{Bd{AOd}}{Bd{FdAEj}}}Nd}{{{Bd{AOf}}{Bd{FdAEj}}}Nd}{{{Bd{AOh}}{Bd{FdAEj}}}Nd}{{{Bd{AOj}}{Bd{FdAEj}}}Nd}{{{Bd{AGn}}{Bd{FdAEj}}}Nd}{{{Bd{AOl}}{Bd{FdAEj}}}Nd}{{{Bd{AOn}}{Bd{FdAEj}}}Nd}{{{Bd{B@`}}{Bd{FdAEj}}}Nd}{{{Bd{AA`}}{Bd{FdAEj}}}Nd}{{{Bd{AAb}}{Bd{FdAEj}}}Nd}{{{Bd{B@b}}{Bd{FdAEj}}}Nd}{{{Bd{AHh}}{Bd{FdAEj}}}Nd}{{{Bd{AAd}}{Bd{FdAEj}}}Nd}{{{Bd{B@d}}{Bd{FdAEj}}}Nd}{{{Bd{B@f}}{Bd{FdAEj}}}Nd}{{{Bd{B@h}}{Bd{FdAEj}}}Nd}{{{Bd{B@j}}{Bd{FdAEj}}}Nd}{{{Bd{AHn}}{Bd{FdAEj}}}Nd}{{{Bd{B@l}}{Bd{FdAEj}}}Nd}{{{Bd{B@n}}{Bd{FdAEj}}}Nd}{{{Bd{BA`}}{Bd{FdAEj}}}Nd}{{{Bd{BAb}}{Bd{FdAEj}}}Nd}{{{Bd{AIb}}{Bd{FdAEj}}}Nd}{{{Bd{BAd}}{Bd{FdAEj}}}Nd}{{{Bd{BAf}}{Bd{FdAEj}}}Nd}{{{Bd{h}}{Bd{FdAEj}}}Nd}{{{Bd{BAh}}{Bd{FdAEj}}}Nd}{{{Bd{BAj}}{Bd{FdAEj}}}Nd}{{{Bd{BAl}}{Bd{FdAEj}}}Nd}{{{Bd{BAn}}{Bd{FdAEj}}}Nd}{{{Bd{BB`}}{Bd{FdAEj}}}Nd}{{{Bd{Nj}}{Bd{FdAEj}}}Nd}{{{Bd{BBb}}{Bd{FdAEj}}}Nd}{{{Bd{BBd}}{Bd{FdAEj}}}Nd}{{{Bd{Nn}}{Bd{FdAEj}}}Nd}{{{Bd{BBf}}{Bd{FdAEj}}}Nd}{{{Bd{O`}}{Bd{FdAEj}}}Nd}{{{Bd{BBh}}{Bd{FdAEj}}}Nd}{{{Bd{Oj}}{Bd{FdAEj}}}Nd}{{{Bd{BBj}}{Bd{FdAEj}}}Nd}{{{Bd{BBl}}{Bd{FdAEj}}}Nd}{{{Bd{BBn}}{Bd{FdAEj}}}Nd}{{{Bd{AEb}}{Bd{FdAEj}}}Nd}{{{Bd{BC`}}{Bd{FdAEj}}}Nd}{{{Bd{BCb}}{Bd{FdAEj}}}Nd}{{{Bd{AF`}}{Bd{FdAEj}}}Nd}{{{Bd{BCd}}{Bd{FdAEj}}}Nd}{{{Bd{BCf}}{Bd{FdAEj}}}Nd}{{{Bd{BCh}}{Bd{FdAEj}}}Nd}{{{Bd{Ed}}{Bd{FdAEj}}}Nd}{{{Bd{BCj}}{Bd{FdAEj}}}Nd}{{{Bd{BCl}}{Bd{FdAEj}}}Nd}{{{Bd{BCn}}{Bd{FdAEj}}}Nd}{{{Bd{BD`}}{Bd{FdAEj}}}Nd}{{{Bd{BDb}}{Bd{FdAEj}}}Nd}{{{Bd{BDd}}{Bd{FdAEj}}}Nd}{{{Bd{BDf}}{Bd{FdAEj}}}Nd}{{{Bd{BDh}}{Bd{FdAEj}}}Nd}{{{Bd{AGl}}{Bd{FdAEj}}}Nd}{{{Bd{BDj}}{Bd{FdAEj}}}Nd}{{{Bd{BDl}}{Bd{FdAEj}}}Nd}{{{Bd{AH`}}{Bd{FdAEj}}}Nd}{{{Bd{BDn}}{Bd{FdAEj}}}Nd}{{{Bd{BE`}}{Bd{FdAEj}}}Nd}{{{Bd{BEb}}{Bd{FdAEj}}}Nd}{{{Bd{BEd}}{Bd{FdAEj}}}Nd}{{{Bd{BEf}}{Bd{FdAEj}}}Nd}{{{Bd{BEh}}{Bd{FdAEj}}}Nd}{{{Bd{AHf}}{Bd{FdAEj}}}Nd}{{{Bd{BEj}}{Bd{FdAEj}}}Nd}{{{Bd{BEl}}{Bd{FdAEj}}}Nd}{c{{A@h{e}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{}{{A@h{c}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{BdAHl}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`{{{Bd{Fdc}}{Bd{N`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{N`}}}Nd}0{{{Bd{Fdc}}{Bd{Af}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Af}}}Nd}0{{{Bd{Fdc}}{Bd{Lh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Lh}}}Nd}0{{{Bd{Fdc}}{Bd{Lf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Lf}}}Nd}0{{{Bd{Fdc}}{Bd{Hf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hf}}}Nd}0{{{Bd{Fdc}}{Bd{Gh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Gh}}}Nd}0{{{Bd{Fdc}}{Bd{Dn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Dn}}}Nd}0{{{Bd{Fdc}}{Bd{E`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{E`}}}Nd}0{{{Bd{Fdc}}{Bd{Kn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kn}}}Nd}0{{{Bd{Fdc}}{Bd{Jb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jb}}}Nd}0{{{Bd{Fdc}}{Bd{Dl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Dl}}}Nd}0{{{Bd{Fdc}}{Bd{Fl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Fl}}}Nd}0{{{Bd{Fdc}}{Bd{Ib}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ib}}}Nd}0{{{Bd{Fdc}}{Bd{Gf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Gf}}}Nd}0{{{Bd{Fdc}}{Bd{Id}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Id}}}Nd}0{{{Bd{Fdc}}{Bd{If}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{If}}}Nd}0{{{Bd{Fdc}}{Bd{Bn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Bn}}}Nd}0{{{Bd{Fdc}}{Bd{Ih}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ih}}}Nd}0{{{Bd{Fdc}}{Bd{C`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{C`}}}Nd}0{{{Bd{Fdc}}{Bd{A`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{A`}}}Nd}0{{{Bd{Fdc}}{Bd{Al}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Al}}}Nd}0{{{Bd{Fdc}}{Bd{Cb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cb}}}Nd}0{{{Bd{Fdc}}{Bd{Cd}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cd}}}Nd}0{{{Bd{Fdc}}{Bd{Cf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cf}}}Nd}0{{{Bd{Fdc}}{Bd{Ch}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ch}}}Nd}0{{{Bd{Fdc}}{Bd{Cj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cj}}}Nd}0{{{Bd{Fdc}}{Bd{Ad}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ad}}}Nd}0{{{Bd{Fdc}}{Bd{Cl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cl}}}Nd}0{{{Bd{Fdc}}{Bd{Cn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cn}}}Nd}0{{{Bd{Fdc}}{Bd{f}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{f}}}Nd}0{{{Bd{Fdc}}{Bd{D`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{D`}}}Nd}0{{{Bd{Fdc}}{Bd{Db}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Db}}}Nd}0{{{Bd{Fdc}}{Bd{Dd}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Dd}}}Nd}0{{{Bd{Fdc}}{Bd{Bl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Bl}}}Nd}0{{{Bd{Fdc}}{Bd{M`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{M`}}}Nd}0{{{Bd{Fdc}}{Bd{Df}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Df}}}Nd}0{{{Bd{Fdc}}{Bd{Hn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hn}}}Nd}0{{{Bd{Fdc}}{Bd{Gb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Gb}}}Nd}0{{{Bd{Fdc}}{Bd{I`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{I`}}}Nd}0{{{Bd{Fdc}}{Bd{Ld}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ld}}}Nd}0{{{Bd{Fdc}}{Bd{J`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{J`}}}Nd}0{{{Bd{Fdc}}{Bd{In}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{In}}}Nd}0{{{Bd{Fdc}}{Bd{Hb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hb}}}Nd}0{{{Bd{Fdc}}{Bd{Il}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Il}}}Nd}0{{{Bd{Fdc}}{Bd{l}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{l}}}Nd}0{{{Bd{Fdc}}{Bd{Dh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Dh}}}Nd}0{{{Bd{Fdc}}{Bd{Jn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jn}}}Nd}0{{{Bd{Fdc}}{Bd{Kj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kj}}}Nd}0{{{Bd{Fdc}}{Bd{Kf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kf}}}Nd}0{{{Bd{Fdc}}{Bd{Kb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kb}}}Nd}0{{{Bd{Fdc}}{Bd{Kh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kh}}}Nd}0{{{Bd{Fdc}}{Bd{Kd}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kd}}}Nd}0{{{Bd{Fdc}}{Bd{En}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{En}}}Nd}0{{{Bd{Fdc}}{Bd{Ej}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ej}}}Nd}0{{{Bd{Fdc}}{Bd{K`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{K`}}}Nd}0{{{Bd{Fdc}}{Bd{Eb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Eb}}}Nd}0{{{Bd{Fdc}}{Bd{Kl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kl}}}Nd}0{{{Bd{Fdc}}{Bd{Ij}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ij}}}Nd}0{{{Bd{Fdc}}{Bd{Hh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hh}}}Nd}0{{{Bd{Fdc}}{Bd{Hj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hj}}}Nd}0{{{Bd{Fdc}}{Bd{Hl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hl}}}Nd}0{{{Bd{Fdc}}{Bd{Lj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Lj}}}Nd}0{{{Bd{Fdc}}{Bd{Lb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Lb}}}Nd}0{{{Bd{Fdc}}{Bd{Aj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Aj}}}Nd}0{{{Bd{Fdc}}{Bd{Ah}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ah}}}Nd}0{{{Bd{Fdc}}{Bd{Fj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Fj}}}Nd}0{{{Bd{Fdc}}{Bd{Ff}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ff}}}Nd}0{{{Bd{Fdc}}{Bd{B`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{B`}}}Nd}0{{{Bd{Fdc}}{Bd{Nb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Nb}}}Nd}0{{{Bd{Fdc}}{Bd{n}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{n}}}Nd}0{{{Bd{FdBF`}}{Bd{AEj}}}Nd}0{{{Bd{Fdc}}{Bd{Jf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jf}}}Nd}0{{{Bd{Fdc}}{Bd{Jh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jh}}}Nd}0{{{Bd{Fdc}}{Bd{Fh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Fh}}}Nd}0{{{Bd{Fdc}}{Bd{Gl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Gl}}}Nd}0{{{Bd{Fdc}}{Bd{b}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{b}}}Nd}0{{{Bd{Fdc}}{Bd{Mb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Mb}}}Nd}0{{{Bd{Fdc}}{Bd{Fn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Fn}}}Nd}0{{{Bd{Fdc}}{Bd{Md}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Md}}}Nd}0{{{Bd{Fdc}}{Bd{Mf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Mf}}}Nd}0{{{Bd{Fdc}}{Bd{Ef}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ef}}}Nd}0{{{Bd{Fdc}}{Bd{Dj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Dj}}}Nd}0{{{Bd{Fdc}}{Bd{Jd}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jd}}}Nd}0{{{Bd{Fdc}}{Bd{Mh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Mh}}}Nd}0{{{Bd{Fdc}}{Bd{Mj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Mj}}}Nd}0{{{Bd{Fdc}}{Bd{Ml}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ml}}}Nd}0{{{Bd{Fdc}}{Bd{j}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{j}}}Nd}0{{{Bd{Fdc}}{Bd{Gn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Gn}}}Nd}0{{{Bd{Fdc}}{Bd{G`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{G`}}}Nd}0{{{Bd{Fdc}}{Bd{Mn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Mn}}}Nd}0{{{Bd{Fdc}}{Bd{L`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{L`}}}Nd}0{{{Bd{Fdc}}{Bd{Bh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Bh}}}Nd}0{{{Bd{Fdc}}{Bd{Ln}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ln}}}Nd}0{{{Bd{Fdc}}{Bd{Ll}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ll}}}Nd}0{{{Bd{Fdc}}{Bd{Jj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jj}}}Nd}0{{{Bd{Fdc}}{Bd{Jl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jl}}}Nd}0","D":"H@f","p":[[5,"TypeBareFn",2628,5304],[6,"Option",5305,null,1],[5,"ExprReference",2628,5306],[5,"And",2899],[5,"TypeReference",2628,5304],[5,"Lifetime",2628,5307],[5,"Span",5308],[5,"ExprCall",2628,5306],[5,"Punctuated",2724],[5,"ExprMethodCall",2628,5306],[5,"AngleBracketedGenericArguments",2628,5309],[5,"PathSegment",2628,5309],[6,"PathArguments",2628,5309],[5,"ExprCast",2628,5306],[5,"As",2899],[5,"QSelf",2628,5309],[5,"TypeGenerics",2628,5310],[1,"reference",null,null,1],[5,"Turbofish",2628,5310],[5,"Variant",2628,5311],[5,"Vec",5312],[5,"Field",2628,5311],[5,"DeriveInput",2628,5313],[5,"ExprBinary",2628,5306],[5,"ExprField",2628,5306],[5,"ExprGroup",2628,5306],[5,"ExprIndex",2628,5306],[5,"ExprLit",2628,5306],[5,"ExprMacro",2628,5306],[5,"ExprParen",2628,5306],[5,"ExprPath",2628,5306],[5,"ExprStruct",2628,5306],[5,"ExprTuple",2628,5306],[5,"ExprUnary",2628,5306],[5,"FieldValue",2628,5306],[5,"LifetimeParam",2628,5310],[5,"TypeParam",2628,5310],[5,"ConstParam",2628,5310],[5,"BareFnArg",2628,5304],[5,"BareVariadic",2628,5304],[5,"Macro",2628,5314],[5,"Not",2899],[5,"TypeNever",2628,5304],[5,"Box",5315,null,1],[5,"LitInt",2628,5316],[1,"str"],[5,"LitFloat",2628,5316],[8,"Result",2628,5317],[10,"FromStr",5318],[0,"mut"],[5,"PredicateType",2628,5310],[6,"Type",2628,5304],[5,"PredicateLifetime",2628,5310],[5,"Constraint",2628,5309],[5,"TypeImplTrait",2628,5304],[5,"TypeTraitObject",2628,5304],[5,"FieldsNamed",2628,5311],[5,"Brace",2899],[5,"DataEnum",2628,5313],[5,"Attribute",2628,5319],[5,"Bracket",2899],[5,"TypeArray",2628,5304],[5,"TypeSlice",2628,5304],[5,"Error",2628,5317],[5,"Ident",2628,5308],[5,"ImplGenerics",2628,5310],[6,"AttrStyle",2628,5319],[6,"Meta",2628,5319],[5,"MetaList",2628,5319],[5,"MetaNameValue",2628,5319],[6,"Fields",2628,5311],[5,"FieldsUnnamed",2628,5311],[6,"Data",2628,5313],[5,"DataStruct",2628,5313],[5,"DataUnion",2628,5313],[6,"Expr",2628,5306],[6,"Member",2628,5306],[5,"Index",2628,5306],[5,"Generics",2628,5310],[6,"GenericParam",2628,5310],[5,"BoundLifetimes",2628,5310],[6,"TypeParamBound",2628,5310],[5,"TraitBound",2628,5310],[6,"TraitBoundModifier",2628,5310],[5,"WhereClause",2628,5310],[6,"WherePredicate",2628,5310],[6,"Lit",2628,5316],[5,"LitStr",2628,5316],[5,"LitByteStr",2628,5316],[5,"LitCStr",2628,5316],[5,"LitByte",2628,5316],[5,"LitChar",2628,5316],[5,"LitBool",2628,5316],[6,"MacroDelimiter",2628,5314],[6,"BinOp",2628,5320],[6,"UnOp",2628,5320],[5,"Path",2628,5309],[6,"GenericArgument",2628,5309],[5,"AssocType",2628,5309],[5,"AssocConst",2628,5309],[5,"ParenthesizedGenericArguments",2628,5309],[6,"Visibility",2628,5321],[5,"VisRestricted",2628,5321],[6,"FieldMutability",2628,5321],[5,"TypeGroup",2628,5304],[5,"TypeInfer",2628,5304],[5,"TypeMacro",2628,5304],[5,"TypeParen",2628,5304],[5,"TypePath",2628,5304],[5,"TypePtr",2628,5304],[5,"TypeTuple",2628,5304],[5,"Abi",2628,5304],[6,"ReturnType",2628,5304],[1,"unit"],[1,"u8"],[6,"Ordering",5322],[5,"Colon",2899],[5,"Const",2899],[5,"Dot",2899],[5,"DotDotDot",2899],[5,"Enum",2899],[1,"bool"],[10,"AsRef",5323],[10,"Sized",5324],[5,"Eq",2899],[17,"Item"],[10,"IntoIterator",5325],[5,"Extern",2899],[5,"Formatter",5326],[8,"Result",5326],[5,"Error",5326],[6,"Result",5327,null,1],[5,"Fn",2899],[5,"For",2899],[5,"LexError",5308],[5,"SelfType",2899],[5,"SelfValue",2899],[5,"Super",2899],[5,"Crate",2899],[5,"Underscore",2899],[5,"ExprRawAddr",2628,5306],[5,"ExprTryBlock",2628,5306],[5,"ExprArray",2628,5306],[5,"ExprAssign",2628,5306],[5,"ExprAsync",2628,5306],[5,"ExprTry",2628,5306],[5,"ExprUnsafe",2628,5306],[5,"ExprAwait",2628,5306],[5,"ExprBlock",2628,5306],[5,"ExprBreak",2628,5306],[5,"ExprClosure",2628,5306],[5,"ExprConst",2628,5306],[5,"ExprRepeat",2628,5306],[5,"ExprWhile",2628,5306],[5,"ExprContinue",2628,5306],[5,"ExprForLoop",2628,5306],[5,"ExprYield",2628,5306],[5,"ExprRange",2628,5306],[5,"ExprIf",2628,5306],[5,"ExprInfer",2628,5306],[5,"ExprLet",2628,5306],[5,"ExprReturn",2628,5306],[5,"ExprLoop",2628,5306],[5,"ExprMatch",2628,5306],[1,"usize"],[5,"Literal",5308],[10,"Into",5323,null,1],[5,"Group",2899],[5,"Gt",2899],[10,"Hasher",5328],[5,"Impl",2899],[1,"u32"],[5,"TokenStream",5308],[5,"Iter",2724],[5,"IterMut",2724],[5,"Lt",2899],[10,"Display",5326],[1,"slice"],[5,"CStr",5329],[1,"char"],[10,"ToTokens",5330],[5,"Paren",2899],[5,"TokenStream",5331],[10,"Parse",2629],[8,"ParseStream",2629],[10,"Parser",2629],[5,"ParseNestedMeta",2609],[17,"Output"],[10,"FnMut",5332],[5,"Pound",2899],[5,"Pub",2899],[5,"Semi",2899],[5,"DelimSpan",5333],[1,"tuple",null,null,1],[5,"Star",2899],[5,"Struct",2899],[5,"String",5334],[5,"TypeId",5335],[5,"Union",2899],[5,"CString",5336],[5,"Where",2899],[5,"Cursor",2569],[6,"Delimiter",5308],[5,"TokenBuffer",2569],[5,"Punct",5308],[6,"TokenTree",5308],[10,"IdentExt",2605],[5,"ParseBuffer",2629],[1,"fn"],[5,"End",2629,5337],[5,"StepCursor",2629],[5,"Nothing",2629],[5,"Lookahead1",2629,5337],[10,"Peek",2629,5337],[10,"FnOnce",5332],[10,"Speculative",2720],[10,"AnyDelimiter",2720],[10,"Clone",5338],[5,"Pairs",2724],[5,"IntoPairs",2724],[5,"IntoIter",2724],[6,"Pair",2724],[10,"PartialEq",5322],[10,"Default",5339],[10,"Debug",5326],[10,"Hash",5328],[5,"PairsMut",2724],[10,"Token",2899],[10,"Spanned",2897],[5,"Abstract",2899],[5,"Async",2899],[5,"Auto",2899],[5,"Await",2899],[5,"Become",2899],[5,"Box",2899],[5,"Break",2899],[5,"Continue",2899],[5,"Default",2899],[5,"Do",2899],[5,"Dyn",2899],[5,"Else",2899],[5,"Final",2899],[5,"If",2899],[5,"In",2899],[5,"Let",2899],[5,"Loop",2899],[5,"Macro",2899],[5,"Match",2899],[5,"Mod",2899],[5,"Move",2899],[5,"Mut",2899],[5,"Override",2899],[5,"Priv",2899],[5,"Raw",2899],[5,"Ref",2899],[5,"Return",2899],[5,"Static",2899],[5,"Trait",2899],[5,"Try",2899],[5,"Type",2899],[5,"Typeof",2899],[5,"Unsafe",2899],[5,"Unsized",2899],[5,"Use",2899],[5,"Virtual",2899],[5,"While",2899],[5,"Yield",2899],[5,"AndAnd",2899],[5,"AndEq",2899],[5,"At",2899],[5,"Caret",2899],[5,"CaretEq",2899],[5,"Comma",2899],[5,"Dollar",2899],[5,"DotDot",2899],[5,"DotDotEq",2899],[5,"EqEq",2899],[5,"FatArrow",2899],[5,"Ge",2899],[5,"LArrow",2899],[5,"Le",2899],[5,"Minus",2899],[5,"MinusEq",2899],[5,"Ne",2899],[5,"Or",2899],[5,"OrEq",2899],[5,"OrOr",2899],[5,"PathSep",2899],[5,"Percent",2899],[5,"PercentEq",2899],[5,"Plus",2899],[5,"PlusEq",2899],[5,"Question",2899],[5,"RArrow",2899],[5,"Shl",2899],[5,"ShlEq",2899],[5,"Shr",2899],[5,"ShrEq",2899],[5,"Slash",2899],[5,"SlashEq",2899],[5,"StarEq",2899],[5,"Tilde",2899],[1,"array"],[10,"Visit",5016,5340]],"r":[[0,5304],[1,5320],[2,5320],[3,5320],[4,5309],[5,5309],[6,5306],[7,5304],[8,5306],[9,5309],[10,5309],[11,5309],[12,5309],[13,5306],[14,5319],[15,5319],[16,5306],[17,5304],[18,5304],[19,5304],[20,5320],[21,5306],[22,5320],[23,5320],[24,5320],[25,5320],[26,5320],[27,5320],[28,5306],[29,5316],[30,5310],[31,5314],[32,5314],[33,5306],[34,5316],[35,5316],[36,5316],[37,5306],[38,5306],[39,5316],[40,5306],[41,5306],[42,5310],[43,5309],[44,5310],[45,5309],[46,5309],[47,5306],[48,5313],[49,5313],[50,5313],[51,5313],[52,5304],[53,5320],[54,5313],[55,5320],[56,5320],[57,5313],[58,5320],[59,5317],[60,5317],[61,5306],[62,5306],[63,5306],[64,5306],[65,5306],[66,5306],[67,5306],[68,5306],[69,5306],[70,5306],[71,5306],[72,5306],[73,5306],[74,5306],[75,5306],[76,5306],[77,5306],[78,5306],[79,5306],[80,5306],[81,5306],[82,5306],[83,5306],[84,5306],[85,5306],[86,5306],[87,5306],[88,5306],[89,5306],[90,5306],[91,5306],[92,5306],[93,5306],[94,5306],[95,5306],[96,5306],[97,5306],[98,5306],[99,5306],[100,5306],[101,5311],[102,5306],[103,5321],[104,5306],[105,5311],[106,5311],[107,5311],[108,5316],[109,5306],[110,5320],[111,5309],[112,5310],[113,5310],[114,5306],[115,5304],[116,5320],[117,5308],[118,5306],[119,5310],[120,5304],[121,5306],[122,5306],[123,5306],[124,5304],[125,5321],[126,5319],[127,5316],[128,5320],[129,5306],[130,5307],[131,5310],[132,5310],[133,5310],[134,5309],[135,5310],[136,5319],[137,5316],[138,5306],[139,5316],[140,5316],[141,5316],[142,5316],[143,5316],[144,5316],[145,5316],[146,5316],[147,5306],[148,5320],[149,5314],[150,5306],[151,5304],[152,5314],[153,5306],[154,5310],[155,5306],[156,5319],[157,5319],[158,5319],[159,5306],[160,5320],[161,5320],[162,5319],[163,5311],[164,5306],[165,5320],[166,5320],[167,5304],[168,5310],[169,5309],[170,5321],[171,5320],[172,5317],[173,5320],[174,5319],[175,5306],[176,5306],[177,5314],[178,5304],[179,5309],[180,5309],[181,5309],[182,5319],[183,5306],[184,5304],[185,5309],[186,5309],[187,5310],[188,5310],[189,5310],[190,5304],[191,5321],[192,5309],[193,5306],[194,5306],[195,5306],[196,5304],[197,5320],[198,5320],[199,5306],[200,5321],[201,5317],[202,5306],[203,5304],[204,5320],[205,5320],[206,5320],[207,5320],[208,5304],[209,5316],[210,5313],[211,5306],[212,5320],[213,5320],[215,5310],[216,5310],[217,5310],[218,5304],[219,5306],[220,5306],[221,5306],[222,5304],[223,5310],[224,5304],[225,5310],[226,5310],[227,5309],[228,5304],[229,5304],[230,5304],[231,5310],[232,5304],[233,5304],[234,5304],[235,5304],[236,5304],[237,5310],[238,5310],[239,5304],[240,5304],[241,5304],[242,5304],[243,5304],[244,5304],[245,5304],[246,5320],[247,5306],[248,5313],[249,5311],[250,5311],[251,5306],[252,5306],[253,5311],[254,5306],[255,5310],[256,5316],[257,5304],[258,5321],[259,5321],[260,5310],[261,5310],[262,5306],[263,5306],[264,5304],[265,5306],[266,5304],[267,5307],[268,5306],[269,5306],[270,5309],[271,5309],[272,5306],[273,5309],[274,5310],[275,5311],[276,5311],[277,5313],[278,5306],[279,5306],[280,5306],[281,5306],[282,5306],[283,5306],[284,5306],[285,5306],[286,5306],[287,5306],[288,5306],[289,5306],[290,5306],[291,5306],[292,5306],[293,5306],[294,5310],[295,5310],[296,5310],[297,5304],[298,5304],[299,5314],[300,5304],[301,5306],[302,5316],[303,5316],[304,5316],[305,5316],[306,5317],[307,5308],[308,5310],[309,5310],[310,5310],[311,5307],[312,5319],[313,5319],[314,5319],[315,5319],[316,5319],[317,5311],[318,5311],[319,5311],[320,5311],[321,5311],[322,5313],[323,5313],[324,5313],[325,5313],[326,5313],[327,5306],[328,5306],[329,5306],[330,5306],[331,5306],[332,5306],[333,5306],[334,5306],[335,5306],[336,5306],[337,5306],[338,5306],[339,5306],[340,5306],[341,5306],[342,5306],[343,5306],[344,5306],[345,5306],[346,5306],[347,5306],[348,5306],[349,5306],[350,5306],[351,5306],[352,5306],[353,5306],[354,5306],[355,5306],[356,5306],[357,5306],[358,5306],[359,5306],[360,5306],[361,5306],[362,5306],[363,5306],[364,5306],[365,5306],[366,5306],[367,5306],[368,5306],[369,5306],[370,5310],[371,5310],[372,5310],[373,5310],[374,5310],[375,5310],[376,5310],[377,5310],[378,5310],[379,5310],[380,5310],[381,5310],[382,5310],[383,5316],[384,5316],[385,5316],[386,5316],[387,5316],[388,5316],[389,5316],[390,5316],[391,5316],[392,5314],[393,5314],[394,5320],[395,5320],[396,5309],[397,5309],[398,5309],[399,5309],[400,5309],[401,5309],[402,5309],[403,5309],[404,5309],[405,5309],[406,5321],[407,5321],[408,5321],[409,5304],[410,5304],[411,5304],[412,5304],[413,5304],[414,5304],[415,5304],[416,5304],[417,5304],[418,5304],[419,5304],[420,5304],[421,5304],[422,5304],[423,5304],[424,5304],[425,5304],[426,5304],[427,5304],[428,5317],[429,5308],[430,5310],[431,5310],[432,5310],[433,5307],[434,5319],[435,5319],[436,5319],[437,5319],[438,5319],[439,5311],[440,5311],[441,5311],[442,5311],[443,5311],[444,5313],[445,5313],[446,5313],[447,5313],[448,5313],[449,5306],[450,5306],[451,5306],[452,5306],[453,5306],[454,5306],[455,5306],[456,5306],[457,5306],[458,5306],[459,5306],[460,5306],[461,5306],[462,5306],[463,5306],[464,5306],[465,5306],[466,5306],[467,5306],[468,5306],[469,5306],[470,5306],[471,5306],[472,5306],[473,5306],[474,5306],[475,5306],[476,5306],[477,5306],[478,5306],[479,5306],[480,5306],[481,5306],[482,5306],[483,5306],[484,5306],[485,5306],[486,5306],[487,5306],[488,5306],[489,5306],[490,5306],[491,5306],[492,5310],[493,5310],[494,5310],[495,5310],[496,5310],[497,5310],[498,5310],[499,5310],[500,5310],[501,5310],[502,5310],[503,5310],[504,5310],[505,5316],[506,5316],[507,5316],[508,5316],[509,5316],[510,5316],[511,5316],[512,5316],[513,5316],[514,5314],[515,5314],[516,5320],[517,5320],[518,5309],[519,5309],[520,5309],[521,5309],[522,5309],[523,5309],[524,5309],[525,5309],[526,5309],[527,5309],[528,5321],[529,5321],[530,5321],[531,5304],[532,5304],[533,5304],[534,5304],[535,5304],[536,5304],[537,5304],[538,5304],[539,5304],[540,5304],[541,5304],[542,5304],[543,5304],[544,5304],[545,5304],[546,5304],[547,5304],[548,5304],[549,5304],[550,5310],[551,5310],[552,5310],[553,5310],[554,5310],[555,5309],[556,5304],[557,5304],[558,5311],[559,5313],[560,5306],[562,5319],[563,5306],[564,5304],[565,5304],[568,5317],[569,5308],[570,5310],[571,5310],[572,5310],[573,5307],[574,5319],[575,5319],[576,5319],[577,5319],[578,5319],[579,5311],[580,5311],[581,5311],[582,5311],[583,5311],[584,5313],[585,5313],[586,5313],[587,5313],[588,5313],[589,5306],[590,5306],[591,5306],[592,5306],[593,5306],[594,5306],[595,5306],[596,5306],[597,5306],[598,5306],[599,5306],[600,5306],[601,5306],[602,5306],[603,5306],[604,5306],[605,5306],[606,5306],[607,5306],[608,5310],[609,5310],[610,5310],[611,5310],[612,5310],[613,5310],[614,5310],[615,5310],[616,5310],[617,5310],[618,5310],[619,5310],[620,5310],[621,5316],[622,5316],[623,5316],[624,5316],[625,5316],[626,5316],[627,5316],[628,5316],[629,5316],[630,5314],[631,5314],[632,5320],[633,5320],[634,5309],[635,5309],[636,5309],[637,5309],[638,5309],[639,5309],[640,5309],[641,5309],[642,5309],[643,5309],[644,5321],[645,5321],[646,5321],[647,5304],[648,5304],[649,5304],[650,5304],[651,5304],[652,5304],[653,5304],[654,5304],[655,5304],[656,5304],[657,5304],[658,5304],[659,5304],[660,5304],[661,5304],[662,5304],[663,5304],[664,5304],[665,5304],[666,5317],[667,5308],[668,5310],[669,5310],[670,5310],[671,5307],[672,5319],[673,5319],[674,5319],[675,5319],[676,5319],[677,5311],[678,5311],[679,5311],[680,5311],[681,5311],[682,5313],[683,5313],[684,5313],[685,5313],[686,5313],[687,5306],[688,5306],[689,5306],[690,5306],[691,5306],[692,5306],[693,5306],[694,5306],[695,5306],[696,5306],[697,5306],[698,5306],[699,5306],[700,5306],[701,5306],[702,5306],[703,5306],[704,5306],[705,5306],[706,5310],[707,5310],[708,5310],[709,5310],[710,5310],[711,5310],[712,5310],[713,5310],[714,5310],[715,5310],[716,5310],[717,5310],[718,5310],[719,5316],[720,5316],[721,5316],[722,5316],[723,5316],[724,5316],[725,5316],[726,5316],[727,5316],[728,5314],[729,5314],[730,5320],[731,5320],[732,5309],[733,5309],[734,5309],[735,5309],[736,5309],[737,5309],[738,5309],[739,5309],[740,5309],[741,5309],[742,5321],[743,5321],[744,5321],[745,5304],[746,5304],[747,5304],[748,5304],[749,5304],[750,5304],[751,5304],[752,5304],[753,5304],[754,5304],[755,5304],[756,5304],[757,5304],[758,5304],[759,5304],[760,5304],[761,5304],[762,5304],[763,5304],[764,5317],[765,5308],[766,5310],[767,5310],[768,5310],[769,5307],[770,5319],[771,5319],[772,5319],[773,5319],[774,5319],[775,5311],[776,5311],[777,5311],[778,5311],[779,5311],[780,5313],[781,5313],[782,5313],[783,5313],[784,5313],[785,5306],[786,5306],[787,5306],[788,5306],[789,5306],[790,5306],[791,5306],[792,5306],[793,5306],[794,5306],[795,5306],[796,5306],[797,5306],[798,5306],[799,5306],[800,5306],[801,5306],[802,5306],[803,5306],[804,5310],[805,5310],[806,5310],[807,5310],[808,5310],[809,5310],[810,5310],[811,5310],[812,5310],[813,5310],[814,5310],[815,5310],[816,5310],[817,5316],[818,5316],[819,5316],[820,5316],[821,5316],[822,5316],[823,5316],[824,5316],[825,5316],[826,5314],[827,5314],[828,5320],[829,5320],[830,5309],[831,5309],[832,5309],[833,5309],[834,5309],[835,5309],[836,5309],[837,5309],[838,5309],[839,5309],[840,5321],[841,5321],[842,5321],[843,5304],[844,5304],[845,5304],[846,5304],[847,5304],[848,5304],[849,5304],[850,5304],[851,5304],[852,5304],[853,5304],[854,5304],[855,5304],[856,5304],[857,5304],[858,5304],[859,5304],[860,5304],[861,5304],[862,5308],[863,5307],[864,5309],[865,5311],[866,5306],[867,5310],[868,5310],[869,5310],[870,5310],[871,5310],[872,5309],[873,5317],[874,5304],[875,5310],[876,5310],[877,5310],[878,5304],[881,5313],[882,5310],[883,5310],[884,5309],[885,5310],[886,5310],[887,5319],[888,5314],[889,5311],[890,5306],[891,5306],[892,5306],[893,5304],[894,5304],[895,5304],[896,5304],[897,5304],[898,5304],[899,5304],[900,5304],[901,5306],[902,5304],[903,5313],[904,5308],[905,5308],[906,5310],[907,5310],[908,5310],[909,5307],[910,5319],[911,5319],[912,5319],[913,5319],[914,5319],[915,5311],[916,5311],[917,5311],[918,5311],[919,5311],[920,5313],[921,5313],[922,5313],[923,5313],[924,5313],[925,5306],[926,5306],[927,5306],[928,5306],[929,5306],[930,5306],[931,5306],[932,5306],[933,5306],[934,5306],[935,5306],[936,5306],[937,5306],[938,5306],[939,5306],[940,5306],[941,5306],[942,5306],[943,5306],[944,5310],[945,5310],[946,5310],[947,5310],[948,5310],[949,5310],[950,5310],[951,5310],[952,5310],[953,5310],[954,5310],[955,5310],[956,5310],[957,5316],[958,5316],[959,5316],[960,5316],[961,5316],[962,5316],[963,5316],[964,5316],[965,5316],[966,5314],[967,5314],[968,5320],[969,5320],[970,5309],[971,5309],[972,5309],[973,5309],[974,5309],[975,5309],[976,5309],[977,5309],[978,5309],[979,5309],[980,5321],[981,5321],[982,5321],[983,5304],[984,5304],[985,5304],[986,5304],[987,5304],[988,5304],[989,5304],[990,5304],[991,5304],[992,5304],[993,5304],[994,5304],[995,5304],[996,5304],[997,5304],[998,5304],[999,5304],[1000,5304],[1001,5304],[1002,5319],[1003,5310],[1004,5310],[1005,5309],[1006,5309],[1007,5306],[1008,5306],[1009,5306],[1010,5306],[1011,5306],[1012,5306],[1013,5306],[1015,5317],[1016,5304],[1017,5311],[1018,5313],[1019,5313],[1020,5306],[1021,5317],[1022,5317],[1023,5308],[1024,5308],[1025,5308],[1026,5310],[1027,5310],[1028,5310],[1029,5307],[1030,5307],[1031,5319],[1032,5319],[1033,5319],[1034,5319],[1035,5319],[1036,5311],[1037,5311],[1038,5311],[1039,5311],[1040,5311],[1041,5313],[1042,5313],[1043,5313],[1044,5313],[1045,5313],[1046,5306],[1047,5306],[1048,5306],[1049,5306],[1050,5306],[1051,5306],[1052,5306],[1053,5306],[1054,5306],[1055,5306],[1056,5306],[1057,5306],[1058,5306],[1059,5306],[1060,5306],[1061,5306],[1062,5306],[1063,5306],[1064,5306],[1065,5306],[1066,5306],[1067,5310],[1068,5310],[1069,5310],[1070,5310],[1071,5310],[1072,5310],[1073,5310],[1074,5310],[1075,5310],[1076,5310],[1077,5310],[1078,5310],[1079,5310],[1080,5316],[1081,5316],[1082,5316],[1083,5316],[1084,5316],[1085,5316],[1086,5316],[1087,5316],[1088,5316],[1089,5316],[1090,5316],[1091,5314],[1092,5314],[1093,5320],[1094,5320],[1095,5309],[1096,5309],[1097,5309],[1098,5309],[1099,5309],[1100,5309],[1101,5309],[1102,5309],[1103,5309],[1104,5309],[1105,5321],[1106,5321],[1107,5321],[1108,5304],[1109,5304],[1110,5304],[1111,5304],[1112,5304],[1113,5304],[1114,5304],[1115,5304],[1116,5304],[1117,5304],[1118,5304],[1119,5304],[1120,5304],[1121,5304],[1122,5304],[1123,5304],[1124,5304],[1125,5304],[1126,5304],[1127,5304],[1128,5310],[1129,5317],[1130,5317],[1131,5308],[1132,5308],[1133,5308],[1134,5308],[1135,5308],[1136,5308],[1137,5308],[1138,5310],[1139,5310],[1140,5310],[1141,5307],[1142,5319],[1143,5319],[1144,5319],[1145,5319],[1146,5319],[1147,5319],[1148,5319],[1149,5319],[1150,5311],[1151,5311],[1152,5311],[1153,5311],[1154,5311],[1155,5311],[1156,5311],[1157,5313],[1158,5313],[1159,5313],[1160,5313],[1161,5313],[1162,5306],[1163,5306],[1164,5306],[1165,5306],[1166,5306],[1167,5306],[1168,5306],[1169,5306],[1170,5306],[1171,5306],[1172,5306],[1173,5306],[1174,5306],[1175,5306],[1176,5306],[1177,5306],[1178,5306],[1179,5306],[1180,5306],[1181,5306],[1182,5306],[1183,5306],[1184,5306],[1185,5306],[1186,5306],[1187,5306],[1188,5306],[1189,5306],[1190,5306],[1191,5306],[1192,5306],[1193,5306],[1194,5306],[1195,5306],[1196,5306],[1197,5306],[1198,5306],[1199,5306],[1200,5306],[1201,5306],[1202,5306],[1203,5306],[1204,5306],[1205,5306],[1206,5306],[1207,5306],[1208,5306],[1209,5306],[1210,5306],[1211,5306],[1212,5306],[1213,5306],[1214,5306],[1215,5306],[1216,5306],[1217,5306],[1218,5306],[1219,5306],[1220,5306],[1221,5306],[1222,5306],[1223,5306],[1224,5306],[1225,5306],[1226,5306],[1227,5306],[1228,5306],[1229,5306],[1230,5306],[1231,5306],[1232,5306],[1233,5306],[1234,5306],[1235,5306],[1236,5306],[1237,5306],[1238,5306],[1239,5306],[1240,5306],[1241,5306],[1242,5306],[1243,5306],[1244,5306],[1245,5306],[1246,5306],[1247,5306],[1248,5310],[1249,5310],[1250,5310],[1251,5310],[1252,5310],[1253,5310],[1254,5310],[1255,5310],[1256,5310],[1257,5310],[1258,5310],[1259,5310],[1260,5310],[1261,5310],[1262,5310],[1263,5310],[1264,5310],[1265,5310],[1266,5310],[1267,5310],[1268,5310],[1269,5316],[1270,5316],[1271,5316],[1272,5316],[1273,5316],[1274,5316],[1275,5316],[1276,5316],[1277,5316],[1278,5316],[1279,5316],[1280,5316],[1281,5316],[1282,5316],[1283,5316],[1284,5316],[1285,5316],[1286,5316],[1287,5316],[1288,5314],[1289,5314],[1290,5320],[1291,5320],[1292,5309],[1293,5309],[1294,5309],[1295,5309],[1296,5309],[1297,5309],[1298,5309],[1299,5309],[1300,5309],[1301,5309],[1302,5309],[1303,5309],[1304,5321],[1305,5321],[1306,5321],[1307,5304],[1308,5304],[1309,5304],[1310,5304],[1311,5304],[1312,5304],[1313,5304],[1314,5304],[1315,5304],[1316,5304],[1317,5304],[1318,5304],[1319,5304],[1320,5304],[1321,5304],[1322,5304],[1323,5304],[1324,5304],[1325,5304],[1326,5304],[1327,5304],[1328,5304],[1329,5304],[1330,5304],[1331,5304],[1332,5304],[1333,5304],[1334,5304],[1335,5304],[1336,5304],[1337,5304],[1338,5304],[1339,5304],[1340,5306],[1341,5313],[1342,5309],[1343,5309],[1344,5309],[1345,5309],[1346,5306],[1347,5304],[1348,5310],[1349,5310],[1350,5309],[1351,5309],[1352,5308],[1353,5310],[1354,5310],[1355,5310],[1356,5307],[1357,5319],[1358,5319],[1359,5319],[1360,5319],[1361,5319],[1362,5311],[1363,5311],[1364,5311],[1365,5311],[1366,5311],[1367,5313],[1368,5313],[1369,5313],[1370,5313],[1371,5313],[1372,5306],[1373,5306],[1374,5306],[1375,5306],[1376,5306],[1377,5306],[1378,5306],[1379,5306],[1380,5306],[1381,5306],[1382,5306],[1383,5306],[1384,5306],[1385,5306],[1386,5306],[1387,5306],[1388,5306],[1389,5306],[1390,5306],[1391,5310],[1392,5310],[1393,5310],[1394,5310],[1395,5310],[1396,5310],[1397,5310],[1398,5310],[1399,5310],[1400,5310],[1401,5310],[1402,5310],[1403,5310],[1404,5316],[1405,5316],[1406,5316],[1407,5316],[1408,5316],[1409,5316],[1410,5316],[1411,5316],[1412,5316],[1413,5314],[1414,5314],[1415,5320],[1416,5320],[1417,5309],[1418,5309],[1419,5309],[1420,5309],[1421,5309],[1422,5309],[1423,5309],[1424,5309],[1425,5309],[1426,5309],[1427,5321],[1428,5321],[1429,5321],[1430,5304],[1431,5304],[1432,5304],[1433,5304],[1434,5304],[1435,5304],[1436,5304],[1437,5304],[1438,5304],[1439,5304],[1440,5304],[1441,5304],[1442,5304],[1443,5304],[1444,5304],[1445,5304],[1446,5304],[1447,5304],[1448,5304],[1449,5307],[1450,5311],[1451,5311],[1452,5313],[1453,5310],[1454,5310],[1455,5309],[1456,5309],[1457,5309],[1458,5309],[1459,5304],[1460,5321],[1461,5306],[1462,5306],[1463,5309],[1464,5304],[1465,5317],[1466,5308],[1467,5310],[1468,5310],[1469,5310],[1470,5307],[1471,5319],[1472,5319],[1473,5319],[1474,5319],[1475,5319],[1476,5311],[1477,5311],[1478,5311],[1479,5311],[1480,5311],[1481,5313],[1482,5313],[1483,5313],[1484,5313],[1485,5313],[1486,5306],[1487,5306],[1488,5306],[1489,5306],[1490,5306],[1491,5306],[1492,5306],[1493,5306],[1494,5306],[1495,5306],[1496,5306],[1497,5306],[1498,5306],[1499,5306],[1500,5306],[1501,5306],[1502,5306],[1503,5306],[1504,5306],[1505,5306],[1506,5306],[1507,5306],[1508,5306],[1509,5306],[1510,5306],[1511,5306],[1512,5306],[1513,5306],[1514,5306],[1515,5306],[1516,5306],[1517,5306],[1518,5306],[1519,5306],[1520,5306],[1521,5306],[1522,5306],[1523,5306],[1524,5306],[1525,5306],[1526,5306],[1527,5306],[1528,5306],[1529,5310],[1530,5310],[1531,5310],[1532,5310],[1533,5310],[1534,5310],[1535,5310],[1536,5310],[1537,5310],[1538,5310],[1539,5310],[1540,5310],[1541,5310],[1542,5316],[1543,5316],[1544,5316],[1545,5316],[1546,5316],[1547,5316],[1548,5316],[1549,5316],[1550,5316],[1551,5314],[1552,5314],[1553,5320],[1554,5320],[1555,5309],[1556,5309],[1557,5309],[1558,5309],[1559,5309],[1560,5309],[1561,5309],[1562,5309],[1563,5309],[1564,5309],[1565,5321],[1566,5321],[1567,5321],[1568,5304],[1569,5304],[1570,5304],[1571,5304],[1572,5304],[1573,5304],[1574,5304],[1575,5304],[1576,5304],[1577,5304],[1578,5304],[1579,5304],[1580,5304],[1581,5304],[1582,5304],[1583,5304],[1584,5304],[1585,5304],[1586,5304],[1587,5317],[1588,5317],[1589,5317],[1590,5311],[1591,5311],[1592,5311],[1593,5311],[1594,5309],[1595,5309],[1596,5309],[1597,5311],[1598,5311],[1599,5309],[1600,5306],[1601,5311],[1602,5304],[1603,5310],[1604,5310],[1605,5304],[1606,5310],[1607,5310],[1608,5310],[1609,5310],[1610,5304],[1611,5310],[1612,5306],[1613,5310],[1614,5310],[1615,5309],[1616,5309],[1617,5306],[1618,5304],[1619,5310],[1620,5306],[1621,5306],[1622,5311],[1624,5319],[1625,5306],[1626,5310],[1627,5311],[1628,5306],[1629,5304],[1630,5304],[1631,5304],[1632,5304],[1633,5304],[1634,5311],[1635,5317],[1636,5308],[1637,5307],[1638,5310],[1639,5316],[1640,5316],[1641,5316],[1642,5316],[1643,5316],[1644,5316],[1645,5316],[1646,5316],[1647,5316],[1648,5308],[1649,5317],[1650,5306],[1651,5306],[1652,5309],[1653,5304],[1654,5310],[1655,5311],[1656,5306],[1657,5306],[1658,5306],[1659,5306],[1660,5310],[1661,5309],[1662,5321],[1663,5304],[1664,5304],[1665,5304],[1669,5308],[1670,5307],[1671,5319],[1672,5319],[1673,5319],[1674,5311],[1675,5311],[1676,5311],[1677,5313],[1678,5306],[1679,5306],[1680,5306],[1681,5306],[1682,5306],[1683,5306],[1684,5306],[1685,5306],[1686,5310],[1687,5310],[1688,5310],[1689,5310],[1690,5310],[1691,5310],[1692,5310],[1693,5310],[1694,5310],[1695,5310],[1696,5310],[1697,5316],[1698,5316],[1699,5316],[1700,5316],[1701,5316],[1702,5316],[1703,5316],[1704,5316],[1705,5316],[1706,5316],[1707,5314],[1708,5320],[1709,5320],[1710,5309],[1711,5309],[1712,5309],[1713,5309],[1714,5309],[1715,5321],[1716,5304],[1717,5304],[1718,5304],[1719,5304],[1720,5304],[1721,5304],[1722,5304],[1723,5304],[1724,5304],[1725,5304],[1726,5304],[1727,5304],[1728,5304],[1729,5304],[1730,5304],[1731,5304],[1732,5304],[1733,5304],[1735,5308],[1736,5319],[1737,5319],[1738,5319],[1739,5319],[1740,5314],[1741,5314],[1742,5319],[1744,5309],[1745,5311],[1746,5319],[1747,5319],[1748,5319],[1752,5311],[1753,5316],[1754,5308],[1755,5307],[1756,5319],[1757,5319],[1758,5319],[1759,5319],[1760,5306],[1761,5306],[1762,5310],[1763,5314],[1764,5321],[1765,5304],[1766,5306],[1767,5309],[1768,5319],[1769,5310],[1770,5321],[1772,5306],[1773,5306],[1774,5304],[1775,5306],[1776,5309],[1777,5319],[1778,5319],[1779,5319],[1780,5306],[1781,5306],[1782,5309],[1783,5313],[1784,5304],[1785,5308],[1786,5307],[1787,5316],[1788,5316],[1789,5316],[1790,5316],[1791,5316],[1792,5316],[1793,5316],[1794,5316],[1795,5316],[1796,5317],[1797,5308],[1798,5308],[1799,5308],[1800,5310],[1801,5310],[1802,5310],[1803,5307],[1804,5307],[1805,5319],[1806,5319],[1807,5319],[1808,5319],[1809,5311],[1810,5311],[1811,5311],[1812,5311],[1813,5311],[1814,5313],[1815,5306],[1816,5306],[1817,5306],[1818,5306],[1819,5306],[1820,5306],[1821,5306],[1822,5306],[1823,5306],[1824,5306],[1825,5306],[1826,5306],[1827,5306],[1828,5306],[1829,5306],[1830,5306],[1831,5306],[1832,5306],[1833,5306],[1834,5306],[1835,5306],[1836,5306],[1837,5306],[1838,5306],[1839,5306],[1840,5306],[1841,5306],[1842,5306],[1843,5306],[1844,5306],[1845,5306],[1846,5306],[1847,5306],[1848,5306],[1849,5306],[1850,5306],[1851,5306],[1852,5306],[1853,5306],[1854,5306],[1855,5306],[1856,5306],[1857,5306],[1858,5306],[1859,5306],[1860,5310],[1861,5310],[1862,5310],[1863,5310],[1864,5310],[1865,5310],[1866,5310],[1867,5310],[1868,5310],[1869,5310],[1870,5310],[1871,5310],[1872,5310],[1873,5316],[1874,5316],[1875,5316],[1876,5316],[1877,5316],[1878,5316],[1879,5316],[1880,5316],[1881,5316],[1882,5316],[1883,5316],[1884,5316],[1885,5316],[1886,5316],[1887,5316],[1888,5316],[1889,5316],[1890,5316],[1891,5314],[1892,5314],[1893,5320],[1894,5320],[1895,5309],[1896,5309],[1897,5309],[1898,5309],[1899,5309],[1900,5309],[1901,5309],[1902,5309],[1903,5309],[1904,5309],[1905,5321],[1906,5321],[1907,5304],[1908,5304],[1909,5304],[1910,5304],[1911,5304],[1912,5304],[1913,5304],[1914,5304],[1915,5304],[1916,5304],[1917,5304],[1918,5304],[1919,5304],[1920,5304],[1921,5304],[1922,5304],[1923,5304],[1924,5304],[1925,5304],[1926,5306],[1927,5316],[1929,5310],[1930,5304],[1931,5313],[1932,5319],[1933,5316],[1934,5316],[1935,5316],[1936,5316],[1937,5316],[1938,5316],[1939,5316],[1940,5316],[1941,5317],[1942,5317],[1943,5308],[1944,5310],[1945,5310],[1946,5310],[1947,5307],[1948,5319],[1949,5319],[1950,5319],[1951,5319],[1952,5319],[1953,5311],[1954,5311],[1955,5311],[1956,5311],[1957,5311],[1958,5313],[1959,5313],[1960,5313],[1961,5313],[1962,5313],[1963,5306],[1964,5306],[1965,5306],[1966,5306],[1967,5306],[1968,5306],[1969,5306],[1970,5306],[1971,5306],[1972,5306],[1973,5306],[1974,5306],[1975,5306],[1976,5306],[1977,5306],[1978,5306],[1979,5306],[1980,5306],[1981,5306],[1982,5310],[1983,5310],[1984,5310],[1985,5310],[1986,5310],[1987,5310],[1988,5310],[1989,5310],[1990,5310],[1991,5310],[1992,5310],[1993,5310],[1994,5310],[1995,5316],[1996,5316],[1997,5316],[1998,5316],[1999,5316],[2000,5316],[2001,5316],[2002,5316],[2003,5316],[2004,5314],[2005,5314],[2006,5320],[2007,5320],[2008,5309],[2009,5309],[2010,5309],[2011,5309],[2012,5309],[2013,5309],[2014,5309],[2015,5309],[2016,5309],[2017,5309],[2018,5321],[2019,5321],[2020,5321],[2021,5304],[2022,5304],[2023,5304],[2024,5304],[2025,5304],[2026,5304],[2027,5304],[2028,5304],[2029,5304],[2030,5304],[2031,5304],[2032,5304],[2033,5304],[2034,5304],[2035,5304],[2036,5304],[2037,5304],[2038,5304],[2039,5304],[2040,5317],[2041,5308],[2042,5307],[2043,5316],[2044,5316],[2045,5308],[2046,5310],[2047,5310],[2048,5310],[2049,5307],[2050,5319],[2051,5319],[2052,5319],[2053,5319],[2054,5311],[2055,5311],[2056,5311],[2057,5311],[2058,5311],[2059,5313],[2060,5306],[2061,5306],[2062,5306],[2063,5306],[2064,5306],[2065,5306],[2066,5306],[2067,5306],[2068,5306],[2069,5306],[2070,5306],[2071,5306],[2072,5306],[2073,5306],[2074,5306],[2075,5306],[2076,5306],[2077,5306],[2078,5306],[2079,5306],[2080,5306],[2081,5306],[2082,5306],[2083,5306],[2084,5306],[2085,5306],[2086,5306],[2087,5306],[2088,5306],[2089,5306],[2090,5306],[2091,5306],[2092,5306],[2093,5306],[2094,5306],[2095,5306],[2096,5306],[2097,5306],[2098,5306],[2099,5306],[2100,5306],[2101,5306],[2102,5306],[2103,5310],[2104,5310],[2105,5310],[2106,5310],[2107,5310],[2108,5310],[2109,5310],[2110,5310],[2111,5310],[2112,5310],[2113,5310],[2114,5310],[2115,5310],[2116,5316],[2117,5316],[2118,5316],[2119,5316],[2120,5316],[2121,5316],[2122,5316],[2123,5316],[2124,5316],[2125,5314],[2126,5320],[2127,5320],[2128,5309],[2129,5309],[2130,5309],[2131,5309],[2132,5309],[2133,5309],[2134,5309],[2135,5309],[2136,5309],[2137,5321],[2138,5321],[2139,5304],[2140,5304],[2141,5304],[2142,5304],[2143,5304],[2144,5304],[2145,5304],[2146,5304],[2147,5304],[2148,5304],[2149,5304],[2150,5304],[2151,5304],[2152,5304],[2153,5304],[2154,5304],[2155,5304],[2156,5304],[2157,5304],[2159,5316],[2160,5316],[2161,5316],[2162,5316],[2163,5316],[2164,5316],[2165,5316],[2166,5316],[2167,5319],[2168,5314],[2169,5317],[2170,5308],[2171,5310],[2172,5310],[2173,5310],[2174,5307],[2175,5319],[2176,5319],[2177,5319],[2178,5319],[2179,5319],[2180,5311],[2181,5311],[2182,5311],[2183,5311],[2184,5311],[2185,5313],[2186,5313],[2187,5313],[2188,5313],[2189,5313],[2190,5306],[2191,5306],[2192,5306],[2193,5306],[2194,5306],[2195,5306],[2196,5306],[2197,5306],[2198,5306],[2199,5306],[2200,5306],[2201,5306],[2202,5306],[2203,5306],[2204,5306],[2205,5306],[2206,5306],[2207,5306],[2208,5306],[2209,5306],[2210,5306],[2211,5306],[2212,5306],[2213,5306],[2214,5306],[2215,5306],[2216,5306],[2217,5306],[2218,5306],[2219,5306],[2220,5306],[2221,5306],[2222,5306],[2223,5306],[2224,5306],[2225,5306],[2226,5306],[2227,5306],[2228,5306],[2229,5306],[2230,5306],[2231,5306],[2232,5306],[2233,5310],[2234,5310],[2235,5310],[2236,5310],[2237,5310],[2238,5310],[2239,5310],[2240,5310],[2241,5310],[2242,5310],[2243,5310],[2244,5310],[2245,5310],[2246,5316],[2247,5316],[2248,5316],[2249,5316],[2250,5316],[2251,5316],[2252,5316],[2253,5316],[2254,5316],[2255,5314],[2256,5314],[2257,5320],[2258,5320],[2259,5309],[2260,5309],[2261,5309],[2262,5309],[2263,5309],[2264,5309],[2265,5309],[2266,5309],[2267,5309],[2268,5309],[2269,5321],[2270,5321],[2271,5321],[2272,5304],[2273,5304],[2274,5304],[2275,5304],[2276,5304],[2277,5304],[2278,5304],[2279,5304],[2280,5304],[2281,5304],[2282,5304],[2283,5304],[2284,5304],[2285,5304],[2286,5304],[2287,5304],[2288,5304],[2289,5304],[2290,5304],[2291,5317],[2292,5308],[2293,5310],[2294,5310],[2295,5310],[2296,5307],[2297,5319],[2298,5319],[2299,5319],[2300,5319],[2301,5319],[2302,5311],[2303,5311],[2304,5311],[2305,5311],[2306,5311],[2307,5313],[2308,5313],[2309,5313],[2310,5313],[2311,5313],[2312,5306],[2313,5306],[2314,5306],[2315,5306],[2316,5306],[2317,5306],[2318,5306],[2319,5306],[2320,5306],[2321,5306],[2322,5306],[2323,5306],[2324,5306],[2325,5306],[2326,5306],[2327,5306],[2328,5306],[2329,5306],[2330,5306],[2331,5306],[2332,5306],[2333,5306],[2334,5306],[2335,5306],[2336,5306],[2337,5306],[2338,5306],[2339,5306],[2340,5306],[2341,5306],[2342,5306],[2343,5306],[2344,5306],[2345,5306],[2346,5306],[2347,5306],[2348,5306],[2349,5306],[2350,5306],[2351,5306],[2352,5306],[2353,5306],[2354,5306],[2355,5310],[2356,5310],[2357,5310],[2358,5310],[2359,5310],[2360,5310],[2361,5310],[2362,5310],[2363,5310],[2364,5310],[2365,5310],[2366,5310],[2367,5310],[2368,5316],[2369,5316],[2370,5316],[2371,5316],[2372,5316],[2373,5316],[2374,5316],[2375,5316],[2376,5316],[2377,5314],[2378,5314],[2379,5320],[2380,5320],[2381,5309],[2382,5309],[2383,5309],[2384,5309],[2385,5309],[2386,5309],[2387,5309],[2388,5309],[2389,5309],[2390,5309],[2391,5321],[2392,5321],[2393,5321],[2394,5304],[2395,5304],[2396,5304],[2397,5304],[2398,5304],[2399,5304],[2400,5304],[2401,5304],[2402,5304],[2403,5304],[2404,5304],[2405,5304],[2406,5304],[2407,5304],[2408,5304],[2409,5304],[2410,5304],[2411,5304],[2412,5304],[2413,5306],[2414,5311],[2415,5306],[2416,5310],[2417,5309],[2418,5309],[2419,5304],[2420,5317],[2421,5308],[2422,5310],[2423,5310],[2424,5310],[2425,5307],[2426,5319],[2427,5319],[2428,5319],[2429,5319],[2430,5319],[2431,5311],[2432,5311],[2433,5311],[2434,5311],[2435,5311],[2436,5313],[2437,5313],[2438,5313],[2439,5313],[2440,5313],[2441,5306],[2442,5306],[2443,5306],[2444,5306],[2445,5306],[2446,5306],[2447,5306],[2448,5306],[2449,5306],[2450,5306],[2451,5306],[2452,5306],[2453,5306],[2454,5306],[2455,5306],[2456,5306],[2457,5306],[2458,5306],[2459,5306],[2460,5306],[2461,5306],[2462,5306],[2463,5306],[2464,5306],[2465,5306],[2466,5306],[2467,5306],[2468,5306],[2469,5306],[2470,5306],[2471,5306],[2472,5306],[2473,5306],[2474,5306],[2475,5306],[2476,5306],[2477,5306],[2478,5306],[2479,5306],[2480,5306],[2481,5306],[2482,5306],[2483,5306],[2484,5310],[2485,5310],[2486,5310],[2487,5310],[2488,5310],[2489,5310],[2490,5310],[2491,5310],[2492,5310],[2493,5310],[2494,5310],[2495,5310],[2496,5310],[2497,5316],[2498,5316],[2499,5316],[2500,5316],[2501,5316],[2502,5316],[2503,5316],[2504,5316],[2505,5316],[2506,5314],[2507,5314],[2508,5320],[2509,5320],[2510,5309],[2511,5309],[2512,5309],[2513,5309],[2514,5309],[2515,5309],[2516,5309],[2517,5309],[2518,5309],[2519,5309],[2520,5321],[2521,5321],[2522,5321],[2523,5304],[2524,5304],[2525,5304],[2526,5304],[2527,5304],[2528,5304],[2529,5304],[2530,5304],[2531,5304],[2532,5304],[2533,5304],[2534,5304],[2535,5304],[2536,5304],[2537,5304],[2538,5304],[2539,5304],[2540,5304],[2541,5304],[2542,5310],[2543,5310],[2544,5304],[2545,5313],[2546,5311],[2547,5308],[2548,5304],[2549,5316],[2550,5316],[2551,5316],[2552,5316],[2553,5316],[2554,5316],[2555,5319],[2556,5316],[2557,5309],[2558,5304],[2559,5313],[2560,5311],[2561,5313],[2562,5341],[2563,5310],[2564,5310],[2565,5304],[2566,5304],[2567,5304],[2568,5304],[2623,5337],[2624,5317],[2625,5317],[2626,5337],[2628,5317],[2634,5337],[2635,5317],[2638,5337],[2639,5337],[2643,5337],[2644,5337],[2649,5337],[2652,5337],[2655,5337],[2661,5337],[2664,5337],[2671,5337],[2672,5337],[2677,5337],[2678,5337],[2692,5337],[2693,5337],[2700,5337],[2705,5337],[2706,5337],[2710,5337],[2711,5337],[2715,5337],[2716,5337],[5016,5340],[5017,5340],[5018,5340],[5019,5340],[5020,5340],[5021,5340],[5022,5340],[5023,5340],[5024,5340],[5025,5340],[5026,5340],[5027,5340],[5028,5340],[5029,5340],[5030,5340],[5031,5340],[5032,5340],[5033,5340],[5034,5340],[5035,5340],[5036,5340],[5037,5340],[5038,5340],[5039,5340],[5040,5340],[5041,5340],[5042,5340],[5043,5340],[5044,5340],[5045,5340],[5046,5340],[5047,5340],[5048,5340],[5049,5340],[5050,5340],[5051,5340],[5052,5340],[5053,5340],[5054,5340],[5055,5340],[5056,5340],[5057,5340],[5058,5340],[5059,5340],[5060,5340],[5061,5340],[5062,5340],[5063,5340],[5064,5340],[5065,5340],[5066,5340],[5067,5340],[5068,5340],[5069,5340],[5070,5340],[5071,5340],[5072,5340],[5073,5340],[5074,5340],[5075,5340],[5076,5340],[5077,5340],[5078,5340],[5079,5340],[5080,5340],[5081,5340],[5082,5340],[5083,5340],[5084,5340],[5085,5340],[5086,5340],[5087,5340],[5088,5340],[5089,5340],[5090,5340],[5091,5340],[5092,5340],[5093,5340],[5094,5340],[5095,5340],[5096,5340],[5097,5340],[5098,5340],[5099,5340],[5100,5340],[5101,5340],[5102,5340],[5103,5340],[5104,5340],[5105,5340],[5106,5340],[5107,5340],[5108,5340],[5109,5340],[5110,5340],[5111,5340],[5112,5340],[5113,5340],[5114,5340],[5115,5340],[5116,5340],[5117,5340],[5118,5340],[5119,5340],[5120,5340],[5121,5340],[5122,5340],[5123,5340],[5124,5340],[5125,5340],[5126,5340],[5127,5340],[5128,5340],[5129,5340],[5130,5340],[5131,5340],[5132,5340],[5133,5340],[5134,5340],[5135,5340],[5136,5340],[5137,5340],[5138,5340],[5139,5340],[5140,5340],[5141,5340],[5142,5340],[5143,5340],[5144,5340],[5145,5340],[5146,5340],[5147,5340],[5148,5340],[5149,5340],[5150,5340],[5151,5340],[5152,5340],[5153,5340],[5154,5340],[5155,5340],[5156,5340],[5157,5340],[5158,5340],[5159,5340],[5160,5340],[5161,5340],[5162,5340],[5163,5340],[5164,5340],[5165,5340],[5166,5340],[5167,5340],[5168,5340],[5169,5340],[5170,5340],[5171,5340],[5172,5340],[5173,5340],[5174,5340],[5175,5340],[5176,5340],[5177,5340],[5178,5340],[5179,5340],[5180,5340],[5181,5340],[5182,5340],[5183,5340],[5184,5340],[5185,5340],[5186,5340],[5187,5340],[5188,5340],[5189,5340],[5190,5340],[5191,5340],[5192,5340],[5193,5340],[5194,5340],[5195,5340],[5196,5340],[5197,5340],[5198,5340],[5199,5340],[5200,5340],[5201,5340],[5202,5340],[5203,5340],[5204,5340],[5205,5340],[5206,5340],[5207,5340],[5208,5340],[5209,5340],[5210,5340],[5211,5340],[5212,5340],[5213,5340],[5214,5340],[5215,5340],[5216,5340],[5217,5340],[5218,5340],[5219,5340],[5220,5340],[5221,5340],[5222,5340],[5223,5340],[5224,5340],[5225,5340],[5226,5340],[5227,5340],[5228,5340],[5229,5340],[5230,5340],[5231,5340],[5232,5340],[5233,5340],[5234,5340],[5235,5340],[5236,5340],[5237,5340],[5238,5340],[5239,5340],[5240,5340],[5241,5340],[5242,5340],[5243,5340],[5244,5340],[5245,5340],[5246,5340],[5247,5340],[5248,5340],[5249,5340],[5250,5340],[5251,5340],[5252,5340],[5253,5340],[5254,5340],[5255,5340],[5256,5340],[5257,5340],[5258,5340],[5259,5340],[5260,5340],[5261,5340],[5262,5340],[5263,5340],[5264,5340],[5265,5340],[5266,5340],[5267,5340],[5268,5340],[5269,5340],[5270,5340],[5271,5340],[5272,5340],[5273,5340],[5274,5340],[5275,5340],[5276,5340],[5277,5340],[5278,5340],[5279,5340],[5280,5340],[5281,5340],[5282,5340],[5283,5340],[5284,5340],[5285,5340],[5286,5340],[5287,5340],[5288,5340],[5289,5340],[5290,5340],[5291,5340],[5292,5340],[5293,5340],[5294,5340],[5295,5340],[5296,5340],[5297,5340],[5298,5340],[5299,5340],[5300,5340],[5301,5340],[5302,5340],[5303,5340]],"b":[[904,"impl-PartialEq%3CT%3E-for-Ident"],[905,"impl-PartialEq-for-Ident"],[1021,"impl-Debug-for-Error"],[1022,"impl-Display-for-Error"],[1023,"impl-IdentFragment-for-Ident"],[1024,"impl-Display-for-Ident"],[1025,"impl-Debug-for-Ident"],[1029,"impl-Debug-for-Lifetime"],[1030,"impl-Display-for-Lifetime"],[1062,"impl-Debug-for-Member"],[1063,"impl-IdentFragment-for-Member"],[1064,"impl-IdentFragment-for-Index"],[1065,"impl-Debug-for-Index"],[1086,"impl-Debug-for-LitInt"],[1087,"impl-Display-for-LitInt"],[1088,"impl-Display-for-LitFloat"],[1089,"impl-Debug-for-LitFloat"],[1132,"impl-From%3CExtern%3E-for-Ident"],[1133,"impl-From%3CSelfType%3E-for-Ident"],[1134,"impl-From%3CSelfValue%3E-for-Ident"],[1135,"impl-From%3CSuper%3E-for-Ident"],[1136,"impl-From%3CCrate%3E-for-Ident"],[1137,"impl-From%3CUnderscore%3E-for-Ident"],[1144,"impl-From%3CMetaList%3E-for-Meta"],[1145,"impl-From%3CMetaNameValue%3E-for-Meta"],[1147,"impl-From%3CPath%3E-for-Meta"],[1151,"impl-From%3CFieldsUnnamed%3E-for-Fields"],[1152,"impl-From%3CFieldsNamed%3E-for-Fields"],[1162,"impl-From%3CExprParen%3E-for-Expr"],[1163,"impl-From%3CExprReference%3E-for-Expr"],[1164,"impl-From%3CExprRawAddr%3E-for-Expr"],[1165,"impl-From%3CExprTuple%3E-for-Expr"],[1166,"impl-From%3CExprUnary%3E-for-Expr"],[1167,"impl-From%3CExprTryBlock%3E-for-Expr"],[1168,"impl-From%3CExprArray%3E-for-Expr"],[1169,"impl-From%3CExprAssign%3E-for-Expr"],[1170,"impl-From%3CExprAsync%3E-for-Expr"],[1171,"impl-From%3CExprTry%3E-for-Expr"],[1172,"impl-From%3CExprUnsafe%3E-for-Expr"],[1173,"impl-From%3CExprAwait%3E-for-Expr"],[1174,"impl-From%3CExprBinary%3E-for-Expr"],[1175,"impl-From%3CExprBlock%3E-for-Expr"],[1176,"impl-From%3CExprBreak%3E-for-Expr"],[1177,"impl-From%3CExprStruct%3E-for-Expr"],[1179,"impl-From%3CExprMethodCall%3E-for-Expr"],[1180,"impl-From%3CExprCast%3E-for-Expr"],[1181,"impl-From%3CExprClosure%3E-for-Expr"],[1182,"impl-From%3CExprConst%3E-for-Expr"],[1183,"impl-From%3CExprRepeat%3E-for-Expr"],[1184,"impl-From%3CExprWhile%3E-for-Expr"],[1185,"impl-From%3CExprContinue%3E-for-Expr"],[1186,"impl-From%3CExprField%3E-for-Expr"],[1187,"impl-From%3CExprForLoop%3E-for-Expr"],[1188,"impl-From%3CExprGroup%3E-for-Expr"],[1189,"impl-From%3CExprYield%3E-for-Expr"],[1190,"impl-From%3CExprRange%3E-for-Expr"],[1191,"impl-From%3CExprIf%3E-for-Expr"],[1192,"impl-From%3CExprIndex%3E-for-Expr"],[1193,"impl-From%3CExprInfer%3E-for-Expr"],[1194,"impl-From%3CExprLet%3E-for-Expr"],[1195,"impl-From%3CExprReturn%3E-for-Expr"],[1196,"impl-From%3CExprPath%3E-for-Expr"],[1197,"impl-From%3CExprLit%3E-for-Expr"],[1198,"impl-From%3CExprLoop%3E-for-Expr"],[1199,"impl-From%3CExprMacro%3E-for-Expr"],[1200,"impl-From%3CExprMatch%3E-for-Expr"],[1201,"impl-From%3CExprCall%3E-for-Expr"],[1241,"impl-From%3Cusize%3E-for-Member"],[1243,"impl-From%3CIndex%3E-for-Member"],[1244,"impl-From%3CIdent%3E-for-Member"],[1249,"impl-From%3CLifetimeParam%3E-for-GenericParam"],[1250,"impl-From%3CTypeParam%3E-for-GenericParam"],[1251,"impl-From%3CConstParam%3E-for-GenericParam"],[1258,"impl-From%3CTraitBound%3E-for-TypeParamBound"],[1259,"impl-From%3CLifetime%3E-for-TypeParamBound"],[1265,"impl-From%3CPredicateType%3E-for-WherePredicate"],[1266,"impl-From%3CPredicateLifetime%3E-for-WherePredicate"],[1269,"impl-From%3CLitStr%3E-for-Lit"],[1270,"impl-From%3CLitFloat%3E-for-Lit"],[1271,"impl-From%3CLitBool%3E-for-Lit"],[1272,"impl-From%3CLitByteStr%3E-for-Lit"],[1273,"impl-From%3CLitInt%3E-for-Lit"],[1274,"impl-From%3CLitChar%3E-for-Lit"],[1276,"impl-From%3CLitByte%3E-for-Lit"],[1277,"impl-From%3CLitCStr%3E-for-Lit"],[1307,"impl-From%3CTypeBareFn%3E-for-Type"],[1308,"impl-From%3CTypePath%3E-for-Type"],[1310,"impl-From%3CTypeTuple%3E-for-Type"],[1311,"impl-From%3CTypeArray%3E-for-Type"],[1312,"impl-From%3CTypeGroup%3E-for-Type"],[1313,"impl-From%3CTypeImplTrait%3E-for-Type"],[1314,"impl-From%3CTypeInfer%3E-for-Type"],[1315,"impl-From%3CTypeTraitObject%3E-for-Type"],[1316,"impl-From%3CTypeMacro%3E-for-Type"],[1317,"impl-From%3CTypeSlice%3E-for-Type"],[1318,"impl-From%3CTypeReference%3E-for-Type"],[1319,"impl-From%3CTypeNever%3E-for-Type"],[1320,"impl-From%3CTypePtr%3E-for-Type"],[1321,"impl-From%3CTypeParen%3E-for-Type"],[1588,"impl-IntoIterator-for-%26Error"],[1589,"impl-IntoIterator-for-Error"],[1590,"impl-IntoIterator-for-%26Fields"],[1591,"impl-IntoIterator-for-Fields"],[1592,"impl-IntoIterator-for-%26mut+Fields"],[1698,"impl-LitStr"],[1699,"impl-Parse-for-LitStr"],[1798,"impl-Ident"],[1799,"impl-IdentFragment-for-Ident"],[2667,"impl-Display-for-ParseBuffer%3C\'a%3E"],[2668,"impl-Debug-for-ParseBuffer%3C\'a%3E"],[2774,"impl-Extend%3CT%3E-for-Punctuated%3CT,+P%3E"],[2775,"impl-Extend%3CPair%3CT,+P%3E%3E-for-Punctuated%3CT,+P%3E"],[2787,"impl-FromIterator%3CPair%3CT,+P%3E%3E-for-Punctuated%3CT,+P%3E"],[2788,"impl-FromIterator%3CT%3E-for-Punctuated%3CT,+P%3E"],[2803,"impl-IntoIterator-for-%26mut+Punctuated%3CT,+P%3E"],[2804,"impl-IntoIterator-for-Punctuated%3CT,+P%3E"],[2805,"impl-IntoIterator-for-%26Punctuated%3CT,+P%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALUQegAgAAEAOgAAAH8AAACFAAAAmwAAAKkAAgCvAAAAsgAAALcAAAC8AAAA0wAAANgAAAD5AAAAAAEAAAkBCQAUARwAMgH0ACgCAgAsAgUAMwIDADkCKQFkAwUAawMAAG4DAQByAwcAewN7APgDAQD7A24AawQAAG0EBQB5BAEAfAQAAIAEAQCLBA8AnAQWANoEAADcBAEA3wQAAOIEAgDnBAAA6wQBAPIEAQD2BAUA/QQBAAUFAQAOBQAAEAUAABwFAQAfBQsAPQUEAEMFZwCtBQoAuQUAADUGBAA7BgAAPQYAAEAGAQBDBgMASAYAAEsGAABNBgYAVQYBAFkGCgBnBgAAaQYHAHMGAQB2BgwAhgYcAKQGIgDIBgAA2wYBAN8GAwDkBgIA6AYDAO0GAwD1BgQA+wYJAAYHAAAIB4AAiwcKAJcH1wBwCH4B8QkRAAQKAQAHCgIADgoGABcKAAAiCgAAJQoAACgKBQAzCgEANwoAADsKAwBGCgAATgoKAFoKCABkCgAAZgoCAGwKAgB1CgAAfQoAAIAKAACCCgAAhgoAAIsKAACNChMApQoAAK4KEADAChQA1goCANsKAADkCgEA6AoCAPQKCAAGCwUADgsLACcLDwA4CxcAvQtrA5EPZwBhEDcDmhMeAQ==","P":[[304,"N"],[306,"T"],[550,""],[666,"T"],[764,""],[904,"T"],[905,""],[1015,"T"],[1016,""],[1129,"T"],[1130,""],[1131,"T"],[1132,""],[1138,"T"],[1144,""],[1146,"T"],[1147,""],[1148,"T"],[1151,""],[1153,"T"],[1162,""],[1178,"T"],[1179,""],[1202,"T"],[1241,""],[1242,"T"],[1243,""],[1245,"T"],[1246,""],[1247,"T"],[1249,""],[1252,"T"],[1254,""],[1255,"T"],[1258,""],[1260,"T"],[1265,""],[1267,"T"],[1269,""],[1275,"T"],[1276,""],[1278,"T"],[1284,""],[1286,"T"],[1307,""],[1309,"T"],[1310,""],[1322,"T"],[1340,""],[1352,"H"],[1449,""],[1465,"U"],[1587,""],[1588,"IntoIterator::IntoIter"],[1593,""],[1595,"I"],[1596,""],[1635,"T"],[1636,""],[1649,"T,U"],[1650,""],[1668,"T"],[1669,""],[1698,"T"],[1699,""],[1734,"T"],[1735,""],[1736,"T"],[1738,"F"],[1740,"T"],[1741,"F"],[1742,""],[1751,"T"],[1752,""],[1753,"F"],[1754,""],[1942,"T"],[2040,""],[2169,"U,T"],[2291,"U"],[2413,""],[2573,"T"],[2577,""],[2578,"T"],[2579,""],[2583,"T"],[2585,""],[2587,"U"],[2589,""],[2596,"T"],[2597,""],[2599,"U,T"],[2601,"U"],[2603,""],[2610,"T"],[2612,""],[2613,"T"],[2614,""],[2615,"U"],[2616,""],[2619,"U,T"],[2620,"U"],[2621,""],[2638,"T"],[2649,""],[2652,"T"],[2655,""],[2659,"Deref::Target"],[2661,""],[2665,"T"],[2667,""],[2671,"T"],[2676,"H"],[2677,"U"],[2682,""],[2685,"T"],[2686,"Parser::Output"],[2687,""],[2688,"Parser::Output"],[2689,""],[2690,"Parser::Output"],[2691,"T,P"],[2692,"T"],[2693,""],[2694,"T"],[2697,""],[2699,"R,F"],[2700,"T"],[2703,""],[2705,"U,T"],[2710,"U"],[2715,""],[2734,"T"],[2750,"T,P"],[2754,"T"],[2756,"T,P"],[2758,"T"],[2764,""],[2770,"T,P"],[2774,"T,P,I"],[2776,"T,P"],[2779,"T"],[2787,"T,P,I"],[2788,"T,I,P"],[2789,"T,P"],[2791,"T,P,H"],[2792,"T,P,Index::Output"],[2794,"T,P"],[2795,"U"],[2803,"T,P,IntoIterator::IntoIter"],[2806,"I"],[2812,"T,P"],[2824,"T"],[2827,"T,P"],[2829,"T,P,Iterator::Item"],[2832,"T,Iterator::Item"],[2835,"T,P,Iterator::Item"],[2838,"T,Iterator::Item"],[2841,"T,P"],[2857,"T"],[2860,""],[2862,"T"],[2868,"T,P"],[2871,"U,T"],[2879,"U"],[2887,""],[2895,"T,P"],[2898,""],[3004,"T"],[3212,""],[3316,"T"],[3420,""],[3628,"Deref::Target"],[3672,""],[3880,"T"],[3984,"H"],[4088,"U"],[4192,""],[4496,"F"],[4500,"T"],[4604,""],[4704,"U,T"],[4808,"U"],[4912,""],[5017,"V"],[5018,""],[5020,"V"],[5021,""],[5023,"V"],[5024,""],[5026,"V"],[5027,""],[5029,"V"],[5030,""],[5032,"V"],[5033,""],[5035,"V"],[5036,""],[5038,"V"],[5039,""],[5041,"V"],[5042,""],[5044,"V"],[5045,""],[5047,"V"],[5048,""],[5050,"V"],[5051,""],[5053,"V"],[5054,""],[5056,"V"],[5057,""],[5059,"V"],[5060,""],[5062,"V"],[5063,""],[5065,"V"],[5066,""],[5068,"V"],[5069,""],[5071,"V"],[5072,""],[5074,"V"],[5075,""],[5077,"V"],[5078,""],[5080,"V"],[5081,""],[5083,"V"],[5084,""],[5086,"V"],[5087,""],[5089,"V"],[5090,""],[5092,"V"],[5093,""],[5095,"V"],[5096,""],[5098,"V"],[5099,""],[5101,"V"],[5102,""],[5104,"V"],[5105,""],[5107,"V"],[5108,""],[5110,"V"],[5111,""],[5113,"V"],[5114,""],[5116,"V"],[5117,""],[5119,"V"],[5120,""],[5122,"V"],[5123,""],[5125,"V"],[5126,""],[5128,"V"],[5129,""],[5131,"V"],[5132,""],[5134,"V"],[5135,""],[5137,"V"],[5138,""],[5140,"V"],[5141,""],[5143,"V"],[5144,""],[5146,"V"],[5147,""],[5149,"V"],[5150,""],[5152,"V"],[5153,""],[5155,"V"],[5156,""],[5158,"V"],[5159,""],[5161,"V"],[5162,""],[5164,"V"],[5165,""],[5167,"V"],[5168,""],[5170,"V"],[5171,""],[5173,"V"],[5174,""],[5176,"V"],[5177,""],[5179,"V"],[5180,""],[5182,"V"],[5183,""],[5185,"V"],[5186,""],[5188,"V"],[5189,""],[5191,"V"],[5192,""],[5194,"V"],[5195,""],[5197,"V"],[5198,""],[5200,"V"],[5201,""],[5203,"V"],[5204,""],[5206,"V"],[5207,""],[5209,"V"],[5210,""],[5212,"V"],[5213,""],[5215,"V"],[5216,""],[5218,"V"],[5219,""],[5221,"V"],[5222,""],[5224,"V"],[5225,""],[5229,"V"],[5230,""],[5232,"V"],[5233,""],[5235,"V"],[5236,""],[5238,"V"],[5239,""],[5241,"V"],[5242,""],[5244,"V"],[5245,""],[5247,"V"],[5248,""],[5250,"V"],[5251,""],[5253,"V"],[5254,""],[5256,"V"],[5257,""],[5259,"V"],[5260,""],[5262,"V"],[5263,""],[5265,"V"],[5266,""],[5268,"V"],[5269,""],[5271,"V"],[5272,""],[5274,"V"],[5275,""],[5277,"V"],[5278,""],[5280,"V"],[5281,""],[5283,"V"],[5284,""],[5286,"V"],[5287,""],[5289,"V"],[5290,""],[5292,"V"],[5293,""],[5295,"V"],[5296,""],[5298,"V"],[5299,""],[5301,"V"],[5302,""]]}],["synstructure",{"t":"GGFPPPKPPPPPFFFNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNMNNNNNNONNNNNNNOQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNN","n":["AddBounds","BindStyle","BindingInfo","Both","Fields","Generics","MacroResult","Move","MoveMut","None","Ref","RefMut","Structure","VariantAst","VariantInfo","add_bounds","add_impl_generic","add_trait_bounds","add_where_predicate","ast","","","attrs","bind_with","","binding","binding_name","","bindings","bindings_mut","borrow","","","","","","borrow_mut","","","","","","bound_impl","clone","","","","","","clone_into","","","","","","clone_to_uninit","","","","","","construct","decl_attribute","decl_derive","discriminant","drain_filter","","drain_filter_variants","each","","each_variant","eq","","","","","","fields","filter","","filter_variants","fmt","","","","","","fold","","from","","","","","","gen_impl","hash","","","","","","ident","into","","","","","","into_result","into_stream","new","omitted_bindings","omitted_variants","pat","","prefix","referenced_ty_params","","","remove_binding","remove_variant","span","","style","test_derive","to_owned","","","","","","to_tokens","","try_from","","","","","","try_into","","","","","","try_new","type_id","","","","","","unbound_impl","underscore_const","unpretty_print","unsafe_bound_impl","unsafe_unbound_impl","variants","variants_mut"],"q":[[0,"synstructure"],[160,"syn::generics"],[161,"core::option"],[162,"syn::data"],[163,"syn::derive"],[164,"core::ops::function"],[165,"proc_macro2"],[166,"quote::to_tokens"],[167,"core::fmt"],[168,"core::hash"],[169,"syn::error"],[170,"proc_macro"],[171,"alloc::vec"],[172,"core::result"],[173,"core::any"],[174,"alloc::string"]],"i":"```h00`Bb0100```d000AfAj2Al132131154201354201335420135420135420131``013313354201301335420131354201335420130542013Cj042432232424533`65312453653124653124465312444`4444","f":"```````````````{{{f{bd}}h}{{f{bd}}}}{{{f{bd}}j}{{f{bd}}}}{{{f{d}}{f{l}}{f{b{A`{n}}}}h}Ab}{{{f{bd}}Ad}{{f{bd}}}}{{{f{Af}}}{{f{Ah}}}}{{{f{Aj}}}Al}{{{f{d}}}{{f{An}}}}{Alf}{{{f{bAj}}c}{{f{bAj}}}{{Bd{{f{Af}}}{{B`{Bb}}}}}}{{{f{bd}}c}{{f{bd}}}{{Bd{{f{Af}}}{{B`{Bb}}}}}}{AfBf}{{{f{bAj}}c}{{f{bAj}}}{{Bd{{f{Ah}}Bh}{{B`{Bf}}}}}}{{{f{bd}}c}{{f{bd}}}{{Bd{{f{Ah}}Bh}{{B`{Bf}}}}}}{{{f{Aj}}}{{f{{Bj{Af}}}}}}{{{f{bAj}}}{{f{b{Bj{Af}}}}}}{f{{f{c}}}{}}00000{{{f{b}}}{{f{bc}}}{}}00000{{{f{d}}ce}BlBnBn}{{{f{h}}}h}{{{f{Bb}}}Bb}{{{f{Af}}}Af}{{{f{Al}}}Al}{{{f{Aj}}}Aj}{{{f{d}}}d}{{f{f{bc}}}Ab{}}00000{{fC`}Ab}00000{{{f{Aj}}e}BlBn{{Bd{{f{Ah}}Bh}{{B`{c}}}}}}``{Alf}{{{f{bAj}}c}Aj{{Bd{{f{Af}}}{{B`{Cb}}}}}}{{{f{bd}}c}d{{Bd{{f{Af}}}{{B`{Cb}}}}}}{{{f{bd}}c}d{{Bd{{f{Aj}}}{{B`{Cb}}}}}}{{{f{Aj}}e}BlBn{{Bd{{f{Af}}}{{B`{c}}}}}}{{{f{d}}e}BlBn{{Bd{{f{Af}}}{{B`{c}}}}}}{{{f{d}}e}BlBn{{Bd{{f{Aj}}}{{B`{c}}}}}}{{{f{h}}{f{h}}}Cb}{{{f{Bb}}{f{Bb}}}Cb}{{{f{Af}}{f{Af}}}Cb}{{{f{Al}}{f{Al}}}Cb}{{{f{Aj}}{f{Aj}}}Cb}{{{f{d}}{f{d}}}Cb}<{{{f{bAj}}c}{{f{bAj}}}{{Bd{{f{Af}}}{{B`{Cb}}}}}}{{{f{bd}}c}{{f{bd}}}{{Bd{{f{Af}}}{{B`{Cb}}}}}}{{{f{bd}}c}{{f{bd}}}{{Bd{{f{Aj}}}{{B`{Cb}}}}}}{{{f{h}}{f{bCd}}}Cf}{{{f{Bb}}{f{bCd}}}Cf}{{{f{Af}}{f{bCd}}}Cf}{{{f{Al}}{f{bCd}}}Cf}{{{f{Aj}}{f{bCd}}}Cf}{{{f{d}}{f{bCd}}}Cf}{{{f{Aj}}cg}BlBnBn{{Bd{Bl{f{Af}}}{{B`{e}}}}}}{{{f{d}}cg}BlBnBn{{Bd{Bl{f{Af}}}{{B`{e}}}}}}{cc{}}00000{{{f{d}}Bl}Bl}{{{f{h}}{f{bc}}}AbCh}{{{f{Bb}}{f{bc}}}AbCh}{{{f{Af}}{f{bc}}}AbCh}{{{f{Al}}{f{bc}}}AbCh}{{{f{Aj}}{f{bc}}}AbCh}{{{f{d}}{f{bc}}}AbCh}{Alf}{{}c{}}00000{Cj{{Cl{Bl}}}}{CjCn}{{{f{An}}}d}{{{f{Aj}}}Cb}{{{f{d}}}Cb}{{{f{Af}}}Bl}{{{f{Aj}}}Bl}{AjA`}{{{f{Af}}}{{D`{{f{Bf}}}}}}{{{f{Aj}}}{{D`{{f{Bf}}}}}}{{{f{d}}}{{D`{{f{Bf}}}}}}{{{f{bAj}}Bh}{{f{bAj}}}}{{{f{bd}}Bh}{{f{bd}}}}{fDb}0{AfBb}`{fc{}}00000{{{f{Bb}}{f{bBl}}}Ab}{{{f{Af}}{f{bBl}}}Ab}{c{{Dd{e}}}{}{}}00000{{}{{Dd{c}}}{}}00000{{{f{An}}}{{Cl{d}}}}{fDf}00000{{{f{d}}ce}BlBnBn}{{{f{bd}}Cb}{{f{bd}}}}{cDhDj}22{{{f{d}}}{{f{{Bj{Aj}}}}}}{{{f{bd}}}{{f{b{Bj{Aj}}}}}}","D":"J`","p":[[0,"mut"],[5,"Structure",0],[1,"reference",null,null,1],[6,"AddBounds",0],[6,"GenericParam",160],[5,"TraitBound",160],[5,"WhereClause",160],[6,"Option",161,null,1],[1,"unit"],[6,"WherePredicate",160],[5,"BindingInfo",0],[5,"Field",162],[5,"VariantInfo",0],[5,"VariantAst",0],[5,"DeriveInput",163],[17,"Output"],[6,"BindStyle",0],[10,"FnMut",164],[5,"Ident",165],[1,"usize"],[1,"slice"],[5,"TokenStream",165],[10,"ToTokens",166],[1,"u8"],[1,"bool"],[5,"Formatter",167],[8,"Result",167],[10,"Hasher",168],[10,"MacroResult",0],[8,"Result",169],[5,"TokenStream",170],[5,"Vec",171],[5,"Span",165],[6,"Result",172,null,1],[5,"TypeId",173],[5,"String",174],[10,"Display",167]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAAAEAAAAJ4A","e":"OzAAAAEAAFAACwAXAAAAHwALACwAEQBBAAAASAAGAFIABQBhAAYAdQAAAHsAAQB/ABMAlAAFAA==","P":[[23,"F"],[25,""],[26,"F"],[28,""],[30,"T"],[42,"P,B"],[43,""],[49,"T"],[55,""],[61,"T,F"],[64,""],[65,"F"],[68,"R,F"],[71,""],[78,"F"],[81,""],[87,"I,R,F"],[89,"T"],[95,""],[96,"__H"],[102,""],[103,"U"],[109,""],[126,"T"],[132,""],[134,"U,T"],[140,"U"],[146,""],[153,"P,B"],[154,""],[155,"T"],[156,"P,B"],[158,""]]}],["unicode_ident",{"t":"HH","n":["is_xid_continue","is_xid_start"],"q":[[0,"unicode_ident"]],"i":"``","f":"{bd}0","D":"f","p":[[1,"char"],[1,"bool"]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA=","P":[]}]]')); +var searchIndex = new Map(JSON.parse('[["delog",{"t":"PPKPPKPPGGPFKKFPPKKPPNNNMONNNNNNNNMNNNMNNNNNNNNNNNNQHHNNNNNNMMMONNNNNNNNNNNNQNNCQQNNNNNNNNNNEHNNNNNNNNNMOCMMNNMONNNHNNNNNNNNMNNNNMOFHTTKFKNNNNNNNNNNNNNNNNNNOFFNNNNNNNNHNNNNNNHHNNNNNN","n":["Debug","","Delogger","Error","","Flusher","Info","","Level","LevelFilter","Off","Record","Renderer","State","Statistics","Trace","","TryLog","TryLogWithStatistics","Warn","","args","as_str","","attempts","","borrow","","","","borrow_mut","","","","buffer","builder","capacity","","claimed","clone","","","","clone_to_uninit","","","","cmp","","decrement_severity","","delog","dequeue","enqueue","eq","","","","file","file_static","flush","","flushes","","fmt","","","","","","from","","","","from_str","","generate_macros","hash","","hex","hex_str","hexstr","increment_severity","","into","","","","iter","","level","line","log","logger","max","","metadata","module_path","module_path_static","partial_cmp","","","","read","","render","","","statistics","","successes","","target","to_level","to_level_filter","try_enqueue","try_from","","","","try_into","","","","try_log","type_id","","","","written","","HexStr","","N","SEPARATOR","Separator","U1","Unsigned","borrow","","borrow_mut","","fmt","","","","from","","into","","try_from","","try_into","","type_id","","value","DefaultRenderer","RipgrepRenderer","borrow","","borrow_mut","","clone","","clone_to_uninit","","default","from","","into","","render","","render_arguments","render_record","try_from","","try_into","","type_id",""],"q":[[0,"delog"],[131,"delog::hex"],[157,"delog::render"],[182,"log"],[183,"core::fmt"],[184,"delog::logger"],[185,"core::sync::atomic"],[186,"core::cmp"],[187,"core::option"],[188,"core::result"],[189,"core::hash"],[190,"core::iter::traits::iterator"],[191,"core::any"],[192,"core::marker"],[193,"core::convert"]],"i":"hl`10`10``0````10``10b21nA`04320432Af3000154315435454```5544330Bh32266554265465`65```6526546544``65444665532`1CnCj054678`48764876D`598765``DhDj```EbDd10000010101010100``DnE`101010`101010``101010","f":"`````````````````````{{{d{b}}}{{d{f}}}}{{{d{h}}}{{d{j}}}}{{{d{l}}}{{d{j}}}}{{{d{n}}}c{}}{A`Ab}{d{{d{c}}}{}}000{{{d{Ad}}}{{d{Adc}}}{}}000{{{d{Af}}}{{d{Ad{Aj{Ah}}}}}}{{}Al}{{{d{Af}}}Ab}0{{{d{Af}}}{{d{An}}}}{{{d{A`}}}A`}{{{d{h}}}h}{{{d{l}}}l}{{{d{b}}}b}{{dAh}B`}000{{{d{h}}{d{h}}}Bb}{{{d{l}}{d{l}}}Bb}54`{{c{d{Ad{Aj{Ah}}}}}{{d{j}}}Af}{{c{d{b}}}B`Af}{{{d{h}}{d{l}}}Bd}{{{d{h}}{d{h}}}Bd}{{{d{l}}{d{h}}}Bd}{{{d{l}}{d{l}}}Bd}{{{d{b}}}{{Bf{{d{j}}}}}}0{{{d{Af}}{d{j}}}B`}{{{d{Bh}}{d{j}}}B`}{{{d{n}}}c{}}{A`Ab}{{{d{A`}}{d{AdBj}}}Bl}{{{d{h}}{d{AdBj}}}{{C`{B`Bn}}}}0{{{d{l}}{d{AdBj}}}{{C`{B`Bn}}}}0{{{d{b}}{d{AdBj}}}{{C`{B`Bn}}}}{cc{}}000{{{d{j}}}{{C`{h}}}}{{{d{j}}}{{C`{l}}}}`{{{d{h}}{d{Adc}}}B`Cb}{{{d{l}}{d{Adc}}}B`Cb}```{{{d{h}}}h}{{{d{l}}}l}{{}c{}}000{{}{{`{{Cf{}{{Cd{h}}}}}}}}{{}{{`{{Cf{}{{Cd{l}}}}}}}}{{{d{b}}}h}{{{d{b}}}{{Bf{Ch}}}}`{{}{{d{Ad{Bf{{d{Cj}}}}}}}}{{}h}{{}l}{{{d{b}}}{{d{Cl}}}}{{{d{b}}}{{Bf{{d{j}}}}}}0{{{d{h}}{d{l}}}{{Bf{Bb}}}}{{{d{h}}{d{h}}}{{Bf{Bb}}}}{{{d{l}}{d{h}}}{{Bf{Bb}}}}{{{d{l}}{d{l}}}{{Bf{Bb}}}}{{{d{n}}}c{}}{A`Ab}`{{{d{Af}}{d{b}}}{{d{{Aj{Ah}}}}}}{{{d{Cn}}{d{Ad{Aj{Ah}}}}{d{b}}}{{d{{Aj{Ah}}}}}}{{{d{Cj}}}A`}043{{{d{b}}}{{d{j}}}}{{{d{l}}}{{Bf{h}}}}{{{d{h}}}l}{{c{d{b}}}{{C`{B`B`}}}Af}{c{{C`{e}}}{}{}}000{{}{{C`{c}}}{}}000{{{d{D`}}{d{b}}}{{C`{B`B`}}}}{dDb}000<;`{{{d{c}}}{{Dd{ceg}}}DfDhDj}`````{d{{d{c}}}{}}0{{{d{Ad}}}{{d{Adc}}}{}}0{{{d{{Dd{ceg}}}}{d{AdBj}}}{{C`{B`Bn}}}{{Dl{{Aj{Ah}}}}Df}DhDj}000{cc{}}0{{}c{}}0998866{Ddd}``5544{{{d{Dn}}}Dn}{{{d{E`}}}E`}{{dAh}B`}0{{}{{d{Dn}}}}6655{{{d{Dn}}{d{Ad{Aj{Ah}}}}{d{b}}}{{d{{Aj{Ah}}}}}}{{{d{E`}}{d{Ad{Aj{Ah}}}}{d{b}}}{{d{{Aj{Ah}}}}}}{{{d{Ad{Aj{Ah}}}}f}{{d{{Aj{Ah}}}}}}{{{d{Ad{Aj{Ah}}}}{d{b}}}{{d{{Aj{Ah}}}}}}{c{{C`{e}}}{}{}}0{{}{{C`{c}}}{}}0{dDb}0","D":"M`","p":[[5,"Record",0,182],[1,"reference",null,null,1],[5,"Arguments",183],[6,"Level",0,182],[1,"str"],[6,"LevelFilter",0,182],[10,"State",0,184],[5,"Statistics",0,184],[1,"usize"],[0,"mut"],[10,"Delogger",0,184],[1,"u8"],[1,"slice"],[5,"RecordBuilder",182],[5,"AtomicUsize",185],[1,"unit"],[6,"Ordering",186],[1,"bool"],[6,"Option",187,null,1],[10,"Flusher",0],[5,"Formatter",183],[8,"Result",183],[5,"Error",183],[6,"Result",188,null,1],[10,"Hasher",189],[17,"Item"],[10,"Iterator",190],[1,"u32"],[10,"TryLogWithStatistics",0,184],[5,"Metadata",182],[10,"Renderer",0],[10,"TryLog",0,184],[5,"TypeId",191],[5,"HexStr",131],[10,"Sized",192],[10,"Unsigned",131],[10,"Separator",131],[10,"AsRef",193],[5,"DefaultRenderer",157],[5,"RipgrepRenderer",157],[5,"U1",131]],"r":[[0,182],[1,182],[2,184],[3,182],[4,182],[6,182],[7,182],[8,182],[9,182],[10,182],[11,182],[13,184],[14,184],[15,182],[16,182],[17,184],[18,184],[19,182],[20,182],[21,182],[22,182],[23,182],[24,184],[25,184],[26,184],[27,182],[28,182],[29,182],[30,184],[31,182],[32,182],[33,182],[34,184],[35,182],[36,184],[37,184],[38,184],[39,184],[40,182],[41,182],[42,182],[43,184],[44,182],[45,182],[46,182],[47,182],[48,182],[49,182],[50,182],[52,184],[53,184],[54,182],[55,182],[56,182],[57,182],[58,182],[59,182],[60,184],[62,184],[63,184],[64,184],[65,182],[66,182],[67,182],[68,182],[69,182],[70,184],[71,182],[72,182],[73,182],[74,182],[75,182],[77,182],[78,182],[82,182],[83,182],[84,184],[85,182],[86,182],[87,182],[88,182],[89,182],[90,182],[91,182],[94,182],[95,182],[96,182],[97,182],[98,182],[99,182],[100,182],[101,182],[102,182],[103,184],[104,184],[106,184],[108,184],[109,184],[110,184],[111,184],[112,182],[113,182],[114,182],[115,184],[116,184],[117,182],[118,182],[119,182],[120,184],[121,182],[122,182],[123,182],[124,184],[125,184],[126,182],[127,182],[128,182],[129,184],[130,184]],"b":[[54,"impl-PartialEq%3CLevelFilter%3E-for-Level"],[55,"impl-PartialEq-for-Level"],[56,"impl-PartialEq%3CLevel%3E-for-LevelFilter"],[57,"impl-PartialEq-for-LevelFilter"],[65,"impl-Debug-for-Level"],[66,"impl-Display-for-Level"],[67,"impl-Debug-for-LevelFilter"],[68,"impl-Display-for-LevelFilter"],[99,"impl-PartialOrd%3CLevelFilter%3E-for-Level"],[100,"impl-PartialOrd-for-Level"],[101,"impl-PartialOrd%3CLevel%3E-for-LevelFilter"],[102,"impl-PartialOrd-for-LevelFilter"],[142,"impl-UpperHex-for-HexStr%3C\'a,+T,+U,+S%3E"],[143,"impl-Debug-for-HexStr%3C\'_,+T,+U,+S%3E"],[144,"impl-Display-for-HexStr%3C\'_,+T,+U,+S%3E"],[145,"impl-LowerHex-for-HexStr%3C\'a,+T,+U,+S%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAE4ADwAbAAcAKAAJADcAAwBBAAUASwABAE4AAQBdAAAAZAADAHUABwB+AAMAiwAHAJcABQCgAAcArQABALEABQA=","P":[[24,"T"],[25,""],[26,"T"],[34,""],[62,"T"],[63,""],[70,"T"],[74,""],[77,"__H"],[82,""],[84,"U"],[88,""],[103,"T"],[104,""],[110,"T"],[111,""],[116,"U,T"],[120,"U"],[124,""],[129,"T"],[130,""],[132,"T,U,S"],[138,"T"],[142,"T,U,S"],[146,"T"],[148,"U"],[150,"U,T"],[152,"U"],[154,""],[159,"T"],[163,""],[168,"T"],[170,"U"],[172,""],[176,"U,T"],[178,"U"],[180,""]]}],["flexiber",{"t":"PTTGKPKYFKYFPFGPTTPPPFPTTTPPPTPITTFFFKKIFPPTTPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNONMNNNNNNNNNNMNNMNNNNNNNNNNMNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOO","n":["Application","BIT_STRING","BOOLEAN","Class","Container","Context","Decodable","","Decoder","Encodable","","Encoder","Err","Error","ErrorKind","Failed","GENERALIZED_TIME","INTEGER","InvalidClass","InvalidLength","InvalidTag","Length","","NULL","OBJECT_IDENTIFIER","OCTET_STRING","Ok","Overflow","Overlength","PRINTABLE_STRING","Private","Result","SEQUENCE","SET","SimpleTag","Slice","Tag","TagLike","Tagged","TaggedSlice","TaggedValue","TrailingData","Truncated","UTC_TIME","UTF8_STRING","Underlength","UnexpectedTag","Universal","UnsupportedTagSize","add","","","","","application","as_bytes","","","as_ref","assert_eq","","at","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","class","clone","","","","","","","","clone_to_uninit","","","","","","","","cmp","constructed","","context","decode","","","","","","decode_nested","","decode_tagged_slice","decode_tagged_value","default","embedding","","","encode","","","","","","","encode_tagged_collection","encode_to_slice","","encode_untagged_collection","encoded_length","","","","","","eq","","","","","","","","error","","fields","finish","","fmt","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","from_bytes","","into","","","","","","","","","","is_empty","","","is_failed","","is_finished","kind","length","","","max","nested","new","","","","","number","partial_cmp","position","private","tag","","to_usize","try_from","","","","","","","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","universal","with_value","","zero","actual","","byte","decoded","expected","","remaining","tag","value"],"q":[[0,"flexiber"],[254,"flexiber::ErrorKind"],[263,"flexiber::length"],[264,"flexiber::error"],[265,"flexiber::tag"],[266,"flexiber::tagged"],[267,"core::marker"],[268,"flexiber::slice"],[269,"flexiber::simpletag"],[270,"core::clone"],[271,"core::cmp"],[272,"flexiber::decoder"],[273,"flexiber::traits"],[274,"core::ops::function"],[275,"flexiber::encoder"],[276,"core::fmt"],[277,"core::convert"],[278,"core::option"],[279,"core::result"],[280,"core::any"],[281,"flexiber_derive"]],"i":"Bbl0``1``````d``Al22000`022210023`22```````002200301b0003nAfAh1Aj05BnChAn87Bd6<;53219806<;5;19806<;519806<;58;;;C`8491<8644951=754Cl656544<<;;9?>>8:665444<;;;39?>>8822654<;39?>8:986564:98;465498>;4>Eh9<765=<<<44:Bb0l00;987?>6<10;987?>6<10;0::>DlDnE`Eb320EdEf","f":"`````````````````````````````````````````````````{{{d{b}}b}{{d{b}}}}{{bf}{{d{b}}}}{{bh}{{d{b}}}}{{bj}{{d{b}}}}{{bb}{{d{b}}}}{hl}{{{A`{{n{c}}}}}{{A`{{Ab{j}}}}}Ad}{{{A`{Af}}}{{A`{{Ab{j}}}}}}{{{A`{{Ah{Afc}}}}}{{A`{{Ab{j}}}}}Ad}1{{AjAj}{{d{Aj}}}}0{{Alb}An}{A`{{A`{c}}}{}}000000000{{{A`{B`}}}{{A`{B`c}}}{}}000000000{lBb}{{{A`{An}}}An}{{{A`{Al}}}Al}{{{A`{b}}}b}{{{A`{Bd}}}Bd}{{{A`{Af}}}Af}{{{A`{Bb}}}Bb}{{{A`{l}}}l}{{{A`{{Ah{ce}}}}}{{Ah{ce}}}BfBf}{{A`j}Bh}0000000{{{A`{b}}{A`{b}}}Bj}{ll}{lBl}{hl}{{{A`{B`Bn}}}{{d{C`}}}}{{{A`{B`Bn}}}{{d{{n{c}}}}}{C`Aj}}{{{A`{B`Bn}}}{{d{c}}}C`}{{{A`{B`Bn}}}{{d{b}}}}{{{A`{B`Bn}}}{{d{Bd}}}}{{{A`{B`Bn}}}{{d{l}}}}{{{A`{{n{c}}}}g}{{d{e}}}Ad{}{{Cd{{A`{B`Bn}}}{{Cb{{d{e}}}}}}}}{{{A`{{Ah{Afc}}}}g}{{d{e}}}Ad{}{{Cd{{A`{B`Bn}}}{{Cb{{d{e}}}}}}}}{{{A`{B`Bn}}c}{{d{{A`{{Ab{j}}}}}}}{C`Aj}}{{{A`{B`Bn}}c}{{d{e}}}{C`Aj}C`}{{}b}{Ajl}{Bdl}?{{{A`{Cf}}{A`{B`Ch}}}{{d{Bh}}}}{{{A`{{n{c}}}}{A`{B`Ch}}}{{d{Bh}}}{AdCf}}{{{A`{B`Ch}}{A`{c}}}{{d{Bh}}}Cf}{{{A`{b}}{A`{B`Ch}}}{{d{Bh}}}}{{{A`{Bd}}{A`{B`Ch}}}{{d{Bh}}}}{{{A`{l}}{A`{B`Ch}}}{{d{Bh}}}}{{{A`{{Ah{{A`{c}}e}}}}{A`{B`Ch}}}{{d{Bh}}}Cf{AdCf}}{{{A`{B`Ch}}l{A`{{Ab{{A`{Cf}}}}}}}{{d{Bh}}}}{{{A`{Cf}}{A`{B`{Ab{j}}}}}{{d{{A`{{Ab{j}}}}}}}}0{{{A`{B`Ch}}{A`{{Ab{{A`{Cf}}}}}}}{{d{Bh}}}}{{{A`{Cf}}}{{d{b}}}}{{{A`{{n{c}}}}}{{d{b}}}{AdCf}}{{{A`{b}}}{{d{b}}}}{{{A`{Bd}}}{{d{b}}}}{{{A`{l}}}{{d{b}}}}{{{A`{{Ah{{A`{c}}e}}}}}{{d{b}}}Cf{AdCf}}{{{A`{An}}{A`{An}}}Bl}{{{A`{Al}}{A`{Al}}}Bl}{{{A`{b}}{A`{b}}}Bl}{{{A`{Bd}}{A`{Bd}}}Bl}{{{A`{Af}}{A`{Af}}}Bl}{{{A`{Bb}}{A`{Bb}}}Bl}{{{A`{l}}{A`{l}}}Bl}{{{A`{{Ah{ce}}}}{A`{{Ah{ce}}}}}BlCjCj}{{{A`{B`Bn}}Al}{{d{c}}}{}}{{{A`{B`Ch}}Al}{{d{c}}}{}}{{{A`{Cl}}e}{{d{c}}}{}{{Cd{{A`{{Ab{{A`{Cf}}}}}}}{{Cb{{d{c}}}}}}}}{{Bnc}{{d{c}}}{}}{Ch{{d{{A`{{Ab{j}}}}}}}}{{{A`{Bn}}{A`{B`Cn}}}D`}{{{A`{Ch}}{A`{B`Cn}}}D`}{{{A`{An}}{A`{B`Cn}}}D`}0{{{A`{Al}}{A`{B`Cn}}}D`}0{{{A`{b}}{A`{B`Cn}}}D`}0{{{A`{Af}}{A`{B`Cn}}}D`}{{{A`{Bb}}{A`{B`Cn}}}D`}{{{A`{l}}{A`{B`Cn}}}D`}0{{{A`{{Ah{ce}}}}{A`{B`Cn}}}D`DbDb}{{c{A`{{Ab{j}}}}}{{d{{n{c}}}}}Ad}{cc{}}{{{A`{{Ab{j}}}}}Bn}1{DdAn}{AlAn}33{jb}{hb}55555{{BbBlh}l}6{{c{A`{{Ab{j}}}}}{{d{{Ah{Afc}}}}}Ad}{{{A`{{Ab{j}}}}}{{d{C`}}}}0{{}c{}}000000000{{{A`{{n{c}}}}}BlAd}{AfBl}{{{A`{{Ah{Afc}}}}}BlAd}{{{A`{Bn}}}Bl}{{{A`{Ch}}}Bl}1{AnAl}{{{A`{{n{c}}}}}bAd}{Afb}{{{A`{{Ah{Afc}}}}}bAd}{{}f}{{Anb}An}{{{A`{{Ab{j}}}}}Bn}{{{A`{B`{Ab{j}}}}}Ch}{{Alb}An}{{{A`{{Ab{j}}}}}{{d{Af}}}}{{ce}{{Ah{ec}}}Ad{}}{lh}{{{A`{b}}{A`{b}}}{{Df{Bj}}}}{An{{Df{b}}}}{hl}{{}l}{{{A`{{Ah{ce}}}}}e{}Ad}{bf}{c{{Dh{e}}}{}{}}000{{{A`{{Ab{{A`{Cf}}}}}}}{{d{b}}}}{f{{d{b}}}}2{j{{d{Bd}}}}33{j{{d{Bb}}}}4{j{{d{l}}}}5{{{A`{{Ab{j}}}}}{{d{l}}}}6{{}{{Dh{c}}}{}}000000000{A`Dj}000000000<{{Ajc}{{Ah{cAj}}}{}}0{{}b}{Dlb}{Dnl}{E`j}{Ebb}3{DnDf}1{Edl}{Efj}","D":"Nb","p":[[5,"Length",0,263],[8,"Result",0,264],[1,"usize"],[1,"u16"],[1,"u8"],[5,"Tag",0,265],[8,"TaggedSlice",0,266],[1,"reference",null,null,1],[1,"slice"],[10,"Copy",267],[5,"Slice",0,268],[5,"TaggedValue",0,266],[10,"TagLike",0,265],[6,"ErrorKind",0,264],[5,"Error",0,264],[0,"mut"],[6,"Class",0,265],[5,"SimpleTag",0,269],[10,"Clone",270],[1,"unit"],[6,"Ordering",271],[1,"bool"],[5,"Decoder",0,272],[10,"Decodable",0,273],[17,"Output"],[10,"FnOnce",274],[10,"Encodable",0,273],[5,"Encoder",0,275],[10,"PartialEq",271],[10,"Container",0,273],[5,"Formatter",276],[8,"Result",276],[10,"Debug",276],[6,"Infallible",277],[6,"Option",278,null,1],[6,"Result",279,null,1],[5,"TypeId",280],[15,"Underlength",254],[15,"UnexpectedTag",254],[15,"InvalidTag",254],[15,"TrailingData",254],[15,"Length",254],[15,"InvalidClass",254],[10,"Tagged",0]],"r":[[0,265],[1,265],[2,265],[3,265],[4,273],[5,265],[6,273],[7,281],[8,272],[9,273],[10,281],[11,275],[12,264],[13,264],[14,264],[15,264],[16,265],[17,265],[18,264],[19,264],[20,264],[21,263],[22,264],[23,265],[24,265],[25,265],[26,264],[27,264],[28,264],[29,265],[30,265],[31,264],[32,265],[33,265],[34,269],[35,268],[36,265],[37,265],[38,273],[39,266],[40,266],[41,264],[42,264],[43,265],[44,265],[45,264],[46,264],[47,265],[48,264],[49,264],[50,263],[51,263],[52,263],[53,263],[54,265],[55,266],[56,268],[57,266],[58,268],[59,265],[60,265],[61,264],[62,272],[63,275],[64,264],[65,264],[66,263],[67,269],[68,268],[69,265],[70,265],[71,266],[72,272],[73,275],[74,264],[75,264],[76,263],[77,269],[78,268],[79,265],[80,265],[81,266],[82,265],[83,264],[84,264],[85,263],[86,269],[87,268],[88,265],[89,265],[90,266],[91,264],[92,264],[93,263],[94,269],[95,268],[96,265],[97,265],[98,266],[99,263],[100,265],[101,265],[102,265],[103,273],[104,266],[105,272],[106,263],[107,269],[108,265],[109,266],[110,266],[111,272],[112,272],[113,263],[114,265],[115,269],[116,265],[117,273],[118,266],[119,275],[120,263],[121,269],[122,265],[123,266],[124,275],[125,273],[126,273],[127,275],[128,273],[129,266],[130,263],[131,269],[132,265],[133,266],[134,264],[135,264],[136,263],[137,269],[138,268],[139,265],[140,265],[141,266],[142,272],[143,275],[144,273],[145,272],[146,275],[147,272],[148,275],[149,264],[150,264],[151,264],[152,264],[153,263],[154,263],[155,268],[156,265],[157,265],[158,265],[159,266],[160,266],[161,272],[162,272],[163,275],[164,264],[165,264],[166,264],[167,264],[168,263],[169,263],[170,263],[171,269],[172,268],[173,265],[174,265],[175,265],[176,266],[177,266],[178,273],[179,273],[180,272],[181,275],[182,264],[183,264],[184,263],[185,269],[186,268],[187,265],[188,265],[189,266],[190,266],[191,268],[192,266],[193,272],[194,275],[195,272],[196,264],[197,266],[198,268],[199,266],[200,263],[201,264],[202,272],[203,275],[204,264],[205,268],[206,266],[207,265],[208,263],[209,264],[210,265],[212,266],[213,263],[214,272],[215,275],[216,264],[217,264],[218,263],[219,263],[220,263],[221,269],[222,269],[223,268],[224,265],[225,265],[226,265],[227,265],[228,265],[229,266],[230,272],[231,275],[232,264],[233,264],[234,263],[235,269],[236,268],[237,265],[238,265],[239,266],[240,272],[241,275],[242,264],[243,264],[244,263],[245,269],[246,268],[247,265],[248,265],[249,266],[250,265],[251,265],[252,265],[253,263]],"b":[[50,"impl-Add%3Cusize%3E-for-Length"],[51,"impl-Add%3Cu16%3E-for-Length"],[52,"impl-Add%3Cu8%3E-for-Length"],[53,"impl-Add-for-Length"],[149,"impl-Display-for-Error"],[150,"impl-Debug-for-Error"],[151,"impl-Debug-for-ErrorKind"],[152,"impl-Display-for-ErrorKind"],[153,"impl-Debug-for-Length"],[154,"impl-Display-for-Length"],[157,"impl-Display-for-Tag"],[158,"impl-Debug-for-Tag"],[164,"impl-From%3CInfallible%3E-for-Error"],[165,"impl-From%3CErrorKind%3E-for-Error"],[168,"impl-From%3Cu8%3E-for-Length"],[169,"impl-From%3Cu16%3E-for-Length"],[218,"impl-TryFrom%3C%26%5B%26dyn+Encodable%5D%3E-for-Length"],[219,"impl-TryFrom%3Cusize%3E-for-Length"],[226,"impl-TryFrom%3Cu8%3E-for-Tag"],[228,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-Tag"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJYAHAABAAIABgAAABEAAQAYAAIAHgABACEAAQAsAAEAMAAAADIABQA7AAAAPwAoAGkAAABrAAIAcgAAAHQAAQB3AAAAeQADAIIADACUAAwAowAAAKUAAQCpAAEAsAAAAM8AAgDTAAAA1QAAANcAJAAHAQAA","P":[[55,"T"],[56,""],[57,"T"],[58,""],[62,"T"],[82,""],[90,"V,T"],[91,""],[104,"T"],[106,""],[109,"T,R,F"],[111,"T"],[112,"T,V"],[113,""],[118,"T"],[120,""],[123,"E,T"],[124,""],[129,"T"],[130,""],[133,"E,T"],[134,""],[141,"V,T"],[142,"T"],[144,"T,F"],[145,"T"],[146,""],[159,"V,T"],[160,"T"],[162,""],[163,"T"],[164,""],[166,"T"],[168,""],[170,"T"],[175,""],[176,"T"],[178,""],[180,"U"],[190,"T"],[191,""],[192,"T"],[193,""],[197,"T"],[198,""],[199,"T"],[200,""],[206,"T,V"],[207,""],[212,"V,T"],[213,""],[214,"U,T"],[218,""],[220,"U,T"],[221,""],[222,"U,T"],[224,""],[225,"U,T"],[226,""],[227,"U,T"],[228,""],[229,"U,T"],[230,"U"],[240,""],[251,"V"],[253,""]]}],["flexiber_derive",{"t":"YY","n":["Decodable","Encodable"],"q":[[0,"flexiber_derive"]],"i":"``","f":"``","D":"f","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA=","P":[]}],["log",{"t":"PPPPPPGGKFFPFFFSFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNMNNNNNNNQNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNNNNNNNNNMQQHNNHNNNNNNNNNNNNNNHHHHNNNNNNQNNNNNNNNNNNNNNNNNNNNNNNNQ","n":["Debug","","Error","","Info","","Level","LevelFilter","Log","Metadata","MetadataBuilder","Off","ParseLevelError","Record","RecordBuilder","STATIC_MAX_LEVEL","SetLoggerError","Trace","","Warn","","args","","as_str","","borrow","","","","","","","","borrow_mut","","","","","","","","build","","builder","","clone","","","","clone_to_uninit","","","","cmp","","","","debug","decrement_severity","","default","","enabled","eq","","","","","","","error","file","","file_static","","flush","fmt","","","","","","","","","","","","from","","","","","","","","from_str","","hash","","","","increment_severity","","info","into","","","","","","","","iter","","level","","","","line","","log","","log_enabled","logger","max","","max_level","metadata","","module_path","","module_path_static","","new","","partial_cmp","","","","","","set_logger","set_logger_racy","set_max_level","set_max_level_racy","target","","","","to_level","to_level_filter","trace","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","warn"],"q":[[0,"log"],[178,"core::fmt"],[179,"core::cmp"],[180,"core::option"],[181,"core::result"],[182,"core::hash"],[183,"core::iter::traits::iterator"],[184,"core::any"]],"i":"nb1010`````0`````1010dl323210AdAbBhB`765432104253765376537632`7642Al8877431`656508877654322118765432187874387`87654321876543650```87`65656553887743````654378`876543218765432187654321`","f":"```````````````{{}b}`````{{{f{d}}}{{f{h}}}}{{{f{jl}}h}{{f{jl}}}}{{{f{n}}}{{f{A`}}}}{{{f{b}}}{{f{A`}}}}{f{{f{c}}}{}}0000000{{{f{j}}}{{f{jc}}}{}}0000000{{{f{l}}}d}{{{f{Ab}}}Ad}{{}l}{{}Ab}{{{f{n}}}n}{{{f{b}}}b}{{{f{d}}}d}{{{f{Ad}}}Ad}{{fAf}Ah}000{{{f{n}}{f{n}}}Aj}{{{f{b}}{f{b}}}Aj}{{{f{Ad}}{f{Ad}}}Aj}{{{f{Ab}}{f{Ab}}}Aj}`87:9{{{f{Al}}{f{Ad}}}An}{{{f{n}}{f{b}}}An}{{{f{n}}{f{n}}}An}{{{f{b}}{f{b}}}An}{{{f{b}}{f{n}}}An}{{{f{Ad}}{f{Ad}}}An}{{{f{Ab}}{f{Ab}}}An}{{{f{B`}}{f{B`}}}An}`{{{f{d}}}{{Bb{{f{A`}}}}}}{{{f{jl}}{Bb{{f{A`}}}}}{{f{jl}}}}10{{{f{Al}}}Ah}{{{f{n}}{f{jBd}}}Bf}0{{{f{b}}{f{jBd}}}Bf}0{{{f{d}}{f{jBd}}}Bf}{{{f{l}}{f{jBd}}}Bf}{{{f{Ad}}{f{jBd}}}Bf}{{{f{Ab}}{f{jBd}}}Bf}{{{f{Bh}}{f{jBd}}}Bf}0{{{f{B`}}{f{jBd}}}Bf}0{cc{}}0000000{{{f{A`}}}{{Bj{nc}}}{}}{{{f{A`}}}{{Bj{bc}}}{}}{{{f{n}}{f{jc}}}AhBl}{{{f{b}}{f{jc}}}AhBl}{{{f{Ad}}{f{jc}}}AhBl}{{{f{Ab}}{f{jc}}}AhBl}{{{f{n}}}n}{{{f{b}}}b}`{{}c{}}0000000{{}{{`{{C`{}{{Bn{n}}}}}}}}{{}{{`{{C`{}{{Bn{b}}}}}}}}{{{f{d}}}n}{{{f{jl}}n}{{f{jl}}}}{{{f{Ad}}}n}{{{f{jAb}}n}{{f{jAb}}}}{{{f{d}}}{{Bb{Cb}}}}{{{f{jl}}{Bb{Cb}}}{{f{jl}}}}{{{f{Al}}{f{d}}}Ah}``{{}{{f{Al}}}}{{}n}{{}b}0{{{f{d}}}{{f{Ad}}}}{{{f{jl}}Ad}{{f{jl}}}}{{{f{d}}}{{Bb{{f{A`}}}}}}{{{f{jl}}{Bb{{f{A`}}}}}{{f{jl}}}}10{{}l}{{}Ab}{{{f{n}}{f{b}}}{{Bb{Aj}}}}{{{f{n}}{f{n}}}{{Bb{Aj}}}}{{{f{b}}{f{b}}}{{Bb{Aj}}}}{{{f{b}}{f{n}}}{{Bb{Aj}}}}{{{f{Ad}}{f{Ad}}}{{Bb{Aj}}}}{{{f{Ab}}{f{Ab}}}{{Bb{Aj}}}}{{{f{Al}}}{{Bj{AhBh}}}}0{bAh}0{{{f{d}}}{{f{A`}}}}{{{f{jl}}{f{A`}}}{{f{jl}}}}{{{f{Ad}}}{{f{A`}}}}{{{f{jAb}}{f{A`}}}{{f{jAb}}}}{{{f{b}}}{{Bb{n}}}}{{{f{n}}}b}`{c{{Bj{e}}}{}{}}0000000{{}{{Bj{c}}}{}}0000000{fCd}0000000`","D":"Kl","p":[[6,"LevelFilter",0],[5,"Record",0],[1,"reference",null,null,1],[5,"Arguments",178],[0,"mut"],[5,"RecordBuilder",0],[6,"Level",0],[1,"str"],[5,"MetadataBuilder",0],[5,"Metadata",0],[1,"u8"],[1,"unit"],[6,"Ordering",179],[10,"Log",0],[1,"bool"],[5,"ParseLevelError",0],[6,"Option",180,null,1],[5,"Formatter",178],[8,"Result",178],[5,"SetLoggerError",0],[6,"Result",181,null,1],[10,"Hasher",182],[17,"Item"],[10,"Iterator",183],[1,"u32"],[5,"TypeId",184]],"r":[],"b":[[63,"impl-PartialEq%3CLevelFilter%3E-for-Level"],[64,"impl-PartialEq-for-Level"],[65,"impl-PartialEq-for-LevelFilter"],[66,"impl-PartialEq%3CLevel%3E-for-LevelFilter"],[76,"impl-Display-for-Level"],[77,"impl-Debug-for-Level"],[78,"impl-Display-for-LevelFilter"],[79,"impl-Debug-for-LevelFilter"],[84,"impl-Debug-for-SetLoggerError"],[85,"impl-Display-for-SetLoggerError"],[86,"impl-Debug-for-ParseLevelError"],[87,"impl-Display-for-ParseLevelError"],[136,"impl-PartialOrd%3CLevelFilter%3E-for-Level"],[137,"impl-PartialOrd-for-Level"],[138,"impl-PartialOrd-for-LevelFilter"],[139,"impl-PartialOrd%3CLevel%3E-for-LevelFilter"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFQACAAaAA8ALgALAD0AAQBAAAYATQALAGEABQCJAAUAmgAXAA==","P":[[25,"T"],[41,""],[88,"T"],[96,"FromStr::Err"],[98,"__H"],[102,""],[105,"U"],[113,""],[153,"U,T"],[161,"U"],[169,""]]}],["proc_macro2",{"t":"PPPGFPFPPFFPPPFPGFFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNFENNNNNNNNNNNNNNN","n":["Alone","Brace","Bracket","Delimiter","Group","","Ident","","Joint","LexError","Literal","","None","Parenthesis","Punct","","Spacing","Span","TokenStream","TokenTree","as_char","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","byte_character","byte_string","c_string","call_site","character","clone","","","","","","","","","clone_into","","","","","","","","","clone_to_uninit","","","","","","","","","cmp","default","delim_span","delimiter","eq","","","","extend","","extra","f32_suffixed","f32_unsuffixed","f64_suffixed","f64_unsuffixed","fmt","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","from_iter","","from_str","","hash","i128_suffixed","i128_unsuffixed","i16_suffixed","i16_unsuffixed","i32_suffixed","i32_unsuffixed","i64_suffixed","i64_unsuffixed","i8_suffixed","i8_unsuffixed","into","","","","","","","","","","into_iter","is_empty","isize_suffixed","isize_unsuffixed","join","located_at","mixed_site","new","","","","new_raw","partial_cmp","resolved_at","set_span","","","","","source_text","spacing","span","","","","","","span_close","span_open","stream","string","subspan","to_owned","","","","","","","","","to_string","","","","","","","token_stream","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","u128_suffixed","u128_unsuffixed","u16_suffixed","u16_unsuffixed","u32_suffixed","u32_unsuffixed","u64_suffixed","u64_unsuffixed","u8_suffixed","u8_unsuffixed","unwrap","usize_suffixed","usize_unsuffixed","DelimSpan","borrow","borrow_mut","clone","clone_into","clone_to_uninit","close","fmt","from","into","join","open","to_owned","try_from","try_into","type_id","IntoIter","TokenStream","borrow","borrow_mut","clone","clone_into","clone_to_uninit","fmt","from","into","into_iter","next","size_hint","to_owned","try_from","try_into","type_id"],"q":[[0,"proc_macro2"],[239,"proc_macro2::extra"],[255,"proc_macro2::token_stream"],[272,"core::ffi::c_str"],[273,"core::cmp"],[274,"core::marker"],[275,"core::convert"],[276,"core::iter::traits::collect"],[277,"core::fmt"],[278,"proc_macro"],[279,"core::result"],[280,"core::hash"],[281,"core::option"],[282,"alloc::string"],[283,"core::ops::range"],[284,"core::any"]],"i":"AlAj0``Af`02``011`0````bCfAdAb4Ah647Anl5437286910000304372869104372869104372869101422891144`000055443772286691100544433777772869104440100000000005437286910440033342611137261036572610222004372869105472610`5437286910543728691054372869100000000000300`Bd00000000000000``Dn00000000000000","f":"````````````````````{{{d{b}}}f}{d{{d{c}}}{}}000000000{{{d{h}}}{{d{hc}}}{}}000000000{jl}{{{d{{n{j}}}}}l}{{{d{A`}}}l}{{}Ab}{fl}{{{d{Ad}}}Ad}{{{d{Ab}}}Ab}{{{d{Af}}}Af}{{{d{Ah}}}Ah}{{{d{Aj}}}Aj}{{{d{b}}}b}{{{d{Al}}}Al}{{{d{An}}}An}{{{d{l}}}l}{{d{d{hc}}}B`{}}00000000{{dj}B`}00000000{{{d{An}}{d{An}}}Bb}{{}Ad}{{{d{Ah}}}Bd}{{{d{Ah}}}Aj}{{{d{Aj}}{d{Aj}}}Bf}{{{d{Al}}{d{Al}}}Bf}{{{d{An}}{d{An}}}Bf}{{{d{An}}{d{c}}}Bf{Bh{Bl{Bj}}}}{{{d{hAd}}c}B`{{C`{}{{Bn{Af}}}}}}{{{d{hAd}}c}B`{{C`{}{{Bn{Ad}}}}}}`{Cbl}0{Cdl}0{{{d{Cf}}{d{hCh}}}Cj}0{{{d{Ad}}{d{hCh}}}Cj}0{{{d{Ab}}{d{hCh}}}Cj}{{{d{Af}}{d{hCh}}}Cj}0{{{d{Ah}}{d{hCh}}}Cj}0{{{d{Aj}}{d{hCh}}}Cj}{{{d{b}}{d{hCh}}}Cj}0{{{d{Al}}{d{hCh}}}Cj}{{{d{An}}{d{hCh}}}Cj}0{{{d{l}}{d{hCh}}}Cj}0{cc{}}0{ClAd}{AfAd}{CnAb}3{lAf}{bAf}{AnAf}{AhAf}7777777{cAd{{C`{}{{Bn{Af}}}}}}{cAd{{C`{}{{Bn{Ad}}}}}}{{{d{Bj}}}{{D`{AdCf}}}}{{{d{Bj}}}{{D`{lCf}}}}{{{d{An}}{d{hc}}}B`Db}{Ddl}0{Dfl}0{Dhl}0{Djl}0{Dll}0{{}c{}}000000000{AdDn}{{{d{Ad}}}Bf}{E`l}0{{{d{Ab}}Ab}{{Eb{Ab}}}}{{{d{Ab}}Ab}Ab}{{}Ab}{{}Ad}{{AjAd}Ah}{{fAl}b}{{{d{Bj}}Ab}An}0{{{d{An}}{d{An}}}{{Eb{Bb}}}}6{{{d{hAf}}Ab}B`}{{{d{hAh}}Ab}B`}{{{d{hb}}Ab}B`}{{{d{hAn}}Ab}B`}{{{d{hl}}Ab}B`}{{{d{Ab}}}{{Eb{Ed}}}}{{{d{b}}}Al}{{{d{Cf}}}Ab}{{{d{Af}}}Ab}{{{d{Ah}}}Ab}{{{d{b}}}Ab}{{{d{An}}}Ab}{{{d{l}}}Ab}33{{{d{Ah}}}Ad}{{{d{Bj}}}l}{{{d{l}}c}{{Eb{Ab}}}{{Eh{Ef}}}}{dc{}}00000000{dEd}000000`{c{{D`{e}}}{}{}}000000000{{}{{D`{c}}}{}}000000000{dEj}000000000{Ell}0{Enl}0{F`l}0{Fbl}0{jl}0{AbCn}{Efl}0`{d{{d{c}}}{}}{{{d{h}}}{{d{hc}}}{}}{{{d{Bd}}}Bd}{{d{d{hc}}}B`{}}{{dj}B`}{{{d{Bd}}}Ab}{{{d{Bd}}{d{hCh}}}Cj}{cc{}}{{}c{}}33{dc{}}{c{{D`{e}}}{}{}}{{}{{D`{c}}}{}}{dEj}``<;{{{d{Dn}}}Dn}:9{{{d{Dn}}{d{hCh}}}Cj}76{{}c{}}{{{d{hDn}}}{{Eb{Af}}}}{{{d{Dn}}}{{Fd{Ef{Eb{Ef}}}}}}8765","D":"Nh","p":[[5,"Punct",0],[1,"reference",null,null,1],[1,"char"],[0,"mut"],[1,"u8"],[5,"Literal",0],[1,"slice"],[5,"CStr",272],[5,"Span",0],[5,"TokenStream",0],[6,"TokenTree",0],[5,"Group",0],[6,"Delimiter",0],[6,"Spacing",0],[5,"Ident",0],[1,"unit"],[6,"Ordering",273],[5,"DelimSpan",239],[1,"bool"],[10,"Sized",274],[1,"str"],[10,"AsRef",275],[17,"Item"],[10,"IntoIterator",276],[1,"f32"],[1,"f64"],[5,"LexError",0],[5,"Formatter",277],[8,"Result",277],[5,"TokenStream",278],[5,"Span",278],[6,"Result",279,null,1],[10,"Hasher",280],[1,"i128"],[1,"i16"],[1,"i32"],[1,"i64"],[1,"i8"],[5,"IntoIter",255],[1,"isize"],[6,"Option",281,null,1],[5,"String",282],[1,"usize"],[10,"RangeBounds",283],[5,"TypeId",284],[1,"u128"],[1,"u16"],[1,"u32"],[1,"u64"],[1,"tuple",null,null,1]],"r":[[256,0]],"b":[[79,"impl-PartialEq-for-Ident"],[80,"impl-PartialEq%3CT%3E-for-Ident"],[81,"impl-Extend%3CTokenTree%3E-for-TokenStream"],[82,"impl-Extend%3CTokenStream%3E-for-TokenStream"],[88,"impl-Display-for-LexError"],[89,"impl-Debug-for-LexError"],[90,"impl-Debug-for-TokenStream"],[91,"impl-Display-for-TokenStream"],[93,"impl-Display-for-TokenTree"],[94,"impl-Debug-for-TokenTree"],[95,"impl-Display-for-Group"],[96,"impl-Debug-for-Group"],[98,"impl-Display-for-Punct"],[99,"impl-Debug-for-Punct"],[101,"impl-Display-for-Ident"],[102,"impl-Debug-for-Ident"],[103,"impl-Display-for-Literal"],[104,"impl-Debug-for-Literal"],[107,"impl-From%3CTokenStream%3E-for-TokenStream"],[108,"impl-From%3CTokenTree%3E-for-TokenStream"],[111,"impl-From%3CLiteral%3E-for-TokenTree"],[112,"impl-From%3CPunct%3E-for-TokenTree"],[113,"impl-From%3CIdent%3E-for-TokenTree"],[114,"impl-From%3CGroup%3E-for-TokenTree"],[122,"impl-FromIterator%3CTokenTree%3E-for-TokenStream"],[123,"impl-FromIterator%3CTokenStream%3E-for-TokenStream"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJwAEQAWABMALwAcAE4ABQBZABAAbAACAHAAAwB7AAQAlAAAAKAAAACpAAAAtAAPAMUAHQDxAAQA9wAAAPwAAwABAQYACgEGAA==","P":[[21,"T"],[41,""],[55,"T"],[64,""],[80,"T"],[81,"I"],[84,""],[105,"T"],[107,""],[110,"T"],[111,""],[115,"T"],[122,"I"],[124,""],[126,"H"],[127,""],[137,"U"],[147,""],[178,"R"],[179,"T"],[188,""],[196,"U,T"],[206,"U"],[216,""],[240,"T"],[242,""],[243,"T"],[244,""],[247,"T"],[248,"U"],[249,""],[251,"T"],[252,"U,T"],[253,"U"],[254,""],[257,"T"],[259,""],[260,"T"],[261,""],[263,"T"],[264,"U"],[265,"I"],[266,""],[268,"T"],[269,"U,T"],[270,"U"],[271,""]]}],["quote",{"t":"KKKMMMMMQNNQQNNNNM","n":["IdentFragment","ToTokens","TokenStreamExt","append","append_all","append_separated","append_terminated","fmt","format_ident","into_token_stream","","quote","quote_spanned","span","","to_token_stream","","to_tokens"],"q":[[0,"quote"],[18,"quote::ext"],[19,"proc_macro2"],[20,"core::convert"],[21,"core::iter::traits::collect"],[22,"quote::to_tokens"],[23,"quote::ident_fragment"],[24,"core::fmt"],[25,"core::option"]],"i":"```d000Ab`A`0``11000","f":"```{{{f{bd}}c}h{{l{j}}}}{{{f{bd}}c}hn}{{{f{bd}}ce}hnA`}0{{{f{Ab}}{f{bAd}}}Af}`{A`Ah}0``{{{f{Ab}}}{{Al{Aj}}}}0{{{f{A`}}}Ah}0{{{f{A`}}{f{bAh}}}h}","D":"Bf","p":[[0,"mut"],[10,"TokenStreamExt",0,18],[1,"reference",null,null,1],[1,"unit"],[6,"TokenTree",19],[10,"Into",20,null,1],[10,"IntoIterator",21],[10,"ToTokens",0,22],[10,"IdentFragment",0,23],[5,"Formatter",24],[8,"Result",24],[5,"TokenStream",19],[5,"Span",19],[6,"Option",25,null,1]],"r":[[0,23],[1,22],[2,18],[3,18],[4,18],[5,18],[6,18],[7,23],[9,22],[10,22],[13,23],[14,23],[15,22],[16,22],[17,22]],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA=","P":[[3,"U"],[4,"I"],[5,"I,U"],[7,""]]}],["syn",{"t":"FPPPPFPPPFPFPPGFPPFFGPPPPPPPPPFPPPPPPPPPPPPPFFPPGFFFPPFPPPPPFGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFPGFGFFPPPGGFPPPFPFPFPPPPPPPPFPPPPFPGPFFFFFFFFPPFPPGPPGGFFPPPPPPPPPPPPPPPPTPPPPFFPPPGFPFFPPFPPPPPPPPIPGPPPPPPPPPPQPFGPPPPPFGPPPPFFFFFFFFFGFFFFFFFGPPPPPPFPPPPFGFGPPOOOOOOOOOONOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOQOOOOQCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOONONNOOQQONNNOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOCNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOOOONOOOONOOOOOOONOONCOOOOOOOOOOONNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOQCHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNQNNNNNQQHNNNNNNOOOOOOOONOOOOCOOOONNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOCNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONONNNNNNOOOOOOOCOONNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKMTMFNNNNONNHONNNNFPFFFPRKFIKKIFNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNMNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKMMPFFFFGFFFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKMFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFKFFFFFFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNNHNN","n":["Abi","Add","AddAssign","And","AngleBracketed","AngleBracketedGenericArguments","Array","","Assign","AssocConst","","AssocType","","Async","AttrStyle","Attribute","Await","BareFn","BareFnArg","BareVariadic","BinOp","Binary","BitAnd","BitAndAssign","BitOr","BitOrAssign","BitXor","BitXorAssign","Block","Bool","BoundLifetimes","Brace","Bracket","Break","Byte","ByteStr","CStr","Call","Cast","Char","Closure","Const","","","ConstParam","Constraint","","Continue","Data","DataEnum","DataStruct","DataUnion","Default","Deref","DeriveInput","Div","DivAssign","Enum","Eq","Err","Error","Expr","ExprArray","ExprAssign","ExprAsync","ExprAwait","ExprBinary","ExprBlock","ExprBreak","ExprCall","ExprCast","ExprClosure","ExprConst","ExprContinue","ExprField","ExprForLoop","ExprGroup","ExprIf","ExprIndex","ExprInfer","ExprLet","ExprLit","ExprLoop","ExprMacro","ExprMatch","ExprMethodCall","ExprParen","ExprPath","ExprRange","ExprRawAddr","ExprReference","ExprRepeat","ExprReturn","ExprStruct","ExprTry","ExprTryBlock","ExprTuple","ExprUnary","ExprUnsafe","ExprWhile","ExprYield","Field","","FieldMutability","FieldValue","Fields","FieldsNamed","FieldsUnnamed","Float","ForLoop","Ge","GenericArgument","GenericParam","Generics","Group","","Gt","Ident","If","ImplGenerics","ImplTrait","Index","","Infer","","Inherited","Inner","Int","Le","Let","Lifetime","","","","","LifetimeParam","List","Lit","","LitBool","LitByte","LitByteStr","LitCStr","LitChar","LitFloat","LitInt","LitStr","Loop","Lt","Macro","","","MacroDelimiter","Match","Maybe","Member","Meta","MetaList","MetaNameValue","MethodCall","Mul","MulAssign","NameValue","Named","","Ne","Neg","Never","None","","","Not","Ok","Or","Outer","PLACEHOLDER","Paren","","","Parenthesized","ParenthesizedGenericArguments","Path","","","","PathArguments","PathSegment","PreciseCapture","PredicateLifetime","PredicateType","Ptr","Public","QSelf","Range","RawAddr","Reference","","Rem","RemAssign","Repeat","Restricted","Result","Return","ReturnType","Shl","ShlAssign","Shr","ShrAssign","Slice","Str","Struct","","Sub","SubAssign","Token","Trait","TraitBound","TraitBoundModifier","TraitObject","Try","TryBlock","Tuple","","Turbofish","Type","","","","","TypeArray","TypeBareFn","TypeGenerics","TypeGroup","TypeImplTrait","TypeInfer","TypeMacro","TypeNever","TypeParam","TypeParamBound","TypeParen","TypePath","TypePtr","TypeReference","TypeSlice","TypeTraitObject","TypeTuple","UnOp","Unary","Union","Unit","Unnamed","","Unsafe","Variant","Verbatim","","","","VisRestricted","Visibility","WhereClause","WherePredicate","While","Yield","abi","and_token","","apostrophe","args","","","arguments","as_token","","as_turbofish","attrs","","","","","","","","","","","","","","","","","","","","","","","","bang_token","","base","base10_digits","","base10_parse","","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bounded_ty","bounds","","","","","","","brace_token","","","braced","bracket_token","","","","bracketed","buffer","clone","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","cmp","","colon2_token","colon_token","","","","","","","","combine","comma","const_params","const_params_mut","const_token","","custom_keyword","custom_punctuation","data","default","","","","","delimiter","","discriminant","dot2_token","dot_token","","dots","dyn_token","elem","","","","","","elems","","enum_token","eq","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","eq_token","","","","","expr","","","","","","","ext","extend","extern_token","fields","","","","fmt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","fn_token","for_token","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","func","generics","","","","get_ident","group_token","","gt_token","","","","hash","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ident","","","","","","","","","","impl_token","in_token","index","","inputs","","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_compile_error","into_iter","","","","","is_empty","","is_ident","is_none","iter","iter_mut","leading_colon","left","len","","lifetime","","","lifetimes","","","","","lifetimes_mut","lit","lt_token","","","","mac","","make_where_clause","member","","members","meta","","method","modifier","mutability","","","","name","","","named","new","","","","","","","","","","","","","new_raw","new_spanned","op","","output","","params","paren_token","","","","","","","","","","","parenthesized","parse","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","parse2","parse_any","parse_args","","parse_args_with","","parse_body","parse_body_with","parse_inner","parse_macro_input","parse_mod_style","parse_named","parse_nested_meta","","parse_outer","parse_quote","parse_quote_spanned","parse_str","parse_unnamed","parse_with","partial_cmp","","path","","","","","","","","","","peek","position","pound_token","predicates","pub_token","punctuated","qself","","","receiver","require_ident","require_list","require_name_value","require_path_only","rest","right","segments","semi_token","","set_span","","","","","","","","","","","span","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","spanned","split_for_impl","star_token","struct_token","style","suffix","","","","","","","","to_compile_error","to_owned","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","to_string","","","","","to_tokens","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","token","","","","","","","","","tokens","","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","turbofish","ty","","","","","","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","type_params","type_params_mut","underscore_token","union_token","unnamed","unraw","unsafety","value","","","","","","","","","variadic","variants","vis","","visit","where_clause","where_token","without_plus","","","","Cursor","TokenBuffer","any_group","begin","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","empty","eof","eq","from","","group","ident","into","","lifetime","literal","new","new2","partial_cmp","punct","span","to_owned","token_stream","token_tree","try_from","","try_into","","type_id","","IdentExt","parse_any","peek_any","unraw","ParseNestedMeta","borrow","borrow_mut","error","from","input","into","parse_nested_meta","parser","path","try_from","try_into","type_id","value","End","Err","Error","Lookahead1","Nothing","Ok","Output","Parse","ParseBuffer","ParseStream","Parser","Peek","Result","StepCursor","advance_to","borrow","","","","","borrow_mut","","","","","call","clone","","","clone_into","","","clone_to_uninit","","","cursor","deref","discouraged","display","drop","eq","error","","","fmt","","","fork","from","","","","","hash","into","","","","","is_empty","lookahead1","parse","","","","parse2","parse_any_delimiter","parse_str","parse_terminated","peek","","","peek2","peek3","span","","step","to_owned","","","to_string","to_tokens","try_from","","","","","try_into","","","","","type_id","","","","","AnyDelimiter","Speculative","advance_to","parse_any_delimiter","End","IntoIter","IntoPairs","Iter","IterMut","Pair","Pairs","PairsMut","Punctuated","","borrow","","","","","","","","borrow_mut","","","","","","","","clear","clone","","","","","","clone_from","clone_into","","","","","","clone_to_uninit","","","","","","cloned","default","empty_or_trailing","eq","extend","","first","first_mut","fmt","from","","","","","","","","from_iter","","get","get_mut","hash","index","index_mut","insert","into","","","","","","","","into_iter","","","","","","","","","into_pairs","into_tuple","into_value","is_empty","iter","iter_mut","last","last_mut","len","","","","","","","new","","next","","","","","","next_back","","","","","","pairs","pairs_mut","parse_separated_nonempty","parse_separated_nonempty_with","parse_terminated","parse_terminated_with","pop","pop_punct","punct","punct_mut","push","push_punct","push_value","size_hint","","","","","","span","","to_owned","","","","","","to_tokens","","trailing_punct","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","value","value_mut","Spanned","span","Abstract","And","AndAnd","AndEq","As","Async","At","Auto","Await","Become","Box","Brace","Bracket","Break","Caret","CaretEq","Colon","Comma","Const","Continue","Crate","Default","Do","Dollar","Dot","DotDot","DotDotDot","DotDotEq","Dyn","Else","Enum","Eq","EqEq","Extern","FatArrow","Final","Fn","For","Ge","Group","Gt","If","Impl","In","LArrow","Le","Let","Loop","Lt","Macro","Match","Minus","MinusEq","Mod","Move","Mut","Ne","Not","Or","OrEq","OrOr","Override","Paren","PathSep","Percent","PercentEq","Plus","PlusEq","Pound","Priv","Pub","Question","RArrow","Raw","Ref","Return","SelfType","SelfValue","Semi","Shl","ShlEq","Shr","ShrEq","Slash","SlashEq","Star","StarEq","Static","Struct","Super","Tilde","Token","Trait","Try","Type","Typeof","Underscore","Union","Unsafe","Unsized","Use","Virtual","Where","While","Yield","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","default","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deref","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","eq","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","fmt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","hash","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","parse","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","span","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","spans","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","surround","","","","to_owned","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","to_tokens","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Visit","visit_abi","","","visit_angle_bracketed_generic_arguments","","","visit_assoc_const","","","visit_assoc_type","","","visit_attr_style","","","visit_attribute","","","visit_bare_fn_arg","","","visit_bare_variadic","","","visit_bin_op","","","visit_bound_lifetimes","","","visit_const_param","","","visit_constraint","","","visit_data","","","visit_data_enum","","","visit_data_struct","","","visit_data_union","","","visit_derive_input","","","visit_expr","","","visit_expr_binary","","","visit_expr_call","","","visit_expr_cast","","","visit_expr_field","","","visit_expr_group","","","visit_expr_index","","","visit_expr_lit","","","visit_expr_macro","","","visit_expr_method_call","","","visit_expr_paren","","","visit_expr_path","","","visit_expr_reference","","","visit_expr_struct","","","visit_expr_tuple","","","visit_expr_unary","","","visit_field","","","visit_field_mutability","","","visit_field_value","","","visit_fields","","","visit_fields_named","","","visit_fields_unnamed","","","visit_generic_argument","","","visit_generic_param","","","visit_generics","","","visit_ident","","","visit_index","","","visit_lifetime","","","visit_lifetime_param","","","visit_lit","","","visit_lit_bool","","","visit_lit_byte","","","visit_lit_byte_str","","","visit_lit_char","","","visit_lit_cstr","","","visit_lit_float","","","visit_lit_int","","","visit_lit_str","","","visit_macro","","","visit_macro_delimiter","","","visit_member","","","visit_meta","","","visit_meta_list","","","visit_meta_name_value","","","visit_parenthesized_generic_arguments","","","visit_path","","","visit_path_arguments","","","visit_path_segment","","","visit_predicate_lifetime","","","visit_predicate_type","","","visit_qself","","","visit_return_type","","","visit_span","","","visit_token_stream","","visit_trait_bound","","","visit_trait_bound_modifier","","","visit_type","","","visit_type_array","","","visit_type_bare_fn","","","visit_type_group","","","visit_type_impl_trait","","","visit_type_infer","","","visit_type_macro","","","visit_type_never","","","visit_type_param","","","visit_type_param_bound","","","visit_type_paren","","","visit_type_path","","","visit_type_ptr","","","visit_type_reference","","","visit_type_slice","","","visit_type_trait_object","","","visit_type_tuple","","","visit_un_op","","","visit_variant","","","visit_vis_restricted","","","visit_visibility","","","visit_where_clause","","","visit_where_predicate","",""],"q":[[0,"syn"],[2569,"syn::buffer"],[2605,"syn::ext"],[2609,"syn::meta"],[2623,"syn::parse"],[2624,"syn"],[2625,"syn::parse"],[2628,"syn"],[2629,"syn::parse"],[2720,"syn::parse::discouraged"],[2724,"syn::punctuated"],[2897,"syn::spanned"],[2899,"syn::token"],[5016,"syn::visit"],[5304,"syn::ty"],[5305,"core::option"],[5306,"syn::expr"],[5307,"syn::lifetime"],[5308,"proc_macro2"],[5309,"syn::path"],[5310,"syn::generics"],[5311,"syn::data"],[5312,"alloc::vec"],[5313,"syn::derive"],[5314,"syn::mac"],[5315,"alloc::boxed"],[5316,"syn::lit"],[5317,"syn::error"],[5318,"core::str::traits"],[5319,"syn::attr"],[5320,"syn::op"],[5321,"syn::restriction"],[5322,"core::cmp"],[5323,"core::convert"],[5324,"core::marker"],[5325,"core::iter::traits::collect"],[5326,"core::fmt"],[5327,"core::result"],[5328,"core::hash"],[5329,"core::ffi::c_str"],[5330,"quote::to_tokens"],[5331,"proc_macro"],[5332,"core::ops::function"],[5333,"proc_macro2::extra"],[5334,"alloc::string"],[5335,"core::any"],[5336,"alloc::ffi::c_str"],[5337,"syn::lookahead"],[5338,"core::clone"],[5339,"core::default"],[5340,"syn::gen::visit"],[5341,"syn::gen"]],"i":"`Kn00Aj`IhFh1`Ld`02``21```24444442Jn`Kl0411144144J`3``35````NbL``99Ib:F```````````````````````````````````````````9`````69;```98;`9`8`998LlHf8=;`6JdJl;`Hh`>````````>Kn`?>`?Jh````Ih223HnIj4ClCnfD`DbDdDfDhDjDlDnE`EbEfCbEjEn10H`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbFfDhDjFj3FlFn;GbGfD``GhCfGlGn``H`HbHdBbBfl9HfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbHblAfBlDfDhDjDlFjFfFlH`=In05Ml``Bn2JbAj:9HjEbBhD`CbAdE`G`GlMbMh>jGnDbMnGfHb0HdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbHlDjDlLfLhAlCdCfClfDdDf`H`N`BhIdIfD`55Hb00HdBbBfl0GhHfHhHjHl=HnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIj0Il0DfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEj0En0KjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbbJbH`0Hb000000HdBbBflGhHfHh000HjHlBhHn00GbI`BlBnIbIdGfIfIh000000000000000000000000000000000000000AAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIj000Il0DfInJ`000DhDj0DlJbJd00JfJhJjJl00FjFfJn00000000K`KbKdKfKhEj0En0KjEbKlKnL`Lb0Ah0AjLdAfLfLhFlLjB`LlLnM`Fh00000000000000GlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbA`BnLfLhFlLbCdMbInJbAfB`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NblBhBlBnDjDlAhLfLhFlFnLnCfIlLjbH`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`00Hn000AjLb1220C`3GlDhFj?InJbJfFfb4Ch54AfB`CjMf9CbDfHn`GhAd:::7C`?IdGlHb?JnK`KbKdKfKhEjEnKjH`:::HdBbBfl0GhHhHjHlBhHnGbI`BlBnIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIj0Il0DfInJ`DhDjDlJbJdJfJhJjJlFjFfJn0K`0Kb0Kd0Kf0Kh0Ej0En0Kj0EbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnFhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbIlKj`In;IdGhJnK`KbKdKfKhEjEnH`0HbHdBbBfl>HfHhHjHlBhHnGbI`BlBnIbIdGfIfIhC`A`AlCbCdCfChCjAdClCnfD`DbDdIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`HblEjEn3HdBbBf5GhHhHjHlBhHnGbI`BlBnIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKnL`LbAhAjLdAfLfLhFlLjLlLnFhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`Nb`K`KbKdKfKhEjEnKjHjEbH`HbHdBbBflGhHfHh:HlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbH`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbAdBlAlDlLfB`8H`HbHdBbBflGhHfHhHjHlBhHnGbI`BlBnIbIdGfIfIhAAnAB`ABbABhC`ABjABlA`AlABnAC`ACfCbAChCdACnCfAD`ADbChADfCjADhAdClCnAClAAjfACbADdD`ABdAAlDbDdABfACdACjIjIlDfInJ`DhDjDlJbJdJfJhJjJlFjFfJnK`KbKdKfKhEjEnKjEbKlKnL`LbAhAjLdAfLfLhFlLjB`LlLnM`FhGlbMbFnMdMfEfMhMjMljGnG`MnN`DnE`NbIn0>IfI`HbbK`KbKdKfKhKjHl1Lh8GfBlBn`?JjFhFnG`Nb``AIdAIh01011111110111011100111111010101`AIn00`AGf000000`00000`F````0AGd```````AJ`AJjAJd2AJfAJh32410421021021041`24034144043241003241044AG`56165654355551532151435214352143521``AK`AKbAKl````````0AbAKfALfAKhAKjAElAEn765432107665321766532176532177666666666543210766666666654321076665432106776666665432106754321054321066666666776665432106765321767665432107654321076543210777`ALj`````````````````````````````````````````````````````````````````````````````````````````````````````````AE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAAhhBAlBAnNjBBbBBdNnOjAEbAF`BCdEdBCjBDbBDfAGlBDjAH`BEfAHfBElAAhhBAlBAnNjBBbBBdNnOjAEbAF`BCdEdBCjBDbBDfAGlBDjAH`BEfAHfBElAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElAAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElAE`ALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfGdGjAFlAAhhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElAE`GdGjAFl3AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFlAE`AAhALlAnALnAM`AMbAMdAMfAMhNlAMjAAfAMlAMnAN`ANbObA@`ANdA@jA@lANfAEfANhANjANlANnAO`AObAOdAOfAOhAOjAGnAOlAOnB@`AA`AAbB@bAHhAAdB@dB@fB@hB@jAHnB@lB@nBA`BAbAIbBAdBAfhBAhBAjBAlBAnBB`NjBBbBBdNnBBfO`BBhOjBBjBBlBBnAEbBC`BCbAF`BCdBCfBChEdBCjBClBCnBD`BDbBDdBDfBDhAGlBDjBDlAH`BDnBE`BEbBEdBEfBEhAHfBEjBElGdGjAFl``BF`0`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`0000`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00`00","f":"````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{bd}{fh}{jh}{ln}{A`Ab}{AdAb}{AfAb}{AhAj}{AlAn}{B`d}{{{Bd{Bb}}}Bf}{BhBj}{BlBj}{BnBj}{C`Bj}{A`Bj}{AlBj}{CbBj}{CdBj}{CfBj}{ChBj}{CjBj}{AdBj}{ClBj}{CnBj}{fBj}{D`Bj}{DbBj}{DdBj}{DfBj}{DhBj}{DjBj}{DlBj}{DnBj}{E`Bj}{EbEd}{EfEd}{CbEh}{{{Bd{Ej}}}{{Bd{El}}}}{{{Bd{En}}}{{Bd{El}}}}{{{Bd{Ej}}}{{F`{c}}}Fb}{{{Bd{En}}}{{F`{c}}}Fb}{Bd{{Bd{c}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{Fd}}}{{Bd{Fdc}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{FfFh}{DhAb}{DjAb}{FjAb}{FfAb}{FlAb}{FnAb}{G`Ab}{GbGd}{GfGd}{D`Gd}`{GhGj}{CfGj}{GlGj}{GnGj}``{{{Bd{H`}}}H`}{{{Bd{Hb}}}Hb}{{{Bd{Hd}}}Hd}{{{Bd{Bb}}}Bb}{{{Bd{Bf}}}Bf}{{{Bd{l}}}l}{{{Bd{Gh}}}Gh}{{{Bd{Hf}}}Hf}{{{Bd{Hh}}}Hh}{{{Bd{Hj}}}Hj}{{{Bd{Hl}}}Hl}{{{Bd{Bh}}}Bh}{{{Bd{Hn}}}Hn}{{{Bd{Gb}}}Gb}{{{Bd{I`}}}I`}{{{Bd{Bl}}}Bl}{{{Bd{Bn}}}Bn}{{{Bd{Ib}}}Ib}{{{Bd{Id}}}Id}{{{Bd{Gf}}}Gf}{{{Bd{If}}}If}{{{Bd{Ih}}}Ih}{{{Bd{C`}}}C`}{{{Bd{A`}}}A`}{{{Bd{Al}}}Al}{{{Bd{Cb}}}Cb}{{{Bd{Cd}}}Cd}{{{Bd{Cf}}}Cf}{{{Bd{Ch}}}Ch}{{{Bd{Cj}}}Cj}{{{Bd{Ad}}}Ad}{{{Bd{Cl}}}Cl}{{{Bd{Cn}}}Cn}{{{Bd{f}}}f}{{{Bd{D`}}}D`}{{{Bd{Db}}}Db}{{{Bd{Dd}}}Dd}{{{Bd{Ij}}}Ij}{{{Bd{Il}}}Il}{{{Bd{Df}}}Df}{{{Bd{In}}}In}{{{Bd{J`}}}J`}{{{Bd{Dh}}}Dh}{{{Bd{Dj}}}Dj}{{{Bd{Dl}}}Dl}{{{Bd{Jb}}}Jb}{{{Bd{Jd}}}Jd}{{{Bd{Jf}}}Jf}{{{Bd{Jh}}}Jh}{{{Bd{Jj}}}Jj}{{{Bd{Jl}}}Jl}{{{Bd{Fj}}}Fj}{{{Bd{Ff}}}Ff}{{{Bd{Jn}}}Jn}{{{Bd{K`}}}K`}{{{Bd{Kb}}}Kb}{{{Bd{Kd}}}Kd}{{{Bd{Kf}}}Kf}{{{Bd{Kh}}}Kh}{{{Bd{Ej}}}Ej}{{{Bd{En}}}En}{{{Bd{Kj}}}Kj}{{{Bd{Eb}}}Eb}{{{Bd{Kl}}}Kl}{{{Bd{Kn}}}Kn}{{{Bd{L`}}}L`}{{{Bd{Lb}}}Lb}{{{Bd{Ah}}}Ah}{{{Bd{Aj}}}Aj}{{{Bd{Ld}}}Ld}{{{Bd{Af}}}Af}{{{Bd{Lf}}}Lf}{{{Bd{Lh}}}Lh}{{{Bd{Fl}}}Fl}{{{Bd{Lj}}}Lj}{{{Bd{B`}}}B`}{{{Bd{Ll}}}Ll}{{{Bd{Ln}}}Ln}{{{Bd{M`}}}M`}{{{Bd{Fh}}}Fh}{{{Bd{Gl}}}Gl}{{{Bd{b}}}b}{{{Bd{Mb}}}Mb}{{{Bd{Fn}}}Fn}{{{Bd{Md}}}Md}{{{Bd{Mf}}}Mf}{{{Bd{Ef}}}Ef}{{{Bd{Mh}}}Mh}{{{Bd{Mj}}}Mj}{{{Bd{Ml}}}Ml}{{{Bd{j}}}j}{{{Bd{Gn}}}Gn}{{{Bd{G`}}}G`}{{{Bd{Mn}}}Mn}{{{Bd{N`}}}N`}{{{Bd{Dn}}}Dn}{{{Bd{E`}}}E`}{{{Bd{Nb}}}Nb}{{Bd{Bd{Fdc}}}Nd{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{BdNf}Nd}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{Hb}}{Bd{Hb}}}Nh}{{{Bd{l}}{Bd{l}}}Nh}{Afd}{Bld}{Dfd}{Dhd}{Djd}{DlNj}{FjNj}{FfNj}{FlNj}{{{Bd{FdH`}}H`}Nd}{E`d}``{DlNl}{Mld}``{BnIb}{{}In}{{}Jb}{{}Aj}<{Dld}{HjKl}{EbKl}{Bhd}{D`d}{CbNn}{AdNn}{E`O`}{G`d}{GlEh}{MbEh}{MhEh}{MlEh}{jEh}{GnEh}{DbAb}{MnAb}{GfOb}{{{Bd{Hb}}{Bd{c}}}Od{{Of{El}}Oh}}{{{Bd{Hb}}{Bd{Hb}}}Od}{{{Bd{Hd}}{Bd{Hd}}}Od}{{{Bd{Bb}}{Bd{Bb}}}Od}{{{Bd{Bf}}{Bd{Bf}}}Od}{{{Bd{l}}{Bd{l}}}Od}{{{Bd{Gh}}{Bd{Gh}}}Od}{{{Bd{Hf}}{Bd{Hf}}}Od}{{{Bd{Hh}}{Bd{Hh}}}Od}{{{Bd{Hj}}{Bd{Hj}}}Od}{{{Bd{Hl}}{Bd{Hl}}}Od}{{{Bd{Bh}}{Bd{Bh}}}Od}{{{Bd{Hn}}{Bd{Hn}}}Od}{{{Bd{Gb}}{Bd{Gb}}}Od}{{{Bd{I`}}{Bd{I`}}}Od}{{{Bd{Bl}}{Bd{Bl}}}Od}{{{Bd{Bn}}{Bd{Bn}}}Od}{{{Bd{Ib}}{Bd{Ib}}}Od}{{{Bd{Id}}{Bd{Id}}}Od}{{{Bd{Gf}}{Bd{Gf}}}Od}{{{Bd{If}}{Bd{If}}}Od}{{{Bd{Ih}}{Bd{Ih}}}Od}{{{Bd{C`}}{Bd{C`}}}Od}{{{Bd{A`}}{Bd{A`}}}Od}{{{Bd{Al}}{Bd{Al}}}Od}{{{Bd{Cb}}{Bd{Cb}}}Od}{{{Bd{Cd}}{Bd{Cd}}}Od}{{{Bd{Cf}}{Bd{Cf}}}Od}{{{Bd{Ch}}{Bd{Ch}}}Od}{{{Bd{Cj}}{Bd{Cj}}}Od}{{{Bd{Ad}}{Bd{Ad}}}Od}{{{Bd{Cl}}{Bd{Cl}}}Od}{{{Bd{Cn}}{Bd{Cn}}}Od}{{{Bd{f}}{Bd{f}}}Od}{{{Bd{D`}}{Bd{D`}}}Od}{{{Bd{Db}}{Bd{Db}}}Od}{{{Bd{Dd}}{Bd{Dd}}}Od}{{{Bd{Ij}}{Bd{Ij}}}Od}{{{Bd{Il}}{Bd{Il}}}Od}{{{Bd{Df}}{Bd{Df}}}Od}{{{Bd{In}}{Bd{In}}}Od}{{{Bd{J`}}{Bd{J`}}}Od}{{{Bd{Dh}}{Bd{Dh}}}Od}{{{Bd{Dj}}{Bd{Dj}}}Od}{{{Bd{Dl}}{Bd{Dl}}}Od}{{{Bd{Jb}}{Bd{Jb}}}Od}{{{Bd{Jd}}{Bd{Jd}}}Od}{{{Bd{Jf}}{Bd{Jf}}}Od}{{{Bd{Jh}}{Bd{Jh}}}Od}{{{Bd{Jj}}{Bd{Jj}}}Od}{{{Bd{Jl}}{Bd{Jl}}}Od}{{{Bd{Fj}}{Bd{Fj}}}Od}{{{Bd{Ff}}{Bd{Ff}}}Od}{{{Bd{Jn}}{Bd{Jn}}}Od}{{{Bd{K`}}{Bd{K`}}}Od}{{{Bd{Kb}}{Bd{Kb}}}Od}{{{Bd{Kd}}{Bd{Kd}}}Od}{{{Bd{Kf}}{Bd{Kf}}}Od}{{{Bd{Kh}}{Bd{Kh}}}Od}{{{Bd{Ej}}{Bd{Ej}}}Od}{{{Bd{En}}{Bd{En}}}Od}{{{Bd{Kj}}{Bd{Kj}}}Od}{{{Bd{Eb}}{Bd{Eb}}}Od}{{{Bd{Kl}}{Bd{Kl}}}Od}{{{Bd{Kn}}{Bd{Kn}}}Od}{{{Bd{L`}}{Bd{L`}}}Od}{{{Bd{Lb}}{Bd{Lb}}}Od}{{{Bd{Ah}}{Bd{Ah}}}Od}{{{Bd{Aj}}{Bd{Aj}}}Od}{{{Bd{Ld}}{Bd{Ld}}}Od}{{{Bd{Af}}{Bd{Af}}}Od}{{{Bd{Lf}}{Bd{Lf}}}Od}{{{Bd{Lh}}{Bd{Lh}}}Od}{{{Bd{Fl}}{Bd{Fl}}}Od}{{{Bd{Lj}}{Bd{Lj}}}Od}{{{Bd{B`}}{Bd{B`}}}Od}{{{Bd{Ll}}{Bd{Ll}}}Od}{{{Bd{Ln}}{Bd{Ln}}}Od}{{{Bd{M`}}{Bd{M`}}}Od}{{{Bd{Fh}}{Bd{Fh}}}Od}{{{Bd{Gl}}{Bd{Gl}}}Od}{{{Bd{b}}{Bd{b}}}Od}{{{Bd{Mb}}{Bd{Mb}}}Od}{{{Bd{Fn}}{Bd{Fn}}}Od}{{{Bd{Md}}{Bd{Md}}}Od}{{{Bd{Mf}}{Bd{Mf}}}Od}{{{Bd{Ef}}{Bd{Ef}}}Od}{{{Bd{Mh}}{Bd{Mh}}}Od}{{{Bd{Mj}}{Bd{Mj}}}Od}{{{Bd{Ml}}{Bd{Ml}}}Od}{{{Bd{j}}{Bd{j}}}Od}{{{Bd{Gn}}{Bd{Gn}}}Od}{{{Bd{G`}}{Bd{G`}}}Od}{{{Bd{Mn}}{Bd{Mn}}}Od}{{{Bd{N`}}{Bd{N`}}}Od}{{{Bd{Dn}}{Bd{Dn}}}Od}{{{Bd{E`}}{Bd{E`}}}Od}{{{Bd{Nb}}{Bd{Nb}}}Od}{HlOj}{Djd}{Dld}{LfOj}{LhOj}{AlEh}{CdEh}{CfEh}{ClEh}{fEh}{DdEh}{DfIh}`{{{Bd{FdH`}}c}Nd{{On{}{{Ol{H`}}}}}}{N`A@`}{BhHn}{IdHn}{IfGb}{D`Ab}{{{Bd{H`}}{Bd{FdA@b}}}A@d}0{{{Bd{Hb}}{Bd{FdA@b}}}{{A@h{NdA@f}}}}00{{{Bd{Hd}}{Bd{FdA@b}}}A@d}{{{Bd{Bb}}{Bd{FdA@b}}}A@d}{{{Bd{Bf}}{Bd{FdA@b}}}A@d}{{{Bd{l}}{Bd{FdA@b}}}A@d}0{{{Bd{Gh}}{Bd{FdA@b}}}A@d}{{{Bd{Hf}}{Bd{FdA@b}}}A@d}{{{Bd{Hh}}{Bd{FdA@b}}}A@d}{{{Bd{Hj}}{Bd{FdA@b}}}A@d}{{{Bd{Hl}}{Bd{FdA@b}}}A@d}{{{Bd{Bh}}{Bd{FdA@b}}}A@d}{{{Bd{Hn}}{Bd{FdA@b}}}A@d}{{{Bd{Gb}}{Bd{FdA@b}}}A@d}{{{Bd{I`}}{Bd{FdA@b}}}A@d}{{{Bd{Bl}}{Bd{FdA@b}}}A@d}{{{Bd{Bn}}{Bd{FdA@b}}}A@d}{{{Bd{Ib}}{Bd{FdA@b}}}A@d}{{{Bd{Id}}{Bd{FdA@b}}}A@d}{{{Bd{Gf}}{Bd{FdA@b}}}A@d}{{{Bd{If}}{Bd{FdA@b}}}A@d}{{{Bd{Ih}}{Bd{FdA@b}}}A@d}{{{Bd{C`}}{Bd{FdA@b}}}A@d}{{{Bd{A`}}{Bd{FdA@b}}}A@d}{{{Bd{Al}}{Bd{FdA@b}}}A@d}{{{Bd{Cb}}{Bd{FdA@b}}}A@d}{{{Bd{Cd}}{Bd{FdA@b}}}A@d}{{{Bd{Cf}}{Bd{FdA@b}}}A@d}{{{Bd{Ch}}{Bd{FdA@b}}}A@d}{{{Bd{Cj}}{Bd{FdA@b}}}A@d}{{{Bd{Ad}}{Bd{FdA@b}}}A@d}{{{Bd{Cl}}{Bd{FdA@b}}}A@d}{{{Bd{Cn}}{Bd{FdA@b}}}A@d}{{{Bd{f}}{Bd{FdA@b}}}A@d}{{{Bd{D`}}{Bd{FdA@b}}}A@d}{{{Bd{Db}}{Bd{FdA@b}}}A@d}{{{Bd{Dd}}{Bd{FdA@b}}}A@d}{{{Bd{Ij}}{Bd{FdA@b}}}A@d}0{{{Bd{Il}}{Bd{FdA@b}}}A@d}0{{{Bd{Df}}{Bd{FdA@b}}}A@d}{{{Bd{In}}{Bd{FdA@b}}}A@d}{{{Bd{J`}}{Bd{FdA@b}}}A@d}{{{Bd{Dh}}{Bd{FdA@b}}}A@d}{{{Bd{Dj}}{Bd{FdA@b}}}A@d}{{{Bd{Dl}}{Bd{FdA@b}}}A@d}{{{Bd{Jb}}{Bd{FdA@b}}}A@d}{{{Bd{Jd}}{Bd{FdA@b}}}A@d}{{{Bd{Jf}}{Bd{FdA@b}}}A@d}{{{Bd{Jh}}{Bd{FdA@b}}}A@d}{{{Bd{Jj}}{Bd{FdA@b}}}A@d}{{{Bd{Jl}}{Bd{FdA@b}}}A@d}{{{Bd{Fj}}{Bd{FdA@b}}}A@d}{{{Bd{Ff}}{Bd{FdA@b}}}A@d}{{{Bd{Jn}}{Bd{FdA@b}}}A@d}{{{Bd{K`}}{Bd{FdA@b}}}A@d}{{{Bd{Kb}}{Bd{FdA@b}}}A@d}{{{Bd{Kd}}{Bd{FdA@b}}}A@d}{{{Bd{Kf}}{Bd{FdA@b}}}A@d}{{{Bd{Kh}}{Bd{FdA@b}}}A@d}{{{Bd{Ej}}{Bd{FdA@b}}}A@d}0{{{Bd{En}}{Bd{FdA@b}}}A@d}0{{{Bd{Kj}}{Bd{FdA@b}}}A@d}{{{Bd{Eb}}{Bd{FdA@b}}}A@d}{{{Bd{Kl}}{Bd{FdA@b}}}A@d}{{{Bd{Kn}}{Bd{FdA@b}}}A@d}{{{Bd{L`}}{Bd{FdA@b}}}A@d}{{{Bd{Lb}}{Bd{FdA@b}}}A@d}{{{Bd{Ah}}{Bd{FdA@b}}}A@d}{{{Bd{Aj}}{Bd{FdA@b}}}A@d}{{{Bd{Ld}}{Bd{FdA@b}}}A@d}{{{Bd{Af}}{Bd{FdA@b}}}A@d}{{{Bd{Lf}}{Bd{FdA@b}}}A@d}{{{Bd{Lh}}{Bd{FdA@b}}}A@d}{{{Bd{Fl}}{Bd{FdA@b}}}A@d}{{{Bd{Lj}}{Bd{FdA@b}}}A@d}{{{Bd{B`}}{Bd{FdA@b}}}A@d}{{{Bd{Ll}}{Bd{FdA@b}}}A@d}{{{Bd{Ln}}{Bd{FdA@b}}}A@d}{{{Bd{M`}}{Bd{FdA@b}}}A@d}{{{Bd{Fh}}{Bd{FdA@b}}}A@d}{{{Bd{Gl}}{Bd{FdA@b}}}A@d}{{{Bd{b}}{Bd{FdA@b}}}A@d}{{{Bd{Mb}}{Bd{FdA@b}}}A@d}{{{Bd{Fn}}{Bd{FdA@b}}}A@d}{{{Bd{Md}}{Bd{FdA@b}}}A@d}{{{Bd{Mf}}{Bd{FdA@b}}}A@d}{{{Bd{Ef}}{Bd{FdA@b}}}A@d}{{{Bd{Mh}}{Bd{FdA@b}}}A@d}{{{Bd{Mj}}{Bd{FdA@b}}}A@d}{{{Bd{Ml}}{Bd{FdA@b}}}A@d}{{{Bd{j}}{Bd{FdA@b}}}A@d}{{{Bd{Gn}}{Bd{FdA@b}}}A@d}{{{Bd{G`}}{Bd{FdA@b}}}A@d}{{{Bd{Mn}}{Bd{FdA@b}}}A@d}{{{Bd{N`}}{Bd{FdA@b}}}A@d}{{{Bd{Dn}}{Bd{FdA@b}}}A@d}{{{Bd{E`}}{Bd{FdA@b}}}A@d}{{{Bd{Nb}}{Bd{FdA@b}}}A@d}{bA@j}{JbA@l}{cc{}}{A@nH`}1{A@`Hb}{AA`Hb}{AAbHb}{AAdHb}{AAfHb}{AAhHb}777777{HjHh}{HlHh}9{LbHh}:::{I`Hn}{GbHn}<<<<<<<<<{ClIh}{fIh}{AAjIh}{DbIh}{DdIh}{AAlIh}{AAnIh}{AB`Ih}{ABbIh}{ABdIh}{ABfIh}{ABhIh}{C`Ih}{ABjIh}{ABlIh}{D`Ih}{cc{}}{AdIh}{AlIh}{ABnIh}{AC`Ih}{ACbIh}{ACdIh}{ACfIh}{CbIh}{AChIh}{CdIh}{ACjIh}{AClIh}{ACnIh}{CfIh}{AD`Ih}{ADbIh}{ADdIh}{CnIh}{ChIh}{ADfIh}{CjIh}{ADhIh}{A`Ih}{cc{}}00000000000000000000000000000000000000{ADjIj}1{IlIj}{HbIj}3{ADjIl}44{DhJ`}{DjJ`}{DlJ`}77{HbDj}888{JfJd}{lJd}:::::{FfJl}{FjJl}<<{K`Jn}{EnJn}{KjJn}{KbJn}{EjJn}{KhJn}{cc{}}{KfJn}{KdJn}222222{ADlEj}{ADlEn}4444444{cLb{{ADn{Ah}}}}5{cAh{{ADn{Hb}}}}66666666666{bFh}{MjFh}8{MnFh}{GlFh}{MbFh}{FnFh}{MdFh}{G`Fh}{MfFh}{GnFh}{jFh}{EfFh}{MlFh}{MhFh}{cc{}}00000000000000000{A`Eh}{BnIn}{Lfd}{Lhd}{Fld}{{{Bd{Lb}}}{{d{{Bd{Hb}}}}}}{CdAE`}{MbAE`}{Ind}{JbAEb}{AfAEb}{B`AEb}{{{Bd{Hb}}{Bd{Fdc}}}NdAEd}{{{Bd{Hd}}{Bd{Fdc}}}NdAEd}{{{Bd{Bb}}{Bd{Fdc}}}NdAEd}{{{Bd{Bf}}{Bd{Fdc}}}NdAEd}{{{Bd{l}}{Bd{Fdc}}}NdAEd}{{{Bd{Gh}}{Bd{Fdc}}}NdAEd}{{{Bd{Hf}}{Bd{Fdc}}}NdAEd}{{{Bd{Hh}}{Bd{Fdc}}}NdAEd}{{{Bd{Hj}}{Bd{Fdc}}}NdAEd}{{{Bd{Hl}}{Bd{Fdc}}}NdAEd}{{{Bd{Bh}}{Bd{Fdc}}}NdAEd}{{{Bd{Hn}}{Bd{Fdc}}}NdAEd}{{{Bd{Gb}}{Bd{Fdc}}}NdAEd}{{{Bd{I`}}{Bd{Fdc}}}NdAEd}{{{Bd{Bl}}{Bd{Fdc}}}NdAEd}{{{Bd{Bn}}{Bd{Fdc}}}NdAEd}{{{Bd{Ib}}{Bd{Fdc}}}NdAEd}{{{Bd{Id}}{Bd{Fdc}}}NdAEd}{{{Bd{Gf}}{Bd{Fdc}}}NdAEd}{{{Bd{If}}{Bd{Fdc}}}NdAEd}{{{Bd{Ih}}{Bd{Fdc}}}NdAEd}{{{Bd{C`}}{Bd{Fdc}}}NdAEd}{{{Bd{A`}}{Bd{Fdc}}}NdAEd}{{{Bd{Al}}{Bd{Fdc}}}NdAEd}{{{Bd{Cb}}{Bd{Fdc}}}NdAEd}{{{Bd{Cd}}{Bd{Fdc}}}NdAEd}{{{Bd{Cf}}{Bd{Fdc}}}NdAEd}{{{Bd{Ch}}{Bd{Fdc}}}NdAEd}{{{Bd{Cj}}{Bd{Fdc}}}NdAEd}{{{Bd{Ad}}{Bd{Fdc}}}NdAEd}{{{Bd{Cl}}{Bd{Fdc}}}NdAEd}{{{Bd{Cn}}{Bd{Fdc}}}NdAEd}{{{Bd{f}}{Bd{Fdc}}}NdAEd}{{{Bd{D`}}{Bd{Fdc}}}NdAEd}{{{Bd{Db}}{Bd{Fdc}}}NdAEd}{{{Bd{Dd}}{Bd{Fdc}}}NdAEd}{{{Bd{Ij}}{Bd{Fdc}}}NdAEd}{{{Bd{Il}}{Bd{Fdc}}}NdAEd}{{{Bd{Df}}{Bd{Fdc}}}NdAEd}{{{Bd{In}}{Bd{Fdc}}}NdAEd}{{{Bd{J`}}{Bd{Fdc}}}NdAEd}{{{Bd{Dh}}{Bd{Fdc}}}NdAEd}{{{Bd{Dj}}{Bd{Fdc}}}NdAEd}{{{Bd{Dl}}{Bd{Fdc}}}NdAEd}{{{Bd{Jb}}{Bd{Fdc}}}NdAEd}{{{Bd{Jd}}{Bd{Fdc}}}NdAEd}{{{Bd{Jf}}{Bd{Fdc}}}NdAEd}{{{Bd{Jh}}{Bd{Fdc}}}NdAEd}{{{Bd{Jj}}{Bd{Fdc}}}NdAEd}{{{Bd{Jl}}{Bd{Fdc}}}NdAEd}{{{Bd{Fj}}{Bd{Fdc}}}NdAEd}{{{Bd{Ff}}{Bd{Fdc}}}NdAEd}{{{Bd{Jn}}{Bd{Fdc}}}NdAEd}{{{Bd{K`}}{Bd{Fdc}}}NdAEd}{{{Bd{Kb}}{Bd{Fdc}}}NdAEd}{{{Bd{Kd}}{Bd{Fdc}}}NdAEd}{{{Bd{Kf}}{Bd{Fdc}}}NdAEd}{{{Bd{Kh}}{Bd{Fdc}}}NdAEd}{{{Bd{Ej}}{Bd{Fdc}}}NdAEd}{{{Bd{En}}{Bd{Fdc}}}NdAEd}{{{Bd{Kj}}{Bd{Fdc}}}NdAEd}{{{Bd{Eb}}{Bd{Fdc}}}NdAEd}{{{Bd{Kl}}{Bd{Fdc}}}NdAEd}{{{Bd{Kn}}{Bd{Fdc}}}NdAEd}{{{Bd{L`}}{Bd{Fdc}}}NdAEd}{{{Bd{Lb}}{Bd{Fdc}}}NdAEd}{{{Bd{Ah}}{Bd{Fdc}}}NdAEd}{{{Bd{Aj}}{Bd{Fdc}}}NdAEd}{{{Bd{Ld}}{Bd{Fdc}}}NdAEd}{{{Bd{Af}}{Bd{Fdc}}}NdAEd}{{{Bd{Lf}}{Bd{Fdc}}}NdAEd}{{{Bd{Lh}}{Bd{Fdc}}}NdAEd}{{{Bd{Fl}}{Bd{Fdc}}}NdAEd}{{{Bd{Lj}}{Bd{Fdc}}}NdAEd}{{{Bd{B`}}{Bd{Fdc}}}NdAEd}{{{Bd{Ll}}{Bd{Fdc}}}NdAEd}{{{Bd{Ln}}{Bd{Fdc}}}NdAEd}{{{Bd{M`}}{Bd{Fdc}}}NdAEd}{{{Bd{Fh}}{Bd{Fdc}}}NdAEd}{{{Bd{Gl}}{Bd{Fdc}}}NdAEd}{{{Bd{b}}{Bd{Fdc}}}NdAEd}{{{Bd{Mb}}{Bd{Fdc}}}NdAEd}{{{Bd{Fn}}{Bd{Fdc}}}NdAEd}{{{Bd{Md}}{Bd{Fdc}}}NdAEd}{{{Bd{Mf}}{Bd{Fdc}}}NdAEd}{{{Bd{Ef}}{Bd{Fdc}}}NdAEd}{{{Bd{Mh}}{Bd{Fdc}}}NdAEd}{{{Bd{Mj}}{Bd{Fdc}}}NdAEd}{{{Bd{Ml}}{Bd{Fdc}}}NdAEd}{{{Bd{j}}{Bd{Fdc}}}NdAEd}{{{Bd{Gn}}{Bd{Fdc}}}NdAEd}{{{Bd{G`}}{Bd{Fdc}}}NdAEd}{{{Bd{Mn}}{Bd{Fdc}}}NdAEd}{{{Bd{N`}}{Bd{Fdc}}}NdAEd}{{{Bd{Dn}}{Bd{Fdc}}}NdAEd}{{{Bd{E`}}{Bd{Fdc}}}NdAEd}{{{Bd{Nb}}{Bd{Fdc}}}NdAEd}{lHb}{BhHb}{Bld}{BnHb}{DjHb}{DlHb}{AhHb}{LfHb}{LhHb}{FlHb}{FnAEf}{Lnd}{CfEh}{IlAEh}{LjAb}{bAb}{{}c{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{H`AEj}{{{Bd{H`}}}c{}}{H`c{}}{{{Bd{Hn}}}c{}}{Hnc{}}{{{Bd{FdHn}}}c{}}{{{Bd{Hn}}}Od}{{{Bd{Aj}}}Od}{{{Bd{Lb}}{Bd{c}}}OdOh}1{{{Bd{Hn}}}{{AEl{Bl}}}}{{{Bd{FdHn}}}{{AEn{Bl}}}}{Lbd}{C`Eh}{{{Bd{Hn}}}ADj}{GlIh}{Dhl}{Fjl}{jd}`{JbAb}{Jfd}{Ffd}{bd}`{ChJn}{Ind}{JbAF`}{AfAF`}{B`AF`}{CjEb}{MfEb}{{{Bd{FdIn}}}{{Bd{FdJj}}}}{CbIj}{DfIj}``{GhHh}{AdHb}{JfJh}{BlM`}{fd}{Mld}{jd}{N`d}{Dnd}{E`d}{GbAb}{{nc}H`AFb}{{{Bd{El}}n}Hb}{{{Bd{El}}n}l}{lDh}{ADlJn}{{{Bd{El}}n}K`}{{{Bd{{AFd{Nf}}}}n}Kb}{{{Bd{AFf}}n}Kd}{{Nfn}Kf}{{AFhn}Kh}{{{Bd{El}}n}Ej}{{{Bd{El}}n}En}{{Odn}Kj};{{ce}H`AFjAFb}{C`Kn}{DdL`}{LjNb}{bNb}{InAb}{I`AFl}{A`AFl}{AdAFl}{ClAFl}{DbAFl}{Jfd}{LjAFl}{LnAFl}{bAFl}{MhAFl}{MnAFl}``{AFn{{F`{c}}}AG`}{AGb{{F`{Hb}}}}{AGb{{F`{l}}}}{AGb{{F`{Hh}}}}{AGb{{F`{Hj}}}}{AGb{{F`{Hl}}}}{AGb{{F`{Bh}}}}{AGb{{F`{Gb}}}}{AGb{{F`{I`}}}}{AGb{{F`{Bn}}}}{AGb{{F`{Ih}}}}{AGb{{F`{Ch}}}}{AGb{{F`{Cj}}}}{AGb{{F`{Cn}}}}{AGb{{F`{D`}}}}{AGb{{F`{Ij}}}}{AGb{{F`{Il}}}}{AGb{{F`{Df}}}}{AGb{{F`{In}}}}{AGb{{F`{J`}}}}{AGb{{F`{Dh}}}}{AGb{{F`{Dj}}}}{AGb{{F`{Dl}}}}{AGb{{F`{Jb}}}}{AGb{{F`{Jd}}}}{AGb{{F`{Jf}}}}{AGb{{F`{Jh}}}}{AGb{{F`{Jj}}}}{AGb{{F`{Jl}}}}{AGb{{F`{Jn}}}}{{{Bd{K`}}}{{F`{c}}}AG`}{AGb{{F`{K`}}}}{AGb{{F`{Kb}}}}{AGb{{F`{Kd}}}}{AGb{{F`{Kf}}}}{AGb{{F`{Kh}}}}{AGb{{F`{Ej}}}}{AGb{{F`{En}}}}{AGb{{F`{Kj}}}}{AGb{{F`{Eb}}}}{AGb{{F`{Kn}}}}{AGb{{F`{L`}}}}{AGb{{F`{Lb}}}}{AGb{{F`{Ah}}}}{AGb{{F`{Ld}}}}{AGb{{F`{Af}}}}{AGb{{F`{Lj}}}}{AGb{{F`{Ll}}}}{AGb{{F`{Fh}}}}{AGb{{F`{Gl}}}}{AGb{{F`{b}}}}{AGb{{F`{Mb}}}}{AGb{{F`{Fn}}}}{AGb{{F`{Md}}}}{AGb{{F`{Mf}}}}{AGb{{F`{Ef}}}}{AGb{{F`{Mh}}}}{AGb{{F`{Mj}}}}{AGb{{F`{Ml}}}}{AGb{{F`{j}}}}{AGb{{F`{Gn}}}}{AGb{{F`{G`}}}}{AGb{{F`{Mn}}}}{AGb{{F`{N`}}}}{AGb{{F`{Dn}}}}{AGb{{F`{Nb}}}}{AEj{{F`{c}}}AG`}{AGb{{F`{Hb}}}}{{{Bd{Gh}}}{{F`{c}}}AG`}{{{Bd{Hj}}}{{F`{c}}}AG`}{{{Bd{Gh}}c}F`AGd}{{{Bd{Hj}}c}F`AGd}{{{Bd{Eb}}}{{F`{c}}}AG`}{{{Bd{Eb}}c}F`AGd}{AGb{{F`{{Bj{Gh}}}}}}`{AGb{{F`{Lb}}}}{AGb{{F`{Bl}}}}{{{Bd{Gh}}c}{{F`{Nd}}}{{AGj{AGf}{{AGh{{F`{Nd}}}}}}}}{{{Bd{Hj}}c}{{F`{Nd}}}{{AGj{AGf}{{AGh{{F`{Nd}}}}}}}}4``{{{Bd{El}}}{{F`{c}}}AG`}3{{{Bd{K`}}c}F`AGd}{{{Bd{Hb}}{Bd{Hb}}}{{d{Nh}}}}{{{Bd{l}}{Bd{l}}}{{d{Nh}}}}{{{Bd{Gh}}}{{Bd{Lb}}}}{{{Bd{Hh}}}{{Bd{Lb}}}}{HjLb}{HlLb}{CnLb}{D`Lb}{JfLb}{EbLb}{LnEh}{MjLb}{AGbOd}{B`ADj}{GhAGl}{JjAb}{LnAGn}`{Cnd}{D`d}{Mjd}{AdEh}{{{Bd{Lb}}}{{F`{{Bd{Hb}}}}}}{{{Bd{Hh}}}{{F`{{Bd{Hj}}}}}}{{{Bd{Hh}}}{{F`{{Bd{Hl}}}}}}{{{Bd{Hh}}}{{F`{{Bd{Lb}}}}}}6{C`Eh}{LbAb}{Idd}{GlAH`}{{{Bd{FdHb}}n}Nd}{{{Bd{Fdl}}n}Nd}{{{Bd{FdJn}}n}Nd}{{{Bd{FdK`}}n}Nd}{{{Bd{FdKb}}n}Nd}{{{Bd{FdKd}}n}Nd}{{{Bd{FdKf}}n}Nd}{{{Bd{FdKh}}n}Nd}{{{Bd{FdEj}}n}Nd}{{{Bd{FdEn}}n}Nd}{{{Bd{FdKj}}n}Nd}{{{Bd{H`}}}n}{Bdn}{{{Bd{Hb}}}n}{{{Bd{Hb}}}{{d{n}}}}222{{{Bd{l}}}n}3333333333333333333333333333333333333333333333333333{{{Bd{Ij}}}{{d{n}}}}{{{Bd{Il}}}{{d{n}}}}5555555555555555{{{Bd{Jn}}}n}6{{{Bd{K`}}}n}{{{Bd{Kb}}}n}88{{{Bd{Kd}}}n}{{{Bd{Kf}}}n}::{{{Bd{Kh}}}n};{{{Bd{Ej}}}n}<{{{Bd{En}}}n}={{{Bd{Kj}}}n}>{{{Bd{Kl}}}{{Bd{AHb}}}}???????????{{{Bd{B`}}}n}{Bdn}00000000000000000000{Iln}{Kjn}`{{{Bd{In}}}{{AHd{HdBb{d{{Bd{Jj}}}}}}}}{MlAHf}{IdAHh}{GhHf}{{{Bd{Jn}}}{{Bd{El}}}}{{{Bd{K`}}}{{Bd{El}}}}{{{Bd{Kb}}}{{Bd{El}}}}{{{Bd{Kd}}}{{Bd{El}}}}{{{Bd{Kf}}}{{Bd{El}}}}{{{Bd{Kh}}}{{Bd{El}}}}{{{Bd{Ej}}}{{Bd{El}}}}{{{Bd{En}}}{{Bd{El}}}}{{{Bd{H`}}}AEj}{Bdc{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{BdAHj}0000{{{Bd{Hb}}{Bd{FdAEj}}}Nd}{{{Bd{Hd}}{Bd{FdAEj}}}Nd}{{{Bd{Bb}}{Bd{FdAEj}}}Nd}{{{Bd{Bf}}{Bd{FdAEj}}}Nd}{{{Bd{l}}{Bd{FdAEj}}}Nd}{{{Bd{Gh}}{Bd{FdAEj}}}Nd}{{{Bd{Hh}}{Bd{FdAEj}}}Nd}{{{Bd{Hj}}{Bd{FdAEj}}}Nd}{{{Bd{Hl}}{Bd{FdAEj}}}Nd}{{{Bd{Bh}}{Bd{FdAEj}}}Nd}{{{Bd{Hn}}{Bd{FdAEj}}}Nd}{{{Bd{Gb}}{Bd{FdAEj}}}Nd}{{{Bd{I`}}{Bd{FdAEj}}}Nd}{{{Bd{Bl}}{Bd{FdAEj}}}Nd}{{{Bd{Bn}}{Bd{FdAEj}}}Nd}{{{Bd{Ih}}{Bd{FdAEj}}}Nd}{{{Bd{AAn}}{Bd{FdAEj}}}Nd}{{{Bd{AB`}}{Bd{FdAEj}}}Nd}{{{Bd{ABb}}{Bd{FdAEj}}}Nd}{{{Bd{ABh}}{Bd{FdAEj}}}Nd}{{{Bd{C`}}{Bd{FdAEj}}}Nd}{{{Bd{ABj}}{Bd{FdAEj}}}Nd}{{{Bd{ABl}}{Bd{FdAEj}}}Nd}{{{Bd{A`}}{Bd{FdAEj}}}Nd}{{{Bd{Al}}{Bd{FdAEj}}}Nd}{{{Bd{ABn}}{Bd{FdAEj}}}Nd}{{{Bd{AC`}}{Bd{FdAEj}}}Nd}{{{Bd{ACf}}{Bd{FdAEj}}}Nd}{{{Bd{Cb}}{Bd{FdAEj}}}Nd}{{{Bd{ACh}}{Bd{FdAEj}}}Nd}{{{Bd{Cd}}{Bd{FdAEj}}}Nd}{{{Bd{ACn}}{Bd{FdAEj}}}Nd}{{{Bd{Cf}}{Bd{FdAEj}}}Nd}{{{Bd{AD`}}{Bd{FdAEj}}}Nd}{{{Bd{ADb}}{Bd{FdAEj}}}Nd}{{{Bd{Ch}}{Bd{FdAEj}}}Nd}{{{Bd{ADf}}{Bd{FdAEj}}}Nd}{{{Bd{Cj}}{Bd{FdAEj}}}Nd}{{{Bd{ADh}}{Bd{FdAEj}}}Nd}{{{Bd{Ad}}{Bd{FdAEj}}}Nd}{{{Bd{Cl}}{Bd{FdAEj}}}Nd}{{{Bd{Cn}}{Bd{FdAEj}}}Nd}{{{Bd{ACl}}{Bd{FdAEj}}}Nd}{{{Bd{AAj}}{Bd{FdAEj}}}Nd}{{{Bd{f}}{Bd{FdAEj}}}Nd}{{{Bd{ACb}}{Bd{FdAEj}}}Nd}{{{Bd{ADd}}{Bd{FdAEj}}}Nd}{{{Bd{D`}}{Bd{FdAEj}}}Nd}{{{Bd{ABd}}{Bd{FdAEj}}}Nd}{{{Bd{AAl}}{Bd{FdAEj}}}Nd}{{{Bd{Db}}{Bd{FdAEj}}}Nd}{{{Bd{Dd}}{Bd{FdAEj}}}Nd}{{{Bd{ABf}}{Bd{FdAEj}}}Nd}{{{Bd{ACd}}{Bd{FdAEj}}}Nd}{{{Bd{ACj}}{Bd{FdAEj}}}Nd}{{{Bd{Ij}}{Bd{FdAEj}}}Nd}{{{Bd{Il}}{Bd{FdAEj}}}Nd}{{{Bd{Df}}{Bd{FdAEj}}}Nd}{{{Bd{In}}{Bd{FdAEj}}}Nd}{{{Bd{J`}}{Bd{FdAEj}}}Nd}{{{Bd{Dh}}{Bd{FdAEj}}}Nd}{{{Bd{Dj}}{Bd{FdAEj}}}Nd}{{{Bd{Dl}}{Bd{FdAEj}}}Nd}{{{Bd{Jb}}{Bd{FdAEj}}}Nd}{{{Bd{Jd}}{Bd{FdAEj}}}Nd}{{{Bd{Jf}}{Bd{FdAEj}}}Nd}{{{Bd{Jh}}{Bd{FdAEj}}}Nd}{{{Bd{Jj}}{Bd{FdAEj}}}Nd}{{{Bd{Jl}}{Bd{FdAEj}}}Nd}{{{Bd{Fj}}{Bd{FdAEj}}}Nd}{{{Bd{Ff}}{Bd{FdAEj}}}Nd}{{{Bd{Jn}}{Bd{FdAEj}}}Nd}{{{Bd{K`}}{Bd{FdAEj}}}Nd}{{{Bd{Kb}}{Bd{FdAEj}}}Nd}{{{Bd{Kd}}{Bd{FdAEj}}}Nd}{{{Bd{Kf}}{Bd{FdAEj}}}Nd}{{{Bd{Kh}}{Bd{FdAEj}}}Nd}{{{Bd{Ej}}{Bd{FdAEj}}}Nd}{{{Bd{En}}{Bd{FdAEj}}}Nd}{{{Bd{Kj}}{Bd{FdAEj}}}Nd}{{{Bd{Eb}}{Bd{FdAEj}}}Nd}{{{Bd{Kn}}{Bd{FdAEj}}}Nd}{{{Bd{L`}}{Bd{FdAEj}}}Nd}{{{Bd{Lb}}{Bd{FdAEj}}}Nd}{{{Bd{Ah}}{Bd{FdAEj}}}Nd}{{{Bd{Aj}}{Bd{FdAEj}}}Nd}{{{Bd{Ld}}{Bd{FdAEj}}}Nd}{{{Bd{Af}}{Bd{FdAEj}}}Nd}{{{Bd{Lf}}{Bd{FdAEj}}}Nd}{{{Bd{Lh}}{Bd{FdAEj}}}Nd}{{{Bd{Fl}}{Bd{FdAEj}}}Nd}{{{Bd{Lj}}{Bd{FdAEj}}}Nd}{{{Bd{Ll}}{Bd{FdAEj}}}Nd}{{{Bd{Ln}}{Bd{FdAEj}}}Nd}{{{Bd{Fh}}{Bd{FdAEj}}}Nd}{{{Bd{Gl}}{Bd{FdAEj}}}Nd}{{{Bd{b}}{Bd{FdAEj}}}Nd}{{{Bd{Mb}}{Bd{FdAEj}}}Nd}{{{Bd{Fn}}{Bd{FdAEj}}}Nd}{{{Bd{Md}}{Bd{FdAEj}}}Nd}{{{Bd{Mf}}{Bd{FdAEj}}}Nd}{{{Bd{Ef}}{Bd{FdAEj}}}Nd}{{{Bd{Mh}}{Bd{FdAEj}}}Nd}{{{Bd{Mj}}{Bd{FdAEj}}}Nd}{{{Bd{Ml}}{Bd{FdAEj}}}Nd}{{{Bd{j}}{Bd{FdAEj}}}Nd}{{{Bd{Gn}}{Bd{FdAEj}}}Nd}{{{Bd{G`}}{Bd{FdAEj}}}Nd}{{{Bd{Mn}}{Bd{FdAEj}}}Nd}{{{Bd{N`}}{Bd{FdAEj}}}Nd}{{{Bd{Dn}}{Bd{FdAEj}}}Nd}{{{Bd{E`}}{Bd{FdAEj}}}Nd}{{{Bd{Nb}}{Bd{FdAEj}}}Nd}`{{{Bd{K`}}}ADl}{{{Bd{Kb}}}ADl}{{{Bd{Kd}}}ADl}{{{Bd{Kf}}}ADl}{{{Bd{Kh}}}ADl}{{{Bd{Ej}}}ADl}{{{Bd{En}}}ADl}{{{Bd{Kj}}}Hb}{HjAEj}{EbAEj}{c{{A@h{e}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{}{{A@h{c}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{Add}{BlFh}{AlEh}{DlFh}{LfFh}{B`Eh}{DnFh}{BdAHl}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000``{MdAAh}{IfAHn}{I`Ab}{{{Bd{Hb}}}Hb}{bd}{{{Bd{K`}}}AHj}{{{Bd{Kb}}}{{Bj{Nf}}}}{{{Bd{Kd}}}AI`}{{{Bd{Kf}}}Nf}{{{Bd{Kh}}}AFh}{{{Bd{Kj}}}Od}{HlIh}{KjOd}{LhIh}9{GfAb}{BlLl}{BnLl}`{Ind}{JjAIb}{AGb{{F`{Fh}}}}{AGb{{F`{Fn}}}}{AGb{{F`{G`}}}}{AGb{{F`{Nb}}}}``{AId{{d{{AHd{AIdAIfAHbAId}}}}}}{{{Bd{AIh}}}AId}{Bd{{Bd{c}}}{}}0{{{Bd{Fd}}}{{Bd{Fdc}}}{}}0{{{Bd{AId}}}AId}{{Bd{Bd{Fdc}}}Nd{}}{{BdNf}Nd}{{}AId}{AIdOd}{{{Bd{AId}}{Bd{AId}}}Od}{cc{}}0{{AIdAIf}{{d{{AHd{AIdAHbAId}}}}}}{AId{{d{{AHd{HbAId}}}}}}{{}c{}}0{AId{{d{{AHd{lAId}}}}}}{AId{{d{{AHd{ADlAId}}}}}}{AFnAIh}{AEjAIh}{{{Bd{AId}}{Bd{AId}}}{{d{Nh}}}}{AId{{d{{AHd{AIjAId}}}}}}{AIdn}{Bdc{}}{AIdAEj}{AId{{d{{AHd{AIlAId}}}}}}{c{{A@h{e}}}{}{}}0{{}{{A@h{c}}}{}}0{BdAHl}0`{AGb{{F`{AIn}}}}`{{{Bd{AIn}}}Hb}`{Bd{{Bd{c}}}{}}{{{Bd{Fd}}}{{Bd{Fdc}}}{}}{{{Bd{AGf}}c}H`AFb}{cc{}}{AGfAGb}{{}c{}}{{{Bd{AGf}}c}{{F`{Nd}}}{{AGj{AGf}{{AGh{{F`{Nd}}}}}}}}{c{{`{{AGd{}{{AGh{Nd}}}}}}}{{AGj{AGf}{{AGh{{F`{Nd}}}}}}}}{AGfLb}=<;{{{Bd{AGf}}}{{F`{AGb}}}}``````````````{{{Bd{AJ`}}{Bd{AJ`}}}Nd}:::::99999{{{Bd{AJ`}}{AJb{AGb}{{AGh{{F`{c}}}}}}}{{F`{c}}}{}}{{{Bd{AJd}}}AJd}{{{Bd{AJf}}}AJf}{{{Bd{AJh}}}AJh}{{Bd{Bd{Fdc}}}Nd{}}00{{BdNf}Nd}00{{{Bd{AJ`}}}AId}{{{Bd{AJf}}}{{Bd{c}}}{}}`{{}{{Bd{El}}}}{{{Bd{FdAJ`}}}Nd}{{{Bd{AJh}}{Bd{AJh}}}Od}{AJjH`}{{{Bd{AJ`}}c}H`AFb}{{AJfc}H`AFb}{{{Bd{AJ`}}{Bd{FdA@b}}}A@d}0{{{Bd{AJh}}{Bd{FdA@b}}}A@d}{{{Bd{AJ`}}}AJ`}{cc{}}0000{{{Bd{AJh}}{Bd{Fdc}}}NdAEd}{{}c{}}0000{{{Bd{AJ`}}}Od}{{{Bd{AJ`}}}AJj}{AGb{{F`{AG`}}}}{{{Bd{AJ`}}}{{F`{c}}}AG`}{{{AGd{}{{AGh{c}}}}AFn}{{F`{c}}}{}}{AGb{{F`{AJh}}}}{{{AGd{}{{AGh{c}}}}AEj}{{F`{c}}}{}}{{{Bd{AJ`}}}{{F`{{AHd{AIfAHbAJ`}}}}}}{{{AGd{}{{AGh{c}}}}{Bd{El}}}{{F`{c}}}{}}{{{Bd{AJ`}}{AJb{AGb}{{AGh{{F`{c}}}}}}e}{{F`{{Ab{c}}}}}{}AJl}{{{Bd{AJj}}c}OdAJl}{AIdOd}{{{Bd{AJ`}}c}OdAJl}00{{{Bd{AJ`}}}n}{Bdn}{{{Bd{AJ`}}e}{{F`{c}}}{}{{AJn{AJf}{{AGh{{F`{{AHd{cAId}}}}}}}}}}{Bdc{}}00{BdAHj}{{{Bd{AJh}}{Bd{FdAEj}}}Nd}{c{{A@h{e}}}{}{}}0000{{}{{A@h{c}}}{}}0000{BdAHl}0000``{{{Bd{AK`}}{Bd{AK`}}}Nd}{{{Bd{AKb}}}{{F`{{AHd{AIfAHbAJ`}}}}}}``````````{Bd{{Bd{c}}}{}}0000000{{{Bd{Fd}}}{{Bd{Fdc}}}{}}0000000{{{Bd{Fd{Ab{ce}}}}}Nd{}{}}{{{Bd{{Ab{ce}}}}}{{Ab{ce}}}AKdAKd}{{{Bd{{AKf{ce}}}}}{{AKf{ce}}}{}{}}{{{Bd{{AKh{ce}}}}}{{AKh{ce}}}AKdAKd}{{{Bd{{AKj{c}}}}}{{AKj{c}}}AKd}{{{Bd{{AEl{c}}}}}{{AEl{c}}}{}}{{{Bd{{AKl{ce}}}}}{{AKl{ce}}}AKdAKd}{{{Bd{Fd{Ab{ce}}}}{Bd{{Ab{ce}}}}}NdAKdAKd}{{Bd{Bd{Fdc}}}Nd{}}00000{{BdNf}Nd}00000{{{AKl{{Bd{c}}{Bd{e}}}}}{{AKl{ce}}}AKdAKd}{{}{{Ab{ce}}}{}{}}{{{Bd{{Ab{ce}}}}}Od{}{}}{{{Bd{{Ab{ce}}}}{Bd{{Ab{ce}}}}}OdAKnAKn}{{{Bd{Fd{Ab{ce}}}}g}Nd{}AL`{{On{}{{Ol{c}}}}}}{{{Bd{Fd{Ab{ce}}}}g}Nd{}AL`{{On{}{{Ol{{AKl{ce}}}}}}}}{{{Bd{{Ab{ce}}}}}{{d{{Bd{c}}}}}{}{}}{{{Bd{Fd{Ab{ce}}}}}{{d{{Bd{Fdc}}}}}{}{}}{{{Bd{{Ab{ce}}}}{Bd{FdA@b}}}A@dALbALb}{cc{}}0000000{g{{Ab{ce}}}{}{}{{On{}{{Ol{{AKl{ce}}}}}}}}{e{{Ab{cg}}}{}{{On{}{{Ol{c}}}}}AL`}{{{Bd{{Ab{ce}}}}ADj}{{d{{Bd{c}}}}}{}{}}{{{Bd{Fd{Ab{ce}}}}ADj}{{d{{Bd{Fdc}}}}}{}{}}{{{Bd{{Ab{ce}}}}{Bd{Fdg}}}NdALdALdAEd}{{{Bd{{Ab{ce}}}}ADj}{{Bd{g}}}{}{}{}}{{{Bd{Fd{Ab{ce}}}}ADj}{{Bd{Fdg}}}{}{}{}}{{{Bd{Fd{Ab{ce}}}}ADjc}Nd{}AL`}{{}c{}}0000000{{{Bd{Fd{Ab{ce}}}}}g{}{}{}}{{{Ab{ce}}}g{}{}{}}{{{Bd{{Ab{ce}}}}}g{}{}{}}{{}c{}}00000{{{Ab{ce}}}{{AKh{ce}}}{}{}}{{{AKl{ce}}}{{AHd{c{d{e}}}}}{}{}}{{{AKl{ce}}}c{}{}}{{{Bd{{Ab{ce}}}}}Od{}{}}{{{Bd{{Ab{ce}}}}}{{AEl{c}}}{}{}}{{{Bd{Fd{Ab{ce}}}}}{{AEn{c}}}{}{}}{{{Bd{{Ab{ce}}}}}{{d{{Bd{c}}}}}{}{}}{{{Bd{Fd{Ab{ce}}}}}{{d{{Bd{Fdc}}}}}{}{}}{{{Bd{{Ab{ce}}}}}ADj{}{}}{{{Bd{{AKf{ce}}}}}ADj{}{}}{{{Bd{{ALf{ce}}}}}ADj{}{}}{{{Bd{{AKh{ce}}}}}ADj{}{}}{{{Bd{{AKj{c}}}}}ADj{}}{{{Bd{{AEl{c}}}}}ADj{}}{{{Bd{{AEn{c}}}}}ADj{}}{{}{{Ab{ce}}}{}{}}{{c{d{e}}}{{AKl{ce}}}{}{}}{{{Bd{Fd{AKf{ce}}}}}{{d{g}}}{}{}{}}{{{Bd{Fd{ALf{ce}}}}}{{d{g}}}{}{}{}}{{{Bd{Fd{AKh{ce}}}}}{{d{g}}}{}{}{}}{{{Bd{Fd{AKj{c}}}}}{{d{e}}}{}{}}{{{Bd{Fd{AEl{c}}}}}{{d{e}}}{}{}}{{{Bd{Fd{AEn{c}}}}}{{d{e}}}{}{}}543210{{{Bd{{Ab{ce}}}}}{{AKf{ce}}}{}{}}{{{Bd{Fd{Ab{ce}}}}}{{ALf{ce}}}{}{}}{AGb{{F`{{Ab{ce}}}}}AG`{ALhAG`}}{{AGb{AJb{AGb}{{AGh{{F`{c}}}}}}}{{F`{{Ab{ce}}}}}{}{ALhAG`}}{AGb{{F`{{Ab{ce}}}}}AG`AG`}{{AGb{AJb{AGb}{{AGh{{F`{c}}}}}}}{{F`{{Ab{ce}}}}}{}AG`}{{{Bd{Fd{Ab{ce}}}}}{{d{{AKl{ce}}}}}{}{}}{{{Bd{Fd{Ab{ce}}}}}{{d{e}}}{}{}}{{{Bd{{AKl{ce}}}}}{{d{{Bd{e}}}}}{}{}}{{{Bd{Fd{AKl{ce}}}}}{{d{{Bd{Fde}}}}}{}{}}{{{Bd{Fd{Ab{ce}}}}c}Nd{}AL`}{{{Bd{Fd{Ab{ce}}}}e}Nd{}{}}{{{Bd{Fd{Ab{ce}}}}c}Nd{}{}}{{{Bd{{AKf{ce}}}}}{{AHd{ADj{d{ADj}}}}}{}{}}{{{Bd{{ALf{ce}}}}}{{AHd{ADj{d{ADj}}}}}{}{}}{{{Bd{{AKh{ce}}}}}{{AHd{ADj{d{ADj}}}}}{}{}}{{{Bd{{AKj{c}}}}}{{AHd{ADj{d{ADj}}}}}{}}{{{Bd{{AEl{c}}}}}{{AHd{ADj{d{ADj}}}}}{}}{{{Bd{{AEn{c}}}}}{{AHd{ADj{d{ADj}}}}}{}}{Bdn}0{Bdc{}}00000{{{Bd{{Ab{ce}}}}{Bd{FdAEj}}}NdAFjAFj}{{{Bd{{AKl{ce}}}}{Bd{FdAEj}}}NdAFjAFj}{{{Bd{{Ab{ce}}}}}Od{}{}}{c{{A@h{e}}}{}{}}0000000{{}{{A@h{c}}}{}}0000000{BdAHl}0000000{{{Bd{{AKl{ce}}}}}{{Bd{c}}}{}{}}{{{Bd{Fd{AKl{ce}}}}}{{Bd{Fdc}}}{}{}}`{{{Bd{ALj}}}n}`````````````````````````````````````````````````````````````````````````````````````````````````````````{Bd{{Bd{c}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{Fd}}}{{Bd{Fdc}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{AE`}}}AE`}{{{Bd{AAh}}}AAh}{{{Bd{ALl}}}ALl}{{{Bd{An}}}An}{{{Bd{ALn}}}ALn}{{{Bd{AM`}}}AM`}{{{Bd{AMb}}}AMb}{{{Bd{AMd}}}AMd}{{{Bd{AMf}}}AMf}{{{Bd{AMh}}}AMh}{{{Bd{Nl}}}Nl}{{{Bd{AMj}}}AMj}{{{Bd{AAf}}}AAf}{{{Bd{AMl}}}AMl}{{{Bd{AMn}}}AMn}{{{Bd{AN`}}}AN`}{{{Bd{ANb}}}ANb}{{{Bd{Ob}}}Ob}{{{Bd{A@`}}}A@`}{{{Bd{ANd}}}ANd}{{{Bd{A@j}}}A@j}{{{Bd{A@l}}}A@l}{{{Bd{ANf}}}ANf}{{{Bd{AEf}}}AEf}{{{Bd{ANh}}}ANh}{{{Bd{ANj}}}ANj}{{{Bd{ANl}}}ANl}{{{Bd{ANn}}}ANn}{{{Bd{AO`}}}AO`}{{{Bd{AOb}}}AOb}{{{Bd{AOd}}}AOd}{{{Bd{AOf}}}AOf}{{{Bd{AOh}}}AOh}{{{Bd{AOj}}}AOj}{{{Bd{AGn}}}AGn}{{{Bd{AOl}}}AOl}{{{Bd{AOn}}}AOn}{{{Bd{B@`}}}B@`}{{{Bd{AA`}}}AA`}{{{Bd{AAb}}}AAb}{{{Bd{B@b}}}B@b}{{{Bd{AHh}}}AHh}{{{Bd{AAd}}}AAd}{{{Bd{B@d}}}B@d}{{{Bd{B@f}}}B@f}{{{Bd{B@h}}}B@h}{{{Bd{B@j}}}B@j}{{{Bd{AHn}}}AHn}{{{Bd{B@l}}}B@l}{{{Bd{B@n}}}B@n}{{{Bd{BA`}}}BA`}{{{Bd{BAb}}}BAb}{{{Bd{AIb}}}AIb}{{{Bd{BAd}}}BAd}{{{Bd{BAf}}}BAf}{{{Bd{h}}}h}{{{Bd{BAh}}}BAh}{{{Bd{BAj}}}BAj}{{{Bd{BAl}}}BAl}{{{Bd{BAn}}}BAn}{{{Bd{BB`}}}BB`}{{{Bd{Nj}}}Nj}{{{Bd{BBb}}}BBb}{{{Bd{BBd}}}BBd}{{{Bd{Nn}}}Nn}{{{Bd{BBf}}}BBf}{{{Bd{O`}}}O`}{{{Bd{BBh}}}BBh}{{{Bd{Oj}}}Oj}{{{Bd{BBj}}}BBj}{{{Bd{BBl}}}BBl}{{{Bd{BBn}}}BBn}{{{Bd{AEb}}}AEb}{{{Bd{BC`}}}BC`}{{{Bd{BCb}}}BCb}{{{Bd{AF`}}}AF`}{{{Bd{BCd}}}BCd}{{{Bd{BCf}}}BCf}{{{Bd{BCh}}}BCh}{{{Bd{Ed}}}Ed}{{{Bd{BCj}}}BCj}{{{Bd{BCl}}}BCl}{{{Bd{BCn}}}BCn}{{{Bd{BD`}}}BD`}{{{Bd{BDb}}}BDb}{{{Bd{BDd}}}BDd}{{{Bd{BDf}}}BDf}{{{Bd{BDh}}}BDh}{{{Bd{AGl}}}AGl}{{{Bd{BDj}}}BDj}{{{Bd{BDl}}}BDl}{{{Bd{AH`}}}AH`}{{{Bd{BDn}}}BDn}{{{Bd{BE`}}}BE`}{{{Bd{BEb}}}BEb}{{{Bd{BEd}}}BEd}{{{Bd{BEf}}}BEf}{{{Bd{BEh}}}BEh}{{{Bd{AHf}}}AHf}{{{Bd{BEj}}}BEj}{{{Bd{BEl}}}BEl}{{{Bd{Gd}}}Gd}{{{Bd{Gj}}}Gj}{{{Bd{AFl}}}AFl}{{Bd{Bd{Fdc}}}Nd{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{BdNf}Nd}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{}AE`}{{}AAh}{{}ALl}{{}An}{{}ALn}{{}AM`}{{}AMb}{{}AMd}{{}AMf}{{}AMh}{{}Nl}{{}AMj}{{}AAf}{{}AMl}{{}AMn}{{}AN`}{{}ANb}{{}Ob}{{}A@`}{{}ANd}{{}A@j}{{}A@l}{{}ANf}{{}AEf}{{}ANh}{{}ANj}{{}ANl}{{}ANn}{{}AO`}{{}AOb}{{}AOd}{{}AOf}{{}AOh}{{}AOj}{{}AGn}{{}AOl}{{}AOn}{{}B@`}{{}AA`}{{}AAb}{{}B@b}{{}AHh}{{}AAd}{{}B@d}{{}B@f}{{}B@h}{{}B@j}{{}AHn}{{}B@l}{{}B@n}{{}BA`}{{}BAb}{{}AIb}{{}BAd}{{}BAf}{{}h}{{}BAh}{{}BAj}{{}BAl}{{}BAn}{{}BB`}{{}Nj}{{}BBb}{{}BBd}{{}Nn}{{}BBf}{{}O`}{{}BBh}{{}Oj}{{}BBj}{{}BBl}{{}BBn}{{}AEb}{{}BC`}{{}BCb}{{}AF`}{{}BCd}{{}BCf}{{}BCh}{{}Ed}{{}BCj}{{}BCl}{{}BCn}{{}BD`}{{}BDb}{{}BDd}{{}BDf}{{}BDh}{{}AGl}{{}BDj}{{}BDl}{{}AH`}{{}BDn}{{}BE`}{{}BEb}{{}BEd}{{}BEf}{{}BEh}{{}AHf}{{}BEj}{{}BEl}{{}Gd}{{}Gj}{{}AFl}{{{Bd{AAh}}}{{Bd{c}}}{}}{{{Bd{h}}}{{Bd{c}}}{}}{{{Bd{BAl}}}{{Bd{c}}}{}}{{{Bd{BAn}}}{{Bd{c}}}{}}{{{Bd{Nj}}}{{Bd{c}}}{}}{{{Bd{BBb}}}{{Bd{c}}}{}}{{{Bd{BBd}}}{{Bd{c}}}{}}{{{Bd{Nn}}}{{Bd{c}}}{}}{{{Bd{Oj}}}{{Bd{c}}}{}}{{{Bd{AEb}}}{{Bd{c}}}{}}{{{Bd{AF`}}}{{Bd{c}}}{}}{{{Bd{BCd}}}{{Bd{c}}}{}}{{{Bd{Ed}}}{{Bd{c}}}{}}{{{Bd{BCj}}}{{Bd{c}}}{}}{{{Bd{BDb}}}{{Bd{c}}}{}}{{{Bd{BDf}}}{{Bd{c}}}{}}{{{Bd{AGl}}}{{Bd{c}}}{}}{{{Bd{BDj}}}{{Bd{c}}}{}}{{{Bd{AH`}}}{{Bd{c}}}{}}{{{Bd{BEf}}}{{Bd{c}}}{}}{{{Bd{AHf}}}{{Bd{c}}}{}}{{{Bd{BEl}}}{{Bd{c}}}{}}{{{Bd{FdAAh}}}{{Bd{Fdc}}}{}}{{{Bd{Fdh}}}{{Bd{Fdc}}}{}}{{{Bd{FdBAl}}}{{Bd{Fdc}}}{}}{{{Bd{FdBAn}}}{{Bd{Fdc}}}{}}{{{Bd{FdNj}}}{{Bd{Fdc}}}{}}{{{Bd{FdBBb}}}{{Bd{Fdc}}}{}}{{{Bd{FdBBd}}}{{Bd{Fdc}}}{}}{{{Bd{FdNn}}}{{Bd{Fdc}}}{}}{{{Bd{FdOj}}}{{Bd{Fdc}}}{}}{{{Bd{FdAEb}}}{{Bd{Fdc}}}{}}{{{Bd{FdAF`}}}{{Bd{Fdc}}}{}}{{{Bd{FdBCd}}}{{Bd{Fdc}}}{}}{{{Bd{FdEd}}}{{Bd{Fdc}}}{}}{{{Bd{FdBCj}}}{{Bd{Fdc}}}{}}{{{Bd{FdBDb}}}{{Bd{Fdc}}}{}}{{{Bd{FdBDf}}}{{Bd{Fdc}}}{}}{{{Bd{FdAGl}}}{{Bd{Fdc}}}{}}{{{Bd{FdBDj}}}{{Bd{Fdc}}}{}}{{{Bd{FdAH`}}}{{Bd{Fdc}}}{}}{{{Bd{FdBEf}}}{{Bd{Fdc}}}{}}{{{Bd{FdAHf}}}{{Bd{Fdc}}}{}}{{{Bd{FdBEl}}}{{Bd{Fdc}}}{}}{{{Bd{AE`}}{Bd{AE`}}}Od}{{{Bd{AAh}}{Bd{AAh}}}Od}{{{Bd{ALl}}{Bd{ALl}}}Od}{{{Bd{An}}{Bd{An}}}Od}{{{Bd{ALn}}{Bd{ALn}}}Od}{{{Bd{AM`}}{Bd{AM`}}}Od}{{{Bd{AMb}}{Bd{AMb}}}Od}{{{Bd{AMd}}{Bd{AMd}}}Od}{{{Bd{AMf}}{Bd{AMf}}}Od}{{{Bd{AMh}}{Bd{AMh}}}Od}{{{Bd{Nl}}{Bd{Nl}}}Od}{{{Bd{AMj}}{Bd{AMj}}}Od}{{{Bd{AAf}}{Bd{AAf}}}Od}{{{Bd{AMl}}{Bd{AMl}}}Od}{{{Bd{AMn}}{Bd{AMn}}}Od}{{{Bd{AN`}}{Bd{AN`}}}Od}{{{Bd{ANb}}{Bd{ANb}}}Od}{{{Bd{Ob}}{Bd{Ob}}}Od}{{{Bd{A@`}}{Bd{A@`}}}Od}{{{Bd{ANd}}{Bd{ANd}}}Od}{{{Bd{A@j}}{Bd{A@j}}}Od}{{{Bd{A@l}}{Bd{A@l}}}Od}{{{Bd{ANf}}{Bd{ANf}}}Od}{{{Bd{AEf}}{Bd{AEf}}}Od}{{{Bd{ANh}}{Bd{ANh}}}Od}{{{Bd{ANj}}{Bd{ANj}}}Od}{{{Bd{ANl}}{Bd{ANl}}}Od}{{{Bd{ANn}}{Bd{ANn}}}Od}{{{Bd{AO`}}{Bd{AO`}}}Od}{{{Bd{AOb}}{Bd{AOb}}}Od}{{{Bd{AOd}}{Bd{AOd}}}Od}{{{Bd{AOf}}{Bd{AOf}}}Od}{{{Bd{AOh}}{Bd{AOh}}}Od}{{{Bd{AOj}}{Bd{AOj}}}Od}{{{Bd{AGn}}{Bd{AGn}}}Od}{{{Bd{AOl}}{Bd{AOl}}}Od}{{{Bd{AOn}}{Bd{AOn}}}Od}{{{Bd{B@`}}{Bd{B@`}}}Od}{{{Bd{AA`}}{Bd{AA`}}}Od}{{{Bd{AAb}}{Bd{AAb}}}Od}{{{Bd{B@b}}{Bd{B@b}}}Od}{{{Bd{AHh}}{Bd{AHh}}}Od}{{{Bd{AAd}}{Bd{AAd}}}Od}{{{Bd{B@d}}{Bd{B@d}}}Od}{{{Bd{B@f}}{Bd{B@f}}}Od}{{{Bd{B@h}}{Bd{B@h}}}Od}{{{Bd{B@j}}{Bd{B@j}}}Od}{{{Bd{AHn}}{Bd{AHn}}}Od}{{{Bd{B@l}}{Bd{B@l}}}Od}{{{Bd{B@n}}{Bd{B@n}}}Od}{{{Bd{BA`}}{Bd{BA`}}}Od}{{{Bd{BAb}}{Bd{BAb}}}Od}{{{Bd{AIb}}{Bd{AIb}}}Od}{{{Bd{BAd}}{Bd{BAd}}}Od}{{{Bd{BAf}}{Bd{BAf}}}Od}{{{Bd{h}}{Bd{h}}}Od}{{{Bd{BAh}}{Bd{BAh}}}Od}{{{Bd{BAj}}{Bd{BAj}}}Od}{{{Bd{BAl}}{Bd{BAl}}}Od}{{{Bd{BAn}}{Bd{BAn}}}Od}{{{Bd{BB`}}{Bd{BB`}}}Od}{{{Bd{Nj}}{Bd{Nj}}}Od}{{{Bd{BBb}}{Bd{BBb}}}Od}{{{Bd{BBd}}{Bd{BBd}}}Od}{{{Bd{Nn}}{Bd{Nn}}}Od}{{{Bd{BBf}}{Bd{BBf}}}Od}{{{Bd{O`}}{Bd{O`}}}Od}{{{Bd{BBh}}{Bd{BBh}}}Od}{{{Bd{Oj}}{Bd{Oj}}}Od}{{{Bd{BBj}}{Bd{BBj}}}Od}{{{Bd{BBl}}{Bd{BBl}}}Od}{{{Bd{BBn}}{Bd{BBn}}}Od}{{{Bd{AEb}}{Bd{AEb}}}Od}{{{Bd{BC`}}{Bd{BC`}}}Od}{{{Bd{BCb}}{Bd{BCb}}}Od}{{{Bd{AF`}}{Bd{AF`}}}Od}{{{Bd{BCd}}{Bd{BCd}}}Od}{{{Bd{BCf}}{Bd{BCf}}}Od}{{{Bd{BCh}}{Bd{BCh}}}Od}{{{Bd{Ed}}{Bd{Ed}}}Od}{{{Bd{BCj}}{Bd{BCj}}}Od}{{{Bd{BCl}}{Bd{BCl}}}Od}{{{Bd{BCn}}{Bd{BCn}}}Od}{{{Bd{BD`}}{Bd{BD`}}}Od}{{{Bd{BDb}}{Bd{BDb}}}Od}{{{Bd{BDd}}{Bd{BDd}}}Od}{{{Bd{BDf}}{Bd{BDf}}}Od}{{{Bd{BDh}}{Bd{BDh}}}Od}{{{Bd{AGl}}{Bd{AGl}}}Od}{{{Bd{BDj}}{Bd{BDj}}}Od}{{{Bd{BDl}}{Bd{BDl}}}Od}{{{Bd{AH`}}{Bd{AH`}}}Od}{{{Bd{BDn}}{Bd{BDn}}}Od}{{{Bd{BE`}}{Bd{BE`}}}Od}{{{Bd{BEb}}{Bd{BEb}}}Od}{{{Bd{BEd}}{Bd{BEd}}}Od}{{{Bd{BEf}}{Bd{BEf}}}Od}{{{Bd{BEh}}{Bd{BEh}}}Od}{{{Bd{AHf}}{Bd{AHf}}}Od}{{{Bd{BEj}}{Bd{BEj}}}Od}{{{Bd{BEl}}{Bd{BEl}}}Od}{{{Bd{Gd}}{Bd{Gd}}}Od}{{{Bd{Gj}}{Bd{Gj}}}Od}{{{Bd{AFl}}{Bd{AFl}}}Od}{{{Bd{AE`}}{Bd{FdA@b}}}A@d}{{{Bd{AAh}}{Bd{FdA@b}}}A@d}{{{Bd{ALl}}{Bd{FdA@b}}}A@d}{{{Bd{An}}{Bd{FdA@b}}}A@d}{{{Bd{ALn}}{Bd{FdA@b}}}A@d}{{{Bd{AM`}}{Bd{FdA@b}}}A@d}{{{Bd{AMb}}{Bd{FdA@b}}}A@d}{{{Bd{AMd}}{Bd{FdA@b}}}A@d}{{{Bd{AMf}}{Bd{FdA@b}}}A@d}{{{Bd{AMh}}{Bd{FdA@b}}}A@d}{{{Bd{Nl}}{Bd{FdA@b}}}A@d}{{{Bd{AMj}}{Bd{FdA@b}}}A@d}{{{Bd{AAf}}{Bd{FdA@b}}}A@d}{{{Bd{AMl}}{Bd{FdA@b}}}A@d}{{{Bd{AMn}}{Bd{FdA@b}}}A@d}{{{Bd{AN`}}{Bd{FdA@b}}}A@d}{{{Bd{ANb}}{Bd{FdA@b}}}A@d}{{{Bd{Ob}}{Bd{FdA@b}}}A@d}{{{Bd{A@`}}{Bd{FdA@b}}}A@d}{{{Bd{ANd}}{Bd{FdA@b}}}A@d}{{{Bd{A@j}}{Bd{FdA@b}}}A@d}{{{Bd{A@l}}{Bd{FdA@b}}}A@d}{{{Bd{ANf}}{Bd{FdA@b}}}A@d}{{{Bd{AEf}}{Bd{FdA@b}}}A@d}{{{Bd{ANh}}{Bd{FdA@b}}}A@d}{{{Bd{ANj}}{Bd{FdA@b}}}A@d}{{{Bd{ANl}}{Bd{FdA@b}}}A@d}{{{Bd{ANn}}{Bd{FdA@b}}}A@d}{{{Bd{AO`}}{Bd{FdA@b}}}A@d}{{{Bd{AOb}}{Bd{FdA@b}}}A@d}{{{Bd{AOd}}{Bd{FdA@b}}}A@d}{{{Bd{AOf}}{Bd{FdA@b}}}A@d}{{{Bd{AOh}}{Bd{FdA@b}}}A@d}{{{Bd{AOj}}{Bd{FdA@b}}}A@d}{{{Bd{AGn}}{Bd{FdA@b}}}A@d}{{{Bd{AOl}}{Bd{FdA@b}}}A@d}{{{Bd{AOn}}{Bd{FdA@b}}}A@d}{{{Bd{B@`}}{Bd{FdA@b}}}A@d}{{{Bd{AA`}}{Bd{FdA@b}}}A@d}{{{Bd{AAb}}{Bd{FdA@b}}}A@d}{{{Bd{B@b}}{Bd{FdA@b}}}A@d}{{{Bd{AHh}}{Bd{FdA@b}}}A@d}{{{Bd{AAd}}{Bd{FdA@b}}}A@d}{{{Bd{B@d}}{Bd{FdA@b}}}A@d}{{{Bd{B@f}}{Bd{FdA@b}}}A@d}{{{Bd{B@h}}{Bd{FdA@b}}}A@d}{{{Bd{B@j}}{Bd{FdA@b}}}A@d}{{{Bd{AHn}}{Bd{FdA@b}}}A@d}{{{Bd{B@l}}{Bd{FdA@b}}}A@d}{{{Bd{B@n}}{Bd{FdA@b}}}A@d}{{{Bd{BA`}}{Bd{FdA@b}}}A@d}{{{Bd{BAb}}{Bd{FdA@b}}}A@d}{{{Bd{AIb}}{Bd{FdA@b}}}A@d}{{{Bd{BAd}}{Bd{FdA@b}}}A@d}{{{Bd{BAf}}{Bd{FdA@b}}}A@d}{{{Bd{h}}{Bd{FdA@b}}}A@d}{{{Bd{BAh}}{Bd{FdA@b}}}A@d}{{{Bd{BAj}}{Bd{FdA@b}}}A@d}{{{Bd{BAl}}{Bd{FdA@b}}}A@d}{{{Bd{BAn}}{Bd{FdA@b}}}A@d}{{{Bd{BB`}}{Bd{FdA@b}}}A@d}{{{Bd{Nj}}{Bd{FdA@b}}}A@d}{{{Bd{BBb}}{Bd{FdA@b}}}A@d}{{{Bd{BBd}}{Bd{FdA@b}}}A@d}{{{Bd{Nn}}{Bd{FdA@b}}}A@d}{{{Bd{BBf}}{Bd{FdA@b}}}A@d}{{{Bd{O`}}{Bd{FdA@b}}}A@d}{{{Bd{BBh}}{Bd{FdA@b}}}A@d}{{{Bd{Oj}}{Bd{FdA@b}}}A@d}{{{Bd{BBj}}{Bd{FdA@b}}}A@d}{{{Bd{BBl}}{Bd{FdA@b}}}A@d}{{{Bd{BBn}}{Bd{FdA@b}}}A@d}{{{Bd{AEb}}{Bd{FdA@b}}}A@d}{{{Bd{BC`}}{Bd{FdA@b}}}A@d}{{{Bd{BCb}}{Bd{FdA@b}}}A@d}{{{Bd{AF`}}{Bd{FdA@b}}}A@d}{{{Bd{BCd}}{Bd{FdA@b}}}A@d}{{{Bd{BCf}}{Bd{FdA@b}}}A@d}{{{Bd{BCh}}{Bd{FdA@b}}}A@d}{{{Bd{Ed}}{Bd{FdA@b}}}A@d}{{{Bd{BCj}}{Bd{FdA@b}}}A@d}{{{Bd{BCl}}{Bd{FdA@b}}}A@d}{{{Bd{BCn}}{Bd{FdA@b}}}A@d}{{{Bd{BD`}}{Bd{FdA@b}}}A@d}{{{Bd{BDb}}{Bd{FdA@b}}}A@d}{{{Bd{BDd}}{Bd{FdA@b}}}A@d}{{{Bd{BDf}}{Bd{FdA@b}}}A@d}{{{Bd{BDh}}{Bd{FdA@b}}}A@d}{{{Bd{AGl}}{Bd{FdA@b}}}A@d}{{{Bd{BDj}}{Bd{FdA@b}}}A@d}{{{Bd{BDl}}{Bd{FdA@b}}}A@d}{{{Bd{AH`}}{Bd{FdA@b}}}A@d}{{{Bd{BDn}}{Bd{FdA@b}}}A@d}{{{Bd{BE`}}{Bd{FdA@b}}}A@d}{{{Bd{BEb}}{Bd{FdA@b}}}A@d}{{{Bd{BEd}}{Bd{FdA@b}}}A@d}{{{Bd{BEf}}{Bd{FdA@b}}}A@d}{{{Bd{BEh}}{Bd{FdA@b}}}A@d}{{{Bd{AHf}}{Bd{FdA@b}}}A@d}{{{Bd{BEj}}{Bd{FdA@b}}}A@d}{{{Bd{BEl}}{Bd{FdA@b}}}A@d}{{{Bd{Gd}}{Bd{FdA@b}}}A@d}{{{Bd{Gj}}{Bd{FdA@b}}}A@d}{{{Bd{AFl}}{Bd{FdA@b}}}A@d}{cc{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{AE`}}{Bd{Fdc}}}NdAEd}{{{Bd{AAh}}{Bd{Fdc}}}NdAEd}{{{Bd{ALl}}{Bd{Fdc}}}NdAEd}{{{Bd{An}}{Bd{Fdc}}}NdAEd}{{{Bd{ALn}}{Bd{Fdc}}}NdAEd}{{{Bd{AM`}}{Bd{Fdc}}}NdAEd}{{{Bd{AMb}}{Bd{Fdc}}}NdAEd}{{{Bd{AMd}}{Bd{Fdc}}}NdAEd}{{{Bd{AMf}}{Bd{Fdc}}}NdAEd}{{{Bd{AMh}}{Bd{Fdc}}}NdAEd}{{{Bd{Nl}}{Bd{Fdc}}}NdAEd}{{{Bd{AMj}}{Bd{Fdc}}}NdAEd}{{{Bd{AAf}}{Bd{Fdc}}}NdAEd}{{{Bd{AMl}}{Bd{Fdc}}}NdAEd}{{{Bd{AMn}}{Bd{Fdc}}}NdAEd}{{{Bd{AN`}}{Bd{Fdc}}}NdAEd}{{{Bd{ANb}}{Bd{Fdc}}}NdAEd}{{{Bd{Ob}}{Bd{Fdc}}}NdAEd}{{{Bd{A@`}}{Bd{Fdc}}}NdAEd}{{{Bd{ANd}}{Bd{Fdc}}}NdAEd}{{{Bd{A@j}}{Bd{Fdc}}}NdAEd}{{{Bd{A@l}}{Bd{Fdc}}}NdAEd}{{{Bd{ANf}}{Bd{Fdc}}}NdAEd}{{{Bd{AEf}}{Bd{Fdc}}}NdAEd}{{{Bd{ANh}}{Bd{Fdc}}}NdAEd}{{{Bd{ANj}}{Bd{Fdc}}}NdAEd}{{{Bd{ANl}}{Bd{Fdc}}}NdAEd}{{{Bd{ANn}}{Bd{Fdc}}}NdAEd}{{{Bd{AO`}}{Bd{Fdc}}}NdAEd}{{{Bd{AOb}}{Bd{Fdc}}}NdAEd}{{{Bd{AOd}}{Bd{Fdc}}}NdAEd}{{{Bd{AOf}}{Bd{Fdc}}}NdAEd}{{{Bd{AOh}}{Bd{Fdc}}}NdAEd}{{{Bd{AOj}}{Bd{Fdc}}}NdAEd}{{{Bd{AGn}}{Bd{Fdc}}}NdAEd}{{{Bd{AOl}}{Bd{Fdc}}}NdAEd}{{{Bd{AOn}}{Bd{Fdc}}}NdAEd}{{{Bd{B@`}}{Bd{Fdc}}}NdAEd}{{{Bd{AA`}}{Bd{Fdc}}}NdAEd}{{{Bd{AAb}}{Bd{Fdc}}}NdAEd}{{{Bd{B@b}}{Bd{Fdc}}}NdAEd}{{{Bd{AHh}}{Bd{Fdc}}}NdAEd}{{{Bd{AAd}}{Bd{Fdc}}}NdAEd}{{{Bd{B@d}}{Bd{Fdc}}}NdAEd}{{{Bd{B@f}}{Bd{Fdc}}}NdAEd}{{{Bd{B@h}}{Bd{Fdc}}}NdAEd}{{{Bd{B@j}}{Bd{Fdc}}}NdAEd}{{{Bd{AHn}}{Bd{Fdc}}}NdAEd}{{{Bd{B@l}}{Bd{Fdc}}}NdAEd}{{{Bd{B@n}}{Bd{Fdc}}}NdAEd}{{{Bd{BA`}}{Bd{Fdc}}}NdAEd}{{{Bd{BAb}}{Bd{Fdc}}}NdAEd}{{{Bd{AIb}}{Bd{Fdc}}}NdAEd}{{{Bd{BAd}}{Bd{Fdc}}}NdAEd}{{{Bd{BAf}}{Bd{Fdc}}}NdAEd}{{{Bd{h}}{Bd{Fdc}}}NdAEd}{{{Bd{BAh}}{Bd{Fdc}}}NdAEd}{{{Bd{BAj}}{Bd{Fdc}}}NdAEd}{{{Bd{BAl}}{Bd{Fdc}}}NdAEd}{{{Bd{BAn}}{Bd{Fdc}}}NdAEd}{{{Bd{BB`}}{Bd{Fdc}}}NdAEd}{{{Bd{Nj}}{Bd{Fdc}}}NdAEd}{{{Bd{BBb}}{Bd{Fdc}}}NdAEd}{{{Bd{BBd}}{Bd{Fdc}}}NdAEd}{{{Bd{Nn}}{Bd{Fdc}}}NdAEd}{{{Bd{BBf}}{Bd{Fdc}}}NdAEd}{{{Bd{O`}}{Bd{Fdc}}}NdAEd}{{{Bd{BBh}}{Bd{Fdc}}}NdAEd}{{{Bd{Oj}}{Bd{Fdc}}}NdAEd}{{{Bd{BBj}}{Bd{Fdc}}}NdAEd}{{{Bd{BBl}}{Bd{Fdc}}}NdAEd}{{{Bd{BBn}}{Bd{Fdc}}}NdAEd}{{{Bd{AEb}}{Bd{Fdc}}}NdAEd}{{{Bd{BC`}}{Bd{Fdc}}}NdAEd}{{{Bd{BCb}}{Bd{Fdc}}}NdAEd}{{{Bd{AF`}}{Bd{Fdc}}}NdAEd}{{{Bd{BCd}}{Bd{Fdc}}}NdAEd}{{{Bd{BCf}}{Bd{Fdc}}}NdAEd}{{{Bd{BCh}}{Bd{Fdc}}}NdAEd}{{{Bd{Ed}}{Bd{Fdc}}}NdAEd}{{{Bd{BCj}}{Bd{Fdc}}}NdAEd}{{{Bd{BCl}}{Bd{Fdc}}}NdAEd}{{{Bd{BCn}}{Bd{Fdc}}}NdAEd}{{{Bd{BD`}}{Bd{Fdc}}}NdAEd}{{{Bd{BDb}}{Bd{Fdc}}}NdAEd}{{{Bd{BDd}}{Bd{Fdc}}}NdAEd}{{{Bd{BDf}}{Bd{Fdc}}}NdAEd}{{{Bd{BDh}}{Bd{Fdc}}}NdAEd}{{{Bd{AGl}}{Bd{Fdc}}}NdAEd}{{{Bd{BDj}}{Bd{Fdc}}}NdAEd}{{{Bd{BDl}}{Bd{Fdc}}}NdAEd}{{{Bd{AH`}}{Bd{Fdc}}}NdAEd}{{{Bd{BDn}}{Bd{Fdc}}}NdAEd}{{{Bd{BE`}}{Bd{Fdc}}}NdAEd}{{{Bd{BEb}}{Bd{Fdc}}}NdAEd}{{{Bd{BEd}}{Bd{Fdc}}}NdAEd}{{{Bd{BEf}}{Bd{Fdc}}}NdAEd}{{{Bd{BEh}}{Bd{Fdc}}}NdAEd}{{{Bd{AHf}}{Bd{Fdc}}}NdAEd}{{{Bd{BEj}}{Bd{Fdc}}}NdAEd}{{{Bd{BEl}}{Bd{Fdc}}}NdAEd}{{{Bd{Gd}}{Bd{Fdc}}}NdAEd}{{{Bd{Gj}}{Bd{Fdc}}}NdAEd}{{{Bd{AFl}}{Bd{Fdc}}}NdAEd}{{}c{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{AGb{{F`{AAh}}}}{AGb{{F`{ALl}}}}{AGb{{F`{An}}}}{AGb{{F`{ALn}}}}{AGb{{F`{AM`}}}}{AGb{{F`{AMb}}}}{AGb{{F`{AMd}}}}{AGb{{F`{AMf}}}}{AGb{{F`{AMh}}}}{AGb{{F`{Nl}}}}{AGb{{F`{AMj}}}}{AGb{{F`{AAf}}}}{AGb{{F`{AMl}}}}{AGb{{F`{AMn}}}}{AGb{{F`{AN`}}}}{AGb{{F`{ANb}}}}{AGb{{F`{Ob}}}}{AGb{{F`{A@`}}}}{AGb{{F`{ANd}}}}{AGb{{F`{A@j}}}}{AGb{{F`{A@l}}}}{AGb{{F`{ANf}}}}{AGb{{F`{AEf}}}}{AGb{{F`{ANh}}}}{AGb{{F`{ANj}}}}{AGb{{F`{ANl}}}}{AGb{{F`{ANn}}}}{AGb{{F`{AO`}}}}{AGb{{F`{AOb}}}}{AGb{{F`{AOd}}}}{AGb{{F`{AOf}}}}{AGb{{F`{AOh}}}}{AGb{{F`{AOj}}}}{AGb{{F`{AGn}}}}{AGb{{F`{AOl}}}}{AGb{{F`{AOn}}}}{AGb{{F`{B@`}}}}{AGb{{F`{AA`}}}}{AGb{{F`{AAb}}}}{AGb{{F`{B@b}}}}{AGb{{F`{AHh}}}}{AGb{{F`{AAd}}}}{AGb{{F`{B@d}}}}{AGb{{F`{B@f}}}}{AGb{{F`{B@h}}}}{AGb{{F`{B@j}}}}{AGb{{F`{AHn}}}}{AGb{{F`{B@l}}}}{AGb{{F`{B@n}}}}{AGb{{F`{BA`}}}}{AGb{{F`{BAb}}}}{AGb{{F`{AIb}}}}{AGb{{F`{BAd}}}}{AGb{{F`{BAf}}}}{AGb{{F`{h}}}}{AGb{{F`{BAh}}}}{AGb{{F`{BAj}}}}{AGb{{F`{BAl}}}}{AGb{{F`{BAn}}}}{AGb{{F`{BB`}}}}{AGb{{F`{Nj}}}}{AGb{{F`{BBb}}}}{AGb{{F`{BBd}}}}{AGb{{F`{Nn}}}}{AGb{{F`{BBf}}}}{AGb{{F`{O`}}}}{AGb{{F`{BBh}}}}{AGb{{F`{Oj}}}}{AGb{{F`{BBj}}}}{AGb{{F`{BBl}}}}{AGb{{F`{BBn}}}}{AGb{{F`{AEb}}}}{AGb{{F`{BC`}}}}{AGb{{F`{BCb}}}}{AGb{{F`{AF`}}}}{AGb{{F`{BCd}}}}{AGb{{F`{BCf}}}}{AGb{{F`{BCh}}}}{AGb{{F`{Ed}}}}{AGb{{F`{BCj}}}}{AGb{{F`{BCl}}}}{AGb{{F`{BCn}}}}{AGb{{F`{BD`}}}}{AGb{{F`{BDb}}}}{AGb{{F`{BDd}}}}{AGb{{F`{BDf}}}}{AGb{{F`{BDh}}}}{AGb{{F`{AGl}}}}{AGb{{F`{BDj}}}}{AGb{{F`{BDl}}}}{AGb{{F`{AH`}}}}{AGb{{F`{BDn}}}}{AGb{{F`{BE`}}}}{AGb{{F`{BEb}}}}{AGb{{F`{BEd}}}}{AGb{{F`{BEf}}}}{AGb{{F`{BEh}}}}{AGb{{F`{AHf}}}}{AGb{{F`{BEj}}}}{AGb{{F`{BEl}}}}{Bdn}000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{AE`n}{ALln}{Ann}{ALnn}{AM`n}{AMbn}{AMdn}{AMfn}{AMhn}{Nln}{AMjn}{AAfn}{AMln}{AMnn}{AN`n}{ANbn}{Obn}{A@`n}{ANdn}{A@jn}{A@ln}{ANfn}{AEfn}{ANhn}{ANjn}{ANln}{ANnn}{AO`n}{AObn}{AOdn}{AOfn}{AOhn}{AOjn}{AGnn}{AOln}{AOnn}{B@`n}{AA`n}{AAbn}{B@bn}{AHhn}{AAdn}{B@dn}{B@fn}{B@hn}{B@jn}{AHnn}{B@ln}{B@nn}{BA`n}{BAbn}{AIbn}{BAdn}{BAfn}{GdAHb}{GjAHb}{AFlAHb}{AAhBEn}{hBEn}{BAhBEn}{BAjBEn}{BAlBEn}{BAnBEn}{BB`BEn}{NjBEn}{BBbBEn}{BBdBEn}{NnBEn}{BBfBEn}{O`BEn}{BBhBEn}{OjBEn}{BBjBEn}{BBlBEn}{BBnBEn}{AEbBEn}{BC`BEn}{BCbBEn}{AF`BEn}{BCdBEn}{BCfBEn}{BChBEn}{EdBEn}{BCjBEn}{BClBEn}{BCnBEn}{BD`BEn}{BDbBEn}{BDdBEn}{BDfBEn}{BDhBEn}{AGlBEn}{BDjBEn}{BDlBEn}{AH`BEn}{BDnBEn}{BE`BEn}{BEbBEn}{BEdBEn}{BEfBEn}{BEhBEn}{AHfBEn}{BEjBEn}{BElBEn}{{{Bd{AE`}}{Bd{FdAEj}}c}Nd{{AJn{{Bd{FdAEj}}}}}}{{{Bd{Gd}}{Bd{FdAEj}}c}Nd{{AJn{{Bd{FdAEj}}}}}}{{{Bd{Gj}}{Bd{FdAEj}}c}Nd{{AJn{{Bd{FdAEj}}}}}}{{{Bd{AFl}}{Bd{FdAEj}}c}Nd{{AJn{{Bd{FdAEj}}}}}}{Bdc{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{{Bd{AAh}}{Bd{FdAEj}}}Nd}{{{Bd{ALl}}{Bd{FdAEj}}}Nd}{{{Bd{An}}{Bd{FdAEj}}}Nd}{{{Bd{ALn}}{Bd{FdAEj}}}Nd}{{{Bd{AM`}}{Bd{FdAEj}}}Nd}{{{Bd{AMb}}{Bd{FdAEj}}}Nd}{{{Bd{AMd}}{Bd{FdAEj}}}Nd}{{{Bd{AMf}}{Bd{FdAEj}}}Nd}{{{Bd{AMh}}{Bd{FdAEj}}}Nd}{{{Bd{Nl}}{Bd{FdAEj}}}Nd}{{{Bd{AMj}}{Bd{FdAEj}}}Nd}{{{Bd{AAf}}{Bd{FdAEj}}}Nd}{{{Bd{AMl}}{Bd{FdAEj}}}Nd}{{{Bd{AMn}}{Bd{FdAEj}}}Nd}{{{Bd{AN`}}{Bd{FdAEj}}}Nd}{{{Bd{ANb}}{Bd{FdAEj}}}Nd}{{{Bd{Ob}}{Bd{FdAEj}}}Nd}{{{Bd{A@`}}{Bd{FdAEj}}}Nd}{{{Bd{ANd}}{Bd{FdAEj}}}Nd}{{{Bd{A@j}}{Bd{FdAEj}}}Nd}{{{Bd{A@l}}{Bd{FdAEj}}}Nd}{{{Bd{ANf}}{Bd{FdAEj}}}Nd}{{{Bd{AEf}}{Bd{FdAEj}}}Nd}{{{Bd{ANh}}{Bd{FdAEj}}}Nd}{{{Bd{ANj}}{Bd{FdAEj}}}Nd}{{{Bd{ANl}}{Bd{FdAEj}}}Nd}{{{Bd{ANn}}{Bd{FdAEj}}}Nd}{{{Bd{AO`}}{Bd{FdAEj}}}Nd}{{{Bd{AOb}}{Bd{FdAEj}}}Nd}{{{Bd{AOd}}{Bd{FdAEj}}}Nd}{{{Bd{AOf}}{Bd{FdAEj}}}Nd}{{{Bd{AOh}}{Bd{FdAEj}}}Nd}{{{Bd{AOj}}{Bd{FdAEj}}}Nd}{{{Bd{AGn}}{Bd{FdAEj}}}Nd}{{{Bd{AOl}}{Bd{FdAEj}}}Nd}{{{Bd{AOn}}{Bd{FdAEj}}}Nd}{{{Bd{B@`}}{Bd{FdAEj}}}Nd}{{{Bd{AA`}}{Bd{FdAEj}}}Nd}{{{Bd{AAb}}{Bd{FdAEj}}}Nd}{{{Bd{B@b}}{Bd{FdAEj}}}Nd}{{{Bd{AHh}}{Bd{FdAEj}}}Nd}{{{Bd{AAd}}{Bd{FdAEj}}}Nd}{{{Bd{B@d}}{Bd{FdAEj}}}Nd}{{{Bd{B@f}}{Bd{FdAEj}}}Nd}{{{Bd{B@h}}{Bd{FdAEj}}}Nd}{{{Bd{B@j}}{Bd{FdAEj}}}Nd}{{{Bd{AHn}}{Bd{FdAEj}}}Nd}{{{Bd{B@l}}{Bd{FdAEj}}}Nd}{{{Bd{B@n}}{Bd{FdAEj}}}Nd}{{{Bd{BA`}}{Bd{FdAEj}}}Nd}{{{Bd{BAb}}{Bd{FdAEj}}}Nd}{{{Bd{AIb}}{Bd{FdAEj}}}Nd}{{{Bd{BAd}}{Bd{FdAEj}}}Nd}{{{Bd{BAf}}{Bd{FdAEj}}}Nd}{{{Bd{h}}{Bd{FdAEj}}}Nd}{{{Bd{BAh}}{Bd{FdAEj}}}Nd}{{{Bd{BAj}}{Bd{FdAEj}}}Nd}{{{Bd{BAl}}{Bd{FdAEj}}}Nd}{{{Bd{BAn}}{Bd{FdAEj}}}Nd}{{{Bd{BB`}}{Bd{FdAEj}}}Nd}{{{Bd{Nj}}{Bd{FdAEj}}}Nd}{{{Bd{BBb}}{Bd{FdAEj}}}Nd}{{{Bd{BBd}}{Bd{FdAEj}}}Nd}{{{Bd{Nn}}{Bd{FdAEj}}}Nd}{{{Bd{BBf}}{Bd{FdAEj}}}Nd}{{{Bd{O`}}{Bd{FdAEj}}}Nd}{{{Bd{BBh}}{Bd{FdAEj}}}Nd}{{{Bd{Oj}}{Bd{FdAEj}}}Nd}{{{Bd{BBj}}{Bd{FdAEj}}}Nd}{{{Bd{BBl}}{Bd{FdAEj}}}Nd}{{{Bd{BBn}}{Bd{FdAEj}}}Nd}{{{Bd{AEb}}{Bd{FdAEj}}}Nd}{{{Bd{BC`}}{Bd{FdAEj}}}Nd}{{{Bd{BCb}}{Bd{FdAEj}}}Nd}{{{Bd{AF`}}{Bd{FdAEj}}}Nd}{{{Bd{BCd}}{Bd{FdAEj}}}Nd}{{{Bd{BCf}}{Bd{FdAEj}}}Nd}{{{Bd{BCh}}{Bd{FdAEj}}}Nd}{{{Bd{Ed}}{Bd{FdAEj}}}Nd}{{{Bd{BCj}}{Bd{FdAEj}}}Nd}{{{Bd{BCl}}{Bd{FdAEj}}}Nd}{{{Bd{BCn}}{Bd{FdAEj}}}Nd}{{{Bd{BD`}}{Bd{FdAEj}}}Nd}{{{Bd{BDb}}{Bd{FdAEj}}}Nd}{{{Bd{BDd}}{Bd{FdAEj}}}Nd}{{{Bd{BDf}}{Bd{FdAEj}}}Nd}{{{Bd{BDh}}{Bd{FdAEj}}}Nd}{{{Bd{AGl}}{Bd{FdAEj}}}Nd}{{{Bd{BDj}}{Bd{FdAEj}}}Nd}{{{Bd{BDl}}{Bd{FdAEj}}}Nd}{{{Bd{AH`}}{Bd{FdAEj}}}Nd}{{{Bd{BDn}}{Bd{FdAEj}}}Nd}{{{Bd{BE`}}{Bd{FdAEj}}}Nd}{{{Bd{BEb}}{Bd{FdAEj}}}Nd}{{{Bd{BEd}}{Bd{FdAEj}}}Nd}{{{Bd{BEf}}{Bd{FdAEj}}}Nd}{{{Bd{BEh}}{Bd{FdAEj}}}Nd}{{{Bd{AHf}}{Bd{FdAEj}}}Nd}{{{Bd{BEj}}{Bd{FdAEj}}}Nd}{{{Bd{BEl}}{Bd{FdAEj}}}Nd}{c{{A@h{e}}}{}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{{}{{A@h{c}}}{}}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{BdAHl}0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`{{{Bd{Fdc}}{Bd{N`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{N`}}}Nd}0{{{Bd{Fdc}}{Bd{Af}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Af}}}Nd}0{{{Bd{Fdc}}{Bd{Lh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Lh}}}Nd}0{{{Bd{Fdc}}{Bd{Lf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Lf}}}Nd}0{{{Bd{Fdc}}{Bd{Hf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hf}}}Nd}0{{{Bd{Fdc}}{Bd{Gh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Gh}}}Nd}0{{{Bd{Fdc}}{Bd{Dn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Dn}}}Nd}0{{{Bd{Fdc}}{Bd{E`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{E`}}}Nd}0{{{Bd{Fdc}}{Bd{Kn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kn}}}Nd}0{{{Bd{Fdc}}{Bd{Jb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jb}}}Nd}0{{{Bd{Fdc}}{Bd{Dl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Dl}}}Nd}0{{{Bd{Fdc}}{Bd{Fl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Fl}}}Nd}0{{{Bd{Fdc}}{Bd{Ib}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ib}}}Nd}0{{{Bd{Fdc}}{Bd{Gf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Gf}}}Nd}0{{{Bd{Fdc}}{Bd{Id}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Id}}}Nd}0{{{Bd{Fdc}}{Bd{If}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{If}}}Nd}0{{{Bd{Fdc}}{Bd{Bn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Bn}}}Nd}0{{{Bd{Fdc}}{Bd{Ih}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ih}}}Nd}0{{{Bd{Fdc}}{Bd{C`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{C`}}}Nd}0{{{Bd{Fdc}}{Bd{A`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{A`}}}Nd}0{{{Bd{Fdc}}{Bd{Al}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Al}}}Nd}0{{{Bd{Fdc}}{Bd{Cb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cb}}}Nd}0{{{Bd{Fdc}}{Bd{Cd}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cd}}}Nd}0{{{Bd{Fdc}}{Bd{Cf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cf}}}Nd}0{{{Bd{Fdc}}{Bd{Ch}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ch}}}Nd}0{{{Bd{Fdc}}{Bd{Cj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cj}}}Nd}0{{{Bd{Fdc}}{Bd{Ad}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ad}}}Nd}0{{{Bd{Fdc}}{Bd{Cl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cl}}}Nd}0{{{Bd{Fdc}}{Bd{Cn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Cn}}}Nd}0{{{Bd{Fdc}}{Bd{f}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{f}}}Nd}0{{{Bd{Fdc}}{Bd{D`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{D`}}}Nd}0{{{Bd{Fdc}}{Bd{Db}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Db}}}Nd}0{{{Bd{Fdc}}{Bd{Dd}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Dd}}}Nd}0{{{Bd{Fdc}}{Bd{Bl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Bl}}}Nd}0{{{Bd{Fdc}}{Bd{M`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{M`}}}Nd}0{{{Bd{Fdc}}{Bd{Df}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Df}}}Nd}0{{{Bd{Fdc}}{Bd{Hn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hn}}}Nd}0{{{Bd{Fdc}}{Bd{Gb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Gb}}}Nd}0{{{Bd{Fdc}}{Bd{I`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{I`}}}Nd}0{{{Bd{Fdc}}{Bd{Ld}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ld}}}Nd}0{{{Bd{Fdc}}{Bd{J`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{J`}}}Nd}0{{{Bd{Fdc}}{Bd{In}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{In}}}Nd}0{{{Bd{Fdc}}{Bd{Hb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hb}}}Nd}0{{{Bd{Fdc}}{Bd{Il}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Il}}}Nd}0{{{Bd{Fdc}}{Bd{l}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{l}}}Nd}0{{{Bd{Fdc}}{Bd{Dh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Dh}}}Nd}0{{{Bd{Fdc}}{Bd{Jn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jn}}}Nd}0{{{Bd{Fdc}}{Bd{Kj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kj}}}Nd}0{{{Bd{Fdc}}{Bd{Kf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kf}}}Nd}0{{{Bd{Fdc}}{Bd{Kb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kb}}}Nd}0{{{Bd{Fdc}}{Bd{Kh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kh}}}Nd}0{{{Bd{Fdc}}{Bd{Kd}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kd}}}Nd}0{{{Bd{Fdc}}{Bd{En}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{En}}}Nd}0{{{Bd{Fdc}}{Bd{Ej}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ej}}}Nd}0{{{Bd{Fdc}}{Bd{K`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{K`}}}Nd}0{{{Bd{Fdc}}{Bd{Eb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Eb}}}Nd}0{{{Bd{Fdc}}{Bd{Kl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Kl}}}Nd}0{{{Bd{Fdc}}{Bd{Ij}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ij}}}Nd}0{{{Bd{Fdc}}{Bd{Hh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hh}}}Nd}0{{{Bd{Fdc}}{Bd{Hj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hj}}}Nd}0{{{Bd{Fdc}}{Bd{Hl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Hl}}}Nd}0{{{Bd{Fdc}}{Bd{Lj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Lj}}}Nd}0{{{Bd{Fdc}}{Bd{Lb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Lb}}}Nd}0{{{Bd{Fdc}}{Bd{Aj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Aj}}}Nd}0{{{Bd{Fdc}}{Bd{Ah}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ah}}}Nd}0{{{Bd{Fdc}}{Bd{Fj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Fj}}}Nd}0{{{Bd{Fdc}}{Bd{Ff}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ff}}}Nd}0{{{Bd{Fdc}}{Bd{B`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{B`}}}Nd}0{{{Bd{Fdc}}{Bd{Nb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Nb}}}Nd}0{{{Bd{Fdc}}{Bd{n}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{n}}}Nd}0{{{Bd{FdBF`}}{Bd{AEj}}}Nd}0{{{Bd{Fdc}}{Bd{Jf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jf}}}Nd}0{{{Bd{Fdc}}{Bd{Jh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jh}}}Nd}0{{{Bd{Fdc}}{Bd{Fh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Fh}}}Nd}0{{{Bd{Fdc}}{Bd{Gl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Gl}}}Nd}0{{{Bd{Fdc}}{Bd{b}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{b}}}Nd}0{{{Bd{Fdc}}{Bd{Mb}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Mb}}}Nd}0{{{Bd{Fdc}}{Bd{Fn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Fn}}}Nd}0{{{Bd{Fdc}}{Bd{Md}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Md}}}Nd}0{{{Bd{Fdc}}{Bd{Mf}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Mf}}}Nd}0{{{Bd{Fdc}}{Bd{Ef}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ef}}}Nd}0{{{Bd{Fdc}}{Bd{Dj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Dj}}}Nd}0{{{Bd{Fdc}}{Bd{Jd}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jd}}}Nd}0{{{Bd{Fdc}}{Bd{Mh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Mh}}}Nd}0{{{Bd{Fdc}}{Bd{Mj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Mj}}}Nd}0{{{Bd{Fdc}}{Bd{Ml}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ml}}}Nd}0{{{Bd{Fdc}}{Bd{j}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{j}}}Nd}0{{{Bd{Fdc}}{Bd{Gn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Gn}}}Nd}0{{{Bd{Fdc}}{Bd{G`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{G`}}}Nd}0{{{Bd{Fdc}}{Bd{Mn}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Mn}}}Nd}0{{{Bd{Fdc}}{Bd{L`}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{L`}}}Nd}0{{{Bd{Fdc}}{Bd{Bh}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Bh}}}Nd}0{{{Bd{Fdc}}{Bd{Ln}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ln}}}Nd}0{{{Bd{Fdc}}{Bd{Ll}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Ll}}}Nd}0{{{Bd{Fdc}}{Bd{Jj}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jj}}}Nd}0{{{Bd{Fdc}}{Bd{Jl}}}Nd{BF`Oh}}{{{Bd{FdBF`}}{Bd{Jl}}}Nd}0","D":"H@f","p":[[5,"TypeBareFn",2628,5304],[6,"Option",5305,null,1],[5,"ExprReference",2628,5306],[5,"And",2899],[5,"TypeReference",2628,5304],[5,"Lifetime",2628,5307],[5,"Span",5308],[5,"ExprCall",2628,5306],[5,"Punctuated",2724],[5,"ExprMethodCall",2628,5306],[5,"AngleBracketedGenericArguments",2628,5309],[5,"PathSegment",2628,5309],[6,"PathArguments",2628,5309],[5,"ExprCast",2628,5306],[5,"As",2899],[5,"QSelf",2628,5309],[5,"TypeGenerics",2628,5310],[1,"reference",null,null,1],[5,"Turbofish",2628,5310],[5,"Variant",2628,5311],[5,"Vec",5312],[5,"Field",2628,5311],[5,"DeriveInput",2628,5313],[5,"ExprBinary",2628,5306],[5,"ExprField",2628,5306],[5,"ExprGroup",2628,5306],[5,"ExprIndex",2628,5306],[5,"ExprLit",2628,5306],[5,"ExprMacro",2628,5306],[5,"ExprParen",2628,5306],[5,"ExprPath",2628,5306],[5,"ExprStruct",2628,5306],[5,"ExprTuple",2628,5306],[5,"ExprUnary",2628,5306],[5,"FieldValue",2628,5306],[5,"LifetimeParam",2628,5310],[5,"TypeParam",2628,5310],[5,"ConstParam",2628,5310],[5,"BareFnArg",2628,5304],[5,"BareVariadic",2628,5304],[5,"Macro",2628,5314],[5,"Not",2899],[5,"TypeNever",2628,5304],[5,"Box",5315,null,1],[5,"LitInt",2628,5316],[1,"str"],[5,"LitFloat",2628,5316],[8,"Result",2628,5317],[10,"FromStr",5318],[0,"mut"],[5,"PredicateType",2628,5310],[6,"Type",2628,5304],[5,"PredicateLifetime",2628,5310],[5,"Constraint",2628,5309],[5,"TypeImplTrait",2628,5304],[5,"TypeTraitObject",2628,5304],[5,"FieldsNamed",2628,5311],[5,"Brace",2899],[5,"DataEnum",2628,5313],[5,"Attribute",2628,5319],[5,"Bracket",2899],[5,"TypeArray",2628,5304],[5,"TypeSlice",2628,5304],[5,"Error",2628,5317],[5,"Ident",2628,5308],[5,"ImplGenerics",2628,5310],[6,"AttrStyle",2628,5319],[6,"Meta",2628,5319],[5,"MetaList",2628,5319],[5,"MetaNameValue",2628,5319],[6,"Fields",2628,5311],[5,"FieldsUnnamed",2628,5311],[6,"Data",2628,5313],[5,"DataStruct",2628,5313],[5,"DataUnion",2628,5313],[6,"Expr",2628,5306],[6,"Member",2628,5306],[5,"Index",2628,5306],[5,"Generics",2628,5310],[6,"GenericParam",2628,5310],[5,"BoundLifetimes",2628,5310],[6,"TypeParamBound",2628,5310],[5,"TraitBound",2628,5310],[6,"TraitBoundModifier",2628,5310],[5,"WhereClause",2628,5310],[6,"WherePredicate",2628,5310],[6,"Lit",2628,5316],[5,"LitStr",2628,5316],[5,"LitByteStr",2628,5316],[5,"LitCStr",2628,5316],[5,"LitByte",2628,5316],[5,"LitChar",2628,5316],[5,"LitBool",2628,5316],[6,"MacroDelimiter",2628,5314],[6,"BinOp",2628,5320],[6,"UnOp",2628,5320],[5,"Path",2628,5309],[6,"GenericArgument",2628,5309],[5,"AssocType",2628,5309],[5,"AssocConst",2628,5309],[5,"ParenthesizedGenericArguments",2628,5309],[6,"Visibility",2628,5321],[5,"VisRestricted",2628,5321],[6,"FieldMutability",2628,5321],[5,"TypeGroup",2628,5304],[5,"TypeInfer",2628,5304],[5,"TypeMacro",2628,5304],[5,"TypeParen",2628,5304],[5,"TypePath",2628,5304],[5,"TypePtr",2628,5304],[5,"TypeTuple",2628,5304],[5,"Abi",2628,5304],[6,"ReturnType",2628,5304],[1,"unit"],[1,"u8"],[6,"Ordering",5322],[5,"Colon",2899],[5,"Const",2899],[5,"Dot",2899],[5,"DotDotDot",2899],[5,"Enum",2899],[1,"bool"],[10,"AsRef",5323],[10,"Sized",5324],[5,"Eq",2899],[17,"Item"],[10,"IntoIterator",5325],[5,"Extern",2899],[5,"Formatter",5326],[8,"Result",5326],[5,"Error",5326],[6,"Result",5327,null,1],[5,"Fn",2899],[5,"For",2899],[5,"LexError",5308],[5,"SelfType",2899],[5,"SelfValue",2899],[5,"Super",2899],[5,"Crate",2899],[5,"Underscore",2899],[5,"ExprRawAddr",2628,5306],[5,"ExprTryBlock",2628,5306],[5,"ExprArray",2628,5306],[5,"ExprAssign",2628,5306],[5,"ExprAsync",2628,5306],[5,"ExprTry",2628,5306],[5,"ExprUnsafe",2628,5306],[5,"ExprAwait",2628,5306],[5,"ExprBlock",2628,5306],[5,"ExprBreak",2628,5306],[5,"ExprClosure",2628,5306],[5,"ExprConst",2628,5306],[5,"ExprRepeat",2628,5306],[5,"ExprWhile",2628,5306],[5,"ExprContinue",2628,5306],[5,"ExprForLoop",2628,5306],[5,"ExprYield",2628,5306],[5,"ExprRange",2628,5306],[5,"ExprIf",2628,5306],[5,"ExprInfer",2628,5306],[5,"ExprLet",2628,5306],[5,"ExprReturn",2628,5306],[5,"ExprLoop",2628,5306],[5,"ExprMatch",2628,5306],[1,"usize"],[5,"Literal",5308],[10,"Into",5323,null,1],[5,"Group",2899],[5,"Gt",2899],[10,"Hasher",5328],[5,"Impl",2899],[1,"u32"],[5,"TokenStream",5308],[5,"Iter",2724],[5,"IterMut",2724],[5,"Lt",2899],[10,"Display",5326],[1,"slice"],[5,"CStr",5329],[1,"char"],[10,"ToTokens",5330],[5,"Paren",2899],[5,"TokenStream",5331],[10,"Parse",2629],[8,"ParseStream",2629],[10,"Parser",2629],[5,"ParseNestedMeta",2609],[17,"Output"],[10,"FnMut",5332],[5,"Pound",2899],[5,"Pub",2899],[5,"Semi",2899],[5,"DelimSpan",5333],[1,"tuple",null,null,1],[5,"Star",2899],[5,"Struct",2899],[5,"String",5334],[5,"TypeId",5335],[5,"Union",2899],[5,"CString",5336],[5,"Where",2899],[5,"Cursor",2569],[6,"Delimiter",5308],[5,"TokenBuffer",2569],[5,"Punct",5308],[6,"TokenTree",5308],[10,"IdentExt",2605],[5,"ParseBuffer",2629],[1,"fn"],[5,"End",2629,5337],[5,"StepCursor",2629],[5,"Nothing",2629],[5,"Lookahead1",2629,5337],[10,"Peek",2629,5337],[10,"FnOnce",5332],[10,"Speculative",2720],[10,"AnyDelimiter",2720],[10,"Clone",5338],[5,"Pairs",2724],[5,"IntoPairs",2724],[5,"IntoIter",2724],[6,"Pair",2724],[10,"PartialEq",5322],[10,"Default",5339],[10,"Debug",5326],[10,"Hash",5328],[5,"PairsMut",2724],[10,"Token",2899],[10,"Spanned",2897],[5,"Abstract",2899],[5,"Async",2899],[5,"Auto",2899],[5,"Await",2899],[5,"Become",2899],[5,"Box",2899],[5,"Break",2899],[5,"Continue",2899],[5,"Default",2899],[5,"Do",2899],[5,"Dyn",2899],[5,"Else",2899],[5,"Final",2899],[5,"If",2899],[5,"In",2899],[5,"Let",2899],[5,"Loop",2899],[5,"Macro",2899],[5,"Match",2899],[5,"Mod",2899],[5,"Move",2899],[5,"Mut",2899],[5,"Override",2899],[5,"Priv",2899],[5,"Raw",2899],[5,"Ref",2899],[5,"Return",2899],[5,"Static",2899],[5,"Trait",2899],[5,"Try",2899],[5,"Type",2899],[5,"Typeof",2899],[5,"Unsafe",2899],[5,"Unsized",2899],[5,"Use",2899],[5,"Virtual",2899],[5,"While",2899],[5,"Yield",2899],[5,"AndAnd",2899],[5,"AndEq",2899],[5,"At",2899],[5,"Caret",2899],[5,"CaretEq",2899],[5,"Comma",2899],[5,"Dollar",2899],[5,"DotDot",2899],[5,"DotDotEq",2899],[5,"EqEq",2899],[5,"FatArrow",2899],[5,"Ge",2899],[5,"LArrow",2899],[5,"Le",2899],[5,"Minus",2899],[5,"MinusEq",2899],[5,"Ne",2899],[5,"Or",2899],[5,"OrEq",2899],[5,"OrOr",2899],[5,"PathSep",2899],[5,"Percent",2899],[5,"PercentEq",2899],[5,"Plus",2899],[5,"PlusEq",2899],[5,"Question",2899],[5,"RArrow",2899],[5,"Shl",2899],[5,"ShlEq",2899],[5,"Shr",2899],[5,"ShrEq",2899],[5,"Slash",2899],[5,"SlashEq",2899],[5,"StarEq",2899],[5,"Tilde",2899],[1,"array"],[10,"Visit",5016,5340]],"r":[[0,5304],[1,5320],[2,5320],[3,5320],[4,5309],[5,5309],[6,5306],[7,5304],[8,5306],[9,5309],[10,5309],[11,5309],[12,5309],[13,5306],[14,5319],[15,5319],[16,5306],[17,5304],[18,5304],[19,5304],[20,5320],[21,5306],[22,5320],[23,5320],[24,5320],[25,5320],[26,5320],[27,5320],[28,5306],[29,5316],[30,5310],[31,5314],[32,5314],[33,5306],[34,5316],[35,5316],[36,5316],[37,5306],[38,5306],[39,5316],[40,5306],[41,5306],[42,5310],[43,5309],[44,5310],[45,5309],[46,5309],[47,5306],[48,5313],[49,5313],[50,5313],[51,5313],[52,5304],[53,5320],[54,5313],[55,5320],[56,5320],[57,5313],[58,5320],[59,5317],[60,5317],[61,5306],[62,5306],[63,5306],[64,5306],[65,5306],[66,5306],[67,5306],[68,5306],[69,5306],[70,5306],[71,5306],[72,5306],[73,5306],[74,5306],[75,5306],[76,5306],[77,5306],[78,5306],[79,5306],[80,5306],[81,5306],[82,5306],[83,5306],[84,5306],[85,5306],[86,5306],[87,5306],[88,5306],[89,5306],[90,5306],[91,5306],[92,5306],[93,5306],[94,5306],[95,5306],[96,5306],[97,5306],[98,5306],[99,5306],[100,5306],[101,5311],[102,5306],[103,5321],[104,5306],[105,5311],[106,5311],[107,5311],[108,5316],[109,5306],[110,5320],[111,5309],[112,5310],[113,5310],[114,5306],[115,5304],[116,5320],[117,5308],[118,5306],[119,5310],[120,5304],[121,5306],[122,5306],[123,5306],[124,5304],[125,5321],[126,5319],[127,5316],[128,5320],[129,5306],[130,5307],[131,5310],[132,5310],[133,5310],[134,5309],[135,5310],[136,5319],[137,5316],[138,5306],[139,5316],[140,5316],[141,5316],[142,5316],[143,5316],[144,5316],[145,5316],[146,5316],[147,5306],[148,5320],[149,5314],[150,5306],[151,5304],[152,5314],[153,5306],[154,5310],[155,5306],[156,5319],[157,5319],[158,5319],[159,5306],[160,5320],[161,5320],[162,5319],[163,5311],[164,5306],[165,5320],[166,5320],[167,5304],[168,5310],[169,5309],[170,5321],[171,5320],[172,5317],[173,5320],[174,5319],[175,5306],[176,5306],[177,5314],[178,5304],[179,5309],[180,5309],[181,5309],[182,5319],[183,5306],[184,5304],[185,5309],[186,5309],[187,5310],[188,5310],[189,5310],[190,5304],[191,5321],[192,5309],[193,5306],[194,5306],[195,5306],[196,5304],[197,5320],[198,5320],[199,5306],[200,5321],[201,5317],[202,5306],[203,5304],[204,5320],[205,5320],[206,5320],[207,5320],[208,5304],[209,5316],[210,5313],[211,5306],[212,5320],[213,5320],[215,5310],[216,5310],[217,5310],[218,5304],[219,5306],[220,5306],[221,5306],[222,5304],[223,5310],[224,5304],[225,5310],[226,5310],[227,5309],[228,5304],[229,5304],[230,5304],[231,5310],[232,5304],[233,5304],[234,5304],[235,5304],[236,5304],[237,5310],[238,5310],[239,5304],[240,5304],[241,5304],[242,5304],[243,5304],[244,5304],[245,5304],[246,5320],[247,5306],[248,5313],[249,5311],[250,5311],[251,5306],[252,5306],[253,5311],[254,5306],[255,5310],[256,5316],[257,5304],[258,5321],[259,5321],[260,5310],[261,5310],[262,5306],[263,5306],[264,5304],[265,5306],[266,5304],[267,5307],[268,5306],[269,5306],[270,5309],[271,5309],[272,5306],[273,5309],[274,5310],[275,5311],[276,5311],[277,5313],[278,5306],[279,5306],[280,5306],[281,5306],[282,5306],[283,5306],[284,5306],[285,5306],[286,5306],[287,5306],[288,5306],[289,5306],[290,5306],[291,5306],[292,5306],[293,5306],[294,5310],[295,5310],[296,5310],[297,5304],[298,5304],[299,5314],[300,5304],[301,5306],[302,5316],[303,5316],[304,5316],[305,5316],[306,5317],[307,5308],[308,5310],[309,5310],[310,5310],[311,5307],[312,5319],[313,5319],[314,5319],[315,5319],[316,5319],[317,5311],[318,5311],[319,5311],[320,5311],[321,5311],[322,5313],[323,5313],[324,5313],[325,5313],[326,5313],[327,5306],[328,5306],[329,5306],[330,5306],[331,5306],[332,5306],[333,5306],[334,5306],[335,5306],[336,5306],[337,5306],[338,5306],[339,5306],[340,5306],[341,5306],[342,5306],[343,5306],[344,5306],[345,5306],[346,5306],[347,5306],[348,5306],[349,5306],[350,5306],[351,5306],[352,5306],[353,5306],[354,5306],[355,5306],[356,5306],[357,5306],[358,5306],[359,5306],[360,5306],[361,5306],[362,5306],[363,5306],[364,5306],[365,5306],[366,5306],[367,5306],[368,5306],[369,5306],[370,5310],[371,5310],[372,5310],[373,5310],[374,5310],[375,5310],[376,5310],[377,5310],[378,5310],[379,5310],[380,5310],[381,5310],[382,5310],[383,5316],[384,5316],[385,5316],[386,5316],[387,5316],[388,5316],[389,5316],[390,5316],[391,5316],[392,5314],[393,5314],[394,5320],[395,5320],[396,5309],[397,5309],[398,5309],[399,5309],[400,5309],[401,5309],[402,5309],[403,5309],[404,5309],[405,5309],[406,5321],[407,5321],[408,5321],[409,5304],[410,5304],[411,5304],[412,5304],[413,5304],[414,5304],[415,5304],[416,5304],[417,5304],[418,5304],[419,5304],[420,5304],[421,5304],[422,5304],[423,5304],[424,5304],[425,5304],[426,5304],[427,5304],[428,5317],[429,5308],[430,5310],[431,5310],[432,5310],[433,5307],[434,5319],[435,5319],[436,5319],[437,5319],[438,5319],[439,5311],[440,5311],[441,5311],[442,5311],[443,5311],[444,5313],[445,5313],[446,5313],[447,5313],[448,5313],[449,5306],[450,5306],[451,5306],[452,5306],[453,5306],[454,5306],[455,5306],[456,5306],[457,5306],[458,5306],[459,5306],[460,5306],[461,5306],[462,5306],[463,5306],[464,5306],[465,5306],[466,5306],[467,5306],[468,5306],[469,5306],[470,5306],[471,5306],[472,5306],[473,5306],[474,5306],[475,5306],[476,5306],[477,5306],[478,5306],[479,5306],[480,5306],[481,5306],[482,5306],[483,5306],[484,5306],[485,5306],[486,5306],[487,5306],[488,5306],[489,5306],[490,5306],[491,5306],[492,5310],[493,5310],[494,5310],[495,5310],[496,5310],[497,5310],[498,5310],[499,5310],[500,5310],[501,5310],[502,5310],[503,5310],[504,5310],[505,5316],[506,5316],[507,5316],[508,5316],[509,5316],[510,5316],[511,5316],[512,5316],[513,5316],[514,5314],[515,5314],[516,5320],[517,5320],[518,5309],[519,5309],[520,5309],[521,5309],[522,5309],[523,5309],[524,5309],[525,5309],[526,5309],[527,5309],[528,5321],[529,5321],[530,5321],[531,5304],[532,5304],[533,5304],[534,5304],[535,5304],[536,5304],[537,5304],[538,5304],[539,5304],[540,5304],[541,5304],[542,5304],[543,5304],[544,5304],[545,5304],[546,5304],[547,5304],[548,5304],[549,5304],[550,5310],[551,5310],[552,5310],[553,5310],[554,5310],[555,5309],[556,5304],[557,5304],[558,5311],[559,5313],[560,5306],[562,5319],[563,5306],[564,5304],[565,5304],[568,5317],[569,5308],[570,5310],[571,5310],[572,5310],[573,5307],[574,5319],[575,5319],[576,5319],[577,5319],[578,5319],[579,5311],[580,5311],[581,5311],[582,5311],[583,5311],[584,5313],[585,5313],[586,5313],[587,5313],[588,5313],[589,5306],[590,5306],[591,5306],[592,5306],[593,5306],[594,5306],[595,5306],[596,5306],[597,5306],[598,5306],[599,5306],[600,5306],[601,5306],[602,5306],[603,5306],[604,5306],[605,5306],[606,5306],[607,5306],[608,5310],[609,5310],[610,5310],[611,5310],[612,5310],[613,5310],[614,5310],[615,5310],[616,5310],[617,5310],[618,5310],[619,5310],[620,5310],[621,5316],[622,5316],[623,5316],[624,5316],[625,5316],[626,5316],[627,5316],[628,5316],[629,5316],[630,5314],[631,5314],[632,5320],[633,5320],[634,5309],[635,5309],[636,5309],[637,5309],[638,5309],[639,5309],[640,5309],[641,5309],[642,5309],[643,5309],[644,5321],[645,5321],[646,5321],[647,5304],[648,5304],[649,5304],[650,5304],[651,5304],[652,5304],[653,5304],[654,5304],[655,5304],[656,5304],[657,5304],[658,5304],[659,5304],[660,5304],[661,5304],[662,5304],[663,5304],[664,5304],[665,5304],[666,5317],[667,5308],[668,5310],[669,5310],[670,5310],[671,5307],[672,5319],[673,5319],[674,5319],[675,5319],[676,5319],[677,5311],[678,5311],[679,5311],[680,5311],[681,5311],[682,5313],[683,5313],[684,5313],[685,5313],[686,5313],[687,5306],[688,5306],[689,5306],[690,5306],[691,5306],[692,5306],[693,5306],[694,5306],[695,5306],[696,5306],[697,5306],[698,5306],[699,5306],[700,5306],[701,5306],[702,5306],[703,5306],[704,5306],[705,5306],[706,5310],[707,5310],[708,5310],[709,5310],[710,5310],[711,5310],[712,5310],[713,5310],[714,5310],[715,5310],[716,5310],[717,5310],[718,5310],[719,5316],[720,5316],[721,5316],[722,5316],[723,5316],[724,5316],[725,5316],[726,5316],[727,5316],[728,5314],[729,5314],[730,5320],[731,5320],[732,5309],[733,5309],[734,5309],[735,5309],[736,5309],[737,5309],[738,5309],[739,5309],[740,5309],[741,5309],[742,5321],[743,5321],[744,5321],[745,5304],[746,5304],[747,5304],[748,5304],[749,5304],[750,5304],[751,5304],[752,5304],[753,5304],[754,5304],[755,5304],[756,5304],[757,5304],[758,5304],[759,5304],[760,5304],[761,5304],[762,5304],[763,5304],[764,5317],[765,5308],[766,5310],[767,5310],[768,5310],[769,5307],[770,5319],[771,5319],[772,5319],[773,5319],[774,5319],[775,5311],[776,5311],[777,5311],[778,5311],[779,5311],[780,5313],[781,5313],[782,5313],[783,5313],[784,5313],[785,5306],[786,5306],[787,5306],[788,5306],[789,5306],[790,5306],[791,5306],[792,5306],[793,5306],[794,5306],[795,5306],[796,5306],[797,5306],[798,5306],[799,5306],[800,5306],[801,5306],[802,5306],[803,5306],[804,5310],[805,5310],[806,5310],[807,5310],[808,5310],[809,5310],[810,5310],[811,5310],[812,5310],[813,5310],[814,5310],[815,5310],[816,5310],[817,5316],[818,5316],[819,5316],[820,5316],[821,5316],[822,5316],[823,5316],[824,5316],[825,5316],[826,5314],[827,5314],[828,5320],[829,5320],[830,5309],[831,5309],[832,5309],[833,5309],[834,5309],[835,5309],[836,5309],[837,5309],[838,5309],[839,5309],[840,5321],[841,5321],[842,5321],[843,5304],[844,5304],[845,5304],[846,5304],[847,5304],[848,5304],[849,5304],[850,5304],[851,5304],[852,5304],[853,5304],[854,5304],[855,5304],[856,5304],[857,5304],[858,5304],[859,5304],[860,5304],[861,5304],[862,5308],[863,5307],[864,5309],[865,5311],[866,5306],[867,5310],[868,5310],[869,5310],[870,5310],[871,5310],[872,5309],[873,5317],[874,5304],[875,5310],[876,5310],[877,5310],[878,5304],[881,5313],[882,5310],[883,5310],[884,5309],[885,5310],[886,5310],[887,5319],[888,5314],[889,5311],[890,5306],[891,5306],[892,5306],[893,5304],[894,5304],[895,5304],[896,5304],[897,5304],[898,5304],[899,5304],[900,5304],[901,5306],[902,5304],[903,5313],[904,5308],[905,5308],[906,5310],[907,5310],[908,5310],[909,5307],[910,5319],[911,5319],[912,5319],[913,5319],[914,5319],[915,5311],[916,5311],[917,5311],[918,5311],[919,5311],[920,5313],[921,5313],[922,5313],[923,5313],[924,5313],[925,5306],[926,5306],[927,5306],[928,5306],[929,5306],[930,5306],[931,5306],[932,5306],[933,5306],[934,5306],[935,5306],[936,5306],[937,5306],[938,5306],[939,5306],[940,5306],[941,5306],[942,5306],[943,5306],[944,5310],[945,5310],[946,5310],[947,5310],[948,5310],[949,5310],[950,5310],[951,5310],[952,5310],[953,5310],[954,5310],[955,5310],[956,5310],[957,5316],[958,5316],[959,5316],[960,5316],[961,5316],[962,5316],[963,5316],[964,5316],[965,5316],[966,5314],[967,5314],[968,5320],[969,5320],[970,5309],[971,5309],[972,5309],[973,5309],[974,5309],[975,5309],[976,5309],[977,5309],[978,5309],[979,5309],[980,5321],[981,5321],[982,5321],[983,5304],[984,5304],[985,5304],[986,5304],[987,5304],[988,5304],[989,5304],[990,5304],[991,5304],[992,5304],[993,5304],[994,5304],[995,5304],[996,5304],[997,5304],[998,5304],[999,5304],[1000,5304],[1001,5304],[1002,5319],[1003,5310],[1004,5310],[1005,5309],[1006,5309],[1007,5306],[1008,5306],[1009,5306],[1010,5306],[1011,5306],[1012,5306],[1013,5306],[1015,5317],[1016,5304],[1017,5311],[1018,5313],[1019,5313],[1020,5306],[1021,5317],[1022,5317],[1023,5308],[1024,5308],[1025,5308],[1026,5310],[1027,5310],[1028,5310],[1029,5307],[1030,5307],[1031,5319],[1032,5319],[1033,5319],[1034,5319],[1035,5319],[1036,5311],[1037,5311],[1038,5311],[1039,5311],[1040,5311],[1041,5313],[1042,5313],[1043,5313],[1044,5313],[1045,5313],[1046,5306],[1047,5306],[1048,5306],[1049,5306],[1050,5306],[1051,5306],[1052,5306],[1053,5306],[1054,5306],[1055,5306],[1056,5306],[1057,5306],[1058,5306],[1059,5306],[1060,5306],[1061,5306],[1062,5306],[1063,5306],[1064,5306],[1065,5306],[1066,5306],[1067,5310],[1068,5310],[1069,5310],[1070,5310],[1071,5310],[1072,5310],[1073,5310],[1074,5310],[1075,5310],[1076,5310],[1077,5310],[1078,5310],[1079,5310],[1080,5316],[1081,5316],[1082,5316],[1083,5316],[1084,5316],[1085,5316],[1086,5316],[1087,5316],[1088,5316],[1089,5316],[1090,5316],[1091,5314],[1092,5314],[1093,5320],[1094,5320],[1095,5309],[1096,5309],[1097,5309],[1098,5309],[1099,5309],[1100,5309],[1101,5309],[1102,5309],[1103,5309],[1104,5309],[1105,5321],[1106,5321],[1107,5321],[1108,5304],[1109,5304],[1110,5304],[1111,5304],[1112,5304],[1113,5304],[1114,5304],[1115,5304],[1116,5304],[1117,5304],[1118,5304],[1119,5304],[1120,5304],[1121,5304],[1122,5304],[1123,5304],[1124,5304],[1125,5304],[1126,5304],[1127,5304],[1128,5310],[1129,5317],[1130,5317],[1131,5308],[1132,5308],[1133,5308],[1134,5308],[1135,5308],[1136,5308],[1137,5308],[1138,5310],[1139,5310],[1140,5310],[1141,5307],[1142,5319],[1143,5319],[1144,5319],[1145,5319],[1146,5319],[1147,5319],[1148,5319],[1149,5319],[1150,5311],[1151,5311],[1152,5311],[1153,5311],[1154,5311],[1155,5311],[1156,5311],[1157,5313],[1158,5313],[1159,5313],[1160,5313],[1161,5313],[1162,5306],[1163,5306],[1164,5306],[1165,5306],[1166,5306],[1167,5306],[1168,5306],[1169,5306],[1170,5306],[1171,5306],[1172,5306],[1173,5306],[1174,5306],[1175,5306],[1176,5306],[1177,5306],[1178,5306],[1179,5306],[1180,5306],[1181,5306],[1182,5306],[1183,5306],[1184,5306],[1185,5306],[1186,5306],[1187,5306],[1188,5306],[1189,5306],[1190,5306],[1191,5306],[1192,5306],[1193,5306],[1194,5306],[1195,5306],[1196,5306],[1197,5306],[1198,5306],[1199,5306],[1200,5306],[1201,5306],[1202,5306],[1203,5306],[1204,5306],[1205,5306],[1206,5306],[1207,5306],[1208,5306],[1209,5306],[1210,5306],[1211,5306],[1212,5306],[1213,5306],[1214,5306],[1215,5306],[1216,5306],[1217,5306],[1218,5306],[1219,5306],[1220,5306],[1221,5306],[1222,5306],[1223,5306],[1224,5306],[1225,5306],[1226,5306],[1227,5306],[1228,5306],[1229,5306],[1230,5306],[1231,5306],[1232,5306],[1233,5306],[1234,5306],[1235,5306],[1236,5306],[1237,5306],[1238,5306],[1239,5306],[1240,5306],[1241,5306],[1242,5306],[1243,5306],[1244,5306],[1245,5306],[1246,5306],[1247,5306],[1248,5310],[1249,5310],[1250,5310],[1251,5310],[1252,5310],[1253,5310],[1254,5310],[1255,5310],[1256,5310],[1257,5310],[1258,5310],[1259,5310],[1260,5310],[1261,5310],[1262,5310],[1263,5310],[1264,5310],[1265,5310],[1266,5310],[1267,5310],[1268,5310],[1269,5316],[1270,5316],[1271,5316],[1272,5316],[1273,5316],[1274,5316],[1275,5316],[1276,5316],[1277,5316],[1278,5316],[1279,5316],[1280,5316],[1281,5316],[1282,5316],[1283,5316],[1284,5316],[1285,5316],[1286,5316],[1287,5316],[1288,5314],[1289,5314],[1290,5320],[1291,5320],[1292,5309],[1293,5309],[1294,5309],[1295,5309],[1296,5309],[1297,5309],[1298,5309],[1299,5309],[1300,5309],[1301,5309],[1302,5309],[1303,5309],[1304,5321],[1305,5321],[1306,5321],[1307,5304],[1308,5304],[1309,5304],[1310,5304],[1311,5304],[1312,5304],[1313,5304],[1314,5304],[1315,5304],[1316,5304],[1317,5304],[1318,5304],[1319,5304],[1320,5304],[1321,5304],[1322,5304],[1323,5304],[1324,5304],[1325,5304],[1326,5304],[1327,5304],[1328,5304],[1329,5304],[1330,5304],[1331,5304],[1332,5304],[1333,5304],[1334,5304],[1335,5304],[1336,5304],[1337,5304],[1338,5304],[1339,5304],[1340,5306],[1341,5313],[1342,5309],[1343,5309],[1344,5309],[1345,5309],[1346,5306],[1347,5304],[1348,5310],[1349,5310],[1350,5309],[1351,5309],[1352,5308],[1353,5310],[1354,5310],[1355,5310],[1356,5307],[1357,5319],[1358,5319],[1359,5319],[1360,5319],[1361,5319],[1362,5311],[1363,5311],[1364,5311],[1365,5311],[1366,5311],[1367,5313],[1368,5313],[1369,5313],[1370,5313],[1371,5313],[1372,5306],[1373,5306],[1374,5306],[1375,5306],[1376,5306],[1377,5306],[1378,5306],[1379,5306],[1380,5306],[1381,5306],[1382,5306],[1383,5306],[1384,5306],[1385,5306],[1386,5306],[1387,5306],[1388,5306],[1389,5306],[1390,5306],[1391,5310],[1392,5310],[1393,5310],[1394,5310],[1395,5310],[1396,5310],[1397,5310],[1398,5310],[1399,5310],[1400,5310],[1401,5310],[1402,5310],[1403,5310],[1404,5316],[1405,5316],[1406,5316],[1407,5316],[1408,5316],[1409,5316],[1410,5316],[1411,5316],[1412,5316],[1413,5314],[1414,5314],[1415,5320],[1416,5320],[1417,5309],[1418,5309],[1419,5309],[1420,5309],[1421,5309],[1422,5309],[1423,5309],[1424,5309],[1425,5309],[1426,5309],[1427,5321],[1428,5321],[1429,5321],[1430,5304],[1431,5304],[1432,5304],[1433,5304],[1434,5304],[1435,5304],[1436,5304],[1437,5304],[1438,5304],[1439,5304],[1440,5304],[1441,5304],[1442,5304],[1443,5304],[1444,5304],[1445,5304],[1446,5304],[1447,5304],[1448,5304],[1449,5307],[1450,5311],[1451,5311],[1452,5313],[1453,5310],[1454,5310],[1455,5309],[1456,5309],[1457,5309],[1458,5309],[1459,5304],[1460,5321],[1461,5306],[1462,5306],[1463,5309],[1464,5304],[1465,5317],[1466,5308],[1467,5310],[1468,5310],[1469,5310],[1470,5307],[1471,5319],[1472,5319],[1473,5319],[1474,5319],[1475,5319],[1476,5311],[1477,5311],[1478,5311],[1479,5311],[1480,5311],[1481,5313],[1482,5313],[1483,5313],[1484,5313],[1485,5313],[1486,5306],[1487,5306],[1488,5306],[1489,5306],[1490,5306],[1491,5306],[1492,5306],[1493,5306],[1494,5306],[1495,5306],[1496,5306],[1497,5306],[1498,5306],[1499,5306],[1500,5306],[1501,5306],[1502,5306],[1503,5306],[1504,5306],[1505,5306],[1506,5306],[1507,5306],[1508,5306],[1509,5306],[1510,5306],[1511,5306],[1512,5306],[1513,5306],[1514,5306],[1515,5306],[1516,5306],[1517,5306],[1518,5306],[1519,5306],[1520,5306],[1521,5306],[1522,5306],[1523,5306],[1524,5306],[1525,5306],[1526,5306],[1527,5306],[1528,5306],[1529,5310],[1530,5310],[1531,5310],[1532,5310],[1533,5310],[1534,5310],[1535,5310],[1536,5310],[1537,5310],[1538,5310],[1539,5310],[1540,5310],[1541,5310],[1542,5316],[1543,5316],[1544,5316],[1545,5316],[1546,5316],[1547,5316],[1548,5316],[1549,5316],[1550,5316],[1551,5314],[1552,5314],[1553,5320],[1554,5320],[1555,5309],[1556,5309],[1557,5309],[1558,5309],[1559,5309],[1560,5309],[1561,5309],[1562,5309],[1563,5309],[1564,5309],[1565,5321],[1566,5321],[1567,5321],[1568,5304],[1569,5304],[1570,5304],[1571,5304],[1572,5304],[1573,5304],[1574,5304],[1575,5304],[1576,5304],[1577,5304],[1578,5304],[1579,5304],[1580,5304],[1581,5304],[1582,5304],[1583,5304],[1584,5304],[1585,5304],[1586,5304],[1587,5317],[1588,5317],[1589,5317],[1590,5311],[1591,5311],[1592,5311],[1593,5311],[1594,5309],[1595,5309],[1596,5309],[1597,5311],[1598,5311],[1599,5309],[1600,5306],[1601,5311],[1602,5304],[1603,5310],[1604,5310],[1605,5304],[1606,5310],[1607,5310],[1608,5310],[1609,5310],[1610,5304],[1611,5310],[1612,5306],[1613,5310],[1614,5310],[1615,5309],[1616,5309],[1617,5306],[1618,5304],[1619,5310],[1620,5306],[1621,5306],[1622,5311],[1624,5319],[1625,5306],[1626,5310],[1627,5311],[1628,5306],[1629,5304],[1630,5304],[1631,5304],[1632,5304],[1633,5304],[1634,5311],[1635,5317],[1636,5308],[1637,5307],[1638,5310],[1639,5316],[1640,5316],[1641,5316],[1642,5316],[1643,5316],[1644,5316],[1645,5316],[1646,5316],[1647,5316],[1648,5308],[1649,5317],[1650,5306],[1651,5306],[1652,5309],[1653,5304],[1654,5310],[1655,5311],[1656,5306],[1657,5306],[1658,5306],[1659,5306],[1660,5310],[1661,5309],[1662,5321],[1663,5304],[1664,5304],[1665,5304],[1669,5308],[1670,5307],[1671,5319],[1672,5319],[1673,5319],[1674,5311],[1675,5311],[1676,5311],[1677,5313],[1678,5306],[1679,5306],[1680,5306],[1681,5306],[1682,5306],[1683,5306],[1684,5306],[1685,5306],[1686,5310],[1687,5310],[1688,5310],[1689,5310],[1690,5310],[1691,5310],[1692,5310],[1693,5310],[1694,5310],[1695,5310],[1696,5310],[1697,5316],[1698,5316],[1699,5316],[1700,5316],[1701,5316],[1702,5316],[1703,5316],[1704,5316],[1705,5316],[1706,5316],[1707,5314],[1708,5320],[1709,5320],[1710,5309],[1711,5309],[1712,5309],[1713,5309],[1714,5309],[1715,5321],[1716,5304],[1717,5304],[1718,5304],[1719,5304],[1720,5304],[1721,5304],[1722,5304],[1723,5304],[1724,5304],[1725,5304],[1726,5304],[1727,5304],[1728,5304],[1729,5304],[1730,5304],[1731,5304],[1732,5304],[1733,5304],[1735,5308],[1736,5319],[1737,5319],[1738,5319],[1739,5319],[1740,5314],[1741,5314],[1742,5319],[1744,5309],[1745,5311],[1746,5319],[1747,5319],[1748,5319],[1752,5311],[1753,5316],[1754,5308],[1755,5307],[1756,5319],[1757,5319],[1758,5319],[1759,5319],[1760,5306],[1761,5306],[1762,5310],[1763,5314],[1764,5321],[1765,5304],[1766,5306],[1767,5309],[1768,5319],[1769,5310],[1770,5321],[1772,5306],[1773,5306],[1774,5304],[1775,5306],[1776,5309],[1777,5319],[1778,5319],[1779,5319],[1780,5306],[1781,5306],[1782,5309],[1783,5313],[1784,5304],[1785,5308],[1786,5307],[1787,5316],[1788,5316],[1789,5316],[1790,5316],[1791,5316],[1792,5316],[1793,5316],[1794,5316],[1795,5316],[1796,5317],[1797,5308],[1798,5308],[1799,5308],[1800,5310],[1801,5310],[1802,5310],[1803,5307],[1804,5307],[1805,5319],[1806,5319],[1807,5319],[1808,5319],[1809,5311],[1810,5311],[1811,5311],[1812,5311],[1813,5311],[1814,5313],[1815,5306],[1816,5306],[1817,5306],[1818,5306],[1819,5306],[1820,5306],[1821,5306],[1822,5306],[1823,5306],[1824,5306],[1825,5306],[1826,5306],[1827,5306],[1828,5306],[1829,5306],[1830,5306],[1831,5306],[1832,5306],[1833,5306],[1834,5306],[1835,5306],[1836,5306],[1837,5306],[1838,5306],[1839,5306],[1840,5306],[1841,5306],[1842,5306],[1843,5306],[1844,5306],[1845,5306],[1846,5306],[1847,5306],[1848,5306],[1849,5306],[1850,5306],[1851,5306],[1852,5306],[1853,5306],[1854,5306],[1855,5306],[1856,5306],[1857,5306],[1858,5306],[1859,5306],[1860,5310],[1861,5310],[1862,5310],[1863,5310],[1864,5310],[1865,5310],[1866,5310],[1867,5310],[1868,5310],[1869,5310],[1870,5310],[1871,5310],[1872,5310],[1873,5316],[1874,5316],[1875,5316],[1876,5316],[1877,5316],[1878,5316],[1879,5316],[1880,5316],[1881,5316],[1882,5316],[1883,5316],[1884,5316],[1885,5316],[1886,5316],[1887,5316],[1888,5316],[1889,5316],[1890,5316],[1891,5314],[1892,5314],[1893,5320],[1894,5320],[1895,5309],[1896,5309],[1897,5309],[1898,5309],[1899,5309],[1900,5309],[1901,5309],[1902,5309],[1903,5309],[1904,5309],[1905,5321],[1906,5321],[1907,5304],[1908,5304],[1909,5304],[1910,5304],[1911,5304],[1912,5304],[1913,5304],[1914,5304],[1915,5304],[1916,5304],[1917,5304],[1918,5304],[1919,5304],[1920,5304],[1921,5304],[1922,5304],[1923,5304],[1924,5304],[1925,5304],[1926,5306],[1927,5316],[1929,5310],[1930,5304],[1931,5313],[1932,5319],[1933,5316],[1934,5316],[1935,5316],[1936,5316],[1937,5316],[1938,5316],[1939,5316],[1940,5316],[1941,5317],[1942,5317],[1943,5308],[1944,5310],[1945,5310],[1946,5310],[1947,5307],[1948,5319],[1949,5319],[1950,5319],[1951,5319],[1952,5319],[1953,5311],[1954,5311],[1955,5311],[1956,5311],[1957,5311],[1958,5313],[1959,5313],[1960,5313],[1961,5313],[1962,5313],[1963,5306],[1964,5306],[1965,5306],[1966,5306],[1967,5306],[1968,5306],[1969,5306],[1970,5306],[1971,5306],[1972,5306],[1973,5306],[1974,5306],[1975,5306],[1976,5306],[1977,5306],[1978,5306],[1979,5306],[1980,5306],[1981,5306],[1982,5310],[1983,5310],[1984,5310],[1985,5310],[1986,5310],[1987,5310],[1988,5310],[1989,5310],[1990,5310],[1991,5310],[1992,5310],[1993,5310],[1994,5310],[1995,5316],[1996,5316],[1997,5316],[1998,5316],[1999,5316],[2000,5316],[2001,5316],[2002,5316],[2003,5316],[2004,5314],[2005,5314],[2006,5320],[2007,5320],[2008,5309],[2009,5309],[2010,5309],[2011,5309],[2012,5309],[2013,5309],[2014,5309],[2015,5309],[2016,5309],[2017,5309],[2018,5321],[2019,5321],[2020,5321],[2021,5304],[2022,5304],[2023,5304],[2024,5304],[2025,5304],[2026,5304],[2027,5304],[2028,5304],[2029,5304],[2030,5304],[2031,5304],[2032,5304],[2033,5304],[2034,5304],[2035,5304],[2036,5304],[2037,5304],[2038,5304],[2039,5304],[2040,5317],[2041,5308],[2042,5307],[2043,5316],[2044,5316],[2045,5308],[2046,5310],[2047,5310],[2048,5310],[2049,5307],[2050,5319],[2051,5319],[2052,5319],[2053,5319],[2054,5311],[2055,5311],[2056,5311],[2057,5311],[2058,5311],[2059,5313],[2060,5306],[2061,5306],[2062,5306],[2063,5306],[2064,5306],[2065,5306],[2066,5306],[2067,5306],[2068,5306],[2069,5306],[2070,5306],[2071,5306],[2072,5306],[2073,5306],[2074,5306],[2075,5306],[2076,5306],[2077,5306],[2078,5306],[2079,5306],[2080,5306],[2081,5306],[2082,5306],[2083,5306],[2084,5306],[2085,5306],[2086,5306],[2087,5306],[2088,5306],[2089,5306],[2090,5306],[2091,5306],[2092,5306],[2093,5306],[2094,5306],[2095,5306],[2096,5306],[2097,5306],[2098,5306],[2099,5306],[2100,5306],[2101,5306],[2102,5306],[2103,5310],[2104,5310],[2105,5310],[2106,5310],[2107,5310],[2108,5310],[2109,5310],[2110,5310],[2111,5310],[2112,5310],[2113,5310],[2114,5310],[2115,5310],[2116,5316],[2117,5316],[2118,5316],[2119,5316],[2120,5316],[2121,5316],[2122,5316],[2123,5316],[2124,5316],[2125,5314],[2126,5320],[2127,5320],[2128,5309],[2129,5309],[2130,5309],[2131,5309],[2132,5309],[2133,5309],[2134,5309],[2135,5309],[2136,5309],[2137,5321],[2138,5321],[2139,5304],[2140,5304],[2141,5304],[2142,5304],[2143,5304],[2144,5304],[2145,5304],[2146,5304],[2147,5304],[2148,5304],[2149,5304],[2150,5304],[2151,5304],[2152,5304],[2153,5304],[2154,5304],[2155,5304],[2156,5304],[2157,5304],[2159,5316],[2160,5316],[2161,5316],[2162,5316],[2163,5316],[2164,5316],[2165,5316],[2166,5316],[2167,5319],[2168,5314],[2169,5317],[2170,5308],[2171,5310],[2172,5310],[2173,5310],[2174,5307],[2175,5319],[2176,5319],[2177,5319],[2178,5319],[2179,5319],[2180,5311],[2181,5311],[2182,5311],[2183,5311],[2184,5311],[2185,5313],[2186,5313],[2187,5313],[2188,5313],[2189,5313],[2190,5306],[2191,5306],[2192,5306],[2193,5306],[2194,5306],[2195,5306],[2196,5306],[2197,5306],[2198,5306],[2199,5306],[2200,5306],[2201,5306],[2202,5306],[2203,5306],[2204,5306],[2205,5306],[2206,5306],[2207,5306],[2208,5306],[2209,5306],[2210,5306],[2211,5306],[2212,5306],[2213,5306],[2214,5306],[2215,5306],[2216,5306],[2217,5306],[2218,5306],[2219,5306],[2220,5306],[2221,5306],[2222,5306],[2223,5306],[2224,5306],[2225,5306],[2226,5306],[2227,5306],[2228,5306],[2229,5306],[2230,5306],[2231,5306],[2232,5306],[2233,5310],[2234,5310],[2235,5310],[2236,5310],[2237,5310],[2238,5310],[2239,5310],[2240,5310],[2241,5310],[2242,5310],[2243,5310],[2244,5310],[2245,5310],[2246,5316],[2247,5316],[2248,5316],[2249,5316],[2250,5316],[2251,5316],[2252,5316],[2253,5316],[2254,5316],[2255,5314],[2256,5314],[2257,5320],[2258,5320],[2259,5309],[2260,5309],[2261,5309],[2262,5309],[2263,5309],[2264,5309],[2265,5309],[2266,5309],[2267,5309],[2268,5309],[2269,5321],[2270,5321],[2271,5321],[2272,5304],[2273,5304],[2274,5304],[2275,5304],[2276,5304],[2277,5304],[2278,5304],[2279,5304],[2280,5304],[2281,5304],[2282,5304],[2283,5304],[2284,5304],[2285,5304],[2286,5304],[2287,5304],[2288,5304],[2289,5304],[2290,5304],[2291,5317],[2292,5308],[2293,5310],[2294,5310],[2295,5310],[2296,5307],[2297,5319],[2298,5319],[2299,5319],[2300,5319],[2301,5319],[2302,5311],[2303,5311],[2304,5311],[2305,5311],[2306,5311],[2307,5313],[2308,5313],[2309,5313],[2310,5313],[2311,5313],[2312,5306],[2313,5306],[2314,5306],[2315,5306],[2316,5306],[2317,5306],[2318,5306],[2319,5306],[2320,5306],[2321,5306],[2322,5306],[2323,5306],[2324,5306],[2325,5306],[2326,5306],[2327,5306],[2328,5306],[2329,5306],[2330,5306],[2331,5306],[2332,5306],[2333,5306],[2334,5306],[2335,5306],[2336,5306],[2337,5306],[2338,5306],[2339,5306],[2340,5306],[2341,5306],[2342,5306],[2343,5306],[2344,5306],[2345,5306],[2346,5306],[2347,5306],[2348,5306],[2349,5306],[2350,5306],[2351,5306],[2352,5306],[2353,5306],[2354,5306],[2355,5310],[2356,5310],[2357,5310],[2358,5310],[2359,5310],[2360,5310],[2361,5310],[2362,5310],[2363,5310],[2364,5310],[2365,5310],[2366,5310],[2367,5310],[2368,5316],[2369,5316],[2370,5316],[2371,5316],[2372,5316],[2373,5316],[2374,5316],[2375,5316],[2376,5316],[2377,5314],[2378,5314],[2379,5320],[2380,5320],[2381,5309],[2382,5309],[2383,5309],[2384,5309],[2385,5309],[2386,5309],[2387,5309],[2388,5309],[2389,5309],[2390,5309],[2391,5321],[2392,5321],[2393,5321],[2394,5304],[2395,5304],[2396,5304],[2397,5304],[2398,5304],[2399,5304],[2400,5304],[2401,5304],[2402,5304],[2403,5304],[2404,5304],[2405,5304],[2406,5304],[2407,5304],[2408,5304],[2409,5304],[2410,5304],[2411,5304],[2412,5304],[2413,5306],[2414,5311],[2415,5306],[2416,5310],[2417,5309],[2418,5309],[2419,5304],[2420,5317],[2421,5308],[2422,5310],[2423,5310],[2424,5310],[2425,5307],[2426,5319],[2427,5319],[2428,5319],[2429,5319],[2430,5319],[2431,5311],[2432,5311],[2433,5311],[2434,5311],[2435,5311],[2436,5313],[2437,5313],[2438,5313],[2439,5313],[2440,5313],[2441,5306],[2442,5306],[2443,5306],[2444,5306],[2445,5306],[2446,5306],[2447,5306],[2448,5306],[2449,5306],[2450,5306],[2451,5306],[2452,5306],[2453,5306],[2454,5306],[2455,5306],[2456,5306],[2457,5306],[2458,5306],[2459,5306],[2460,5306],[2461,5306],[2462,5306],[2463,5306],[2464,5306],[2465,5306],[2466,5306],[2467,5306],[2468,5306],[2469,5306],[2470,5306],[2471,5306],[2472,5306],[2473,5306],[2474,5306],[2475,5306],[2476,5306],[2477,5306],[2478,5306],[2479,5306],[2480,5306],[2481,5306],[2482,5306],[2483,5306],[2484,5310],[2485,5310],[2486,5310],[2487,5310],[2488,5310],[2489,5310],[2490,5310],[2491,5310],[2492,5310],[2493,5310],[2494,5310],[2495,5310],[2496,5310],[2497,5316],[2498,5316],[2499,5316],[2500,5316],[2501,5316],[2502,5316],[2503,5316],[2504,5316],[2505,5316],[2506,5314],[2507,5314],[2508,5320],[2509,5320],[2510,5309],[2511,5309],[2512,5309],[2513,5309],[2514,5309],[2515,5309],[2516,5309],[2517,5309],[2518,5309],[2519,5309],[2520,5321],[2521,5321],[2522,5321],[2523,5304],[2524,5304],[2525,5304],[2526,5304],[2527,5304],[2528,5304],[2529,5304],[2530,5304],[2531,5304],[2532,5304],[2533,5304],[2534,5304],[2535,5304],[2536,5304],[2537,5304],[2538,5304],[2539,5304],[2540,5304],[2541,5304],[2542,5310],[2543,5310],[2544,5304],[2545,5313],[2546,5311],[2547,5308],[2548,5304],[2549,5316],[2550,5316],[2551,5316],[2552,5316],[2553,5316],[2554,5316],[2555,5319],[2556,5316],[2557,5309],[2558,5304],[2559,5313],[2560,5311],[2561,5313],[2562,5341],[2563,5310],[2564,5310],[2565,5304],[2566,5304],[2567,5304],[2568,5304],[2623,5337],[2624,5317],[2625,5317],[2626,5337],[2628,5317],[2634,5337],[2635,5317],[2638,5337],[2639,5337],[2643,5337],[2644,5337],[2649,5337],[2652,5337],[2655,5337],[2661,5337],[2664,5337],[2671,5337],[2672,5337],[2677,5337],[2678,5337],[2692,5337],[2693,5337],[2700,5337],[2705,5337],[2706,5337],[2710,5337],[2711,5337],[2715,5337],[2716,5337],[5016,5340],[5017,5340],[5018,5340],[5019,5340],[5020,5340],[5021,5340],[5022,5340],[5023,5340],[5024,5340],[5025,5340],[5026,5340],[5027,5340],[5028,5340],[5029,5340],[5030,5340],[5031,5340],[5032,5340],[5033,5340],[5034,5340],[5035,5340],[5036,5340],[5037,5340],[5038,5340],[5039,5340],[5040,5340],[5041,5340],[5042,5340],[5043,5340],[5044,5340],[5045,5340],[5046,5340],[5047,5340],[5048,5340],[5049,5340],[5050,5340],[5051,5340],[5052,5340],[5053,5340],[5054,5340],[5055,5340],[5056,5340],[5057,5340],[5058,5340],[5059,5340],[5060,5340],[5061,5340],[5062,5340],[5063,5340],[5064,5340],[5065,5340],[5066,5340],[5067,5340],[5068,5340],[5069,5340],[5070,5340],[5071,5340],[5072,5340],[5073,5340],[5074,5340],[5075,5340],[5076,5340],[5077,5340],[5078,5340],[5079,5340],[5080,5340],[5081,5340],[5082,5340],[5083,5340],[5084,5340],[5085,5340],[5086,5340],[5087,5340],[5088,5340],[5089,5340],[5090,5340],[5091,5340],[5092,5340],[5093,5340],[5094,5340],[5095,5340],[5096,5340],[5097,5340],[5098,5340],[5099,5340],[5100,5340],[5101,5340],[5102,5340],[5103,5340],[5104,5340],[5105,5340],[5106,5340],[5107,5340],[5108,5340],[5109,5340],[5110,5340],[5111,5340],[5112,5340],[5113,5340],[5114,5340],[5115,5340],[5116,5340],[5117,5340],[5118,5340],[5119,5340],[5120,5340],[5121,5340],[5122,5340],[5123,5340],[5124,5340],[5125,5340],[5126,5340],[5127,5340],[5128,5340],[5129,5340],[5130,5340],[5131,5340],[5132,5340],[5133,5340],[5134,5340],[5135,5340],[5136,5340],[5137,5340],[5138,5340],[5139,5340],[5140,5340],[5141,5340],[5142,5340],[5143,5340],[5144,5340],[5145,5340],[5146,5340],[5147,5340],[5148,5340],[5149,5340],[5150,5340],[5151,5340],[5152,5340],[5153,5340],[5154,5340],[5155,5340],[5156,5340],[5157,5340],[5158,5340],[5159,5340],[5160,5340],[5161,5340],[5162,5340],[5163,5340],[5164,5340],[5165,5340],[5166,5340],[5167,5340],[5168,5340],[5169,5340],[5170,5340],[5171,5340],[5172,5340],[5173,5340],[5174,5340],[5175,5340],[5176,5340],[5177,5340],[5178,5340],[5179,5340],[5180,5340],[5181,5340],[5182,5340],[5183,5340],[5184,5340],[5185,5340],[5186,5340],[5187,5340],[5188,5340],[5189,5340],[5190,5340],[5191,5340],[5192,5340],[5193,5340],[5194,5340],[5195,5340],[5196,5340],[5197,5340],[5198,5340],[5199,5340],[5200,5340],[5201,5340],[5202,5340],[5203,5340],[5204,5340],[5205,5340],[5206,5340],[5207,5340],[5208,5340],[5209,5340],[5210,5340],[5211,5340],[5212,5340],[5213,5340],[5214,5340],[5215,5340],[5216,5340],[5217,5340],[5218,5340],[5219,5340],[5220,5340],[5221,5340],[5222,5340],[5223,5340],[5224,5340],[5225,5340],[5226,5340],[5227,5340],[5228,5340],[5229,5340],[5230,5340],[5231,5340],[5232,5340],[5233,5340],[5234,5340],[5235,5340],[5236,5340],[5237,5340],[5238,5340],[5239,5340],[5240,5340],[5241,5340],[5242,5340],[5243,5340],[5244,5340],[5245,5340],[5246,5340],[5247,5340],[5248,5340],[5249,5340],[5250,5340],[5251,5340],[5252,5340],[5253,5340],[5254,5340],[5255,5340],[5256,5340],[5257,5340],[5258,5340],[5259,5340],[5260,5340],[5261,5340],[5262,5340],[5263,5340],[5264,5340],[5265,5340],[5266,5340],[5267,5340],[5268,5340],[5269,5340],[5270,5340],[5271,5340],[5272,5340],[5273,5340],[5274,5340],[5275,5340],[5276,5340],[5277,5340],[5278,5340],[5279,5340],[5280,5340],[5281,5340],[5282,5340],[5283,5340],[5284,5340],[5285,5340],[5286,5340],[5287,5340],[5288,5340],[5289,5340],[5290,5340],[5291,5340],[5292,5340],[5293,5340],[5294,5340],[5295,5340],[5296,5340],[5297,5340],[5298,5340],[5299,5340],[5300,5340],[5301,5340],[5302,5340],[5303,5340]],"b":[[904,"impl-PartialEq%3CT%3E-for-Ident"],[905,"impl-PartialEq-for-Ident"],[1021,"impl-Debug-for-Error"],[1022,"impl-Display-for-Error"],[1023,"impl-IdentFragment-for-Ident"],[1024,"impl-Display-for-Ident"],[1025,"impl-Debug-for-Ident"],[1029,"impl-Debug-for-Lifetime"],[1030,"impl-Display-for-Lifetime"],[1062,"impl-Debug-for-Member"],[1063,"impl-IdentFragment-for-Member"],[1064,"impl-IdentFragment-for-Index"],[1065,"impl-Debug-for-Index"],[1086,"impl-Debug-for-LitInt"],[1087,"impl-Display-for-LitInt"],[1088,"impl-Display-for-LitFloat"],[1089,"impl-Debug-for-LitFloat"],[1132,"impl-From%3CExtern%3E-for-Ident"],[1133,"impl-From%3CSelfType%3E-for-Ident"],[1134,"impl-From%3CSelfValue%3E-for-Ident"],[1135,"impl-From%3CSuper%3E-for-Ident"],[1136,"impl-From%3CCrate%3E-for-Ident"],[1137,"impl-From%3CUnderscore%3E-for-Ident"],[1144,"impl-From%3CMetaList%3E-for-Meta"],[1145,"impl-From%3CMetaNameValue%3E-for-Meta"],[1147,"impl-From%3CPath%3E-for-Meta"],[1151,"impl-From%3CFieldsUnnamed%3E-for-Fields"],[1152,"impl-From%3CFieldsNamed%3E-for-Fields"],[1162,"impl-From%3CExprParen%3E-for-Expr"],[1163,"impl-From%3CExprReference%3E-for-Expr"],[1164,"impl-From%3CExprRawAddr%3E-for-Expr"],[1165,"impl-From%3CExprTuple%3E-for-Expr"],[1166,"impl-From%3CExprUnary%3E-for-Expr"],[1167,"impl-From%3CExprTryBlock%3E-for-Expr"],[1168,"impl-From%3CExprArray%3E-for-Expr"],[1169,"impl-From%3CExprAssign%3E-for-Expr"],[1170,"impl-From%3CExprAsync%3E-for-Expr"],[1171,"impl-From%3CExprTry%3E-for-Expr"],[1172,"impl-From%3CExprUnsafe%3E-for-Expr"],[1173,"impl-From%3CExprAwait%3E-for-Expr"],[1174,"impl-From%3CExprBinary%3E-for-Expr"],[1175,"impl-From%3CExprBlock%3E-for-Expr"],[1176,"impl-From%3CExprBreak%3E-for-Expr"],[1177,"impl-From%3CExprStruct%3E-for-Expr"],[1179,"impl-From%3CExprMethodCall%3E-for-Expr"],[1180,"impl-From%3CExprCast%3E-for-Expr"],[1181,"impl-From%3CExprClosure%3E-for-Expr"],[1182,"impl-From%3CExprConst%3E-for-Expr"],[1183,"impl-From%3CExprRepeat%3E-for-Expr"],[1184,"impl-From%3CExprWhile%3E-for-Expr"],[1185,"impl-From%3CExprContinue%3E-for-Expr"],[1186,"impl-From%3CExprField%3E-for-Expr"],[1187,"impl-From%3CExprForLoop%3E-for-Expr"],[1188,"impl-From%3CExprGroup%3E-for-Expr"],[1189,"impl-From%3CExprYield%3E-for-Expr"],[1190,"impl-From%3CExprRange%3E-for-Expr"],[1191,"impl-From%3CExprIf%3E-for-Expr"],[1192,"impl-From%3CExprIndex%3E-for-Expr"],[1193,"impl-From%3CExprInfer%3E-for-Expr"],[1194,"impl-From%3CExprLet%3E-for-Expr"],[1195,"impl-From%3CExprReturn%3E-for-Expr"],[1196,"impl-From%3CExprPath%3E-for-Expr"],[1197,"impl-From%3CExprLit%3E-for-Expr"],[1198,"impl-From%3CExprLoop%3E-for-Expr"],[1199,"impl-From%3CExprMacro%3E-for-Expr"],[1200,"impl-From%3CExprMatch%3E-for-Expr"],[1201,"impl-From%3CExprCall%3E-for-Expr"],[1241,"impl-From%3Cusize%3E-for-Member"],[1243,"impl-From%3CIndex%3E-for-Member"],[1244,"impl-From%3CIdent%3E-for-Member"],[1249,"impl-From%3CLifetimeParam%3E-for-GenericParam"],[1250,"impl-From%3CTypeParam%3E-for-GenericParam"],[1251,"impl-From%3CConstParam%3E-for-GenericParam"],[1258,"impl-From%3CTraitBound%3E-for-TypeParamBound"],[1259,"impl-From%3CLifetime%3E-for-TypeParamBound"],[1265,"impl-From%3CPredicateType%3E-for-WherePredicate"],[1266,"impl-From%3CPredicateLifetime%3E-for-WherePredicate"],[1269,"impl-From%3CLitStr%3E-for-Lit"],[1270,"impl-From%3CLitFloat%3E-for-Lit"],[1271,"impl-From%3CLitBool%3E-for-Lit"],[1272,"impl-From%3CLitByteStr%3E-for-Lit"],[1273,"impl-From%3CLitInt%3E-for-Lit"],[1274,"impl-From%3CLitChar%3E-for-Lit"],[1276,"impl-From%3CLitByte%3E-for-Lit"],[1277,"impl-From%3CLitCStr%3E-for-Lit"],[1307,"impl-From%3CTypeBareFn%3E-for-Type"],[1308,"impl-From%3CTypePath%3E-for-Type"],[1310,"impl-From%3CTypeTuple%3E-for-Type"],[1311,"impl-From%3CTypeArray%3E-for-Type"],[1312,"impl-From%3CTypeGroup%3E-for-Type"],[1313,"impl-From%3CTypeImplTrait%3E-for-Type"],[1314,"impl-From%3CTypeInfer%3E-for-Type"],[1315,"impl-From%3CTypeTraitObject%3E-for-Type"],[1316,"impl-From%3CTypeMacro%3E-for-Type"],[1317,"impl-From%3CTypeSlice%3E-for-Type"],[1318,"impl-From%3CTypeReference%3E-for-Type"],[1319,"impl-From%3CTypeNever%3E-for-Type"],[1320,"impl-From%3CTypePtr%3E-for-Type"],[1321,"impl-From%3CTypeParen%3E-for-Type"],[1588,"impl-IntoIterator-for-%26Error"],[1589,"impl-IntoIterator-for-Error"],[1590,"impl-IntoIterator-for-%26Fields"],[1591,"impl-IntoIterator-for-Fields"],[1592,"impl-IntoIterator-for-%26mut+Fields"],[1698,"impl-LitStr"],[1699,"impl-Parse-for-LitStr"],[1798,"impl-Ident"],[1799,"impl-IdentFragment-for-Ident"],[2667,"impl-Display-for-ParseBuffer%3C\'a%3E"],[2668,"impl-Debug-for-ParseBuffer%3C\'a%3E"],[2774,"impl-Extend%3CT%3E-for-Punctuated%3CT,+P%3E"],[2775,"impl-Extend%3CPair%3CT,+P%3E%3E-for-Punctuated%3CT,+P%3E"],[2787,"impl-FromIterator%3CPair%3CT,+P%3E%3E-for-Punctuated%3CT,+P%3E"],[2788,"impl-FromIterator%3CT%3E-for-Punctuated%3CT,+P%3E"],[2803,"impl-IntoIterator-for-%26mut+Punctuated%3CT,+P%3E"],[2804,"impl-IntoIterator-for-Punctuated%3CT,+P%3E"],[2805,"impl-IntoIterator-for-%26Punctuated%3CT,+P%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALUQegAgAAEAOgAAAH8AAACFAAAAmwAAAKkAAgCvAAAAsgAAALcAAAC8AAAA0wAAANgAAAD5AAAAAAEAAAkBCQAUARwAMgH0ACgCAgAsAgUAMwIDADkCKQFkAwUAawMAAG4DAQByAwcAewN7APgDAQD7A24AawQAAG0EBQB5BAEAfAQAAIAEAQCLBA8AnAQWANoEAADcBAEA3wQAAOIEAgDnBAAA6wQBAPIEAQD2BAUA/QQBAAUFAQAOBQAAEAUAABwFAQAfBQsAPQUEAEMFZwCtBQoAuQUAADUGBAA7BgAAPQYAAEAGAQBDBgMASAYAAEsGAABNBgYAVQYBAFkGCgBnBgAAaQYHAHMGAQB2BgwAhgYcAKQGIgDIBgAA2wYBAN8GAwDkBgIA6AYDAO0GAwD1BgQA+wYJAAYHAAAIB4AAiwcKAJcH1wBwCH4B8QkRAAQKAQAHCgIADgoGABcKAAAiCgAAJQoAACgKBQAzCgEANwoAADsKAwBGCgAATgoKAFoKCABkCgAAZgoCAGwKAgB1CgAAfQoAAIAKAACCCgAAhgoAAIsKAACNChMApQoAAK4KEADAChQA1goCANsKAADkCgEA6AoCAPQKCAAGCwUADgsLACcLDwA4CxcAvQtrA5EPZwBhEDcDmhMeAQ==","P":[[304,"N"],[306,"T"],[550,""],[666,"T"],[764,""],[904,"T"],[905,""],[1015,"T"],[1016,""],[1129,"T"],[1130,""],[1131,"T"],[1132,""],[1138,"T"],[1144,""],[1146,"T"],[1147,""],[1148,"T"],[1151,""],[1153,"T"],[1162,""],[1178,"T"],[1179,""],[1202,"T"],[1241,""],[1242,"T"],[1243,""],[1245,"T"],[1246,""],[1247,"T"],[1249,""],[1252,"T"],[1254,""],[1255,"T"],[1258,""],[1260,"T"],[1265,""],[1267,"T"],[1269,""],[1275,"T"],[1276,""],[1278,"T"],[1284,""],[1286,"T"],[1307,""],[1309,"T"],[1310,""],[1322,"T"],[1340,""],[1352,"H"],[1449,""],[1465,"U"],[1587,""],[1588,"IntoIterator::IntoIter"],[1593,""],[1595,"I"],[1596,""],[1635,"T"],[1636,""],[1649,"T,U"],[1650,""],[1668,"T"],[1669,""],[1698,"T"],[1699,""],[1734,"T"],[1735,""],[1736,"T"],[1738,"F"],[1740,"T"],[1741,"F"],[1742,""],[1751,"T"],[1752,""],[1753,"F"],[1754,""],[1942,"T"],[2040,""],[2169,"U,T"],[2291,"U"],[2413,""],[2573,"T"],[2577,""],[2578,"T"],[2579,""],[2583,"T"],[2585,""],[2587,"U"],[2589,""],[2596,"T"],[2597,""],[2599,"U,T"],[2601,"U"],[2603,""],[2610,"T"],[2612,""],[2613,"T"],[2614,""],[2615,"U"],[2616,""],[2619,"U,T"],[2620,"U"],[2621,""],[2638,"T"],[2649,""],[2652,"T"],[2655,""],[2659,"Deref::Target"],[2661,""],[2665,"T"],[2667,""],[2671,"T"],[2676,"H"],[2677,"U"],[2682,""],[2685,"T"],[2686,"Parser::Output"],[2687,""],[2688,"Parser::Output"],[2689,""],[2690,"Parser::Output"],[2691,"T,P"],[2692,"T"],[2693,""],[2694,"T"],[2697,""],[2699,"R,F"],[2700,"T"],[2703,""],[2705,"U,T"],[2710,"U"],[2715,""],[2734,"T"],[2750,"T,P"],[2754,"T"],[2756,"T,P"],[2758,"T"],[2764,""],[2770,"T,P"],[2774,"T,P,I"],[2776,"T,P"],[2779,"T"],[2787,"T,P,I"],[2788,"T,I,P"],[2789,"T,P"],[2791,"T,P,H"],[2792,"T,P,Index::Output"],[2794,"T,P"],[2795,"U"],[2803,"T,P,IntoIterator::IntoIter"],[2806,"I"],[2812,"T,P"],[2824,"T"],[2827,"T,P"],[2829,"T,P,Iterator::Item"],[2832,"T,Iterator::Item"],[2835,"T,P,Iterator::Item"],[2838,"T,Iterator::Item"],[2841,"T,P"],[2857,"T"],[2860,""],[2862,"T"],[2868,"T,P"],[2871,"U,T"],[2879,"U"],[2887,""],[2895,"T,P"],[2898,""],[3004,"T"],[3212,""],[3316,"T"],[3420,""],[3628,"Deref::Target"],[3672,""],[3880,"T"],[3984,"H"],[4088,"U"],[4192,""],[4496,"F"],[4500,"T"],[4604,""],[4704,"U,T"],[4808,"U"],[4912,""],[5017,"V"],[5018,""],[5020,"V"],[5021,""],[5023,"V"],[5024,""],[5026,"V"],[5027,""],[5029,"V"],[5030,""],[5032,"V"],[5033,""],[5035,"V"],[5036,""],[5038,"V"],[5039,""],[5041,"V"],[5042,""],[5044,"V"],[5045,""],[5047,"V"],[5048,""],[5050,"V"],[5051,""],[5053,"V"],[5054,""],[5056,"V"],[5057,""],[5059,"V"],[5060,""],[5062,"V"],[5063,""],[5065,"V"],[5066,""],[5068,"V"],[5069,""],[5071,"V"],[5072,""],[5074,"V"],[5075,""],[5077,"V"],[5078,""],[5080,"V"],[5081,""],[5083,"V"],[5084,""],[5086,"V"],[5087,""],[5089,"V"],[5090,""],[5092,"V"],[5093,""],[5095,"V"],[5096,""],[5098,"V"],[5099,""],[5101,"V"],[5102,""],[5104,"V"],[5105,""],[5107,"V"],[5108,""],[5110,"V"],[5111,""],[5113,"V"],[5114,""],[5116,"V"],[5117,""],[5119,"V"],[5120,""],[5122,"V"],[5123,""],[5125,"V"],[5126,""],[5128,"V"],[5129,""],[5131,"V"],[5132,""],[5134,"V"],[5135,""],[5137,"V"],[5138,""],[5140,"V"],[5141,""],[5143,"V"],[5144,""],[5146,"V"],[5147,""],[5149,"V"],[5150,""],[5152,"V"],[5153,""],[5155,"V"],[5156,""],[5158,"V"],[5159,""],[5161,"V"],[5162,""],[5164,"V"],[5165,""],[5167,"V"],[5168,""],[5170,"V"],[5171,""],[5173,"V"],[5174,""],[5176,"V"],[5177,""],[5179,"V"],[5180,""],[5182,"V"],[5183,""],[5185,"V"],[5186,""],[5188,"V"],[5189,""],[5191,"V"],[5192,""],[5194,"V"],[5195,""],[5197,"V"],[5198,""],[5200,"V"],[5201,""],[5203,"V"],[5204,""],[5206,"V"],[5207,""],[5209,"V"],[5210,""],[5212,"V"],[5213,""],[5215,"V"],[5216,""],[5218,"V"],[5219,""],[5221,"V"],[5222,""],[5224,"V"],[5225,""],[5229,"V"],[5230,""],[5232,"V"],[5233,""],[5235,"V"],[5236,""],[5238,"V"],[5239,""],[5241,"V"],[5242,""],[5244,"V"],[5245,""],[5247,"V"],[5248,""],[5250,"V"],[5251,""],[5253,"V"],[5254,""],[5256,"V"],[5257,""],[5259,"V"],[5260,""],[5262,"V"],[5263,""],[5265,"V"],[5266,""],[5268,"V"],[5269,""],[5271,"V"],[5272,""],[5274,"V"],[5275,""],[5277,"V"],[5278,""],[5280,"V"],[5281,""],[5283,"V"],[5284,""],[5286,"V"],[5287,""],[5289,"V"],[5290,""],[5292,"V"],[5293,""],[5295,"V"],[5296,""],[5298,"V"],[5299,""],[5301,"V"],[5302,""]]}],["synstructure",{"t":"GGFPPPKPPPPPFFFNNNNNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNMNNNNNNONNNNNNNOQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNN","n":["AddBounds","BindStyle","BindingInfo","Both","Fields","Generics","MacroResult","Move","MoveMut","None","Ref","RefMut","Structure","VariantAst","VariantInfo","add_bounds","add_impl_generic","add_trait_bounds","add_where_predicate","ast","","","attrs","bind_with","","binding","binding_name","","bindings","bindings_mut","borrow","","","","","","borrow_mut","","","","","","bound_impl","clone","","","","","","clone_into","","","","","","clone_to_uninit","","","","","","construct","decl_attribute","decl_derive","discriminant","drain_filter","","drain_filter_variants","each","","each_variant","eq","","","","","","fields","filter","","filter_variants","fmt","","","","","","fold","","from","","","","","","gen_impl","hash","","","","","","ident","into","","","","","","into_result","into_stream","new","omitted_bindings","omitted_variants","pat","","prefix","referenced_ty_params","","","remove_binding","remove_variant","span","","style","test_derive","to_owned","","","","","","to_tokens","","try_from","","","","","","try_into","","","","","","try_new","type_id","","","","","","unbound_impl","underscore_const","unpretty_print","unsafe_bound_impl","unsafe_unbound_impl","variants","variants_mut"],"q":[[0,"synstructure"],[160,"syn::generics"],[161,"core::option"],[162,"syn::data"],[163,"syn::derive"],[164,"core::ops::function"],[165,"proc_macro2"],[166,"quote::to_tokens"],[167,"core::fmt"],[168,"core::hash"],[169,"syn::error"],[170,"proc_macro"],[171,"alloc::vec"],[172,"core::result"],[173,"core::any"],[174,"alloc::string"]],"i":"```h00`Bb0100```d000AfAj2Al132131154201354201335420135420135420131``013313354201301335420131354201335420130542013Cj042432232424533`65312453653124653124465312444`4444","f":"```````````````{{{f{bd}}h}{{f{bd}}}}{{{f{bd}}j}{{f{bd}}}}{{{f{d}}{f{l}}{f{b{A`{n}}}}h}Ab}{{{f{bd}}Ad}{{f{bd}}}}{{{f{Af}}}{{f{Ah}}}}{{{f{Aj}}}Al}{{{f{d}}}{{f{An}}}}{Alf}{{{f{bAj}}c}{{f{bAj}}}{{Bd{{f{Af}}}{{B`{Bb}}}}}}{{{f{bd}}c}{{f{bd}}}{{Bd{{f{Af}}}{{B`{Bb}}}}}}{AfBf}{{{f{bAj}}c}{{f{bAj}}}{{Bd{{f{Ah}}Bh}{{B`{Bf}}}}}}{{{f{bd}}c}{{f{bd}}}{{Bd{{f{Ah}}Bh}{{B`{Bf}}}}}}{{{f{Aj}}}{{f{{Bj{Af}}}}}}{{{f{bAj}}}{{f{b{Bj{Af}}}}}}{f{{f{c}}}{}}00000{{{f{b}}}{{f{bc}}}{}}00000{{{f{d}}ce}BlBnBn}{{{f{h}}}h}{{{f{Bb}}}Bb}{{{f{Af}}}Af}{{{f{Al}}}Al}{{{f{Aj}}}Aj}{{{f{d}}}d}{{f{f{bc}}}Ab{}}00000{{fC`}Ab}00000{{{f{Aj}}e}BlBn{{Bd{{f{Ah}}Bh}{{B`{c}}}}}}``{Alf}{{{f{bAj}}c}Aj{{Bd{{f{Af}}}{{B`{Cb}}}}}}{{{f{bd}}c}d{{Bd{{f{Af}}}{{B`{Cb}}}}}}{{{f{bd}}c}d{{Bd{{f{Aj}}}{{B`{Cb}}}}}}{{{f{Aj}}e}BlBn{{Bd{{f{Af}}}{{B`{c}}}}}}{{{f{d}}e}BlBn{{Bd{{f{Af}}}{{B`{c}}}}}}{{{f{d}}e}BlBn{{Bd{{f{Aj}}}{{B`{c}}}}}}{{{f{h}}{f{h}}}Cb}{{{f{Bb}}{f{Bb}}}Cb}{{{f{Af}}{f{Af}}}Cb}{{{f{Al}}{f{Al}}}Cb}{{{f{Aj}}{f{Aj}}}Cb}{{{f{d}}{f{d}}}Cb}<{{{f{bAj}}c}{{f{bAj}}}{{Bd{{f{Af}}}{{B`{Cb}}}}}}{{{f{bd}}c}{{f{bd}}}{{Bd{{f{Af}}}{{B`{Cb}}}}}}{{{f{bd}}c}{{f{bd}}}{{Bd{{f{Aj}}}{{B`{Cb}}}}}}{{{f{h}}{f{bCd}}}Cf}{{{f{Bb}}{f{bCd}}}Cf}{{{f{Af}}{f{bCd}}}Cf}{{{f{Al}}{f{bCd}}}Cf}{{{f{Aj}}{f{bCd}}}Cf}{{{f{d}}{f{bCd}}}Cf}{{{f{Aj}}cg}BlBnBn{{Bd{Bl{f{Af}}}{{B`{e}}}}}}{{{f{d}}cg}BlBnBn{{Bd{Bl{f{Af}}}{{B`{e}}}}}}{cc{}}00000{{{f{d}}Bl}Bl}{{{f{h}}{f{bc}}}AbCh}{{{f{Bb}}{f{bc}}}AbCh}{{{f{Af}}{f{bc}}}AbCh}{{{f{Al}}{f{bc}}}AbCh}{{{f{Aj}}{f{bc}}}AbCh}{{{f{d}}{f{bc}}}AbCh}{Alf}{{}c{}}00000{Cj{{Cl{Bl}}}}{CjCn}{{{f{An}}}d}{{{f{Aj}}}Cb}{{{f{d}}}Cb}{{{f{Af}}}Bl}{{{f{Aj}}}Bl}{AjA`}{{{f{Af}}}{{D`{{f{Bf}}}}}}{{{f{Aj}}}{{D`{{f{Bf}}}}}}{{{f{d}}}{{D`{{f{Bf}}}}}}{{{f{bAj}}Bh}{{f{bAj}}}}{{{f{bd}}Bh}{{f{bd}}}}{fDb}0{AfBb}`{fc{}}00000{{{f{Bb}}{f{bBl}}}Ab}{{{f{Af}}{f{bBl}}}Ab}{c{{Dd{e}}}{}{}}00000{{}{{Dd{c}}}{}}00000{{{f{An}}}{{Cl{d}}}}{fDf}00000{{{f{d}}ce}BlBnBn}{{{f{bd}}Cb}{{f{bd}}}}{cDhDj}22{{{f{d}}}{{f{{Bj{Aj}}}}}}{{{f{bd}}}{{f{b{Bj{Aj}}}}}}","D":"J`","p":[[0,"mut"],[5,"Structure",0],[1,"reference",null,null,1],[6,"AddBounds",0],[6,"GenericParam",160],[5,"TraitBound",160],[5,"WhereClause",160],[6,"Option",161,null,1],[1,"unit"],[6,"WherePredicate",160],[5,"BindingInfo",0],[5,"Field",162],[5,"VariantInfo",0],[5,"VariantAst",0],[5,"DeriveInput",163],[17,"Output"],[6,"BindStyle",0],[10,"FnMut",164],[5,"Ident",165],[1,"usize"],[1,"slice"],[5,"TokenStream",165],[10,"ToTokens",166],[1,"u8"],[1,"bool"],[5,"Formatter",167],[8,"Result",167],[10,"Hasher",168],[10,"MacroResult",0],[8,"Result",169],[5,"TokenStream",170],[5,"Vec",171],[5,"Span",165],[6,"Result",172,null,1],[5,"TypeId",173],[5,"String",174],[10,"Display",167]],"r":[],"b":[],"c":"OjAAAAEAAAAAAAAAEAAAAJ4A","e":"OzAAAAEAAFAACwAXAAAAHwALACwAEQBBAAAASAAGAFIABQBhAAYAdQAAAHsAAQB/ABMAlAAFAA==","P":[[23,"F"],[25,""],[26,"F"],[28,""],[30,"T"],[42,"P,B"],[43,""],[49,"T"],[55,""],[61,"T,F"],[64,""],[65,"F"],[68,"R,F"],[71,""],[78,"F"],[81,""],[87,"I,R,F"],[89,"T"],[95,""],[96,"__H"],[102,""],[103,"U"],[109,""],[126,"T"],[132,""],[134,"U,T"],[140,"U"],[146,""],[153,"P,B"],[154,""],[155,"T"],[156,"P,B"],[158,""]]}],["unicode_ident",{"t":"HH","n":["is_xid_continue","is_xid_start"],"q":[[0,"unicode_ident"]],"i":"``","f":"{bd}0","D":"f","p":[[1,"char"],[1,"bool"]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA=","P":[]}]]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); -//{"start":39,"fragment_lengths":[6623,10290,181,4438,6979,1133,136279,5003,210]} \ No newline at end of file +//{"start":39,"fragment_lengths":[6755,10290,181,4527,6979,1133,136279,5003,210]} \ No newline at end of file diff --git a/search.desc/delog/delog-desc-0-.js b/search.desc/delog/delog-desc-0-.js index bc9284a..ede9a6e 100644 --- a/search.desc/delog/delog-desc-0-.js +++ b/search.desc/delog/delog-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("delog", 0, "Compile-time configurable deferred logging (for printf()…\nThe “debug” level.\nCorresponds to the Debug log level.\nSemi-abstract characterization of the deferred loggers …\nThe “error” level.\nCorresponds to the Error log level.\nA way to pass on logs, user supplied.\nThe “info” level.\nCorresponds to the Info log level.\nAn enum representing the available verbosity levels of the …\nAn enum representing the available verbosity level filters …\nA level lower than all log levels.\nThe “payload” of a log message.\nA way to format logs, user supplied.\nTrait for either state or statistics of loggers.\nStatistics on logger usage.\nThe “trace” level.\nCorresponds to the Trace log level.\nFallible, panic-free version of the log::Log trait.\nTryLog with some usage statistics on top.\nThe “warn” level.\nCorresponds to the Warn log level.\nThe message body.\nReturns the string representation of the Level.\nReturns the string representation of the LevelFilter.\nHow often was one of the logging macros called.\nHow often was one of the logging macros called.\nthe underlying buffer\nReturns a new builder.\nCapacity of circular buffer.\nCapacity of circular buffer.\nHow many characters were claimed so far.\nGenerate a deferred logger with specified capacity and …\nThe core “read from circular buffer” method. Marked …\nThe core “write to circular buffer” method. Marked …\nThe source file containing the message.\nThe source file containing the message, if it is a 'static …\nCall the flusher.\nImplementor must handle passed log &str in some hopefully …\nHow often was the flusher called.\nHow often was the flusher called.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGenerate logging macros that can be gated by library.\nConvenient Display and other traits for binary data.\nCompactly format byte arrays and slices as hexadecimals.\nMore compactly format byte arrays and slices as …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIterate through all supported logging levels.\nIterate through all supported filtering levels.\nThe verbosity level of the message.\nThe line containing the message.\nReturns a reference to the logger (as TryLogWithStatistics …\nReturns the most verbose logging level.\nReturns the most verbose logging level filter.\nMetadata about the log directive.\nThe module path of the message.\nThe module path of the message, if it is a 'static string.\nHow many bytes were flushed so far.\nHow many bytes were flushed so far.\nThe default, minimal renderer, and some helper functions.\nActually render the arguments (via internal static buffer).\nImplementor must render record into buf, returning the …\nRead out statistics on logger usage.\nRead out statistics on logger usage.\nHow often was one of the logging macros called without …\nHow often was one of the logging macros called without …\nThe name of the target of the directive.\nConverts self to the equivalent Level.\nConverts the Level to the equivalent LevelFilter.\nThe fallible “write to circular buffer” method. Marked …\nFallible logging call (fails when buffer is full)\nHow many bytes were logged so far.\nHow many bytes were logged so far.\nZero-sized wrapper newtype, allowing grouping bytes in …\nExplicitly construct a newtype to format with.\nThe actual number.\nThe actual separator str.\nA type that specifies a separator str.\nA type that represents the integer 1.\nA type that specifies an unsigned integer.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nThe value to be formatted.\nRenders just the record.args().\nRenders the record.args(), prefixed by level, target, and …\nThe default, minimal renderer.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nFor some reason, there seems to be no existing method to …\nRender record, based on feature flags.") \ No newline at end of file +searchState.loadedDescShard("delog", 0, "Compile-time configurable deferred logging (for printf()…\nThe “debug” level.\nCorresponds to the Debug log level.\nSemi-abstract characterization of the deferred loggers …\nThe “error” level.\nCorresponds to the Error log level.\nA way to pass on logs, user supplied.\nThe “info” level.\nCorresponds to the Info log level.\nAn enum representing the available verbosity levels of the …\nAn enum representing the available verbosity level filters …\nA level lower than all log levels.\nThe “payload” of a log message.\nA way to format logs, user supplied.\nTrait for either state or statistics of loggers.\nStatistics on logger usage.\nThe “trace” level.\nCorresponds to the Trace log level.\nFallible, panic-free version of the log::Log trait.\nTryLog with some usage statistics on top.\nThe “warn” level.\nCorresponds to the Warn log level.\nThe message body.\nReturns the string representation of the Level.\nReturns the string representation of the LevelFilter.\nHow often was one of the logging macros called.\nHow often was one of the logging macros called.\nthe underlying buffer\nReturns a new builder.\nCapacity of circular buffer.\nCapacity of circular buffer.\nHow many characters were claimed so far.\nGet the next-lowest Level from this one.\nGet the next-lowest LevelFilter from this one.\nGenerate a deferred logger with specified capacity and …\nThe core “read from circular buffer” method. Marked …\nThe core “write to circular buffer” method. Marked …\nThe source file containing the message.\nThe source file containing the message, if it is a 'static …\nCall the flusher.\nImplementor must handle passed log &str in some hopefully …\nHow often was the flusher called.\nHow often was the flusher called.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGenerate logging macros that can be gated by library.\nConvenient Display and other traits for binary data.\nCompactly format byte arrays and slices as hexadecimals.\nMore compactly format byte arrays and slices as …\nGet the next-highest Level from this one.\nGet the next-highest LevelFilter from this one.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIterate through all supported logging levels.\nIterate through all supported filtering levels.\nThe verbosity level of the message.\nThe line containing the message.\nReturns a reference to the logger (as TryLogWithStatistics …\nReturns the most verbose logging level.\nReturns the most verbose logging level filter.\nMetadata about the log directive.\nThe module path of the message.\nThe module path of the message, if it is a 'static string.\nHow many bytes were flushed so far.\nHow many bytes were flushed so far.\nThe default, minimal renderer, and some helper functions.\nActually render the arguments (via internal static buffer).\nImplementor must render record into buf, returning the …\nRead out statistics on logger usage.\nRead out statistics on logger usage.\nHow often was one of the logging macros called without …\nHow often was one of the logging macros called without …\nThe name of the target of the directive.\nConverts self to the equivalent Level.\nConverts the Level to the equivalent LevelFilter.\nThe fallible “write to circular buffer” method. Marked …\nFallible logging call (fails when buffer is full)\nHow many bytes were logged so far.\nHow many bytes were logged so far.\nZero-sized wrapper newtype, allowing grouping bytes in …\nExplicitly construct a newtype to format with.\nThe actual number.\nThe actual separator str.\nA type that specifies a separator str.\nA type that represents the integer 1.\nA type that specifies an unsigned integer.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nThe value to be formatted.\nRenders just the record.args().\nRenders the record.args(), prefixed by level, target, and …\nThe default, minimal renderer.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nFor some reason, there seems to be no existing method to …\nRender record, based on feature flags.") \ No newline at end of file diff --git a/search.desc/log/log-desc-0-.js b/search.desc/log/log-desc-0-.js index c7570e6..2b88337 100644 --- a/search.desc/log/log-desc-0-.js +++ b/search.desc/log/log-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("log", 0, "A lightweight logging facade.\nThe “debug” level.\nCorresponds to the Debug log level.\nThe “error” level.\nCorresponds to the Error log level.\nThe “info” level.\nCorresponds to the Info log level.\nAn enum representing the available verbosity levels of the …\nAn enum representing the available verbosity level filters …\nA trait encapsulating the operations required of a logger.\nMetadata about a log message.\nBuilder for Metadata.\nA level lower than all log levels.\nThe type returned by from_str when the string doesn’t …\nThe “payload” of a log message.\nBuilder for Record.\nThe statically resolved maximum log level.\nThe type returned by set_logger if set_logger has already …\nThe “trace” level.\nCorresponds to the Trace log level.\nThe “warn” level.\nCorresponds to the Warn log level.\nThe message body.\nSet args.\nReturns the string representation of the Level.\nReturns the string representation of the LevelFilter.\nInvoke the builder and return a Record\nReturns a Metadata object.\nReturns a new builder.\nReturns a new builder.\nLogs a message at the debug level.\nDetermines if a log message with the specified metadata …\nLogs a message at the error level.\nThe source file containing the message.\nSet file\nThe source file containing the message, if it is a 'static …\nSet file to a 'static string.\nFlushes any buffered records.\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.\nLogs a message at the info level.\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).\nIterate through all supported logging levels.\nIterate through all supported filtering levels.\nThe verbosity level of the message.\nSet Metadata::level.\nThe verbosity level of the message.\nSetter for level.\nThe line containing the message.\nSet line\nLogs the Record.\nThe standard logging macro.\nDetermines if a message logged at the specified level in …\nReturns a reference to the logger.\nReturns the most verbose logging level.\nReturns the most verbose logging level filter.\nReturns the current maximum log level.\nMetadata about the log directive.\nSet metadata. Construct a Metadata object with …\nThe module path of the message.\nSet module_path\nThe module path of the message, if it is a 'static string.\nSet module_path to a 'static string\nConstruct new RecordBuilder.\nConstruct a new MetadataBuilder.\nSets the global logger to a &'static Log.\nA thread-unsafe version of set_logger.\nSets the global maximum log level.\nA thread-unsafe version of set_max_level.\nThe name of the target of the directive.\nSet Metadata::target\nThe name of the target of the directive.\nSetter for target.\nConverts self to the equivalent Level.\nConverts the Level to the equivalent LevelFilter.\nLogs a message at the trace level.\nLogs a message at the warn level.") \ No newline at end of file +searchState.loadedDescShard("log", 0, "A lightweight logging facade.\nThe “debug” level.\nCorresponds to the Debug log level.\nThe “error” level.\nCorresponds to the Error log level.\nThe “info” level.\nCorresponds to the Info log level.\nAn enum representing the available verbosity levels of the …\nAn enum representing the available verbosity level filters …\nA trait encapsulating the operations required of a logger.\nMetadata about a log message.\nBuilder for Metadata.\nA level lower than all log levels.\nThe type returned by from_str when the string doesn’t …\nThe “payload” of a log message.\nBuilder for Record.\nThe statically resolved maximum log level.\nThe type returned by set_logger if set_logger has already …\nThe “trace” level.\nCorresponds to the Trace log level.\nThe “warn” level.\nCorresponds to the Warn log level.\nThe message body.\nSet args.\nReturns the string representation of the Level.\nReturns the string representation of the LevelFilter.\nInvoke the builder and return a Record\nReturns a Metadata object.\nReturns a new builder.\nReturns a new builder.\nLogs a message at the debug level.\nGet the next-lowest Level from this one.\nGet the next-lowest LevelFilter from this one.\nDetermines if a log message with the specified metadata …\nLogs a message at the error level.\nThe source file containing the message.\nSet file\nThe source file containing the message, if it is a 'static …\nSet file to a 'static string.\nFlushes any buffered records.\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.\nGet the next-highest Level from this one.\nGet the next-highest LevelFilter from this one.\nLogs a message at the info level.\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).\nIterate through all supported logging levels.\nIterate through all supported filtering levels.\nThe verbosity level of the message.\nSet Metadata::level.\nThe verbosity level of the message.\nSetter for level.\nThe line containing the message.\nSet line\nLogs the Record.\nThe standard logging macro.\nDetermines if a message logged at the specified level in …\nReturns a reference to the logger.\nReturns the most verbose logging level.\nReturns the most verbose logging level filter.\nReturns the current maximum log level.\nMetadata about the log directive.\nSet metadata. Construct a Metadata object with …\nThe module path of the message.\nSet module_path\nThe module path of the message, if it is a 'static string.\nSet module_path to a 'static string\nConstruct new RecordBuilder.\nConstruct a new MetadataBuilder.\nSets the global logger to a &'static Log.\nA thread-unsafe version of set_logger.\nSets the global maximum log level.\nA thread-unsafe version of set_max_level.\nThe name of the target of the directive.\nSet Metadata::target\nThe name of the target of the directive.\nSetter for target.\nConverts self to the equivalent Level.\nConverts the Level to the equivalent LevelFilter.\nLogs a message at the trace level.\nLogs a message at the warn level.") \ No newline at end of file diff --git a/src/delog/hex.rs.html b/src/delog/hex.rs.html index 7bf4115..9690f04 100644 --- a/src/delog/hex.rs.html +++ b/src/delog/hex.rs.html @@ -1,4 +1,4 @@ -hex.rs - source

delog/
hex.rs

1//! Convenient `Display` and other traits for binary data.
+hex.rs - source

delog/
hex.rs

1//! Convenient `Display` and other traits for binary data.
 2//!
 3//! Standard Rust uses the `fmt::UpperHex` and `LowerHex` traits to implement hexadecimal
 4//! representations for use in format strings. For instance,
@@ -184,7 +184,7 @@
 184///
 185/// assert_eq!(format!("{}", hex_str), "07A1FF|C7");
 186/// ```
-187pub fn HexStr<T: ?Sized, U: Unsigned, S: Separator>(value: &T) -> HexStr<T, U, S> {
+187pub fn HexStr<T: ?Sized, U: Unsigned, S: Separator>(value: &T) -> HexStr<'_, T, U, S> {
 188    HexStr {
 189        value,
 190        _bytes_per_block: PhantomData,
diff --git a/src/delog/lib.rs.html b/src/delog/lib.rs.html
index f8b722b..efc3d3e 100644
--- a/src/delog/lib.rs.html
+++ b/src/delog/lib.rs.html
@@ -1,4 +1,4 @@
-lib.rs - source

delog/
lib.rs

1//! # Compile-time configurable deferred logging (for `printf()`-debugging *aka* tracing)
+lib.rs - source

delog/
lib.rs

1//! # Compile-time configurable deferred logging (for `printf()`-debugging *aka* tracing)
 2//!
 3//! This is an implementation of the `log::Log` trait, suitable for use
 4//! in both embedded and desktop environments.
@@ -141,45 +141,47 @@
 141
 142/// Returns a reference to the logger (as `TryLogWithStatistics` implementation)
 143pub fn logger() -> &'static mut Option<&'static dyn logger::TryLogWithStatistics> {
-144    unsafe { &mut LOGGER }
-145}
-146
-147// WARNING: this is not part of the crate's public API and is subject to change at any time.
-148// Taken from `log` crate, mutatis mutandis.
-149// The methods are here and not in `macro` to avoid making the latter public.
-150#[doc(hidden)]
-151pub fn __private_api_try_log(
-152    args: fmt::Arguments,
-153    level: log::Level,
-154    &(target, module_path, file, line): &(&str, &'static str, &'static str, u32),
-155) -> core::result::Result<(), ()> {
-156    crate::logger().ok_or(())?.try_log(
-157        &log::Record::builder()
-158            .args(args)
-159            .level(level)
-160            .target(target)
-161            .module_path_static(Some(module_path))
-162            .file_static(Some(file))
-163            .line(Some(line))
-164            .build(),
-165    )
-166}
-167
-168// WARNING: this is not part of the crate's public API and is subject to change at any time.
-169#[doc(hidden)]
-170pub fn __private_api_try_log_lit(
-171    message: &str,
-172    level: log::Level,
-173    &(target, module_path, file, line): &(&str, &'static str, &'static str, u32),
-174) -> core::result::Result<(), ()> {
-175    crate::logger().ok_or(())?.try_log(
-176        &log::Record::builder()
-177            .args(format_args!("{}", message))
-178            .level(level)
-179            .target(target)
-180            .module_path_static(Some(module_path))
-181            .file_static(Some(file))
-182            .line(Some(line))
-183            .build(),
-184    )
-185}
\ No newline at end of file +144 // TODO: implement safe alternative +145 #[allow(static_mut_refs)] +146 unsafe { &mut LOGGER } +147} +148 +149// WARNING: this is not part of the crate's public API and is subject to change at any time. +150// Taken from `log` crate, mutatis mutandis. +151// The methods are here and not in `macro` to avoid making the latter public. +152#[doc(hidden)] +153pub fn __private_api_try_log( +154 args: fmt::Arguments, +155 level: log::Level, +156 &(target, module_path, file, line): &(&str, &'static str, &'static str, u32), +157) -> core::result::Result<(), ()> { +158 crate::logger().ok_or(())?.try_log( +159 &log::Record::builder() +160 .args(args) +161 .level(level) +162 .target(target) +163 .module_path_static(Some(module_path)) +164 .file_static(Some(file)) +165 .line(Some(line)) +166 .build(), +167 ) +168} +169 +170// WARNING: this is not part of the crate's public API and is subject to change at any time. +171#[doc(hidden)] +172pub fn __private_api_try_log_lit( +173 message: &str, +174 level: log::Level, +175 &(target, module_path, file, line): &(&str, &'static str, &'static str, u32), +176) -> core::result::Result<(), ()> { +177 crate::logger().ok_or(())?.try_log( +178 &log::Record::builder() +179 .args(format_args!("{}", message)) +180 .level(level) +181 .target(target) +182 .module_path_static(Some(module_path)) +183 .file_static(Some(file)) +184 .line(Some(line)) +185 .build(), +186 ) +187}
\ No newline at end of file diff --git a/src/delog/logger.rs.html b/src/delog/logger.rs.html index 1fd98ce..823c6c7 100644 --- a/src/delog/logger.rs.html +++ b/src/delog/logger.rs.html @@ -1,648 +1,653 @@ -logger.rs - source

delog/
logger.rs

1use core::sync::atomic::{AtomicUsize, Ordering};
+logger.rs - source

delog/
logger.rs

1use core::sync::atomic::Ordering;
 2use core::{cmp, ptr};
 3
-4/// Semi-abstract characterization of the deferred loggers that the `delog!` macro produces.
-5///
-6/// # Safety
-7/// This trait is markes "unsafe" to signal that users should never (need to) "write their own",
-8/// but always go through the `delog!` macro.
-9///
-10/// The user has access to the global logger via `delog::logger()`, but only as TryLog/Log
-11/// implementation, not with this direct access to implementation details.
-12pub unsafe trait Delogger: log::Log + crate::TryLog + State<&'static AtomicUsize> {
-13    /// the underlying buffer
-14    fn buffer(&self) -> &'static mut [u8];
-15    /// How many characters were claimed so far.
-16    fn claimed(&self) -> &'static AtomicUsize;
-17    /// Call the flusher.
-18    fn flush(&self, logs: &str);
-19    /// Actually render the arguments (via internal static buffer).
-20    fn render(&self, record: &log::Record) -> &'static [u8];
-21
-22    /// Capacity of circular buffer.
-23    fn capacity(&self) -> usize {
-24        self.buffer().len()
-25    }
-26}
-27
-28/// Trait for either state or statistics of loggers.
-29pub trait State<T> {
-30    /// How often was one of the logging macros called.
-31    fn attempts(&self) -> T;
-32    /// How often was one of the logging macros called without early exit (e.g., buffer not full)
-33    fn successes(&self) -> T;
-34    /// How often was the flusher called.
-35    fn flushes(&self) -> T;
-36    /// How many bytes were flushed so far.
-37    fn read(&self) -> T;
-38    /// How many bytes were logged so far.
-39    fn written(&self) -> T;
-40}
-41
-42#[derive(Clone, Copy, Debug)]
-43/// Statistics on logger usage.
-44pub struct Statistics {
-45    /// How often was one of the logging macros called.
-46    pub attempts: usize,
-47    /// How often was one of the logging macros called without early exit (e.g., buffer not full)
-48    pub successes: usize,
-49    /// How often was the flusher called.
-50    pub flushes: usize,
-51    /// How many bytes were flushed so far.
-52    pub read: usize,
-53    /// How many bytes were logged so far.
-54    pub written: usize,
-55}
-56
-57/// Fallible, panic-free version of the `log::Log` trait.
-58///
-59/// The intention is actually that implementors of this trait also
-60/// implement `log::Log` in a panic-free fashion, and simply drop logs
-61/// that can't be logged. Because, if the user can handle the error, they
-62/// would be using the fallible macros, and if not, they most likely do **not**
-63/// want to crash.
-64pub trait TryLog: log::Log {
-65    /// Fallible logging call (fails when buffer is full)
-66    fn try_log(&self, _: &log::Record) -> core::result::Result<(), ()>;
-67}
-68
-69/// TryLog with some usage statistics on top.
-70pub trait TryLogWithStatistics: TryLog + State<usize> {
-71    /// Read out statistics on logger usage.
-72    fn statistics(&self) -> Statistics {
-73        Statistics {
-74            attempts: self.attempts(),
-75            successes: self.successes(),
-76            flushes: self.flushes(),
-77            read: self.read(),
-78            written: self.written(),
-79        }
-80    }
-81
-82    // /// How often was one of the logging macros called.
-83    // fn attempts(&self) -> usize;
-84    // /// How often was one of the logging macros called without early exit (e.g., buffer not full)
-85    // fn successes(&self) -> usize;
-86    // /// How often was the flusher called.
-87    // fn flushes(&self) -> usize;
-88    // /// How many bytes were flushed so far.
-89    // fn read(&self) -> usize;
-90    // /// How many bytes were logged so far.
-91    // fn written(&self) -> usize;
-92}
-93
-94/// Generate a deferred logger with specified capacity and flushing mechanism.
-95///
-96/// Note that only the final "runner" generates, initializes and flushes such a deferred logger.
-97///
-98/// Libraries simply make calls to `log::log!`, or its drop-in replacement `delog::log!`,
-99/// and/or its extension `delog::log_now!`, and/or its alternatives `delog::try_log!` and  `delog::try_log_now`,
-100/// and/or the local logging variants `local_log!`.
-101#[cfg(not(any(
-102    feature = "max_level_off",
-103    all(not(debug_assertions), feature = "release_max_level_off")
-104)))]
-105#[macro_export]
-106macro_rules! delog {
-107    ($logger:ident, $capacity:expr, $render_capacity:expr, $flusher:ty) => {
-108        delog!(
-109            $logger,
-110            $capacity,
-111            $render_capacity,
-112            $flusher,
-113            renderer: $crate::render::DefaultRenderer
-114        );
-115
-116        impl $logger {
-117            #[inline]
-118            pub fn init_default(
-119                level: $crate::log::LevelFilter,
-120                flusher: &'static $flusher,
-121            ) -> Result<(), ()> {
-122                $logger::init(level, flusher, $crate::render::default())
-123            }
-124        }
-125    };
-126
-127    ($logger:ident, $capacity:expr, $flusher:ty) => {
-128        delog!(
-129            $logger,
-130            $capacity,
-131            $capacity,
-132            $flusher,
-133            renderer: $crate::render::DefaultRenderer
-134        );
-135
-136        impl $logger {
-137            #[inline]
-138            pub fn init_default(
-139                level: $crate::log::LevelFilter,
-140                flusher: &'static $flusher,
-141            ) -> Result<(), ()> {
-142                $logger::init(level, flusher, $crate::render::default())
-143            }
-144        }
-145    };
-146
-147    ($logger:ident, $capacity:expr, $flusher:ty, renderer: $renderer:ty) => {
-148        $crate::delog!($logger, $capacity, $capacity, $flusher, renderer: $renderer);
-149    };
-150
-151    ($logger:ident, $capacity:expr, $render_capacity:expr, $flusher:ty, renderer: $renderer:ty) => {
-152        #[derive(Clone, Copy)]
-153        /// Generated deferred logging implementation.
-154        pub struct $logger {
-155            flusher: &'static $flusher,
-156            renderer: &'static $renderer,
-157            // immediate_flusher: &'static $flusher,
-158        }
-159
-160        // log::Log implementations are required to be Send + Sync
-161        unsafe impl Send for $logger {}
-162        unsafe impl Sync for $logger {}
-163
-164        impl $crate::log::Log for $logger {
-165            /// log level is set via log::set_max_level, not here, hence always true
-166            fn enabled(&self, _: &$crate::log::Metadata) -> bool {
-167                true
-168            }
-169
-170            /// reads out logs from circular buffer, and flushes via injected flusher
-171            fn flush(&self) {
-172                let mut buf = [0u8; $capacity];
-173
-174                let logs: &str = unsafe { $crate::dequeue(*self, &mut buf) };
-175
-176                if logs.len() > 0 {
-177                    use $crate::Flusher;
-178                    self.flusher.flush(logs);
-179                }
-180            }
-181
-182            fn log(&self, record: &$crate::log::Record) {
-183                // use $crate::Delogger;
-184                unsafe { $crate::enqueue(*self, record) }
+4#[cfg(not(feature = "portable-atomic"))]
+5use core::sync::atomic::AtomicUsize;
+6#[cfg(feature = "portable-atomic")]
+7use portable_atomic::AtomicUsize;
+8
+9/// Semi-abstract characterization of the deferred loggers that the `delog!` macro produces.
+10///
+11/// # Safety
+12/// This trait is markes "unsafe" to signal that users should never (need to) "write their own",
+13/// but always go through the `delog!` macro.
+14///
+15/// The user has access to the global logger via `delog::logger()`, but only as TryLog/Log
+16/// implementation, not with this direct access to implementation details.
+17pub unsafe trait Delogger: log::Log + crate::TryLog + State<&'static AtomicUsize> {
+18    /// the underlying buffer
+19    fn buffer(&self) -> &'static mut [u8];
+20    /// How many characters were claimed so far.
+21    fn claimed(&self) -> &'static AtomicUsize;
+22    /// Call the flusher.
+23    fn flush(&self, logs: &str);
+24    /// Actually render the arguments (via internal static buffer).
+25    fn render(&self, record: &log::Record) -> &'static [u8];
+26
+27    /// Capacity of circular buffer.
+28    fn capacity(&self) -> usize {
+29        self.buffer().len()
+30    }
+31}
+32
+33/// Trait for either state or statistics of loggers.
+34pub trait State<T> {
+35    /// How often was one of the logging macros called.
+36    fn attempts(&self) -> T;
+37    /// How often was one of the logging macros called without early exit (e.g., buffer not full)
+38    fn successes(&self) -> T;
+39    /// How often was the flusher called.
+40    fn flushes(&self) -> T;
+41    /// How many bytes were flushed so far.
+42    fn read(&self) -> T;
+43    /// How many bytes were logged so far.
+44    fn written(&self) -> T;
+45}
+46
+47#[derive(Clone, Copy, Debug)]
+48/// Statistics on logger usage.
+49pub struct Statistics {
+50    /// How often was one of the logging macros called.
+51    pub attempts: usize,
+52    /// How often was one of the logging macros called without early exit (e.g., buffer not full)
+53    pub successes: usize,
+54    /// How often was the flusher called.
+55    pub flushes: usize,
+56    /// How many bytes were flushed so far.
+57    pub read: usize,
+58    /// How many bytes were logged so far.
+59    pub written: usize,
+60}
+61
+62/// Fallible, panic-free version of the `log::Log` trait.
+63///
+64/// The intention is actually that implementors of this trait also
+65/// implement `log::Log` in a panic-free fashion, and simply drop logs
+66/// that can't be logged. Because, if the user can handle the error, they
+67/// would be using the fallible macros, and if not, they most likely do **not**
+68/// want to crash.
+69pub trait TryLog: log::Log {
+70    /// Fallible logging call (fails when buffer is full)
+71    fn try_log(&self, _: &log::Record) -> core::result::Result<(), ()>;
+72}
+73
+74/// TryLog with some usage statistics on top.
+75pub trait TryLogWithStatistics: TryLog + State<usize> {
+76    /// Read out statistics on logger usage.
+77    fn statistics(&self) -> Statistics {
+78        Statistics {
+79            attempts: self.attempts(),
+80            successes: self.successes(),
+81            flushes: self.flushes(),
+82            read: self.read(),
+83            written: self.written(),
+84        }
+85    }
+86
+87    // /// How often was one of the logging macros called.
+88    // fn attempts(&self) -> usize;
+89    // /// How often was one of the logging macros called without early exit (e.g., buffer not full)
+90    // fn successes(&self) -> usize;
+91    // /// How often was the flusher called.
+92    // fn flushes(&self) -> usize;
+93    // /// How many bytes were flushed so far.
+94    // fn read(&self) -> usize;
+95    // /// How many bytes were logged so far.
+96    // fn written(&self) -> usize;
+97}
+98
+99/// Generate a deferred logger with specified capacity and flushing mechanism.
+100///
+101/// Note that only the final "runner" generates, initializes and flushes such a deferred logger.
+102///
+103/// Libraries simply make calls to `log::log!`, or its drop-in replacement `delog::log!`,
+104/// and/or its extension `delog::log_now!`, and/or its alternatives `delog::try_log!` and  `delog::try_log_now`,
+105/// and/or the local logging variants `local_log!`.
+106#[cfg(not(any(
+107    feature = "max_level_off",
+108    all(not(debug_assertions), feature = "release_max_level_off")
+109)))]
+110#[macro_export]
+111macro_rules! delog {
+112    ($logger:ident, $capacity:expr, $render_capacity:expr, $flusher:ty) => {
+113        delog!(
+114            $logger,
+115            $capacity,
+116            $render_capacity,
+117            $flusher,
+118            renderer: $crate::render::DefaultRenderer
+119        );
+120
+121        impl $logger {
+122            #[inline]
+123            pub fn init_default(
+124                level: $crate::log::LevelFilter,
+125                flusher: &'static $flusher,
+126            ) -> Result<(), ()> {
+127                $logger::init(level, flusher, $crate::render::default())
+128            }
+129        }
+130    };
+131
+132    ($logger:ident, $capacity:expr, $flusher:ty) => {
+133        delog!(
+134            $logger,
+135            $capacity,
+136            $capacity,
+137            $flusher,
+138            renderer: $crate::render::DefaultRenderer
+139        );
+140
+141        impl $logger {
+142            #[inline]
+143            pub fn init_default(
+144                level: $crate::log::LevelFilter,
+145                flusher: &'static $flusher,
+146            ) -> Result<(), ()> {
+147                $logger::init(level, flusher, $crate::render::default())
+148            }
+149        }
+150    };
+151
+152    ($logger:ident, $capacity:expr, $flusher:ty, renderer: $renderer:ty) => {
+153        $crate::delog!($logger, $capacity, $capacity, $flusher, renderer: $renderer);
+154    };
+155
+156    ($logger:ident, $capacity:expr, $render_capacity:expr, $flusher:ty, renderer: $renderer:ty) => {
+157        #[derive(Clone, Copy)]
+158        /// Generated deferred logging implementation.
+159        pub struct $logger {
+160            flusher: &'static $flusher,
+161            renderer: &'static $renderer,
+162            // immediate_flusher: &'static $flusher,
+163        }
+164
+165        // log::Log implementations are required to be Send + Sync
+166        unsafe impl Send for $logger {}
+167        unsafe impl Sync for $logger {}
+168
+169        impl $crate::log::Log for $logger {
+170            /// log level is set via log::set_max_level, not here, hence always true
+171            fn enabled(&self, _: &$crate::log::Metadata) -> bool {
+172                true
+173            }
+174
+175            /// reads out logs from circular buffer, and flushes via injected flusher
+176            fn flush(&self) {
+177                let mut buf = [0u8; $capacity];
+178
+179                let logs: &str = unsafe { $crate::dequeue(*self, &mut buf) };
+180
+181                if logs.len() > 0 {
+182                    use $crate::Flusher;
+183                    self.flusher.flush(logs);
+184                }
 185            }
-186        }
-187
-188        impl $crate::TryLog for $logger {
-189            fn try_log(&self, record: &$crate::log::Record) -> core::result::Result<(), ()> {
-190                unsafe { $crate::try_enqueue(*self, record) }
-191            }
-192        }
-193
-194        impl $crate::State<usize> for $logger {
-195            fn attempts(&self) -> usize {
-196                <dyn $crate::Delogger>::attempts(self).load(core::sync::atomic::Ordering::SeqCst)
-197            }
-198            fn successes(&self) -> usize {
-199                <dyn $crate::Delogger>::successes(self).load(core::sync::atomic::Ordering::SeqCst)
-200            }
-201
-202            fn flushes(&self) -> usize {
-203                <dyn $crate::Delogger>::flushes(self).load(core::sync::atomic::Ordering::SeqCst)
-204            }
-205
-206            fn read(&self) -> usize {
-207                <dyn $crate::Delogger>::read(self).load(core::sync::atomic::Ordering::SeqCst)
-208            }
-209            fn written(&self) -> usize {
-210                <dyn $crate::Delogger>::written(self).load(core::sync::atomic::Ordering::SeqCst)
-211            }
-212        }
-213
-214        impl $crate::TryLogWithStatistics for $logger {}
-215
-216        #[allow(missing_docs)]
-217        impl $logger {
-218            #[inline]
-219            pub fn init(
-220                level: $crate::log::LevelFilter,
-221                flusher: &'static $flusher,
-222                renderer: &'static $renderer,
-223            ) -> Result<(), ()> {
-224                use core::sync::atomic::{AtomicBool, Ordering};
-225
-226                static INITIALIZED: AtomicBool = AtomicBool::new(false);
-227                if INITIALIZED
-228                    .compare_exchange_weak(false, true, Ordering::AcqRel, Ordering::Acquire)
-229                    .is_ok()
-230                {
-231                    // let logger = Self { flusher, immediate_flusher: flusher };
-232                    let logger = Self { flusher, renderer };
-233                    Self::get().replace(logger);
-234                    $crate::logger().replace(Self::get().as_ref().unwrap());
-235                    $crate::log::set_logger(Self::get().as_ref().unwrap())
-236                        .map(|()| $crate::log::set_max_level(level))
-237                        .map_err(|_| ())
-238                } else {
-239                    Err(())
-240                }
-241            }
-242
-243            fn get() -> &'static mut Option<$logger> {
-244                static mut LOGGER: Option<$logger> = None;
-245                unsafe { &mut LOGGER }
+186
+187            fn log(&self, record: &$crate::log::Record) {
+188                // use $crate::Delogger;
+189                unsafe { $crate::enqueue(*self, record) }
+190            }
+191        }
+192
+193        impl $crate::TryLog for $logger {
+194            fn try_log(&self, record: &$crate::log::Record) -> core::result::Result<(), ()> {
+195                unsafe { $crate::try_enqueue(*self, record) }
+196            }
+197        }
+198
+199        impl $crate::State<usize> for $logger {
+200            fn attempts(&self) -> usize {
+201                <dyn $crate::Delogger>::attempts(self).load(core::sync::atomic::Ordering::SeqCst)
+202            }
+203            fn successes(&self) -> usize {
+204                <dyn $crate::Delogger>::successes(self).load(core::sync::atomic::Ordering::SeqCst)
+205            }
+206
+207            fn flushes(&self) -> usize {
+208                <dyn $crate::Delogger>::flushes(self).load(core::sync::atomic::Ordering::SeqCst)
+209            }
+210
+211            fn read(&self) -> usize {
+212                <dyn $crate::Delogger>::read(self).load(core::sync::atomic::Ordering::SeqCst)
+213            }
+214            fn written(&self) -> usize {
+215                <dyn $crate::Delogger>::written(self).load(core::sync::atomic::Ordering::SeqCst)
+216            }
+217        }
+218
+219        impl $crate::TryLogWithStatistics for $logger {}
+220
+221        #[allow(missing_docs)]
+222        impl $logger {
+223            #[inline]
+224            pub fn init(
+225                level: $crate::log::LevelFilter,
+226                flusher: &'static $flusher,
+227                renderer: &'static $renderer,
+228            ) -> Result<(), ()> {
+229                use core::sync::atomic::{AtomicBool, Ordering};
+230
+231                static INITIALIZED: AtomicBool = AtomicBool::new(false);
+232                if INITIALIZED
+233                    .compare_exchange_weak(false, true, Ordering::AcqRel, Ordering::Acquire)
+234                    .is_ok()
+235                {
+236                    // let logger = Self { flusher, immediate_flusher: flusher };
+237                    let logger = Self { flusher, renderer };
+238                    Self::get().replace(logger);
+239                    $crate::logger().replace(Self::get().as_ref().unwrap());
+240                    $crate::log::set_logger(Self::get().as_ref().unwrap())
+241                        .map(|()| $crate::log::set_max_level(level))
+242                        .map_err(|_| ())
+243                } else {
+244                    Err(())
+245                }
 246            }
 247
-248            pub fn flush() {
-249                // gracefully degrade if we're not initialized yet
-250                if let Some(logger) = Self::get() {
-251                    $crate::log::Log::flush(logger)
-252                }
-253            }
-254        }
-255
-256        impl $crate::State<&'static core::sync::atomic::AtomicUsize> for $logger {
-257            fn attempts(&self) -> &'static core::sync::atomic::AtomicUsize {
-258                use core::sync::atomic::AtomicUsize;
-259                static LOG_ATTEMPT_COUNT: AtomicUsize = AtomicUsize::new(0);
-260                &LOG_ATTEMPT_COUNT
-261            }
-262
-263            fn successes(&self) -> &'static core::sync::atomic::AtomicUsize {
-264                use core::sync::atomic::AtomicUsize;
-265                static LOG_SUCCESS_COUNT: AtomicUsize = AtomicUsize::new(0);
-266                &LOG_SUCCESS_COUNT
-267            }
-268
-269            fn flushes(&self) -> &'static core::sync::atomic::AtomicUsize {
-270                use core::sync::atomic::AtomicUsize;
-271                static LOG_FLUSH_COUNT: AtomicUsize = AtomicUsize::new(0);
-272                &LOG_FLUSH_COUNT
-273            }
-274
-275            fn read(&self) -> &'static core::sync::atomic::AtomicUsize {
-276                use core::sync::atomic::AtomicUsize;
-277                static READ: AtomicUsize = AtomicUsize::new(0);
-278                &READ
-279            }
-280
-281            fn written(&self) -> &'static core::sync::atomic::AtomicUsize {
-282                use core::sync::atomic::AtomicUsize;
-283                static WRITTEN: AtomicUsize = AtomicUsize::new(0);
-284                &WRITTEN
-285            }
-286        }
-287
-288        unsafe impl $crate::Delogger for $logger {
-289            fn buffer(&self) -> &'static mut [u8] {
-290                static mut BUFFER: [u8; $capacity] = [0u8; $capacity];
-291                unsafe { &mut BUFFER }
-292            }
-293
-294            fn flush(&self, logs: &str) {
-295                use $crate::Flusher;
-296                self.flusher.flush(logs)
+248            fn get() -> &'static mut Option<$logger> {
+249                static mut LOGGER: Option<$logger> = None;
+250                unsafe { &mut LOGGER }
+251            }
+252
+253            pub fn flush() {
+254                // gracefully degrade if we're not initialized yet
+255                if let Some(logger) = Self::get() {
+256                    $crate::log::Log::flush(logger)
+257                }
+258            }
+259        }
+260
+261        impl $crate::State<&'static core::sync::atomic::AtomicUsize> for $logger {
+262            fn attempts(&self) -> &'static core::sync::atomic::AtomicUsize {
+263                use core::sync::atomic::AtomicUsize;
+264                static LOG_ATTEMPT_COUNT: AtomicUsize = AtomicUsize::new(0);
+265                &LOG_ATTEMPT_COUNT
+266            }
+267
+268            fn successes(&self) -> &'static core::sync::atomic::AtomicUsize {
+269                use core::sync::atomic::AtomicUsize;
+270                static LOG_SUCCESS_COUNT: AtomicUsize = AtomicUsize::new(0);
+271                &LOG_SUCCESS_COUNT
+272            }
+273
+274            fn flushes(&self) -> &'static core::sync::atomic::AtomicUsize {
+275                use core::sync::atomic::AtomicUsize;
+276                static LOG_FLUSH_COUNT: AtomicUsize = AtomicUsize::new(0);
+277                &LOG_FLUSH_COUNT
+278            }
+279
+280            fn read(&self) -> &'static core::sync::atomic::AtomicUsize {
+281                use core::sync::atomic::AtomicUsize;
+282                static READ: AtomicUsize = AtomicUsize::new(0);
+283                &READ
+284            }
+285
+286            fn written(&self) -> &'static core::sync::atomic::AtomicUsize {
+287                use core::sync::atomic::AtomicUsize;
+288                static WRITTEN: AtomicUsize = AtomicUsize::new(0);
+289                &WRITTEN
+290            }
+291        }
+292
+293        unsafe impl $crate::Delogger for $logger {
+294            fn buffer(&self) -> &'static mut [u8] {
+295                static mut BUFFER: [u8; $capacity] = [0u8; $capacity];
+296                unsafe { &mut BUFFER }
 297            }
 298
-299            fn claimed(&self) -> &'static core::sync::atomic::AtomicUsize {
-300                use core::sync::atomic::AtomicUsize;
-301                static CLAIMED: AtomicUsize = AtomicUsize::new(0);
-302                &CLAIMED
-303            }
-304
-305            fn render(&self, record: &$crate::Record) -> &'static [u8] {
-306                static mut LOCAL_BUFFER: [u8; $render_capacity] = [0u8; $render_capacity];
-307
-308                let local_buffer = unsafe { &mut LOCAL_BUFFER };
-309                use $crate::Renderer;
-310                self.renderer.render(local_buffer, record)
-311            }
-312        }
-313    };
-314}
-315
-316/// Generate a deferred logger that will completely optimize out.
-317///
-318/// Note that the cfg-gate needs to be around the entire macro, as the library
-319/// calling it will not be the crate that has the `max_level_off` feature.
-320#[cfg(any(
-321    feature = "max_level_off",
-322    all(not(debug_assertions), feature = "release_max_level_off")
-323))]
-324#[macro_export]
-325macro_rules! delog {
-326    ($logger:ident, $capacity:expr, $flusher:ty) => {
-327        delog!(
-328            $logger,
-329            $capacity,
-330            $flusher,
-331            renderer: $crate::render::DefaultRenderer
-332        );
-333
-334        impl $logger {
-335            #[inline]
-336            pub fn init_default(
-337                level: $crate::log::LevelFilter,
-338                flusher: &'static $flusher,
-339            ) -> Result<(), ()> {
-340                Ok(())
-341            }
-342        }
-343    };
-344
-345    ($logger:ident, $capacity:expr, $flusher:ty, renderer: $renderer:ty) => {
-346        #[derive(Clone, Copy)]
-347        /// Generated deferred logging implementation.
-348        pub struct $logger {}
+299            fn flush(&self, logs: &str) {
+300                use $crate::Flusher;
+301                self.flusher.flush(logs)
+302            }
+303
+304            fn claimed(&self) -> &'static core::sync::atomic::AtomicUsize {
+305                use core::sync::atomic::AtomicUsize;
+306                static CLAIMED: AtomicUsize = AtomicUsize::new(0);
+307                &CLAIMED
+308            }
+309
+310            fn render(&self, record: &$crate::Record) -> &'static [u8] {
+311                static mut LOCAL_BUFFER: [u8; $render_capacity] = [0u8; $render_capacity];
+312
+313                let local_buffer = unsafe { &mut LOCAL_BUFFER };
+314                use $crate::Renderer;
+315                self.renderer.render(local_buffer, record)
+316            }
+317        }
+318    };
+319}
+320
+321/// Generate a deferred logger that will completely optimize out.
+322///
+323/// Note that the cfg-gate needs to be around the entire macro, as the library
+324/// calling it will not be the crate that has the `max_level_off` feature.
+325#[cfg(any(
+326    feature = "max_level_off",
+327    all(not(debug_assertions), feature = "release_max_level_off")
+328))]
+329#[macro_export]
+330macro_rules! delog {
+331    ($logger:ident, $capacity:expr, $flusher:ty) => {
+332        delog!(
+333            $logger,
+334            $capacity,
+335            $flusher,
+336            renderer: $crate::render::DefaultRenderer
+337        );
+338
+339        impl $logger {
+340            #[inline]
+341            pub fn init_default(
+342                level: $crate::log::LevelFilter,
+343                flusher: &'static $flusher,
+344            ) -> Result<(), ()> {
+345                Ok(())
+346            }
+347        }
+348    };
 349
-350        // log::Log implementations are required to be Send + Sync
-351        unsafe impl Send for $logger {}
-352        unsafe impl Sync for $logger {}
-353
-354        impl $crate::log::Log for $logger {
-355            /// log level is set via log::set_max_level, not here, hence always true
-356            fn enabled(&self, _: &$crate::log::Metadata) -> bool {
-357                true
-358            }
-359
-360            /// reads out logs from circular buffer, and flushes via injected flusher
-361            fn flush(&self) {}
-362
-363            fn log(&self, _record: &$crate::log::Record) {}
-364        }
-365
-366        impl $crate::TryLog for $logger {
-367            fn try_log(&self, record: &$crate::log::Record) -> core::result::Result<(), ()> {
-368                Ok(())
-369            }
-370        }
-371
-372        impl $crate::State<usize> for $logger {
-373            fn attempts(&self) -> usize {
-374                0
-375            }
-376            fn successes(&self) -> usize {
-377                0
-378            }
-379            fn flushes(&self) -> usize {
-380                0
-381            }
-382            fn read(&self) -> usize {
-383                0
-384            }
-385            fn written(&self) -> usize {
-386                0
-387            }
-388        }
-389
-390        impl $crate::TryLogWithStatistics for $logger {}
-391
-392        #[allow(missing_docs)]
-393        impl $logger {
-394            #[inline]
-395            pub fn init(
-396                level: $crate::log::LevelFilter,
-397                flusher: &'static $flusher,
-398                renderer: &'static $renderer,
-399            ) -> Result<(), ()> {
-400                Ok(())
-401            }
-402
-403            fn get() -> &'static mut Option<$logger> {
-404                static mut LOGGER: Option<$logger> = None;
-405                unsafe { &mut LOGGER }
+350    ($logger:ident, $capacity:expr, $flusher:ty, renderer: $renderer:ty) => {
+351        #[derive(Clone, Copy)]
+352        /// Generated deferred logging implementation.
+353        pub struct $logger {}
+354
+355        // log::Log implementations are required to be Send + Sync
+356        unsafe impl Send for $logger {}
+357        unsafe impl Sync for $logger {}
+358
+359        impl $crate::log::Log for $logger {
+360            /// log level is set via log::set_max_level, not here, hence always true
+361            fn enabled(&self, _: &$crate::log::Metadata) -> bool {
+362                true
+363            }
+364
+365            /// reads out logs from circular buffer, and flushes via injected flusher
+366            fn flush(&self) {}
+367
+368            fn log(&self, _record: &$crate::log::Record) {}
+369        }
+370
+371        impl $crate::TryLog for $logger {
+372            fn try_log(&self, record: &$crate::log::Record) -> core::result::Result<(), ()> {
+373                Ok(())
+374            }
+375        }
+376
+377        impl $crate::State<usize> for $logger {
+378            fn attempts(&self) -> usize {
+379                0
+380            }
+381            fn successes(&self) -> usize {
+382                0
+383            }
+384            fn flushes(&self) -> usize {
+385                0
+386            }
+387            fn read(&self) -> usize {
+388                0
+389            }
+390            fn written(&self) -> usize {
+391                0
+392            }
+393        }
+394
+395        impl $crate::TryLogWithStatistics for $logger {}
+396
+397        #[allow(missing_docs)]
+398        impl $logger {
+399            #[inline]
+400            pub fn init(
+401                level: $crate::log::LevelFilter,
+402                flusher: &'static $flusher,
+403                renderer: &'static $renderer,
+404            ) -> Result<(), ()> {
+405                Ok(())
 406            }
 407
-408            pub fn flush() {}
-409        }
-410
-411        impl $crate::State<&'static core::sync::atomic::AtomicUsize> for $logger {
-412            fn attempts(&self) -> &'static core::sync::atomic::AtomicUsize {
-413                use core::sync::atomic::AtomicUsize;
-414                static LOG_ATTEMPT_COUNT: AtomicUsize = AtomicUsize::new(0);
-415                &LOG_ATTEMPT_COUNT
-416            }
-417
-418            fn successes(&self) -> &'static core::sync::atomic::AtomicUsize {
-419                use core::sync::atomic::AtomicUsize;
-420                static LOG_SUCCESS_COUNT: AtomicUsize = AtomicUsize::new(0);
-421                &LOG_SUCCESS_COUNT
-422            }
-423
-424            fn flushes(&self) -> &'static core::sync::atomic::AtomicUsize {
-425                use core::sync::atomic::AtomicUsize;
-426                static LOG_FLUSH_COUNT: AtomicUsize = AtomicUsize::new(0);
-427                &LOG_FLUSH_COUNT
-428            }
-429
-430            fn read(&self) -> &'static core::sync::atomic::AtomicUsize {
-431                use core::sync::atomic::AtomicUsize;
-432                static READ: AtomicUsize = AtomicUsize::new(0);
-433                &READ
-434            }
-435
-436            fn written(&self) -> &'static core::sync::atomic::AtomicUsize {
-437                use core::sync::atomic::AtomicUsize;
-438                static WRITTEN: AtomicUsize = AtomicUsize::new(0);
-439                &WRITTEN
-440            }
-441        }
-442
-443        unsafe impl $crate::Delogger for $logger {
-444            fn buffer(&self) -> &'static mut [u8] {
-445                unsafe { &mut [] }
-446            }
+408            fn get() -> &'static mut Option<$logger> {
+409                static mut LOGGER: Option<$logger> = None;
+410                unsafe { &mut LOGGER }
+411            }
+412
+413            pub fn flush() {}
+414        }
+415
+416        impl $crate::State<&'static core::sync::atomic::AtomicUsize> for $logger {
+417            fn attempts(&self) -> &'static core::sync::atomic::AtomicUsize {
+418                use core::sync::atomic::AtomicUsize;
+419                static LOG_ATTEMPT_COUNT: AtomicUsize = AtomicUsize::new(0);
+420                &LOG_ATTEMPT_COUNT
+421            }
+422
+423            fn successes(&self) -> &'static core::sync::atomic::AtomicUsize {
+424                use core::sync::atomic::AtomicUsize;
+425                static LOG_SUCCESS_COUNT: AtomicUsize = AtomicUsize::new(0);
+426                &LOG_SUCCESS_COUNT
+427            }
+428
+429            fn flushes(&self) -> &'static core::sync::atomic::AtomicUsize {
+430                use core::sync::atomic::AtomicUsize;
+431                static LOG_FLUSH_COUNT: AtomicUsize = AtomicUsize::new(0);
+432                &LOG_FLUSH_COUNT
+433            }
+434
+435            fn read(&self) -> &'static core::sync::atomic::AtomicUsize {
+436                use core::sync::atomic::AtomicUsize;
+437                static READ: AtomicUsize = AtomicUsize::new(0);
+438                &READ
+439            }
+440
+441            fn written(&self) -> &'static core::sync::atomic::AtomicUsize {
+442                use core::sync::atomic::AtomicUsize;
+443                static WRITTEN: AtomicUsize = AtomicUsize::new(0);
+444                &WRITTEN
+445            }
+446        }
 447
-448            fn flush(&self, logs: &str) {}
-449
-450            fn claimed(&self) -> &'static core::sync::atomic::AtomicUsize {
-451                use core::sync::atomic::AtomicUsize;
-452                static CLAIMED: AtomicUsize = AtomicUsize::new(0);
-453                &CLAIMED
-454            }
-455
-456            fn render(&self, record: &$crate::Record) -> &'static [u8] {
-457                &[]
-458            }
-459        }
-460    };
-461}
-462
-463/// The core "write to circular buffer" method. Marked unsafe to discourage use!
-464///
-465/// # Safety
-466/// Unfortunately exposed for all to see, as the `delog!` macro needs access to it to
-467/// implement the logger at call site. Hence marked as unsafe.
-468pub unsafe fn enqueue(delogger: impl Delogger, record: &log::Record) {
-469    crate::logger::try_enqueue(delogger, record).ok();
-470}
-471
-472/// The fallible "write to circular buffer" method. Marked unsafe to discourage use!
-473///
-474/// # Safety
-475/// Unfortunately exposed for all to see, as the `delog!` macro needs access to it to
-476/// implement the logger at call site. Hence marked as unsafe.
-477///
-478/// This implementation needs some HEAVY testing. It is unsound on PC, where the OS
-479/// can schedule threads in any manner, but assumed to be sound in ARM Cortex-M NVIC
-480/// situations, where interrupts are "nested", in the sense that one may be interrupted,
-481/// then the interrupter can, ..., then the interrupter hands back control, ..., and finally
-482/// the original caller of this function regains control.
-483///
-484/// In this situation, we keep track of three counters `(read, written, claimed)`, with
-485/// invariants `read <= written <= claimed`. Each writer pessimistically gauges sufficient
-486/// capacity for its log by checking `claimed + size <= read + capacity`, accounting for the
-487/// wraparound. If so, the writer **atomically advances the claim counter**, and starts copying
-488/// its data in this newly claimed space. At the end, it is the duty of the "first" caller
-489/// to advance the `written` counter to the correct state.
-490#[allow(unused_unsafe, unused_variables)]
-491pub unsafe fn try_enqueue(
-492    delogger: impl Delogger,
-493    record: &log::Record,
-494) -> core::result::Result<(), ()> {
-495    #[cfg(any(
-496        feature = "max_level_off",
-497        all(not(debug_assertions), feature = "release_max_level_off")
-498    ))]
-499    {
-500        return Ok(());
-501    }
-502    #[cfg(not(any(
-503        feature = "max_level_off",
-504        all(not(debug_assertions), feature = "release_max_level_off")
-505    )))]
-506    {
-507        if record.level() > crate::log::max_level() {
-508            return Ok(());
-509        }
-510
-511        // keep track of how man logs were attempted
-512        delogger.attempts().fetch_add(1, Ordering::SeqCst);
-513
-514        if record.target() == "!" {
-515            // todo: possibly use separate immediate_flusher
-516            let input = delogger.render(record);
-517            let input = unsafe { core::str::from_utf8_unchecked(input) };
-518            Delogger::flush(&delogger, input);
-519            delogger.successes().fetch_add(1, Ordering::SeqCst);
-520            return Ok(());
-521        }
-522
-523        let capacity = delogger.capacity();
-524        let log = delogger.render(record);
-525        let size = log.len();
-526
-527        let previously_claimed = loop {
-528            let read = delogger.read().load(Ordering::SeqCst);
-529            let claimed = delogger.claimed().load(Ordering::SeqCst);
-530
-531            // figure out the corner cases for "wrap-around" at usize capacity
-532            if claimed + size > read + capacity {
-533                // not enough space, currently
-534                return Err(());
-535            }
-536
-537            // try to stake out our claim
-538            let previous = delogger.claimed().compare_exchange(
-539                claimed,
-540                claimed + size,
-541                Ordering::SeqCst,
-542                Ordering::SeqCst,
-543            );
-544
-545            // we were not interrupted, the region is now ours
-546            if previous == Ok(claimed) {
-547                break claimed;
-548            }
-549        };
-550
-551        // find out if we're the "first" and will need to update `written` at the end:
-552        let written = delogger.written().load(Ordering::SeqCst);
-553        let first: bool = written == previously_claimed;
-554
-555        // now copy our data - we can be interrupted here at anytime
-556        let destination = previously_claimed % capacity;
-557        let buffer = delogger.buffer();
-558        if destination + size < capacity {
-559            // can do a single copy
-560            unsafe {
-561                ptr::copy_nonoverlapping(log.as_ptr(), buffer.as_mut_ptr().add(destination), size)
-562            };
-563        } else {
-564            // need to split
-565            let split = capacity - destination;
-566            unsafe {
-567                ptr::copy_nonoverlapping(log.as_ptr(), buffer.as_mut_ptr().add(destination), split);
-568                ptr::copy_nonoverlapping(
-569                    log.as_ptr().add(split),
-570                    buffer.as_mut_ptr(),
-571                    size - split,
-572                );
-573            }
-574        }
-575
-576        if first {
-577            // update `written` to current `claimed` (which may be beyond our own claim)
-578            loop {
-579                let claimed = delogger.claimed().load(Ordering::SeqCst);
-580                delogger.written().store(claimed, Ordering::SeqCst);
-581                if claimed == delogger.claimed().load(Ordering::SeqCst) {
-582                    break;
-583                }
-584            }
-585        }
-586
-587        delogger.successes().fetch_add(1, Ordering::SeqCst);
-588        Ok(())
-589    }
-590}
+448        unsafe impl $crate::Delogger for $logger {
+449            fn buffer(&self) -> &'static mut [u8] {
+450                unsafe { &mut [] }
+451            }
+452
+453            fn flush(&self, logs: &str) {}
+454
+455            fn claimed(&self) -> &'static core::sync::atomic::AtomicUsize {
+456                use core::sync::atomic::AtomicUsize;
+457                static CLAIMED: AtomicUsize = AtomicUsize::new(0);
+458                &CLAIMED
+459            }
+460
+461            fn render(&self, record: &$crate::Record) -> &'static [u8] {
+462                &[]
+463            }
+464        }
+465    };
+466}
+467
+468/// The core "write to circular buffer" method. Marked unsafe to discourage use!
+469///
+470/// # Safety
+471/// Unfortunately exposed for all to see, as the `delog!` macro needs access to it to
+472/// implement the logger at call site. Hence marked as unsafe.
+473pub unsafe fn enqueue(delogger: impl Delogger, record: &log::Record) {
+474    crate::logger::try_enqueue(delogger, record).ok();
+475}
+476
+477/// The fallible "write to circular buffer" method. Marked unsafe to discourage use!
+478///
+479/// # Safety
+480/// Unfortunately exposed for all to see, as the `delog!` macro needs access to it to
+481/// implement the logger at call site. Hence marked as unsafe.
+482///
+483/// This implementation needs some HEAVY testing. It is unsound on PC, where the OS
+484/// can schedule threads in any manner, but assumed to be sound in ARM Cortex-M NVIC
+485/// situations, where interrupts are "nested", in the sense that one may be interrupted,
+486/// then the interrupter can, ..., then the interrupter hands back control, ..., and finally
+487/// the original caller of this function regains control.
+488///
+489/// In this situation, we keep track of three counters `(read, written, claimed)`, with
+490/// invariants `read <= written <= claimed`. Each writer pessimistically gauges sufficient
+491/// capacity for its log by checking `claimed + size <= read + capacity`, accounting for the
+492/// wraparound. If so, the writer **atomically advances the claim counter**, and starts copying
+493/// its data in this newly claimed space. At the end, it is the duty of the "first" caller
+494/// to advance the `written` counter to the correct state.
+495#[allow(unused_unsafe, unused_variables)]
+496pub unsafe fn try_enqueue(
+497    delogger: impl Delogger,
+498    record: &log::Record,
+499) -> core::result::Result<(), ()> {
+500    #[cfg(any(
+501        feature = "max_level_off",
+502        all(not(debug_assertions), feature = "release_max_level_off")
+503    ))]
+504    {
+505        return Ok(());
+506    }
+507    #[cfg(not(any(
+508        feature = "max_level_off",
+509        all(not(debug_assertions), feature = "release_max_level_off")
+510    )))]
+511    {
+512        if record.level() > crate::log::max_level() {
+513            return Ok(());
+514        }
+515
+516        // keep track of how man logs were attempted
+517        delogger.attempts().fetch_add(1, Ordering::SeqCst);
+518
+519        if record.target() == "!" {
+520            // todo: possibly use separate immediate_flusher
+521            let input = delogger.render(record);
+522            let input = unsafe { core::str::from_utf8_unchecked(input) };
+523            Delogger::flush(&delogger, input);
+524            delogger.successes().fetch_add(1, Ordering::SeqCst);
+525            return Ok(());
+526        }
+527
+528        let capacity = delogger.capacity();
+529        let log = delogger.render(record);
+530        let size = log.len();
+531
+532        let previously_claimed = loop {
+533            let read = delogger.read().load(Ordering::SeqCst);
+534            let claimed = delogger.claimed().load(Ordering::SeqCst);
+535
+536            // figure out the corner cases for "wrap-around" at usize capacity
+537            if claimed + size > read + capacity {
+538                // not enough space, currently
+539                return Err(());
+540            }
+541
+542            // try to stake out our claim
+543            let previous = delogger.claimed().compare_exchange(
+544                claimed,
+545                claimed + size,
+546                Ordering::SeqCst,
+547                Ordering::SeqCst,
+548            );
+549
+550            // we were not interrupted, the region is now ours
+551            if previous == Ok(claimed) {
+552                break claimed;
+553            }
+554        };
+555
+556        // find out if we're the "first" and will need to update `written` at the end:
+557        let written = delogger.written().load(Ordering::SeqCst);
+558        let first: bool = written == previously_claimed;
+559
+560        // now copy our data - we can be interrupted here at anytime
+561        let destination = previously_claimed % capacity;
+562        let buffer = delogger.buffer();
+563        if destination + size < capacity {
+564            // can do a single copy
+565            unsafe {
+566                ptr::copy_nonoverlapping(log.as_ptr(), buffer.as_mut_ptr().add(destination), size)
+567            };
+568        } else {
+569            // need to split
+570            let split = capacity - destination;
+571            unsafe {
+572                ptr::copy_nonoverlapping(log.as_ptr(), buffer.as_mut_ptr().add(destination), split);
+573                ptr::copy_nonoverlapping(
+574                    log.as_ptr().add(split),
+575                    buffer.as_mut_ptr(),
+576                    size - split,
+577                );
+578            }
+579        }
+580
+581        if first {
+582            // update `written` to current `claimed` (which may be beyond our own claim)
+583            loop {
+584                let claimed = delogger.claimed().load(Ordering::SeqCst);
+585                delogger.written().store(claimed, Ordering::SeqCst);
+586                if claimed == delogger.claimed().load(Ordering::SeqCst) {
+587                    break;
+588                }
+589            }
+590        }
 591
-592/// The core "read from circular buffer" method. Marked unsafe to discourage use!
-593///
-594/// # Safety
-595/// Unfortunately exposed for all to see, as the `delog!` macro needs access to it to
-596/// implement the logger at call site. Hence marked as unsafe.
-597#[allow(unused_unsafe)]
-598pub unsafe fn dequeue(delogger: impl Delogger, buf: &mut [u8]) -> &str {
-599    delogger.flushes().fetch_add(1, Ordering::SeqCst);
-600    // we control the inputs, so we know this is a valid string
-601    unsafe { core::str::from_utf8_unchecked(drain_as_bytes(delogger, buf)) }
-602}
-603
-604/// Copy out the contents of the `Logger` ring buffer into the given buffer,
-605/// updating `read` to make space for new log data
-606fn drain_as_bytes(delogger: impl Delogger, buf: &mut [u8]) -> &[u8] {
-607    unsafe {
-608        let read = delogger.read().load(Ordering::SeqCst);
-609        let written = delogger.written().load(Ordering::SeqCst);
-610        let p = delogger.buffer().as_ptr();
-611
-612        // early exit to hint the compiler that `n` is not `0`
-613        let capacity = delogger.buffer().len();
-614        if capacity == 0 {
-615            return &[];
-616        }
-617
-618        if written > read {
-619            // number of bytes to copy
-620            let available = cmp::min(buf.len(), written.wrapping_sub(read));
-621
-622            let r = read % capacity;
-623
-624            // NOTE `ptr::copy_nonoverlapping` instead of `copy_from_slice` to avoid panics
-625            if r + available > capacity {
-626                // two memcpy-s
-627                let mid = capacity - r;
-628                // buf[..mid].copy_from_slice(&buffer[r..]);
-629                ptr::copy_nonoverlapping(p.add(r), buf.as_mut_ptr(), mid);
-630                // buf[mid..mid + c].copy_from_slice(&buffer[..available - mid]);
-631                ptr::copy_nonoverlapping(p, buf.as_mut_ptr().add(mid), available - mid);
-632            } else {
-633                // single memcpy
-634                // buf[..c].copy_from_slice(&buffer[r..r + c]);
-635                ptr::copy_nonoverlapping(p.add(r), buf.as_mut_ptr(), available);
-636            }
-637
-638            delogger
-639                .read()
-640                .store(read.wrapping_add(available), Ordering::SeqCst);
-641
-642            // &buf[..c]
-643            buf.get_unchecked(..available)
-644        } else {
-645            &[]
-646        }
-647    }
-648}
\ No newline at end of file +592 delogger.successes().fetch_add(1, Ordering::SeqCst); +593 Ok(()) +594 } +595} +596 +597/// The core "read from circular buffer" method. Marked unsafe to discourage use! +598/// +599/// # Safety +600/// Unfortunately exposed for all to see, as the `delog!` macro needs access to it to +601/// implement the logger at call site. Hence marked as unsafe. +602#[allow(unused_unsafe)] +603pub unsafe fn dequeue(delogger: impl Delogger, buf: &mut [u8]) -> &str { +604 delogger.flushes().fetch_add(1, Ordering::SeqCst); +605 // we control the inputs, so we know this is a valid string +606 unsafe { core::str::from_utf8_unchecked(drain_as_bytes(delogger, buf)) } +607} +608 +609/// Copy out the contents of the `Logger` ring buffer into the given buffer, +610/// updating `read` to make space for new log data +611fn drain_as_bytes(delogger: impl Delogger, buf: &mut [u8]) -> &[u8] { +612 unsafe { +613 let read = delogger.read().load(Ordering::SeqCst); +614 let written = delogger.written().load(Ordering::SeqCst); +615 let p = delogger.buffer().as_ptr(); +616 +617 // early exit to hint the compiler that `n` is not `0` +618 let capacity = delogger.buffer().len(); +619 if capacity == 0 { +620 return &[]; +621 } +622 +623 if written > read { +624 // number of bytes to copy +625 let available = cmp::min(buf.len(), written.wrapping_sub(read)); +626 +627 let r = read % capacity; +628 +629 // NOTE `ptr::copy_nonoverlapping` instead of `copy_from_slice` to avoid panics +630 if r + available > capacity { +631 // two memcpy-s +632 let mid = capacity - r; +633 // buf[..mid].copy_from_slice(&buffer[r..]); +634 ptr::copy_nonoverlapping(p.add(r), buf.as_mut_ptr(), mid); +635 // buf[mid..mid + c].copy_from_slice(&buffer[..available - mid]); +636 ptr::copy_nonoverlapping(p, buf.as_mut_ptr().add(mid), available - mid); +637 } else { +638 // single memcpy +639 // buf[..c].copy_from_slice(&buffer[r..r + c]); +640 ptr::copy_nonoverlapping(p.add(r), buf.as_mut_ptr(), available); +641 } +642 +643 delogger +644 .read() +645 .store(read.wrapping_add(available), Ordering::SeqCst); +646 +647 // &buf[..c] +648 buf.get_unchecked(..available) +649 } else { +650 &[] +651 } +652 } +653}
\ No newline at end of file diff --git a/src/delog/macros.rs.html b/src/delog/macros.rs.html index 0e3c886..616d9ec 100644 --- a/src/delog/macros.rs.html +++ b/src/delog/macros.rs.html @@ -1,4 +1,4 @@ -macros.rs - source

delog/
macros.rs

1/// Fallible (ungated) version of `log!`.
+macros.rs - source

delog/
macros.rs

1/// Fallible (ungated) version of `log!`.
 2#[macro_export]
 3#[doc(hidden)]
 4#[cfg(not(feature = "std-log"))]
diff --git a/src/delog/render.rs.html b/src/delog/render.rs.html
index d22a369..4617bf3 100644
--- a/src/delog/render.rs.html
+++ b/src/delog/render.rs.html
@@ -1,4 +1,4 @@
-render.rs - source

delog/
render.rs

1//! The default, minimal renderer, and some helper functions.
+render.rs - source

delog/
render.rs

1//! The default, minimal renderer, and some helper functions.
 2
 3use core::{cmp, fmt};
 4
@@ -16,121 +16,101 @@
 16
 17/// Render record, based on feature flags.
 18pub fn render_record<'a>(buf: &'a mut [u8], record: &log::Record) -> &'a [u8] {
-19    if cfg!(feature = "prefix-level") {
-20        match (record.file(), record.line()) {
-21            (Some(file), Some(line)) => render_arguments(
-22                buf,
-23                format_args!(
-24                    "{}|{}|{}:{}: {}",
-25                    record.level(),
-26                    record.target(),
-27                    file,
-28                    line,
-29                    record.args()
-30                ),
-31            ),
-32            _ => render_arguments(
-33                buf,
-34                format_args!("{}|{}: {}", record.level(), record.target(), record.args()),
-35            ),
-36        }
-37    } else {
-38        render_arguments(buf, *record.args())
-39    }
-40}
-41
-42// I don't get it, why isn't this implemented already?
-43struct WriteTo<'a> {
-44    buffer: &'a mut [u8],
-45    // on write error (i.e. not enough space in buffer) this grows beyond
-46    // `buffer.len()`.
-47    used: usize,
-48}
-49
-50impl<'a> WriteTo<'a> {
-51    pub fn new(buffer: &'a mut [u8]) -> Self {
-52        WriteTo { buffer, used: 0 }
-53    }
-54
-55    pub fn endl(&mut self) {
-56        if self.used < self.buffer.len() {
-57            self.buffer[self.used] = b'\n';
-58            self.used += 1;
-59        }
-60    }
-61}
+19    render_arguments(buf, *record.args())
+20}
+21
+22// I don't get it, why isn't this implemented already?
+23struct WriteTo<'a> {
+24    buffer: &'a mut [u8],
+25    // on write error (i.e. not enough space in buffer) this grows beyond
+26    // `buffer.len()`.
+27    used: usize,
+28}
+29
+30impl<'a> WriteTo<'a> {
+31    pub fn new(buffer: &'a mut [u8]) -> Self {
+32        WriteTo { buffer, used: 0 }
+33    }
+34
+35    pub fn endl(&mut self) {
+36        if self.used < self.buffer.len() {
+37            self.buffer[self.used] = b'\n';
+38            self.used += 1;
+39        }
+40    }
+41}
+42
+43impl<'a> core::fmt::Write for WriteTo<'a> {
+44    fn write_str(&mut self, s: &str) -> fmt::Result {
+45        if self.used > self.buffer.len() {
+46            return Err(fmt::Error);
+47        }
+48        let remaining_buf = &mut self.buffer[self.used..];
+49        let raw_s = s.as_bytes();
+50        let write_num = cmp::min(raw_s.len(), remaining_buf.len());
+51        remaining_buf[..write_num].copy_from_slice(&raw_s[..write_num]);
+52        self.used += write_num;
+53        if write_num < raw_s.len() {
+54            Err(fmt::Error)
+55        } else {
+56            Ok(())
+57        }
+58    }
+59}
+60
+61use crate::Renderer;
 62
-63impl<'a> core::fmt::Write for WriteTo<'a> {
-64    fn write_str(&mut self, s: &str) -> fmt::Result {
-65        if self.used > self.buffer.len() {
-66            return Err(fmt::Error);
-67        }
-68        let remaining_buf = &mut self.buffer[self.used..];
-69        let raw_s = s.as_bytes();
-70        let write_num = cmp::min(raw_s.len(), remaining_buf.len());
-71        remaining_buf[..write_num].copy_from_slice(&raw_s[..write_num]);
-72        self.used += write_num;
-73        if write_num < raw_s.len() {
-74            Err(fmt::Error)
-75        } else {
-76            Ok(())
-77        }
-78    }
-79}
-80
-81use crate::Renderer;
-82
-83#[derive(Clone, Copy)]
-84/// Renders just the `record.args()`.
-85pub struct DefaultRenderer {}
-86
-87/// The default, minimal renderer.
-88pub fn default() -> &'static DefaultRenderer {
-89    static RENDERER: DefaultRenderer = DefaultRenderer {};
-90    &RENDERER
-91}
-92
-93impl Renderer for DefaultRenderer {
-94    fn render<'a>(&self, buf: &'a mut [u8], record: &log::Record) -> &'a [u8] {
-95        render_arguments(buf, *record.args())
-96    }
-97}
-98
-99unsafe impl Send for DefaultRenderer {}
-100unsafe impl Sync for DefaultRenderer {}
-101
-102#[derive(Clone, Copy)]
-103/// Renders the `record.args()`, prefixed by level, target, and file, line if they are some.
-104pub struct RipgrepRenderer {}
-105
-106impl Renderer for RipgrepRenderer {
-107    fn render<'a>(&self, buf: &'a mut [u8], record: &log::Record) -> &'a [u8] {
-108        match (record.file(), record.line()) {
-109            (Some(file), Some(line)) => render_arguments(
-110                buf,
-111                format_args!(
-112                    "{}|{}|{}:{}: {}",
-113                    record.level(),
-114                    record.target(),
-115                    file,
-116                    line,
-117                    record.args()
-118                ),
-119            ),
-120            (Some(file), None) => render_arguments(
-121                buf,
-122                format_args!(
-123                    "{}|{}|{}: {}",
-124                    record.level(),
-125                    record.target(),
-126                    file,
-127                    record.args()
-128                ),
-129            ),
-130            _ => render_arguments(
-131                buf,
-132                format_args!("{}|{}: {}", record.level(), record.target(), record.args()),
-133            ),
-134        }
-135    }
-136}
\ No newline at end of file +63#[derive(Clone, Copy)] +64/// Renders just the `record.args()`. +65pub struct DefaultRenderer {} +66 +67/// The default, minimal renderer. +68pub fn default() -> &'static DefaultRenderer { +69 static RENDERER: DefaultRenderer = DefaultRenderer {}; +70 &RENDERER +71} +72 +73impl Renderer for DefaultRenderer { +74 fn render<'a>(&self, buf: &'a mut [u8], record: &log::Record) -> &'a [u8] { +75 render_arguments(buf, *record.args()) +76 } +77} +78 +79unsafe impl Send for DefaultRenderer {} +80unsafe impl Sync for DefaultRenderer {} +81 +82#[derive(Clone, Copy)] +83/// Renders the `record.args()`, prefixed by level, target, and file, line if they are some. +84pub struct RipgrepRenderer {} +85 +86impl Renderer for RipgrepRenderer { +87 fn render<'a>(&self, buf: &'a mut [u8], record: &log::Record) -> &'a [u8] { +88 match (record.file(), record.line()) { +89 (Some(file), Some(line)) => render_arguments( +90 buf, +91 format_args!( +92 "{}|{}|{}:{}: {}", +93 record.level(), +94 record.target(), +95 file, +96 line, +97 record.args() +98 ), +99 ), +100 (Some(file), None) => render_arguments( +101 buf, +102 format_args!( +103 "{}|{}|{}: {}", +104 record.level(), +105 record.target(), +106 file, +107 record.args() +108 ), +109 ), +110 _ => render_arguments( +111 buf, +112 format_args!("{}|{}: {}", record.level(), record.target(), record.args()), +113 ), +114 } +115 } +116}
\ No newline at end of file diff --git a/src/log/__private_api.rs.html b/src/log/__private_api.rs.html index d96d4a0..954c089 100644 --- a/src/log/__private_api.rs.html +++ b/src/log/__private_api.rs.html @@ -1,4 +1,4 @@ -__private_api.rs - source

log/
__private_api.rs

1//! WARNING: this is not part of the crate's public API and is subject to change at any time
+__private_api.rs - source

log/
__private_api.rs

1//! WARNING: this is not part of the crate's public API and is subject to change at any time
 2
 3use self::sealed::KVs;
 4use crate::{logger, Level, Log, Metadata, Record};
diff --git a/src/log/lib.rs.html b/src/log/lib.rs.html
index 8cfdf01..252f67f 100644
--- a/src/log/lib.rs.html
+++ b/src/log/lib.rs.html
@@ -1,4 +1,4 @@
-lib.rs - source

log/
lib.rs

1// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+lib.rs - source

log/
lib.rs

1// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
 2// file at the top-level directory of this distribution and at
 3// http://rust-lang.org/COPYRIGHT.
 4//
@@ -344,7 +344,7 @@
 344#![doc(
 345    html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
 346    html_favicon_url = "https://www.rust-lang.org/favicon.ico",
-347    html_root_url = "https://docs.rs/log/0.4.27"
+347    html_root_url = "https://docs.rs/log/0.4.28"
 348)]
 349#![warn(missing_docs)]
 350#![deny(missing_debug_implementations, unconditional_recursion)]
@@ -431,1456 +431,1575 @@
 431    fn store(&self, val: usize, _order: Ordering) {
 432        self.v.set(val)
 433    }
-434
-435    #[cfg(target_has_atomic = "ptr")]
-436    fn compare_exchange(
-437        &self,
-438        current: usize,
-439        new: usize,
-440        _success: Ordering,
-441        _failure: Ordering,
-442    ) -> Result<usize, usize> {
-443        let prev = self.v.get();
-444        if current == prev {
-445            self.v.set(new);
-446        }
-447        Ok(prev)
-448    }
-449}
-450
-451// Any platform without atomics is unlikely to have multiple cores, so
-452// writing via Cell will not be a race condition.
-453#[cfg(not(target_has_atomic = "ptr"))]
-454unsafe impl Sync for AtomicUsize {}
+434}
+435
+436// Any platform without atomics is unlikely to have multiple cores, so
+437// writing via Cell will not be a race condition.
+438#[cfg(not(target_has_atomic = "ptr"))]
+439unsafe impl Sync for AtomicUsize {}
+440
+441// The LOGGER static holds a pointer to the global logger. It is protected by
+442// the STATE static which determines whether LOGGER has been initialized yet.
+443static mut LOGGER: &dyn Log = &NopLogger;
+444
+445static STATE: AtomicUsize = AtomicUsize::new(0);
+446
+447// There are three different states that we care about: the logger's
+448// uninitialized, the logger's initializing (set_logger's been called but
+449// LOGGER hasn't actually been set yet), or the logger's active.
+450const UNINITIALIZED: usize = 0;
+451const INITIALIZING: usize = 1;
+452const INITIALIZED: usize = 2;
+453
+454static MAX_LOG_LEVEL_FILTER: AtomicUsize = AtomicUsize::new(0);
 455
-456// The LOGGER static holds a pointer to the global logger. It is protected by
-457// the STATE static which determines whether LOGGER has been initialized yet.
-458static mut LOGGER: &dyn Log = &NopLogger;
-459
-460static STATE: AtomicUsize = AtomicUsize::new(0);
-461
-462// There are three different states that we care about: the logger's
-463// uninitialized, the logger's initializing (set_logger's been called but
-464// LOGGER hasn't actually been set yet), or the logger's active.
-465const UNINITIALIZED: usize = 0;
-466const INITIALIZING: usize = 1;
-467const INITIALIZED: usize = 2;
-468
-469static MAX_LOG_LEVEL_FILTER: AtomicUsize = AtomicUsize::new(0);
-470
-471static LOG_LEVEL_NAMES: [&str; 6] = ["OFF", "ERROR", "WARN", "INFO", "DEBUG", "TRACE"];
-472
-473static SET_LOGGER_ERROR: &str = "attempted to set a logger after the logging system \
-474                                 was already initialized";
-475static LEVEL_PARSE_ERROR: &str =
-476    "attempted to convert a string that doesn't match an existing log level";
-477
-478/// An enum representing the available verbosity levels of the logger.
-479///
-480/// Typical usage includes: checking if a certain `Level` is enabled with
-481/// [`log_enabled!`](macro.log_enabled.html), specifying the `Level` of
-482/// [`log!`](macro.log.html), and comparing a `Level` directly to a
-483/// [`LevelFilter`](enum.LevelFilter.html).
-484#[repr(usize)]
-485#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
-486pub enum Level {
-487    /// The "error" level.
+456static LOG_LEVEL_NAMES: [&str; 6] = ["OFF", "ERROR", "WARN", "INFO", "DEBUG", "TRACE"];
+457
+458static SET_LOGGER_ERROR: &str = "attempted to set a logger after the logging system \
+459                                 was already initialized";
+460static LEVEL_PARSE_ERROR: &str =
+461    "attempted to convert a string that doesn't match an existing log level";
+462
+463/// An enum representing the available verbosity levels of the logger.
+464///
+465/// Typical usage includes: checking if a certain `Level` is enabled with
+466/// [`log_enabled!`](macro.log_enabled.html), specifying the `Level` of
+467/// [`log!`](macro.log.html), and comparing a `Level` directly to a
+468/// [`LevelFilter`](enum.LevelFilter.html).
+469#[repr(usize)]
+470#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
+471pub enum Level {
+472    /// The "error" level.
+473    ///
+474    /// Designates very serious errors.
+475    // This way these line up with the discriminants for LevelFilter below
+476    // This works because Rust treats field-less enums the same way as C does:
+477    // https://doc.rust-lang.org/reference/items/enumerations.html#custom-discriminant-values-for-field-less-enumerations
+478    Error = 1,
+479    /// The "warn" level.
+480    ///
+481    /// Designates hazardous situations.
+482    Warn,
+483    /// The "info" level.
+484    ///
+485    /// Designates useful information.
+486    Info,
+487    /// The "debug" level.
 488    ///
-489    /// Designates very serious errors.
-490    // This way these line up with the discriminants for LevelFilter below
-491    // This works because Rust treats field-less enums the same way as C does:
-492    // https://doc.rust-lang.org/reference/items/enumerations.html#custom-discriminant-values-for-field-less-enumerations
-493    Error = 1,
-494    /// The "warn" level.
-495    ///
-496    /// Designates hazardous situations.
-497    Warn,
-498    /// The "info" level.
-499    ///
-500    /// Designates useful information.
-501    Info,
-502    /// The "debug" level.
-503    ///
-504    /// Designates lower priority information.
-505    Debug,
-506    /// The "trace" level.
-507    ///
-508    /// Designates very low priority, often extremely verbose, information.
-509    Trace,
-510}
-511
-512impl PartialEq<LevelFilter> for Level {
-513    #[inline]
-514    fn eq(&self, other: &LevelFilter) -> bool {
-515        *self as usize == *other as usize
-516    }
-517}
-518
-519impl PartialOrd<LevelFilter> for Level {
-520    #[inline]
-521    fn partial_cmp(&self, other: &LevelFilter) -> Option<cmp::Ordering> {
-522        Some((*self as usize).cmp(&(*other as usize)))
-523    }
-524}
-525
-526impl FromStr for Level {
-527    type Err = ParseLevelError;
-528    fn from_str(level: &str) -> Result<Level, Self::Err> {
-529        LOG_LEVEL_NAMES
-530            .iter()
-531            .position(|&name| name.eq_ignore_ascii_case(level))
-532            .into_iter()
-533            .filter(|&idx| idx != 0)
-534            .map(|idx| Level::from_usize(idx).unwrap())
-535            .next()
-536            .ok_or(ParseLevelError(()))
-537    }
-538}
-539
-540impl fmt::Display for Level {
-541    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
-542        fmt.pad(self.as_str())
-543    }
-544}
-545
-546impl Level {
-547    fn from_usize(u: usize) -> Option<Level> {
-548        match u {
-549            1 => Some(Level::Error),
-550            2 => Some(Level::Warn),
-551            3 => Some(Level::Info),
-552            4 => Some(Level::Debug),
-553            5 => Some(Level::Trace),
-554            _ => None,
-555        }
-556    }
-557
-558    /// Returns the most verbose logging level.
-559    #[inline]
-560    pub fn max() -> Level {
-561        Level::Trace
-562    }
-563
-564    /// Converts the `Level` to the equivalent `LevelFilter`.
-565    #[inline]
-566    pub fn to_level_filter(&self) -> LevelFilter {
-567        LevelFilter::from_usize(*self as usize).unwrap()
-568    }
-569
-570    /// Returns the string representation of the `Level`.
-571    ///
-572    /// This returns the same string as the `fmt::Display` implementation.
-573    pub fn as_str(&self) -> &'static str {
-574        LOG_LEVEL_NAMES[*self as usize]
-575    }
-576
-577    /// Iterate through all supported logging levels.
-578    ///
-579    /// The order of iteration is from more severe to less severe log messages.
-580    ///
-581    /// # Examples
-582    ///
-583    /// ```
-584    /// use log::Level;
-585    ///
-586    /// let mut levels = Level::iter();
-587    ///
-588    /// assert_eq!(Some(Level::Error), levels.next());
-589    /// assert_eq!(Some(Level::Trace), levels.last());
-590    /// ```
-591    pub fn iter() -> impl Iterator<Item = Self> {
-592        (1..6).map(|i| Self::from_usize(i).unwrap())
-593    }
-594}
-595
-596/// An enum representing the available verbosity level filters of the logger.
-597///
-598/// A `LevelFilter` may be compared directly to a [`Level`]. Use this type
-599/// to get and set the maximum log level with [`max_level()`] and [`set_max_level`].
-600///
-601/// [`Level`]: enum.Level.html
-602/// [`max_level()`]: fn.max_level.html
-603/// [`set_max_level`]: fn.set_max_level.html
-604#[repr(usize)]
-605#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
-606pub enum LevelFilter {
-607    /// A level lower than all log levels.
-608    Off,
-609    /// Corresponds to the `Error` log level.
-610    Error,
-611    /// Corresponds to the `Warn` log level.
-612    Warn,
-613    /// Corresponds to the `Info` log level.
-614    Info,
-615    /// Corresponds to the `Debug` log level.
-616    Debug,
-617    /// Corresponds to the `Trace` log level.
-618    Trace,
-619}
-620
-621impl PartialEq<Level> for LevelFilter {
-622    #[inline]
-623    fn eq(&self, other: &Level) -> bool {
-624        other.eq(self)
-625    }
-626}
-627
-628impl PartialOrd<Level> for LevelFilter {
-629    #[inline]
-630    fn partial_cmp(&self, other: &Level) -> Option<cmp::Ordering> {
-631        Some((*self as usize).cmp(&(*other as usize)))
-632    }
-633}
-634
-635impl FromStr for LevelFilter {
-636    type Err = ParseLevelError;
-637    fn from_str(level: &str) -> Result<LevelFilter, Self::Err> {
-638        LOG_LEVEL_NAMES
-639            .iter()
-640            .position(|&name| name.eq_ignore_ascii_case(level))
-641            .map(|p| LevelFilter::from_usize(p).unwrap())
-642            .ok_or(ParseLevelError(()))
-643    }
-644}
-645
-646impl fmt::Display for LevelFilter {
-647    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
-648        fmt.pad(self.as_str())
-649    }
-650}
-651
-652impl LevelFilter {
-653    fn from_usize(u: usize) -> Option<LevelFilter> {
-654        match u {
-655            0 => Some(LevelFilter::Off),
-656            1 => Some(LevelFilter::Error),
-657            2 => Some(LevelFilter::Warn),
-658            3 => Some(LevelFilter::Info),
-659            4 => Some(LevelFilter::Debug),
-660            5 => Some(LevelFilter::Trace),
-661            _ => None,
-662        }
-663    }
-664
-665    /// Returns the most verbose logging level filter.
-666    #[inline]
-667    pub fn max() -> LevelFilter {
-668        LevelFilter::Trace
-669    }
-670
-671    /// Converts `self` to the equivalent `Level`.
-672    ///
-673    /// Returns `None` if `self` is `LevelFilter::Off`.
-674    #[inline]
-675    pub fn to_level(&self) -> Option<Level> {
-676        Level::from_usize(*self as usize)
-677    }
+489    /// Designates lower priority information.
+490    Debug,
+491    /// The "trace" level.
+492    ///
+493    /// Designates very low priority, often extremely verbose, information.
+494    Trace,
+495}
+496
+497impl PartialEq<LevelFilter> for Level {
+498    #[inline]
+499    fn eq(&self, other: &LevelFilter) -> bool {
+500        *self as usize == *other as usize
+501    }
+502}
+503
+504impl PartialOrd<LevelFilter> for Level {
+505    #[inline]
+506    fn partial_cmp(&self, other: &LevelFilter) -> Option<cmp::Ordering> {
+507        Some((*self as usize).cmp(&(*other as usize)))
+508    }
+509}
+510
+511impl FromStr for Level {
+512    type Err = ParseLevelError;
+513    fn from_str(level: &str) -> Result<Level, Self::Err> {
+514        LOG_LEVEL_NAMES
+515            .iter()
+516            .position(|&name| name.eq_ignore_ascii_case(level))
+517            .into_iter()
+518            .filter(|&idx| idx != 0)
+519            .map(|idx| Level::from_usize(idx).unwrap())
+520            .next()
+521            .ok_or(ParseLevelError(()))
+522    }
+523}
+524
+525impl fmt::Display for Level {
+526    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
+527        fmt.pad(self.as_str())
+528    }
+529}
+530
+531impl Level {
+532    fn from_usize(u: usize) -> Option<Level> {
+533        match u {
+534            1 => Some(Level::Error),
+535            2 => Some(Level::Warn),
+536            3 => Some(Level::Info),
+537            4 => Some(Level::Debug),
+538            5 => Some(Level::Trace),
+539            _ => None,
+540        }
+541    }
+542
+543    /// Returns the most verbose logging level.
+544    #[inline]
+545    pub fn max() -> Level {
+546        Level::Trace
+547    }
+548
+549    /// Converts the `Level` to the equivalent `LevelFilter`.
+550    #[inline]
+551    pub fn to_level_filter(&self) -> LevelFilter {
+552        LevelFilter::from_usize(*self as usize).unwrap()
+553    }
+554
+555    /// Returns the string representation of the `Level`.
+556    ///
+557    /// This returns the same string as the `fmt::Display` implementation.
+558    pub fn as_str(&self) -> &'static str {
+559        LOG_LEVEL_NAMES[*self as usize]
+560    }
+561
+562    /// Iterate through all supported logging levels.
+563    ///
+564    /// The order of iteration is from more severe to less severe log messages.
+565    ///
+566    /// # Examples
+567    ///
+568    /// ```
+569    /// use log::Level;
+570    ///
+571    /// let mut levels = Level::iter();
+572    ///
+573    /// assert_eq!(Some(Level::Error), levels.next());
+574    /// assert_eq!(Some(Level::Trace), levels.last());
+575    /// ```
+576    pub fn iter() -> impl Iterator<Item = Self> {
+577        (1..6).map(|i| Self::from_usize(i).unwrap())
+578    }
+579
+580    /// Get the next-highest `Level` from this one.
+581    ///
+582    /// If the current `Level` is at the highest level, the returned `Level` will be the same as the
+583    /// current one.
+584    ///
+585    /// # Examples
+586    ///
+587    /// ```
+588    /// use log::Level;
+589    ///
+590    /// let level = Level::Info;
+591    ///
+592    /// assert_eq!(Level::Debug, level.increment_severity());
+593    /// assert_eq!(Level::Trace, level.increment_severity().increment_severity());
+594    /// assert_eq!(Level::Trace, level.increment_severity().increment_severity().increment_severity()); // max level
+595    /// ```
+596    pub fn increment_severity(&self) -> Self {
+597        let current = *self as usize;
+598        Self::from_usize(current + 1).unwrap_or(*self)
+599    }
+600
+601    /// Get the next-lowest `Level` from this one.
+602    ///
+603    /// If the current `Level` is at the lowest level, the returned `Level` will be the same as the
+604    /// current one.
+605    ///
+606    /// # Examples
+607    ///
+608    /// ```
+609    /// use log::Level;
+610    ///
+611    /// let level = Level::Info;
+612    ///
+613    /// assert_eq!(Level::Warn, level.decrement_severity());
+614    /// assert_eq!(Level::Error, level.decrement_severity().decrement_severity());
+615    /// assert_eq!(Level::Error, level.decrement_severity().decrement_severity().decrement_severity()); // min level
+616    /// ```
+617    pub fn decrement_severity(&self) -> Self {
+618        let current = *self as usize;
+619        Self::from_usize(current.saturating_sub(1)).unwrap_or(*self)
+620    }
+621}
+622
+623/// An enum representing the available verbosity level filters of the logger.
+624///
+625/// A `LevelFilter` may be compared directly to a [`Level`]. Use this type
+626/// to get and set the maximum log level with [`max_level()`] and [`set_max_level`].
+627///
+628/// [`Level`]: enum.Level.html
+629/// [`max_level()`]: fn.max_level.html
+630/// [`set_max_level`]: fn.set_max_level.html
+631#[repr(usize)]
+632#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
+633pub enum LevelFilter {
+634    /// A level lower than all log levels.
+635    Off,
+636    /// Corresponds to the `Error` log level.
+637    Error,
+638    /// Corresponds to the `Warn` log level.
+639    Warn,
+640    /// Corresponds to the `Info` log level.
+641    Info,
+642    /// Corresponds to the `Debug` log level.
+643    Debug,
+644    /// Corresponds to the `Trace` log level.
+645    Trace,
+646}
+647
+648impl PartialEq<Level> for LevelFilter {
+649    #[inline]
+650    fn eq(&self, other: &Level) -> bool {
+651        other.eq(self)
+652    }
+653}
+654
+655impl PartialOrd<Level> for LevelFilter {
+656    #[inline]
+657    fn partial_cmp(&self, other: &Level) -> Option<cmp::Ordering> {
+658        Some((*self as usize).cmp(&(*other as usize)))
+659    }
+660}
+661
+662impl FromStr for LevelFilter {
+663    type Err = ParseLevelError;
+664    fn from_str(level: &str) -> Result<LevelFilter, Self::Err> {
+665        LOG_LEVEL_NAMES
+666            .iter()
+667            .position(|&name| name.eq_ignore_ascii_case(level))
+668            .map(|p| LevelFilter::from_usize(p).unwrap())
+669            .ok_or(ParseLevelError(()))
+670    }
+671}
+672
+673impl fmt::Display for LevelFilter {
+674    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
+675        fmt.pad(self.as_str())
+676    }
+677}
 678
-679    /// Returns the string representation of the `LevelFilter`.
-680    ///
-681    /// This returns the same string as the `fmt::Display` implementation.
-682    pub fn as_str(&self) -> &'static str {
-683        LOG_LEVEL_NAMES[*self as usize]
-684    }
-685
-686    /// Iterate through all supported filtering levels.
-687    ///
-688    /// The order of iteration is from less to more verbose filtering.
-689    ///
-690    /// # Examples
-691    ///
-692    /// ```
-693    /// use log::LevelFilter;
-694    ///
-695    /// let mut levels = LevelFilter::iter();
-696    ///
-697    /// assert_eq!(Some(LevelFilter::Off), levels.next());
-698    /// assert_eq!(Some(LevelFilter::Trace), levels.last());
-699    /// ```
-700    pub fn iter() -> impl Iterator<Item = Self> {
-701        (0..6).map(|i| Self::from_usize(i).unwrap())
-702    }
-703}
-704
-705#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
-706enum MaybeStaticStr<'a> {
-707    Static(&'static str),
-708    Borrowed(&'a str),
-709}
-710
-711impl<'a> MaybeStaticStr<'a> {
-712    #[inline]
-713    fn get(&self) -> &'a str {
-714        match *self {
-715            MaybeStaticStr::Static(s) => s,
-716            MaybeStaticStr::Borrowed(s) => s,
-717        }
-718    }
-719}
-720
-721/// The "payload" of a log message.
-722///
-723/// # Use
-724///
-725/// `Record` structures are passed as parameters to the [`log`][method.log]
-726/// method of the [`Log`] trait. Logger implementors manipulate these
-727/// structures in order to display log messages. `Record`s are automatically
-728/// created by the [`log!`] macro and so are not seen by log users.
-729///
-730/// Note that the [`level()`] and [`target()`] accessors are equivalent to
-731/// `self.metadata().level()` and `self.metadata().target()` respectively.
-732/// These methods are provided as a convenience for users of this structure.
-733///
-734/// # Example
-735///
-736/// The following example shows a simple logger that displays the level,
-737/// module path, and message of any `Record` that is passed to it.
-738///
-739/// ```
-740/// struct SimpleLogger;
-741///
-742/// impl log::Log for SimpleLogger {
-743///    fn enabled(&self, _metadata: &log::Metadata) -> bool {
-744///        true
-745///    }
-746///
-747///    fn log(&self, record: &log::Record) {
-748///        if !self.enabled(record.metadata()) {
-749///            return;
-750///        }
-751///
-752///        println!("{}:{} -- {}",
-753///                 record.level(),
-754///                 record.target(),
-755///                 record.args());
-756///    }
-757///    fn flush(&self) {}
-758/// }
-759/// ```
-760///
-761/// [method.log]: trait.Log.html#tymethod.log
-762/// [`Log`]: trait.Log.html
-763/// [`log!`]: macro.log.html
-764/// [`level()`]: struct.Record.html#method.level
-765/// [`target()`]: struct.Record.html#method.target
-766#[derive(Clone, Debug)]
-767pub struct Record<'a> {
-768    metadata: Metadata<'a>,
-769    args: fmt::Arguments<'a>,
-770    module_path: Option<MaybeStaticStr<'a>>,
-771    file: Option<MaybeStaticStr<'a>>,
-772    line: Option<u32>,
-773    #[cfg(feature = "kv")]
-774    key_values: KeyValues<'a>,
-775}
-776
-777// This wrapper type is only needed so we can
-778// `#[derive(Debug)]` on `Record`. It also
-779// provides a useful `Debug` implementation for
-780// the underlying `Source`.
-781#[cfg(feature = "kv")]
-782#[derive(Clone)]
-783struct KeyValues<'a>(&'a dyn kv::Source);
-784
-785#[cfg(feature = "kv")]
-786impl<'a> fmt::Debug for KeyValues<'a> {
-787    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-788        let mut visitor = f.debug_map();
-789        self.0.visit(&mut visitor).map_err(|_| fmt::Error)?;
-790        visitor.finish()
-791    }
-792}
-793
-794impl<'a> Record<'a> {
-795    /// Returns a new builder.
-796    #[inline]
-797    pub fn builder() -> RecordBuilder<'a> {
-798        RecordBuilder::new()
-799    }
-800
-801    /// The message body.
-802    #[inline]
-803    pub fn args(&self) -> &fmt::Arguments<'a> {
-804        &self.args
-805    }
-806
-807    /// Metadata about the log directive.
-808    #[inline]
-809    pub fn metadata(&self) -> &Metadata<'a> {
-810        &self.metadata
-811    }
-812
-813    /// The verbosity level of the message.
-814    #[inline]
-815    pub fn level(&self) -> Level {
-816        self.metadata.level()
-817    }
-818
-819    /// The name of the target of the directive.
-820    #[inline]
-821    pub fn target(&self) -> &'a str {
-822        self.metadata.target()
-823    }
-824
-825    /// The module path of the message.
-826    #[inline]
-827    pub fn module_path(&self) -> Option<&'a str> {
-828        self.module_path.map(|s| s.get())
-829    }
-830
-831    /// The module path of the message, if it is a `'static` string.
-832    #[inline]
-833    pub fn module_path_static(&self) -> Option<&'static str> {
-834        match self.module_path {
-835            Some(MaybeStaticStr::Static(s)) => Some(s),
-836            _ => None,
-837        }
-838    }
-839
-840    /// The source file containing the message.
-841    #[inline]
-842    pub fn file(&self) -> Option<&'a str> {
-843        self.file.map(|s| s.get())
-844    }
-845
-846    /// The source file containing the message, if it is a `'static` string.
-847    #[inline]
-848    pub fn file_static(&self) -> Option<&'static str> {
-849        match self.file {
-850            Some(MaybeStaticStr::Static(s)) => Some(s),
-851            _ => None,
-852        }
-853    }
+679impl LevelFilter {
+680    fn from_usize(u: usize) -> Option<LevelFilter> {
+681        match u {
+682            0 => Some(LevelFilter::Off),
+683            1 => Some(LevelFilter::Error),
+684            2 => Some(LevelFilter::Warn),
+685            3 => Some(LevelFilter::Info),
+686            4 => Some(LevelFilter::Debug),
+687            5 => Some(LevelFilter::Trace),
+688            _ => None,
+689        }
+690    }
+691
+692    /// Returns the most verbose logging level filter.
+693    #[inline]
+694    pub fn max() -> LevelFilter {
+695        LevelFilter::Trace
+696    }
+697
+698    /// Converts `self` to the equivalent `Level`.
+699    ///
+700    /// Returns `None` if `self` is `LevelFilter::Off`.
+701    #[inline]
+702    pub fn to_level(&self) -> Option<Level> {
+703        Level::from_usize(*self as usize)
+704    }
+705
+706    /// Returns the string representation of the `LevelFilter`.
+707    ///
+708    /// This returns the same string as the `fmt::Display` implementation.
+709    pub fn as_str(&self) -> &'static str {
+710        LOG_LEVEL_NAMES[*self as usize]
+711    }
+712
+713    /// Iterate through all supported filtering levels.
+714    ///
+715    /// The order of iteration is from less to more verbose filtering.
+716    ///
+717    /// # Examples
+718    ///
+719    /// ```
+720    /// use log::LevelFilter;
+721    ///
+722    /// let mut levels = LevelFilter::iter();
+723    ///
+724    /// assert_eq!(Some(LevelFilter::Off), levels.next());
+725    /// assert_eq!(Some(LevelFilter::Trace), levels.last());
+726    /// ```
+727    pub fn iter() -> impl Iterator<Item = Self> {
+728        (0..6).map(|i| Self::from_usize(i).unwrap())
+729    }
+730
+731    /// Get the next-highest `LevelFilter` from this one.
+732    ///
+733    /// If the current `LevelFilter` is at the highest level, the returned `LevelFilter` will be the
+734    /// same as the current one.
+735    ///
+736    /// # Examples
+737    ///
+738    /// ```
+739    /// use log::LevelFilter;
+740    ///
+741    /// let level_filter = LevelFilter::Info;
+742    ///
+743    /// assert_eq!(LevelFilter::Debug, level_filter.increment_severity());
+744    /// assert_eq!(LevelFilter::Trace, level_filter.increment_severity().increment_severity());
+745    /// assert_eq!(LevelFilter::Trace, level_filter.increment_severity().increment_severity().increment_severity()); // max level
+746    /// ```
+747    pub fn increment_severity(&self) -> Self {
+748        let current = *self as usize;
+749        Self::from_usize(current + 1).unwrap_or(*self)
+750    }
+751
+752    /// Get the next-lowest `LevelFilter` from this one.
+753    ///
+754    /// If the current `LevelFilter` is at the lowest level, the returned `LevelFilter` will be the
+755    /// same as the current one.
+756    ///
+757    /// # Examples
+758    ///
+759    /// ```
+760    /// use log::LevelFilter;
+761    ///
+762    /// let level_filter = LevelFilter::Info;
+763    ///
+764    /// assert_eq!(LevelFilter::Warn, level_filter.decrement_severity());
+765    /// assert_eq!(LevelFilter::Error, level_filter.decrement_severity().decrement_severity());
+766    /// assert_eq!(LevelFilter::Off, level_filter.decrement_severity().decrement_severity().decrement_severity());
+767    /// assert_eq!(LevelFilter::Off, level_filter.decrement_severity().decrement_severity().decrement_severity().decrement_severity()); // min level
+768    /// ```
+769    pub fn decrement_severity(&self) -> Self {
+770        let current = *self as usize;
+771        Self::from_usize(current.saturating_sub(1)).unwrap_or(*self)
+772    }
+773}
+774
+775#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
+776enum MaybeStaticStr<'a> {
+777    Static(&'static str),
+778    Borrowed(&'a str),
+779}
+780
+781impl<'a> MaybeStaticStr<'a> {
+782    #[inline]
+783    fn get(&self) -> &'a str {
+784        match *self {
+785            MaybeStaticStr::Static(s) => s,
+786            MaybeStaticStr::Borrowed(s) => s,
+787        }
+788    }
+789}
+790
+791/// The "payload" of a log message.
+792///
+793/// # Use
+794///
+795/// `Record` structures are passed as parameters to the [`log`][method.log]
+796/// method of the [`Log`] trait. Logger implementors manipulate these
+797/// structures in order to display log messages. `Record`s are automatically
+798/// created by the [`log!`] macro and so are not seen by log users.
+799///
+800/// Note that the [`level()`] and [`target()`] accessors are equivalent to
+801/// `self.metadata().level()` and `self.metadata().target()` respectively.
+802/// These methods are provided as a convenience for users of this structure.
+803///
+804/// # Example
+805///
+806/// The following example shows a simple logger that displays the level,
+807/// module path, and message of any `Record` that is passed to it.
+808///
+809/// ```
+810/// struct SimpleLogger;
+811///
+812/// impl log::Log for SimpleLogger {
+813///    fn enabled(&self, _metadata: &log::Metadata) -> bool {
+814///        true
+815///    }
+816///
+817///    fn log(&self, record: &log::Record) {
+818///        if !self.enabled(record.metadata()) {
+819///            return;
+820///        }
+821///
+822///        println!("{}:{} -- {}",
+823///                 record.level(),
+824///                 record.target(),
+825///                 record.args());
+826///    }
+827///    fn flush(&self) {}
+828/// }
+829/// ```
+830///
+831/// [method.log]: trait.Log.html#tymethod.log
+832/// [`Log`]: trait.Log.html
+833/// [`log!`]: macro.log.html
+834/// [`level()`]: struct.Record.html#method.level
+835/// [`target()`]: struct.Record.html#method.target
+836#[derive(Clone, Debug)]
+837pub struct Record<'a> {
+838    metadata: Metadata<'a>,
+839    args: fmt::Arguments<'a>,
+840    module_path: Option<MaybeStaticStr<'a>>,
+841    file: Option<MaybeStaticStr<'a>>,
+842    line: Option<u32>,
+843    #[cfg(feature = "kv")]
+844    key_values: KeyValues<'a>,
+845}
+846
+847// This wrapper type is only needed so we can
+848// `#[derive(Debug)]` on `Record`. It also
+849// provides a useful `Debug` implementation for
+850// the underlying `Source`.
+851#[cfg(feature = "kv")]
+852#[derive(Clone)]
+853struct KeyValues<'a>(&'a dyn kv::Source);
 854
-855    /// The line containing the message.
-856    #[inline]
-857    pub fn line(&self) -> Option<u32> {
-858        self.line
-859    }
-860
-861    /// The structured key-value pairs associated with the message.
-862    #[cfg(feature = "kv")]
-863    #[inline]
-864    pub fn key_values(&self) -> &dyn kv::Source {
-865        self.key_values.0
-866    }
-867
-868    /// Create a new [`RecordBuilder`](struct.RecordBuilder.html) based on this record.
-869    #[cfg(feature = "kv")]
-870    #[inline]
-871    pub fn to_builder(&self) -> RecordBuilder {
-872        RecordBuilder {
-873            record: Record {
-874                metadata: Metadata {
-875                    level: self.metadata.level,
-876                    target: self.metadata.target,
-877                },
-878                args: self.args,
-879                module_path: self.module_path,
-880                file: self.file,
-881                line: self.line,
-882                key_values: self.key_values.clone(),
-883            },
-884        }
-885    }
-886}
-887
-888/// Builder for [`Record`](struct.Record.html).
-889///
-890/// Typically should only be used by log library creators or for testing and "shim loggers".
-891/// The `RecordBuilder` can set the different parameters of `Record` object, and returns
-892/// the created object when `build` is called.
-893///
-894/// # Examples
-895///
-896/// ```
-897/// use log::{Level, Record};
-898///
-899/// let record = Record::builder()
-900///                 .args(format_args!("Error!"))
-901///                 .level(Level::Error)
-902///                 .target("myApp")
-903///                 .file(Some("server.rs"))
-904///                 .line(Some(144))
-905///                 .module_path(Some("server"))
-906///                 .build();
-907/// ```
-908///
-909/// Alternatively, use [`MetadataBuilder`](struct.MetadataBuilder.html):
-910///
-911/// ```
-912/// use log::{Record, Level, MetadataBuilder};
-913///
-914/// let error_metadata = MetadataBuilder::new()
-915///                         .target("myApp")
-916///                         .level(Level::Error)
-917///                         .build();
-918///
-919/// let record = Record::builder()
-920///                 .metadata(error_metadata)
-921///                 .args(format_args!("Error!"))
-922///                 .line(Some(433))
-923///                 .file(Some("app.rs"))
-924///                 .module_path(Some("server"))
-925///                 .build();
-926/// ```
-927#[derive(Debug)]
-928pub struct RecordBuilder<'a> {
-929    record: Record<'a>,
-930}
-931
-932impl<'a> RecordBuilder<'a> {
-933    /// Construct new `RecordBuilder`.
-934    ///
-935    /// The default options are:
-936    ///
-937    /// - `args`: [`format_args!("")`]
-938    /// - `metadata`: [`Metadata::builder().build()`]
-939    /// - `module_path`: `None`
-940    /// - `file`: `None`
-941    /// - `line`: `None`
-942    ///
-943    /// [`format_args!("")`]: https://doc.rust-lang.org/std/macro.format_args.html
-944    /// [`Metadata::builder().build()`]: struct.MetadataBuilder.html#method.build
-945    #[inline]
-946    pub fn new() -> RecordBuilder<'a> {
-947        RecordBuilder {
-948            record: Record {
-949                args: format_args!(""),
-950                metadata: Metadata::builder().build(),
-951                module_path: None,
-952                file: None,
-953                line: None,
-954                #[cfg(feature = "kv")]
-955                key_values: KeyValues(&None::<(kv::Key, kv::Value)>),
-956            },
-957        }
-958    }
-959
-960    /// Set [`args`](struct.Record.html#method.args).
-961    #[inline]
-962    pub fn args(&mut self, args: fmt::Arguments<'a>) -> &mut RecordBuilder<'a> {
-963        self.record.args = args;
-964        self
-965    }
-966
-967    /// Set [`metadata`](struct.Record.html#method.metadata). Construct a `Metadata` object with [`MetadataBuilder`](struct.MetadataBuilder.html).
-968    #[inline]
-969    pub fn metadata(&mut self, metadata: Metadata<'a>) -> &mut RecordBuilder<'a> {
-970        self.record.metadata = metadata;
-971        self
-972    }
-973
-974    /// Set [`Metadata::level`](struct.Metadata.html#method.level).
-975    #[inline]
-976    pub fn level(&mut self, level: Level) -> &mut RecordBuilder<'a> {
-977        self.record.metadata.level = level;
-978        self
-979    }
-980
-981    /// Set [`Metadata::target`](struct.Metadata.html#method.target)
-982    #[inline]
-983    pub fn target(&mut self, target: &'a str) -> &mut RecordBuilder<'a> {
-984        self.record.metadata.target = target;
-985        self
-986    }
-987
-988    /// Set [`module_path`](struct.Record.html#method.module_path)
-989    #[inline]
-990    pub fn module_path(&mut self, path: Option<&'a str>) -> &mut RecordBuilder<'a> {
-991        self.record.module_path = path.map(MaybeStaticStr::Borrowed);
-992        self
-993    }
-994
-995    /// Set [`module_path`](struct.Record.html#method.module_path) to a `'static` string
-996    #[inline]
-997    pub fn module_path_static(&mut self, path: Option<&'static str>) -> &mut RecordBuilder<'a> {
-998        self.record.module_path = path.map(MaybeStaticStr::Static);
-999        self
-1000    }
+855#[cfg(feature = "kv")]
+856impl<'a> fmt::Debug for KeyValues<'a> {
+857    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+858        let mut visitor = f.debug_map();
+859        self.0.visit(&mut visitor).map_err(|_| fmt::Error)?;
+860        visitor.finish()
+861    }
+862}
+863
+864impl<'a> Record<'a> {
+865    /// Returns a new builder.
+866    #[inline]
+867    pub fn builder() -> RecordBuilder<'a> {
+868        RecordBuilder::new()
+869    }
+870
+871    /// The message body.
+872    #[inline]
+873    pub fn args(&self) -> &fmt::Arguments<'a> {
+874        &self.args
+875    }
+876
+877    /// Metadata about the log directive.
+878    #[inline]
+879    pub fn metadata(&self) -> &Metadata<'a> {
+880        &self.metadata
+881    }
+882
+883    /// The verbosity level of the message.
+884    #[inline]
+885    pub fn level(&self) -> Level {
+886        self.metadata.level()
+887    }
+888
+889    /// The name of the target of the directive.
+890    #[inline]
+891    pub fn target(&self) -> &'a str {
+892        self.metadata.target()
+893    }
+894
+895    /// The module path of the message.
+896    #[inline]
+897    pub fn module_path(&self) -> Option<&'a str> {
+898        self.module_path.map(|s| s.get())
+899    }
+900
+901    /// The module path of the message, if it is a `'static` string.
+902    #[inline]
+903    pub fn module_path_static(&self) -> Option<&'static str> {
+904        match self.module_path {
+905            Some(MaybeStaticStr::Static(s)) => Some(s),
+906            _ => None,
+907        }
+908    }
+909
+910    /// The source file containing the message.
+911    #[inline]
+912    pub fn file(&self) -> Option<&'a str> {
+913        self.file.map(|s| s.get())
+914    }
+915
+916    /// The source file containing the message, if it is a `'static` string.
+917    #[inline]
+918    pub fn file_static(&self) -> Option<&'static str> {
+919        match self.file {
+920            Some(MaybeStaticStr::Static(s)) => Some(s),
+921            _ => None,
+922        }
+923    }
+924
+925    /// The line containing the message.
+926    #[inline]
+927    pub fn line(&self) -> Option<u32> {
+928        self.line
+929    }
+930
+931    /// The structured key-value pairs associated with the message.
+932    #[cfg(feature = "kv")]
+933    #[inline]
+934    pub fn key_values(&self) -> &dyn kv::Source {
+935        self.key_values.0
+936    }
+937
+938    /// Create a new [`RecordBuilder`](struct.RecordBuilder.html) based on this record.
+939    #[cfg(feature = "kv")]
+940    #[inline]
+941    pub fn to_builder(&self) -> RecordBuilder {
+942        RecordBuilder {
+943            record: Record {
+944                metadata: Metadata {
+945                    level: self.metadata.level,
+946                    target: self.metadata.target,
+947                },
+948                args: self.args,
+949                module_path: self.module_path,
+950                file: self.file,
+951                line: self.line,
+952                key_values: self.key_values.clone(),
+953            },
+954        }
+955    }
+956}
+957
+958/// Builder for [`Record`](struct.Record.html).
+959///
+960/// Typically should only be used by log library creators or for testing and "shim loggers".
+961/// The `RecordBuilder` can set the different parameters of `Record` object, and returns
+962/// the created object when `build` is called.
+963///
+964/// # Examples
+965///
+966/// ```
+967/// use log::{Level, Record};
+968///
+969/// let record = Record::builder()
+970///                 .args(format_args!("Error!"))
+971///                 .level(Level::Error)
+972///                 .target("myApp")
+973///                 .file(Some("server.rs"))
+974///                 .line(Some(144))
+975///                 .module_path(Some("server"))
+976///                 .build();
+977/// ```
+978///
+979/// Alternatively, use [`MetadataBuilder`](struct.MetadataBuilder.html):
+980///
+981/// ```
+982/// use log::{Record, Level, MetadataBuilder};
+983///
+984/// let error_metadata = MetadataBuilder::new()
+985///                         .target("myApp")
+986///                         .level(Level::Error)
+987///                         .build();
+988///
+989/// let record = Record::builder()
+990///                 .metadata(error_metadata)
+991///                 .args(format_args!("Error!"))
+992///                 .line(Some(433))
+993///                 .file(Some("app.rs"))
+994///                 .module_path(Some("server"))
+995///                 .build();
+996/// ```
+997#[derive(Debug)]
+998pub struct RecordBuilder<'a> {
+999    record: Record<'a>,
+1000}
 1001
-1002    /// Set [`file`](struct.Record.html#method.file)
-1003    #[inline]
-1004    pub fn file(&mut self, file: Option<&'a str>) -> &mut RecordBuilder<'a> {
-1005        self.record.file = file.map(MaybeStaticStr::Borrowed);
-1006        self
-1007    }
-1008
-1009    /// Set [`file`](struct.Record.html#method.file) to a `'static` string.
-1010    #[inline]
-1011    pub fn file_static(&mut self, file: Option<&'static str>) -> &mut RecordBuilder<'a> {
-1012        self.record.file = file.map(MaybeStaticStr::Static);
-1013        self
-1014    }
-1015
-1016    /// Set [`line`](struct.Record.html#method.line)
-1017    #[inline]
-1018    pub fn line(&mut self, line: Option<u32>) -> &mut RecordBuilder<'a> {
-1019        self.record.line = line;
-1020        self
-1021    }
-1022
-1023    /// Set [`key_values`](struct.Record.html#method.key_values)
-1024    #[cfg(feature = "kv")]
-1025    #[inline]
-1026    pub fn key_values(&mut self, kvs: &'a dyn kv::Source) -> &mut RecordBuilder<'a> {
-1027        self.record.key_values = KeyValues(kvs);
-1028        self
-1029    }
-1030
-1031    /// Invoke the builder and return a `Record`
-1032    #[inline]
-1033    pub fn build(&self) -> Record<'a> {
-1034        self.record.clone()
-1035    }
-1036}
-1037
-1038impl Default for RecordBuilder<'_> {
-1039    fn default() -> Self {
-1040        Self::new()
-1041    }
-1042}
+1002impl<'a> RecordBuilder<'a> {
+1003    /// Construct new `RecordBuilder`.
+1004    ///
+1005    /// The default options are:
+1006    ///
+1007    /// - `args`: [`format_args!("")`]
+1008    /// - `metadata`: [`Metadata::builder().build()`]
+1009    /// - `module_path`: `None`
+1010    /// - `file`: `None`
+1011    /// - `line`: `None`
+1012    ///
+1013    /// [`format_args!("")`]: https://doc.rust-lang.org/std/macro.format_args.html
+1014    /// [`Metadata::builder().build()`]: struct.MetadataBuilder.html#method.build
+1015    #[inline]
+1016    pub fn new() -> RecordBuilder<'a> {
+1017        RecordBuilder {
+1018            record: Record {
+1019                args: format_args!(""),
+1020                metadata: Metadata::builder().build(),
+1021                module_path: None,
+1022                file: None,
+1023                line: None,
+1024                #[cfg(feature = "kv")]
+1025                key_values: KeyValues(&None::<(kv::Key, kv::Value)>),
+1026            },
+1027        }
+1028    }
+1029
+1030    /// Set [`args`](struct.Record.html#method.args).
+1031    #[inline]
+1032    pub fn args(&mut self, args: fmt::Arguments<'a>) -> &mut RecordBuilder<'a> {
+1033        self.record.args = args;
+1034        self
+1035    }
+1036
+1037    /// Set [`metadata`](struct.Record.html#method.metadata). Construct a `Metadata` object with [`MetadataBuilder`](struct.MetadataBuilder.html).
+1038    #[inline]
+1039    pub fn metadata(&mut self, metadata: Metadata<'a>) -> &mut RecordBuilder<'a> {
+1040        self.record.metadata = metadata;
+1041        self
+1042    }
 1043
-1044/// Metadata about a log message.
-1045///
-1046/// # Use
-1047///
-1048/// `Metadata` structs are created when users of the library use
-1049/// logging macros.
-1050///
-1051/// They are consumed by implementations of the `Log` trait in the
-1052/// `enabled` method.
-1053///
-1054/// `Record`s use `Metadata` to determine the log message's severity
-1055/// and target.
-1056///
-1057/// Users should use the `log_enabled!` macro in their code to avoid
-1058/// constructing expensive log messages.
-1059///
-1060/// # Examples
-1061///
-1062/// ```
-1063/// use log::{Record, Level, Metadata};
-1064///
-1065/// struct MyLogger;
-1066///
-1067/// impl log::Log for MyLogger {
-1068///     fn enabled(&self, metadata: &Metadata) -> bool {
-1069///         metadata.level() <= Level::Info
-1070///     }
-1071///
-1072///     fn log(&self, record: &Record) {
-1073///         if self.enabled(record.metadata()) {
-1074///             println!("{} - {}", record.level(), record.args());
-1075///         }
-1076///     }
-1077///     fn flush(&self) {}
-1078/// }
-1079///
-1080/// # fn main(){}
-1081/// ```
-1082#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
-1083pub struct Metadata<'a> {
-1084    level: Level,
-1085    target: &'a str,
-1086}
-1087
-1088impl<'a> Metadata<'a> {
-1089    /// Returns a new builder.
-1090    #[inline]
-1091    pub fn builder() -> MetadataBuilder<'a> {
-1092        MetadataBuilder::new()
-1093    }
-1094
-1095    /// The verbosity level of the message.
-1096    #[inline]
-1097    pub fn level(&self) -> Level {
-1098        self.level
-1099    }
+1044    /// Set [`Metadata::level`](struct.Metadata.html#method.level).
+1045    #[inline]
+1046    pub fn level(&mut self, level: Level) -> &mut RecordBuilder<'a> {
+1047        self.record.metadata.level = level;
+1048        self
+1049    }
+1050
+1051    /// Set [`Metadata::target`](struct.Metadata.html#method.target)
+1052    #[inline]
+1053    pub fn target(&mut self, target: &'a str) -> &mut RecordBuilder<'a> {
+1054        self.record.metadata.target = target;
+1055        self
+1056    }
+1057
+1058    /// Set [`module_path`](struct.Record.html#method.module_path)
+1059    #[inline]
+1060    pub fn module_path(&mut self, path: Option<&'a str>) -> &mut RecordBuilder<'a> {
+1061        self.record.module_path = path.map(MaybeStaticStr::Borrowed);
+1062        self
+1063    }
+1064
+1065    /// Set [`module_path`](struct.Record.html#method.module_path) to a `'static` string
+1066    #[inline]
+1067    pub fn module_path_static(&mut self, path: Option<&'static str>) -> &mut RecordBuilder<'a> {
+1068        self.record.module_path = path.map(MaybeStaticStr::Static);
+1069        self
+1070    }
+1071
+1072    /// Set [`file`](struct.Record.html#method.file)
+1073    #[inline]
+1074    pub fn file(&mut self, file: Option<&'a str>) -> &mut RecordBuilder<'a> {
+1075        self.record.file = file.map(MaybeStaticStr::Borrowed);
+1076        self
+1077    }
+1078
+1079    /// Set [`file`](struct.Record.html#method.file) to a `'static` string.
+1080    #[inline]
+1081    pub fn file_static(&mut self, file: Option<&'static str>) -> &mut RecordBuilder<'a> {
+1082        self.record.file = file.map(MaybeStaticStr::Static);
+1083        self
+1084    }
+1085
+1086    /// Set [`line`](struct.Record.html#method.line)
+1087    #[inline]
+1088    pub fn line(&mut self, line: Option<u32>) -> &mut RecordBuilder<'a> {
+1089        self.record.line = line;
+1090        self
+1091    }
+1092
+1093    /// Set [`key_values`](struct.Record.html#method.key_values)
+1094    #[cfg(feature = "kv")]
+1095    #[inline]
+1096    pub fn key_values(&mut self, kvs: &'a dyn kv::Source) -> &mut RecordBuilder<'a> {
+1097        self.record.key_values = KeyValues(kvs);
+1098        self
+1099    }
 1100
-1101    /// The name of the target of the directive.
+1101    /// Invoke the builder and return a `Record`
 1102    #[inline]
-1103    pub fn target(&self) -> &'a str {
-1104        self.target
+1103    pub fn build(&self) -> Record<'a> {
+1104        self.record.clone()
 1105    }
 1106}
 1107
-1108/// Builder for [`Metadata`](struct.Metadata.html).
-1109///
-1110/// Typically should only be used by log library creators or for testing and "shim loggers".
-1111/// The `MetadataBuilder` can set the different parameters of a `Metadata` object, and returns
-1112/// the created object when `build` is called.
-1113///
-1114/// # Example
+1108impl Default for RecordBuilder<'_> {
+1109    fn default() -> Self {
+1110        Self::new()
+1111    }
+1112}
+1113
+1114/// Metadata about a log message.
 1115///
-1116/// ```
-1117/// let target = "myApp";
-1118/// use log::{Level, MetadataBuilder};
-1119/// let metadata = MetadataBuilder::new()
-1120///                     .level(Level::Debug)
-1121///                     .target(target)
-1122///                     .build();
-1123/// ```
-1124#[derive(Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
-1125pub struct MetadataBuilder<'a> {
-1126    metadata: Metadata<'a>,
-1127}
-1128
-1129impl<'a> MetadataBuilder<'a> {
-1130    /// Construct a new `MetadataBuilder`.
-1131    ///
-1132    /// The default options are:
-1133    ///
-1134    /// - `level`: `Level::Info`
-1135    /// - `target`: `""`
-1136    #[inline]
-1137    pub fn new() -> MetadataBuilder<'a> {
-1138        MetadataBuilder {
-1139            metadata: Metadata {
-1140                level: Level::Info,
-1141                target: "",
-1142            },
-1143        }
-1144    }
-1145
-1146    /// Setter for [`level`](struct.Metadata.html#method.level).
-1147    #[inline]
-1148    pub fn level(&mut self, arg: Level) -> &mut MetadataBuilder<'a> {
-1149        self.metadata.level = arg;
-1150        self
-1151    }
-1152
-1153    /// Setter for [`target`](struct.Metadata.html#method.target).
-1154    #[inline]
-1155    pub fn target(&mut self, target: &'a str) -> &mut MetadataBuilder<'a> {
-1156        self.metadata.target = target;
-1157        self
-1158    }
-1159
-1160    /// Returns a `Metadata` object.
-1161    #[inline]
-1162    pub fn build(&self) -> Metadata<'a> {
-1163        self.metadata.clone()
-1164    }
-1165}
-1166
-1167impl Default for MetadataBuilder<'_> {
-1168    fn default() -> Self {
-1169        Self::new()
-1170    }
-1171}
-1172
-1173/// A trait encapsulating the operations required of a logger.
-1174pub trait Log: Sync + Send {
-1175    /// Determines if a log message with the specified metadata would be
-1176    /// logged.
-1177    ///
-1178    /// This is used by the `log_enabled!` macro to allow callers to avoid
-1179    /// expensive computation of log message arguments if the message would be
-1180    /// discarded anyway.
-1181    ///
-1182    /// # For implementors
-1183    ///
-1184    /// This method isn't called automatically by the `log!` macros.
-1185    /// It's up to an implementation of the `Log` trait to call `enabled` in its own
-1186    /// `log` method implementation to guarantee that filtering is applied.
-1187    fn enabled(&self, metadata: &Metadata) -> bool;
-1188
-1189    /// Logs the `Record`.
-1190    ///
-1191    /// # For implementors
-1192    ///
-1193    /// Note that `enabled` is *not* necessarily called before this method.
-1194    /// Implementations of `log` should perform all necessary filtering
-1195    /// internally.
-1196    fn log(&self, record: &Record);
-1197
-1198    /// Flushes any buffered records.
-1199    ///
-1200    /// # For implementors
+1116/// # Use
+1117///
+1118/// `Metadata` structs are created when users of the library use
+1119/// logging macros.
+1120///
+1121/// They are consumed by implementations of the `Log` trait in the
+1122/// `enabled` method.
+1123///
+1124/// `Record`s use `Metadata` to determine the log message's severity
+1125/// and target.
+1126///
+1127/// Users should use the `log_enabled!` macro in their code to avoid
+1128/// constructing expensive log messages.
+1129///
+1130/// # Examples
+1131///
+1132/// ```
+1133/// use log::{Record, Level, Metadata};
+1134///
+1135/// struct MyLogger;
+1136///
+1137/// impl log::Log for MyLogger {
+1138///     fn enabled(&self, metadata: &Metadata) -> bool {
+1139///         metadata.level() <= Level::Info
+1140///     }
+1141///
+1142///     fn log(&self, record: &Record) {
+1143///         if self.enabled(record.metadata()) {
+1144///             println!("{} - {}", record.level(), record.args());
+1145///         }
+1146///     }
+1147///     fn flush(&self) {}
+1148/// }
+1149///
+1150/// # fn main(){}
+1151/// ```
+1152#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
+1153pub struct Metadata<'a> {
+1154    level: Level,
+1155    target: &'a str,
+1156}
+1157
+1158impl<'a> Metadata<'a> {
+1159    /// Returns a new builder.
+1160    #[inline]
+1161    pub fn builder() -> MetadataBuilder<'a> {
+1162        MetadataBuilder::new()
+1163    }
+1164
+1165    /// The verbosity level of the message.
+1166    #[inline]
+1167    pub fn level(&self) -> Level {
+1168        self.level
+1169    }
+1170
+1171    /// The name of the target of the directive.
+1172    #[inline]
+1173    pub fn target(&self) -> &'a str {
+1174        self.target
+1175    }
+1176}
+1177
+1178/// Builder for [`Metadata`](struct.Metadata.html).
+1179///
+1180/// Typically should only be used by log library creators or for testing and "shim loggers".
+1181/// The `MetadataBuilder` can set the different parameters of a `Metadata` object, and returns
+1182/// the created object when `build` is called.
+1183///
+1184/// # Example
+1185///
+1186/// ```
+1187/// let target = "myApp";
+1188/// use log::{Level, MetadataBuilder};
+1189/// let metadata = MetadataBuilder::new()
+1190///                     .level(Level::Debug)
+1191///                     .target(target)
+1192///                     .build();
+1193/// ```
+1194#[derive(Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
+1195pub struct MetadataBuilder<'a> {
+1196    metadata: Metadata<'a>,
+1197}
+1198
+1199impl<'a> MetadataBuilder<'a> {
+1200    /// Construct a new `MetadataBuilder`.
 1201    ///
-1202    /// This method isn't called automatically by the `log!` macros.
-1203    /// It can be called manually on shut-down to ensure any in-flight records are flushed.
-1204    fn flush(&self);
-1205}
-1206
-1207/// A dummy initial value for LOGGER.
-1208struct NopLogger;
-1209
-1210impl Log for NopLogger {
-1211    fn enabled(&self, _: &Metadata) -> bool {
-1212        false
-1213    }
-1214
-1215    fn log(&self, _: &Record) {}
-1216    fn flush(&self) {}
-1217}
-1218
-1219impl<T> Log for &'_ T
-1220where
-1221    T: ?Sized + Log,
-1222{
-1223    fn enabled(&self, metadata: &Metadata) -> bool {
-1224        (**self).enabled(metadata)
-1225    }
-1226
-1227    fn log(&self, record: &Record) {
-1228        (**self).log(record);
-1229    }
-1230    fn flush(&self) {
-1231        (**self).flush();
-1232    }
-1233}
-1234
-1235#[cfg(feature = "std")]
-1236impl<T> Log for std::boxed::Box<T>
-1237where
-1238    T: ?Sized + Log,
-1239{
-1240    fn enabled(&self, metadata: &Metadata) -> bool {
-1241        self.as_ref().enabled(metadata)
-1242    }
-1243
-1244    fn log(&self, record: &Record) {
-1245        self.as_ref().log(record);
-1246    }
-1247    fn flush(&self) {
-1248        self.as_ref().flush();
-1249    }
-1250}
-1251
-1252#[cfg(feature = "std")]
-1253impl<T> Log for std::sync::Arc<T>
-1254where
-1255    T: ?Sized + Log,
-1256{
-1257    fn enabled(&self, metadata: &Metadata) -> bool {
-1258        self.as_ref().enabled(metadata)
-1259    }
-1260
-1261    fn log(&self, record: &Record) {
-1262        self.as_ref().log(record);
-1263    }
-1264    fn flush(&self) {
-1265        self.as_ref().flush();
-1266    }
-1267}
-1268
-1269/// Sets the global maximum log level.
-1270///
-1271/// Generally, this should only be called by the active logging implementation.
-1272///
-1273/// Note that `Trace` is the maximum level, because it provides the maximum amount of detail in the emitted logs.
-1274#[inline]
-1275#[cfg(target_has_atomic = "ptr")]
-1276pub fn set_max_level(level: LevelFilter) {
-1277    MAX_LOG_LEVEL_FILTER.store(level as usize, Ordering::Relaxed);
-1278}
+1202    /// The default options are:
+1203    ///
+1204    /// - `level`: `Level::Info`
+1205    /// - `target`: `""`
+1206    #[inline]
+1207    pub fn new() -> MetadataBuilder<'a> {
+1208        MetadataBuilder {
+1209            metadata: Metadata {
+1210                level: Level::Info,
+1211                target: "",
+1212            },
+1213        }
+1214    }
+1215
+1216    /// Setter for [`level`](struct.Metadata.html#method.level).
+1217    #[inline]
+1218    pub fn level(&mut self, arg: Level) -> &mut MetadataBuilder<'a> {
+1219        self.metadata.level = arg;
+1220        self
+1221    }
+1222
+1223    /// Setter for [`target`](struct.Metadata.html#method.target).
+1224    #[inline]
+1225    pub fn target(&mut self, target: &'a str) -> &mut MetadataBuilder<'a> {
+1226        self.metadata.target = target;
+1227        self
+1228    }
+1229
+1230    /// Returns a `Metadata` object.
+1231    #[inline]
+1232    pub fn build(&self) -> Metadata<'a> {
+1233        self.metadata.clone()
+1234    }
+1235}
+1236
+1237impl Default for MetadataBuilder<'_> {
+1238    fn default() -> Self {
+1239        Self::new()
+1240    }
+1241}
+1242
+1243/// A trait encapsulating the operations required of a logger.
+1244pub trait Log: Sync + Send {
+1245    /// Determines if a log message with the specified metadata would be
+1246    /// logged.
+1247    ///
+1248    /// This is used by the `log_enabled!` macro to allow callers to avoid
+1249    /// expensive computation of log message arguments if the message would be
+1250    /// discarded anyway.
+1251    ///
+1252    /// # For implementors
+1253    ///
+1254    /// This method isn't called automatically by the `log!` macros.
+1255    /// It's up to an implementation of the `Log` trait to call `enabled` in its own
+1256    /// `log` method implementation to guarantee that filtering is applied.
+1257    fn enabled(&self, metadata: &Metadata) -> bool;
+1258
+1259    /// Logs the `Record`.
+1260    ///
+1261    /// # For implementors
+1262    ///
+1263    /// Note that `enabled` is *not* necessarily called before this method.
+1264    /// Implementations of `log` should perform all necessary filtering
+1265    /// internally.
+1266    fn log(&self, record: &Record);
+1267
+1268    /// Flushes any buffered records.
+1269    ///
+1270    /// # For implementors
+1271    ///
+1272    /// This method isn't called automatically by the `log!` macros.
+1273    /// It can be called manually on shut-down to ensure any in-flight records are flushed.
+1274    fn flush(&self);
+1275}
+1276
+1277/// A dummy initial value for LOGGER.
+1278struct NopLogger;
 1279
-1280/// A thread-unsafe version of [`set_max_level`].
-1281///
-1282/// This function is available on all platforms, even those that do not have
-1283/// support for atomics that is needed by [`set_max_level`].
-1284///
-1285/// In almost all cases, [`set_max_level`] should be preferred.
-1286///
-1287/// # Safety
-1288///
-1289/// This function is only safe to call when it cannot race with any other
-1290/// calls to `set_max_level` or `set_max_level_racy`.
-1291///
-1292/// This can be upheld by (for example) making sure that **there are no other
-1293/// threads**, and (on embedded) that **interrupts are disabled**.
-1294///
-1295/// It is safe to use all other logging functions while this function runs
-1296/// (including all logging macros).
-1297///
-1298/// [`set_max_level`]: fn.set_max_level.html
-1299#[inline]
-1300pub unsafe fn set_max_level_racy(level: LevelFilter) {
-1301    // `MAX_LOG_LEVEL_FILTER` uses a `Cell` as the underlying primitive when a
-1302    // platform doesn't support `target_has_atomic = "ptr"`, so even though this looks the same
-1303    // as `set_max_level` it may have different safety properties.
-1304    MAX_LOG_LEVEL_FILTER.store(level as usize, Ordering::Relaxed);
-1305}
-1306
-1307/// Returns the current maximum log level.
-1308///
-1309/// The [`log!`], [`error!`], [`warn!`], [`info!`], [`debug!`], and [`trace!`] macros check
-1310/// this value and discard any message logged at a higher level. The maximum
-1311/// log level is set by the [`set_max_level`] function.
-1312///
-1313/// [`log!`]: macro.log.html
-1314/// [`error!`]: macro.error.html
-1315/// [`warn!`]: macro.warn.html
-1316/// [`info!`]: macro.info.html
-1317/// [`debug!`]: macro.debug.html
-1318/// [`trace!`]: macro.trace.html
-1319/// [`set_max_level`]: fn.set_max_level.html
-1320#[inline(always)]
-1321pub fn max_level() -> LevelFilter {
-1322    // Since `LevelFilter` is `repr(usize)`,
-1323    // this transmute is sound if and only if `MAX_LOG_LEVEL_FILTER`
-1324    // is set to a usize that is a valid discriminant for `LevelFilter`.
-1325    // Since `MAX_LOG_LEVEL_FILTER` is private, the only time it's set
-1326    // is by `set_max_level` above, i.e. by casting a `LevelFilter` to `usize`.
-1327    // So any usize stored in `MAX_LOG_LEVEL_FILTER` is a valid discriminant.
-1328    unsafe { mem::transmute(MAX_LOG_LEVEL_FILTER.load(Ordering::Relaxed)) }
-1329}
+1280impl Log for NopLogger {
+1281    fn enabled(&self, _: &Metadata) -> bool {
+1282        false
+1283    }
+1284
+1285    fn log(&self, _: &Record) {}
+1286    fn flush(&self) {}
+1287}
+1288
+1289impl<T> Log for &'_ T
+1290where
+1291    T: ?Sized + Log,
+1292{
+1293    fn enabled(&self, metadata: &Metadata) -> bool {
+1294        (**self).enabled(metadata)
+1295    }
+1296
+1297    fn log(&self, record: &Record) {
+1298        (**self).log(record);
+1299    }
+1300    fn flush(&self) {
+1301        (**self).flush();
+1302    }
+1303}
+1304
+1305#[cfg(feature = "std")]
+1306impl<T> Log for std::boxed::Box<T>
+1307where
+1308    T: ?Sized + Log,
+1309{
+1310    fn enabled(&self, metadata: &Metadata) -> bool {
+1311        self.as_ref().enabled(metadata)
+1312    }
+1313
+1314    fn log(&self, record: &Record) {
+1315        self.as_ref().log(record);
+1316    }
+1317    fn flush(&self) {
+1318        self.as_ref().flush();
+1319    }
+1320}
+1321
+1322#[cfg(feature = "std")]
+1323impl<T> Log for std::sync::Arc<T>
+1324where
+1325    T: ?Sized + Log,
+1326{
+1327    fn enabled(&self, metadata: &Metadata) -> bool {
+1328        self.as_ref().enabled(metadata)
+1329    }
 1330
-1331/// Sets the global logger to a `Box<Log>`.
-1332///
-1333/// This is a simple convenience wrapper over `set_logger`, which takes a
-1334/// `Box<Log>` rather than a `&'static Log`. See the documentation for
-1335/// [`set_logger`] for more details.
-1336///
-1337/// Requires the `std` feature.
-1338///
-1339/// # Errors
+1331    fn log(&self, record: &Record) {
+1332        self.as_ref().log(record);
+1333    }
+1334    fn flush(&self) {
+1335        self.as_ref().flush();
+1336    }
+1337}
+1338
+1339/// Sets the global maximum log level.
 1340///
-1341/// An error is returned if a logger has already been set.
+1341/// Generally, this should only be called by the active logging implementation.
 1342///
-1343/// [`set_logger`]: fn.set_logger.html
-1344#[cfg(all(feature = "std", target_has_atomic = "ptr"))]
-1345pub fn set_boxed_logger(logger: Box<dyn Log>) -> Result<(), SetLoggerError> {
-1346    set_logger_inner(|| Box::leak(logger))
-1347}
-1348
-1349/// Sets the global logger to a `&'static Log`.
-1350///
-1351/// This function may only be called once in the lifetime of a program. Any log
-1352/// events that occur before the call to `set_logger` completes will be ignored.
-1353///
-1354/// This function does not typically need to be called manually. Logger
-1355/// implementations should provide an initialization method that installs the
-1356/// logger internally.
-1357///
-1358/// # Availability
-1359///
-1360/// This method is available even when the `std` feature is disabled. However,
-1361/// it is currently unavailable on `thumbv6` targets, which lack support for
-1362/// some atomic operations which are used by this function. Even on those
-1363/// targets, [`set_logger_racy`] will be available.
+1343/// Note that `Trace` is the maximum level, because it provides the maximum amount of detail in the emitted logs.
+1344#[inline]
+1345#[cfg(target_has_atomic = "ptr")]
+1346pub fn set_max_level(level: LevelFilter) {
+1347    MAX_LOG_LEVEL_FILTER.store(level as usize, Ordering::Relaxed);
+1348}
+1349
+1350/// A thread-unsafe version of [`set_max_level`].
+1351///
+1352/// This function is available on all platforms, even those that do not have
+1353/// support for atomics that is needed by [`set_max_level`].
+1354///
+1355/// In almost all cases, [`set_max_level`] should be preferred.
+1356///
+1357/// # Safety
+1358///
+1359/// This function is only safe to call when it cannot race with any other
+1360/// calls to `set_max_level` or `set_max_level_racy`.
+1361///
+1362/// This can be upheld by (for example) making sure that **there are no other
+1363/// threads**, and (on embedded) that **interrupts are disabled**.
 1364///
-1365/// # Errors
-1366///
-1367/// An error is returned if a logger has already been set.
-1368///
-1369/// # Examples
-1370///
-1371/// ```
-1372/// use log::{error, info, warn, Record, Level, Metadata, LevelFilter};
-1373///
-1374/// static MY_LOGGER: MyLogger = MyLogger;
-1375///
-1376/// struct MyLogger;
-1377///
-1378/// impl log::Log for MyLogger {
-1379///     fn enabled(&self, metadata: &Metadata) -> bool {
-1380///         metadata.level() <= Level::Info
-1381///     }
+1365/// It is safe to use all other logging functions while this function runs
+1366/// (including all logging macros).
+1367///
+1368/// [`set_max_level`]: fn.set_max_level.html
+1369#[inline]
+1370pub unsafe fn set_max_level_racy(level: LevelFilter) {
+1371    // `MAX_LOG_LEVEL_FILTER` uses a `Cell` as the underlying primitive when a
+1372    // platform doesn't support `target_has_atomic = "ptr"`, so even though this looks the same
+1373    // as `set_max_level` it may have different safety properties.
+1374    MAX_LOG_LEVEL_FILTER.store(level as usize, Ordering::Relaxed);
+1375}
+1376
+1377/// Returns the current maximum log level.
+1378///
+1379/// The [`log!`], [`error!`], [`warn!`], [`info!`], [`debug!`], and [`trace!`] macros check
+1380/// this value and discard any message logged at a higher level. The maximum
+1381/// log level is set by the [`set_max_level`] function.
 1382///
-1383///     fn log(&self, record: &Record) {
-1384///         if self.enabled(record.metadata()) {
-1385///             println!("{} - {}", record.level(), record.args());
-1386///         }
-1387///     }
-1388///     fn flush(&self) {}
-1389/// }
-1390///
-1391/// # fn main(){
-1392/// log::set_logger(&MY_LOGGER).unwrap();
-1393/// log::set_max_level(LevelFilter::Info);
-1394///
-1395/// info!("hello log");
-1396/// warn!("warning");
-1397/// error!("oops");
-1398/// # }
-1399/// ```
-1400///
-1401/// [`set_logger_racy`]: fn.set_logger_racy.html
-1402#[cfg(target_has_atomic = "ptr")]
-1403pub fn set_logger(logger: &'static dyn Log) -> Result<(), SetLoggerError> {
-1404    set_logger_inner(|| logger)
-1405}
-1406
-1407#[cfg(target_has_atomic = "ptr")]
-1408fn set_logger_inner<F>(make_logger: F) -> Result<(), SetLoggerError>
-1409where
-1410    F: FnOnce() -> &'static dyn Log,
-1411{
-1412    match STATE.compare_exchange(
-1413        UNINITIALIZED,
-1414        INITIALIZING,
-1415        Ordering::Acquire,
-1416        Ordering::Relaxed,
-1417    ) {
-1418        Ok(UNINITIALIZED) => {
-1419            unsafe {
-1420                LOGGER = make_logger();
-1421            }
-1422            STATE.store(INITIALIZED, Ordering::Release);
-1423            Ok(())
-1424        }
-1425        Err(INITIALIZING) => {
-1426            while STATE.load(Ordering::Relaxed) == INITIALIZING {
-1427                std::hint::spin_loop();
-1428            }
-1429            Err(SetLoggerError(()))
-1430        }
-1431        _ => Err(SetLoggerError(())),
-1432    }
-1433}
-1434
-1435/// A thread-unsafe version of [`set_logger`].
+1383/// [`log!`]: macro.log.html
+1384/// [`error!`]: macro.error.html
+1385/// [`warn!`]: macro.warn.html
+1386/// [`info!`]: macro.info.html
+1387/// [`debug!`]: macro.debug.html
+1388/// [`trace!`]: macro.trace.html
+1389/// [`set_max_level`]: fn.set_max_level.html
+1390#[inline(always)]
+1391pub fn max_level() -> LevelFilter {
+1392    // Since `LevelFilter` is `repr(usize)`,
+1393    // this transmute is sound if and only if `MAX_LOG_LEVEL_FILTER`
+1394    // is set to a usize that is a valid discriminant for `LevelFilter`.
+1395    // Since `MAX_LOG_LEVEL_FILTER` is private, the only time it's set
+1396    // is by `set_max_level` above, i.e. by casting a `LevelFilter` to `usize`.
+1397    // So any usize stored in `MAX_LOG_LEVEL_FILTER` is a valid discriminant.
+1398    unsafe { mem::transmute(MAX_LOG_LEVEL_FILTER.load(Ordering::Relaxed)) }
+1399}
+1400
+1401/// Sets the global logger to a `Box<Log>`.
+1402///
+1403/// This is a simple convenience wrapper over `set_logger`, which takes a
+1404/// `Box<Log>` rather than a `&'static Log`. See the documentation for
+1405/// [`set_logger`] for more details.
+1406///
+1407/// Requires the `std` feature.
+1408///
+1409/// # Errors
+1410///
+1411/// An error is returned if a logger has already been set.
+1412///
+1413/// [`set_logger`]: fn.set_logger.html
+1414#[cfg(all(feature = "std", target_has_atomic = "ptr"))]
+1415pub fn set_boxed_logger(logger: Box<dyn Log>) -> Result<(), SetLoggerError> {
+1416    set_logger_inner(|| Box::leak(logger))
+1417}
+1418
+1419/// Sets the global logger to a `&'static Log`.
+1420///
+1421/// This function may only be called once in the lifetime of a program. Any log
+1422/// events that occur before the call to `set_logger` completes will be ignored.
+1423///
+1424/// This function does not typically need to be called manually. Logger
+1425/// implementations should provide an initialization method that installs the
+1426/// logger internally.
+1427///
+1428/// # Availability
+1429///
+1430/// This method is available even when the `std` feature is disabled. However,
+1431/// it is currently unavailable on `thumbv6` targets, which lack support for
+1432/// some atomic operations which are used by this function. Even on those
+1433/// targets, [`set_logger_racy`] will be available.
+1434///
+1435/// # Errors
 1436///
-1437/// This function is available on all platforms, even those that do not have
-1438/// support for atomics that is needed by [`set_logger`].
-1439///
-1440/// In almost all cases, [`set_logger`] should be preferred.
-1441///
-1442/// # Safety
+1437/// An error is returned if a logger has already been set.
+1438///
+1439/// # Examples
+1440///
+1441/// ```
+1442/// use log::{error, info, warn, Record, Level, Metadata, LevelFilter};
 1443///
-1444/// This function is only safe to call when it cannot race with any other
-1445/// calls to `set_logger` or `set_logger_racy`.
-1446///
-1447/// This can be upheld by (for example) making sure that **there are no other
-1448/// threads**, and (on embedded) that **interrupts are disabled**.
-1449///
-1450/// It is safe to use other logging functions while this function runs
-1451/// (including all logging macros).
+1444/// static MY_LOGGER: MyLogger = MyLogger;
+1445///
+1446/// struct MyLogger;
+1447///
+1448/// impl log::Log for MyLogger {
+1449///     fn enabled(&self, metadata: &Metadata) -> bool {
+1450///         metadata.level() <= Level::Info
+1451///     }
 1452///
-1453/// [`set_logger`]: fn.set_logger.html
-1454pub unsafe fn set_logger_racy(logger: &'static dyn Log) -> Result<(), SetLoggerError> {
-1455    match STATE.load(Ordering::Acquire) {
-1456        UNINITIALIZED => {
-1457            LOGGER = logger;
-1458            STATE.store(INITIALIZED, Ordering::Release);
-1459            Ok(())
-1460        }
-1461        INITIALIZING => {
-1462            // This is just plain UB, since we were racing another initialization function
-1463            unreachable!("set_logger_racy must not be used with other initialization functions")
-1464        }
-1465        _ => Err(SetLoggerError(())),
-1466    }
-1467}
-1468
-1469/// The type returned by [`set_logger`] if [`set_logger`] has already been called.
+1453///     fn log(&self, record: &Record) {
+1454///         if self.enabled(record.metadata()) {
+1455///             println!("{} - {}", record.level(), record.args());
+1456///         }
+1457///     }
+1458///     fn flush(&self) {}
+1459/// }
+1460///
+1461/// # fn main(){
+1462/// log::set_logger(&MY_LOGGER).unwrap();
+1463/// log::set_max_level(LevelFilter::Info);
+1464///
+1465/// info!("hello log");
+1466/// warn!("warning");
+1467/// error!("oops");
+1468/// # }
+1469/// ```
 1470///
-1471/// [`set_logger`]: fn.set_logger.html
-1472#[allow(missing_copy_implementations)]
-1473#[derive(Debug)]
-1474pub struct SetLoggerError(());
-1475
-1476impl fmt::Display for SetLoggerError {
-1477    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
-1478        fmt.write_str(SET_LOGGER_ERROR)
-1479    }
-1480}
-1481
-1482// The Error trait is not available in libcore
-1483#[cfg(feature = "std")]
-1484impl error::Error for SetLoggerError {}
-1485
-1486/// The type returned by [`from_str`] when the string doesn't match any of the log levels.
-1487///
-1488/// [`from_str`]: https://doc.rust-lang.org/std/str/trait.FromStr.html#tymethod.from_str
-1489#[allow(missing_copy_implementations)]
-1490#[derive(Debug, PartialEq, Eq)]
-1491pub struct ParseLevelError(());
-1492
-1493impl fmt::Display for ParseLevelError {
-1494    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
-1495        fmt.write_str(LEVEL_PARSE_ERROR)
-1496    }
-1497}
-1498
-1499// The Error trait is not available in libcore
-1500#[cfg(feature = "std")]
-1501impl error::Error for ParseLevelError {}
-1502
-1503/// Returns a reference to the logger.
-1504///
-1505/// If a logger has not been set, a no-op implementation is returned.
-1506pub fn logger() -> &'static dyn Log {
-1507    // Acquire memory ordering guarantees that current thread would see any
-1508    // memory writes that happened before store of the value
-1509    // into `STATE` with memory ordering `Release` or stronger.
-1510    //
-1511    // Since the value `INITIALIZED` is written only after `LOGGER` was
-1512    // initialized, observing it after `Acquire` load here makes both
-1513    // write to the `LOGGER` static and initialization of the logger
-1514    // internal state synchronized with current thread.
-1515    if STATE.load(Ordering::Acquire) != INITIALIZED {
-1516        static NOP: NopLogger = NopLogger;
-1517        &NOP
-1518    } else {
-1519        unsafe { LOGGER }
-1520    }
-1521}
-1522
-1523// WARNING: this is not part of the crate's public API and is subject to change at any time
-1524#[doc(hidden)]
-1525pub mod __private_api;
-1526
-1527/// The statically resolved maximum log level.
-1528///
-1529/// See the crate level documentation for information on how to configure this.
-1530///
-1531/// This value is checked by the log macros, but not by the `Log`ger returned by
-1532/// the [`logger`] function. Code that manually calls functions on that value
-1533/// should compare the level against this value.
-1534///
-1535/// [`logger`]: fn.logger.html
-1536pub const STATIC_MAX_LEVEL: LevelFilter = match cfg!(debug_assertions) {
-1537    false if cfg!(feature = "release_max_level_off") => LevelFilter::Off,
-1538    false if cfg!(feature = "release_max_level_error") => LevelFilter::Error,
-1539    false if cfg!(feature = "release_max_level_warn") => LevelFilter::Warn,
-1540    false if cfg!(feature = "release_max_level_info") => LevelFilter::Info,
-1541    false if cfg!(feature = "release_max_level_debug") => LevelFilter::Debug,
-1542    false if cfg!(feature = "release_max_level_trace") => LevelFilter::Trace,
-1543    _ if cfg!(feature = "max_level_off") => LevelFilter::Off,
-1544    _ if cfg!(feature = "max_level_error") => LevelFilter::Error,
-1545    _ if cfg!(feature = "max_level_warn") => LevelFilter::Warn,
-1546    _ if cfg!(feature = "max_level_info") => LevelFilter::Info,
-1547    _ if cfg!(feature = "max_level_debug") => LevelFilter::Debug,
-1548    _ => LevelFilter::Trace,
-1549};
-1550
-1551#[cfg(test)]
-1552mod tests {
-1553    use super::{Level, LevelFilter, ParseLevelError, STATIC_MAX_LEVEL};
-1554
-1555    #[test]
-1556    fn test_levelfilter_from_str() {
-1557        let tests = [
-1558            ("off", Ok(LevelFilter::Off)),
-1559            ("error", Ok(LevelFilter::Error)),
-1560            ("warn", Ok(LevelFilter::Warn)),
-1561            ("info", Ok(LevelFilter::Info)),
-1562            ("debug", Ok(LevelFilter::Debug)),
-1563            ("trace", Ok(LevelFilter::Trace)),
-1564            ("OFF", Ok(LevelFilter::Off)),
-1565            ("ERROR", Ok(LevelFilter::Error)),
-1566            ("WARN", Ok(LevelFilter::Warn)),
-1567            ("INFO", Ok(LevelFilter::Info)),
-1568            ("DEBUG", Ok(LevelFilter::Debug)),
-1569            ("TRACE", Ok(LevelFilter::Trace)),
-1570            ("asdf", Err(ParseLevelError(()))),
-1571        ];
-1572        for &(s, ref expected) in &tests {
-1573            assert_eq!(expected, &s.parse());
-1574        }
-1575    }
-1576
-1577    #[test]
-1578    fn test_level_from_str() {
-1579        let tests = [
-1580            ("OFF", Err(ParseLevelError(()))),
-1581            ("error", Ok(Level::Error)),
-1582            ("warn", Ok(Level::Warn)),
-1583            ("info", Ok(Level::Info)),
-1584            ("debug", Ok(Level::Debug)),
-1585            ("trace", Ok(Level::Trace)),
-1586            ("ERROR", Ok(Level::Error)),
-1587            ("WARN", Ok(Level::Warn)),
-1588            ("INFO", Ok(Level::Info)),
-1589            ("DEBUG", Ok(Level::Debug)),
-1590            ("TRACE", Ok(Level::Trace)),
-1591            ("asdf", Err(ParseLevelError(()))),
-1592        ];
-1593        for &(s, ref expected) in &tests {
-1594            assert_eq!(expected, &s.parse());
-1595        }
-1596    }
-1597
-1598    #[test]
-1599    fn test_level_as_str() {
-1600        let tests = &[
-1601            (Level::Error, "ERROR"),
-1602            (Level::Warn, "WARN"),
-1603            (Level::Info, "INFO"),
-1604            (Level::Debug, "DEBUG"),
-1605            (Level::Trace, "TRACE"),
-1606        ];
-1607        for (input, expected) in tests {
-1608            assert_eq!(*expected, input.as_str());
-1609        }
-1610    }
-1611
-1612    #[test]
-1613    fn test_level_show() {
-1614        assert_eq!("INFO", Level::Info.to_string());
-1615        assert_eq!("ERROR", Level::Error.to_string());
-1616    }
-1617
-1618    #[test]
-1619    fn test_levelfilter_show() {
-1620        assert_eq!("OFF", LevelFilter::Off.to_string());
-1621        assert_eq!("ERROR", LevelFilter::Error.to_string());
-1622    }
-1623
-1624    #[test]
-1625    fn test_cross_cmp() {
-1626        assert!(Level::Debug > LevelFilter::Error);
-1627        assert!(LevelFilter::Warn < Level::Trace);
-1628        assert!(LevelFilter::Off < Level::Error);
-1629    }
-1630
-1631    #[test]
-1632    fn test_cross_eq() {
-1633        assert!(Level::Error == LevelFilter::Error);
-1634        assert!(LevelFilter::Off != Level::Error);
-1635        assert!(Level::Trace == LevelFilter::Trace);
-1636    }
-1637
-1638    #[test]
-1639    fn test_to_level() {
-1640        assert_eq!(Some(Level::Error), LevelFilter::Error.to_level());
-1641        assert_eq!(None, LevelFilter::Off.to_level());
-1642        assert_eq!(Some(Level::Debug), LevelFilter::Debug.to_level());
-1643    }
-1644
-1645    #[test]
-1646    fn test_to_level_filter() {
-1647        assert_eq!(LevelFilter::Error, Level::Error.to_level_filter());
-1648        assert_eq!(LevelFilter::Trace, Level::Trace.to_level_filter());
-1649    }
-1650
-1651    #[test]
-1652    fn test_level_filter_as_str() {
-1653        let tests = &[
-1654            (LevelFilter::Off, "OFF"),
-1655            (LevelFilter::Error, "ERROR"),
-1656            (LevelFilter::Warn, "WARN"),
-1657            (LevelFilter::Info, "INFO"),
-1658            (LevelFilter::Debug, "DEBUG"),
-1659            (LevelFilter::Trace, "TRACE"),
-1660        ];
-1661        for (input, expected) in tests {
-1662            assert_eq!(*expected, input.as_str());
-1663        }
-1664    }
-1665
-1666    #[test]
-1667    #[cfg_attr(not(debug_assertions), ignore)]
-1668    fn test_static_max_level_debug() {
-1669        if cfg!(feature = "max_level_off") {
-1670            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Off);
-1671        } else if cfg!(feature = "max_level_error") {
-1672            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Error);
-1673        } else if cfg!(feature = "max_level_warn") {
-1674            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Warn);
-1675        } else if cfg!(feature = "max_level_info") {
-1676            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Info);
-1677        } else if cfg!(feature = "max_level_debug") {
-1678            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Debug);
-1679        } else {
-1680            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Trace);
-1681        }
-1682    }
-1683
-1684    #[test]
-1685    #[cfg_attr(debug_assertions, ignore)]
-1686    fn test_static_max_level_release() {
-1687        if cfg!(feature = "release_max_level_off") {
-1688            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Off);
-1689        } else if cfg!(feature = "release_max_level_error") {
-1690            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Error);
-1691        } else if cfg!(feature = "release_max_level_warn") {
-1692            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Warn);
-1693        } else if cfg!(feature = "release_max_level_info") {
-1694            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Info);
-1695        } else if cfg!(feature = "release_max_level_debug") {
-1696            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Debug);
-1697        } else if cfg!(feature = "release_max_level_trace") {
-1698            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Trace);
-1699        } else if cfg!(feature = "max_level_off") {
-1700            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Off);
-1701        } else if cfg!(feature = "max_level_error") {
-1702            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Error);
-1703        } else if cfg!(feature = "max_level_warn") {
-1704            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Warn);
-1705        } else if cfg!(feature = "max_level_info") {
-1706            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Info);
-1707        } else if cfg!(feature = "max_level_debug") {
-1708            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Debug);
-1709        } else {
-1710            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Trace);
-1711        }
-1712    }
-1713
-1714    #[test]
-1715    #[cfg(feature = "std")]
-1716    fn test_error_trait() {
-1717        use super::SetLoggerError;
-1718        let e = SetLoggerError(());
-1719        assert_eq!(
-1720            &e.to_string(),
-1721            "attempted to set a logger after the logging system \
-1722             was already initialized"
-1723        );
-1724    }
-1725
-1726    #[test]
-1727    fn test_metadata_builder() {
-1728        use super::MetadataBuilder;
-1729        let target = "myApp";
-1730        let metadata_test = MetadataBuilder::new()
-1731            .level(Level::Debug)
-1732            .target(target)
-1733            .build();
-1734        assert_eq!(metadata_test.level(), Level::Debug);
-1735        assert_eq!(metadata_test.target(), "myApp");
-1736    }
-1737
-1738    #[test]
-1739    fn test_metadata_convenience_builder() {
-1740        use super::Metadata;
-1741        let target = "myApp";
-1742        let metadata_test = Metadata::builder()
-1743            .level(Level::Debug)
-1744            .target(target)
-1745            .build();
-1746        assert_eq!(metadata_test.level(), Level::Debug);
-1747        assert_eq!(metadata_test.target(), "myApp");
-1748    }
-1749
-1750    #[test]
-1751    fn test_record_builder() {
-1752        use super::{MetadataBuilder, RecordBuilder};
-1753        let target = "myApp";
-1754        let metadata = MetadataBuilder::new().target(target).build();
-1755        let fmt_args = format_args!("hello");
-1756        let record_test = RecordBuilder::new()
-1757            .args(fmt_args)
-1758            .metadata(metadata)
-1759            .module_path(Some("foo"))
-1760            .file(Some("bar"))
-1761            .line(Some(30))
-1762            .build();
-1763        assert_eq!(record_test.metadata().target(), "myApp");
-1764        assert_eq!(record_test.module_path(), Some("foo"));
-1765        assert_eq!(record_test.file(), Some("bar"));
-1766        assert_eq!(record_test.line(), Some(30));
-1767    }
-1768
-1769    #[test]
-1770    fn test_record_convenience_builder() {
-1771        use super::{Metadata, Record};
-1772        let target = "myApp";
-1773        let metadata = Metadata::builder().target(target).build();
-1774        let fmt_args = format_args!("hello");
-1775        let record_test = Record::builder()
-1776            .args(fmt_args)
-1777            .metadata(metadata)
-1778            .module_path(Some("foo"))
-1779            .file(Some("bar"))
-1780            .line(Some(30))
-1781            .build();
-1782        assert_eq!(record_test.target(), "myApp");
-1783        assert_eq!(record_test.module_path(), Some("foo"));
-1784        assert_eq!(record_test.file(), Some("bar"));
-1785        assert_eq!(record_test.line(), Some(30));
-1786    }
-1787
-1788    #[test]
-1789    fn test_record_complete_builder() {
-1790        use super::{Level, Record};
-1791        let target = "myApp";
-1792        let record_test = Record::builder()
-1793            .module_path(Some("foo"))
-1794            .file(Some("bar"))
-1795            .line(Some(30))
-1796            .target(target)
-1797            .level(Level::Error)
-1798            .build();
-1799        assert_eq!(record_test.target(), "myApp");
-1800        assert_eq!(record_test.level(), Level::Error);
-1801        assert_eq!(record_test.module_path(), Some("foo"));
-1802        assert_eq!(record_test.file(), Some("bar"));
-1803        assert_eq!(record_test.line(), Some(30));
-1804    }
-1805
-1806    #[test]
-1807    #[cfg(feature = "kv")]
-1808    fn test_record_key_values_builder() {
-1809        use super::Record;
-1810        use crate::kv::{self, VisitSource};
-1811
-1812        struct TestVisitSource {
-1813            seen_pairs: usize,
-1814        }
-1815
-1816        impl<'kvs> VisitSource<'kvs> for TestVisitSource {
-1817            fn visit_pair(
-1818                &mut self,
-1819                _: kv::Key<'kvs>,
-1820                _: kv::Value<'kvs>,
-1821            ) -> Result<(), kv::Error> {
-1822                self.seen_pairs += 1;
-1823                Ok(())
-1824            }
-1825        }
-1826
-1827        let kvs: &[(&str, i32)] = &[("a", 1), ("b", 2)];
-1828        let record_test = Record::builder().key_values(&kvs).build();
-1829
-1830        let mut visitor = TestVisitSource { seen_pairs: 0 };
-1831
-1832        record_test.key_values().visit(&mut visitor).unwrap();
-1833
-1834        assert_eq!(2, visitor.seen_pairs);
-1835    }
-1836
-1837    #[test]
-1838    #[cfg(feature = "kv")]
-1839    fn test_record_key_values_get_coerce() {
-1840        use super::Record;
-1841
-1842        let kvs: &[(&str, &str)] = &[("a", "1"), ("b", "2")];
-1843        let record = Record::builder().key_values(&kvs).build();
+1471/// [`set_logger_racy`]: fn.set_logger_racy.html
+1472#[cfg(target_has_atomic = "ptr")]
+1473pub fn set_logger(logger: &'static dyn Log) -> Result<(), SetLoggerError> {
+1474    set_logger_inner(|| logger)
+1475}
+1476
+1477#[cfg(target_has_atomic = "ptr")]
+1478fn set_logger_inner<F>(make_logger: F) -> Result<(), SetLoggerError>
+1479where
+1480    F: FnOnce() -> &'static dyn Log,
+1481{
+1482    match STATE.compare_exchange(
+1483        UNINITIALIZED,
+1484        INITIALIZING,
+1485        Ordering::Acquire,
+1486        Ordering::Relaxed,
+1487    ) {
+1488        Ok(UNINITIALIZED) => {
+1489            unsafe {
+1490                LOGGER = make_logger();
+1491            }
+1492            STATE.store(INITIALIZED, Ordering::Release);
+1493            Ok(())
+1494        }
+1495        Err(INITIALIZING) => {
+1496            while STATE.load(Ordering::Relaxed) == INITIALIZING {
+1497                std::hint::spin_loop();
+1498            }
+1499            Err(SetLoggerError(()))
+1500        }
+1501        _ => Err(SetLoggerError(())),
+1502    }
+1503}
+1504
+1505/// A thread-unsafe version of [`set_logger`].
+1506///
+1507/// This function is available on all platforms, even those that do not have
+1508/// support for atomics that is needed by [`set_logger`].
+1509///
+1510/// In almost all cases, [`set_logger`] should be preferred.
+1511///
+1512/// # Safety
+1513///
+1514/// This function is only safe to call when it cannot race with any other
+1515/// calls to `set_logger` or `set_logger_racy`.
+1516///
+1517/// This can be upheld by (for example) making sure that **there are no other
+1518/// threads**, and (on embedded) that **interrupts are disabled**.
+1519///
+1520/// It is safe to use other logging functions while this function runs
+1521/// (including all logging macros).
+1522///
+1523/// [`set_logger`]: fn.set_logger.html
+1524pub unsafe fn set_logger_racy(logger: &'static dyn Log) -> Result<(), SetLoggerError> {
+1525    match STATE.load(Ordering::Acquire) {
+1526        UNINITIALIZED => {
+1527            LOGGER = logger;
+1528            STATE.store(INITIALIZED, Ordering::Release);
+1529            Ok(())
+1530        }
+1531        INITIALIZING => {
+1532            // This is just plain UB, since we were racing another initialization function
+1533            unreachable!("set_logger_racy must not be used with other initialization functions")
+1534        }
+1535        _ => Err(SetLoggerError(())),
+1536    }
+1537}
+1538
+1539/// The type returned by [`set_logger`] if [`set_logger`] has already been called.
+1540///
+1541/// [`set_logger`]: fn.set_logger.html
+1542#[allow(missing_copy_implementations)]
+1543#[derive(Debug)]
+1544pub struct SetLoggerError(());
+1545
+1546impl fmt::Display for SetLoggerError {
+1547    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
+1548        fmt.write_str(SET_LOGGER_ERROR)
+1549    }
+1550}
+1551
+1552// The Error trait is not available in libcore
+1553#[cfg(feature = "std")]
+1554impl error::Error for SetLoggerError {}
+1555
+1556/// The type returned by [`from_str`] when the string doesn't match any of the log levels.
+1557///
+1558/// [`from_str`]: https://doc.rust-lang.org/std/str/trait.FromStr.html#tymethod.from_str
+1559#[allow(missing_copy_implementations)]
+1560#[derive(Debug, PartialEq, Eq)]
+1561pub struct ParseLevelError(());
+1562
+1563impl fmt::Display for ParseLevelError {
+1564    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
+1565        fmt.write_str(LEVEL_PARSE_ERROR)
+1566    }
+1567}
+1568
+1569// The Error trait is not available in libcore
+1570#[cfg(feature = "std")]
+1571impl error::Error for ParseLevelError {}
+1572
+1573/// Returns a reference to the logger.
+1574///
+1575/// If a logger has not been set, a no-op implementation is returned.
+1576pub fn logger() -> &'static dyn Log {
+1577    // Acquire memory ordering guarantees that current thread would see any
+1578    // memory writes that happened before store of the value
+1579    // into `STATE` with memory ordering `Release` or stronger.
+1580    //
+1581    // Since the value `INITIALIZED` is written only after `LOGGER` was
+1582    // initialized, observing it after `Acquire` load here makes both
+1583    // write to the `LOGGER` static and initialization of the logger
+1584    // internal state synchronized with current thread.
+1585    if STATE.load(Ordering::Acquire) != INITIALIZED {
+1586        static NOP: NopLogger = NopLogger;
+1587        &NOP
+1588    } else {
+1589        unsafe { LOGGER }
+1590    }
+1591}
+1592
+1593// WARNING: this is not part of the crate's public API and is subject to change at any time
+1594#[doc(hidden)]
+1595pub mod __private_api;
+1596
+1597/// The statically resolved maximum log level.
+1598///
+1599/// See the crate level documentation for information on how to configure this.
+1600///
+1601/// This value is checked by the log macros, but not by the `Log`ger returned by
+1602/// the [`logger`] function. Code that manually calls functions on that value
+1603/// should compare the level against this value.
+1604///
+1605/// [`logger`]: fn.logger.html
+1606pub const STATIC_MAX_LEVEL: LevelFilter = match cfg!(debug_assertions) {
+1607    false if cfg!(feature = "release_max_level_off") => LevelFilter::Off,
+1608    false if cfg!(feature = "release_max_level_error") => LevelFilter::Error,
+1609    false if cfg!(feature = "release_max_level_warn") => LevelFilter::Warn,
+1610    false if cfg!(feature = "release_max_level_info") => LevelFilter::Info,
+1611    false if cfg!(feature = "release_max_level_debug") => LevelFilter::Debug,
+1612    false if cfg!(feature = "release_max_level_trace") => LevelFilter::Trace,
+1613    _ if cfg!(feature = "max_level_off") => LevelFilter::Off,
+1614    _ if cfg!(feature = "max_level_error") => LevelFilter::Error,
+1615    _ if cfg!(feature = "max_level_warn") => LevelFilter::Warn,
+1616    _ if cfg!(feature = "max_level_info") => LevelFilter::Info,
+1617    _ if cfg!(feature = "max_level_debug") => LevelFilter::Debug,
+1618    _ => LevelFilter::Trace,
+1619};
+1620
+1621#[cfg(test)]
+1622mod tests {
+1623    use super::{Level, LevelFilter, ParseLevelError, STATIC_MAX_LEVEL};
+1624
+1625    #[test]
+1626    fn test_levelfilter_from_str() {
+1627        let tests = [
+1628            ("off", Ok(LevelFilter::Off)),
+1629            ("error", Ok(LevelFilter::Error)),
+1630            ("warn", Ok(LevelFilter::Warn)),
+1631            ("info", Ok(LevelFilter::Info)),
+1632            ("debug", Ok(LevelFilter::Debug)),
+1633            ("trace", Ok(LevelFilter::Trace)),
+1634            ("OFF", Ok(LevelFilter::Off)),
+1635            ("ERROR", Ok(LevelFilter::Error)),
+1636            ("WARN", Ok(LevelFilter::Warn)),
+1637            ("INFO", Ok(LevelFilter::Info)),
+1638            ("DEBUG", Ok(LevelFilter::Debug)),
+1639            ("TRACE", Ok(LevelFilter::Trace)),
+1640            ("asdf", Err(ParseLevelError(()))),
+1641        ];
+1642        for &(s, ref expected) in &tests {
+1643            assert_eq!(expected, &s.parse());
+1644        }
+1645    }
+1646
+1647    #[test]
+1648    fn test_level_from_str() {
+1649        let tests = [
+1650            ("OFF", Err(ParseLevelError(()))),
+1651            ("error", Ok(Level::Error)),
+1652            ("warn", Ok(Level::Warn)),
+1653            ("info", Ok(Level::Info)),
+1654            ("debug", Ok(Level::Debug)),
+1655            ("trace", Ok(Level::Trace)),
+1656            ("ERROR", Ok(Level::Error)),
+1657            ("WARN", Ok(Level::Warn)),
+1658            ("INFO", Ok(Level::Info)),
+1659            ("DEBUG", Ok(Level::Debug)),
+1660            ("TRACE", Ok(Level::Trace)),
+1661            ("asdf", Err(ParseLevelError(()))),
+1662        ];
+1663        for &(s, ref expected) in &tests {
+1664            assert_eq!(expected, &s.parse());
+1665        }
+1666    }
+1667
+1668    #[test]
+1669    fn test_level_as_str() {
+1670        let tests = &[
+1671            (Level::Error, "ERROR"),
+1672            (Level::Warn, "WARN"),
+1673            (Level::Info, "INFO"),
+1674            (Level::Debug, "DEBUG"),
+1675            (Level::Trace, "TRACE"),
+1676        ];
+1677        for (input, expected) in tests {
+1678            assert_eq!(*expected, input.as_str());
+1679        }
+1680    }
+1681
+1682    #[test]
+1683    fn test_level_show() {
+1684        assert_eq!("INFO", Level::Info.to_string());
+1685        assert_eq!("ERROR", Level::Error.to_string());
+1686    }
+1687
+1688    #[test]
+1689    fn test_levelfilter_show() {
+1690        assert_eq!("OFF", LevelFilter::Off.to_string());
+1691        assert_eq!("ERROR", LevelFilter::Error.to_string());
+1692    }
+1693
+1694    #[test]
+1695    fn test_cross_cmp() {
+1696        assert!(Level::Debug > LevelFilter::Error);
+1697        assert!(LevelFilter::Warn < Level::Trace);
+1698        assert!(LevelFilter::Off < Level::Error);
+1699    }
+1700
+1701    #[test]
+1702    fn test_cross_eq() {
+1703        assert!(Level::Error == LevelFilter::Error);
+1704        assert!(LevelFilter::Off != Level::Error);
+1705        assert!(Level::Trace == LevelFilter::Trace);
+1706    }
+1707
+1708    #[test]
+1709    fn test_to_level() {
+1710        assert_eq!(Some(Level::Error), LevelFilter::Error.to_level());
+1711        assert_eq!(None, LevelFilter::Off.to_level());
+1712        assert_eq!(Some(Level::Debug), LevelFilter::Debug.to_level());
+1713    }
+1714
+1715    #[test]
+1716    fn test_to_level_filter() {
+1717        assert_eq!(LevelFilter::Error, Level::Error.to_level_filter());
+1718        assert_eq!(LevelFilter::Trace, Level::Trace.to_level_filter());
+1719    }
+1720
+1721    #[test]
+1722    fn test_level_filter_as_str() {
+1723        let tests = &[
+1724            (LevelFilter::Off, "OFF"),
+1725            (LevelFilter::Error, "ERROR"),
+1726            (LevelFilter::Warn, "WARN"),
+1727            (LevelFilter::Info, "INFO"),
+1728            (LevelFilter::Debug, "DEBUG"),
+1729            (LevelFilter::Trace, "TRACE"),
+1730        ];
+1731        for (input, expected) in tests {
+1732            assert_eq!(*expected, input.as_str());
+1733        }
+1734    }
+1735
+1736    #[test]
+1737    fn test_level_up() {
+1738        let info = Level::Info;
+1739        let up = info.increment_severity();
+1740        assert_eq!(up, Level::Debug);
+1741
+1742        let trace = Level::Trace;
+1743        let up = trace.increment_severity();
+1744        // trace is already highest level
+1745        assert_eq!(up, trace);
+1746    }
+1747
+1748    #[test]
+1749    fn test_level_filter_up() {
+1750        let info = LevelFilter::Info;
+1751        let up = info.increment_severity();
+1752        assert_eq!(up, LevelFilter::Debug);
+1753
+1754        let trace = LevelFilter::Trace;
+1755        let up = trace.increment_severity();
+1756        // trace is already highest level
+1757        assert_eq!(up, trace);
+1758    }
+1759
+1760    #[test]
+1761    fn test_level_down() {
+1762        let info = Level::Info;
+1763        let down = info.decrement_severity();
+1764        assert_eq!(down, Level::Warn);
+1765
+1766        let error = Level::Error;
+1767        let down = error.decrement_severity();
+1768        // error is already lowest level
+1769        assert_eq!(down, error);
+1770    }
+1771
+1772    #[test]
+1773    fn test_level_filter_down() {
+1774        let info = LevelFilter::Info;
+1775        let down = info.decrement_severity();
+1776        assert_eq!(down, LevelFilter::Warn);
+1777
+1778        let error = LevelFilter::Error;
+1779        let down = error.decrement_severity();
+1780        assert_eq!(down, LevelFilter::Off);
+1781        // Off is already the lowest
+1782        assert_eq!(down.decrement_severity(), down);
+1783    }
+1784
+1785    #[test]
+1786    #[cfg_attr(not(debug_assertions), ignore)]
+1787    fn test_static_max_level_debug() {
+1788        if cfg!(feature = "max_level_off") {
+1789            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Off);
+1790        } else if cfg!(feature = "max_level_error") {
+1791            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Error);
+1792        } else if cfg!(feature = "max_level_warn") {
+1793            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Warn);
+1794        } else if cfg!(feature = "max_level_info") {
+1795            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Info);
+1796        } else if cfg!(feature = "max_level_debug") {
+1797            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Debug);
+1798        } else {
+1799            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Trace);
+1800        }
+1801    }
+1802
+1803    #[test]
+1804    #[cfg_attr(debug_assertions, ignore)]
+1805    fn test_static_max_level_release() {
+1806        if cfg!(feature = "release_max_level_off") {
+1807            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Off);
+1808        } else if cfg!(feature = "release_max_level_error") {
+1809            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Error);
+1810        } else if cfg!(feature = "release_max_level_warn") {
+1811            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Warn);
+1812        } else if cfg!(feature = "release_max_level_info") {
+1813            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Info);
+1814        } else if cfg!(feature = "release_max_level_debug") {
+1815            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Debug);
+1816        } else if cfg!(feature = "release_max_level_trace") {
+1817            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Trace);
+1818        } else if cfg!(feature = "max_level_off") {
+1819            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Off);
+1820        } else if cfg!(feature = "max_level_error") {
+1821            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Error);
+1822        } else if cfg!(feature = "max_level_warn") {
+1823            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Warn);
+1824        } else if cfg!(feature = "max_level_info") {
+1825            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Info);
+1826        } else if cfg!(feature = "max_level_debug") {
+1827            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Debug);
+1828        } else {
+1829            assert_eq!(STATIC_MAX_LEVEL, LevelFilter::Trace);
+1830        }
+1831    }
+1832
+1833    #[test]
+1834    #[cfg(feature = "std")]
+1835    fn test_error_trait() {
+1836        use super::SetLoggerError;
+1837        let e = SetLoggerError(());
+1838        assert_eq!(
+1839            &e.to_string(),
+1840            "attempted to set a logger after the logging system \
+1841             was already initialized"
+1842        );
+1843    }
 1844
-1845        assert_eq!(
-1846            "2",
-1847            record
-1848                .key_values()
-1849                .get("b".into())
-1850                .expect("missing key")
-1851                .to_borrowed_str()
-1852                .expect("invalid value")
-1853        );
-1854    }
-1855
-1856    // Test that the `impl Log for Foo` blocks work
-1857    // This test mostly operates on a type level, so failures will be compile errors
-1858    #[test]
-1859    fn test_foreign_impl() {
-1860        use super::Log;
-1861        #[cfg(feature = "std")]
-1862        use std::sync::Arc;
-1863
-1864        fn assert_is_log<T: Log + ?Sized>() {}
-1865
-1866        assert_is_log::<&dyn Log>();
-1867
-1868        #[cfg(feature = "std")]
-1869        assert_is_log::<Box<dyn Log>>();
-1870
-1871        #[cfg(feature = "std")]
-1872        assert_is_log::<Arc<dyn Log>>();
-1873
-1874        // Assert these statements for all T: Log + ?Sized
-1875        #[allow(unused)]
-1876        fn forall<T: Log + ?Sized>() {
-1877            #[cfg(feature = "std")]
-1878            assert_is_log::<Box<T>>();
-1879
-1880            assert_is_log::<&T>();
-1881
-1882            #[cfg(feature = "std")]
-1883            assert_is_log::<Arc<T>>();
-1884        }
-1885    }
-1886}
\ No newline at end of file +1845 #[test] +1846 fn test_metadata_builder() { +1847 use super::MetadataBuilder; +1848 let target = "myApp"; +1849 let metadata_test = MetadataBuilder::new() +1850 .level(Level::Debug) +1851 .target(target) +1852 .build(); +1853 assert_eq!(metadata_test.level(), Level::Debug); +1854 assert_eq!(metadata_test.target(), "myApp"); +1855 } +1856 +1857 #[test] +1858 fn test_metadata_convenience_builder() { +1859 use super::Metadata; +1860 let target = "myApp"; +1861 let metadata_test = Metadata::builder() +1862 .level(Level::Debug) +1863 .target(target) +1864 .build(); +1865 assert_eq!(metadata_test.level(), Level::Debug); +1866 assert_eq!(metadata_test.target(), "myApp"); +1867 } +1868 +1869 #[test] +1870 fn test_record_builder() { +1871 use super::{MetadataBuilder, RecordBuilder}; +1872 let target = "myApp"; +1873 let metadata = MetadataBuilder::new().target(target).build(); +1874 let fmt_args = format_args!("hello"); +1875 let record_test = RecordBuilder::new() +1876 .args(fmt_args) +1877 .metadata(metadata) +1878 .module_path(Some("foo")) +1879 .file(Some("bar")) +1880 .line(Some(30)) +1881 .build(); +1882 assert_eq!(record_test.metadata().target(), "myApp"); +1883 assert_eq!(record_test.module_path(), Some("foo")); +1884 assert_eq!(record_test.file(), Some("bar")); +1885 assert_eq!(record_test.line(), Some(30)); +1886 } +1887 +1888 #[test] +1889 fn test_record_convenience_builder() { +1890 use super::{Metadata, Record}; +1891 let target = "myApp"; +1892 let metadata = Metadata::builder().target(target).build(); +1893 let fmt_args = format_args!("hello"); +1894 let record_test = Record::builder() +1895 .args(fmt_args) +1896 .metadata(metadata) +1897 .module_path(Some("foo")) +1898 .file(Some("bar")) +1899 .line(Some(30)) +1900 .build(); +1901 assert_eq!(record_test.target(), "myApp"); +1902 assert_eq!(record_test.module_path(), Some("foo")); +1903 assert_eq!(record_test.file(), Some("bar")); +1904 assert_eq!(record_test.line(), Some(30)); +1905 } +1906 +1907 #[test] +1908 fn test_record_complete_builder() { +1909 use super::{Level, Record}; +1910 let target = "myApp"; +1911 let record_test = Record::builder() +1912 .module_path(Some("foo")) +1913 .file(Some("bar")) +1914 .line(Some(30)) +1915 .target(target) +1916 .level(Level::Error) +1917 .build(); +1918 assert_eq!(record_test.target(), "myApp"); +1919 assert_eq!(record_test.level(), Level::Error); +1920 assert_eq!(record_test.module_path(), Some("foo")); +1921 assert_eq!(record_test.file(), Some("bar")); +1922 assert_eq!(record_test.line(), Some(30)); +1923 } +1924 +1925 #[test] +1926 #[cfg(feature = "kv")] +1927 fn test_record_key_values_builder() { +1928 use super::Record; +1929 use crate::kv::{self, VisitSource}; +1930 +1931 struct TestVisitSource { +1932 seen_pairs: usize, +1933 } +1934 +1935 impl<'kvs> VisitSource<'kvs> for TestVisitSource { +1936 fn visit_pair( +1937 &mut self, +1938 _: kv::Key<'kvs>, +1939 _: kv::Value<'kvs>, +1940 ) -> Result<(), kv::Error> { +1941 self.seen_pairs += 1; +1942 Ok(()) +1943 } +1944 } +1945 +1946 let kvs: &[(&str, i32)] = &[("a", 1), ("b", 2)]; +1947 let record_test = Record::builder().key_values(&kvs).build(); +1948 +1949 let mut visitor = TestVisitSource { seen_pairs: 0 }; +1950 +1951 record_test.key_values().visit(&mut visitor).unwrap(); +1952 +1953 assert_eq!(2, visitor.seen_pairs); +1954 } +1955 +1956 #[test] +1957 #[cfg(feature = "kv")] +1958 fn test_record_key_values_get_coerce() { +1959 use super::Record; +1960 +1961 let kvs: &[(&str, &str)] = &[("a", "1"), ("b", "2")]; +1962 let record = Record::builder().key_values(&kvs).build(); +1963 +1964 assert_eq!( +1965 "2", +1966 record +1967 .key_values() +1968 .get("b".into()) +1969 .expect("missing key") +1970 .to_borrowed_str() +1971 .expect("invalid value") +1972 ); +1973 } +1974 +1975 // Test that the `impl Log for Foo` blocks work +1976 // This test mostly operates on a type level, so failures will be compile errors +1977 #[test] +1978 fn test_foreign_impl() { +1979 use super::Log; +1980 #[cfg(feature = "std")] +1981 use std::sync::Arc; +1982 +1983 fn assert_is_log<T: Log + ?Sized>() {} +1984 +1985 assert_is_log::<&dyn Log>(); +1986 +1987 #[cfg(feature = "std")] +1988 assert_is_log::<Box<dyn Log>>(); +1989 +1990 #[cfg(feature = "std")] +1991 assert_is_log::<Arc<dyn Log>>(); +1992 +1993 // Assert these statements for all T: Log + ?Sized +1994 #[allow(unused)] +1995 fn forall<T: Log + ?Sized>() { +1996 #[cfg(feature = "std")] +1997 assert_is_log::<Box<T>>(); +1998 +1999 assert_is_log::<&T>(); +2000 +2001 #[cfg(feature = "std")] +2002 assert_is_log::<Arc<T>>(); +2003 } +2004 } +2005}
\ No newline at end of file diff --git a/src/log/macros.rs.html b/src/log/macros.rs.html index f9d2247..28dee28 100644 --- a/src/log/macros.rs.html +++ b/src/log/macros.rs.html @@ -1,4 +1,4 @@ -macros.rs - source

log/
macros.rs

1// Copyright 2014-2015 The Rust Project Developers. See the COPYRIGHT
+macros.rs - source

log/
macros.rs

1// Copyright 2014-2015 The Rust Project Developers. See the COPYRIGHT
 2// file at the top-level directory of this distribution and at
 3// http://rust-lang.org/COPYRIGHT.
 4//
diff --git a/src/unicode_ident/lib.rs.html b/src/unicode_ident/lib.rs.html
index f0a1530..b251524 100644
--- a/src/unicode_ident/lib.rs.html
+++ b/src/unicode_ident/lib.rs.html
@@ -1,4 +1,4 @@
-lib.rs - source

unicode_ident/
lib.rs

1//! [![github]](https://github.com/dtolnay/unicode-ident)&ensp;[![crates-io]](https://crates.io/crates/unicode-ident)&ensp;[![docs-rs]](https://docs.rs/unicode-ident)
+lib.rs - source

unicode_ident/
lib.rs

1//! [![github]](https://github.com/dtolnay/unicode-ident)&ensp;[![crates-io]](https://crates.io/crates/unicode-ident)&ensp;[![docs-rs]](https://docs.rs/unicode-ident)
 2//!
 3//! [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=github
 4//! [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rust
@@ -43,9 +43,9 @@
 43//!
 44//! | | static storage | 0% nonascii | 1% | 10% | 100% nonascii |
 45//! |---|---|---|---|---|---|
-46//! | **`unicode-ident`** | 10.4 K | 1.03 ns | 1.02 ns | 1.11 ns | 1.66 ns |
-47//! | **`unicode-xid`** | 11.8 K | 2.57 ns | 2.74 ns | 3.20 ns | 9.35 ns |
-48//! | **`ucd-trie`** | 10.3 K | 1.27 ns | 1.27 ns | 1.41 ns | 2.53 ns |
+46//! | **`unicode-ident`** | 10.5 K | 1.03 ns | 1.02 ns | 1.11 ns | 1.66 ns |
+47//! | **`unicode-xid`** | 12.0 K | 2.57 ns | 2.74 ns | 3.20 ns | 9.35 ns |
+48//! | **`ucd-trie`** | 10.4 K | 1.27 ns | 1.27 ns | 1.41 ns | 2.53 ns |
 49//! | **`fst`** | 144 K | 49.3 ns | 49.1 ns | 47.1 ns | 27.9 ns |
 50//! | **`roaring`** | 66.1 K | 4.10 ns | 4.05 ns | 4.02 ns | 5.12 ns |
 51//!
@@ -242,7 +242,7 @@
 242//! this data structure is straight-line code with no need for branching.
 243
 244#![no_std]
-245#![doc(html_root_url = "https://docs.rs/unicode-ident/1.0.18")]
+245#![doc(html_root_url = "https://docs.rs/unicode-ident/1.0.19")]
 246#![allow(clippy::doc_markdown, clippy::must_use_candidate)]
 247
 248#[rustfmt::skip]
diff --git a/src/unicode_ident/tables.rs.html b/src/unicode_ident/tables.rs.html
index 1ef2ea0..557810a 100644
--- a/src/unicode_ident/tables.rs.html
+++ b/src/unicode_ident/tables.rs.html
@@ -1,6 +1,6 @@
-tables.rs - source

unicode_ident/
tables.rs

1// @generated by ../generate. To regenerate, run the following in the repo root:
+tables.rs - source

unicode_ident/
tables.rs

1// @generated by ../generate. To regenerate, run the following in the repo root:
 2//
-3// $ curl -LO https://www.unicode.org/Public/zipped/16.0.0/UCD.zip
+3// $ curl -LO https://www.unicode.org/Public/17.0.0/ucd/UCD.zip
 4// $ unzip UCD.zip -d UCD
 5// $ cargo run --manifest-path generate/Cargo.toml
 6
@@ -28,7 +28,7 @@
 28
 29pub(crate) const CHUNK: usize = 64;
 30
-31pub(crate) static TRIE_START: Align8<[u8; 402]> = Align8([
+31pub(crate) static TRIE_START: Align8<[u8; 411]> = Align8([
 32    0x04, 0x0B, 0x0F, 0x13, 0x17, 0x1B, 0x1F, 0x23, 0x27, 0x2D, 0x31, 0x34, 0x38, 0x3C, 0x40, 0x02,
 33    0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x4D, 0x00, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
 34    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
@@ -39,22 +39,22 @@
 39    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x60, 0x64, 0x66,
 40    0x6A, 0x6E, 0x72, 0x28, 0x76, 0x78, 0x7C, 0x80, 0x84, 0x88, 0x8C, 0x90, 0x94, 0x98, 0x9C, 0xA0,
 41    0x05, 0x2B, 0xA4, 0x00, 0x00, 0x00, 0x00, 0xA6, 0x05, 0x05, 0xA8, 0x05, 0x05, 0x05, 0x05, 0x05,
-42    0x05, 0x32, 0x05, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-43    0xAF, 0x00, 0x00, 0x00, 0x05, 0xB3, 0xB7, 0xBB, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-44    0x05, 0x05, 0x05, 0x43, 0x05, 0x05, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-45    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x52, 0xC3, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x00,
-46    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0xD4, 0x00, 0x00, 0x00, 0xCA,
-47    0xDB, 0xDF, 0xE3, 0xCD, 0xE7, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+42    0x05, 0x32, 0x05, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+43    0xAE, 0x00, 0x00, 0x00, 0x05, 0xB2, 0xB6, 0xBA, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+44    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+45    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x43, 0xC2, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x00,
+46    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0xD3, 0x00, 0x00, 0x00, 0xC9,
+47    0xD9, 0xDD, 0xE1, 0xE5, 0xE9, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 48    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
 49    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
 50    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
 51    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
 52    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-53    0x05, 0x05, 0x05, 0xED, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xA9, 0xF0, 0x05, 0x05, 0x05,
+53    0x05, 0x05, 0x05, 0xEF, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xF1, 0x05, 0x05, 0x05,
 54    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xF3, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-55    0x05, 0x05, 0x05, 0x05, 0x05, 0xAC, 0x05, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x05, 0xB0, 0x00, 0x00,
-56    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xEE, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-57    0x05, 0xF1,
+55    0x05, 0x05, 0x05, 0x05, 0x05, 0x52, 0x05, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x05, 0xAF, 0x00, 0x00,
+56    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xA9, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+57    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xF7,
 58]);
 59
 60pub(crate) static TRIE_CONTINUE: Align8<[u8; 1793]> = Align8([
@@ -68,22 +68,22 @@
 68    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x62, 0x64, 0x68,
 69    0x6C, 0x70, 0x74, 0x28, 0x76, 0x7A, 0x7E, 0x82, 0x86, 0x8A, 0x8E, 0x92, 0x96, 0x9A, 0x9E, 0xA2,
 70    0x05, 0x2B, 0xA4, 0x00, 0x00, 0x00, 0x00, 0xA6, 0x05, 0x05, 0xAB, 0x05, 0x05, 0x05, 0x05, 0x05,
-71    0x05, 0x32, 0x05, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-72    0xB1, 0x00, 0x00, 0x00, 0x05, 0xB5, 0xB9, 0xBD, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-73    0x05, 0x05, 0x05, 0x43, 0x05, 0x05, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-74    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x52, 0xC3, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x00,
-75    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xC4, 0xC7, 0xCF, 0xD2, 0xD6, 0x00, 0xD8, 0x00, 0xCA,
-76    0xDD, 0xE1, 0xE5, 0xCD, 0xE9, 0x00, 0x00, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00,
+71    0x05, 0x32, 0x05, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+72    0xB0, 0x00, 0x00, 0x00, 0x05, 0xB4, 0xB8, 0xBC, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+73    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xBE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+74    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x43, 0xC2, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x00,
+75    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xC3, 0xC6, 0xCE, 0xD1, 0xD5, 0x00, 0xD7, 0x00, 0xC9,
+76    0xDB, 0xDF, 0xE3, 0xE7, 0xEB, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x00, 0x00,
 77    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
 78    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
 79    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
 80    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
 81    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-82    0x05, 0x05, 0x05, 0xED, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xA9, 0xF0, 0x05, 0x05, 0x05,
+82    0x05, 0x05, 0x05, 0xEF, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xF1, 0x05, 0x05, 0x05,
 83    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xF3, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-84    0x05, 0x05, 0x05, 0x05, 0x05, 0xAC, 0x05, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x05, 0xB0, 0x00, 0x00,
-85    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xEE, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-86    0x05, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+84    0x05, 0x05, 0x05, 0x05, 0x05, 0x52, 0x05, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x05, 0xAF, 0x00, 0x00,
+85    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xA9, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+86    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00,
 87    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 88    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 89    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -170,10 +170,10 @@
 170    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 171    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 172    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-173    0xD9,
+173    0xCF,
 174]);
 175
-176pub(crate) static LEAF: Align64<[u8; 7904]> = Align64([
+176pub(crate) static LEAF: Align64<[u8; 7968]> = Align64([
 177    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 178    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 179    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -221,11 +221,11 @@
 221    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 222    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x24,
 223    0xFF, 0xFF, 0x3F, 0x04, 0x10, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0x07, 0xFF, 0xFF,
-224    0xFF, 0x7E, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+224    0xFF, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 225    0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x23, 0x00, 0x00, 0x01, 0xFF, 0x03, 0x00, 0xFE, 0xFF,
 226    0xE1, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xC5, 0x23, 0x00, 0x40, 0x00, 0xB0, 0x03, 0x00, 0x03, 0x10,
 227    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x07, 0xFF, 0xFF,
-228    0xFF, 0x7E, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF,
+228    0xFF, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF,
 229    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFE, 0xFF,
 230    0xEF, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xC5, 0xF3, 0x9F, 0x79, 0x80, 0xB0, 0xCF, 0xFF, 0x03, 0x50,
 231    0xE0, 0x87, 0xF9, 0xFF, 0xFF, 0xFD, 0x6D, 0x03, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x1C, 0x00,
@@ -236,12 +236,12 @@
 236    0xEE, 0xBF, 0xFB, 0xFF, 0xFF, 0xFD, 0xED, 0xF3, 0xBF, 0x3B, 0x01, 0x00, 0xCF, 0xFF, 0x00, 0xFE,
 237    0xEE, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xED, 0xF3, 0x9F, 0x39, 0xE0, 0xB0, 0xCF, 0xFF, 0x02, 0x00,
 238    0xEC, 0xC7, 0x3D, 0xD6, 0x18, 0xC7, 0xFF, 0xC3, 0xC7, 0x3D, 0x81, 0x00, 0xC0, 0xFF, 0x00, 0x00,
-239    0xE0, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xFF, 0x23, 0x00, 0x00, 0x00, 0x27, 0x03, 0x00, 0x00, 0x00,
-240    0xE1, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xEF, 0x23, 0x00, 0x00, 0x00, 0x60, 0x03, 0x00, 0x06, 0x00,
+239    0xE0, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xFF, 0x23, 0x00, 0x00, 0x00, 0x37, 0x03, 0x00, 0x00, 0x00,
+240    0xE1, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xEF, 0x23, 0x00, 0x00, 0x00, 0x70, 0x03, 0x00, 0x06, 0x00,
 241    0xF0, 0xDF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0x27, 0x00, 0x40, 0x70, 0x80, 0x03, 0x00, 0x00, 0xFC,
 242    0xE0, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0xFB, 0x2F, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-243    0xFF, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xFF, 0xF3, 0xDF, 0x3D, 0x60, 0x27, 0xCF, 0xFF, 0x00, 0x00,
-244    0xEF, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xEF, 0xF3, 0xDF, 0x3D, 0x60, 0x60, 0xCF, 0xFF, 0x0E, 0x00,
+243    0xFF, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xFF, 0xF3, 0xDF, 0x3D, 0x60, 0x37, 0xCF, 0xFF, 0x00, 0x00,
+244    0xEF, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xEF, 0xF3, 0xDF, 0x3D, 0x60, 0x70, 0xCF, 0xFF, 0x0E, 0x00,
 245    0xFF, 0xDF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x7D, 0xF0, 0x80, 0xCF, 0xFF, 0x00, 0xFC,
 246    0xEE, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0xFB, 0x2F, 0x7F, 0x84, 0x5F, 0xFF, 0xC0, 0xFF, 0x0C, 0x00,
 247    0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -299,7 +299,7 @@
 299    0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 300    0xF8, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00,
 301    0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x9F,
-302    0xFF, 0x03, 0xFF, 0x03, 0x80, 0x00, 0xFF, 0xBF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+302    0xFF, 0x03, 0xFF, 0x03, 0x80, 0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0x0F, 0x00, 0x00,
 303    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x03, 0x00, 0xF8, 0x0F, 0x00,
 304    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00,
 305    0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F,
@@ -310,8 +310,8 @@
 310    0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x00, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
 311    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 312    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-313    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-314    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
+313    0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x27, 0x00, 0xF0, 0x00, 0xFF, 0xFF,
+314    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 315    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80,
 316    0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 317    0x84, 0xFC, 0x2F, 0x3F, 0x50, 0xFD, 0xFF, 0xF3, 0xE0, 0x43, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
@@ -340,16 +340,16 @@
 340    0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F,
 341    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 342    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-343    0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x27, 0x00, 0xF0, 0x00, 0xFF, 0xFF,
-344    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+343    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+344    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF,
 345    0xFF, 0x1F, 0xFF, 0xFF, 0x00, 0x0C, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x80,
 346    0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
 347    0x00, 0x00, 0x80, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-348    0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xEB, 0x1F, 0x00, 0x00, 0xFC, 0xFF,
+348    0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0xFE, 0xFF,
 349    0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xBF,
 350    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00,
 351    0x00, 0x00, 0x80, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-352    0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xEB, 0x1F, 0x00, 0x00, 0xFC, 0xFF,
+352    0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0xFE, 0xFF,
 353    0xBB, 0xF7, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00,
 354    0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x68,
 355    0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x1F,
@@ -412,7 +412,7 @@
 412    0xFF, 0xF7, 0xB7, 0xFF, 0xFB, 0xFF, 0xFB, 0x1B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00,
 413    0x3F, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x91, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0x7F, 0x00,
 414    0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x37, 0x00,
-415    0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+415    0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00,
 416    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 417    0x01, 0x00, 0xEF, 0xFE, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x1F,
 418    0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00,
@@ -431,11 +431,11 @@
 431    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xBE, 0xFF, 0xFF,
 432    0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 433    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-434    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+434    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 435    0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
 436    0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00,
 437    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-438    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1B, 0x03, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
+438    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1B, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
 439    0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF,
 440    0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00,
 441    0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00,
@@ -484,16 +484,16 @@
 484    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00,
 485    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 486    0xFF, 0xFF, 0xFF, 0x23, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01,
-487    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+487    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
 488    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0x03,
 489    0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF,
 490    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 491    0x7F, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0xBF, 0xFD, 0xFF, 0xFF,
-492    0xFF, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+492    0xFF, 0x03, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
 493    0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x01, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xFC, 0xFF,
 494    0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 495    0x7F, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xB4, 0xFF, 0x00, 0xFF, 0x03, 0xBF, 0xFD, 0xFF, 0xFF,
-496    0xFF, 0x7F, 0xFB, 0x01, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+496    0xFF, 0x7F, 0xFB, 0x01, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x03, 0x00, 0x00,
 497    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 498    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x07, 0x00,
 499    0xF4, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -514,158 +514,162 @@
 514    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 515    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 516    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-517    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+517    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 518    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 519    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
 520    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 521    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 522    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-523    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-524    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF,
-525    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+523    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+524    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+525    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 526    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-527    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+527    0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 528    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-529    0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+529    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 530    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-531    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+531    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 532    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-533    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-534    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-535    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF,
-536    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00,
-537    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xE0,
-538    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-539    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x03, 0xFF, 0xFF,
-540    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x3F, 0x1F, 0x00,
-541    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x0F, 0x00, 0xFF, 0x03, 0xF8, 0xFF, 0xFF, 0xE0,
-542    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-543    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+533    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF,
+534    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00,
+535    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xE0,
+536    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+537    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x03, 0xFF, 0xFF,
+538    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x3F, 0x1F, 0x00,
+539    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x0F, 0x00, 0xFF, 0x03, 0xF8, 0xFF, 0xFF, 0xE0,
+540    0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+541    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+542    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+543    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00,
 544    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-545    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00,
+545    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 546    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-547    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+547    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x03,
 548    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-549    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x03,
-550    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-551    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-552    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-553    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
-554    0x00, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
-555    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-556    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-557    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-558    0xFF, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x03, 0x00,
-559    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-560    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80,
-561    0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+549    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+550    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+551    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+552    0x00, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x7C, 0x00,
+553    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+554    0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+555    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+556    0xFF, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x7F, 0x00,
+557    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+558    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80,
+559    0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+560    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00,
+561    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 562    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 563    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-564    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-565    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-566    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x6F,
-567    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-568    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
-569    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+564    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x6F,
+565    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+566    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
+567    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+568    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+569    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 570    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-571    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-572    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-573    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x1F,
-574    0xFF, 0x01, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-575    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-576    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-577    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE3, 0x07, 0xF8,
-578    0xE7, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-579    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x1F,
-580    0xFF, 0x01, 0xFF, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-581    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+571    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x1F,
+572    0xFF, 0x01, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+573    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+574    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+575    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE3, 0x07, 0xF8,
+576    0xE7, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+577    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x1F,
+578    0xFF, 0x01, 0xFF, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+579    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+580    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+581    0xFF, 0xFF, 0xFF, 0x7F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 582    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-583    0xFF, 0xFF, 0xFF, 0x7F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-584    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+583    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+584    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
 585    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-586    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
+586    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 587    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-588    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-589    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-590    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x6F, 0xFF, 0x7F,
-591    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+588    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
+589    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+590    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+591    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 592    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-593    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-594    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-595    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-596    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
-597    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-598    0xFF, 0xFF, 0xFF, 0xDF, 0x64, 0xDE, 0xFF, 0xEB, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-599    0xBF, 0xE7, 0xDF, 0xDF, 0xFF, 0xFF, 0xFF, 0x7B, 0x5F, 0xFC, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-600    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-601    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-602    0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xF7,
-603    0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF,
-604    0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-605    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-606    0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xF7,
-607    0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF,
-608    0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-609    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x20, 0x00,
-610    0x10, 0x00, 0x00, 0xF8, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-611    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+593    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+594    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
+595    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+596    0xFF, 0xFF, 0xFF, 0xDF, 0x64, 0xDE, 0xFF, 0xEB, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+597    0xBF, 0xE7, 0xDF, 0xDF, 0xFF, 0xFF, 0xFF, 0x7B, 0x5F, 0xFC, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+598    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+599    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+600    0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xF7,
+601    0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF,
+602    0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+603    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+604    0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xF7,
+605    0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF,
+606    0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+607    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x20, 0x00,
+608    0x10, 0x00, 0x00, 0xF8, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+609    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+610    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+611    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00,
 612    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-613    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-614    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
-615    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00,
-616    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-617    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0x3F, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+613    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0x3F, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+614    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+615    0x7F, 0xFF, 0xFF, 0xF9, 0xDB, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00,
+616    0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+617    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x3F, 0xFF, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 618    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-619    0x7F, 0xFF, 0xFF, 0xF9, 0xDB, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00,
-620    0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-621    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x3F, 0xFF, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+619    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+620    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00,
+621    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 622    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 623    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-624    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00,
+624    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
 625    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 626    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 627    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-628    0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
+628    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00,
 629    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-630    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+630    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x01, 0x00,
 631    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-632    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00,
+632    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
 633    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-634    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x01, 0x00,
+634    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
 635    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-636    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
+636    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0xB7, 0x3F, 0x1F, 0xC0,
 637    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-638    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
-639    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-640    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-641    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-642    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+638    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x6F, 0xFF, 0x7F,
+639    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+640    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xC0,
+641    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+642    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x6F, 0xFF, 0x7F,
 643    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-644    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
-645    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00,
+644    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+645    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 646    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-647    0xEF, 0xFF, 0xFF, 0xFF, 0x96, 0xFE, 0xF7, 0x0A, 0x84, 0xEA, 0x96, 0xAA, 0x96, 0xF7, 0xF7, 0x5E,
-648    0xFF, 0xFB, 0xFF, 0x0F, 0xEE, 0xFB, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-649    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+647    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+648    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
+649    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00,
 650    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-651    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-652    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
-653    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-654    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-655    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-656    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-657    0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+651    0xEF, 0xFF, 0xFF, 0xFF, 0x96, 0xFE, 0xF7, 0x0A, 0x84, 0xEA, 0x96, 0xAA, 0x96, 0xF7, 0xF7, 0x5E,
+652    0xFF, 0xFB, 0xFF, 0x0F, 0xEE, 0xFB, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+653    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+654    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+655    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+656    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
+657    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 658    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-659    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+659    0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 660    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 661    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-662    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+662    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 663    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-664    0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+664    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 665    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 666    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 667    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00,
 668    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 669    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 670    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-671]);
\ No newline at end of file +671 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, +672 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +673 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +674 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +675]);
\ No newline at end of file diff --git a/unicode_ident/all.html b/unicode_ident/all.html index c444aac..0e0d7e0 100644 --- a/unicode_ident/all.html +++ b/unicode_ident/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Functions

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

List of all items

Functions

\ No newline at end of file diff --git a/unicode_ident/fn.is_xid_continue.html b/unicode_ident/fn.is_xid_continue.html index bfb5071..2b65303 100644 --- a/unicode_ident/fn.is_xid_continue.html +++ b/unicode_ident/fn.is_xid_continue.html @@ -1,2 +1,2 @@ -is_xid_continue in unicode_ident - Rust

Function is_xid_continue

Source
pub fn is_xid_continue(ch: char) -> bool
Expand description

Whether the character has the Unicode property XID_Continue.

+is_xid_continue in unicode_ident - Rust

Function is_xid_continue

Source
pub fn is_xid_continue(ch: char) -> bool
Expand description

Whether the character has the Unicode property XID_Continue.

\ No newline at end of file diff --git a/unicode_ident/fn.is_xid_start.html b/unicode_ident/fn.is_xid_start.html index 9b38d6d..cc9e248 100644 --- a/unicode_ident/fn.is_xid_start.html +++ b/unicode_ident/fn.is_xid_start.html @@ -1,2 +1,2 @@ -is_xid_start in unicode_ident - Rust

Function is_xid_start

Source
pub fn is_xid_start(ch: char) -> bool
Expand description

Whether the character has the Unicode property XID_Start.

+is_xid_start in unicode_ident - Rust

Function is_xid_start

Source
pub fn is_xid_start(ch: char) -> bool
Expand description

Whether the character has the Unicode property XID_Start.

\ No newline at end of file diff --git a/unicode_ident/index.html b/unicode_ident/index.html index 210363b..63e306d 100644 --- a/unicode_ident/index.html +++ b/unicode_ident/index.html @@ -1,4 +1,4 @@ -unicode_ident - Rust

Crate unicode_ident

Source
Expand description

githubcrates-iodocs-rs

+unicode_ident - Rust

Crate unicode_ident

Source
Expand description

githubcrates-iodocs-rs


Implementation of Unicode Standard Annex #31 for determining which char values are valid in programming language identifiers.

@@ -24,9 +24,9 @@ single char has the XID_Start or XID_Continue Unicode property, comparing across different ratios of ASCII to non-ASCII codepoints in the input data.

- - - + + +
static storage0% nonascii1%10%100% nonascii
unicode-ident10.4 K1.03 ns1.02 ns1.11 ns1.66 ns
unicode-xid11.8 K2.57 ns2.74 ns3.20 ns9.35 ns
ucd-trie10.3 K1.27 ns1.27 ns1.41 ns2.53 ns
unicode-ident10.5 K1.03 ns1.02 ns1.11 ns1.66 ns
unicode-xid12.0 K2.57 ns2.74 ns3.20 ns9.35 ns
ucd-trie10.4 K1.27 ns1.27 ns1.41 ns2.53 ns
fst144 K49.3 ns49.1 ns47.1 ns27.9 ns
roaring66.1 K4.10 ns4.05 ns4.02 ns5.12 ns