From 739bd5a9cba6c4c341c6927ed4f3ed60fc85a4e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Juli=C3=A1n=20Espina?= Date: Sun, 23 Apr 2023 08:23:52 +0000 Subject: [PATCH] Optimize `String.prototype.normalize` (#2848) We currently use `unicode_normalization` to handle the `String.prototype.normalize` method. However, the crate doesn't support UTF-16 as a first class string, so we had to do some hacks by converting the valid parts of a string to UTF-8, normalizing each one, encoding back to UTF-16 and concatenating everything with the unpaired surrogates within. All of this is obviously suboptimal for performance, which is why I leveraged the `icu_normalizer`, which does support UTF-16 input, to replace our current implementation. Additionally, this allows users to override the default normalization data if the `intl` feature is enabled by providing the required data in the `BoaProvider` data provider. --- Cargo.lock | 34 +-- boa_engine/Cargo.toml | 10 +- boa_engine/src/builtins/string/mod.rs | 122 +++++----- boa_engine/src/context/icu.rs | 55 ++++- boa_engine/src/context/mod.rs | 4 +- boa_icu_provider/Cargo.toml | 11 +- boa_icu_provider/data/min/any.rs | 2 + .../data/min/fallback/likelysubtags_v1/mod.rs | 6 + .../min/fallback/likelysubtags_v1/und.rs.data | 66 ++++++ boa_icu_provider/data/min/fallback/mod.rs | 4 + .../data/min/fallback/parents_v1/mod.rs | 6 + .../data/min/fallback/parents_v1/und.rs.data | 13 ++ .../data/min/fallback/supplement/co_v1/mod.rs | 6 + .../min/fallback/supplement/co_v1/und.rs.data | 22 ++ .../data/min/fallback/supplement/mod.rs | 2 + boa_icu_provider/data/min/mod.rs | 216 ++++++++++++++++++ .../data/min/normalizer/comp_v1/mod.rs | 6 + .../data/min/normalizer/comp_v1/und.rs.data | 7 + boa_icu_provider/data/min/normalizer/mod.rs | 6 + .../data/min/normalizer/nfd_v1/mod.rs | 6 + .../data/min/normalizer/nfd_v1/und.rs.data | 19 ++ .../data/min/normalizer/nfdex_v1/mod.rs | 6 + .../data/min/normalizer/nfdex_v1/und.rs.data | 8 + .../data/min/normalizer/nfkd_v1/mod.rs | 6 + .../data/min/normalizer/nfkd_v1/und.rs.data | 21 ++ .../data/min/normalizer/nfkdex_v1/mod.rs | 6 + .../data/min/normalizer/nfkdex_v1/und.rs.data | 8 + boa_icu_provider/src/bin/datagen.rs | 50 +++- boa_icu_provider/src/lib.rs | 42 +++- 29 files changed, 655 insertions(+), 115 deletions(-) create mode 100644 boa_icu_provider/data/min/any.rs create mode 100644 boa_icu_provider/data/min/fallback/likelysubtags_v1/mod.rs create mode 100644 boa_icu_provider/data/min/fallback/likelysubtags_v1/und.rs.data create mode 100644 boa_icu_provider/data/min/fallback/mod.rs create mode 100644 boa_icu_provider/data/min/fallback/parents_v1/mod.rs create mode 100644 boa_icu_provider/data/min/fallback/parents_v1/und.rs.data create mode 100644 boa_icu_provider/data/min/fallback/supplement/co_v1/mod.rs create mode 100644 boa_icu_provider/data/min/fallback/supplement/co_v1/und.rs.data create mode 100644 boa_icu_provider/data/min/fallback/supplement/mod.rs create mode 100644 boa_icu_provider/data/min/mod.rs create mode 100644 boa_icu_provider/data/min/normalizer/comp_v1/mod.rs create mode 100644 boa_icu_provider/data/min/normalizer/comp_v1/und.rs.data create mode 100644 boa_icu_provider/data/min/normalizer/mod.rs create mode 100644 boa_icu_provider/data/min/normalizer/nfd_v1/mod.rs create mode 100644 boa_icu_provider/data/min/normalizer/nfd_v1/und.rs.data create mode 100644 boa_icu_provider/data/min/normalizer/nfdex_v1/mod.rs create mode 100644 boa_icu_provider/data/min/normalizer/nfdex_v1/und.rs.data create mode 100644 boa_icu_provider/data/min/normalizer/nfkd_v1/mod.rs create mode 100644 boa_icu_provider/data/min/normalizer/nfkd_v1/und.rs.data create mode 100644 boa_icu_provider/data/min/normalizer/nfkdex_v1/mod.rs create mode 100644 boa_icu_provider/data/min/normalizer/nfkdex_v1/und.rs.data diff --git a/Cargo.lock b/Cargo.lock index f101427c9a..cffee4b071 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -413,6 +413,7 @@ dependencies = [ "icu_list", "icu_locid", "icu_locid_transform", + "icu_normalizer", "icu_plurals", "icu_provider", "icu_segmenter", @@ -439,7 +440,6 @@ dependencies = [ "textwrap", "thin-vec", "thiserror", - "unicode-normalization", "writeable", "yoke", "zerofrom", @@ -471,13 +471,16 @@ dependencies = [ name = "boa_icu_provider" version = "0.16.0" dependencies = [ + "icu_collections", "icu_datagen", + "icu_normalizer", "icu_provider", "icu_provider_adapters", "icu_provider_blob", "log", "once_cell", - "simple_logger 4.1.0", + "simple_logger", + "zerovec", ] [[package]] @@ -1974,9 +1977,9 @@ dependencies = [ [[package]] name = "icu_datagen" -version = "1.2.1" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f474bd38639e5af76d2a70ce60ccb553454a3d3257677de15570c359d2116c5b" +checksum = "3c20e7886449669257f4dfdad042b939a1a32ad618902a6b83936f7d9f7e8146" dependencies = [ "cached-path", "clap 4.2.4", @@ -2014,11 +2017,10 @@ dependencies = [ "proc-macro2", "quote", "rayon", - "rust-format", "serde", "serde-aux", "serde_json", - "simple_logger 1.16.0", + "simple_logger", "syn 1.0.109", "tinystr", "toml 0.5.11", @@ -3412,15 +3414,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "rust-format" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60e7c00b6c3bf5e38a880eec01d7e829d12ca682079f8238a464def3c4b31627" -dependencies = [ - "proc-macro2", -] - [[package]] name = "rustc-demangle" version = "0.1.23" @@ -3770,17 +3763,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" -[[package]] -name = "simple_logger" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45b60258a35dc3cb8a16890b8fd6723349bfa458d7960e25e633f1b1c19d7b5e" -dependencies = [ - "atty", - "log", - "winapi", -] - [[package]] name = "simple_logger" version = "4.1.0" diff --git a/boa_engine/Cargo.toml b/boa_engine/Cargo.toml index d14230fc9c..c6f13f0a14 100644 --- a/boa_engine/Cargo.toml +++ b/boa_engine/Cargo.toml @@ -15,7 +15,9 @@ rust-version.workspace = true profiler = ["boa_profiler/profiler"] deser = ["boa_interner/serde", "boa_ast/serde"] intl = [ - "dep:boa_icu_provider", + "boa_icu_provider/full", + "icu_normalizer/serde", + "icu_normalizer/std", "dep:icu_locid_transform", "dep:icu_locid", "dep:icu_datetime", @@ -53,6 +55,7 @@ boa_profiler.workspace = true boa_macros.workspace = true boa_ast.workspace = true boa_parser.workspace = true +boa_icu_provider.workspace = true serde = { version = "1.0.160", features = ["derive", "rc"] } serde_json = "1.0.96" rand = "0.8.5" @@ -66,7 +69,6 @@ indexmap = "1.9.3" ryu-js = "0.2.2" chrono = { version = "0.4.24", default-features = false, features = ["clock", "std"] } fast-float = "0.2.0" -unicode-normalization = "0.1.22" once_cell = "1.17.1" tap = "1.0.1" sptr = "0.3.2" @@ -77,10 +79,10 @@ num_enum = "0.6.1" pollster = "0.3.0" thin-vec = "0.2.12" itertools = { version = "0.10.5", default-features = false } +icu_normalizer = "1.2.0" # intl deps -boa_icu_provider = { workspace = true, optional = true } -icu_locid_transform = { version = "1.2.1", features = ["serde"], optional = true } +icu_locid_transform = { version = "1.2.1", features = ["std", "serde"], optional = true } icu_locid = { version = "1.2.0", features = ["serde"], optional = true } icu_datetime = { version = "1.2.0", features = ["serde", "experimental"], optional = true } icu_calendar = { version = "1.2.0", optional = true } diff --git a/boa_engine/src/builtins/string/mod.rs b/boa_engine/src/builtins/string/mod.rs index 4a6dde565a..eb71a7d228 100644 --- a/boa_engine/src/builtins/string/mod.rs +++ b/boa_engine/src/builtins/string/mod.rs @@ -24,6 +24,7 @@ use crate::{ Context, JsArgs, JsResult, JsString, JsValue, }; use boa_profiler::Profiler; +use icu_normalizer::{ComposingNormalizer, DecomposingNormalizer}; use std::cmp::{max, min}; use super::{BuiltInBuilder, BuiltInConstructor, IntrinsicObject}; @@ -31,6 +32,15 @@ use super::{BuiltInBuilder, BuiltInConstructor, IntrinsicObject}; mod string_iterator; pub(crate) use string_iterator::StringIterator; +/// The set of normalizers required for the `String.prototype.normalize` function. +#[derive(Debug)] +pub(crate) struct StringNormalizers { + pub(crate) nfc: ComposingNormalizer, + pub(crate) nfkc: ComposingNormalizer, + pub(crate) nfd: DecomposingNormalizer, + pub(crate) nfkd: DecomposingNormalizer, +} + #[cfg(test)] mod tests; @@ -2024,7 +2034,6 @@ impl String { args: &[JsValue], context: &mut Context<'_>, ) -> JsResult { - use unicode_normalization::UnicodeNormalization; /// Represents the type of normalization applied to a [`JsString`] #[derive(Clone, Copy)] pub(crate) enum Normalization { @@ -2033,79 +2042,72 @@ impl String { Nfkc, Nfkd, } + // 1. Let O be ? RequireObjectCoercible(this value). let this = this.require_object_coercible()?; // 2. Let S be ? ToString(O). let s = this.to_string(context)?; - let f = match args.get_or_undefined(0) { - // 3. If form is undefined, let f be "NFC". - &JsValue::Undefined => js_string!("NFC"), - // 4. Else, let f be ? ToString(form). - form => form.to_string(context)?, - }; - // 6. Let ns be the String value that is the result of normalizing S // into the normalization form named by f as specified in // https://unicode.org/reports/tr15/. - let normalization = match f { - ntype if &ntype == utf16!("NFC") => Normalization::Nfc, - ntype if &ntype == utf16!("NFD") => Normalization::Nfd, - ntype if &ntype == utf16!("NFKC") => Normalization::Nfkc, - ntype if &ntype == utf16!("NFKD") => Normalization::Nfkd, - // 5. If f is not one of "NFC", "NFD", "NFKC", or "NFKD", throw a RangeError exception. - _ => { - return Err(JsNativeError::range() - .with_message("The normalization form should be one of NFC, NFD, NFKC, NFKD.") - .into()); - } - }; - - let mut code_points = s.code_points(); - let mut result = Vec::with_capacity(s.len()); - - let mut next_unpaired_surrogate = None; - let mut buf = [0; 2]; - - loop { - let only_chars = code_points.by_ref().map_while(|cpoint| match cpoint { - CodePoint::Unicode(c) => Some(c), - CodePoint::UnpairedSurrogate(s) => { - next_unpaired_surrogate = Some(s); - None + let normalization = match args.get_or_undefined(0) { + // 3. If form is undefined, let f be "NFC". + &JsValue::Undefined => Normalization::Nfc, + // 4. Else, let f be ? ToString(form). + f => match f.to_string(context)? { + ntype if &ntype == utf16!("NFC") => Normalization::Nfc, + ntype if &ntype == utf16!("NFD") => Normalization::Nfd, + ntype if &ntype == utf16!("NFKC") => Normalization::Nfkc, + ntype if &ntype == utf16!("NFKD") => Normalization::Nfkd, + // 5. If f is not one of "NFC", "NFD", "NFKC", or "NFKD", throw a RangeError exception. + _ => { + return Err(JsNativeError::range() + .with_message( + "The normalization form should be one of NFC, NFD, NFKC, NFKD.", + ) + .into()); } - }); + }, + }; - match normalization { - Normalization::Nfc => { - for mapped in only_chars.nfc() { - result.extend_from_slice(mapped.encode_utf16(&mut buf)); - } - } - Normalization::Nfd => { - for mapped in only_chars.nfd() { - result.extend_from_slice(mapped.encode_utf16(&mut buf)); - } - } - Normalization::Nfkc => { - for mapped in only_chars.nfkc() { - result.extend_from_slice(mapped.encode_utf16(&mut buf)); - } - } - Normalization::Nfkd => { - for mapped in only_chars.nfkd() { - result.extend_from_slice(mapped.encode_utf16(&mut buf)); + let normalizers = { + #[cfg(not(feature = "intl"))] + { + use once_cell::sync::Lazy; + static NORMALIZERS: Lazy = Lazy::new(|| { + let provider = &boa_icu_provider::minimal(); + let nfc = ComposingNormalizer::try_new_nfc_unstable(provider) + .expect("minimal data should always be updated"); + let nfkc = ComposingNormalizer::try_new_nfkc_unstable(provider) + .expect("minimal data should always be updated"); + let nfd = DecomposingNormalizer::try_new_nfd_unstable(provider) + .expect("minimal data should always be updated"); + let nfkd = DecomposingNormalizer::try_new_nfkd_unstable(provider) + .expect("minimal data should always be updated"); + + StringNormalizers { + nfc, + nfkc, + nfd, + nfkd, } - } + }); + &*NORMALIZERS } - - if let Some(surr) = next_unpaired_surrogate.take() { - result.push(surr); - } else { - break; + #[cfg(feature = "intl")] + { + context.icu().string_normalizers() } - } + }; + + let result = match normalization { + Normalization::Nfc => normalizers.nfc.normalize_utf16(&s), + Normalization::Nfd => normalizers.nfd.normalize_utf16(&s), + Normalization::Nfkc => normalizers.nfkc.normalize_utf16(&s), + Normalization::Nfkd => normalizers.nfkd.normalize_utf16(&s), + }; // 7. Return ns. Ok(js_string!(result).into()) diff --git a/boa_engine/src/context/icu.rs b/boa_engine/src/context/icu.rs index a33cbd25f9..ab4bd38633 100644 --- a/boa_engine/src/context/icu.rs +++ b/boa_engine/src/context/icu.rs @@ -3,18 +3,23 @@ use std::fmt::Debug; use icu_collator::{Collator, CollatorError, CollatorOptions}; use icu_list::{ListError, ListFormatter, ListLength}; use icu_locid_transform::{LocaleCanonicalizer, LocaleExpander, LocaleTransformError}; +use icu_normalizer::{ComposingNormalizer, DecomposingNormalizer, NormalizerError}; use icu_provider::{ AnyProvider, AsDeserializingBufferProvider, AsDowncastingAnyProvider, BufferProvider, DataError, DataLocale, DataProvider, DataRequest, DataResponse, KeyedDataMarker, MaybeSendSync, }; use icu_segmenter::{GraphemeClusterSegmenter, SegmenterError, SentenceSegmenter, WordSegmenter}; use serde::Deserialize; +use thiserror::Error; use yoke::{trait_hack::YokeTraitHack, Yokeable}; use zerofrom::ZeroFrom; -use crate::builtins::intl::{ - list_format::ListFormatType, - segmenter::{Granularity, NativeSegmenter}, +use crate::builtins::{ + intl::{ + list_format::ListFormatType, + segmenter::{Granularity, NativeSegmenter}, + }, + string::StringNormalizers, }; /// ICU4X data provider used in boa. @@ -147,6 +152,34 @@ impl BoaProvider<'_> { .map(|seg| NativeSegmenter::Sentence(Box::new(seg))), } } + + pub(crate) fn try_new_string_normalizers(&self) -> Result { + Ok(match *self { + BoaProvider::Buffer(buf) => StringNormalizers { + nfc: ComposingNormalizer::try_new_nfc_with_buffer_provider(buf)?, + nfkc: ComposingNormalizer::try_new_nfkc_with_buffer_provider(buf)?, + nfd: DecomposingNormalizer::try_new_nfd_with_buffer_provider(buf)?, + nfkd: DecomposingNormalizer::try_new_nfkd_with_buffer_provider(buf)?, + }, + BoaProvider::Any(any) => StringNormalizers { + nfc: ComposingNormalizer::try_new_nfc_with_any_provider(any)?, + nfkc: ComposingNormalizer::try_new_nfkc_with_any_provider(any)?, + nfd: DecomposingNormalizer::try_new_nfd_with_any_provider(any)?, + nfkd: DecomposingNormalizer::try_new_nfkd_with_any_provider(any)?, + }, + }) + } +} + +/// Error thrown when the engine cannot initialize the ICU tools from a data provider. +#[derive(Debug, Error)] +pub enum IcuError { + /// Failed to create the locale transform tools. + #[error("could not construct the locale transform tools")] + LocaleTransform(#[from] LocaleTransformError), + /// Failed to create the string normalization tools. + #[error("could not construct the string normalization tools")] + Normalizer(#[from] NormalizerError), } /// Collection of tools initialized from a [`DataProvider`] that are used for the functionality of @@ -155,14 +188,16 @@ pub(crate) struct Icu<'provider> { provider: BoaProvider<'provider>, locale_canonicalizer: LocaleCanonicalizer, locale_expander: LocaleExpander, + string_normalizers: StringNormalizers, } impl Debug for Icu<'_> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("Icu") .field("provider", &self.provider) - .field("locale_canonicalizer", &"LocaleCanonicalizer") - .field("locale_expander", &"LocaleExpander") + .field("locale_canonicalizer", &self.locale_canonicalizer) + .field("locale_expander", &self.locale_expander) + .field("string_normalizers", &self.string_normalizers) .finish() } } @@ -173,12 +208,11 @@ impl<'provider> Icu<'provider> { /// # Errors /// /// Returns an error if any of the tools required cannot be constructed. - pub(crate) fn new( - provider: BoaProvider<'provider>, - ) -> Result, LocaleTransformError> { + pub(crate) fn new(provider: BoaProvider<'provider>) -> Result, IcuError> { Ok(Self { locale_canonicalizer: provider.try_new_locale_canonicalizer()?, locale_expander: provider.try_new_locale_expander()?, + string_normalizers: provider.try_new_string_normalizers()?, provider, }) } @@ -193,6 +227,11 @@ impl<'provider> Icu<'provider> { &self.locale_expander } + /// Gets the [`StringNormalizers`] tools. + pub(crate) const fn string_normalizers(&self) -> &StringNormalizers { + &self.string_normalizers + } + /// Gets the inner icu data provider pub(crate) const fn provider(&self) -> BoaProvider<'provider> { self.provider diff --git a/boa_engine/src/context/mod.rs b/boa_engine/src/context/mod.rs index 19e16f1f29..6554f56d40 100644 --- a/boa_engine/src/context/mod.rs +++ b/boa_engine/src/context/mod.rs @@ -8,7 +8,7 @@ mod maybe_shared; pub use hooks::{DefaultHooks, HostHooks}; #[cfg(feature = "intl")] -pub use icu::BoaProvider; +pub use icu::{BoaProvider, IcuError}; use intrinsics::Intrinsics; pub use maybe_shared::MaybeShared; @@ -633,7 +633,7 @@ impl<'icu, 'hooks, 'queue> ContextBuilder<'icu, 'hooks, 'queue> { pub fn icu_provider( self, provider: BoaProvider<'_>, - ) -> Result, icu_locid_transform::LocaleTransformError> { + ) -> Result, IcuError> { Ok(ContextBuilder { icu: Some(icu::Icu::new(provider)?), ..self diff --git a/boa_icu_provider/Cargo.toml b/boa_icu_provider/Cargo.toml index 9680105a6a..1c9fd239e3 100644 --- a/boa_icu_provider/Cargo.toml +++ b/boa_icu_provider/Cargo.toml @@ -16,14 +16,19 @@ rust-version.workspace = true icu_provider = { version = "1.2.0", features = ["serde", "sync"] } icu_provider_blob = "1.2.0" icu_provider_adapters = { version = "1.2.0", features = ["serde"] } -once_cell = {version = "1.17.1", default-features = false, features = ["critical-section"]} -icu_datagen = { version = "1.2.1", optional = true } +icu_collections = "1.2.0" +icu_normalizer = "1.2.0" +zerovec = "0.9.4" + +icu_datagen = { version = "1.2.3", optional = true } +once_cell = {version = "1.17.1", default-features = false, features = ["critical-section"], optional = true } log = { version = "0.4.17", optional = true } simple_logger = { version = "4.1.0", optional = true } [features] default = ["std"] -std = ["once_cell/std"] +full = ["dep:once_cell"] +std = ["once_cell?/std"] bin = ["dep:icu_datagen", "dep:simple_logger", "dep:log"] [[bin]] diff --git a/boa_icu_provider/data/min/any.rs b/boa_icu_provider/data/min/any.rs new file mode 100644 index 0000000000..2302887667 --- /dev/null +++ b/boa_icu_provider/data/min/any.rs @@ -0,0 +1,2 @@ +// @generated +impl_any_provider!(BakedDataProvider); diff --git a/boa_icu_provider/data/min/fallback/likelysubtags_v1/mod.rs b/boa_icu_provider/data/min/fallback/likelysubtags_v1/mod.rs new file mode 100644 index 0000000000..57f7496dcf --- /dev/null +++ b/boa_icu_provider/data/min/fallback/likelysubtags_v1/mod.rs @@ -0,0 +1,6 @@ +// @generated +type DataStruct = < :: icu_provider_adapters :: fallback :: provider :: LocaleFallbackLikelySubtagsV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; +pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { + locale.is_empty().then(|| &UND) +} +static UND: DataStruct = include!("und.rs.data"); diff --git a/boa_icu_provider/data/min/fallback/likelysubtags_v1/und.rs.data b/boa_icu_provider/data/min/fallback/likelysubtags_v1/und.rs.data new file mode 100644 index 0000000000..e4aaf50f5d --- /dev/null +++ b/boa_icu_provider/data/min/fallback/likelysubtags_v1/und.rs.data @@ -0,0 +1,66 @@ +::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1 { + l2s: unsafe { + #[allow(unused_unsafe)] + ::zerovec::ZeroMap::from_parts_unchecked( + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"am\0ar\0as\0be\0bg\0bgcbhobn\0brxchrcv\0doiel\0fa\0gu\0he\0hi\0hy\0ja\0ka\0kk\0km\0kn\0ko\0kokks\0ky\0lo\0maimk\0ml\0mn\0mnimr\0my\0ne\0or\0pa\0ps\0rajru\0sa\0satsd\0si\0sr\0ta\0te\0tg\0th\0ti\0tt\0uk\0ur\0yuezh\0") + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"EthiArabBengCyrlCyrlDevaDevaBengDevaCherCyrlDevaGrekArabGujrHebrDevaArmnJpanGeorCyrlKhmrKndaKoreDevaArabCyrlLaooDevaCyrlMlymCyrlBengDevaMymrDevaOryaGuruArabDevaCyrlDevaOlckArabSinhCyrlTamlTeluCyrlThaiEthiCyrlCyrlArabHantHans") + }, + ) + }, + lr2s: unsafe { + #[allow(unused_unsafe)] + ::zerovec::ZeroMap2d::from_parts_unchecked( + unsafe { + ::zerovec::ZeroVec::from_bytes_unchecked( + b"az\0ha\0kk\0ky\0mn\0ms\0pa\0sd\0sr\0tg\0uz\0yuezh\0", + ) + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\x03\0\0\0\x05\0\0\0\t\0\0\0\x0B\0\0\0\x0C\0\0\0\r\0\0\0\x0E\0\0\0\x0F\0\0\0\x13\0\0\0\x14\0\0\0\x16\0\0\0\x17\0\0\0&\0\0\0") + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"IQ\0IR\0RU\0CM\0SD\0AF\0CN\0IR\0MN\0CN\0TR\0CN\0CC\0PK\0IN\0ME\0RO\0RU\0TR\0PK\0AF\0CN\0CN\0AU\0BN\0GB\0GF\0HK\0ID\0MO\0PA\0PF\0PH\0SR\0TH\0TW\0US\0VN\0") + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"ArabArabCyrlArabArabArabArabArabArabArabLatnMongArabArabDevaLatnLatnLatnLatnArabArabCyrlHansHantHantHantHantHantHantHantHantHantHantHantHantHantHantHant") + }, + ) + }, + l2r: unsafe { + #[allow(unused_unsafe)] + ::zerovec::ZeroMap::from_parts_unchecked( + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"af\0am\0ar\0as\0astaz\0be\0bg\0bgcbhobn\0br\0brxbs\0ca\0cebchrcs\0cv\0cy\0da\0de\0doidsbel\0en\0es\0et\0eu\0fa\0ff\0fi\0filfo\0fr\0ga\0gd\0gl\0gu\0ha\0he\0hi\0hr\0hsbhu\0hy\0ia\0id\0ig\0is\0it\0ja\0jv\0ka\0keakgpkk\0km\0kn\0ko\0kokks\0ky\0lo\0lt\0lv\0maimi\0mk\0ml\0mn\0mnimr\0ms\0my\0ne\0nl\0nn\0no\0or\0pa\0pcmpl\0ps\0pt\0qu\0rajrm\0ro\0ru\0sa\0satsc\0sd\0si\0sk\0sl\0so\0sq\0sr\0su\0sv\0sw\0ta\0te\0tg\0th\0ti\0tk\0to\0tr\0tt\0uk\0ur\0uz\0vi\0wo\0xh\0yo\0yrlyuezh\0zu\0") + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"ZA\0ET\0EG\0IN\0ES\0AZ\0BY\0BG\0IN\0IN\0BD\0FR\0IN\0BA\0ES\0PH\0US\0CZ\0RU\0GB\0DK\0DE\0IN\0DE\0GR\0US\0ES\0EE\0ES\0IR\0SN\0FI\0PH\0FO\0FR\0IE\0GB\0ES\0IN\0NG\0IL\0IN\0HR\0DE\0HU\0AM\x00001ID\0NG\0IS\0IT\0JP\0ID\0GE\0CV\0BR\0KZ\0KH\0IN\0KR\0IN\0IN\0KG\0LA\0LT\0LV\0IN\0NZ\0MK\0IN\0MN\0IN\0IN\0MY\0MM\0NP\0NL\0NO\0NO\0IN\0IN\0NG\0PL\0AF\0BR\0PE\0IN\0CH\0RO\0RU\0IN\0IN\0IT\0PK\0LK\0SK\0SI\0SO\0AL\0RS\0ID\0SE\0TZ\0IN\0IN\0TJ\0TH\0ET\0TM\0TO\0TR\0RU\0UA\0PK\0UZ\0VN\0SN\0ZA\0NG\0BR\0HK\0CN\0ZA\0") + }, + ) + }, + ls2r: unsafe { + #[allow(unused_unsafe)] + ::zerovec::ZeroMap2d::from_parts_unchecked( + unsafe { + ::zerovec::ZeroVec::from_bytes_unchecked( + b"az\0en\0ff\0kk\0ky\0mn\0pa\0sd\0tg\0uz\0yuezh\0", + ) + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\x01\0\0\0\x02\0\0\0\x03\0\0\0\x04\0\0\0\x06\0\0\0\x07\0\0\0\x08\0\0\0\x0B\0\0\0\x0C\0\0\0\r\0\0\0\x0E\0\0\0\x11\0\0\0") + }, + unsafe { + ::zerovec::ZeroVec::from_bytes_unchecked( + b"ArabShawAdlmArabArabLatnMongArabDevaKhojSindArabArabHansBopoHanbHant", + ) + }, + unsafe { + ::zerovec::ZeroVec::from_bytes_unchecked( + b"IR\0GB\0GN\0CN\0CN\0TR\0CN\0PK\0IN\0IN\0IN\0PK\0AF\0CN\0TW\0TW\0TW\0", + ) + }, + ) + }, +} diff --git a/boa_icu_provider/data/min/fallback/mod.rs b/boa_icu_provider/data/min/fallback/mod.rs new file mode 100644 index 0000000000..a485a5af64 --- /dev/null +++ b/boa_icu_provider/data/min/fallback/mod.rs @@ -0,0 +1,4 @@ +// @generated +pub mod likelysubtags_v1; +pub mod parents_v1; +pub mod supplement; diff --git a/boa_icu_provider/data/min/fallback/parents_v1/mod.rs b/boa_icu_provider/data/min/fallback/parents_v1/mod.rs new file mode 100644 index 0000000000..ce04af868a --- /dev/null +++ b/boa_icu_provider/data/min/fallback/parents_v1/mod.rs @@ -0,0 +1,6 @@ +// @generated +type DataStruct = < :: icu_provider_adapters :: fallback :: provider :: LocaleFallbackParentsV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; +pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { + locale.is_empty().then(|| &UND) +} +static UND: DataStruct = include!("und.rs.data"); diff --git a/boa_icu_provider/data/min/fallback/parents_v1/und.rs.data b/boa_icu_provider/data/min/fallback/parents_v1/und.rs.data new file mode 100644 index 0000000000..a13646a0b9 --- /dev/null +++ b/boa_icu_provider/data/min/fallback/parents_v1/und.rs.data @@ -0,0 +1,13 @@ +::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1 { + parents: unsafe { + #[allow(unused_unsafe)] + ::zerovec::ZeroMap::from_parts_unchecked( + unsafe { + :: zerovec :: VarZeroVec :: from_bytes_unchecked (b"\x84\0\0\0\0\0\x06\0\x0B\0\x10\0\x15\0\x1A\0\x1F\0$\0)\0.\x003\08\0=\0B\0G\0L\0Q\0V\0[\0`\0e\0j\0o\0t\0y\0~\0\x83\0\x88\0\x8D\0\x92\0\x97\0\x9C\0\xA1\0\xA6\0\xAB\0\xB0\0\xB5\0\xBA\0\xBF\0\xC4\0\xC9\0\xCE\0\xD3\0\xD8\0\xDD\0\xE2\0\xE7\0\xEC\0\xF1\0\xF6\0\xFB\0\0\x01\x05\x01\n\x01\x0F\x01\x14\x01\x19\x01\x1E\x01#\x01(\x01-\x012\x017\x01<\x01A\x01F\x01K\x01P\x01U\x01Z\x01_\x01d\x01i\x01n\x01s\x01x\x01}\x01\x82\x01\x87\x01\x8C\x01\x91\x01\x96\x01\x9B\x01\xA0\x01\xA5\x01\xAA\x01\xAF\x01\xB4\x01\xB9\x01\xBE\x01\xC3\x01\xC8\x01\xCD\x01\xD2\x01\xD7\x01\xDC\x01\xE1\x01\xE6\x01\xEB\x01\xF0\x01\xF5\x01\xFA\x01\xFF\x01\x04\x02\t\x02\x0E\x02\x13\x02\x18\x02\x1D\x02\"\x02'\x02,\x021\x026\x02;\x02@\x02G\x02I\x02K\x02M\x02R\x02W\x02\\\x02a\x02f\x02k\x02p\x02u\x02z\x02\x7F\x02\x84\x02\x89\x02en-150en-AGen-AIen-ATen-AUen-BBen-BEen-BMen-BSen-BWen-BZen-CCen-CHen-CKen-CMen-CXen-CYen-DEen-DGen-DKen-DMen-ERen-FIen-FJen-FKen-FMen-GBen-GDen-GGen-GHen-GIen-GMen-GYen-HKen-IEen-ILen-IMen-INen-IOen-JEen-JMen-KEen-KIen-KNen-KYen-LCen-LRen-LSen-MGen-MOen-MSen-MTen-MUen-MVen-MWen-MYen-NAen-NFen-NGen-NLen-NRen-NUen-NZen-PGen-PKen-PNen-PWen-RWen-SBen-SCen-SDen-SEen-SGen-SHen-SIen-SLen-SSen-SXen-SZen-TCen-TKen-TOen-TTen-TVen-TZen-UGen-VCen-VGen-VUen-WSen-ZAen-ZMen-ZWes-ARes-BOes-BRes-BZes-CLes-COes-CRes-CUes-DOes-ECes-GTes-HNes-MXes-NIes-PAes-PEes-PRes-PYes-SVes-USes-UYes-VEhi-Latnhtnbnnno-NOpt-AOpt-CHpt-CVpt-FRpt-GQpt-GWpt-LUpt-MOpt-MZpt-STpt-TLzh-Hant-MO") + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419en\0\0\0\0\0\0\x01IN\0fr\0\0\0\0\0\0\x01HT\0no\0\0\0\0\0\0\0\0\0\0no\0\0\0\0\0\0\0\0\0\0no\0\0\0\0\0\0\0\0\0\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0zh\0\x01Hant\x01HK\0") + }, + ) + }, +} diff --git a/boa_icu_provider/data/min/fallback/supplement/co_v1/mod.rs b/boa_icu_provider/data/min/fallback/supplement/co_v1/mod.rs new file mode 100644 index 0000000000..9023647138 --- /dev/null +++ b/boa_icu_provider/data/min/fallback/supplement/co_v1/mod.rs @@ -0,0 +1,6 @@ +// @generated +type DataStruct = < :: icu_provider_adapters :: fallback :: provider :: CollationFallbackSupplementV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; +pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { + locale.is_empty().then(|| &UND) +} +static UND: DataStruct = include!("und.rs.data"); diff --git a/boa_icu_provider/data/min/fallback/supplement/co_v1/und.rs.data b/boa_icu_provider/data/min/fallback/supplement/co_v1/und.rs.data new file mode 100644 index 0000000000..647f8f5160 --- /dev/null +++ b/boa_icu_provider/data/min/fallback/supplement/co_v1/und.rs.data @@ -0,0 +1,22 @@ +::icu_provider_adapters::fallback::provider::LocaleFallbackSupplementV1 { + parents: unsafe { + #[allow(unused_unsafe)] + ::zerovec::ZeroMap::from_parts_unchecked( + unsafe { ::zerovec::VarZeroVec::from_bytes_unchecked(b"\x01\0\0\0\0\0yue") }, + unsafe { ::zerovec::ZeroVec::from_bytes_unchecked(b"zh\0\x01Hant\0\0\0\0") }, + ) + }, + unicode_extension_defaults: unsafe { + #[allow(unused_unsafe)] + ::zerovec::ZeroMap2d::from_parts_unchecked( + unsafe { ::zerovec::ZeroVec::from_bytes_unchecked(b"co") }, + unsafe { ::zerovec::ZeroVec::from_bytes_unchecked(b"\x02\0\0\0") }, + unsafe { + ::zerovec::VarZeroVec::from_bytes_unchecked(b"\x02\0\0\0\0\0\x02\0zhzh-Hant") + }, + unsafe { + ::zerovec::VarZeroVec::from_bytes_unchecked(b"\x02\0\0\0\0\0\x06\0pinyinstroke") + }, + ) + }, +} diff --git a/boa_icu_provider/data/min/fallback/supplement/mod.rs b/boa_icu_provider/data/min/fallback/supplement/mod.rs new file mode 100644 index 0000000000..62957134f0 --- /dev/null +++ b/boa_icu_provider/data/min/fallback/supplement/mod.rs @@ -0,0 +1,2 @@ +// @generated +pub mod co_v1; diff --git a/boa_icu_provider/data/min/mod.rs b/boa_icu_provider/data/min/mod.rs new file mode 100644 index 0000000000..67f02ec16c --- /dev/null +++ b/boa_icu_provider/data/min/mod.rs @@ -0,0 +1,216 @@ +// @generated +#[clippy::msrv = "1.61"] +mod fallback; +#[clippy::msrv = "1.61"] +mod normalizer; +#[clippy::msrv = "1.61"] +use icu_provider::prelude::*; +/// Implement [`DataProvider`] on the given struct using the data +/// hardcoded in this module. This allows the struct to be used with +/// `icu`'s `_unstable` constructors. +/// +/// This macro can only be called from its definition-site, i.e. right +/// after `include!`-ing the generated module. +/// +/// ```compile_fail +/// struct MyDataProvider; +/// include!("/path/to/generated/mod.rs"); +/// impl_data_provider(MyDataProvider); +/// ``` +#[allow(unused_macros)] +macro_rules! impl_data_provider { + ($ provider : path) => { + #[clippy::msrv = "1.61"] + impl DataProvider<::icu_normalizer::provider::CanonicalCompositionsV1Marker> for $provider { + fn load(&self, req: DataRequest) -> Result, DataError> { + normalizer::comp_v1::lookup(&req.locale) + .map(zerofrom::ZeroFrom::zero_from) + .map(DataPayload::from_owned) + .map(|payload| DataResponse { + metadata: Default::default(), + payload: Some(payload), + }) + .ok_or_else(|| DataErrorKind::MissingLocale.with_req(::icu_normalizer::provider::CanonicalCompositionsV1Marker::KEY, req)) + } + } + #[clippy::msrv = "1.61"] + impl DataProvider<::icu_normalizer::provider::CanonicalDecompositionDataV1Marker> for $provider { + fn load(&self, req: DataRequest) -> Result, DataError> { + normalizer::nfd_v1::lookup(&req.locale) + .map(zerofrom::ZeroFrom::zero_from) + .map(DataPayload::from_owned) + .map(|payload| DataResponse { + metadata: Default::default(), + payload: Some(payload), + }) + .ok_or_else(|| DataErrorKind::MissingLocale.with_req(::icu_normalizer::provider::CanonicalDecompositionDataV1Marker::KEY, req)) + } + } + #[clippy::msrv = "1.61"] + impl DataProvider<::icu_normalizer::provider::CanonicalDecompositionTablesV1Marker> for $provider { + fn load(&self, req: DataRequest) -> Result, DataError> { + normalizer::nfdex_v1::lookup(&req.locale) + .map(zerofrom::ZeroFrom::zero_from) + .map(DataPayload::from_owned) + .map(|payload| DataResponse { + metadata: Default::default(), + payload: Some(payload), + }) + .ok_or_else(|| DataErrorKind::MissingLocale.with_req(::icu_normalizer::provider::CanonicalDecompositionTablesV1Marker::KEY, req)) + } + } + #[clippy::msrv = "1.61"] + impl DataProvider<::icu_normalizer::provider::CompatibilityDecompositionSupplementV1Marker> for $provider { + fn load( + &self, + req: DataRequest, + ) -> Result, DataError> { + normalizer::nfkd_v1::lookup(&req.locale) + .map(zerofrom::ZeroFrom::zero_from) + .map(DataPayload::from_owned) + .map(|payload| DataResponse { + metadata: Default::default(), + payload: Some(payload), + }) + .ok_or_else(|| { + DataErrorKind::MissingLocale.with_req(::icu_normalizer::provider::CompatibilityDecompositionSupplementV1Marker::KEY, req) + }) + } + } + #[clippy::msrv = "1.61"] + impl DataProvider<::icu_normalizer::provider::CompatibilityDecompositionTablesV1Marker> for $provider { + fn load( + &self, + req: DataRequest, + ) -> Result, DataError> { + normalizer::nfkdex_v1::lookup(&req.locale) + .map(zerofrom::ZeroFrom::zero_from) + .map(DataPayload::from_owned) + .map(|payload| DataResponse { + metadata: Default::default(), + payload: Some(payload), + }) + .ok_or_else(|| { + DataErrorKind::MissingLocale.with_req(::icu_normalizer::provider::CompatibilityDecompositionTablesV1Marker::KEY, req) + }) + } + } + #[clippy::msrv = "1.61"] + impl DataProvider<::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker> for $provider { + fn load( + &self, + req: DataRequest, + ) -> Result, DataError> { + fallback::supplement::co_v1::lookup(&req.locale) + .map(zerofrom::ZeroFrom::zero_from) + .map(DataPayload::from_owned) + .map(|payload| DataResponse { + metadata: Default::default(), + payload: Some(payload), + }) + .ok_or_else(|| { + DataErrorKind::MissingLocale.with_req( + ::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY, + req, + ) + }) + } + } + #[clippy::msrv = "1.61"] + impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker> for $provider { + fn load( + &self, + req: DataRequest, + ) -> Result, DataError> { + fallback::likelysubtags_v1::lookup(&req.locale) + .map(zerofrom::ZeroFrom::zero_from) + .map(DataPayload::from_owned) + .map(|payload| DataResponse { + metadata: Default::default(), + payload: Some(payload), + }) + .ok_or_else(|| { + DataErrorKind::MissingLocale.with_req( + ::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY, + req, + ) + }) + } + } + #[clippy::msrv = "1.61"] + impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker> for $provider { + fn load( + &self, + req: DataRequest, + ) -> Result, DataError> { + fallback::parents_v1::lookup(&req.locale) + .map(zerofrom::ZeroFrom::zero_from) + .map(DataPayload::from_owned) + .map(|payload| DataResponse { + metadata: Default::default(), + payload: Some(payload), + }) + .ok_or_else(|| { + DataErrorKind::MissingLocale.with_req(::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY, req) + }) + } + } + }; +} +/// Implement [`AnyProvider`] on the given struct using the data +/// hardcoded in this module. This allows the struct to be used with +/// `icu`'s `_any` constructors. +/// +/// This macro can only be called from its definition-site, i.e. right +/// after `include!`-ing the generated module. +/// +/// ```compile_fail +/// struct MyAnyProvider; +/// include!("/path/to/generated/mod.rs"); +/// impl_any_provider(MyAnyProvider); +/// ``` +#[allow(unused_macros)] +macro_rules! impl_any_provider { + ($ provider : path) => { + #[clippy::msrv = "1.61"] + impl AnyProvider for $provider { + fn load_any(&self, key: DataKey, req: DataRequest) -> Result { + const CANONICALCOMPOSITIONSV1MARKER: ::icu_provider::DataKeyHash = + ::icu_normalizer::provider::CanonicalCompositionsV1Marker::KEY.hashed(); + const CANONICALDECOMPOSITIONDATAV1MARKER: ::icu_provider::DataKeyHash = + ::icu_normalizer::provider::CanonicalDecompositionDataV1Marker::KEY.hashed(); + const CANONICALDECOMPOSITIONTABLESV1MARKER: ::icu_provider::DataKeyHash = + ::icu_normalizer::provider::CanonicalDecompositionTablesV1Marker::KEY.hashed(); + const COMPATIBILITYDECOMPOSITIONSUPPLEMENTV1MARKER: ::icu_provider::DataKeyHash = + ::icu_normalizer::provider::CompatibilityDecompositionSupplementV1Marker::KEY.hashed(); + const COMPATIBILITYDECOMPOSITIONTABLESV1MARKER: ::icu_provider::DataKeyHash = + ::icu_normalizer::provider::CompatibilityDecompositionTablesV1Marker::KEY.hashed(); + const COLLATIONFALLBACKSUPPLEMENTV1MARKER: ::icu_provider::DataKeyHash = + ::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY.hashed(); + const LOCALEFALLBACKLIKELYSUBTAGSV1MARKER: ::icu_provider::DataKeyHash = + ::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY.hashed(); + const LOCALEFALLBACKPARENTSV1MARKER: ::icu_provider::DataKeyHash = + ::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY.hashed(); + match key.hashed() { + CANONICALCOMPOSITIONSV1MARKER => normalizer::comp_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), + CANONICALDECOMPOSITIONDATAV1MARKER => normalizer::nfd_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), + CANONICALDECOMPOSITIONTABLESV1MARKER => normalizer::nfdex_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), + COMPATIBILITYDECOMPOSITIONSUPPLEMENTV1MARKER => normalizer::nfkd_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), + COMPATIBILITYDECOMPOSITIONTABLESV1MARKER => normalizer::nfkdex_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), + COLLATIONFALLBACKSUPPLEMENTV1MARKER => fallback::supplement::co_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), + LOCALEFALLBACKLIKELYSUBTAGSV1MARKER => fallback::likelysubtags_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), + LOCALEFALLBACKPARENTSV1MARKER => fallback::parents_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), + _ => return Err(DataErrorKind::MissingDataKey.with_req(key, req)), + } + .map(|payload| AnyResponse { + payload: Some(payload), + metadata: Default::default(), + }) + .ok_or_else(|| DataErrorKind::MissingLocale.with_req(key, req)) + } + } + }; +} +#[clippy::msrv = "1.61"] +pub struct BakedDataProvider; +impl_data_provider!(BakedDataProvider); diff --git a/boa_icu_provider/data/min/normalizer/comp_v1/mod.rs b/boa_icu_provider/data/min/normalizer/comp_v1/mod.rs new file mode 100644 index 0000000000..f82cf1bd91 --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/comp_v1/mod.rs @@ -0,0 +1,6 @@ +// @generated +type DataStruct = < :: icu_normalizer :: provider :: CanonicalCompositionsV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; +pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { + locale.is_empty().then(|| &UND) +} +static UND: DataStruct = include!("und.rs.data"); diff --git a/boa_icu_provider/data/min/normalizer/comp_v1/und.rs.data b/boa_icu_provider/data/min/normalizer/comp_v1/und.rs.data new file mode 100644 index 0000000000..dc2989f982 --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/comp_v1/und.rs.data @@ -0,0 +1,7 @@ +::icu_normalizer::provider::CanonicalCompositionsV1 { + canonical_compositions: ::icu_collections::char16trie::Char16Trie { + data: unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\0\08\0B\x03\x80\x02\xC2\x0CA\x01\xDF\r\x14\x01\x9A0k\0\x9A0\x0B\0\x04\xD8 \0\x05\xD8E\0\x06\xD82\x000\xDD\x06\xD85\xDD\x01\xC08\x19\t\0\xCF0\n\0\xCF0\xD1\xB0\xD20\xD4\xB0\xD50\xD7\xB0\xD80\xDA\xB0\xDB0\xDD\xB0o0q\xB0r0t\xB0u0w\xB0x0z\xB0{0}\xB0\x03\0\xBA\xDC\n\0'\xDD\x14\0>\xDF\x1B\0W\xDF1\0\x04\xD8G\xDF\x01\xC0L\x130\0\x04\xD8\x02\0\x99\xDC\x01\xC0\x9A\x10\x9B\xDC\x01\xC0\x9C\x10\xA5\xDC\x01\xC0\xAB\x100\0\x04\xD8\x01\x001\xDD\x01\xC0.\x112\xDD\x01\xC0/\x111\0\x04\xD8G\xDF\x01\xC0K\x13\x03\0\xB0\xDC\x0E\0\xBA\xDC\x11\0\xBD\xDC\x14\0\xAF\xDD0\0\x05\xD8\x01\0\xB8\xDD\x01\xC0\xBA\x15\xB9\xDD\x01\xC0\xBB\x151\0\x05\xD8\xB9\xDC\x01\xC0\xBC\x141\0\x05\xD8\xB9\xDC\x01\xC0\xBB\x141\0\x05\xD8\xB9\xDC\x01\xC0\xBE\x14\xDF\r\x84\0.\x10\x85\x005\x1B\x86\0\x990/\0\xAD0>\0\xC60\x1E\0\xDB0\x0E\0\xF10\x06\0\xF10\xF9\xB0\xF20\xFA\xB0\xFD0\xFE\xB0\xDB0\xDC\xB0\xEF0\xF7\xB0\xF00\xF8\xB0\xD20\x06\0\xD20\xD3\xB0\xD50\xD6\xB0\xD80\xD9\xB0\xC60\xC7\xB0\xC80\xC9\xB0\xCF0\xD0\xB0\xB90\x0E\0\xBF0\x06\0\xBF0\xC0\xB0\xC10\xC2\xB0\xC40\xC5\xB0\xB90\xBA\xB0\xBB0\xBC\xB0\xBD0\xBE\xB0\xB30\x06\0\xB30\xB4\xB0\xB50\xB6\xB0\xB70\xB8\xB0\xAD0\xAE\xB0\xAF0\xB0\xB0\xB10\xB2\xB0a0\x1E\0u0\x0E\0\x9D0\x06\0\x9D0\x9E\xB0\xA60\xF4\xB0\xAB0\xAC\xB0u0v\xB0x0y\xB0{0|\xB0h0\x06\0h0i\xB0o0p\xB0r0s\xB0a0b\xB0d0e\xB0f0g\xB0U0\x0E\0[0\x06\0[0\\\xB0]0^\xB0_0`\xB0U0V\xB0W0X\xB0Y0Z\xB0O0\x06\0O0P\xB0Q0R\xB0S0T\xB0F0\x94\xB0K0L\xB0M0N\xB00\0\xD9\r\xDE\x8D0\0%\x10&\x90\n\0\x11\x1B\x0E\0>\x1B\x06\0>\x1B@\x9B?\x1BA\x9BB\x1BC\x9B\x11\x1B\x12\x9B:\x1B;\x9B<\x1B=\x9B\x05\x1B\x06\x9B\x07\x1B\x08\x9B\t\x1B\n\x9B\x0B\x1B\x0C\x9B\r\x1B\x0E\x9B>\r\x17\0>\r\x08\0W\r\x0B\0\xCA\r\x0C\0\xCF\r0\0\xD9\r\xDC\x8D\x01\0F\rJ\x8DG\rK\x8D0\0F\rL\x8D\x01\0\xD9\r\xDA\x8D\xDC\r\xDD\x8D\xC2\x0C\x06\0\xD5\x0C\x07\0\xD6\x0C0\0\xC6\x0C\xC8\x8C0\0\xC6\x0C\xCA\x8C\x02\0\xBF\x0C\xC0\x8C\xC6\x0C\xC7\x8C\xCA\x0C\xCB\x8C\xD7\t'\0W\x0B\x17\0W\x0B\x08\0\xBE\x0B\t\0\xD7\x0B\x0C\0V\x0C0\0F\x0CH\x8C0\0G\x0BL\x8B\x01\0\xC6\x0B\xCA\x8B\xC7\x0B\xCB\x8B\x01\0\x92\x0B\x94\x8B\xC6\x0B\xCC\x8B\xD7\t\x06\0>\x0B\x07\0V\x0B0\0G\x0BH\x8B0\0\xC7\t\xCC\x890\0G\x0BK\x8BT\x06#\0T\x06\x08\0U\x06\x15\0<\t\x16\0\xBE\t0\0\xC7\t\xCB\x89\x05\0\xC1\x06\x06\0\xC1\x06\xC2\x86\xD2\x06\xD3\x86\xD5\x06\xC0\x86'\x06#\x86H\x06$\x86J\x06&\x860\0'\x06%\x86\x02\0(\t)\x890\t1\x893\t4\x89B\x03\x06\0E\x03M\0S\x060\0'\x06\"\x86\x1C\0(\x1F$\0Q\x1F\x12\0h\x1F\x08\0h\x1Fn\x9Fi\x1Fo\x9F\xBF\x1F\xCF\x9F\xFE\x1F\xDF\x9FQ\x1FW\x9FY\x1F_\x9F`\x1Ff\x9Fa\x1Fg\x9F1\x1F\x08\x001\x1F7\x9F8\x1F>\x9F9\x1F?\x9FP\x1FV\x9F(\x1F.\x9F)\x1F/\x9F0\x1F6\x9F\xCB\x03\x10\0\x08\x1F\x08\0\x08\x1F\x0E\x9F\t\x1F\x0F\x9F \x1F&\x9F!\x1F'\x9F\xCB\x03\xE7\x9F\0\x1F\x06\x9F\x01\x1F\x07\x9F\xB9\x03\x08\0\xB9\x03\xD6\x9F\xC5\x03\xE6\x9F\xC9\x03\xF6\x9F\xCA\x03\xD7\x9F\xA8\0\xC1\x9F\xB1\x03\xB6\x9F\xB7\x03\xC6\x9F\0\0>\0&\x1FN\0f\x1F&\0n\x1F\x12\0|\x1F\x08\0|\x1F\xF2\x9F\xB6\x1F\xB7\x9F\xC6\x1F\xC7\x9F\xF6\x1F\xF7\x9Fn\x1F\xAE\x9Fo\x1F\xAF\x9Fp\x1F\xB2\x9Ft\x1F\xC2\x9Fj\x1F\x08\0j\x1F\xAA\x9Fk\x1F\xAB\x9Fl\x1F\xAC\x9Fm\x1F\xAD\x9Ff\x1F\xA6\x9Fg\x1F\xA7\x9Fh\x1F\xA8\x9Fi\x1F\xA9\x9F.\x1F\x12\0b\x1F\x08\0b\x1F\xA2\x9Fc\x1F\xA3\x9Fd\x1F\xA4\x9Fe\x1F\xA5\x9F.\x1F\x9E\x9F/\x1F\x9F\x9F`\x1F\xA0\x9Fa\x1F\xA1\x9F*\x1F\x08\0*\x1F\x9A\x9F+\x1F\x9B\x9F,\x1F\x9C\x9F-\x1F\x9D\x9F&\x1F\x96\x9F'\x1F\x97\x9F(\x1F\x98\x9F)\x1F\x99\x9F\x06\x1F&\0\x0E\x1F\x12\0\"\x1F\x08\0\"\x1F\x92\x9F#\x1F\x93\x9F$\x1F\x94\x9F%\x1F\x95\x9F\x0E\x1F\x8E\x9F\x0F\x1F\x8F\x9F \x1F\x90\x9F!\x1F\x91\x9F\n\x1F\x08\0\n\x1F\x8A\x9F\x0B\x1F\x8B\x9F\x0C\x1F\x8C\x9F\r\x1F\x8D\x9F\x06\x1F\x86\x9F\x07\x1F\x87\x9F\x08\x1F\x88\x9F\t\x1F\x89\x9F\xC9\x03\x12\0\x02\x1F\x08\0\x02\x1F\x82\x9F\x03\x1F\x83\x9F\x04\x1F\x84\x9F\x05\x1F\x85\x9F\xC9\x03\xF3\x9F\xCE\x03\xF4\x9F\0\x1F\x80\x9F\x01\x1F\x81\x9F\xAC\x03\x08\0\xAC\x03\xB4\x9F\xAE\x03\xC4\x9F\xB1\x03\xB3\x9F\xB7\x03\xC3\x9F\x91\x03\xBC\x9F\x97\x03\xCC\x9F\xA9\x03\xFC\x9F\x13\x03\x04\x02'\x03'\x01.\x03\xB3\0.\x03t\x000\x03w\x001\x03\x84\08\x03+\0r\"6\0\x87\"\x1A\0\xA9\"\x0E\0\xB3\"\x06\0\xB3\"\xEB\xA2\xB4\"\xEC\xA2\xB5\"\xED\xA2\xA9\"\xAE\xA2\xAB\"\xAF\xA2\xB2\"\xEA\xA2\x87\"\x89\xA2\x91\"\xE2\xA2\x92\"\xE3\xA2\xA2\"\xAC\xA2\xA8\"\xAD\xA2{\"\x0E\0\x82\"\x06\0\x82\"\x84\xA2\x83\"\x85\xA2\x86\"\x88\xA2{\"\x81\xA2|\"\xE0\xA2}\"\xE1\xA2r\"t\xA2s\"u\xA2v\"x\xA2w\"y\xA2z\"\x80\xA2\x0B\"\x1A\0E\"\x0E\0a\"\x06\0a\"b\xA2d\"p\xA2e\"q\xA2E\"G\xA2H\"I\xA2M\"m\xA2\x0B\"\x0C\xA2#\"$\xA2%\"&\xA2<\"A\xA2C\"D\xA2\x94!\x0E\0\xD4!\x06\0\xD4!\xCE\xA1\x03\"\x04\xA2\x08\"\t\xA2\x94!\xAE\xA1\xD0!\xCD\xA1\xD2!\xCF\xA1<\0n\xA2=\0`\xA2>\0o\xA2\x90!\x9A\xA1\x92!\x9B\xA1\x01\0H\0*\x9Eh\0+\x9E\x05\0e\0\x06\0e\0\x1B\x9Ei\0-\x9Eu\0u\x9EE\0\x1A\x9EI\0,\x9EU\0t\x9E\x10\0b\0\x14\0l\0\n\0l\0;\x9En\0I\x9Er\0_\x9Et\0o\x9Ez\0\x95\x9Eb\0\x07\x9Ed\0\x0F\x9Eh\0\x96\x9Ek\x005\x9EN\0\x08\0N\0H\x9ER\0^\x9ET\0n\x9EZ\0\x94\x9EB\0\x06\x9ED\0\x0E\x9EK\x004\x9EL\0:\x9E'\x03\"\0(\x03W\0-\x03\x0B\0d\0\x0E\0n\0\x06\0n\0K\x9Et\0q\x9Eu\0w\x9Ed\0\x13\x9Ee\0\x19\x9El\0=\x9EN\0\x06\0N\0J\x9ET\0p\x9EU\0v\x9ED\0\x12\x9EE\0\x18\x9EL\0<\x9E\x15\0c\0\x1A\0k\0\x0E\0r\0\x06\0r\0W\x81s\0_\x81t\0c\x81k\x007\x81l\0<\x81n\0F\x81c\0\xE7\x80d\0\x11\x9Ee\0)\x82g\0#\x81h\0)\x9EK\0\x0E\0R\0\x06\0R\0V\x81S\0^\x81T\0b\x81K\x006\x81L\0;\x81N\0E\x81C\0\xC7\x80D\0\x10\x9EE\0(\x82G\0\"\x81H\0(\x9E\t\0a\0\n\0a\0\x05\x81e\0\x19\x81i\0/\x81o\0\xEB\x81u\0s\x81A\0\x04\x81E\0\x18\x81I\0.\x81O\0\xEA\x81U\0r\x81#\x03\x81\0#\x03\x0E\0$\x03s\0%\x03v\0&\x03\x03\0S\0\x18\x82T\0\x1A\x82s\0\x19\x82t\0\x1B\x82)\0d\x002\0s\0\x1A\0y\0\x0E\0\xA1\x01\x06\0\xA1\x01\xE3\x9E\xAF\x01\xF0\x9E\xB0\x01\xF1\x9Ey\0\xF5\x9Ez\0\x93\x9E\xA0\x01\xE2\x9Es\0c\x9Et\0m\x9Eu\0\xE5\x9Ev\0\x7F\x9Ew\0\x89\x9El\0\n\0l\x007\x9Em\0C\x9En\0G\x9Eo\0\xCD\x9Er\0[\x9Ed\0\r\x9Ee\0\xB9\x9Eh\0%\x9Ei\0\xCB\x9Ek\x003\x9EO\0\x1A\0V\0\x0E\0Z\0\x06\0Z\0\x92\x9Ea\0\xA1\x9Eb\0\x05\x9EV\0~\x9EW\0\x88\x9EY\0\xF4\x9EO\0\xCC\x9ER\0Z\x9ES\0b\x9ET\0l\x9EU\0\xE4\x9EI\0\n\0I\0\xCA\x9EK\x002\x9EL\x006\x9EM\0B\x9EN\0F\x9EA\0\xA0\x9EB\0\x04\x9ED\0\x0C\x9EE\0\xB8\x9EH\0$\x9E\x01\0U\0r\x9Eu\0s\x9E\x01\0A\0\0\x9Ea\0\x01\x9E\x13\x03\x0C\0\x14\x03-\0\x1B\x03\x03\0O\0\xA0\x81U\0\xAF\x81o\0\xA1\x81u\0\xB0\x81\r\0\xB5\x03\x10\0\xBF\x03\x08\0\xBF\x03@\x9F\xC1\x03\xE4\x9F\xC5\x03P\x9F\xC9\x03`\x9F\xB5\x03\x10\x9F\xB7\x03 \x9F\xB9\x030\x9F\x99\x03\x08\0\x99\x038\x9F\x9F\x03H\x9F\xA9\x03h\x9F\xB1\x03\0\x9F\x91\x03\x08\x9F\x95\x03\x18\x9F\x97\x03(\x9F\x0F\0\xB1\x03\x12\0\xBF\x03\x08\0\xBF\x03A\x9F\xC1\x03\xE5\x9F\xC5\x03Q\x9F\xC9\x03a\x9F\xB1\x03\x01\x9F\xB5\x03\x11\x9F\xB7\x03!\x9F\xB9\x031\x9F\x9F\x03\x08\0\x9F\x03I\x9F\xA1\x03\xEC\x9F\xA5\x03Y\x9F\xA9\x03i\x9F\x91\x03\t\x9F\x95\x03\x19\x9F\x97\x03)\x9F\x99\x039\x9F\x08\x03\x92\x01\x0B\x03\xB1\0\x0B\x03$\0\x0C\x031\0\x0F\x03\x88\0\x11\x03\x0B\0a\0\x0E\0o\0\x06\0o\0\x0F\x82r\0\x13\x82u\0\x17\x82a\0\x03\x82e\0\x07\x82i\0\x0B\x82O\0\x06\0O\0\x0E\x82R\0\x12\x82U\0\x16\x82A\0\x02\x82E\0\x06\x82I\0\n\x82\x05\0u\0\x06\0u\0q\x81#\x04\xF2\x84C\x04\xF3\x84O\0P\x81U\0p\x81o\0Q\x81$\0d\0,\0o\0\x16\0z\0\n\0z\0~\x81\xDC\0\xD9\x81\xFC\0\xDA\x81\xB7\x01\xEE\x81\x92\x02\xEF\x81o\0\xD2\x81r\0Y\x81s\0a\x81t\0e\x81u\0\xD4\x81i\0\n\0i\0\xD0\x81j\0\xF0\x81k\0\xE9\x81l\0>\x81n\0H\x81d\0\x0F\x81e\0\x1B\x81g\0\xE7\x81h\0\x1F\x82N\0\x14\0T\0\n\0T\0d\x81U\0\xD3\x81Z\0}\x81a\0\xCE\x81c\0\r\x81N\0G\x81O\0\xD1\x81R\0X\x81S\0`\x81G\0\n\0G\0\xE6\x81H\0\x1E\x82I\0\xCF\x81K\0\xE8\x81L\0=\x81A\0\xCD\x81C\0\x0C\x81D\0\x0E\x81E\0\x1A\x81\r\0e\0\x10\0r\0\x08\0r\0\x11\x82u\0\x15\x82t\x04v\x84u\x04w\x84e\0\x05\x82i\0\t\x82o\0\r\x82O\0\x08\0O\0\x0C\x82R\0\x10\x82U\0\x14\x82a\0\x01\x82A\0\0\x82E\0\x04\x82I\0\x08\x82\x08\x03\x12\0\t\x03\x9C\0\n\x03\x05\0u\0\x06\0u\0o\x81w\0\x98\x9Ey\0\x99\x9EA\0\xC5\x80U\0n\x81a\0\xE5\x80\0\x005\0\xD2\x03D\x005\x04\"\0K\x04\x10\0\xD8\x04\x08\0\xD8\x04\xDA\x84\xD9\x04\xDB\x84\xE8\x04\xEA\x84\xE9\x04\xEB\x84K\x04\xF9\x84M\x04\xED\x84V\x04W\x848\x04\x08\08\x04\xE5\x84>\x04\xE7\x84C\x04\xF1\x84G\x04\xF5\x845\x04Q\x846\x04\xDD\x847\x04\xDF\x84\x18\x04\x10\0'\x04\x08\0'\x04\xF4\x84+\x04\xF8\x84-\x04\xEC\x840\x04\xD3\x84\x18\x04\xE4\x84\x1E\x04\xE6\x84#\x04\xF0\x84\x15\x04\x06\0\x15\x04\x01\x84\x16\x04\xDC\x84\x17\x04\xDE\x84\xD2\x03\xD4\x83\x06\x04\x07\x84\x10\x04\xD2\x84o\0\"\0\xF5\0\x10\0\x99\x03\x08\0\x99\x03\xAA\x83\xA5\x03\xAB\x83\xB9\x03\xCA\x83\xC5\x03\xCB\x83\xF5\0O\x9Ej\x01z\x9Ek\x01{\x9Ew\0\x08\0w\0\x85\x9Ex\0\x8D\x9Ey\0\xFF\x80\xD5\0N\x9Eo\0\xF6\x80t\0\x97\x9Eu\0\xFC\x80W\0\x10\0a\0\x08\0a\0\xE4\x80e\0\xEB\x80h\0'\x9Ei\0\xEF\x80W\0\x84\x9EX\0\x8C\x9EY\0x\x81I\0\x06\0I\0\xCF\x80O\0\xD6\x80U\0\xDC\x80A\0\xC4\x80E\0\xCB\x80H\0&\x9E\x17\0\xC2\0\x1E\0\x02\x01\x0E\0\xA1\x01\x06\0\xA1\x01\xDF\x9E\xAF\x01\xEC\x9E\xB0\x01\xED\x9E\x02\x01\xB2\x9E\x03\x01\xB3\x9E\xA0\x01\xDE\x9E\xE2\0\x06\0\xE2\0\xA9\x9E\xEA\0\xC3\x9E\xF4\0\xD5\x9E\xC2\0\xA8\x9E\xCA\0\xC2\x9E\xD4\0\xD4\x9Ea\0\x0E\0o\0\x06\0o\0\xCF\x9Eu\0\xE7\x9Ey\0\xF7\x9Ea\0\xA3\x9Ee\0\xBB\x9Ei\0\xC9\x9EO\0\x06\0O\0\xCE\x9EU\0\xE6\x9EY\0\xF6\x9EA\0\xA2\x9EE\0\xBA\x9EI\0\xC8\x9E\x03\x03\x83\x01\x03\x03|\0\x04\x03\xC1\0\x06\x03.\x01\x07\x03-\0d\0:\0t\0\x1E\0[\x01\x0E\0\x7F\x01\x06\0\x7F\x01\x9B\x9Eb\x1Eh\x9Ec\x1Ei\x9E[\x01e\x9E`\x01f\x9Ea\x01g\x9Ey\0\x06\0y\0\x8F\x9Ez\0|\x81Z\x01d\x9Et\0k\x9Ew\0\x87\x9Ex\0\x8B\x9Em\0\x0E\0p\0\x06\0p\0W\x9Er\0Y\x9Es\0a\x9Em\0A\x9En\0E\x9Eo\0/\x82d\0\x0B\x9Ee\0\x17\x81f\0\x1F\x9Eg\0!\x81h\0#\x9EO\0\x1E\0X\0\x0E\0a\0\x06\0a\0'\x82b\0\x03\x9Ec\0\x0B\x81X\0\x8A\x9EY\0\x8E\x9EZ\0{\x81S\0\x06\0S\0`\x9ET\0j\x9EW\0\x86\x9EO\0.\x82P\0V\x9ER\0X\x9EF\0\x0E\0I\0\x06\0I\x000\x81M\0@\x9EN\0D\x9EF\0\x1E\x9EG\0 \x81H\0\"\x9EA\0&\x82B\0\x02\x9EC\0\n\x81D\0\n\x9EE\0\x16\x81\x1B\0v\0\"\0\xF4\0\x10\0\xA0\x01\x08\0\xA0\x01\xE0\x9E\xA1\x01\xE1\x9E\xAF\x01\xEE\x9E\xB0\x01\xEF\x9E\xF4\0\xD7\x9E\x02\x01\xB4\x9E\x03\x01\xB5\x9E\xCA\0\x08\0\xCA\0\xC4\x9E\xD4\0\xD6\x9E\xE2\0\xAB\x9E\xEA\0\xC5\x9Ev\0}\x9Ey\0\xF9\x9E\xC2\0\xAA\x9EY\0\x10\0i\0\x08\0i\0)\x81n\0\xF1\x80o\0\xF5\x80u\0i\x81Y\0\xF8\x9Ea\0\xE3\x80e\0\xBD\x9EN\0\x08\0N\0\xD1\x80O\0\xD5\x80U\0h\x81V\0|\x9EA\0\xC3\x80E\0\xBC\x9EI\0(\x81+\0\xF6\x006\0\xB1\x03\x1A\08\x04\x0E\x007\x1E\x06\x007\x1E9\x9EZ\x1E\\\x9E[\x1E]\x9E8\x04\xE3\x84C\x04\xEF\x846\x1E8\x9E\xB1\x03\xB1\x9F\xB9\x03\xD1\x9F\xC5\x03\xE1\x9F\x18\x04\xE2\x84#\x04\xEE\x84'\x02\x0E\0\x91\x03\x06\0\x91\x03\xB9\x9F\x99\x03\xD9\x9F\xA5\x03\xE9\x9F'\x02\xE1\x81.\x020\x82/\x021\x82\xF6\0+\x82\xFC\0\xD6\x81\xEA\x01\xEC\x81\xEB\x01\xED\x81&\x02\xE0\x81o\0\x1A\0\xD5\0\x0E\0\xE4\0\x06\0\xE4\0\xDF\x81\xE6\0\xE3\x81\xF5\0-\x82\xD5\0,\x82\xD6\0*\x82\xDC\0\xD5\x81o\0M\x81u\0k\x81y\x003\x82\xC4\0\xDE\x81\xC6\0\xE2\x81U\0\x0E\0e\0\x06\0e\0\x13\x81g\0!\x9Ei\0+\x81U\0j\x81Y\x002\x82a\0\x01\x81A\0\0\x81E\0\x12\x81G\0 \x9EI\0*\x81O\0L\x81\x1F\0\xA5\x03&\0#\x04\x12\08\x04\x08\08\x049\x84C\x04^\x84\xA0\x1E\xB6\x9E\xA1\x1E\xB7\x9E#\x04\x0E\x840\x04\xD1\x845\x04\xD7\x846\x04\xC2\x84\x10\x04\x08\0\x10\x04\xD0\x84\x15\x04\xD6\x84\x16\x04\xC1\x84\x18\x04\x19\x84\xA5\x03\xE8\x9F\xB1\x03\xB0\x9F\xB9\x03\xD0\x9F\xC5\x03\xE0\x9Fg\0\x12\0(\x02\x08\0(\x02\x1C\x9E)\x02\x1D\x9E\x91\x03\xB8\x9F\x99\x03\xD8\x9Fg\0\x1F\x81i\0-\x81o\0O\x81u\0m\x81O\0\x08\0O\0N\x81U\0l\x81a\0\x03\x81e\0\x15\x81A\0\x02\x81E\0\x14\x81G\0\x1E\x81I\0,\x81\0\x03R\0\x01\x03 \x01\x02\x03\x1F\0g\0&\0y\0\x12\0\xB8\x1E\x08\0\xB8\x1E\xC6\x9E\xB9\x1E\xC7\x9E\xCC\x1E\xD8\x9E\xCD\x1E\xD9\x9Ey\0w\x81z\0\x91\x9E\xA0\x1E\xAC\x9E\xA1\x1E\xAD\x9Eo\0\x08\0o\0\xF4\x80s\0]\x81u\0\xFB\x80w\0u\x81g\0\x1D\x81h\0%\x81i\0\xEE\x80j\x005\x81S\0\x12\0Z\0\x08\0Z\0\x90\x9Ea\0\xE2\x80c\0\t\x81e\0\xEA\x80S\0\\\x81U\0\xDB\x80W\0t\x81Y\0v\x81H\0\x08\0H\0$\x81I\0\xCE\x80J\x004\x81O\0\xD4\x80A\0\xC2\x80C\0\x08\x81E\0\xCA\x80G\0\x1C\x81\0\0S\0\xB1\x03f\0 \x1F2\0H\x1F\x1A\0`\x1F\x0E\0i\x1F\x06\0i\x1Fk\x9F\xBF\x1F\xCD\x9F\xFE\x1F\xDD\x9F`\x1Fb\x9Fa\x1Fc\x9Fh\x1Fj\x9FH\x1FJ\x9FI\x1FK\x9FP\x1FR\x9FQ\x1FS\x9FY\x1F[\x9F1\x1F\n\x001\x1F3\x9F8\x1F:\x9F9\x1F;\x9F@\x1FB\x9FA\x1FC\x9F \x1F\"\x9F!\x1F#\x9F(\x1F*\x9F)\x1F+\x9F0\x1F2\x9F\x18\x04\x1A\0\x08\x1F\x0E\0\x11\x1F\x06\0\x11\x1F\x13\x9F\x18\x1F\x1A\x9F\x19\x1F\x1B\x9F\x08\x1F\n\x9F\t\x1F\x0B\x9F\x10\x1F\x12\x9F\x18\x04\r\x845\x04P\x848\x04]\x84\0\x1F\x02\x9F\x01\x1F\x03\x9F\xC5\x03\n\0\xC5\x03z\x9F\xC9\x03|\x9F\xCA\x03\xD2\x9F\xCB\x03\xE2\x9F\x15\x04\0\x84\xB1\x03p\x9F\xB5\x03r\x9F\xB7\x03t\x9F\xB9\x03v\x9F\xBF\x03x\x9F\xE2\x002\0\xA0\x01\x1A\0\x95\x03\x0E\0\x9F\x03\x06\0\x9F\x03\xF8\x9F\xA5\x03\xEA\x9F\xA9\x03\xFA\x9F\x95\x03\xC8\x9F\x97\x03\xCA\x9F\x99\x03\xDA\x9F\xA0\x01\xDC\x9E\xA1\x01\xDD\x9E\xAF\x01\xEA\x9E\xB0\x01\xEB\x9E\x91\x03\xBA\x9F\x03\x01\n\0\x03\x01\xB1\x9E\x12\x01\x14\x9E\x13\x01\x15\x9EL\x01P\x9EM\x01Q\x9E\xE2\0\xA7\x9E\xEA\0\xC1\x9E\xF4\0\xD3\x9E\xFC\0\xDC\x81\x02\x01\xB0\x9Ei\0\x1A\0y\0\x0E\0\xCA\0\x06\0\xCA\0\xC0\x9E\xD4\0\xD2\x9E\xDC\0\xDB\x81y\0\xF3\x9E\xA8\0\xED\x9F\xC2\0\xA6\x9Ei\0\xEC\x80n\0\xF9\x81o\0\xF2\x80u\0\xF9\x80w\0\x81\x9EU\0\n\0U\0\xD9\x80W\0\x80\x9EY\0\xF2\x9Ea\0\xE0\x80e\0\xE8\x80A\0\xC0\x80E\0\xC8\x80I\0\xCC\x80N\0\xF8\x81O\0\xD2\x80\0\0t\0\x13\x01\x94\0:\x04J\08\x1F$\0Q\x1F\x12\0h\x1F\x08\0h\x1Fl\x9Fi\x1Fm\x9F\xBF\x1F\xCE\x9F\xFE\x1F\xDE\x9FQ\x1FU\x9FY\x1F]\x9F`\x1Fd\x9Fa\x1Fe\x9FA\x1F\x08\0A\x1FE\x9FH\x1FL\x9FI\x1FM\x9FP\x1FT\x9F8\x1F<\x9F9\x1F=\x9F@\x1FD\x9F\x18\x1F\x12\0(\x1F\x08\0(\x1F,\x9F)\x1F-\x9F0\x1F4\x9F1\x1F5\x9F\x18\x1F\x1C\x9F\x19\x1F\x1D\x9F \x1F$\x9F!\x1F%\x9F\x08\x1F\x08\0\x08\x1F\x0C\x9F\t\x1F\r\x9F\x10\x1F\x14\x9F\x11\x1F\x15\x9F:\x04\\\x84\0\x1F\x04\x9F\x01\x1F\x05\x9F\xA5\x03$\0\xC5\x03\x12\0\xD2\x03\x08\0\xD2\x03\xD3\x83\x13\x04\x03\x84\x1A\x04\x0C\x843\x04S\x84\xC5\x03\xCD\x83\xC9\x03\xCE\x83\xCA\x03\x90\x83\xCB\x03\xB0\x83\xB5\x03\x08\0\xB5\x03\xAD\x83\xB7\x03\xAE\x83\xB9\x03\xAF\x83\xBF\x03\xCC\x83\xA5\x03\x8E\x83\xA9\x03\x8F\x83\xB1\x03\xAC\x83\xAF\x01\x10\0\x95\x03\x08\0\x95\x03\x88\x83\x97\x03\x89\x83\x99\x03\x8A\x83\x9F\x03\x8C\x83\xAF\x01\xE8\x9E\xB0\x01\xE9\x9E\x91\x03\x86\x83h\x01\x08\0h\x01x\x9Ei\x01y\x9E\xA0\x01\xDA\x9E\xA1\x01\xDB\x9E\x13\x01\x17\x9EL\x01R\x9EM\x01S\x9Es\0H\0\xD8\0$\0\xEF\0\x12\0\xFC\0\x08\0\xFC\0\xD8\x81\x02\x01\xAE\x9E\x03\x01\xAF\x9E\x12\x01\x16\x9E\xEF\0/\x9E\xF4\0\xD1\x9E\xF5\0M\x9E\xF8\0\xFF\x81\xE5\0\x08\0\xE5\0\xFB\x81\xE6\0\xFD\x81\xE7\0\t\x9E\xEA\0\xBF\x9E\xD8\0\xFE\x81\xDC\0\xD7\x81\xE2\0\xA5\x9E\xC5\0\x10\0\xCA\0\x08\0\xCA\0\xBE\x9E\xCF\0.\x9E\xD4\0\xD0\x9E\xD5\0L\x9E\xC5\0\xFA\x81\xC6\0\xFC\x81\xC7\0\x08\x9Ey\0\x08\0y\0\xFD\x80z\0z\x81\xA8\0\x85\x83\xC2\0\xA4\x9Es\0[\x81u\0\xFA\x80w\0\x83\x9EW\0$\0i\0\x12\0n\0\x08\0n\0D\x81o\0\xF3\x80p\0U\x9Er\0U\x81i\0\xED\x80k\x001\x9El\0:\x81m\0?\x9Ea\0\x08\0a\0\xE1\x80c\0\x07\x81e\0\xE9\x80g\0\xF5\x81W\0\x82\x9EY\0\xDD\x80Z\0y\x81M\0\x10\0P\0\x08\0P\0T\x9ER\0T\x81S\0Z\x81U\0\xDA\x80M\0>\x9EN\0C\x81O\0\xD3\x80G\0\x08\0G\0\xF4\x81I\0\xCD\x80K\x000\x9EL\09\x81A\0\xC1\x80C\0\x06\x81E\0\xC9\x80") + }, + }, +} diff --git a/boa_icu_provider/data/min/normalizer/mod.rs b/boa_icu_provider/data/min/normalizer/mod.rs new file mode 100644 index 0000000000..384d17ea4f --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/mod.rs @@ -0,0 +1,6 @@ +// @generated +pub mod comp_v1; +pub mod nfd_v1; +pub mod nfdex_v1; +pub mod nfkd_v1; +pub mod nfkdex_v1; diff --git a/boa_icu_provider/data/min/normalizer/nfd_v1/mod.rs b/boa_icu_provider/data/min/normalizer/nfd_v1/mod.rs new file mode 100644 index 0000000000..1296cab6bc --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/nfd_v1/mod.rs @@ -0,0 +1,6 @@ +// @generated +type DataStruct = < :: icu_normalizer :: provider :: CanonicalDecompositionDataV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; +pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { + locale.is_empty().then(|| &UND) +} +static UND: DataStruct = include!("und.rs.data"); diff --git a/boa_icu_provider/data/min/normalizer/nfd_v1/und.rs.data b/boa_icu_provider/data/min/normalizer/nfd_v1/und.rs.data new file mode 100644 index 0000000000..bd387b9853 --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/nfd_v1/und.rs.data @@ -0,0 +1,19 @@ +::icu_normalizer::provider::DecompositionDataV1 { + trie: ::icu_collections::codepointtrie::CodePointTrie::from_parts( + ::icu_collections::codepointtrie::CodePointTrieHeader { + high_start: 195584u32, + shifted12_high_start: 48u16, + index3_null_offset: 380u16, + data_null_offset: 0u32, + null_value: 0u32, + trie_type: ::icu_collections::codepointtrie::TrieType::Small, + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\0\0@\0\0\0\x80\0\xC0\0\xFF\0>\x01q\x01\xB1\x01\0\0\0\0\0\0\xF1\x011\x02p\x02\xA6\x02\xE6\x02 \x03]\x03\x9C\x03\0\0\0\0\xD6\x03\x16\x04F\x04{\x04\0\0\xBB\x04\xEA\x04)\x05\0\0>\x05|\x05\xAA\x05\xD2\x05\x08\x06H\x06\x85\x06\xA5\x06\xE4\x06#\x07`\x07\x7F\x07\xBC\x07\xA5\x06\xF4\x07 \x08_\x08\x7F\x07\x97\x08\x7F\x07\xD7\x08\xEE\x08-\t\0\0c\t\x83\t\xBE\t\xCA\t\x05\n-\nj\n\xAA\n\xE4\n\xBA\x05\xD3\x05\xE0\x05\xF6\x05\x16\x06&\x06>\x06]\x06\xD3\x05\xD3\x05\xD3\x05r\x06\0\0\x10\0 \x000\0@\0P\0`\0p\0\0\0\x10\0 \x000\0\x80\0\x90\0\xA0\0\xB0\0\xC0\0\xD0\0\xE0\0\xF0\0\xFF\0\x0F\x01\x1F\x01/\x01>\x01N\x01^\x01n\x01q\x01\x81\x01\x91\x01\xA1\x01\xB1\x01\xC1\x01\xD1\x01\xE1\x01\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\xF1\x01\x01\x02\x11\x02!\x021\x02A\x02Q\x02a\x02p\x02\x80\x02\x90\x02\xA0\x02\xA6\x02\xB6\x02\xC6\x02\xD6\x02\xE6\x02\xF6\x02\x06\x03\x16\x03 \x030\x03@\x03P\x03]\x03m\x03}\x03\x8D\x03\x9C\x03\xAC\x03\xBC\x03\xCC\x03\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\xD6\x03\xE6\x03\xF6\x03\x06\x04\x16\x04&\x046\x04F\x04V\x04f\x04v\x04{\x04\x8B\x04\x9B\x04\xAB\x04\0\0\x10\0 \x000\0\xBB\x04\xCB\x04\xDB\x04\xEB\x04\xEA\x04\xFA\x04\n\x05\x1A\x05)\x059\x05I\x05Y\x05\0\0\x10\0 \x000\0>\x05N\x05^\x05n\x05|\x05\x8C\x05\x9C\x05\xAC\x05\xAA\x05\xBA\x05\xCA\x05\xDA\x05\xD2\x05\xE2\x05\xF2\x05\x02\x06\x08\x06\x18\x06(\x068\x06H\x06X\x06h\x06x\x06\x85\x06\x95\x06\xA5\x06\xB5\x06\xA5\x06\xB5\x06\xC5\x06\xD5\x06\xE4\x06\xF4\x06\x04\x07\x14\x07#\x073\x07C\x07S\x07`\x07p\x07\x80\x07\x90\x07\x7F\x07\x8F\x07\x9F\x07\xAF\x07\xBC\x07\xCC\x07\xDC\x07\xEC\x07\xA5\x06\xB5\x06\xC5\x06\xD5\x06\xF4\x07\x04\x08\x14\x08$\x08 \x080\x08@\x08P\x08_\x08o\x08\x7F\x08\x8F\x08\x7F\x07\x8F\x07\x9F\x07\xAF\x07\x97\x08\xA7\x08\xB7\x08\xC7\x08\x7F\x07\x8F\x07\x9F\x07\xAF\x07\xD7\x08\xE7\x08\xF7\x08\x07\t\xEE\x08\xFE\x08\x0E\t\x1E\t-\t=\tM\t]\t\0\0\x10\0 \x000\0c\ts\t\x83\t\x93\t\xA3\t\xB3\t\xBE\t\xCE\t\xDE\t\xEE\t\xCA\t\xDA\t\xEA\t\xFA\t\x05\n\x15\n%\n5\n-\n=\nM\n]\nj\nz\n\x8A\n\x9A\n\xAA\n\xBA\n\xCA\n\xDA\n\xE4\n\xF4\n\x04\x0B\x14\x0B\0\0\0\0\x1E\x0B-\x0B\0\0\0\0\0\0\0\08\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0G\x0BQ\x0B\0\0\0\0Y\x0Ba\x0Bn\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0I\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0z\x0B\0\0i\x07\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x88\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x96\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA0\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xAC\x0B\0\0\0\0\0\0\0\0\xC9\x07\xB7\x0B\0\0\0\0\0\0\xC7\x0B\xD6\x0B\0\0\0\0\0\0\xE5\x0B\xF4\x0B\0\0\0\x0C\x10\x0C\0\0\x15\x0Ca\x03\0\0\0\0t\x0B\0\0\0\0\0\0~\x06%\x0C\0\0\0\0\0\0}\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x005\x0CE\x0CS\x0C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\x0Cs\x0C\xF1\x01}\x0C\x8D\x0C\x9D\x0C\xAD\x0C\xBD\x0C\xCD\x0C\xDD\x0C\xED\x0C\xFD\x0C\r\r\x1D\r-\r=\rM\r]\rm\r}\r\x8D\r\x9D\r\xAD\r\xBD\r\xCD\r\xDD\r\xED\r\xFD\r\r\x0E\x1D\x0E-\x0E=\x0EL\x0E\\\x0El\x0E|\x0E\x8C\x0E\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x9C\x0E\xAB\x0Ed\x03\0\0\0\0\xBB\x0E\0\0\0\0\0\0\0\0\0\0\0\0\xC7\x0E\xD3\x0E\0\0\xE2\x0E\0\0\0\0\0\0\xF2\x0E\0\0\xFF\x0E\0\0\x0E\x0F\0\0\x1E\x0F.\x0F>\x0F\0\0H\x0F\0\0\0\0\0\0X\x0F\0\0\0\0\0\0f\x0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0q\x0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0G\x04c\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1A\t\0\0\0\0\0\0\0\0\0\0\0\0\xF1\x01\xF1\x01\0\0\0\0~\x0F\0\0\x8E\x0F\x9E\x0F\xAE\x0F\xBE\x0F\0\0\xCC\x0F\xDB\x0F\xEB\x0F\xFB\x0F\x0B\x10\0\0\x19\x10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0G\x04(\x10\0\0H\x04\0\0\0\0\0\0\0\0\0\0c\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\x07\0\0\x86\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0i\x07\0\0\xF1\x01c\x03\0\0\0\0\xB8\x05\0\0\0\0\xC6\x07\0\0\0\0\0\0\0\0\0\0\x81\x06\xC9\x07\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\08\x10!\x07\0\0\0\0g\x07\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x85\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\x10X\x10h\x10x\x10\x88\x10\x98\x10\xA8\x10\xB8\x10\xC8\x10\xD8\x10\xE8\x10\xF8\x10\x08\x11\x18\x11(\x118\x11H\x11X\x11h\x11x\x11\x88\x11\x98\x11\xA8\x11\xB8\x11\xC8\x11\xD8\x11\xE8\x11\xF8\x11\x08\x12\x18\x12\0\0\0\0\0\0\"\x122\x12B\x12R\x12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\x12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\08\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x9A\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Z\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0r\x12\0\0\0\0\x82\x12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92\x12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x9E\x12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA6\x12\0\0\0\0\0\0\0\0\xB6\x05\0\0\0\0\0\0\0\0\xB3\x12\x9A\x04\0\0\0\0\xC3\x12\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\x07\0\0\0\0\xD3\x12\0\0\xE3\x12\xF0\x12\xFC\x12\0\0\0\0\0\0\0\0b\x03\0\0\x07\x13\x17\x13\0\0\0\0\0\0\x81\x06\0\0\0\0\0\0\0\0'\x13\0\0\0\0\0\x002\x13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\09\x13\0\0\0\0\0\0\0\0D\x13S\x13W\x08a\x13`\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o\x13\x14\x07\0\0\0\0\0\0\0\0\0\0\x7F\x13\x8E\x13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0O\x08\x94\x13\xA4\x13\0\0\0\0\0\0\x1A\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xAE\x13\0\0\0\0\0\0\0\0\0\0\0\0b\x07\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFC\x12\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xBE\x13\x81\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xC9\x07\0\0\0\0\0\0i\x07f\x07\0\0\0\0\0\0\0\0d\x07\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1A\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x002\x0B\0\0\0\0\0\0\0\0f\x07\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x005\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xCE\x13\0\0\0\0\0\0\xDE\x13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xEE\x13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xF0\x13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFF\x13\x0F\x14\x1D\x14*\x14\0\x006\x14D\x14T\x14\0\0\0\0\0\0\0\0b\x14\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0r\x14z\x14\x88\x14\0\0\0\0\0\0\0\0\0\0G\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDE\x13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14\x07\0\0\0\0\0\0\xE5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x93\x14\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA3\x14\0\0\0\0\0\0\0\0\0\0\0\0\xAF\x14\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xBF\x14\xCF\x14\xDF\x14\xEF\x14\xFF\x14\x0F\x15\x1F\x15/\x15?\x15O\x15_\x15o\x15\x7F\x15\x8F\x15\x9F\x15\xAF\x15\xBF\x15\xCF\x15\xDF\x15\xEF\x15\xFF\x15\x0F\x16\x1F\x16/\x16?\x16O\x16_\x16o\x16\x7F\x16\x8F\x16\x9F\x16\xAF\x16\xBF\x16\xCF\x16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0L\0l\0\x8C\0\xAB\0\xCB\0\xEB\0\x0B\x01)\x01I\x01f\x01|\x01\x8B\x01\xA9\x01\xC8\x01\xE8\x01\x08\x02(\x02H\x02|\x01|\x01|\x01[\x02m\x02|\x01\x8D\x02|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01\xA7\x02\xC7\x02\xE4\x02|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01\x03\x03#\x03|\x01A\x03D\x03d\x03|\x01|\x01|\x01\x84\x03\x93\x03\xA9\x03\xC5\x03\xE2\x03\xFE\x03\x1B\x048\x04W\x04t\x04\x8E\x04|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01\xA3\x04|\x01\xB7\x04|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01\xD7\x04|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01\xE2\x04\xFF\x04|\x01|\x01|\x01|\x01|\x01|\x01\x1F\x055\x05G\x05|\x01Z\x05|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01|\x01z\x05\x9A\x05") + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\0\0\x03A\0\x01\x03A\0\x02\x03A\0\x03\x03A\0\x08\x03A\0\n\x03\0\0\0\0C\0'\x03E\0\0\x03E\0\x01\x03E\0\x02\x03E\0\x08\x03I\0\0\x03I\0\x01\x03I\0\x02\x03I\0\x08\x03\0\0\0\0N\0\x03\x03O\0\0\x03O\0\x01\x03O\0\x02\x03O\0\x03\x03O\0\x08\x03\0\0\0\0\0\0\0\0U\0\0\x03U\0\x01\x03U\0\x02\x03U\0\x08\x03Y\0\x01\x03\0\0\0\0\0\0\0\0a\0\0\x03a\0\x01\x03a\0\x02\x03a\0\x03\x03a\0\x08\x03a\0\n\x03\0\0\0\0c\0'\x03e\0\0\x03e\0\x01\x03e\0\x02\x03e\0\x08\x03i\0\0\x03i\0\x01\x03i\0\x02\x03i\0\x08\x03\0\0\0\0n\0\x03\x03o\0\0\x03o\0\x01\x03o\0\x02\x03o\0\x03\x03o\0\x08\x03\0\0\0\0\0\0\0\0u\0\0\x03u\0\x01\x03u\0\x02\x03u\0\x08\x03y\0\x01\x03\0\0\0\0y\0\x08\x03A\0\x04\x03a\0\x04\x03A\0\x06\x03a\0\x06\x03A\0(\x03a\0(\x03C\0\x01\x03c\0\x01\x03C\0\x02\x03c\0\x02\x03C\0\x07\x03c\0\x07\x03C\0\x0C\x03c\0\x0C\x03D\0\x0C\x03d\0\x0C\x03\0\0\0\0\0\0\0\0E\0\x04\x03e\0\x04\x03E\0\x06\x03e\0\x06\x03E\0\x07\x03e\0\x07\x03E\0(\x03e\0(\x03E\0\x0C\x03e\0\x0C\x03G\0\x02\x03g\0\x02\x03G\0\x06\x03g\0\x06\x03G\0\x07\x03g\0\x07\x03G\0'\x03g\0'\x03H\0\x02\x03h\0\x02\x03\0\0\0\0\0\0\0\0I\0\x03\x03i\0\x03\x03I\0\x04\x03i\0\x04\x03I\0\x06\x03i\0\x06\x03I\0(\x03i\0(\x03I\0\x07\x03\0\0\0\0\0\0\0\0\0\0\0\0J\0\x02\x03j\0\x02\x03K\0'\x03k\0'\x03\0\0\0\0L\0\x01\x03l\0\x01\x03L\0'\x03l\0'\x03L\0\x0C\x03l\0\x0C\x03\0\0\0\0\0\0\0\0\0\0\0\0N\0\x01\x03n\0\x01\x03N\0'\x03n\0'\x03N\0\x0C\x03n\0\x0C\x03\0\0\0\0\0\0\0\0\0\0\0\0O\0\x04\x03o\0\x04\x03O\0\x06\x03o\0\x06\x03O\0\x0B\x03o\0\x0B\x03\0\0\0\0\0\0\0\0R\0\x01\x03r\0\x01\x03R\0'\x03r\0'\x03R\0\x0C\x03r\0\x0C\x03S\0\x01\x03s\0\x01\x03S\0\x02\x03s\0\x02\x03S\0'\x03s\0'\x03S\0\x0C\x03s\0\x0C\x03T\0'\x03t\0'\x03T\0\x0C\x03t\0\x0C\x03\0\0\0\0\0\0\0\0U\0\x03\x03u\0\x03\x03U\0\x04\x03u\0\x04\x03U\0\x06\x03u\0\x06\x03U\0\n\x03u\0\n\x03U\0\x0B\x03u\0\x0B\x03U\0(\x03u\0(\x03W\0\x02\x03w\0\x02\x03Y\0\x02\x03y\0\x02\x03Y\0\x08\x03Z\0\x01\x03z\0\x01\x03Z\0\x07\x03z\0\x07\x03Z\0\x0C\x03z\0\x0C\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0O\0\x1B\x03o\0\x1B\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\0\x1B\x03u\0\x1B\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\0\x0C\x03a\0\x0C\x03I\0\x0C\x03i\0\x0C\x03O\0\x0C\x03o\0\x0C\x03U\0\x0C\x03u\0\x0C\x03\0\0\x073\0\0\x043\0\0\x013\0\0\xFE2\0\0\xFB2\0\0\xF82\0\0\xF52\0\0\xF22\0\0\0\0\0\0\xEF2\0\0\xEC2\0\0\xE92\0\0\xE62\xC6\0\x04\x03\xE6\0\x04\x03\0\0\0\0\0\0\0\0G\0\x0C\x03g\0\x0C\x03K\0\x0C\x03k\0\x0C\x03O\0(\x03o\0(\x03\0\0\xE32\0\0\xE02\xB7\x01\x0C\x03\x92\x02\x0C\x03j\0\x0C\x03\0\0\0\0\0\0\0\0\0\0\0\0G\0\x01\x03g\0\x01\x03\0\0\0\0\0\0\0\0N\0\0\x03n\0\0\x03\0\0\xDD2\0\0\xDA2\xC6\0\x01\x03\xE6\0\x01\x03\xD8\0\x01\x03\xF8\0\x01\x03A\0\x0F\x03a\0\x0F\x03A\0\x11\x03a\0\x11\x03E\0\x0F\x03e\0\x0F\x03E\0\x11\x03e\0\x11\x03I\0\x0F\x03i\0\x0F\x03I\0\x11\x03i\0\x11\x03O\0\x0F\x03o\0\x0F\x03O\0\x11\x03o\0\x11\x03R\0\x0F\x03r\0\x0F\x03R\0\x11\x03r\0\x11\x03U\0\x0F\x03u\0\x0F\x03U\0\x11\x03u\0\x11\x03S\0&\x03s\0&\x03T\0&\x03t\0&\x03\0\0\0\0\0\0\0\0H\0\x0C\x03h\0\x0C\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\0\x07\x03a\0\x07\x03E\0'\x03e\0'\x03\0\0\xD72\0\0\xD42\0\0\xD12\0\0\xCE2O\0\x07\x03o\0\x07\x03\0\0\xCB2\0\0\xC82Y\0\x04\x03y\0\x04\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE8\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE8\xD8\0\0\xD8\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xCA\xD8\0\0\xCA\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xCA\xD8\0\0\xCA\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\x02\0\0\0\x02\0\0\0\xE6\xD8\0\0\x02\0\0\0\x02\0\0\0\xF0\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE8\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE9\xD8\0\0\xEA\xD8\0\0\xEA\xD8\0\0\xE9\xD8\0\0\xEA\xD8\0\0\xEA\xD8\0\0\xE9\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB9\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA8\0\x01\x03\x91\x03\x01\x03\xB7\0\0\0\x95\x03\x01\x03\x97\x03\x01\x03\x99\x03\x01\x03\0\0\0\0\x9F\x03\x01\x03\0\0\0\0\xA5\x03\x01\x03\xA9\x03\x01\x03\0\0\x1F0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x99\x03\x08\x03\xA5\x03\x08\x03\xB1\x03\x01\x03\xB5\x03\x01\x03\xB7\x03\x01\x03\xB9\x03\x01\x03\0\0\x160\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB9\x03\x08\x03\xC5\x03\x08\x03\xBF\x03\x01\x03\xC5\x03\x01\x03\xC9\x03\x01\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xD2\x03\x01\x03\xD2\x03\x08\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15\x04\0\x03\x15\x04\x08\x03\0\0\0\0\x13\x04\x01\x03\0\0\0\0\0\0\0\0\0\0\0\0\x06\x04\x08\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1A\x04\x01\x03\x18\x04\0\x03#\x04\x06\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x18\x04\x06\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\08\x04\x06\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x005\x04\0\x035\x04\x08\x03\0\0\0\x003\x04\x01\x03\0\0\0\0\0\0\0\0\0\0\0\0V\x04\x08\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0:\x04\x01\x038\x04\0\x03C\x04\x06\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0t\x04\x0F\x03u\x04\x0F\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x04\x06\x036\x04\x06\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10\x04\x06\x030\x04\x06\x03\x10\x04\x08\x030\x04\x08\x03\0\0\0\0\0\0\0\0\x15\x04\x06\x035\x04\x06\x03\0\0\0\0\0\0\0\0\xD8\x04\x08\x03\xD9\x04\x08\x03\x16\x04\x08\x036\x04\x08\x03\x17\x04\x08\x037\x04\x08\x03\0\0\0\0\0\0\0\0\x18\x04\x04\x038\x04\x04\x03\x18\x04\x08\x038\x04\x08\x03\x1E\x04\x08\x03>\x04\x08\x03\0\0\0\0\0\0\0\0\xE8\x04\x08\x03\xE9\x04\x08\x03-\x04\x08\x03M\x04\x08\x03#\x04\x04\x03C\x04\x04\x03#\x04\x08\x03C\x04\x08\x03#\x04\x0B\x03C\x04\x0B\x03'\x04\x08\x03G\x04\x08\x03\0\0\0\0\0\0\0\0+\x04\x08\x03K\x04\x08\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDE\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDE\xD8\0\0\xE4\xD8\0\0\xE6\xD8\0\0\n\xD8\0\0\x0B\xD8\0\0\x0C\xD8\0\0\r\xD8\0\0\x0E\xD8\0\0\x0F\xD8\0\0\x10\xD8\0\0\x11\xD8\0\0\x12\xD8\0\0\x13\xD8\0\0\x13\xD8\0\0\x14\xD8\0\0\x15\xD8\0\0\x16\xD8\0\0\0\0\0\0\x17\xD8\0\0\0\0\0\0\x18\xD8\0\0\x19\xD8\0\0\0\0\0\0\xE6\xD8\0\0\xDC\xD8\0\0\0\0\0\0\x12\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\x1E\xD8\0\0\x1F\xD8\0\0 \xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'\x06S\x06'\x06T\x06H\x06T\x06'\x06U\x06J\x06T\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1B\xD8\0\0\x1C\xD8\0\0\x1D\xD8\0\0\x1E\xD8\0\0\x1F\xD8\0\0 \xD8\0\0!\xD8\0\0\"\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xD5\x06T\x06\0\0\0\0\xC1\x06T\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xD2\x06T\x06\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\x1B\xD8\0\0\x1C\xD8\0\0\x1D\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\t<\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\t<\t\0\0\0\0\0\0\0\x003\t<\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15\t<\t\x16\t<\t\x17\t<\t\x1C\t<\t!\t<\t\"\t<\t+\t<\t/\t<\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\xD8\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xC6\x02\0\0\xC4\x02\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA1\t\xBC\t\xA2\t\xBC\t\0\0\0\0\xAF\t\xBC\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x002\n<\n\0\0\0\0\0\0\0\08\n<\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\n<\n\x17\n<\n\x1C\n<\n\0\0\0\0\0\0\0\0+\n<\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xC2\x02\0\0\0\0\0\0\0\0\0\0\xC0\x02\0\0\xBE\x02\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0!\x0B<\x0B\"\x0B<\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xBC\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xBA\x02\0\0\xB8\x02\0\0\xB6\x02\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F\x0CV\x0C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0T\xD8\0\0[\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB4\x02\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB2\x02\0\0\xB0\x02\0\0\0\0\0\0\xAD\x02\0\0\xAD\"\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\t\xD8\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xAB\x02\0\0\xA9\x02\0\0\xA7\x02\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xD9\r\xCA\r\0\0\0\0\0\0\xA4\x02\0\0\xA4\"\0\0\xA2\x02\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0g\xD8\0\0g\xD8\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0k\xD8\0\0k\xD8\0\0k\xD8\0\0k\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\xD8\0\0v\xD8\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0z\xD8\0\0z\xD8\0\0z\xD8\0\0z\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\0\0\0\0\xDC\xD8\0\0\0\0\0\0\xD8\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\xA0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x9E\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x9C\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x9A\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x98\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x96\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81\xD8\0\0\x82\xD8\0\0\x02\0\0\0\x84\xD8\0\0\x02\0\0\0\x01\0\x94\x12\0\0\0\0\x01\0\x92\x12\0\0\0\0\x82\xD8\0\0\x82\xD8\0\0\x82\xD8\0\0\x82\xD8\0\0\0\0\0\0\0\0\0\0\x82\xD8\0\0\x02\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\t\xD8\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x90\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x8E\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x8C\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x8A\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x88\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x86\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\xD8\0\0\0\0\0\0\t\xD8\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE4\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDE\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\0\0\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x82\x02\0\0\0\0\0\0\x80\x02\0\0\0\0\0\0~\x02\0\0\0\0\0\0|\x02\0\0\0\0\0\0z\x02\0\0\0\0\0\0\0\0\0\0x\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\xD8\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0v\x02\0\0\0\0\0\0t\x02\0\0\0\0\0\0\0\0\0\0r\x02\0\0p\x02\0\0\0\0\0\0n\x02\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\x01\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\0\0\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xEA\xD8\0\0\xD6\xD8\0\0\xDC\xD8\0\0\xCA\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE8\xD8\0\0\xE4\xD8\0\0\xE4\xD8\0\0\xDC\xD8\0\0\xDA\xD8\0\0\xE6\xD8\0\0\xE9\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0A\0%\x03a\0%\x03B\0\x07\x03b\0\x07\x03B\0#\x03b\0#\x03B\x001\x03b\x001\x03\0\0k2\0\0h2D\0\x07\x03d\0\x07\x03D\0#\x03d\0#\x03D\x001\x03d\x001\x03D\0'\x03d\0'\x03D\0-\x03d\0-\x03\0\0e2\0\0b2\0\0_2\0\0\\2E\0-\x03e\0-\x03E\x000\x03e\x000\x03\0\0Y2\0\0V2F\0\x07\x03f\0\x07\x03G\0\x04\x03g\0\x04\x03H\0\x07\x03h\0\x07\x03H\0#\x03h\0#\x03H\0\x08\x03h\0\x08\x03H\0'\x03h\0'\x03H\0.\x03h\0.\x03I\x000\x03i\x000\x03\0\0S2\0\0P2K\0\x01\x03k\0\x01\x03K\0#\x03k\0#\x03K\x001\x03k\x001\x03L\0#\x03l\0#\x03\0\0M2\0\0J2L\x001\x03l\x001\x03L\0-\x03l\0-\x03M\0\x01\x03m\0\x01\x03M\0\x07\x03m\0\x07\x03M\0#\x03m\0#\x03N\0\x07\x03n\0\x07\x03N\0#\x03n\0#\x03N\x001\x03n\x001\x03N\0-\x03n\0-\x03\0\0G2\0\0D2\0\0A2\0\0>2\0\0;2\0\082\0\x0052\0\x0022P\0\x01\x03p\0\x01\x03P\0\x07\x03p\0\x07\x03R\0\x07\x03r\0\x07\x03R\0#\x03r\0#\x03\0\0/2\0\0,2R\x001\x03r\x001\x03S\0\x07\x03s\0\x07\x03S\0#\x03s\0#\x03\0\0)2\0\0&2\0\0#2\0\0 2\0\0\x1D2\0\0\x1A2T\0\x07\x03t\0\x07\x03T\0#\x03t\0#\x03T\x001\x03t\x001\x03T\0-\x03t\0-\x03U\0$\x03u\0$\x03U\x000\x03u\x000\x03U\0-\x03u\0-\x03\0\0\x172\0\0\x142\0\0\x112\0\0\x0E2V\0\x03\x03v\0\x03\x03V\0#\x03v\0#\x03W\0\0\x03w\0\0\x03W\0\x01\x03w\0\x01\x03W\0\x08\x03w\0\x08\x03W\0\x07\x03w\0\x07\x03W\0#\x03w\0#\x03X\0\x07\x03x\0\x07\x03X\0\x08\x03x\0\x08\x03Y\0\x07\x03y\0\x07\x03Z\0\x02\x03z\0\x02\x03Z\0#\x03z\0#\x03Z\x001\x03z\x001\x03h\x001\x03t\0\x08\x03w\0\n\x03y\0\n\x03\0\0\0\0\x7F\x01\x07\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\0#\x03a\0#\x03A\0\t\x03a\0\t\x03\0\0\x0B2\0\0\x082\0\0\x052\0\0\x022\0\0\xFF1\0\0\xFC1\0\0\xF91\0\0\xF61\0\0\xF31\0\0\xF01\0\0\xED1\0\0\xEA1\0\0\xE71\0\0\xE41\0\0\xE11\0\0\xDE1\0\0\xDB1\0\0\xD81\0\0\xD51\0\0\xD21E\0#\x03e\0#\x03E\0\t\x03e\0\t\x03E\0\x03\x03e\0\x03\x03\0\0\xCF1\0\0\xCC1\0\0\xC91\0\0\xC61\0\0\xC31\0\0\xC01\0\0\xBD1\0\0\xBA1\0\0\xB71\0\0\xB41I\0\t\x03i\0\t\x03I\0#\x03i\0#\x03O\0#\x03o\0#\x03O\0\t\x03o\0\t\x03\0\0\xB11\0\0\xAE1\0\0\xAB1\0\0\xA81\0\0\xA51\0\0\xA21\0\0\x9F1\0\0\x9C1\0\0\x991\0\0\x961\0\0\x931\0\0\x901\0\0\x8D1\0\0\x8A1\0\0\x871\0\0\x841\0\0\x811\0\0~1\0\0{1\0\0x1U\0#\x03u\0#\x03U\0\t\x03u\0\t\x03\0\0u1\0\0r1\0\0o1\0\0l1\0\0i1\0\0f1\0\0c1\0\0`1\0\0]1\0\0Z1Y\0\0\x03y\0\0\x03Y\0#\x03y\0#\x03Y\0\t\x03y\0\t\x03Y\0\x03\x03y\0\x03\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB1\x03\x13\x03\xB1\x03\x14\x03\0\0\xE10\0\0\xDD0\0\0\xD90\0\0\xD50\0\0\xD10\0\0\xCD0\x91\x03\x13\x03\x91\x03\x14\x03\0\0\xC30\0\0\xBF0\0\0\xBB0\0\0\xB70\0\0\xB30\0\0\xAF0\xB5\x03\x13\x03\xB5\x03\x14\x03\0\0W1\0\0T1\0\0Q1\0\0N1\0\0\0\0\0\0\0\0\x95\x03\x13\x03\x95\x03\x14\x03\0\0K1\0\0H1\0\0E1\0\0B1\0\0\0\0\0\0\0\0\xB7\x03\x13\x03\xB7\x03\x14\x03\0\0\xA50\0\0\xA10\0\0\x9D0\0\0\x990\0\0\x950\0\0\x910\x97\x03\x13\x03\x97\x03\x14\x03\0\0\x870\0\0\x830\0\0\x7F0\0\0{0\0\0w0\0\0s0\xB9\x03\x13\x03\xB9\x03\x14\x03\0\0?1\0\0<1\0\091\0\x0061\0\x0031\0\x0001\x99\x03\x13\x03\x99\x03\x14\x03\0\0-1\0\0*1\0\0'1\0\0$1\0\0!1\0\0\x1E1\xBF\x03\x13\x03\xBF\x03\x14\x03\0\0\x1B1\0\0\x181\0\0\x151\0\0\x121\0\0\0\0\0\0\0\0\x9F\x03\x13\x03\x9F\x03\x14\x03\0\0\x0F1\0\0\x0C1\0\0\t1\0\0\x061\0\0\0\0\0\0\0\0\xC5\x03\x13\x03\xC5\x03\x14\x03\0\0\x031\0\0\x001\0\0\xFD0\0\0\xFA0\0\0\xF70\0\0\xF40\0\0\0\0\xA5\x03\x14\x03\0\0\0\0\0\0\xF10\0\0\0\0\0\0\xEE0\0\0\0\0\0\0\xEB0\xC9\x03\x13\x03\xC9\x03\x14\x03\0\0i0\0\0e0\0\0a0\0\0]0\0\0Y0\0\0U0\xA9\x03\x13\x03\xA9\x03\x14\x03\0\0K0\0\0G0\0\0C0\0\0?0\0\0;0\0\x0070\xB1\x03\0\x03\xB1\x03\x01\x03\xB5\x03\0\x03\xB5\x03\x01\x03\xB7\x03\0\x03\xB7\x03\x01\x03\xB9\x03\0\x03\xB9\x03\x01\x03\xBF\x03\0\x03\xBF\x03\x01\x03\xC5\x03\0\x03\xC5\x03\x01\x03\xC9\x03\0\x03\xC9\x03\x01\x03\0\0\0\0\0\0\0\0\0\0\xE80\0\0\xE50\0\0\xE1P\0\0\xDDP\0\0\xD9P\0\0\xD5P\0\0\xD1P\0\0\xCDP\0\0\xCA0\0\0\xC70\0\0\xC3P\0\0\xBFP\0\0\xBBP\0\0\xB7P\0\0\xB3P\0\0\xAFP\0\0\xAC0\0\0\xA90\0\0\xA5P\0\0\xA1P\0\0\x9DP\0\0\x99P\0\0\x95P\0\0\x91P\0\0\x8E0\0\0\x8B0\0\0\x87P\0\0\x83P\0\0\x7FP\0\0{P\0\0wP\0\0sP\0\0p0\0\0m0\0\0iP\0\0eP\0\0aP\0\0]P\0\0YP\0\0UP\0\0R0\0\0O0\0\0KP\0\0GP\0\0CP\0\0?P\0\0;P\0\x007P\xB1\x03\x06\x03\xB1\x03\x04\x03\0\x0040\xB1\x03E\x03\0\x0010\0\0\0\0\xB1\x03B\x03\0\0.0\x91\x03\x06\x03\x91\x03\x04\x03\x91\x03\0\x03\x91\x03\x01\x03\x91\x03E\x03\0\0\0\0\xB9\x03\0\0\0\0\0\0\xA8\0B\x03\0\0+0\xB7\x03E\x03\0\0(0\0\0\0\0\xB7\x03B\x03\0\0%0\x95\x03\0\x03\x95\x03\x01\x03\x97\x03\0\x03\x97\x03\x01\x03\x97\x03E\x03\xBF\x1F\0\x03\xBF\x1F\x01\x03\xBF\x1FB\x03\xB9\x03\x06\x03\xB9\x03\x04\x03\0\0\"0\x01\0\x1F0\0\0\0\0\0\0\0\0\xB9\x03B\x03\0\0\x1C0\x99\x03\x06\x03\x99\x03\x04\x03\x99\x03\0\x03\x99\x03\x01\x03\0\0\0\0\xFE\x1F\0\x03\xFE\x1F\x01\x03\xFE\x1FB\x03\xC5\x03\x06\x03\xC5\x03\x04\x03\0\0\x190\x01\0\x160\xC1\x03\x13\x03\xC1\x03\x14\x03\xC5\x03B\x03\0\0\x130\xA5\x03\x06\x03\xA5\x03\x04\x03\xA5\x03\0\x03\xA5\x03\x01\x03\xA1\x03\x14\x03\xA8\0\0\x03\xA8\0\x01\x03`\0\0\0\0\0\0\0\0\0\0\0\0\0\x100\xC9\x03E\x03\0\0\r0\0\0\0\0\xC9\x03B\x03\0\0\n0\x9F\x03\0\x03\x9F\x03\x01\x03\xA9\x03\0\x03\xA9\x03\x01\x03\xA9\x03E\x03\xB4\0\0\0\0\0\0\0\0\0\0\0\x02 \0\0\x03 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\xD8\0\0\x01\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA9\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0K\0\0\0\x01\0\x08\x10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90!8\x03\x92!8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x94!8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xD0!8\x03\xD4!8\x03\xD2!8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\"8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x08\"8\x03\0\0\0\0\0\0\0\0\x0B\"8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#\"8\x03\0\0\0\0%\"8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<\"8\x03\0\0\0\0\0\0\0\0C\"8\x03\0\0\0\0\0\0\0\0E\"8\x03\0\0\0\0H\"8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0=\08\x03\0\0\0\0a\"8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0M\"8\x03<\08\x03>\08\x03d\"8\x03e\"8\x03\0\0\0\0\0\0\0\0r\"8\x03s\"8\x03\0\0\0\0\0\0\0\0v\"8\x03w\"8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0z\"8\x03{\"8\x03\0\0\0\0\0\0\0\0\x82\"8\x03\x83\"8\x03\0\0\0\0\0\0\0\0\x86\"8\x03\x87\"8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA2\"8\x03\xA8\"8\x03\xA9\"8\x03\xAB\"8\x03|\"8\x03}\"8\x03\x91\"8\x03\x92\"8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB2\"8\x03\xB3\"8\x03\xB4\"8\x03\xB5\"8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x080\0\0\t0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x06\x10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDA\xD8\0\0\xE4\xD8\0\0\xE8\xD8\0\0\xDE\xD8\0\0\xE0\xD8\0\0\xE0\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0K0\x990\0\0\0\0M0\x990\0\0\0\0O0\x990\0\0\0\0Q0\x990\0\0\0\0S0\x990\0\0\0\0U0\x990\0\0\0\0W0\x990\0\0\0\0Y0\x990\0\0\0\0[0\x990\0\0\0\0]0\x990\0\0\0\0_0\x990\0\0\0\0a0\x990\0\0\0\0\0\0\0\0d0\x990\0\0\0\0f0\x990\0\0\0\0h0\x990\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0o0\x990o0\x9A0\0\0\0\0r0\x990r0\x9A0\0\0\0\0u0\x990u0\x9A0\0\0\0\0x0\x990x0\x9A0\0\0\0\0{0\x990{0\x9A0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0F0\x990\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x08\xD8\0\0\x08\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x9D0\x990\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xAB0\x990\0\0\0\0\xAD0\x990\0\0\0\0\xAF0\x990\0\0\0\0\xB10\x990\0\0\0\0\xB30\x990\0\0\0\0\xB50\x990\0\0\0\0\xB70\x990\0\0\0\0\xB90\x990\0\0\0\0\xBB0\x990\0\0\0\0\xBD0\x990\0\0\0\0\xBF0\x990\0\0\0\0\xC10\x990\0\0\0\0\0\0\0\0\xC40\x990\0\0\0\0\xC60\x990\0\0\0\0\xC80\x990\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xCF0\x990\xCF0\x9A0\0\0\0\0\xD20\x990\xD20\x9A0\0\0\0\0\xD50\x990\xD50\x9A0\0\0\0\0\xD80\x990\xD80\x9A0\0\0\0\0\xDB0\x990\xDB0\x9A0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA60\x990\0\0\0\0\0\0\0\0\xEF0\x990\xF00\x990\xF10\x990\xF20\x990\0\0\0\0\0\0\0\0\0\0\0\0\xFD0\x990\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0H\x8C\0\0\xF4f\0\0\xCA\x8E\0\0\xC8\x8C\0\0\xD1n\0\x002N\0\0\xE5S\0\0\x9C\x9F\0\0\x9C\x9F\0\0QY\0\0\xD1\x91\0\0\x87U\0\0HY\0\0\xF6a\0\0iv\0\0\x85\x7F\0\0?\x86\0\0\xBA\x87\0\0\xF8\x88\0\0\x8F\x90\0\0\x02j\0\0\x1Bm\0\0\xD9p\0\0\xDEs\0\0=\x84\0\0j\x91\0\0\xF1\x99\0\0\x82N\0\0uS\0\0\x04k\0\0\x1Br\0\0-\x86\0\0\x1E\x9E\0\0P]\0\0\xEBo\0\0\xCD\x85\0\0d\x89\0\0\xC9b\0\0\xD8\x81\0\0\x1F\x88\0\0\xCA^\0\0\x17g\0\0jm\0\0\xFCr\0\0\xCE\x90\0\0\x86O\0\0\xB7Q\0\0\xDER\0\0\xC4d\0\0\xD3j\0\0\x10r\0\0\xE7v\0\0\x01\x80\0\0\x06\x86\0\0\\\x86\0\0\xEF\x8D\0\x002\x97\0\0o\x9B\0\0\xFA\x9D\0\0\x8Cx\0\0\x7Fy\0\0\xA0}\0\0\xC9\x83\0\0\x04\x93\0\0\x7F\x9E\0\0\xD6\x8A\0\0\xDFX\0\0\x04_\0\0`|\0\0~\x80\0\0br\0\0\xCAx\0\0\xC2\x8C\0\0\xF7\x96\0\0\xD8X\0\0b\\\0\0\x13j\0\0\xDAm\0\0\x0Fo\0\0/}\0\x007~\0\0K\x96\0\0\xD2R\0\0\x8B\x80\0\0\xDCQ\0\0\xCCQ\0\0\x1Cz\0\0\xBE}\0\0\xF1\x83\0\0u\x96\0\0\x80\x8B\0\0\xCFb\0\0\x02j\0\0\xFE\x8A\0\09N\0\0\xE7[\0\0\x12`\0\0\x87s\0\0pu\0\0\x17S\0\0\xFBx\0\0\xBFO\0\0\xA9_\0\0\rN\0\0\xCCl\0\0xe\0\0\"}\0\0\xC3S\0\0^X\0\0\x01w\0\0I\x84\0\0\xAA\x8A\0\0\xBAk\0\0\xB0\x8F\0\0\x88l\0\0\xFEb\0\0\xE5\x82\0\0\xA0c\0\0eu\0\0\xAEN\0\0iQ\0\0\xC9Q\0\0\x81h\0\0\xE7|\0\0o\x82\0\0\xD2\x8A\0\0\xCF\x91\0\0\xF5R\0\0BT\0\0sY\0\0\xEC^\0\0\xC5e\0\0\xFEo\0\0*y\0\0\xAD\x95\0\0j\x9A\0\0\x97\x9E\0\0\xCE\x9E\0\0\x9BR\0\0\xC6f\0\0wk\0\0b\x8F\0\0t^\0\0\x90a\0\0\0b\0\0\x9Ad\0\0#o\0\0Iq\0\0\x89t\0\0\xCAy\0\0\xF4}\0\0o\x80\0\0&\x8F\0\0\xEE\x84\0\0#\x90\0\0J\x93\0\0\x17R\0\0\xA3R\0\0\xBDT\0\0\xC8p\0\0\xC2\x88\0\0\xAA\x8A\0\0\xC9^\0\0\xF5_\0\0{c\0\0\xAEk\0\0>|\0\0us\0\0\xE4N\0\0\xF9V\0\0\xE7[\0\0\xBA]\0\0\x1C`\0\0\xB2s\0\0it\0\0\x9A\x7F\0\0F\x80\0\x004\x92\0\0\xF6\x96\0\0H\x97\0\0\x18\x98\0\0\x8BO\0\0\xAEy\0\0\xB4\x91\0\0\xB8\x96\0\0\xE1`\0\0\x86N\0\0\xDAP\0\0\xEE[\0\0?\\\0\0\x99e\0\0\x02j\0\0\xCEq\0\0Bv\0\0\xFC\x84\0\0|\x90\0\0\x8D\x9F\0\0\x88f\0\0.\x96\0\0\x89R\0\0{g\0\0\xF3g\0\0Am\0\0\x9Cn\0\0\tt\0\0Yu\0\0kx\0\0\x10}\0\0^\x98\0\0mQ\0\0.b\0\0x\x96\0\0+P\0\0\x19]\0\0\xEAm\0\0*\x8F\0\0\x8B_\0\0Da\0\0\x17h\0\0\x87s\0\0\x86\x96\0\0)R\0\0\x0FT\0\0e\\\0\0\x13f\0\0Ng\0\0\xA8h\0\0\xE5l\0\0\x06t\0\0\xE2u\0\0y\x7F\0\0\xCF\x88\0\0\xE1\x88\0\0\xCC\x91\0\0\xE2\x96\0\0?S\0\0\xBAn\0\0\x1DT\0\0\xD0q\0\0\x98t\0\0\xFA\x85\0\0\xA3\x96\0\0W\x9C\0\0\x9F\x9E\0\0\x97g\0\0\xCBm\0\0\xE8\x81\0\0\xCBz\0\0 {\0\0\x92|\0\0\xC0r\0\0\x99p\0\0X\x8B\0\0\xC0N\0\x006\x83\0\0:R\0\0\x07R\0\0\xA6^\0\0\xD3b\0\0\xD6|\0\0\x85[\0\0\x1Em\0\0\xB4f\0\0;\x8F\0\0L\x88\0\0M\x96\0\0\x8B\x89\0\0\xD3^\0\0@Q\0\0\xC0U\0\0\0\0\0\0\0\0\0\0ZX\0\0\0\0\0\0tf\0\0\0\0\0\0\0\0\0\0\xDEQ\0\0*s\0\0\xCAv\0\0y\0\0Iy\0\0Hy\0\0Py\0\0Vy\0\0]y\0\0\x8Dy\0\0\x8Ey\0\0@z\0\0\x81z\0\0\xC0{\0\0\xF4}\0\0\t~\0\0A~\0\0r\x7F\0\0\x05\x80\0\0\xED\x81\0\0y\x82\0\0y\x82\0\0W\x84\0\0\x10\x89\0\0\x96\x89\0\0\x01\x8B\0\09\x8B\0\0\xD3\x8C\0\0\x08\x8D\0\0\xB6\x8F\0\08\x90\0\0\xE3\x96\0\0\xFF\x97\0\0;\x98\0\0u`\0\0\x01\0\xAE\x13\x18\x82\0\0\0\0\0\0\0\0\0\0&N\0\0\xB5Q\0\0hQ\0\0\x80O\0\0EQ\0\0\x80Q\0\0\xC7R\0\0\xFAR\0\0\x9DU\0\0UU\0\0\x99U\0\0\xE2U\0\0ZX\0\0\xB3X\0\0DY\0\0TY\0\0bZ\0\0([\0\0\xD2^\0\0\xD9^\0\0i_\0\0\xAD_\0\0\xD8`\0\0Na\0\0\x08a\0\0\x8Ea\0\0`a\0\0\xF2a\0\x004b\0\0\xC4c\0\0\x1Cd\0\0Rd\0\0Ve\0\0tf\0\0\x17g\0\0\x1Bg\0\0Vg\0\0yk\0\0\xBAk\0\0Am\0\0\xDBn\0\0\xCBn\0\0\"o\0\0\x1Ep\0\0nq\0\0\xA7w\0\x005r\0\0\xAFr\0\0*s\0\0qt\0\0\x06u\0\0;u\0\0\x1Dv\0\0\x1Fv\0\0\xCAv\0\0\xDBv\0\0\xF4v\0\0Jw\0\0@w\0\0\xCCx\0\0\xB1z\0\0\xC0{\0\0{|\0\0[}\0\0\xF4}\0\0>\x7F\0\0\x05\x80\0\0R\x83\0\0\xEF\x83\0\0y\x87\0\0A\x89\0\0\x86\x89\0\0\x96\x89\0\0\xBF\x8A\0\0\xF8\x8A\0\0\xCB\x8A\0\0\x01\x8B\0\0\xFE\x8A\0\0\xED\x8A\0\09\x8B\0\0\x8A\x8B\0\0\x08\x8D\0\08\x8F\0\0r\x90\0\0\x99\x91\0\0v\x92\0\0|\x96\0\0\xE3\x96\0\0V\x97\0\0\xDB\x97\0\0\xFF\x97\0\0\x0B\x98\0\0;\x98\0\0\x12\x9B\0\0\x9C\x9F\0\0\x01\0\xAD\x13\x01\0\xAC\x13\x01\0\xAB\x13\x9D;\0\0\x18@\0\09@\0\0\x01\0\xAA\x13\x01\0\xA9\x13\x01\0\xA8\x13C\x9F\0\0\x8E\x9F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xD9\x05\xB4\x05\x1A\xD8\0\0\xF2\x05\xB7\x05\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE9\x05\xC1\x05\xE9\x05\xC2\x05\x01\0\x030\x01\0\x000\xD0\x05\xB7\x05\xD0\x05\xB8\x05\xD0\x05\xBC\x05\xD1\x05\xBC\x05\xD2\x05\xBC\x05\xD3\x05\xBC\x05\xD4\x05\xBC\x05\xD5\x05\xBC\x05\xD6\x05\xBC\x05\0\0\0\0\xD8\x05\xBC\x05\xD9\x05\xBC\x05\xDA\x05\xBC\x05\xDB\x05\xBC\x05\xDC\x05\xBC\x05\0\0\0\0\xDE\x05\xBC\x05\0\0\0\0\xE0\x05\xBC\x05\xE1\x05\xBC\x05\0\0\0\0\xE3\x05\xBC\x05\xE4\x05\xBC\x05\0\0\0\0\xE6\x05\xBC\x05\xE7\x05\xBC\x05\xE8\x05\xBC\x05\xE9\x05\xBC\x05\xEA\x05\xBC\x05\xD5\x05\xB9\x05\xD1\x05\xBF\x05\xDB\x05\xBF\x05\xE4\x05\xBF\x05\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\0\0\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\x01\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA63\0\0\0\0\0\0\xA43\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA0#\0\0\x9E#\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\xD8\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\xD8\0\0\x07\xD8\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x9C#\0\0\x9A#\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\x98#\0\0\x96#\x01\0\0\0\0\0\x94#\0\0\0\0\0\0\0\0\t\xD8\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92#\0\0\x90#\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8E#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\xD8\0\0\t\xD8\0\0\0\0\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\xD8\0\0\x06\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\x8C3\x01\0}3\x01\0\x89S\x01\0\x86S\x01\0\x83S\x01\0\x80S\x01\0}S\xD8\xD8\0\0\xD8\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\x01\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE2\xD8\0\0\xD8\xD8\0\0\xD8\xD8\0\0\xD8\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0t3\x01\0q3\x01\0zS\x01\0wS\x01\0tS\x01\0qS\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE8\xD8\0\0\xE8\xD8\0\0\xDC\xD8\0\0\xE6\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\xDC\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\xE6\xD8\0\0\x07\xD8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0=N\0\08N\0\0AN\0\0\x01\0p\x13`O\0\0\xAEO\0\0\xBBO\0\0\x02P\0\0zP\0\0\x99P\0\0\xE7P\0\0\xCFP\0\0\x9E4\0\0\x01\0o\x13MQ\0\0TQ\0\0dQ\0\0wQ\0\0\x01\0n\x13\xB94\0\0gQ\0\0\x8DQ\0\0\x01\0m\x13\x97Q\0\0\xA4Q\0\0\xCCN\0\0\xACQ\0\0\xB5Q\0\0\x01\0l\x13\xF5Q\0\0\x03R\0\0\xDF4\0\0;R\0\0FR\0\0rR\0\0wR\0\0\x155\0\0\xC7R\0\0\xC9R\0\0\xE4R\0\0\xFAR\0\0\x05S\0\0\x06S\0\0\x17S\0\0IS\0\0QS\0\0ZS\0\0sS\0\0}S\0\0\x7FS\0\0\x7FS\0\0\x7FS\0\0\x01\0k\x13pp\0\0\xCAS\0\0\xDFS\0\0\x01\0j\x13\xEBS\0\0\xF1S\0\0\x06T\0\0\x9ET\0\08T\0\0HT\0\0hT\0\0\xA2T\0\0\xF6T\0\0\x10U\0\0SU\0\0cU\0\0\x84U\0\0\x84U\0\0\x99U\0\0\xABU\0\0\xB3U\0\0\xC2U\0\0\x16W\0\0\x06V\0\0\x17W\0\0QV\0\0tV\0\0\x07R\0\0\xEEX\0\0\xCEW\0\0\xF4W\0\0\rX\0\0\x8BW\0\x002X\0\x001X\0\0\xACX\0\0\x01\0i\x13\xF2X\0\0\xF7X\0\0\x06Y\0\0\x1AY\0\0\"Y\0\0bY\0\0\x01\0h\x13\x01\0g\x13\xECY\0\0\x1BZ\0\0'Z\0\0\xD8Y\0\0fZ\0\0\xEE6\0\0\xFC6\0\0\x08[\0\0>[\0\0>[\0\0\x01\0f\x13\xC3[\0\0\xD8[\0\0\xE7[\0\0\xF3[\0\0\x01\0e\x13\xFF[\0\0\x06\\\0\0S_\0\0\"\\\0\0\x817\0\0`\\\0\0n\\\0\0\xC0\\\0\0\x8D\\\0\0\x01\0d\x13C]\0\0\x01\0c\x13n]\0\0k]\0\0|]\0\0\xE1]\0\0\xE2]\0\0/8\0\0\xFD]\0\0(^\0\0=^\0\0i^\0\0b8\0\0\x01\0b\x13|8\0\0\xB0^\0\0\xB3^\0\0\xB6^\0\0\xCA^\0\0\x01\0a\x13\xFE^\0\0\x01\0`\x13\x01\0`\x13\x01\x82\0\0\"_\0\0\"_\0\0\xC78\0\0\x01\0_\x13\x01\0^\x13b_\0\0k_\0\0\xE38\0\0\x9A_\0\0\xCD_\0\0\xD7_\0\0\xF9_\0\0\x81`\0\0:9\0\0\x1C9\0\0\x94`\0\0\x01\0]\x13\xC7`\0\0Ha\0\0La\0\0Na\0\0La\0\0za\0\0\x8Ea\0\0\xB2a\0\0\xA4a\0\0\xAFa\0\0\xDEa\0\0\xF2a\0\0\xF6a\0\0\x10b\0\0\x1Bb\0\0]b\0\0\xB1b\0\0\xD4b\0\0Pc\0\0\x01\0\\\x13=c\0\0\xFCb\0\0hc\0\0\x83c\0\0\xE4c\0\0\x01\0[\x13\"d\0\0\xC5c\0\0\xA9c\0\0.:\0\0id\0\0~d\0\0\x9Dd\0\0wd\0\0l:\0\0Oe\0\0le\0\0\x01\0Z\x13\xE3e\0\0\xF8f\0\0If\0\0\x19;\0\0\x91f\0\0\x08;\0\0\xE4:\0\0\x92Q\0\0\x95Q\0\0\0g\0\0\x9Cf\0\0\xAD\x80\0\0\xD9C\0\0\x17g\0\0\x1Bg\0\0!g\0\0^g\0\0Sg\0\0\x01\0Y\x13I;\0\0\xFAg\0\0\x85g\0\0Rh\0\0\x85h\0\0\x01\0X\x13\x8Eh\0\0\x1Fh\0\0\x14i\0\0\x9D;\0\0Bi\0\0\xA3i\0\0\xEAi\0\0\xA8j\0\0\x01\0W\x13\xDBj\0\0\x18<\0\0!k\0\0\x01\0V\x13Tk\0\0N<\0\0rk\0\0\x9Fk\0\0\xBAk\0\0\xBBk\0\0\x01\0U\x13\x01\0T\x13\x01\0S\x13Nl\0\0\x01\0R\x13\xBFl\0\0\xCDl\0\0gl\0\0\x16m\0\0>m\0\0wm\0\0Am\0\0im\0\0xm\0\0\x85m\0\0\x01\0Q\x134m\0\0/n\0\0nn\0\x003=\0\0\xCBn\0\0\xC7n\0\0\x01\0P\x13\xF9m\0\0no\0\0\x01\0O\x13\x01\0N\x13\xC6o\0\09p\0\0\x1Ep\0\0\x1Bp\0\0\x96=\0\0Jp\0\0}p\0\0wp\0\0\xADp\0\0\x01\0M\x13Eq\0\0\x01\0L\x13\x9Cq\0\0\x01\0K\x13(r\0\x005r\0\0Pr\0\0\x01\0J\x13\x80r\0\0\x95r\0\0\x01\0I\x13\x01\0H\x13zs\0\0\x8Bs\0\0\xAC>\0\0\xA5s\0\0\xB8>\0\0\xB8>\0\0Gt\0\0\\t\0\0qt\0\0\x85t\0\0\xCAt\0\0\x1B?\0\0$u\0\0\x01\0G\x13>u\0\0\x01\0F\x13pu\0\0\x01\0E\x13\x10v\0\0\x01\0D\x13\x01\0C\x13\x01\0B\x13\xFC?\0\0\x08@\0\0\xF4v\0\0\x01\0A\x13\x01\0@\x13\x01\0?\x13\x01\0>\x13\x1Ew\0\0\x1Fw\0\0\x1Fw\0\0Jw\0\09@\0\0\x8Bw\0\0F@\0\0\x96@\0\0\x01\0=\x13Nx\0\0\x8Cx\0\0\xCCx\0\0\xE3@\0\0\x01\0<\x13Vy\0\0\x01\0;\x13\x01\0:\x13\x8Fy\0\0\xEBy\0\0/A\0\0@z\0\0Jz\0\0Oz\0\0\x01\09\x13\x01\08\x13\x01\08\x13\xEEz\0\0\x02B\0\0\x01\x007\x13\xC6{\0\0\xC9{\0\0'B\0\0\x01\x006\x13\xD2|\0\0\xA0B\0\0\xE8|\0\0\xE3|\0\0\0}\0\0\x01\x005\x13c}\0\0\x01C\0\0\xC7}\0\0\x02~\0\0E~\0\x004C\0\0\x01\x004\x13\x01\x003\x13YC\0\0\x01\x002\x13z\x7F\0\0\x01\x001\x13\x95\x7F\0\0\xFA\x7F\0\0\x05\x80\0\0\x01\x000\x13\x01\0/\x13`\x80\0\0\x01\0.\x13p\x80\0\0\x01\0-\x13\xD5C\0\0\xB2\x80\0\0\x03\x81\0\0\x0BD\0\0>\x81\0\0\xB5Z\0\0\x01\0,\x13\x01\0+\x13\x01\0*\x13\x01\0)\x13\x01\x82\0\0\x04\x82\0\0\x9E\x8F\0\0kD\0\0\x91\x82\0\0\x8B\x82\0\0\x9D\x82\0\0\xB3R\0\0\xB1\x82\0\0\xB3\x82\0\0\xBD\x82\0\0\xE6\x82\0\0\x01\0(\x13\xE5\x82\0\0\x1D\x83\0\0c\x83\0\0\xAD\x83\0\0#\x83\0\0\xBD\x83\0\0\xE7\x83\0\0W\x84\0\0S\x83\0\0\xCA\x83\0\0\xCC\x83\0\0\xDC\x83\0\0\x01\0'\x13\x01\0&\x13\x01\0%\x13+E\0\0\xF1\x84\0\0\xF3\x84\0\0\x16\x85\0\0\x01\0$\x13d\x85\0\0\x01\0#\x13]E\0\0aE\0\0\x01\0\"\x13\x01\0!\x13kE\0\0P\x86\0\0\\\x86\0\0g\x86\0\0i\x86\0\0\xA9\x86\0\0\x88\x86\0\0\x0E\x87\0\0\xE2\x86\0\0y\x87\0\0(\x87\0\0k\x87\0\0\x86\x87\0\0\xD7E\0\0\xE1\x87\0\0\x01\x88\0\0\xF9E\0\0`\x88\0\0c\x88\0\0\x01\0 \x13\xD7\x88\0\0\xDE\x88\0\x005F\0\0\xFA\x88\0\0\xBB4\0\0\x01\0\x1F\x13\x01\0\x1E\x13\xBEF\0\0\xC7F\0\0\xA0\x8A\0\0\xED\x8A\0\0\x8A\x8B\0\0U\x8C\0\0\x01\0\x1D\x13\xAB\x8C\0\0\xC1\x8C\0\0\x1B\x8D\0\0w\x8D\0\0\x01\0\x1C\x13\x01\0\x1B\x13\xCB\x8D\0\0\xBC\x8D\0\0\xF0\x8D\0\0\x01\0\x1A\x13\xD4\x8E\0\08\x8F\0\0\x01\0\x19\x13\x01\0\x18\x13\x94\x90\0\0\xF1\x90\0\0\x11\x91\0\0\x01\0\x17\x13\x1B\x91\0\08\x92\0\0\xD7\x92\0\0\xD8\x92\0\0|\x92\0\0\xF9\x93\0\0\x15\x94\0\0\x01\0\x16\x13\x8B\x95\0\0\x95I\0\0\xB7\x95\0\0\x01\0\x15\x13\xE6I\0\0\xC3\x96\0\0\xB2]\0\0#\x97\0\0\x01\0\x14\x13\x01\0\x13\x13nJ\0\0vJ\0\0\xE0\x97\0\0\x01\0\x12\x13\xB2J\0\0\x01\0\x11\x13\x0B\x98\0\0\x0B\x98\0\0)\x98\0\0\x01\0\x10\x13\xE2\x98\0\x003K\0\0)\x99\0\0\xA7\x99\0\0\xC2\x99\0\0\xFE\x99\0\0\xCEK\0\0\x01\0\x0F\x13\x12\x9B\0\0@\x9C\0\0\xFD\x9C\0\0\xCEL\0\0\xEDL\0\0g\x9D\0\0\x01\0\x0E\x13\xF8L\0\0\x01\0\r\x13\x01\0\x0C\x13\x01\0\x0B\x13\xBB\x9E\0\0VM\0\0\xF9\x9E\0\0\xFE\x9E\0\0\x05\x9F\0\0\x0F\x9F\0\0\x16\x9F\0\0;\x9F\0\0\x01\0\n\x13\0\0\0\0\0\0\0\0") + }, + 0u32, + ), +} diff --git a/boa_icu_provider/data/min/normalizer/nfdex_v1/mod.rs b/boa_icu_provider/data/min/normalizer/nfdex_v1/mod.rs new file mode 100644 index 0000000000..66d44f09ee --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/nfdex_v1/mod.rs @@ -0,0 +1,6 @@ +// @generated +type DataStruct = < :: icu_normalizer :: provider :: CanonicalDecompositionTablesV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; +pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { + locale.is_empty().then(|| &UND) +} +static UND: DataStruct = include!("und.rs.data"); diff --git a/boa_icu_provider/data/min/normalizer/nfdex_v1/und.rs.data b/boa_icu_provider/data/min/normalizer/nfdex_v1/und.rs.data new file mode 100644 index 0000000000..8c5376b6e9 --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/nfdex_v1/und.rs.data @@ -0,0 +1,8 @@ +::icu_normalizer::provider::DecompositionTablesV1 { + scalars16: unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\xE9\x05\xBC\x05\xC2\x05\xE9\x05\xBC\x05\xC1\x05\xDD*8\x03A\0\n\x03\xC9\x03B\x03E\x03\xC9\x03\x01\x03E\x03\xC9\x03\0\x03E\x03\xC5\x03\x08\x03B\x03\xC5\x03\x08\x03\x01\x03\xC5\x03\x08\x03\0\x03\xB9\x03\x08\x03B\x03\xB9\x03\x08\x03\x01\x03\xB9\x03\x08\x03\0\x03\xB7\x03B\x03E\x03\xB7\x03\x01\x03E\x03\xB7\x03\0\x03E\x03\xB1\x03B\x03E\x03\xB1\x03\x01\x03E\x03\xB1\x03\0\x03E\x03\xA9\x03\x14\x03B\x03E\x03\xA9\x03\x13\x03B\x03E\x03\xA9\x03\x14\x03\x01\x03E\x03\xA9\x03\x13\x03\x01\x03E\x03\xA9\x03\x14\x03\0\x03E\x03\xA9\x03\x13\x03\0\x03E\x03\xA9\x03\x14\x03E\x03\xA9\x03\x13\x03E\x03\xC9\x03\x14\x03B\x03E\x03\xC9\x03\x13\x03B\x03E\x03\xC9\x03\x14\x03\x01\x03E\x03\xC9\x03\x13\x03\x01\x03E\x03\xC9\x03\x14\x03\0\x03E\x03\xC9\x03\x13\x03\0\x03E\x03\xC9\x03\x14\x03E\x03\xC9\x03\x13\x03E\x03\x97\x03\x14\x03B\x03E\x03\x97\x03\x13\x03B\x03E\x03\x97\x03\x14\x03\x01\x03E\x03\x97\x03\x13\x03\x01\x03E\x03\x97\x03\x14\x03\0\x03E\x03\x97\x03\x13\x03\0\x03E\x03\x97\x03\x14\x03E\x03\x97\x03\x13\x03E\x03\xB7\x03\x14\x03B\x03E\x03\xB7\x03\x13\x03B\x03E\x03\xB7\x03\x14\x03\x01\x03E\x03\xB7\x03\x13\x03\x01\x03E\x03\xB7\x03\x14\x03\0\x03E\x03\xB7\x03\x13\x03\0\x03E\x03\xB7\x03\x14\x03E\x03\xB7\x03\x13\x03E\x03\x91\x03\x14\x03B\x03E\x03\x91\x03\x13\x03B\x03E\x03\x91\x03\x14\x03\x01\x03E\x03\x91\x03\x13\x03\x01\x03E\x03\x91\x03\x14\x03\0\x03E\x03\x91\x03\x13\x03\0\x03E\x03\x91\x03\x14\x03E\x03\x91\x03\x13\x03E\x03\xB1\x03\x14\x03B\x03E\x03\xB1\x03\x13\x03B\x03E\x03\xB1\x03\x14\x03\x01\x03E\x03\xB1\x03\x13\x03\x01\x03E\x03\xB1\x03\x14\x03\0\x03E\x03\xB1\x03\x13\x03\0\x03E\x03\xB1\x03\x14\x03E\x03\xB1\x03\x13\x03E\x03\xA5\x03\x14\x03B\x03\xA5\x03\x14\x03\x01\x03\xA5\x03\x14\x03\0\x03\xC5\x03\x14\x03B\x03\xC5\x03\x13\x03B\x03\xC5\x03\x14\x03\x01\x03\xC5\x03\x13\x03\x01\x03\xC5\x03\x14\x03\0\x03\xC5\x03\x13\x03\0\x03\x9F\x03\x14\x03\x01\x03\x9F\x03\x13\x03\x01\x03\x9F\x03\x14\x03\0\x03\x9F\x03\x13\x03\0\x03\xBF\x03\x14\x03\x01\x03\xBF\x03\x13\x03\x01\x03\xBF\x03\x14\x03\0\x03\xBF\x03\x13\x03\0\x03\x99\x03\x14\x03B\x03\x99\x03\x13\x03B\x03\x99\x03\x14\x03\x01\x03\x99\x03\x13\x03\x01\x03\x99\x03\x14\x03\0\x03\x99\x03\x13\x03\0\x03\xB9\x03\x14\x03B\x03\xB9\x03\x13\x03B\x03\xB9\x03\x14\x03\x01\x03\xB9\x03\x13\x03\x01\x03\xB9\x03\x14\x03\0\x03\xB9\x03\x13\x03\0\x03\x95\x03\x14\x03\x01\x03\x95\x03\x13\x03\x01\x03\x95\x03\x14\x03\0\x03\x95\x03\x13\x03\0\x03\xB5\x03\x14\x03\x01\x03\xB5\x03\x13\x03\x01\x03\xB5\x03\x14\x03\0\x03\xB5\x03\x13\x03\0\x03u\0\x1B\x03#\x03U\0\x1B\x03#\x03u\0\x1B\x03\x03\x03U\0\x1B\x03\x03\x03u\0\x1B\x03\t\x03U\0\x1B\x03\t\x03u\0\x1B\x03\0\x03U\0\x1B\x03\0\x03u\0\x1B\x03\x01\x03U\0\x1B\x03\x01\x03o\0\x1B\x03#\x03O\0\x1B\x03#\x03o\0\x1B\x03\x03\x03O\0\x1B\x03\x03\x03o\0\x1B\x03\t\x03O\0\x1B\x03\t\x03o\0\x1B\x03\0\x03O\0\x1B\x03\0\x03o\0\x1B\x03\x01\x03O\0\x1B\x03\x01\x03o\0#\x03\x02\x03O\0#\x03\x02\x03o\0\x02\x03\x03\x03O\0\x02\x03\x03\x03o\0\x02\x03\t\x03O\0\x02\x03\t\x03o\0\x02\x03\0\x03O\0\x02\x03\0\x03o\0\x02\x03\x01\x03O\0\x02\x03\x01\x03e\0#\x03\x02\x03E\0#\x03\x02\x03e\0\x02\x03\x03\x03E\0\x02\x03\x03\x03e\0\x02\x03\t\x03E\0\x02\x03\t\x03e\0\x02\x03\0\x03E\0\x02\x03\0\x03e\0\x02\x03\x01\x03E\0\x02\x03\x01\x03a\0#\x03\x06\x03A\0#\x03\x06\x03a\0\x06\x03\x03\x03A\0\x06\x03\x03\x03a\0\x06\x03\t\x03A\0\x06\x03\t\x03a\0\x06\x03\0\x03A\0\x06\x03\0\x03a\0\x06\x03\x01\x03A\0\x06\x03\x01\x03a\0#\x03\x02\x03A\0#\x03\x02\x03a\0\x02\x03\x03\x03A\0\x02\x03\x03\x03a\0\x02\x03\t\x03A\0\x02\x03\t\x03a\0\x02\x03\0\x03A\0\x02\x03\0\x03a\0\x02\x03\x01\x03A\0\x02\x03\x01\x03u\0\x04\x03\x08\x03U\0\x04\x03\x08\x03u\0\x03\x03\x01\x03U\0\x03\x03\x01\x03s\0#\x03\x07\x03S\0#\x03\x07\x03s\0\x0C\x03\x07\x03S\0\x0C\x03\x07\x03s\0\x01\x03\x07\x03S\0\x01\x03\x07\x03r\0#\x03\x04\x03R\0#\x03\x04\x03o\0\x04\x03\x01\x03O\0\x04\x03\x01\x03o\0\x04\x03\0\x03O\0\x04\x03\0\x03o\0\x03\x03\x08\x03O\0\x03\x03\x08\x03o\0\x03\x03\x01\x03O\0\x03\x03\x01\x03l\0#\x03\x04\x03L\0#\x03\x04\x03i\0\x08\x03\x01\x03I\0\x08\x03\x01\x03e\0'\x03\x06\x03E\0'\x03\x06\x03e\0\x04\x03\x01\x03E\0\x04\x03\x01\x03e\0\x04\x03\0\x03E\0\x04\x03\0\x03c\0'\x03\x01\x03C\0'\x03\x01\x03B\x1B5\x1B?\x1B5\x1B>\x1B5\x1B<\x1B5\x1B:\x1B5\x1B\x11\x1B5\x1B\r\x1B5\x1B\x0B\x1B5\x1B\t\x1B5\x1B\x07\x1B5\x1B\x05\x1B5\x1B%\x10.\x10\x90\x0F\xB5\x0F\xAB\x0F\xB7\x0F\xA6\x0F\xB7\x0F\xA1\x0F\xB7\x0F\x9C\x0F\xB7\x0F\x92\x0F\xB7\x0F\xB3\x0F\x80\x0F\xB2\x0F\x80\x0F@\x0F\xB5\x0F[\x0F\xB7\x0FV\x0F\xB7\x0FQ\x0F\xB7\x0FL\x0F\xB7\x0FB\x0F\xB7\x0F\xD9\r\xDF\r\xD9\r\xCF\r\xCA\rF\rW\rG\r>\rF\r>\r\xC6\x0C\xC2\x0C\xD5\x0C\xC6\x0C\xD6\x0C\xC6\x0C\xD5\x0C\xBF\x0C\xD5\x0C\xC6\x0B\xD7\x0B\xC7\x0B\xBE\x0B\xC6\x0B\xBE\x0B\x92\x0B\xD7\x0BG\x0BW\x0BG\x0B>\x0BG\x0BV\x0B\xC7\t\xD7\t\xC7\t\xBE\to\0\x07\x03\x04\x03O\0\x07\x03\x04\x03o\0\x03\x03\x04\x03O\0\x03\x03\x04\x03o\0\x08\x03\x04\x03O\0\x08\x03\x04\x03a\0\n\x03\x01\x03A\0\n\x03\x01\x03o\0(\x03\x04\x03O\0(\x03\x04\x03a\0\x07\x03\x04\x03A\0\x07\x03\x04\x03a\0\x08\x03\x04\x03A\0\x08\x03\x04\x03u\0\x08\x03\0\x03U\0\x08\x03\0\x03u\0\x08\x03\x0C\x03U\0\x08\x03\x0C\x03u\0\x08\x03\x01\x03U\0\x08\x03\x01\x03u\0\x08\x03\x04\x03U\0\x08\x03\x04\x03") + }, + scalars24: unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\0\xA6\x02\x91\xA2\x02\x0E\xA2\x02\x05\xA1\x02\xCE\xA0\x020\x9B\x02\xB6\x95\x02\x96\x94\x02\n\x94\x02\x1A\x92\x02E\x91\x02w\x8D\x02\xFA\x8B\x02.\x87\x02\xED\x85\x02\xD2\x85\x02\xDE\x08\x02\x04\x08\x02/\x7F\x02\xA8|\x02fy\x02\xAEx\x02gv\x02\xD2p\x02\xB1o\x02,o\x02\xCAs\x02\xD5l\x02km\x026l\x02c\x02\xD9b\x02Gb\x02(b\x02\x86_\x02\x80\\\x02\xAB[\x02\xA7Z\x02|Y\x02\xC5V\x02\x9AV\x02&V\x02\x1DT\x023Q\x02\x19Q\x02\xF2P\x02\xF3P\x02DP\x02\xB8O\x02\xA1O\x02\x9F!\x02\x92L\x026L\x02\x14H\x025G\x02\x08F\x02\xABC\x02cB\x02%\x05\x02\x8E?\x02^?\x02\xD1>\x02\x1E=\x02\xBC<\x02\xFA:\x02\x0B\x1D\x02\x8D:\x02\xA78\x02\xA36\x02m4\x02\xC33\x02\n0\x02\xF1+\x02\x0C+\x02\xD4&\x02\xDAa\x02\xB82\x021#\x02\x92\xA3\x02\x83!\x02\xE6\x1D\x02\xE4\x1D\x02\x18\x1B\x02\xC8\x19\x02\xEA\x16\x02\xA8\x16\x02\xE4\x14\x02c\x0B\x02,\n\x02\xDF\x91\x02K\x05\x02\x1C\x05\x02:\x06\x02\"\x01\x02\xBA\xD1\x01e\xD1\x01o\xD1\x01\xB9\xD1\x01e\xD1\x01o\xD1\x01\xBA\xD1\x01e\xD1\x01n\xD1\x01\xB9\xD1\x01e\xD1\x01n\xD1\x01X\xD1\x01e\xD1\x01r\xD1\x01X\xD1\x01e\xD1\x01q\xD1\x01X\xD1\x01e\xD1\x01p\xD1\x01X\xD1\x01e\xD1\x01o\xD1\x01X\xD1\x01e\xD1\x01n\xD1\x01W\xD1\x01e\xD1\x015\x19\x010\x19\x01\xB9\x15\x01\xAF\x15\x01\xB8\x15\x01\xAF\x15\x01\xB9\x14\x01\xBD\x14\x01\xB9\x14\x01\xB0\x14\x01\xB9\x14\x01\xBA\x14\x01G\x13\x01W\x13\x01G\x13\x01>\x13\x012\x11\x01'\x11\x011\x11\x01'\x11\x01\xA5\x10\x01\xBA\x10\x01\x9B\x10\x01\xBA\x10\x01\x99\x10\x01\xBA\x10\x01\xD3~\x02\xD0\\\x02IR\x02\xD53\x02D(\x02J(\x02\xEEB\x02") + }, +} diff --git a/boa_icu_provider/data/min/normalizer/nfkd_v1/mod.rs b/boa_icu_provider/data/min/normalizer/nfkd_v1/mod.rs new file mode 100644 index 0000000000..bb1a90e5f8 --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/nfkd_v1/mod.rs @@ -0,0 +1,6 @@ +// @generated +type DataStruct = < :: icu_normalizer :: provider :: CompatibilityDecompositionSupplementV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; +pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { + locale.is_empty().then(|| &UND) +} +static UND: DataStruct = include!("und.rs.data"); diff --git a/boa_icu_provider/data/min/normalizer/nfkd_v1/und.rs.data b/boa_icu_provider/data/min/normalizer/nfkd_v1/und.rs.data new file mode 100644 index 0000000000..89976cbb57 --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/nfkd_v1/und.rs.data @@ -0,0 +1,21 @@ +::icu_normalizer::provider::DecompositionSupplementV1 { + trie: ::icu_collections::codepointtrie::CodePointTrie::from_parts( + ::icu_collections::codepointtrie::CodePointTrieHeader { + high_start: 130048u32, + shifted12_high_start: 32u16, + index3_null_offset: 252u16, + data_null_offset: 0u32, + null_value: 0u32, + trie_type: ::icu_collections::codepointtrie::TrieType::Small, + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\0\0@\0`\0\0\0\x9F\0\xDF\0\0\0\x1F\x01\0\0\0\0S\x01\x8C\x01\0\0\xB1\x01\xED\x01\x1D\x02\0\0\0\0\0\0\0\0\0\0\0\0W\x02\0\0\0\0b\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x9B\x02\0\0\xCF\x02\x03\x037\x03D\x03\0\0\0\0\x9A\x03\xB4\x03\xC1\x03\xD7\x03\xF7\x03\xB4\x03\xB4\x03\r\x04\0\0\x10\0 \x000\0@\0P\0`\0p\0`\0p\0\x80\0\x90\0\0\0\x10\0 \x000\0\x9F\0\xAF\0\xBF\0\xCF\0\xDF\0\xEF\0\xFF\0\x0F\x01\0\0\x10\0 \x000\0\x1F\x01/\x01?\x01O\x01\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0S\x01c\x01s\x01\x83\x01\x8C\x01\x9C\x01\xAC\x01\xBC\x01\0\0\x10\0 \x000\0\xB1\x01\xC1\x01\xD1\x01\xE1\x01\xED\x01\xFD\x01\r\x02\x1D\x02\x1D\x02-\x02=\x02M\x02\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0W\x02g\x02w\x02\x87\x02\0\0\x10\0 \x000\0b\x02r\x02\x82\x02\x92\x02\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\x9B\x02\xAB\x02\xBB\x02\xCB\x02\0\0\x10\0 \x000\0\xCF\x02\xDF\x02\xEF\x02\xFF\x02\x03\x03\x13\x03#\x033\x037\x03G\x03W\x03g\x03D\x03T\x03d\x03t\x03\0\0\x10\0 \x000\0\0\0\x10\0 \x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0~\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8B\x03\x9B\x03\xAB\x03\xBB\x03\xCB\x03\xD6\x03\0\0\xDF\x03\xEF\x03\xFF\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x0F\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1B\x04+\x04;\x04K\x04Z\x04j\x04y\x04\x85\x04\x95\x04\xA4\x04\xAE\x04\0\0\xBE\x04\xCE\x04\xDE\x04\xEB\x04\0\0\0\0\0\0\0\0\0\0\xFB\x04\x0B\x05\x1B\x05+\x05;\x05K\x05[\x05k\x05{\x05\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x85\x05\x95\x05\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA5\x05\xB5\x05\xC5\x05\xD5\x05\xE5\x05\xF5\x05\x05\x06\x15\x06%\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x06\0\0\0\0\0\0\0\0\0\0\0\0=\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0b\x06\0\0\0\0\0\0\0\0\0\0r\x06\x82\x06\x92\x06\xA2\x06\xB2\x06\xC2\x06\xD2\x06\xE2\x06\xF2\x06\x02\x07\x12\x07\"\x072\x07B\x07R\x07\0\0\0\0b\x07\0\0\0\0l\x07\0\0\0\0\0\0\0\0\0\0w\x07\0\0\0\0\0\0\0\0\0\0\x87\x07\0\0\0\0\0\0\x97\x07\xA7\x07\xB7\x07\xC7\x07\xD7\x07\xE7\x07\xF6\x07\0\0\0\0\0\0\0\0\0\0\0\0\x06\x08\x16\x08&\x086\x08F\x08V\x08f\x08v\x08\x86\x08\x96\x08\xA6\x08\xB6\x08\xC6\x08\xD6\x08\xE6\x08\xF6\x08\x06\t\x16\t&\t6\tF\tV\tf\tv\t\x86\t\x96\t\xA6\t\xB6\t\xC6\t\xD6\t\xE6\t\xF6\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\n>\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N\n[\nk\n\0\0u\n\x85\n\x93\n\xA1\n\xAF\n\xBD\n\xCD\n\xDD\n\0\0\xEA\n\xFA\n\n\x0B\x1A\x0B*\x0B:\x0BJ\x0BZ\x0Bj\x0Bz\x0B\x8A\x0B\x9A\x0B\xAA\x0B\xBA\x0B\xCA\x0B\xDA\x0B\xEA\x0B\xFA\x0B\n\x0C\x1A\x0C*\x0C:\x0CJ\x0C\0\0Z\x0Ci\x0Cx\x0C\x88\x0C\x98\x0C\xA8\x0C\xB8\x0C\xC8\x0C\0\0\0\0\xD8\x0C\0\0\xE8\x0C\0\0\xF8\x0C\x08\r\x18\r(\r8\rH\rW\rf\ru\r\x84\r\x93\r\xA2\r\xB1\r\xC0\r\xD0\r\xE0\r\xF0\r\0\x0E\x10\x0E \x0E0\x0E\xE5\x08@\x0EP\x0E`\x0Eo\x0E\x7F\x0E\x8F\x0E\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x9E\x0E\xAE\x0E\xBE\x0E\xCE\x0E\0\0\0\0\0\0\0\0\xFB\x05\x0B\x06\x1B\x06\xDE\x0E\x07\x06\xEE\x0E\xFE\x0E\x03\x06\x13\x06\x0E\x0F\x1E\x0F.\x0F>\x0F\xFB\x05\x0B\x06\x1B\x06J\x0FZ\x0F\x17\x06F\x0Fj\x0Fz\x0F\xFA\x0E\xFF\x05\x0F\x06\x1F\x06\xFB\x05\x0B\x06\x1B\x06\xDE\x0E\x07\x06\x17\x06\xFE\x0E\x03\x06\x13\x06\xFA\x0E\xFF\x05\x0F\x06\x1F\x06\xFB\x05\x0B\x06\x1B\x06\x8A\x0F\x9A\x0F\xAA\x0F\xBA\x0F\xCA\x0F\xA0\x0F\xB0\x0F\xC0\x0F\x96\x0F\xA6\x0F\xB6\x0F\xC6\x0F\x9C\x0F\xAC\x0F\xBC\x0F\x92\x0F\xA2\x0F\xB2\x0F\xDA\x0F\xEA\x0F\xF0\x0F\xEC\x0F\0\0\0\0\0\0\0\x10\x10\x10 \x100\x10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\x10P\x10`\x10p\x10~\x10\x8E\x10\x9E\x10\xAE\x10\xBE\x10\xCE\x10\xDD\x10\xCE\x10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xED\x10\xFD\x10\r\x11\xFB\x05\x1D\x11\0\0-\x11\0\0\0\0=\x11\0\0\0\0\0\0\0\0\0\0\0\0M\x11]\x11m\x11}\x11\x8D\x11\x9D\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xAD\x11H\0h\0\x88\0\xA4\0\xAC\0\xAC\0\xAC\0\xCC\0\xEC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\n\x01&\x01F\x01d\x01~\x01\xFC\0\xFC\0\x9E\x01\xB7\x01\xCE\x01\xEE\x01\x0E\x02\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0.\x02\xFC\0N\x02\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0e\x02\x85\x02\xA5\x02\xFC\0\xFC\0\xFC\0\xC4\x02\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xE4\x02\x04\x03\xFC\0\xFC\0\xFC\0\xFC\0$\x03\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0\xFC\0D\x03T\x03t\x03\xFC\0\xFC\0\xFC\0z\x03\xEE\xFF") + }, + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\x08\x03\0\0\0\0a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\x04\x03\0\0\0\0\0\0\0\x002\0\0\x003\0\0\0 \0\x01\x03\xBC\x03\0\0\0\0\0\0\0\0\0\0 \0'\x031\0\0\0o\0\0\0\0\0\0\0\0\0!,\0\0\x1E,\0\0\x1B,\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x19\x0C\0\0\x17\x0C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x15\x0C\0\0\x13\x0C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11\x0C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x0E,\0\0\x0B,\0\0\x08,\0\0\x06\x0C\0\0\x04\x0C\0\0\x02\x0C\0\0\0\x0C\0\0\xFE\x0B\0\0\xFC\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xFA\x0B\0\0\xF8\x0B\0\0\xF6\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0h\0\0\0f\x02\0\0j\0\0\0r\0\0\0y\x02\0\0{\x02\0\0\x81\x02\0\0w\0\0\0y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\x06\x03 \0\x07\x03 \0\n\x03 \0(\x03 \0\x03\x03 \0\x0B\x03\0\0\0\0\0\0\0\0c\x02\0\0l\0\0\0s\0\0\0x\0\0\0\x95\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0E\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\x01\x03\0\0\xC3;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB2\x03\0\0\xB8\x03\0\0\xA5\x03\0\0\xA5\x03\x01\x03\xA5\x03\x08\x03\xC6\x03\0\0\xC0\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xBA\x03\0\0\xC1\x03\0\0\xC2\x03\0\0\0\0\0\0\x98\x03\0\0\xB5\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA3\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xF4\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xF2\x0B\0\0\xF0\x0B\0\0\x85\x06\0\0\xEE\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xEC\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xEA\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE8\x0B\0\0\xE6\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x0B\x0F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE3;\0\0\0\0\0\0\xE0;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDC\x10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\0\0\0\xC6\0\0\0B\0\0\0\0\0\0\0D\0\0\0E\0\0\0\x8E\x01\0\0G\0\0\0H\0\0\0I\0\0\0J\0\0\0K\0\0\0L\0\0\0M\0\0\0N\0\0\0\0\0\0\0O\0\0\0\"\x02\0\0P\0\0\0R\0\0\0T\0\0\0U\0\0\0W\0\0\0a\0\0\0P\x02\0\0Q\x02\0\0\x02\x1D\0\0b\0\0\0d\0\0\0e\0\0\0Y\x02\0\0[\x02\0\0\\\x02\0\0g\0\0\0\0\0\0\0k\0\0\0m\0\0\0K\x01\0\0o\0\0\0T\x02\0\0\x16\x1D\0\0\x17\x1D\0\0p\0\0\0t\0\0\0u\0\0\0\x1D\x1D\0\0o\x02\0\0v\0\0\0%\x1D\0\0\xB2\x03\0\0\xB3\x03\0\0\xB4\x03\0\0\xC6\x03\0\0\xC7\x03\0\0i\0\0\0r\0\0\0u\0\0\0v\0\0\0\xB2\x03\0\0\xB3\x03\0\0\xC1\x03\0\0\xC6\x03\0\0\xC7\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0=\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x02\0\0c\0\0\0U\x02\0\0\xF0\0\0\0\\\x02\0\0f\0\0\0_\x02\0\0a\x02\0\0e\x02\0\0h\x02\0\0i\x02\0\0j\x02\0\0{\x1D\0\0\x9D\x02\0\0m\x02\0\0\x85\x1D\0\0\x9F\x02\0\0q\x02\0\0p\x02\0\0r\x02\0\0s\x02\0\0t\x02\0\0u\x02\0\0x\x02\0\0\x82\x02\0\0\x83\x02\0\0\xAB\x01\0\0\x89\x02\0\0\x8A\x02\0\0\x1C\x1D\0\0\x8B\x02\0\0\x8C\x02\0\0z\0\0\0\x90\x02\0\0\x91\x02\0\0\x92\x02\0\0\xB8\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xDE\x0Bs\0\x07\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\x13\x03\0\0\0\0 \0\x13\x03 \0B\x03\0\0\xDB;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xD8;\0\0\xD5;\0\0\xD2;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xCF;\0\0\xCC;\0\0\xC9;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xC6;\0\0\xC3;\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\x01\x03 \0\x14\x03\0\0\0\0 \0\0\0 \0\0\0 \0\0\0 \0\0\0 \0\0\0 \0\0\0 \0\0\0 \0\0\0 \0\0\0 \0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \x003\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0\0\0\0\0Y\x04\0\0Y$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB6\x0B\0\0\xB6+\0\0\0\0\0\0\xC0\x0B\0\0\xC0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xBE\x0B\0\0\0\0 \0\x05\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xBB\x0B\0\0\xBC\x0B\0\0\xBA\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB6K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\x000\0\0\0i\0\0\0\0\0\0\0\0\0\0\x004\0\0\x005\0\0\x006\0\0\x007\0\0\08\0\0\09\0\0\0+\0\0\0\x12\"\0\0=\0\0\0(\0\0\0)\0\0\0n\0\0\x000\0\0\x001\0\0\x002\0\0\x003\0\0\x004\0\0\x005\0\0\x006\0\0\x007\0\0\08\0\0\09\0\0\0+\0\0\0\x12\"\0\0=\0\0\0(\0\0\0)\0\0\0\0\0\0\0a\0\0\0e\0\0\0o\0\0\0x\0\0\0Y\x02\0\0h\0\0\0k\0\0\0l\0\0\0m\0\0\0n\0\0\0p\0\0\0s\0\0\0t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB4\x0B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xB1+\0\0\xAE+C\0\0\0\0\0\xAC\x0B\0\0\0\0\0\0\xA9+\0\0\xA6+\x90\x01\0\0\0\0\0\0\0\0\xA4\x0Bg\0\0\0H\0\0\0H\0\0\0H\0\0\0h\0\0\0'\x01\0\0I\0\0\0I\0\0\0L\0\0\0l\0\0\0\0\0\0\0N\0\0\0\0\0\xA2\x0B\0\0\0\0\0\0\0\0P\0\0\0Q\0\0\0R\0\0\0R\0\0\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\xA0\x0B\0\0\x9D+\0\0\x9B\x0B\0\0\0\0Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0B\0\0\0C\0\0\0\0\0\0\0e\0\0\0E\0\0\0F\0\0\0\0\0\0\0M\0\0\0o\0\0\0\xD0\x05\0\0\xD1\x05\0\0\xD2\x05\0\0\xD3\x05\0\0i\0\0\0\0\0\0\0\0\0\x98+\xC0\x03\0\0\xB3\x03\0\0\x93\x03\0\0\xA0\x03\0\0\x11\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0D\0\0\0d\0\0\0e\0\0\0i\0\0\0j\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0k+\0\0\x95+\0\0\x91K\0\0\x8E+\0\0\x8B+\0\0\x88+\0\0\x85+\0\0\x82+\0\0\x7F+\0\0|+\0\0y+\0\0v+\0\0s+\0\0p+\0\0m+\0\0k\x0BI\0\0\0\0\0a\x0B\0\0a+\0\0i\x0BV\0\0\0\0\0e\x0B\0\0e+\0\0eK\0\0c\x0BX\0\0\0\0\0`\x0B\0\0`+L\0\0\0C\0\0\0D\0\0\0M\0\0\0i\0\0\0\0\0V\x0B\0\0V+\0\0^\x0Bv\0\0\0\0\0Z\x0B\0\0Z+\0\0ZK\0\0X\x0Bx\0\0\0\0\0U\x0B\0\0U+l\0\0\0c\0\0\0d\0\0\0m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\n\0\0\x95*\0\0\0\0\0\0O\x0B\0\0O+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x001\0\0\x002\0\0\x003\0\0\x004\0\0\x005\0\0\x006\0\0\x007\0\0\08\0\0\09\0\0\0\0\0\xDD\x06\0\0\xDA\x06\0\0\xD7\x06\0\0\xD4\x06\0\0\xD1\x06\0\0\xCE\x06\0\0\xCB\x06\0\0\xC8\x06\0\0\xC5\x06\0\0\xC2\x06\0\0\xBF\x06\0\0L+\0\0I+\0\0F+\0\0C+\0\0@+\0\0=+\0\0:+\0\x007+\0\x004+\0\x000K\0\0,K\0\0(K\0\0$K\0\0 K\0\0\x1CK\0\0\x18K\0\0\x14K\0\0\x10K\0\0\x0CK\0\0\x08K\0\0\x03\x0B\0\0\0\x0B\0\0\xFD\n\0\0\xFA\n\0\0\xF7\n\0\0\xF4\n\0\0\xF1\n\0\0\xEE\n\0\0\xEB\n\0\0\x05+\0\0\x02+\0\0\xFF*\0\0\xFC*\0\0\xF9*\0\0\xF6*\0\0\xF3*\0\0\xF0*\0\0\xED*\0\0\xEA*\0\0\xE7*\0\0\xE4*\0\0\xE1*\0\0\xDE*\0\0\xDB*\0\0\xD8*\0\0\xD5*\0\0\xD2*\0\0\xCF*\0\0\xCC*\0\0\xC9*\0\0\xC6*\0\0\xC3*\0\0\xC0*\0\0\xBD*\0\0\xBA*\0\0\xB7*\0\0\xB4*\0\0\xB1*\0\0\xAE*\0\0\xAB*\0\0\xA8*\0\0\xA5*\0\0\xA2*\0\0\x9F*\0\0\x9C*\0\0\x99*A\0\0\0B\0\0\0C\0\0\0D\0\0\0E\0\0\0F\0\0\0G\0\0\0H\0\0\0I\0\0\0J\0\0\0K\0\0\0L\0\0\0M\0\0\0N\0\0\0O\0\0\0P\0\0\0Q\0\0\0R\0\0\0S\0\0\0T\0\0\0U\0\0\0V\0\0\0W\0\0\0X\0\0\0Y\0\0\0Z\0\0\0a\0\0\0b\0\0\0c\0\0\0d\0\0\0e\0\0\0f\0\0\0g\0\0\0h\0\0\0i\0\0\0j\0\0\0k\0\0\0l\0\0\0m\0\0\0n\0\0\0o\0\0\0p\0\0\0q\0\0\0r\0\0\0s\0\0\0t\0\0\0u\0\0\0v\0\0\0w\0\0\0x\0\0\0y\0\0\0z\0\0\x000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x92*\0\0\x8F\n\0\0\x8F*\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0j\0\0\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xCDk\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x9F\x9F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0N\0\0(N\0\x006N\0\0?N\0\0YN\0\0\x85N\0\0\x8CN\0\0\xA0N\0\0\xBAN\0\0?Q\0\0eQ\0\0kQ\0\0\x82Q\0\0\x96Q\0\0\xABQ\0\0\xE0Q\0\0\xF5Q\0\0\0R\0\0\x9BR\0\0\xF9R\0\0\x15S\0\0\x1AS\0\08S\0\0AS\0\0\\S\0\0iS\0\0\x82S\0\0\xB6S\0\0\xC8S\0\0\xE3S\0\0\xD7V\0\0\x1FW\0\0\xEBX\0\0\x02Y\0\0\nY\0\0\x15Y\0\0'Y\0\0sY\0\0P[\0\0\x80[\0\0\xF8[\0\0\x0F\\\0\0\"\\\0\08\\\0\0n\\\0\0q\\\0\0\xDB]\0\0\xE5]\0\0\xF1]\0\0\xFE]\0\0r^\0\0z^\0\0\x7F^\0\0\xF4^\0\0\xFE^\0\0\x0B_\0\0\x13_\0\0P_\0\0a_\0\0s_\0\0\xC3_\0\0\x08b\0\x006b\0\0Kb\0\0/e\0\x004e\0\0\x87e\0\0\x97e\0\0\xA4e\0\0\xB9e\0\0\xE0e\0\0\xE5e\0\0\xF0f\0\0\x08g\0\0(g\0\0 k\0\0bk\0\0yk\0\0\xB3k\0\0\xCBk\0\0\xD4k\0\0\xDBk\0\0\x0Fl\0\0\x14l\0\x004l\0\0kp\0\0*r\0\x006r\0\0;r\0\0?r\0\0Gr\0\0Yr\0\0[r\0\0\xACr\0\0\x84s\0\0\x89s\0\0\xDCt\0\0\xE6t\0\0\x18u\0\0\x1Fu\0\0(u\0\x000u\0\0\x8Bu\0\0\x92u\0\0vv\0\0}v\0\0\xAEv\0\0\xBFv\0\0\xEEv\0\0\xDBw\0\0\xE2w\0\0\xF3w\0\0:y\0\0\xB8y\0\0\xBEy\0\0tz\0\0\xCBz\0\0\xF9z\0\0s|\0\0\xF8|\0\x006\x7F\0\0Q\x7F\0\0\x8A\x7F\0\0\xBD\x7F\0\0\x01\x80\0\0\x0C\x80\0\0\x12\x80\0\x003\x80\0\0\x7F\x80\0\0\x89\x80\0\0\xE3\x81\0\0\xEA\x81\0\0\xF3\x81\0\0\xFC\x81\0\0\x0C\x82\0\0\x1B\x82\0\0\x1F\x82\0\0n\x82\0\0r\x82\0\0x\x82\0\0M\x86\0\0k\x86\0\0@\x88\0\0L\x88\0\0c\x88\0\0~\x89\0\0\x8B\x89\0\0\xD2\x89\0\0\0\x8A\0\x007\x8C\0\0F\x8C\0\0U\x8C\0\0x\x8C\0\0\x9D\x8C\0\0d\x8D\0\0p\x8D\0\0\xB3\x8D\0\0\xAB\x8E\0\0\xCA\x8E\0\0\x9B\x8F\0\0\xB0\x8F\0\0\xB5\x8F\0\0\x91\x90\0\0I\x91\0\0\xC6\x91\0\0\xCC\x91\0\0\xD1\x91\0\0w\x95\0\0\x80\x95\0\0\x1C\x96\0\0\xB6\x96\0\0\xB9\x96\0\0\xE8\x96\0\0Q\x97\0\0^\x97\0\0b\x97\0\0i\x97\0\0\xCB\x97\0\0\xED\x97\0\0\xF3\x97\0\0\x01\x98\0\0\xA8\x98\0\0\xDB\x98\0\0\xDF\x98\0\0\x96\x99\0\0\x99\x99\0\0\xAC\x99\0\0\xA8\x9A\0\0\xD8\x9A\0\0\xDF\x9A\0\0%\x9B\0\0/\x9B\0\x002\x9B\0\0<\x9B\0\0Z\x9B\0\0\xE5\x9C\0\0u\x9E\0\0\x7F\x9E\0\0\xA5\x9E\0\0\xBB\x9E\0\0\xC3\x9E\0\0\xCD\x9E\0\0\xD1\x9E\0\0\xF9\x9E\0\0\xFD\x9E\0\0\x0E\x9F\0\0\x13\x9F\0\0 \x9F\0\0;\x9F\0\0J\x9F\0\0R\x9F\0\0\x8D\x9F\0\0\x9C\x9F\0\0\xA0\x9F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x120\0\0\0\0\0\0AS\0\0DS\0\0ES\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\x990 \0\x9A0\0\0\0\0\0\0\0\0\0\0\x8D\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8B\n\0\0\0\0\0\x11\0\0\x01\x11\0\0\xAA\x11\0\0\x02\x11\0\0\xAC\x11\0\0\xAD\x11\0\0\x03\x11\0\0\x04\x11\0\0\x05\x11\0\0\xB0\x11\0\0\xB1\x11\0\0\xB2\x11\0\0\xB3\x11\0\0\xB4\x11\0\0\xB5\x11\0\0\x1A\x11\0\0\x06\x11\0\0\x07\x11\0\0\x08\x11\0\0!\x11\0\0\t\x11\0\0\n\x11\0\0\x0B\x11\0\0\x0C\x11\0\0\r\x11\0\0\x0E\x11\0\0\x0F\x11\0\0\x10\x11\0\0\x11\x11\0\0\x12\x11\0\0a\x11\0\0b\x11\0\0c\x11\0\0d\x11\0\0e\x11\0\0f\x11\0\0g\x11\0\0h\x11\0\0i\x11\0\0j\x11\0\0k\x11\0\0l\x11\0\0m\x11\0\0n\x11\0\0o\x11\0\0p\x11\0\0q\x11\0\0r\x11\0\0s\x11\0\0t\x11\0\0u\x11\0\0`\x11\0\0\x14\x11\0\0\x15\x11\0\0\xC7\x11\0\0\xC8\x11\0\0\xCC\x11\0\0\xCE\x11\0\0\xD3\x11\0\0\xD7\x11\0\0\xD9\x11\0\0\x1C\x11\0\0\xDD\x11\0\0\xDF\x11\0\0\x1D\x11\0\0\x1E\x11\0\0 \x11\0\0\"\x11\0\0#\x11\0\0'\x11\0\0)\x11\0\0+\x11\0\0,\x11\0\0-\x11\0\0.\x11\0\0/\x11\0\x002\x11\0\x006\x11\0\0@\x11\0\0G\x11\0\0L\x11\0\0\xF1\x11\0\0\xF2\x11\0\0W\x11\0\0X\x11\0\0Y\x11\0\0\x84\x11\0\0\x85\x11\0\0\x88\x11\0\0\x91\x11\0\0\x92\x11\0\0\x94\x11\0\0\x9E\x11\0\0\xA1\x11\0\0\0\0\0\0\0\0\0\0\0N\0\0\x8CN\0\0\tN\0\0\xDBV\0\0\nN\0\0-N\0\0\x0BN\0\x002u\0\0YN\0\0\x19N\0\0\x01N\0\0)Y\0\x000W\0\0\xBAN\0\0\0\0\x88*\0\0\x85*\0\0\x82*\0\0\x7F*\0\0|*\0\0y*\0\0v*\0\0s*\0\0p*\0\0m*\0\0j*\0\0g*\0\0d*\0\0a*\0\0]J\0\0YJ\0\0UJ\0\0QJ\0\0MJ\0\0IJ\0\0EJ\0\0AJ\0\0=J\0\09J\0\x005J\0\x001J\0\0-J\0\0)J\0\0%J\0\0\x1E\xAA\0\0\x18\x8A\0\0\0\0\0\0\x15*\0\0\x12*\0\0\x0F*\0\0\x0C*\0\0\t*\0\0\x06*\0\0\x03*\0\0\0*\0\0\xFD)\0\0\xFA)\0\0\xF7)\0\0\xF4)\0\0\xF1)\0\0\xEE)\0\0\xEB)\0\0\xE8)\0\0\xE5)\0\0\xE2)\0\0\xDF)\0\0\xDC)\0\0\xD9)\0\0\xD6)\0\0\xD3)\0\0\xD0)\0\0\xCD)\0\0\xCA)\0\0\xC7)\0\0\xC4)\0\0\xC1)\0\0\xBE)\0\0\xBB)\0\0\xB8)\0\0\xB5)\0\0\xB2)\0\0\xAF)\0\0\xAC)OU\0\0|^\0\0\x87e\0\0\x8F{\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA9)\0\0\xBC\x06\0\0\xB9\x06\0\0\xB6\x06\0\0\xB3\x06\0\0\xB0\x06\0\0\xAD\x06\0\0\xAA\x06\0\0\xA7\x06\0\0\xA4\x06\0\0\xA1\x06\0\0\x9E\x06\0\0\xA7\t\0\0\xA5\t\0\0o\t\0\0\xA3\t\0\x11\0\0\x02\x11\0\0\x03\x11\0\0\x05\x11\0\0\x06\x11\0\0\x07\x11\0\0\t\x11\0\0\x0B\x11\0\0\x0C\x11\0\0\x0E\x11\0\0\x0F\x11\0\0\x10\x11\0\0\x11\x11\0\0\x12\x11\0\0\0\0\xA1\t\0\0\x9F\t\0\0\x9D\t\0\0\x9B\t\0\0\x99\t\0\0\x97\t\0\0\x95\t\0\0\x93\t\0\0\x91\t\0\0\x84\t\0\0\x8F\t\0\0\x8D\t\0\0\x8B\t\0\0\x89\t\0\0\x84i\0\0\x80I\0\0~\t\0\0\0\0\0N\0\0\x8CN\0\0\tN\0\0\xDBV\0\0\x94N\0\0mQ\0\0\x03N\0\0kQ\0\0]N\0\0AS\0\0\x08g\0\0kp\0\x004l\0\0(g\0\0\xD1\x91\0\0\x1FW\0\0\xE5e\0\0*h\0\0\tg\0\0>y\0\0\rT\0\0yr\0\0\xA1\x8C\0\0]y\0\0\xB4R\0\0\xD8y\0\x007u\0\0sY\0\0i\x90\0\0*Q\0\0pS\0\0\xE8l\0\0\x05\x98\0\0\x11O\0\0\x99Q\0\0ck\0\0\nN\0\0-N\0\0\x0BN\0\0\xE6]\0\0\xF3S\0\0;S\0\0\x97[\0\0f[\0\0\xE3v\0\0\x01O\0\0\xC7\x8C\0\0TS\0\0\x1CY\0\0\0\0|\t\0\0z\t\0\0x\t\0\0v\t\0\0t\t\0\0r\t\0\0p\t\0\0n\t\0\0l\t\0\0j\t\0\0h\t\0\0f\t\0\0d\t\0\0b\t\0\0`\t\0\0M\t\0\0J\t\0\0^\t\0\0\\\t\0\0Z\t\0\0X\t\0\0V\t\0\0T\t\0\0R\t\0\0O)\0\0L)\0\0I)\0\0G\t\0\0D)\0\0B\t\0\0?)\xA20\0\0\xA40\0\0\xA60\0\0\xA80\0\0\xAA0\0\0\xAB0\0\0\xAD0\0\0\xAF0\0\0\xB10\0\0\xB30\0\0\xB50\0\0\xB70\0\0\xB90\0\0\xBB0\0\0\xBD0\0\0\xBF0\0\0\xC10\0\0\xC40\0\0\xC60\0\0\xC80\0\0\xCA0\0\0\xCB0\0\0\xCC0\0\0\xCD0\0\0\xCE0\0\0\xCF0\0\0\xD20\0\0\xD50\0\0\xD80\0\0\xDB0\0\0\xDE0\0\0\xDF0\0\0\xE00\0\0\xE10\0\0\xE20\0\0\xE40\0\0\xE60\0\0\xE80\0\0\xE90\0\0\xEA0\0\0\xEB0\0\0\xEC0\0\0\xED0\0\0\xEF0\0\0\xF00\0\0\xF10\0\0\xF20\0\0\0\0=\t\0\08i\0\x004I\0\0/i\0\0,)\0\0'i\0\0$)\0\0!)\0\0\x1B\x89\0\0\x17I\0\0\x14)\0\0\x11)\0\0\x0E)\0\0\nI\0\0\x06I\0\0\x02I\0\0\xFEH\0\0\xFAH\0\0\xF6H\0\0\xF2H\0\0\xEC\x88\0\0\xDB\x08\0\0\xE6\x88\0\0\xE0\x88\0\0\xDBh\0\0\xD5H\0\0\xD5\x88\0\0\xCF\x88\0\0\xCBH\0\0\xC8(\0\0\xC5(\0\0\xC1H\0\0\xBDH\0\0\xB8h\0\0\xB3h\0\0\xB0(\0\0\x9B(\0\0\xACH\0\0\xA9(\0\0\xA6(\0\0\x1C\x08\0\0\xA4\x08\0\0\xA1(\0\0\x9E(\0\0\x98\x88\0\0\x94H\0\0\x8Fh\0\0\x89\x88\0\0\x85H\0\0\x82(\0\0\x7F(\0\0y\x88\0\0uH\0\0o\x88\0\0l(\0\0gh\0\0d(\0\0`H\0\0](\0\0YH\0\0Th\0\0PH\0\0Kh\0\0GH\0\0E\x08\0\0@h\0\0=(\0\0:(\0\x006H\0\x003(\0\x000(\0\0-(\0\0(h\0\0$H\0\0\x1E\x08\0\0\x1E\x88\0\0\x19(\0\0\x19h\0\0\x15H\0\0\x11H\0\0\x0E(\0\0\x0B(\0\0\x07H\0\0\x05\x08\0\0\x01H\0\0\xFCg\0\0\xFA\x07\0\0\xF4\x87\0\0\xF1'\0\0\xD1\x07\0\0\xCE\x07\0\0\xCB\x07\0\0\xC8\x07\0\0\xC5\x07\0\0\xE0\x07\0\0\xDD\x07\0\0\xDA\x07\0\0\xD7\x07\0\0\xD4\x07\0\0\xEE'\0\0\xEB'\0\0\xE8'\0\0\xE5'\0\0\xE2'\0\0\xDF'\0\0\xDC'\0\0\xD9'\0\0\xD6'\0\0\xD3'\0\0\xD0'\0\0\xCD'\0\0\xCA'\0\0\xC7'\0\0\xC4'\0\0\xC1'\0\0\xBF\x07\0\0\xBD\x07\0\0\xBA'\0\0\xB8\x07\0\0\xB6\x07\0\0\xB0\x07\0\0\xB3'\0\0\xB0'\0\0\xAE\x07\0\0\xAC\x07\0\0\xAA\x07\0\0\xA8\x07\0\0\xA6\x07\0\0\xA2G\0\0\xA0\x07\0\0\x9E\x07\0\0\x9C\x07\0\0\x9A\x07\0\0\x98\x07\0\0\x96\x07\0\0\x94\x07\0\0\x92\x07\0\0\x8F'\0\0\x8EG\0\0\x8C\x07\0\0\x8A\x07\0\0\x88\x07\0\0\x86\x07\0\0\x84\x07\0\0\x1B\x07\0\0y\x07\0\0\x81'\0\0~'\0\0{'\0\0x'\0\0v\x07\0\0t\x07\0\0r\x07\0\0p\x07\0\0n\x07\0\0l\x07\0\0j\x07\0\0^\x07\0\0[\x07\0\0X\x07\0\0g'\0\0d'\0\0b\x07\0\0a'\0\0^'\0\0['\0\0Y\x07\0\0X'\0\0T'\0\0TG\0\0L\x07\0\0Q'\0\0N'\0\0K'\0\0E'\0\0Eg\0\0E\x87\0\0C\x07\0\0A\x07\0\0?\x07\0\0=\x07\0\0;\x07\0\09\x07\0\x007\x07\0\0\xE2\x06\0\x005\x07\0\0\xDF\x03\0\x003\x07\0\x001\x07\0\0/\x07\0\0\xE5\x06\0\0-\x07\0\0+\x07\0\0)\x07\0\0'\x07\0\0#G\0\0!\x07\0\0\x1F\x07\0\0\x1D\x07\0\0\x19G\0\0\x16'\0\0\x14\x07\0\0\x12\x07\0\0\x10\x07\0\0\x0E\x07\0\0\x0C\x07\0\0\n\x07\0\0\x08\x07\0\0\x06\x07\0\0\xF9\x06\0\0\x04\x07\0\0\x01'\0\0\xFF\x06\0\0\xFD\x06\0\0\xFA&\0\0\xF7&\0\0\xF5\x06\0\0\xF1F\0\0\xEE&\0\0\xEC\x06\0\0\xEA\x06\0\0\xE8\x06\0\0\xE6\x06\0\0\xE3&\0\0\xE0&\0\0\x9F\x06\0\0\xBA\x06\0\0\xB7\x06\0\0\xB4\x06\0\0\xB1\x06\0\0\xAE\x06\0\0\xAB\x06\0\0\xA8\x06\0\0\xA5\x06\0\0\xDD&\0\0\xDA&\0\0\xD7&\0\0\xD4&\0\0\xD1&\0\0\xCE&\0\0\xCB&\0\0\xC8&\0\0\xC5&\0\0\xC2&\0\0\xBF&\0\0\xBC&\0\0\xB9&\0\0\xB6&\0\0\xB3&\0\0\xB0&\0\0\xAD&\0\0\xAA&\0\0\xA7&\0\0\xA4&\0\0\xA1&\0\0\x9E&\0\0\x9B&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\x04\0\0L\x04\0\0\0\0\0\0\0\0\0\0o\xA7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0C\0\0\0F\0\0\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&\x01\0\0S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'\xA7\0\x007\xAB\0\0k\x02\0\0R\xAB\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8D\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x95\x06\0\0\x99\x06\0\0\x96\x06\0\0\x98&\0\0\x95&\0\0\x93\x06\0\0\x93\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x91\x06\0\0\x8F\x06\0\0\x8D\x06\0\0\x8B\x06\0\0\x89\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xE2\x05\0\0\xD0\x05\0\0\xD3\x05\0\0\xD4\x05\0\0\xDB\x05\0\0\xDC\x05\0\0\xDD\x05\0\0\xE8\x05\0\0\xEA\x05\0\0+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x87\x06q\x06\0\0q\x06\0\0{\x06\0\0{\x06\0\0{\x06\0\0{\x06\0\0~\x06\0\0~\x06\0\0~\x06\0\0~\x06\0\0\x80\x06\0\0\x80\x06\0\0\x80\x06\0\0\x80\x06\0\0z\x06\0\0z\x06\0\0\x7F\x06\0\0\x7F\x06\0\0\x7F\x06\0\0\x7F\x06\0\0y\x06\0\0y\x06\0\0y\x06\0\0y\x06\0\0\xA4\x06\0\0\xA4\x06\0\0\xA4\x06\0\0\xA4\x06\0\0\xA6\x06\0\0\xA6\x06\0\0\x84\x06\0\0\x84\x06\0\0\x84\x06\0\0\x84\x06\0\0\x83\x06\0\0\x83\x06\0\0\x83\x06\0\0\x83\x06\0\0\x86\x06\0\0\x86\x06\0\0\x86\x06\0\0\x86\x06\0\0\x87\x06\0\0\x87\x06\0\0\x8D\x06\0\0\x8D\x06\0\0\x8C\x06\0\0\x8C\x06\0\0\x8E\x06\0\0\x8E\x06\0\0\x88\x06\0\0\x88\x06\0\0\x98\x06\0\0\x98\x06\0\0\x91\x06\0\0\x91\x06\0\0\xA9\x06\0\0\xA9\x06\0\0\xAF\x06\0\0\xAF\x06\0\0\xAF\x06\0\0\xAF\x06\0\0\xB3\x06\0\0\xB3\x06\0\0\xB3\x06\0\0\xB3\x06\0\0\xB1\x06\0\0\xB1\x06\0\0\xB1\x06\0\0\xB1\x06\0\0\xBA\x06\0\0\xBA\x06\0\0\xBB\x06\0\0\xBB\x06\0\0\xBB\x06\0\0\xBB\x06\0\0\xD5\x06T\x06\xD5\x06T\x06\xC1\x06\0\0\xC1\x06\0\0\xC1\x06\0\0\xC1\x06\0\0\xBE\x06\0\0\xBE\x06\0\0\xBE\x06\0\0\xBE\x06\0\0\xD2\x06\0\0\xD2\x06\0\0\xD2\x06T\x06\xD2\x06T\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xAD\x06\0\0\xAD\x06\0\0\xAD\x06\0\0\xAD\x06\0\0\xC7\x06\0\0\xC7\x06\0\0\xC6\x06\0\0\xC6\x06\0\0\xC8\x06\0\0\xC8\x06\0\0\0\0\x85\x06\xCB\x06\0\0\xCB\x06\0\0\xC5\x06\0\0\xC5\x06\0\0\xC9\x06\0\0\xC9\x06\0\0\xD0\x06\0\0\xD0\x06\0\0\xD0\x06\0\0\xD0\x06\0\0I\x06\0\0I\x06\0\0\0\0\x82&\0\0\x82&\0\0\x7F&\0\0\x7F&\0\0|&\0\0|&\0\0y&\0\0y&\0\0v&\0\0v&\0\0s&\0\0s&\0\0p&\0\0p&\0\0p&\0\0L&\0\0L&\0\0L&\xCC\x06\0\0\xCC\x06\0\0\xCC\x06\0\0\xCC\x06\0\0\0\0\n&\0\0\x07&\0\0\xE3%\0\0L&\0\0I&\0\0\x02\x06\0\0\x9E\x04\0\0\x01\x05\0\0\xDE\x05\0\0C\x06\0\0A\x06\0\0\xFB\x04\0\0\x94\x05\0\0\xF5\x04\0\0\xEF\x04\0\09\x06\0\x007\x06\0\0n\x06\0\0\xD8\x05\0\0/\x06\0\0-\x06\0\0\xAA\x04\0\0\x99\x04\0\0\xA7\x04\0\0~\x04\0\0#\x05\0\0l\x06\0\0\x1E\x05\0\0v\x05\0\0|\x05\0\0\x92\x04\0\0m\x05\0\0\xE0\x04\0\0\x95\x04\0\0\xFE\x05\0\0\xDA\x04\0\0X\x05\0\0\xFC\x05\0\0\xFA\x05\0\0O\x05\0\0\x9D\x05\0\0\x98\x04\0\0{\x04\0\0\xF8\x05\0\0C\x05\0\0\xF6\x05\0\0\xF4\x05\0\0@\x05\0\0\xA1\x04\0\0+\x06\0\0)\x06\0\0\xF2\x05\0\0\xBF\x04\0\0'\x06\0\0%\x06\0\0#\x06\0\0\xF0\x05\0\0\xEE\x05\0\0\xEC\x05\0\0\xD4\x05\0\0\x9B\x04\0\0!\x06\0\0\x1F\x06\0\0a\x04\0\0\xBC\x04\0\x001\x05\0\0o\x04\0\0k\x04\0\0r\x04\0\0\xA4\x04\0\0}\x04\0\0\xB3\x04\0\0|\x04\0\0\xE7\x04\0\0\xA2\x04\0\0\x8F\x04\0\0\xC2\x04\0\0\xEA\x05\0\0\x04\x05\0\0\x15\x06\0\0\x13\x06\0\0\xE8\x05\0\0\x16\x05\0\0j\x06\0\0\xE2\x05\0\0\xA9\x04\0\0\xA6\x04\0\0\xE6\x05\0\0\xA3\x04\0\0\r\x06\0\0\xCA\x040\x06p\x061\x06p\x06I\x06p\x06\0\0g6\0\0d6\0\0a6\0\0^6\0\0[6\0\0X6\0\0U&\0\0R&\0\0\xE3%\0\0O&\0\0L&\0\0I&\0\0\x83\x04\0\0G\x06\0\0\xDE\x05\0\0E\x06\0\0C\x06\0\0A\x06\0\0?\x06\0\0=\x06\0\0\xEF\x04\0\0;\x06\0\09\x06\0\x007\x06\0\x005\x06\0\x003\x06\0\0\xD8\x05\0\x001\x06\0\0/\x06\0\0-\x06\0\0+\x06\0\0)\x06\0\0'\x06\0\0%\x06\0\0#\x06\0\0\xD4\x05\0\0\x9B\x04\0\0!\x06\0\0\x1F\x06\0\0o\x04\0\0k\x04\0\0r\x04\0\0\x1D\x06\0\0|\x04\0\0\x1B\x06\0\0\x19\x06\0\0\x04\x05\0\0\x17\x06\0\0\x15\x06\0\0\x13\x06I\x06p\x06\0\0\x11\x06\0\0\x0F\x06\0\0\xA3\x04\0\0\xAC\x04\0\0\r\x06\0\0\xCA\x04\0\0\n&\0\0\x07&\0\0\x04&\0\0\xE3%\0\0\xE0%\0\0\x02\x06\0\0\x9E\x04\0\0\x01\x05\0\0\xDE\x05\0\0\xDC\x05\0\0\xFB\x04\0\0\x94\x05\0\0\xF5\x04\0\0\xEF\x04\0\0\xDA\x05\0\0\xD8\x05\0\0\xAA\x04\0\0\x99\x04\0\0\xA7\x04\0\0~\x04\0\0#\x05\0\0\x1E\x05\0\0v\x05\0\0|\x05\0\0\x92\x04\0\0m\x05\0\0\xE0\x04\0\0\0\x06\0\0\x95\x04\0\0\xFE\x05\0\0\xDA\x04\0\0X\x05\0\0\xFC\x05\0\0\xFA\x05\0\0\x9D\x05\0\0\x98\x04\0\0{\x04\0\0\xF8\x05\0\0C\x05\0\0\xF6\x05\0\0\xF4\x05\0\0@\x05\0\0\xA1\x04\0\0\xF2\x05\0\0\xBF\x04\0\0\xF0\x05\0\0\xEE\x05\0\0\xEC\x05\0\0\xD4\x05\0\0\x9B\x04\0\0a\x04\0\0\xBC\x04\0\x001\x05\0\0o\x04\0\0h\x04\0\0\xA4\x04\0\0}\x04\0\0\xB3\x04\0\0|\x04\0\0\x8F\x04\0\0\xC2\x04\0\0\xEA\x05\0\0\x04\x05\0\0\xD2\x05\0\0\xE8\x05\0\0\x16\x05G\x06p\x06\0\0\xA9\x04\0\0\xA6\x04\0\0\xE6\x05\0\0\xA3\x04\0\0s\x04\0\0\xE3%\0\0\xE0%\0\0\xDE\x05\0\0\xDC\x05\0\0\xEF\x04\0\0\xDA\x05\0\0\xD8\x05\0\0\xD6\x05\0\0m\x05\0\0\xA3\x05\0\0^\x05\0\0\xA1\x05\0\0\xD4\x05\0\0\x9B\x04\0\0o\x04\0\0\x04\x05\0\0\xD2\x05\0\0\xA3\x04\0\0s\x04\0\0\xCF5\0\0\xCC5\0\0\xC95\0\0\xC7\x05\0\0\xC5\x05\0\0\xC3\x05\0\0\xC1\x05\0\0\xBF\x05\0\0\xBD\x05\0\0\xBB\x05\0\0\xB9\x05\0\0\xB7\x05\0\0\xB5\x05\0\0\xEA\x04\0\0\x9F\x04\0\0\xFC\x04\0\0\x90\x04\0\0\xE4\x04\0\0\x93\x04\0\0\xB3\x05\0\0\xB1\x05\0\0\xAF\x05\0\0\xAD\x05\0\0d\x05\0\0\xDD\x04\0\0\x9F\x05\0\0^\x05\0\0\xAB\x05\0\0\xA9\x05\0\0\xA7\x05\0\0\xA5\x05\0\0\xC7\x05\0\0\xC5\x05\0\0\xC3\x05\0\0\xC1\x05\0\0\xBF\x05\0\0\xBD\x05\0\0\xBB\x05\0\0\xB9\x05\0\0\xB7\x05\0\0\xB5\x05\0\0\xEA\x04\0\0\x9F\x04\0\0\xFC\x04\0\0\x90\x04\0\0\xE4\x04\0\0\x93\x04\0\0\xB3\x05\0\0\xB1\x05\0\0\xAF\x05\0\0\xAD\x05\0\0d\x05\0\0\xDD\x04\0\0\x9F\x05\0\0^\x05\0\0\xAB\x05\0\0\xA9\x05\0\0\xA7\x05\0\0\xA5\x05\0\0d\x05\0\0\xDD\x04\0\0\x9F\x05\0\0^\x05\0\0\xA3\x05\0\0\xA1\x05\0\0O\x05\0\0v\x05\0\0|\x05\0\0\x92\x04\0\0d\x05\0\0\xDD\x04\0\0\x9F\x05\0\0O\x05\0\0\x9D\x05'\x06K\x06'\x06K\x06\0\0\0\0\0\0\0\0\0\0\x9A%\0\0\x97%\0\0\x97%\0\0\x94%\0\0\x91%\0\0\x8E%\0\0\x8B%\0\0\x88%\0\0\x85%\0\0\x85%\0\0\x82%\0\0\x7F%\0\0|%\0\0y%\0\0v%\0\0s%\0\0p%\0\0m%\0\0m%\0\0j%\0\0j%\0\0\x95$\0\0g%\0\0g%\0\0d%\0\0a%\0\0a%\0\0^%\0\0^%\0\0[%\0\0X%\0\0U%\0\0U%\0\0R%\0\0O%\0\0\x98$\0\0{$\0\0{$\0\0L%\0\0I%\0\0F%\0\0C%\0\0@%\0\0@%\0\0\xBF$\0\0=%\0\0\xBC$\0\0:%\0\x007%\0\x004%\0\x004%\0\x001%\0\x001%\0\0.%\0\0.%\0\0+%\0\0}$\0\0(%\0\0%%\0\0\x1A%\0\0\"%\0\0\x1F%\0\0\0\0\0\0\0\0\0\0\x1C%\0\0\x19%\0\0\x16%\0\0\x13%\0\0\x10%\0\0\r%\0\0\r%\0\0\n%\0\0\x07%\0\0\x04%\0\0\xC7$\0\0\xC7$\0\0\x01%\0\0\xFE$\0\0\xFB$\0\0\xF8$\0\0\xF5$\0\0\xF2$\0\0\xEF$\0\0\xEC$\0\0\xE9$\0\0\xE6$\0\0\xE3$\0\0\xE0$\0\0\xDD$\0\0\xDA$\0\0\xD7$\0\0\xD4$\0\0\xD1$\0\0\xCE$\0\0\xCB$\0\0\xC8$\0\0\xC5$\0\0\xC2$\0\0\xBF$\0\0\xBC$\0\0\xB9$\0\0\xB6$\0\0\xAD$\0\0\xB3$\0\0\xB0$\0\0\x9B$\0\0\xB0$\0\0\xAD$\0\0\xAA$\0\0\xA7$\0\0\xA4$\0\0\xA1$\0\0\x9E$\0\0\x9B$\0\0\x98$\0\0\x95$\0\0\x92$\0\0\x8F$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8C$\0\0\x89$\0\0\x85D\0\0\x81D\0\0}D\0\0yD\0\0uD\0\0qD\0\0mD\0\0j$\x03\0\0\0\0\0b\xC4\0\0^D\0\0\0\0\0\0\0\0\0\0\0\0,\0\0\0\x010\0\0\x020\0\0:\0\0\0;\0\0\0!\0\0\0?\0\0\0\x160\0\0\x170\0\0\0\0[$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Y\x04\x14 \0\0\x13 \0\0_\0\0\0_\0\0\0(\0\0\0)\0\0\0{\0\0\0}\0\0\0\x140\0\0\x150\0\0\x100\0\0\x110\0\0\n0\0\0\x0B0\0\0\x080\0\0\t0\0\0\x0C0\0\0\r0\0\0\x0E0\0\0\x0F0\0\0\0\0\0\0\0\0\0\0[\0\0\0]\0\0\0 \0\x05\x03 \0\x05\x03 \0\x05\x03 \0\x05\x03_\0\0\0_\0\0\0_\0\0\0,\0\0\0\x010\0\0.\0\0\0\0\0\0\0;\0\0\0:\0\0\0?\0\0\0!\0\0\0\x14 \0\0(\0\0\0)\0\0\0{\0\0\0}\0\0\0\x140\0\0\x150\0\0#\0\0\0&\0\0\0*\0\0\0+\0\0\0-\0\0\0<\0\0\0>\0\0\0=\0\0\0\0\0\0\0\\\0\0\0$\0\0\0%\0\0\0@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0K\x06@\x06K\x06 \0L\x06\0\0\0\0 \0M\x06\0\0\0\0 \0N\x06@\x06N\x06 \0O\x06@\x06O\x06 \0P\x06@\x06P\x06 \0Q\x06@\x06Q\x06 \0R\x06@\x06R\x06!\x06\0\0'\x06S\x06'\x06S\x06'\x06T\x06'\x06T\x06H\x06T\x06H\x06T\x06'\x06U\x06'\x06U\x06J\x06T\x06J\x06T\x06J\x06T\x06J\x06T\x06'\x06\0\0'\x06\0\0(\x06\0\0(\x06\0\0(\x06\0\0)\x06\0\0)\x06\0\0*\x06\0\0*\x06\0\0*\x06\0\0*\x06\0\0+\x06\0\0+\x06\0\0+\x06\0\0+\x06\0\0,\x06\0\0,\x06\0\0,\x06\0\0-\x06\0\0-\x06\0\0-\x06\0\0-\x06\0\0.\x06\0\0.\x06\0\0.\x06\0\0.\x06\0\0/\x06\0\0/\x06\0\x000\x06\0\x000\x06\0\x001\x06\0\x001\x06\0\x002\x06\0\x003\x06\0\x003\x06\0\x003\x06\0\x003\x06\0\x004\x06\0\x004\x06\0\x004\x06\0\x004\x06\0\x005\x06\0\x005\x06\0\x005\x06\0\x005\x06\0\x006\x06\0\x006\x06\0\x006\x06\0\x007\x06\0\x007\x06\0\x007\x06\0\x007\x06\0\08\x06\0\08\x06\0\08\x06\0\08\x06\0\09\x06\0\09\x06\0\09\x06\0\09\x06\0\0:\x06\0\0:\x06\0\0:\x06\0\0A\x06\0\0A\x06\0\0A\x06\0\0A\x06\0\0B\x06\0\0B\x06\0\0B\x06\0\0B\x06\0\0C\x06\0\0C\x06\0\0C\x06\0\0C\x06\0\0D\x06\0\0D\x06\0\0D\x06\0\0E\x06\0\0E\x06\0\0E\x06\0\0E\x06\0\0F\x06\0\0F\x06\0\0F\x06\0\0F\x06\0\0G\x06\0\0G\x06\0\0G\x06\0\0G\x06\0\0H\x06\0\0H\x06\0\0I\x06\0\0J\x06\0\0J\x06\0\0J\x06\0\0J\x06\0\0\0\0V$\0\0V$\0\0S$\0\0S$\0\0P$\0\0P$\0\0N\x04\0\0N\x04\0\0\0\0\0\0\0\0\0\0\0\0!\0\0\0\"\0\0\0#\0\0\0$\0\0\0%\0\0\0&\0\0\0'\0\0\0(\0\0\0)\0\0\0*\0\0\0+\0\0\0,\0\0\0-\0\0\0.\0\0\0/\0\0\x000\0\0\x001\0\0\x002\0\0\x003\0\0\x004\0\0\x005\0\0\x006\0\0\x007\0\0\08\0\0\09\0\0\0:\0\0\0;\0\0\0<\0\0\0=\0\0\0>\0\0\0?\0\0\0@\0\0\0A\0\0\0B\0\0\0C\0\0\0D\0\0\0E\0\0\0F\0\0\0G\0\0\0H\0\0\0I\0\0\0J\0\0\0K\0\0\0L\0\0\0M\0\0\0N\0\0\0O\0\0\0P\0\0\0Q\0\0\0R\0\0\0S\0\0\0T\0\0\0U\0\0\0V\0\0\0W\0\0\0X\0\0\0Y\0\0\0Z\0\0\0[\0\0\0\\\0\0\0]\0\0\0^\0\0\0_\0\0\0`\0\0\0a\0\0\0b\0\0\0c\0\0\0d\0\0\0e\0\0\0f\0\0\0g\0\0\0h\0\0\0i\0\0\0j\0\0\0k\0\0\0l\0\0\0m\0\0\0n\0\0\0o\0\0\0p\0\0\0q\0\0\0r\0\0\0s\0\0\0t\0\0\0u\0\0\0v\0\0\0w\0\0\0x\0\0\0y\0\0\0z\0\0\0{\0\0\0|\0\0\0}\0\0\0~\0\0\0\x85)\0\0\x86)\0\0\x020\0\0\x0C0\0\0\r0\0\0\x010\0\0\xFB0\0\0\xF20\0\0\xA10\0\0\xA30\0\0\xA50\0\0\xA70\0\0\xA90\0\0\xE30\0\0\xE50\0\0\xE70\0\0\xC30\0\0\xFC0\0\0\xA20\0\0\xA40\0\0\xA60\0\0\xA80\0\0\xAA0\0\0\xAB0\0\0\xAD0\0\0\xAF0\0\0\xB10\0\0\xB30\0\0\xB50\0\0\xB70\0\0\xB90\0\0\xBB0\0\0\xBD0\0\0\xDF0\0\0\xE00\0\0\xE10\0\0\xE20\0\0\xE40\0\0\xE60\0\0\xE80\0\0\xE90\0\0\xEA0\0\0\xEB0\0\0\xEC0\0\0\xED0\0\0\xEF0\0\0\xF30\0\0\x990\0\0\x9A0\0\0`\x11\0\0\0\x11\0\0\x01\x11\0\0\xAA\x11\0\0\x02\x11\0\0\xAC\x11\0\0\xAD\x11\0\0\x03\x11\0\0\x04\x11\0\0\x05\x11\0\0\xB0\x11\0\0\xB1\x11\0\0\xB2\x11\0\0\xB3\x11\0\0\xB4\x11\0\0\xB5\x11\0\0\x1A\x11\0\0\x06\x11\0\0\x07\x11\0\0\x08\x11\0\0!\x11\0\0\t\x11\0\0\n\x11\0\0\x0B\x11\0\0\x0C\x11\0\0\r\x11\0\0\x0E\x11\0\0\x0F\x11\0\0\x10\x11\0\0\x11\x11\0\0\x12\x11\0\0\0\0\0\0\0\0\0\0a\x11\0\0b\x11\0\0c\x11\0\0d\x11\0\0e\x11\0\0f\x11\0\0\0\0\0\0\0\0\0\0g\x11\0\0h\x11\0\0i\x11\0\0j\x11\0\0k\x11\0\0l\x11\0\0\0\0\0\0\0\0\0\0m\x11\0\0n\x11\0\0o\x11\0\0p\x11\0\0q\x11\0\0r\x11\0\0\0\0\0\0\0\0\0\0s\x11\0\0t\x11\0\0u\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xA2\0\0\0\xA3\0\0\0\xAC\0\0\0 \0\x04\x03\xA6\0\0\0\xA5\0\0\0\xA9 \0\0\0\0\0\0\x02%\0\0\x90!\0\0\x91!\0\0\x92!\0\0\x93!\0\0\xA0%\0\0\xCB%\0\0\0\0\0\0\xD0\x02\0\0\xD1\x02\0\0\xE6\0\0\0\x99\x02\0\0S\x02\0\0\0\0\0\0\xA3\x02\0\0f\xAB\0\0\xA5\x02\0\0\xA4\x02\0\0V\x02\0\0W\x02\0\0\x91\x1D\0\0X\x02\0\0^\x02\0\0\xA9\x02\0\0d\x02\0\0b\x02\0\0`\x02\0\0\x9B\x02\0\0'\x01\0\0\x9C\x02\0\0g\x02\0\0\x84\x02\0\0\xAA\x02\0\0\xAB\x02\0\0l\x02\0\0\0\0;\x1D\x8E\xA7\0\0n\x02\0\0\0\0:\x1D\x8E\x02\0\0\0\09\x1D\xF8\0\0\0v\x02\0\0w\x02\0\0q\0\0\0z\x02\0\0\0\08\x1D}\x02\0\0~\x02\0\0\x80\x02\0\0\xA8\x02\0\0\xA6\x02\0\0g\xAB\0\0\xA7\x02\0\0\x88\x02\0\0q,\0\0\0\0\0\0\x8F\x02\0\0\xA1\x02\0\0\xA2\x02\0\0\x98\x02\0\0\xC0\x01\0\0\xC1\x01\0\0\xC2\x01\0\0\0\x007\x1D\0\x006\x1D\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0w\0\0\0x\0\0\0y\0\0\0z\0\0\0A\0\0\0B\0\0\0C\0\0\0D\0\0\0E\0\0\0F\0\0\0G\0\0\0H\0\0\0I\0\0\0J\0\0\0K\0\0\0L\0\0\0c\0\0\0d\0\0\0e\0\0\0f\0\0\0g\0\0\0\0\0\0\0i\0\0\0j\0\0\0k\0\0\0l\0\0\0m\0\0\0n\0\0\0o\0\0\0p\0\0\0q\0\0\0r\0\0\0s\0\0\0t\0\0\0u\0\0\0v\0\0\0w\0\0\0x\0\0\0y\0\0\0z\0\0\0A\0\0\0B\0\0\0C\0\0\0D\0\0\0E\0\0\0F\0\0\0G\0\0\0H\0\0\0o\0\0\0p\0\0\0q\0\0\0r\0\0\0s\0\0\0t\0\0\0u\0\0\0v\0\0\0w\0\0\0x\0\0\0y\0\0\0z\0\0\0A\0\0\0\0\0\0\0C\0\0\0D\0\0\0\0\0\0\0\0\0\0\0G\0\0\0\0\0\0\0\0\0\0\0J\0\0\0K\0\0\0\0\0\0\0\0\0\0\0N\0\0\0O\0\0\0P\0\0\0Q\0\0\0\0\0\0\0S\0\0\0T\0\0\0U\0\0\0V\0\0\0W\0\0\0X\0\0\0Y\0\0\0Z\0\0\0a\0\0\0b\0\0\0c\0\0\0d\0\0\0\0\0\0\0f\0\0\0\0\0\0\0h\0\0\0i\0\0\0j\0\0\0k\0\0\0l\0\0\0m\0\0\0n\0\0\0\0\0\0\0p\0\0\0q\0\0\0r\0\0\0s\0\0\0t\0\0\0u\0\0\0v\0\0\0w\0\0\0x\0\0\0y\0\0\0z\0\0\0A\0\0\0B\0\0\0\0\0\0\0D\0\0\0E\0\0\0F\0\0\0G\0\0\0\0\0\0\0\0\0\0\0J\0\0\0K\0\0\0L\0\0\0M\0\0\0N\0\0\0O\0\0\0P\0\0\0Q\0\0\0\0\0\0\0S\0\0\0T\0\0\0U\0\0\0V\0\0\0W\0\0\0X\0\0\0Y\0\0\0\0\0\0\0a\0\0\0b\0\0\0I\0\0\0J\0\0\0K\0\0\0L\0\0\0M\0\0\0\0\0\0\0O\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0S\0\0\0T\0\0\0U\0\0\0V\0\0\0W\0\0\0X\0\0\0Y\0\0\0\0\0\0\0a\0\0\0b\0\0\0c\0\0\0d\0\0\0e\0\0\0f\0\0\0g\0\0\0h\0\0\0i\0\0\0j\0\0\0k\0\0\0l\0\0\0m\0\0\0n\0\0\0w\0\0\0x\0\0\0y\0\0\0z\0\0\x001\x01\0\x007\x02\0\0\0\0\0\0\0\0\0\0\x91\x03\0\0\x92\x03\0\0\x93\x03\0\0\x94\x03\0\0\x95\x03\0\0\x96\x03\0\0\x97\x03\0\0\x98\x03\0\0\x99\x03\0\0\x9A\x03\0\0\x9B\x03\0\0\x9C\x03\0\0\x9D\x03\0\0\x9E\x03\0\0\x9F\x03\0\0\xA0\x03\0\0\xA1\x03\0\0\x98\x03\0\0\xA3\x03\0\0\xA4\x03\0\0\xA5\x03\0\0\xA6\x03\0\0\xA7\x03\0\0\xA8\x03\0\0\xA9\x03\0\0\x07\"\0\0\xB1\x03\0\0\xB2\x03\0\0\xB3\x03\0\0\xB4\x03\0\0\xB5\x03\0\0\xB6\x03\0\0\xB7\x03\0\0\xB8\x03\0\0\xB9\x03\0\0\xBA\x03\0\0\xBB\x03\0\0\xBC\x03\0\0\xBD\x03\0\0\xBE\x03\0\0\xBF\x03\0\0\xC0\x03\0\0\xC1\x03\0\0\xC2\x03\0\0\xC3\x03\0\0\xC4\x03\0\0\xC5\x03\0\0\xC6\x03\0\0\xC7\x03\0\0\xC8\x03\0\0\xC9\x03\0\0\x02\"\0\0\xB5\x03\0\0\xB8\x03\0\0\xBA\x03\0\0\xC6\x03\0\0\xC1\x03\0\0\xC0\x03\0\0\x91\x03\0\0\x92\x03\0\0\x93\x03\0\0\x94\x03\0\0\x95\x03\0\0\x96\x03\0\0\x97\x03\0\0\x98\x03\0\0\x99\x03\0\0\x9A\x03\0\0\x9B\x03\0\0\x9C\x03\0\0\x9D\x03\0\0\x9E\x03\0\0\xC7\x03\0\0\xC8\x03\0\0\xC9\x03\0\0\x02\"\0\0\xB5\x03\0\0\xB8\x03\0\0\xBA\x03\0\0\xC6\x03\0\0\xC1\x03\0\0\xC0\x03\0\0\xDC\x03\0\0\xDD\x03\0\0\0\0\0\0\0\0\0\x000\0\0\x001\0\0\x002\0\0\x003\0\0\x004\0\0\x005\0\0\x006\0\0\x007\0\0\08\0\0\09\0\0\x000\0\0\x001\0\0\x002\0\0\x003\0\0\x004\0\0\x005\0\0\x006\0\0\x007\0\0\08\0\0\09\0\0\x000\0\0\x001\0\0\x002\0\0\x003\0\0\x000\x04\0\x001\x04\0\x002\x04\0\x003\x04\0\x004\x04\0\x005\x04\0\x006\x04\0\x007\x04\0\08\x04\0\0:\x04\0\0;\x04\0\0<\x04\0\0>\x04\0\0?\x04\0\0@\x04\0\0A\x04\0\0B\x04\0\0C\x04\0\0D\x04\0\0E\x04\0\0F\x04\0\0G\x04\0\0H\x04\0\0K\x04\0\0M\x04\0\0N\x04\0\0\x89\xA6\0\0\xD9\x04\0\0V\x04\0\0X\x04\0\0\xE9\x04\0\0\xAF\x04\0\0\xCF\x04\0\x000\x04\0\x001\x04\0\x002\x04\0\x003\x04\0\x004\x04\0\x005\x04\0\x006\x04\0\x007\x04\0\08\x04\0\0:\x04\0\0;\x04\0\0>\x04\0\0?\x04\0\0A\x04\0\0C\x04\0\0D\x04\0\0E\x04\0\0F\x04\0\0G\x04\0\0H\x04\0\0J\x04\0\0K\x04\0\0\x91\x04\0\0V\x04\0\0U\x04\0\0_\x04\0\0\xAB\x04\0\0Q\xA6\0\0\xB1\x04\0\0\0\0\0\0\0\0\0\0'\x06\0\0(\x06\0\0,\x06\0\0/\x06\0\0\0\0\0\0H\x06\0\x002\x06\0\0-\x06\0\x007\x06\0\0J\x06\0\0C\x06\0\0D\x06\0\0E\x06\0\0F\x06\0\x003\x06\0\09\x06\0\0A\x06\0\x005\x06\0\0B\x06\0\x001\x06\0\x004\x06\0\0*\x06\0\0+\x06\0\0.\x06\0\x000\x06\0\x006\x06\0\08\x06\0\0:\x06\0\0n\x06\0\0\xBA\x06\0\0\xA1\x06\0\0o\x06\0\0\0\0\0\0(\x06\0\0,\x06\0\0\0\0\0\0G\x06\0\0\0\0\0\0\0\0\0\0-\x06\0\0\0\0\0\0J\x06\0\0C\x06\0\0D\x06\0\0E\x06\0\0F\x06\0\x003\x06\0\09\x06\0\0A\x06\0\x005\x06\0\0B\x06\0\0\0\0\0\x004\x06\0\0*\x06\0\0+\x06\0\0.\x06\0\0\0\0\0\x006\x06\0\0\0\0\0\0:\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0-\x06\0\0\0\0\0\0J\x06\0\0\0\0\0\0D\x06\0\0\0\0\0\0F\x06\0\x003\x06\0\09\x06\0\0\0\0\0\x005\x06\0\0B\x06\0\0\0\0\0\x004\x06\0\0\0\0\0\0\0\0\0\0.\x06\0\0\0\0\0\x006\x06\0\0\0\0\0\0:\x06\0\0\0\0\0\0\xBA\x06\0\0\0\0\0\0o\x06\0\0\0\0\0\0(\x06\0\0,\x06\0\0\0\0\0\0G\x06\0\0\0\0\0\0\0\0\0\0-\x06\0\x007\x06\0\0J\x06\0\0C\x06\0\0\0\0\0\0E\x06\0\0F\x06\0\x003\x06\0\09\x06\0\0A\x06\0\x005\x06\0\0B\x06\0\0\0\0\0\x004\x06\0\0*\x06\0\0+\x06\0\0.\x06\0\0\0\0\0\x006\x06\0\08\x06\0\0:\x06\0\0n\x06\0\0\0\0\0\0\xA1\x06\0\0\0\0\0\0'\x06\0\0(\x06\0\0,\x06\0\0/\x06\0\0G\x06\0\0H\x06\0\x002\x06\0\0-\x06\0\x007\x06\0\0J\x06\0\0\0\0\0\0D\x06\0\0E\x06\0\0F\x06\0\x003\x06\0\09\x06\0\0A\x06\0\x005\x06\0\0B\x06\0\x001\x06\0\x004\x06\0\0*\x06\0\0+\x06\0\0.\x06\0\x000\x06\0\x006\x06\0\08\x06\0\0:\x06\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(\x06\0\0,\x06\0\0/\x06\0\0\0\0\0\0H\x06\0\x002\x06\0\0-\x06\0\x007\x06\0\0J\x06\0\0\0\0\0\0D\x06\0\0E\x06\0\0F\x06\0\x003\x06\0\09\x06\0\0\0\0L\x04\0\0J\x04\0\0H\x04\0\0F\x04\0\0D\x04\0\0B\x04\0\0@\x04\0\0>\x04\0\0<\x04\0\0:\x04\0\08\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x005$\0\x002$\0\0/$\0\0,$\0\0)$\0\0&$\0\0#$\0\0 $\0\0\x1D$\0\0\x1A$\0\0\x17$\0\0\x14$\0\0\x11$\0\0\x0E$\0\0\x0B$\0\0\x08$\0\0\x05$\0\0\x02$\0\0\xFF#\0\0\xFC#\0\0\xF9#\0\0\xF6#\0\0\xF3#\0\0\xF0#\0\0\xED#\0\0\xEA#\0\0\xE7#C\0\0\0R\0\0\0\0\0\xE5\x03\0\0\xE3\x03\0\0\0\0Q\0\0\0R\0\0\0S\0\0\0T\0\0\0U\0\0\0V\0\0\0W\0\0\0X\0\0\0Y\0\0\0Z\0\0\0\0\0\xE1\x03\0\0\xDF\x03\0\0\xDD\x03\0\0\xDB\x03\0\0\xD8#\0\0\xD6\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xD4\x03\0\0\xD2\x03\0\0\xD0\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xCE\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xCC\x03\0\0\xCA\x03\xB50\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Kb\0\0W[\0\0\xCCS\0\0\xC60\x990\x8CN\0\0\x1AY\0\0\xE3\x89\0\0)Y\0\0\xA4N\0\0 f\0\0!q\0\0\x99e\0\0MR\0\0\x8C_\0\0\x8DQ\0\0\xB0e\0\0\x1DR\0\0B}\0\0\x1Fu\0\0\xA9\x8C\0\0\xF0X\0\09T\0\0\x14o\0\0\x95b\0\0Uc\0\0\0N\0\0\tN\0\0J\x90\0\0\xE6]\0\0-N\0\0\xF3S\0\0\x07c\0\0p\x8D\0\0Sb\0\0\x81y\0\0zz\0\0\x08T\0\0\x80n\0\0\tg\0\0\x08g\0\x003u\0\0rR\0\0\xB6U\0\0M\x91\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xC7#\0\0\xC4#\0\0\xC1#\0\0\xBE#\0\0\xBB#\0\0\xB8#\0\0\xB5#\0\0\xB2#\0\0\xAF#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x97_\0\0\xEFS\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\0\0\x001\0\0\x002\0\0\x003\0\0\x004\0\0\x005\0\0\x006\0\0\x007\0\0\08\0\0\09\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0") + }, + 0u32, + ), + flags: 1u8, + passthrough_cap: 160u16, +} diff --git a/boa_icu_provider/data/min/normalizer/nfkdex_v1/mod.rs b/boa_icu_provider/data/min/normalizer/nfkdex_v1/mod.rs new file mode 100644 index 0000000000..6df9b59fbf --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/nfkdex_v1/mod.rs @@ -0,0 +1,6 @@ +// @generated +type DataStruct = < :: icu_normalizer :: provider :: CompatibilityDecompositionTablesV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; +pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { + locale.is_empty().then(|| &UND) +} +static UND: DataStruct = include!("und.rs.data"); diff --git a/boa_icu_provider/data/min/normalizer/nfkdex_v1/und.rs.data b/boa_icu_provider/data/min/normalizer/nfkdex_v1/und.rs.data new file mode 100644 index 0000000000..7bf838374d --- /dev/null +++ b/boa_icu_provider/data/min/normalizer/nfkdex_v1/und.rs.data @@ -0,0 +1,8 @@ +::icu_normalizer::provider::DecompositionTablesV1 { + scalars16: unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\x140We\x150\x140\xDDR\x150\x140\xD7v\x150\x140Sb\x150\x140\xB9p\x150\x140\x89[\x150\x140\x8CN\x150\x140\tN\x150\x140,g\x150\xB30\xB30{0K0D\0J\0M\0R\0M\0D\0M\0C\0W\0C\0P\0P\0V\0S\0S\0S\0D\0M\0V\0H\0V\0W\0Z\0C\0D\0\x140S\0\x150(\0Z\0)\0(\0Y\0)\0(\0X\0)\0(\0W\0)\0(\0V\0)\0(\0U\0)\0(\0T\0)\0(\0S\0)\0(\0R\0)\0(\0Q\0)\0(\0P\0)\0(\0O\0)\0(\0N\0)\0(\0M\0)\0(\0L\0)\0(\0K\0)\0(\0J\0)\0(\0I\0)\0(\0H\0)\0(\0G\0)\0(\0F\0)\0(\0E\0)\0(\0D\0)\0(\0C\0)\0(\0B\0)\0(\0A\0)\09\0,\08\0,\x007\0,\x006\0,\x005\0,\x004\0,\x003\0,\x002\0,\x001\0,\x000\0,\x000\0.\0D\x06'\x06D\x06'\x06U\x06D\x06'\x06T\x06D\x06'\x06S\x06.\0.\0.\0.\0.\x001\x06\xCC\x06'\x06D\x06,\x06D\x06 \0,\x06D\x06'\x06D\x06G\x065\x06D\x06I\x06H\x063\x06D\x06E\x069\x06D\x06J\x06G\x061\x063\x06H\x06D\x065\x06D\x069\x06E\x06E\x06-\x06E\x06/\x06'\x06C\x06(\x061\x06'\x06D\x06D\x06G\x06B\x06D\x06\xD2\x065\x06D\x06\xD2\x06F\x06,\x06J\x063\x06.\x06J\x065\x06E\x06E\x069\x06,\x06E\x06C\x06E\x06E\x06(\x06-\x06J\x06A\x06E\x06J\x06E\x06,\x06J\x06-\x06,\x06J\x06,\x06-\x06J\x06F\x06,\x06-\x06D\x06,\x06E\x06E\x06.\x06J\x06C\x06E\x06J\x069\x06E\x06J\x06D\x06-\x06E\x06B\x06E\x06-\x06F\x06-\x06J\x06B\x06E\x06J\x06E\x06E\x06J\x06J\x06E\x06J\x06J\x06,\x06J\x06J\x06-\x06J\x06D\x06E\x06J\x06D\x06,\x06J\x066\x06-\x06J\x064\x06-\x06J\x065\x06-\x06J\x063\x06.\x06I\x06,\x06E\x06I\x06,\x06-\x06I\x06,\x06E\x06J\x06*\x06E\x06I\x06*\x06E\x06J\x06*\x06.\x06I\x06*\x06.\x06J\x06*\x06,\x06I\x06*\x06,\x06J\x06(\x06.\x06J\x06F\x06E\x06I\x06F\x06E\x06J\x06F\x06,\x06I\x06F\x06,\x06E\x06F\x06-\x06I\x06F\x06-\x06E\x06G\x06E\x06E\x06G\x06E\x06,\x06E\x06,\x06.\x06E\x06.\x06E\x06E\x06.\x06,\x06E\x06,\x06-\x06E\x06-\x06J\x06E\x06-\x06,\x06D\x06E\x06-\x06D\x06.\x06E\x06D\x06,\x06,\x06D\x06-\x06I\x06D\x06-\x06J\x06B\x06E\x06E\x06A\x06.\x06E\x06:\x06E\x06I\x06:\x06E\x06J\x06:\x06E\x06E\x069\x06E\x06I\x067\x06E\x06J\x067\x06E\x06E\x067\x06E\x06-\x066\x06.\x06E\x066\x06-\x06I\x064\x06E\x06E\x064\x06E\x06.\x064\x06,\x06J\x064\x06-\x06E\x065\x06-\x06-\x063\x06E\x06E\x063\x06E\x06,\x063\x06E\x06-\x063\x06,\x06I\x063\x06,\x06-\x063\x06-\x06,\x06-\x06E\x06I\x06-\x06E\x06J\x06,\x06E\x06-\x06*\x06E\x06.\x06*\x06E\x06-\x06*\x06E\x06,\x06*\x06.\x06E\x06*\x06-\x06E\x06*\x06-\x06,\x06*\x06,\x06E\x068\x06E\x064\x06.\x064\x06G\x063\x06G\x066\x061\x065\x061\x063\x061\x064\x061\x066\x06J\x066\x06I\x065\x06J\x065\x06I\x064\x06J\x064\x06I\x063\x06J\x063\x06I\x06:\x06J\x06:\x06I\x069\x06J\x069\x06I\x067\x06J\x067\x06I\x06@\x06P\x06Q\x06@\x06O\x06Q\x06@\x06N\x06Q\x06F\x06G\x06C\x06D\x06+\x06G\x06+\x06E\x06*\x06G\x06(\x06G\x06(\x06E\x06J\x06T\x06G\x06J\x06T\x06E\x06J\x06.\x06G\x06,\x06F\x06.\x06C\x06.\x06C\x06-\x06C\x06,\x06B\x06-\x06A\x06-\x06A\x06,\x06:\x06,\x067\x06-\x066\x06E\x066\x06,\x065\x06.\x06(\x06,\x06J\x06T\x06.\x06J\x06T\x06-\x06J\x06T\x06,\x06J\x06I\x06J\x062\x06J\x061\x06F\x06J\x06F\x06I\x06F\x06F\x06F\x062\x06F\x061\x06E\x06'\x06C\x06J\x06C\x06I\x06C\x06'\x06B\x06J\x06B\x06I\x06A\x06J\x06A\x06I\x06+\x06J\x06+\x06I\x06+\x06F\x06+\x062\x06+\x061\x06*\x06J\x06*\x06I\x06*\x06F\x06*\x062\x06*\x061\x06(\x06J\x06(\x06I\x06(\x06F\x06(\x062\x06J\x06T\x06J\x06J\x06T\x06I\x06J\x06T\x06F\x06J\x06T\x062\x06J\x06T\x061\x06 \0Q\x06p\x06 \0P\x06Q\x06 \0O\x06Q\x06 \0N\x06Q\x06 \0M\x06Q\x06 \0L\x06Q\x06G\x06I\x06.\x06-\x06+\x06,\x06J\x06T\x06\xD0\x06J\x06T\x06\xC8\x06J\x06T\x06\xC6\x06J\x06T\x06\xC7\x06J\x06T\x06H\x06J\x06T\x06\xD5\x06J\x06T\x06'\x06\xC7\x06t\x06\xD0\x05\xDC\x05t\x05m\x05~\x05v\x05t\x05k\x05t\x05e\x05t\x05v\x05s\0t\0f\0f\0l\0f\0f\0i\0g\0a\0l\x003\x001\0\xE5e3\x000\0\xE5e2\09\0\xE5e2\08\0\xE5e2\x007\0\xE5e2\x006\0\xE5e2\x005\0\xE5e2\x004\0\xE5e2\x003\0\xE5e2\x002\0\xE5e2\x001\0\xE5e2\x000\0\xE5e1\09\0\xE5e1\08\0\xE5e1\x007\0\xE5e1\x006\0\xE5e1\x005\0\xE5e1\x004\0\xE5e1\x003\0\xE5e1\x002\0\xE5e1\x001\0\xE5e1\x000\0\xE5eA\0\x15\"m\0V\0\x15\"m\0W\0b\0S\0v\0s\0r\0P\0R\0P\0P\0M\0p\0.\0m\0.\0P\0H\0m\0o\0l\0m\0i\0l\0m\0b\0l\0x\0l\0o\0g\0l\0n\0k\0t\0K\0M\0K\0K\0i\0n\0H\0P\0h\0a\0G\0y\0d\0B\0C\0o\0.\0C\0\x15\"k\0g\0c\0d\0c\0c\0B\0q\0a\0.\0m\0.\0M\0\xA9\x03k\0\xA9\x03M\0W\0k\0W\0\xBC\x03W\0n\0W\0p\0W\0k\0V\0\xBC\x03V\0n\0V\0p\0V\0m\0s\0\xBC\x03s\0n\0s\0p\0s\0r\0a\0d\0\x15\"s\x002\0G\0P\0a\0M\0P\0a\0k\0P\0a\0m\0\x15\"s\x002\0k\0m\x003\0c\0m\x003\0m\0m\x003\0k\0m\x002\0c\0m\x002\0m\0m\x002\0\xBC\x03m\0n\0m\0f\0m\0k\0l\0d\0l\0m\0l\0\xBC\x03l\0T\0H\0z\0G\0H\0z\0M\0H\0z\0k\0H\0z\0m\0g\0\xBC\x03g\0\xBC\x03F\0n\0F\0p\0F\0k\0c\0a\0l\0G\0B\0M\0B\0K\0B\0k\0A\0m\0A\0\xBC\x03A\0n\0A\0p\0A\0*h\x0F_\x1AO>y\x0Ef\xBBl'Yck-f\x8CTs^\x10bI\0U\0d\0m\x003\0d\0m\x002\0p\0c\0o\0V\0b\0a\0r\0A\0U\0d\0a\0h\0P\0a\x002\x004\0\xB9p2\x003\0\xB9p2\x002\0\xB9p2\x001\0\xB9p2\x000\0\xB9p1\09\0\xB9p1\08\0\xB9p1\x007\0\xB9p1\x006\0\xB9p1\x005\0\xB9p1\x004\0\xB9p1\x003\0\xB9p1\x002\0\xB9p1\x001\0\xB9p1\x000\0\xB9p\xEF0\xC30\xC80\xEC0\xF30\xC80\xB10\x990\xF30\xEC0\xE00\xEB0\xFC0\xD50\x990\xEB0\xEB0\xD20\x9A0\xFC0\xEA0\xE90\xEA0\xC30\xC80\xEB0\xE60\xA20\xF30\xE40\xFC0\xEB0\xE40\xFC0\xC80\x990\xE10\xFC0\xC80\xEB0\xE10\xAB0\x990\xC80\xF30\xDF0\xEA0\xCF0\x990\xFC0\xEB0\xDF0\xAF0\xED0\xF30\xDE0\xF30\xB70\xE70\xF30\xDE0\xEB0\xAF0\xDE0\xC30\xCF0\xDE0\xA40\xEB0\xDE0\xA40\xAF0\xED0\xDB0\xFC0\xF30\xDB0\xFC0\xEB0\xDB0\x9A0\xF30\xC80\x990\xDB0\xF30\xDB0\x990\xEB0\xC80\xDB0\x9A0\xA40\xF30\xC80\xD80\x990\xFC0\xBF0\xD80\x9A0\xFC0\xB70\x990\xD80\x9A0\xF30\xB90\xD80\xEB0\xC40\xD80\x9A0\xCB0\xD20\xD80\x9A0\xBD0\xD80\xAF0\xBF0\xFC0\xEB0\xD50\xE90\xF30\xD50\x990\xC30\xB70\xA70\xEB0\xD50\xA30\xFC0\xC80\xD50\xA10\xE90\xC30\xC80\x990\xD20\x990\xEB0\xD20\x9A0\xB30\xD20\x9A0\xAF0\xEB0\xD20\x9A0\xA20\xB90\xC80\xEB0\xCF0\x990\xFC0\xEC0\xEB0\xCF0\x9A0\xFC0\xC40\xCF0\x9A0\xFC0\xBB0\xF30\xC80\xCF0\xA40\xC40\xCE0\xC30\xC80\xCA0\xCE0\xC80\x990\xEB0\xC60\x990\xB70\xBF0\x990\xFC0\xB90\xBB0\xF30\xC10\xB70\xEA0\xF30\xAF0\x990\xB50\xF30\xC10\xFC0\xE00\xB50\xA40\xAF0\xEB0\xB30\xFC0\xDB0\x9A0\xB30\xEB0\xCA0\xB10\xFC0\xB90\xAF0\xED0\xFC0\xCD0\xAF0\xEB0\xBB0\x990\xA40\xED0\xAF0\x990\xE90\xE00\xC80\xF30\xAD0\xED0\xEF0\xC30\xC80\xAD0\xED0\xE10\xFC0\xC80\xEB0\xAD0\xED0\xAF0\x990\xE90\xE00\xAD0\x990\xEB0\xBF0\x990\xFC0\xAD0\xE50\xEA0\xFC0\xAD0\x990\xCB0\xFC0\xAD0\x990\xAB0\x990\xAB0\x990\xF30\xDE0\xAB0\x990\xED0\xF30\xAB0\xED0\xEA0\xFC0\xAB0\xE90\xC30\xC80\xAB0\xA40\xEA0\xAA0\xFC0\xE00\xAA0\xF30\xB90\xA80\xFC0\xAB0\xFC0\xA80\xB90\xAF0\xFC0\xC80\x990\xA60\xA90\xF30\xA40\xF30\xC10\xA40\xCB0\xF30\xAF0\x990\xA20\xFC0\xEB0\xA20\xF30\xD80\x9A0\xA20\xA20\xEB0\xD50\xA10\xA20\xCF0\x9A0\xFC0\xC80\xE4N\x8CTL\0T\0D\0e\0V\0e\0r\0g\0H\0g\x001\x002\0\x08g1\x001\0\x08g1\x000\0\x08g9\0\x08g8\0\x08g7\0\x08g6\0\x08g5\0\x08g4\0\x08g3\0\x08g5\x000\x004\09\x004\08\x004\x007\x004\x006\x004\x005\x004\x004\x004\x003\x004\x002\x004\x001\x004\x000\x003\09\x003\08\x003\x007\x003\x006\0\x0B\x11n\x11\x0C\x11n\x11\x0B\x11t\x11\x0E\x11a\x11\xB7\x11\0\x11i\x11\x12\x11a\x11\x11\x11a\x11\x10\x11a\x11\x0F\x11a\x11\x0C\x11a\x11\x0B\x11a\x11\t\x11a\x11\x07\x11a\x11\x06\x11a\x11\x05\x11a\x11\x03\x11a\x11\x02\x11a\x11\0\x11a\x113\x005\x003\x003\x003\x002\0P\0T\0E\0(\0\xF3\x81)\0(\0\xEA\x81)\0(\0\x11O)\0(\0my)\0(\0TS)\0(\0\xC7\x8C)\0(\0\x01O)\0(\0\xE3v)\0(\0f[)\0(\0|T)\0(\0\xE3N)\0(\0\xB4R)\0(\0]y)\0(\0\xA1\x8C)\0(\0yr)\0(\0\rT)\0(\0>y)\0(\0\tg)\0(\0*h)\0(\0\xE5e)\0(\0\x1FW)\0(\0\xD1\x91)\0(\0(g)\0(\x004l)\0(\0kp)\0(\0\x08g)\0(\0AS)\0(\0]N)\0(\0kQ)\0(\0\x03N)\0(\0mQ)\0(\0\x94N)\0(\0\xDBV)\0(\0\tN)\0(\0\x8CN)\0(\0\0N)\0(\0\x0B\x11i\x11\x12\x11n\x11)\0(\0\x0B\x11i\x11\x0C\x11e\x11\xAB\x11)\0(\0\x0C\x11n\x11)\0(\0\x12\x11a\x11)\0(\0\x11\x11a\x11)\0(\0\x10\x11a\x11)\0(\0\x0F\x11a\x11)\0(\0\x0E\x11a\x11)\0(\0\x0C\x11a\x11)\0(\0\x0B\x11a\x11)\0(\0\t\x11a\x11)\0(\0\x07\x11a\x11)\0(\0\x06\x11a\x11)\0(\0\x05\x11a\x11)\0(\0\x03\x11a\x11)\0(\0\x02\x11a\x11)\0(\0\0\x11a\x11)\0(\0\x12\x11)\0(\0\x11\x11)\0(\0\x10\x11)\0(\0\x0F\x11)\0(\0\x0E\x11)\0(\0\x0C\x11)\0(\0\x0B\x11)\0(\0\t\x11)\0(\0\x07\x11)\0(\0\x06\x11)\0(\0\x05\x11)\0(\0\x03\x11)\0(\0\x02\x11)\0(\0\0\x11)\0\xB30\xC80\x880\x8A0=\0=\0=\0:\0:\0=\0+\"+\"+\"+\"(\0z\0)\0(\0y\0)\0(\0x\0)\0(\0w\0)\0(\0v\0)\0(\0u\0)\0(\0t\0)\0(\0s\0)\0(\0r\0)\0(\0q\0)\0(\0p\0)\0(\0o\0)\0(\0n\0)\0(\0m\0)\0(\0l\0)\0(\0k\0)\0(\0j\0)\0(\0i\0)\0(\0h\0)\0(\0g\0)\0(\0f\0)\0(\0e\0)\0(\0d\0)\0(\0c\0)\0(\0b\0)\0(\0a\0)\x002\x000\0.\x001\09\0.\x001\08\0.\x001\x007\0.\x001\x006\0.\x001\x005\0.\x001\x004\0.\x001\x003\0.\x001\x002\0.\x001\x001\0.\x001\x000\0.\0(\x002\x000\0)\0(\x001\09\0)\0(\x001\08\0)\0(\x001\x007\0)\0(\x001\x006\0)\0(\x001\x005\0)\0(\x001\x004\0)\0(\x001\x003\0)\0(\x001\x002\0)\0(\x001\x001\0)\0(\x001\x000\0)\0(\09\0)\0(\08\0)\0(\x007\0)\0(\x006\0)\0(\x005\0)\0(\x004\0)\0(\x003\0)\0(\x002\0)\0(\x001\0)\0.\".\".\"0\0D 3\0x\0i\0i\0i\0x\0v\0i\0i\0i\0i\0v\0X\0I\0I\0I\0X\0V\0I\0I\0I\0I\0V\x001\0D 7\0D 8\x005\0D 8\x003\0D 8\x001\0D 8\x005\0D 6\x001\0D 6\x004\0D 5\x003\0D 5\x002\0D 5\x001\0D 5\x002\0D 3\x001\0D 3\x001\0D 1\x000\x001\0D 9\0F\0A\0X\0T\0M\0T\0E\0L\0S\0M\0N\0o\0\xB0\0F\0c\0/\0u\0c\0/\0o\0\xB0\0C\0a\0/\0s\0a\0/\0c\0R\0s\x002 2 2 2 !\0?\0?\0!\0!\0!\x005 5 5 \0\x08\x03\x01\x03 \0\x08\x03\0\x03 \0\x14\x03B\x03 \0\x14\x03\x01\x03 \0\x14\x03\0\x03 \0\x13\x03B\x03 \0\x13\x03\x01\x03 \0\x13\x03\0\x03 \0\x08\x03B\x03a\0\xBE\x02\xB3\x0Fq\x0F\x80\x0F\xB2\x0Fq\x0F\x80\x0F\xAB\x0E\xA1\x0E\xAB\x0E\x99\x0E\xCD\x0E\xB2\x0EM\x0E2\x0EJ\x06t\x06H\x06t\x06'\x06t\x06e\x05\x82\x05d\0z\0D\0z\0D\0Z\0n\0j\0N\0j\0N\0J\0l\0j\0L\0j\0L\0J\0d\0z\0\x0C\x03D\0z\0\x0C\x03D\0Z\0\x0C\x03\xBC\x02n\0l\0\xB7\0L\0\xB7\0i\0j\0I\0J\x003\0D 4\x001\0D 2\x001\0D 4\0d\0j\0m\0r\0m\0d\0m\0c\0w\0c\0p\0p\0v\0s\0s\0s\0d\0m\0v\0h\0v\0w\0z\0\x140s\0\x150a\0\x15\"m\0v\0\x15\"m\0w\0b\0s\0v\0p\0r\0p\0p\0m\0p\0h\0k\0k\0h\0p\0g\0y\0d\0b\0c\0\x15\"k\0g\0b\0q\0m\0\xC9\x03k\0\xC9\x03k\0w\0\xBC\x03w\0n\0w\0p\0w\0k\0v\0\xBC\x03v\0n\0v\0g\0p\0a\0m\0p\0a\0k\0p\0a\0t\0h\0z\0g\0h\0z\0m\0h\0z\0k\0h\0z\0\xBC\x03f\0n\0f\0p\0f\0k\0b\0k\0a\0m\0a\0\xBC\x03a\0n\0a\0i\0u\0o\0v\0a\0u\0h\0p\0a\0l\0t\0d\0e\0v\0h\0g\0p\0t\0e\0f\0a\0x\0t\0m\0t\0e\0l\0s\0m\0n\0o\0\xB0\0f\0\xB0\0c\0r\0s\0\xC9\x03\xB9\x03\xC9\x03B\x03\xB9\x03\xC9\x03\x01\x03\xB9\x03\xC9\x03\0\x03\xB9\x03\xB7\x03\xB9\x03\xB7\x03B\x03\xB9\x03\xB7\x03\x01\x03\xB9\x03\xB7\x03\0\x03\xB9\x03\xB1\x03\xB9\x03\xB1\x03B\x03\xB9\x03\xB1\x03\x01\x03\xB9\x03\xB1\x03\0\x03\xB9\x03\xC9\x03\x14\x03B\x03\xB9\x03\xC9\x03\x13\x03B\x03\xB9\x03\xC9\x03\x14\x03\x01\x03\xB9\x03\xC9\x03\x13\x03\x01\x03\xB9\x03\xC9\x03\x14\x03\0\x03\xB9\x03\xC9\x03\x13\x03\0\x03\xB9\x03\xC9\x03\x14\x03\xB9\x03\xC9\x03\x13\x03\xB9\x03\xB7\x03\x14\x03B\x03\xB9\x03\xB7\x03\x13\x03B\x03\xB9\x03\xB7\x03\x14\x03\x01\x03\xB9\x03\xB7\x03\x13\x03\x01\x03\xB9\x03\xB7\x03\x14\x03\0\x03\xB9\x03\xB7\x03\x13\x03\0\x03\xB9\x03\xB7\x03\x14\x03\xB9\x03\xB7\x03\x13\x03\xB9\x03\xB1\x03\x14\x03B\x03\xB9\x03\xB1\x03\x13\x03B\x03\xB9\x03\xB1\x03\x14\x03\x01\x03\xB9\x03\xB1\x03\x13\x03\x01\x03\xB9\x03\xB1\x03\x14\x03\0\x03\xB9\x03\xB1\x03\x13\x03\0\x03\xB9\x03\xB1\x03\x14\x03\xB9\x03\xB1\x03\x13\x03\xB9\x03 \0\xB9\x03") + }, + scalars24: unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\x1E\xDF\x01\n\xDF\x01\x08\xDF\x01\x06\xDF\x01\x05\xDF\x01\x04\xDF\x01C\xE9\x01B\xE9\x01A\xE9\x01@\xE9\x01?\xE9\x01>\xE9\x01=\xE9\x01<\xE9\x01;\xE9\x01:\xE9\x019\xE9\x018\xE9\x017\xE9\x016\xE9\x015\xE9\x014\xE9\x013\xE9\x012\xE9\x011\xE9\x010\xE9\x01/\xE9\x01.\xE9\x01-\xE9\x01,\xE9\x01+\xE9\x01*\xE9\x01)\xE9\x01(\xE9\x01'\xE9\x01&\xE9\x01%\xE9\x01$\xE9\x01#\xE9\x01\"\xE9\x01\x7Fn\x01~n\x01}n\x01|n\x01{n\x01zn\x01yn\x01xn\x01wn\x01vn\x01un\x01tn\x01sn\x01rn\x01qn\x01pn\x01on\x01nn\x01mn\x01ln\x01kn\x01jn\x01in\x01hn\x01gn\x01fn\x01en\x01dn\x01cn\x01bn\x01an\x01`n\x01\xDF\x18\x01\xDE\x18\x01\xDD\x18\x01\xDC\x18\x01\xDB\x18\x01\xDA\x18\x01\xD9\x18\x01\xD8\x18\x01\xD7\x18\x01\xD6\x18\x01\xD5\x18\x01\xD4\x18\x01\xD3\x18\x01\xD2\x18\x01\xD1\x18\x01\xD0\x18\x01\xCF\x18\x01\xCE\x18\x01\xCD\x18\x01\xCC\x18\x01\xCB\x18\x01\xCA\x18\x01\xC9\x18\x01\xC8\x18\x01\xC7\x18\x01\xC6\x18\x01\xC5\x18\x01\xC4\x18\x01\xC3\x18\x01\xC2\x18\x01\xC1\x18\x01\xC0\x18\x01\xF2\x0C\x01\xF1\x0C\x01\xF0\x0C\x01\xEF\x0C\x01\xEE\x0C\x01\xED\x0C\x01\xEC\x0C\x01\xEB\x0C\x01\xEA\x0C\x01\xE9\x0C\x01\xE8\x0C\x01\xE7\x0C\x01\xE6\x0C\x01\xE5\x0C\x01\xE4\x0C\x01\xE3\x0C\x01\xE2\x0C\x01\xE1\x0C\x01\xE0\x0C\x01\xDF\x0C\x01\xDE\x0C\x01\xDD\x0C\x01\xDC\x0C\x01\xDB\x0C\x01\xDA\x0C\x01\xD9\x0C\x01\xD8\x0C\x01\xD7\x0C\x01\xD6\x0C\x01\xD5\x0C\x01\xD4\x0C\x01\xD3\x0C\x01\xD2\x0C\x01\xD1\x0C\x01\xD0\x0C\x01\xCF\x0C\x01\xCE\x0C\x01\xCD\x0C\x01\xCC\x0C\x01\xCB\x0C\x01\xCA\x0C\x01\xC9\x0C\x01\xC8\x0C\x01\xC7\x0C\x01\xC6\x0C\x01\xC5\x0C\x01\xC4\x0C\x01\xC3\x0C\x01\xC2\x0C\x01\xC1\x0C\x01\xC0\x0C\x01\xBC\x05\x01\xBB\x05\x01\xB9\x05\x01\xB8\x05\x01\xB7\x05\x01\xB6\x05\x01\xB5\x05\x01\xB4\x05\x01\xB3\x05\x01\xB1\x05\x01\xB0\x05\x01\xAF\x05\x01\xAE\x05\x01\xAD\x05\x01\xAC\x05\x01\xAB\x05\x01\xAA\x05\x01\xA9\x05\x01\xA8\x05\x01\xA7\x05\x01\xA6\x05\x01\xA5\x05\x01\xA4\x05\x01\xA3\x05\x01\xA1\x05\x01\xA0\x05\x01\x9F\x05\x01\x9E\x05\x01\x9D\x05\x01\x9C\x05\x01\x9B\x05\x01\x9A\x05\x01\x99\x05\x01\x98\x05\x01\x97\x05\x01\xFB\x04\x01\xFA\x04\x01\xF9\x04\x01\xF8\x04\x01\xF7\x04\x01\xF6\x04\x01\xF5\x04\x01\xF4\x04\x01\xF3\x04\x01\xF2\x04\x01\xF1\x04\x01\xF0\x04\x01\xEF\x04\x01\xEE\x04\x01\xED\x04\x01\xEC\x04\x01\xEB\x04\x01\xEA\x04\x01\xE9\x04\x01\xE8\x04\x01\xE7\x04\x01\xE6\x04\x01\xE5\x04\x01\xE4\x04\x01\xE3\x04\x01\xE2\x04\x01\xE1\x04\x01\xE0\x04\x01\xDF\x04\x01\xDE\x04\x01\xDD\x04\x01\xDC\x04\x01\xDB\x04\x01\xDA\x04\x01\xD9\x04\x01\xD8\x04\x01O\x04\x01N\x04\x01M\x04\x01L\x04\x01K\x04\x01J\x04\x01I\x04\x01H\x04\x01G\x04\x01F\x04\x01E\x04\x01D\x04\x01C\x04\x01B\x04\x01A\x04\x01@\x04\x01?\x04\x01>\x04\x01=\x04\x01<\x04\x01;\x04\x01:\x04\x019\x04\x018\x04\x017\x04\x016\x04\x015\x04\x014\x04\x013\x04\x012\x04\x011\x04\x010\x04\x01/\x04\x01.\x04\x01-\x04\x01,\x04\x01+\x04\x01*\x04\x01)\x04\x01(\x04\x01") + }, +} diff --git a/boa_icu_provider/src/bin/datagen.rs b/boa_icu_provider/src/bin/datagen.rs index 61651fa2d8..d6d8bdb3f1 100644 --- a/boa_icu_provider/src/bin/datagen.rs +++ b/boa_icu_provider/src/bin/datagen.rs @@ -6,7 +6,19 @@ use std::{error::Error, fs::File}; use boa_icu_provider::data_root; -use icu_datagen::{all_keys_with_experimental, datagen, CldrLocaleSubset, Out, SourceData}; +use icu_datagen::{ + all_keys_with_experimental, datagen, BakedOptions, CldrLocaleSubset, Out, SourceData, +}; +use icu_normalizer::provider::{ + CanonicalCompositionsV1Marker, CanonicalDecompositionDataV1Marker, + CanonicalDecompositionTablesV1Marker, CompatibilityDecompositionSupplementV1Marker, + CompatibilityDecompositionTablesV1Marker, +}; +use icu_provider::KeyedDataMarker; +use icu_provider_adapters::fallback::provider::{ + CollationFallbackSupplementV1Marker, LocaleFallbackLikelySubtagsV1Marker, + LocaleFallbackParentsV1Marker, +}; fn main() -> Result<(), Box> { simple_logger::SimpleLogger::new() @@ -19,15 +31,43 @@ fn main() -> Result<(), Box> { .with_icuexport_for_tag(SourceData::LATEST_TESTED_ICUEXPORT_TAG)? .with_collations(vec![String::from("search*")]); - let blob_out = Out::Blob(Box::new(File::create( + let full_blob_out = Out::Blob(Box::new(File::create( data_root().join("icudata.postcard"), )?)); + let normalization_out = Out::Baked { + mod_directory: data_root().join("min"), + options: { + let mut opt = BakedOptions::default(); + opt.use_separate_crates = true; + opt.overwrite = true; + opt.pretty = true; + opt + }, + }; + + datagen( + None, + &[ + CanonicalDecompositionDataV1Marker::KEY, + CanonicalDecompositionTablesV1Marker::KEY, + CanonicalCompositionsV1Marker::KEY, + CompatibilityDecompositionSupplementV1Marker::KEY, + CompatibilityDecompositionTablesV1Marker::KEY, + LocaleFallbackLikelySubtagsV1Marker::KEY, + LocaleFallbackParentsV1Marker::KEY, + CollationFallbackSupplementV1Marker::KEY, + ], + &source_data, + [normalization_out].into(), + )?; + datagen( None, &all_keys_with_experimental(), &source_data, - [blob_out].into(), - ) - .map_err(Into::into) + [full_blob_out].into(), + )?; + + Ok(()) } diff --git a/boa_icu_provider/src/lib.rs b/boa_icu_provider/src/lib.rs index aec94daaa1..6bd11db554 100644 --- a/boa_icu_provider/src/lib.rs +++ b/boa_icu_provider/src/lib.rs @@ -41,7 +41,6 @@ single_use_lifetimes, trivial_casts, trivial_numeric_casts, - unreachable_pub, unsafe_op_in_unsafe_fn, unused_import_braces, unused_lifetimes, @@ -68,6 +67,7 @@ clippy::pedantic, clippy::nursery, )] +#![allow(elided_lifetimes_in_paths)] #![cfg_attr(not(feature = "bin"), no_std)] /// Gets the path to the directory where the generated data is stored. @@ -78,14 +78,25 @@ pub fn data_root() -> std::path::PathBuf { std::path::PathBuf::from(std::env!("CARGO_MANIFEST_DIR")).join("data") } -use icu_provider::BufferProvider; -use icu_provider_adapters::fallback::LocaleFallbackProvider; -use icu_provider_blob::BlobDataProvider; -use once_cell::sync::Lazy; +/// Gets a minimal data provider that is used when the `intl` feature of `boa_engine` is +/// disabled. +// Could use `LocaleFallbackProvider` in the future, which would disallow the `const`. +#[must_use] +#[allow(clippy::missing_const_for_fn)] +pub fn minimal() -> MinimalDataProvider { + MinimalDataProvider +} -/// Gets a data provider that is stored as a [`BufferProvider`] +/// Gets the default data provider stored as a [`BufferProvider`]. +/// +/// [`BufferProvider`]: icu_provider::BufferProvider +#[cfg(feature = "full")] #[must_use] -pub fn buffer() -> &'static impl BufferProvider { +pub fn buffer() -> &'static impl icu_provider::BufferProvider { + use icu_provider_adapters::fallback::LocaleFallbackProvider; + use icu_provider_blob::BlobDataProvider; + use once_cell::sync::Lazy; + static PROVIDER: Lazy> = Lazy::new(|| { let blob = BlobDataProvider::try_new_from_static_blob(include_bytes!(concat!( env!("CARGO_MANIFEST_DIR"), @@ -98,3 +109,20 @@ pub fn buffer() -> &'static impl BufferProvider { &*PROVIDER } + +#[doc(hidden)] +#[non_exhaustive] +#[derive(Clone, Copy, Debug)] +pub struct MinimalDataProvider; + +#[allow( + unreachable_pub, + clippy::unreadable_literal, + clippy::unnecessary_lazy_evaluations, + clippy::module_name_repetitions, + rustdoc::private_doc_tests +)] +mod baked { + include!("../data/min/mod.rs"); + impl_data_provider!(super::MinimalDataProvider); +}