From e70e144711ddd1db7dfde814a82c8be1a8613991 Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Fri, 12 Jan 2024 11:00:15 +0530 Subject: [PATCH 01/73] fix for #573 corrected error message in case of deployment mismatch data directory creation should not happen in case of deployment mismatch staging should be overwritten in case of new staging --- server/src/main.rs | 1 + server/src/option.rs | 5 ++--- server/src/storage/localfs.rs | 7 +++---- server/src/storage/store_metadata.rs | 17 ++++------------- 4 files changed, 10 insertions(+), 20 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index de98cff83..78c81c579 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -58,6 +58,7 @@ async fn main() -> anyhow::Result<()> { CONFIG.validate_staging()?; migration::run_metadata_migration(&CONFIG).await?; let metadata = storage::resolve_parseable_metadata().await?; + banner::print(&CONFIG, &metadata).await; rbac::map::init(&metadata); metadata.set_global(); diff --git a/server/src/option.rs b/server/src/option.rs index 1104f9674..a539e2268 100644 --- a/server/src/option.rs +++ b/server/src/option.rs @@ -43,7 +43,6 @@ pub struct Config { impl Config { fn new() -> Self { let cli = parseable_cli_command().get_matches(); - match cli.subcommand() { Some(("local-store", m)) => { let server = match Server::from_arg_matches(m) { @@ -51,7 +50,7 @@ impl Config { Err(err) => err.exit(), }; let storage = match FSConfig::from_arg_matches(m) { - Ok(server) => server, + Ok(storage) => storage, Err(err) => err.exit(), }; @@ -85,7 +84,7 @@ impl Config { Err(err) => err.exit(), }; let storage = match S3Config::from_arg_matches(m) { - Ok(server) => server, + Ok(storage) => storage, Err(err) => err.exit(), }; diff --git a/server/src/storage/localfs.rs b/server/src/storage/localfs.rs index e1dc31ee5..f6a5d188e 100644 --- a/server/src/storage/localfs.rs +++ b/server/src/storage/localfs.rs @@ -32,7 +32,7 @@ use tokio::fs::{self, DirEntry}; use tokio_stream::wrappers::ReadDirStream; use crate::metrics::storage::{localfs::REQUEST_RESPONSE_TIME, StorageMetrics}; -use crate::{option::validation, utils::validate_path_is_writeable}; +use crate::utils::validate_path_is_writeable; use super::{object_storage, LogStream, ObjectStorage, ObjectStorageError, ObjectStorageProvider}; @@ -49,8 +49,7 @@ pub struct FSConfig { #[arg( env = "P_FS_DIR", value_name = "filesystem path", - default_value = "./data", - value_parser = validation::canonicalize_path + default_value = "./data" )] pub root: PathBuf, } @@ -187,7 +186,7 @@ impl ObjectStorage for LocalFS { }; let to_path = self.root.join(key); if let Some(path) = to_path.parent() { - fs::create_dir_all(path).await? + fs::create_dir_all(path).await?; } let _ = fs_extra::file::copy(path, to_path, &op)?; Ok(()) diff --git a/server/src/storage/store_metadata.rs b/server/src/storage/store_metadata.rs index b0ef21d6d..1b44b9c2f 100644 --- a/server/src/storage/store_metadata.rs +++ b/server/src/storage/store_metadata.rs @@ -100,13 +100,7 @@ pub async fn resolve_parseable_metadata() -> Result { - if staging.deployment_id == remote.deployment_id { - EnvChange::None(remote) - } else { - EnvChange::DeploymentMismatch - } - } + (Some(_staging), Some(remote)) => EnvChange::None(remote), (None, Some(remote)) => EnvChange::NewStaging(remote), (Some(_), None) => EnvChange::NewRemote, (None, None) => EnvChange::CreateBoth, @@ -116,16 +110,14 @@ pub async fn resolve_parseable_metadata() -> Result { // overwrite staging anyways so that it matches remote in case of any divergence overwrite_staging = true; Ok(metadata) - } - EnvChange::DeploymentMismatch => Err(MISMATCH), + }, EnvChange::NewRemote => { - Err("Could not start the server because metadata not found in storage") + Err("Could not start the server because staging directory indicates stale data from previous deployment, please choose an empty staging directory and restart the server") } EnvChange::NewStaging(mut metadata) => { create_dir_all(CONFIG.staging_dir())?; @@ -171,9 +163,8 @@ pub async fn resolve_parseable_metadata() -> Result Date: Fri, 12 Jan 2024 20:11:35 +0530 Subject: [PATCH 02/73] fix for #573 corrected error message in case of deployment mismatch data directory creation should not happen in case of deployment mismatch staging should be overwritten in case of new staging default staging and data directory should not be created if env var has different path --- Cargo.lock | 7 +++++++ server/Cargo.toml | 1 + server/src/main.rs | 3 +-- server/src/option.rs | 31 ++++++++++++++++++---------- server/src/storage/localfs.rs | 5 +++-- server/src/storage/store_metadata.rs | 4 ++-- 6 files changed, 34 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 59c342deb..e293a0663 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2711,6 +2711,7 @@ dependencies = [ "once_cell", "openid", "parquet", + "path-clean", "prometheus", "rand", "regex", @@ -2760,6 +2761,12 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" +[[package]] +name = "path-clean" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef" + [[package]] name = "path-matchers" version = "1.0.2" diff --git a/server/Cargo.toml b/server/Cargo.toml index 9c151e6d1..57afe65c5 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -102,6 +102,7 @@ url = "2.4.0" http-auth-basic = "0.3.3" serde_repr = "0.1.17" hashlru = { version = "0.11.0", features = ["serde"] } +path-clean = "1.0.1" [build-dependencies] cargo_toml = "0.15" diff --git a/server/src/main.rs b/server/src/main.rs index 78c81c579..954ed6ddd 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -55,10 +55,9 @@ use crate::localcache::LocalCacheManager; async fn main() -> anyhow::Result<()> { env_logger::init(); let storage = CONFIG.storage().get_object_store(); - CONFIG.validate_staging()?; migration::run_metadata_migration(&CONFIG).await?; let metadata = storage::resolve_parseable_metadata().await?; - + CONFIG.validate_staging()?; banner::print(&CONFIG, &metadata).await; rbac::map::init(&metadata); metadata.set_global(); diff --git a/server/src/option.rs b/server/src/option.rs index a539e2268..65b5bd6a1 100644 --- a/server/src/option.rs +++ b/server/src/option.rs @@ -21,7 +21,8 @@ use clap::{command, value_parser, Arg, ArgGroup, Args, Command, FromArgMatches}; use once_cell::sync::Lazy; use parquet::basic::{BrotliLevel, GzipLevel, ZstdLevel}; -use std::path::{Path, PathBuf}; +use std::path::PathBuf; +use std::env; use std::sync::Arc; use url::Url; @@ -107,7 +108,7 @@ impl Config { self.storage.clone() } - pub fn staging_dir(&self) -> &Path { + pub fn staging_dir(&self) -> &PathBuf { &self.parseable.local_staging_path } @@ -610,12 +611,14 @@ impl From for parquet::basic::Compression { pub mod validation { use std::{ - fs::{canonicalize, create_dir_all}, net::ToSocketAddrs, - path::PathBuf, + path::{PathBuf, Path}, str::FromStr, + env,io }; + use path_clean::PathClean; + use crate::option::MIN_CACHE_SIZE_BYTES; use crate::storage::LOCAL_SYNC_INTERVAL; use human_size::{multiples, SpecificSize}; @@ -633,16 +636,22 @@ pub mod validation { Ok(path) } + pub fn absolute_path(path: impl AsRef) -> io::Result { + let path = path.as_ref(); + + let absolute_path = if path.is_absolute() { + path.to_path_buf() + } else { + env::current_dir()?.join(path) + }.clean(); + + Ok(absolute_path) + } pub fn canonicalize_path(s: &str) -> Result { let path = PathBuf::from(s); - - create_dir_all(&path) - .map_err(|err| err.to_string()) - .and_then(|_| { - canonicalize(&path) - .map_err(|_| "Cannot use the path provided as an absolute path".to_string()) - }) + let absolute_path = absolute_path(&path); + Ok(absolute_path.unwrap()) } pub fn socket_addr(s: &str) -> Result { diff --git a/server/src/storage/localfs.rs b/server/src/storage/localfs.rs index f6a5d188e..df88499a9 100644 --- a/server/src/storage/localfs.rs +++ b/server/src/storage/localfs.rs @@ -32,7 +32,7 @@ use tokio::fs::{self, DirEntry}; use tokio_stream::wrappers::ReadDirStream; use crate::metrics::storage::{localfs::REQUEST_RESPONSE_TIME, StorageMetrics}; -use crate::utils::validate_path_is_writeable; +use crate::{option::validation, utils::validate_path_is_writeable}; use super::{object_storage, LogStream, ObjectStorage, ObjectStorageError, ObjectStorageProvider}; @@ -49,7 +49,8 @@ pub struct FSConfig { #[arg( env = "P_FS_DIR", value_name = "filesystem path", - default_value = "./data" + default_value = "./data", + value_parser = validation::canonicalize_path )] pub root: PathBuf, } diff --git a/server/src/storage/store_metadata.rs b/server/src/storage/store_metadata.rs index 1b44b9c2f..ae0f1c3d8 100644 --- a/server/src/storage/store_metadata.rs +++ b/server/src/storage/store_metadata.rs @@ -66,7 +66,7 @@ impl StorageMetadata { Self { version: "v3".to_string(), mode: CONFIG.storage_name.to_owned(), - staging: CONFIG.staging_dir().canonicalize().unwrap(), + staging: CONFIG.staging_dir().to_path_buf(), storage: CONFIG.storage().get_endpoint(), deployment_id: uid::gen(), users: Vec::new(), @@ -130,7 +130,7 @@ pub async fn resolve_parseable_metadata() -> Result { create_dir_all(CONFIG.staging_dir())?; - let metadata = StorageMetadata::new(); + let metadata = StorageMetadata::new(); // new metadata needs to be set on both staging and remote overwrite_remote = true; overwrite_staging = true; From f8780ee614c1de26815e4ea89ef6bf5cb9820c97 Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Fri, 12 Jan 2024 20:16:54 +0530 Subject: [PATCH 03/73] cargo fmt and clippy fix --- server/src/option.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/server/src/option.rs b/server/src/option.rs index 65b5bd6a1..8b3983170 100644 --- a/server/src/option.rs +++ b/server/src/option.rs @@ -21,8 +21,8 @@ use clap::{command, value_parser, Arg, ArgGroup, Args, Command, FromArgMatches}; use once_cell::sync::Lazy; use parquet::basic::{BrotliLevel, GzipLevel, ZstdLevel}; -use std::path::PathBuf; use std::env; +use std::path::PathBuf; use std::sync::Arc; use url::Url; @@ -611,10 +611,10 @@ impl From for parquet::basic::Compression { pub mod validation { use std::{ + env, io, net::ToSocketAddrs, - path::{PathBuf, Path}, + path::{Path, PathBuf}, str::FromStr, - env,io }; use path_clean::PathClean; @@ -638,20 +638,20 @@ pub mod validation { } pub fn absolute_path(path: impl AsRef) -> io::Result { let path = path.as_ref(); - + let absolute_path = if path.is_absolute() { path.to_path_buf() } else { env::current_dir()?.join(path) - }.clean(); - + } + .clean(); + Ok(absolute_path) } pub fn canonicalize_path(s: &str) -> Result { let path = PathBuf::from(s); - let absolute_path = absolute_path(&path); - Ok(absolute_path.unwrap()) + Ok(absolute_path(path).unwrap()) } pub fn socket_addr(s: &str) -> Result { From 6b2146247f20e0a723f9a882fbb80211c1440454 Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Mon, 15 Jan 2024 18:27:06 +0530 Subject: [PATCH 04/73] changed logic to throw exception in case of deployment mismatch between staging and remote --- server/src/storage/store_metadata.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/server/src/storage/store_metadata.rs b/server/src/storage/store_metadata.rs index ae0f1c3d8..0e9ad955f 100644 --- a/server/src/storage/store_metadata.rs +++ b/server/src/storage/store_metadata.rs @@ -100,7 +100,13 @@ pub async fn resolve_parseable_metadata() -> Result EnvChange::None(remote), + (Some(staging), Some(remote)) => { + if staging.deployment_id == remote.deployment_id { + EnvChange::None(remote) + } else { + EnvChange::NewRemote + } + } (None, Some(remote)) => EnvChange::NewStaging(remote), (Some(_), None) => EnvChange::NewRemote, (None, None) => EnvChange::CreateBoth, @@ -130,7 +136,7 @@ pub async fn resolve_parseable_metadata() -> Result { create_dir_all(CONFIG.staging_dir())?; - let metadata = StorageMetadata::new(); + let metadata = StorageMetadata::new(); // new metadata needs to be set on both staging and remote overwrite_remote = true; overwrite_staging = true; From e575a41ae10811ce117b888318570ab637663c48 Mon Sep 17 00:00:00 2001 From: Eshan <60269431+Eshanatnight@users.noreply.github.com> Date: Thu, 18 Jan 2024 15:23:04 +0530 Subject: [PATCH 05/73] temp: allow configurable buffer size while ingestion (#624) Co-authored-by: Nitish Tiwari --- server/src/event/writer.rs | 2 +- server/src/event/writer/mem_writer.rs | 20 +++++++++++--------- server/src/option.rs | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/server/src/event/writer.rs b/server/src/event/writer.rs index 2d1b46d4e..df7c00983 100644 --- a/server/src/event/writer.rs +++ b/server/src/event/writer.rs @@ -38,7 +38,7 @@ pub static STREAM_WRITERS: Lazy = Lazy::new(WriterTable::default); #[derive(Default)] pub struct Writer { - pub mem: MemWriter<16384>, + pub mem: MemWriter, pub disk: FileWriter, } diff --git a/server/src/event/writer/mem_writer.rs b/server/src/event/writer/mem_writer.rs index 1f5ce4532..ba69177cb 100644 --- a/server/src/event/writer/mem_writer.rs +++ b/server/src/event/writer/mem_writer.rs @@ -23,22 +23,22 @@ use arrow_schema::Schema; use arrow_select::concat::concat_batches; use itertools::Itertools; -use crate::utils::arrow::adapt_batch; +use crate::{option::CONFIG, utils::arrow::adapt_batch}; /// Structure to keep recordbatches in memory. /// /// Any new schema is updated in the schema map. /// Recordbatches are pushed to mutable buffer first and then concated together and pushed to read buffer #[derive(Debug)] -pub struct MemWriter { +pub struct MemWriter { schema: Schema, // for checking uniqueness of schema schema_map: HashSet, read_buffer: Vec, - mutable_buffer: MutableBuffer, + mutable_buffer: MutableBuffer, } -impl Default for MemWriter { +impl Default for MemWriter { fn default() -> Self { Self { schema: Schema::empty(), @@ -49,7 +49,7 @@ impl Default for MemWriter { } } -impl MemWriter { +impl MemWriter { pub fn push(&mut self, schema_key: &str, rb: RecordBatch) { if !self.schema_map.contains(schema_key) { self.schema_map.insert(schema_key.to_owned()); @@ -83,15 +83,17 @@ fn concat_records(schema: &Arc, record: &[RecordBatch]) -> RecordBatch { } #[derive(Debug, Default)] -struct MutableBuffer { +struct MutableBuffer { pub inner: Vec, pub rows: usize, } -impl MutableBuffer { +impl MutableBuffer { fn push(&mut self, rb: RecordBatch) -> Option> { - if self.rows + rb.num_rows() >= N { - let left = N - self.rows; + let maxima = CONFIG.parseable.records_per_request; + + if self.rows + rb.num_rows() >= maxima { + let left = maxima - self.rows; let right = rb.num_rows() - left; let left_slice = rb.slice(0, left); let right_slice = if left < rb.num_rows() { diff --git a/server/src/option.rs b/server/src/option.rs index 8b3983170..cda8b7a64 100644 --- a/server/src/option.rs +++ b/server/src/option.rs @@ -229,6 +229,9 @@ pub struct Server { /// Parquet compression algorithm pub parquet_compression: Compression, + + /// Max value a record can be before splitting the request + pub records_per_request: usize, } impl FromArgMatches for Server { @@ -247,6 +250,10 @@ impl FromArgMatches for Server { let openid_client_secret = m.get_one::(Self::OPENID_CLIENT_SECRET).cloned(); let openid_issuer = m.get_one::(Self::OPENID_ISSUER).cloned(); + self.records_per_request = m + .get_one(Self::BUFFER_SIZE) + .cloned() + .expect("default value for records per request"); self.address = m .get_one::(Self::ADDRESS) .cloned() @@ -362,6 +369,7 @@ impl Server { pub const PARQUET_COMPRESSION_ALGO: &'static str = "compression-algo"; pub const DEFAULT_USERNAME: &'static str = "admin"; pub const DEFAULT_PASSWORD: &'static str = "admin"; + pub const BUFFER_SIZE: &'static str = "buffer-size"; pub fn local_stream_data_path(&self, stream_name: &str) -> PathBuf { self.local_staging_path.join(stream_name) @@ -509,6 +517,16 @@ impl Server { .value_parser(validation::url) .help("OIDC provider's host address"), ) + .arg( + Arg::new(Self::BUFFER_SIZE) + .long(Self::BUFFER_SIZE) + .env("P_BUFFER_SIZE") + .value_name("NUMBER") + .default_value("16384") + .required(false) + .value_parser(value_parser!(usize)) + .help("buffer size for internal request buffer"), + ) .arg( Arg::new(Self::DOMAIN_URI) .long(Self::DOMAIN_URI) From c6e71fd0100484007396785db86ded3922de7aea Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Fri, 19 Jan 2024 08:52:15 +0530 Subject: [PATCH 06/73] Revert "Mutex Poison Error if a large amount of data is sent" (#629) --- server/src/event/writer.rs | 2 +- server/src/event/writer/mem_writer.rs | 20 +++++++++----------- server/src/option.rs | 18 ------------------ 3 files changed, 10 insertions(+), 30 deletions(-) diff --git a/server/src/event/writer.rs b/server/src/event/writer.rs index df7c00983..2d1b46d4e 100644 --- a/server/src/event/writer.rs +++ b/server/src/event/writer.rs @@ -38,7 +38,7 @@ pub static STREAM_WRITERS: Lazy = Lazy::new(WriterTable::default); #[derive(Default)] pub struct Writer { - pub mem: MemWriter, + pub mem: MemWriter<16384>, pub disk: FileWriter, } diff --git a/server/src/event/writer/mem_writer.rs b/server/src/event/writer/mem_writer.rs index ba69177cb..1f5ce4532 100644 --- a/server/src/event/writer/mem_writer.rs +++ b/server/src/event/writer/mem_writer.rs @@ -23,22 +23,22 @@ use arrow_schema::Schema; use arrow_select::concat::concat_batches; use itertools::Itertools; -use crate::{option::CONFIG, utils::arrow::adapt_batch}; +use crate::utils::arrow::adapt_batch; /// Structure to keep recordbatches in memory. /// /// Any new schema is updated in the schema map. /// Recordbatches are pushed to mutable buffer first and then concated together and pushed to read buffer #[derive(Debug)] -pub struct MemWriter { +pub struct MemWriter { schema: Schema, // for checking uniqueness of schema schema_map: HashSet, read_buffer: Vec, - mutable_buffer: MutableBuffer, + mutable_buffer: MutableBuffer, } -impl Default for MemWriter { +impl Default for MemWriter { fn default() -> Self { Self { schema: Schema::empty(), @@ -49,7 +49,7 @@ impl Default for MemWriter { } } -impl MemWriter { +impl MemWriter { pub fn push(&mut self, schema_key: &str, rb: RecordBatch) { if !self.schema_map.contains(schema_key) { self.schema_map.insert(schema_key.to_owned()); @@ -83,17 +83,15 @@ fn concat_records(schema: &Arc, record: &[RecordBatch]) -> RecordBatch { } #[derive(Debug, Default)] -struct MutableBuffer { +struct MutableBuffer { pub inner: Vec, pub rows: usize, } -impl MutableBuffer { +impl MutableBuffer { fn push(&mut self, rb: RecordBatch) -> Option> { - let maxima = CONFIG.parseable.records_per_request; - - if self.rows + rb.num_rows() >= maxima { - let left = maxima - self.rows; + if self.rows + rb.num_rows() >= N { + let left = N - self.rows; let right = rb.num_rows() - left; let left_slice = rb.slice(0, left); let right_slice = if left < rb.num_rows() { diff --git a/server/src/option.rs b/server/src/option.rs index cda8b7a64..8b3983170 100644 --- a/server/src/option.rs +++ b/server/src/option.rs @@ -229,9 +229,6 @@ pub struct Server { /// Parquet compression algorithm pub parquet_compression: Compression, - - /// Max value a record can be before splitting the request - pub records_per_request: usize, } impl FromArgMatches for Server { @@ -250,10 +247,6 @@ impl FromArgMatches for Server { let openid_client_secret = m.get_one::(Self::OPENID_CLIENT_SECRET).cloned(); let openid_issuer = m.get_one::(Self::OPENID_ISSUER).cloned(); - self.records_per_request = m - .get_one(Self::BUFFER_SIZE) - .cloned() - .expect("default value for records per request"); self.address = m .get_one::(Self::ADDRESS) .cloned() @@ -369,7 +362,6 @@ impl Server { pub const PARQUET_COMPRESSION_ALGO: &'static str = "compression-algo"; pub const DEFAULT_USERNAME: &'static str = "admin"; pub const DEFAULT_PASSWORD: &'static str = "admin"; - pub const BUFFER_SIZE: &'static str = "buffer-size"; pub fn local_stream_data_path(&self, stream_name: &str) -> PathBuf { self.local_staging_path.join(stream_name) @@ -517,16 +509,6 @@ impl Server { .value_parser(validation::url) .help("OIDC provider's host address"), ) - .arg( - Arg::new(Self::BUFFER_SIZE) - .long(Self::BUFFER_SIZE) - .env("P_BUFFER_SIZE") - .value_name("NUMBER") - .default_value("16384") - .required(false) - .value_parser(value_parser!(usize)) - .help("buffer size for internal request buffer"), - ) .arg( Arg::new(Self::DOMAIN_URI) .long(Self::DOMAIN_URI) From e4fa12757ce55c7b86718f51cd278d10da994d11 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jan 2024 21:59:45 +0530 Subject: [PATCH 07/73] Bump h2 from 0.3.17 to 0.3.24 (#630) Bumps [h2](https://github.com/hyperium/h2) from 0.3.17 to 0.3.24. - [Release notes](https://github.com/hyperium/h2/releases) - [Changelog](https://github.com/hyperium/h2/blob/v0.3.24/CHANGELOG.md) - [Commits](https://github.com/hyperium/h2/compare/v0.3.17...v0.3.24) --- updated-dependencies: - dependency-name: h2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e293a0663..9bc3d23f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1750,9 +1750,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "h2" -version = "0.3.17" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b91535aa35fea1523ad1b86cb6b53c28e0ae566ba4a460f4457e936cad7c6f" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" dependencies = [ "bytes", "fnv", @@ -1760,7 +1760,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 1.9.2", + "indexmap 2.0.1", "slab", "tokio", "tokio-util", From 9b6e1798d7013a0acbaf0e5c4678aef649d40946 Mon Sep 17 00:00:00 2001 From: Eshan <60269431+Eshanatnight@users.noreply.github.com> Date: Mon, 22 Jan 2024 21:13:13 +0530 Subject: [PATCH 08/73] fix: proper error Message if storage is in an invalid state (#623) fixes #615 --- server/src/main.rs | 2 +- server/src/migration.rs | 2 ++ server/src/option.rs | 36 ++++++++++++++++++++++++---- server/src/storage/localfs.rs | 23 +++++++++++++++--- server/src/storage/object_storage.rs | 1 + server/src/storage/s3.rs | 12 ++++++++++ server/src/storage/store_metadata.rs | 6 ++--- server/src/utils.rs | 25 +++++-------------- 8 files changed, 76 insertions(+), 31 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index 954ed6ddd..f0a1d087c 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -55,9 +55,9 @@ use crate::localcache::LocalCacheManager; async fn main() -> anyhow::Result<()> { env_logger::init(); let storage = CONFIG.storage().get_object_store(); + CONFIG.validate().await?; migration::run_metadata_migration(&CONFIG).await?; let metadata = storage::resolve_parseable_metadata().await?; - CONFIG.validate_staging()?; banner::print(&CONFIG, &metadata).await; rbac::map::init(&metadata); metadata.set_global(); diff --git a/server/src/migration.rs b/server/src/migration.rs index 899d86eae..5484e84c3 100644 --- a/server/src/migration.rs +++ b/server/src/migration.rs @@ -32,6 +32,8 @@ use crate::{ storage::{ObjectStorage, ObjectStorageError}, }; +/// Migrate the metdata from v1 or v2 to v3 +/// This is a one time migration pub async fn run_metadata_migration(config: &Config) -> anyhow::Result<()> { let object_store = config.storage().get_object_store(); let storage_metadata = get_storage_metadata(&*object_store).await?; diff --git a/server/src/option.rs b/server/src/option.rs index 8b3983170..50dab8878 100644 --- a/server/src/option.rs +++ b/server/src/option.rs @@ -27,8 +27,7 @@ use std::sync::Arc; use url::Url; use crate::oidc::{self, OpenidConfig}; -use crate::storage::{FSConfig, ObjectStorageProvider, S3Config}; -use crate::utils::validate_path_is_writeable; +use crate::storage::{FSConfig, ObjectStorageError, ObjectStorageProvider, S3Config}; pub const MIN_CACHE_SIZE_BYTES: u64 = 1000u64.pow(3); // 1 GiB @@ -99,9 +98,36 @@ impl Config { } } - pub fn validate_staging(&self) -> anyhow::Result<()> { - let staging_path = self.staging_dir(); - validate_path_is_writeable(staging_path) + pub async fn validate(&self) -> Result<(), ObjectStorageError> { + let obj_store = self.storage.get_object_store(); + let rel_path = relative_path::RelativePathBuf::from(".parseable.json"); + + let has_parseable_json = obj_store.get_object(&rel_path).await.is_ok(); + + let has_dirs = match obj_store.list_dirs_in_storage().await { + Ok(dirs) => !dirs.is_empty(), + Err(_) => false, + }; + + let has_streams = obj_store.list_streams().await.is_ok(); + + if !has_dirs || has_parseable_json && has_streams { + Ok(()) + } else if has_parseable_json && !has_streams { + Err(ObjectStorageError::Custom( + "Could not start the server because storage contains stale data from previous deployment, please choose an empty storage and restart the server.\nJoin us on Parseable Slack to report this incident : launchpass.com/parseable" + .to_owned(), + )) + } else if !has_parseable_json && !has_streams && has_dirs { + Err(ObjectStorageError::Custom( + "Could not start the server because storage contains some stale data, please provide an empty storage and restart the server.\nJoin us on Parseable Slack to report this incident : launchpass.com/parseable".to_owned(), + )) + } else { + Err(ObjectStorageError::Custom( + "Could not start the server because storage contains stale data from previous deployment.\nJoin us on Parseable Slack to report this incident : launchpass.com/parseable" + .to_owned() + )) + } } pub fn storage(&self) -> Arc { diff --git a/server/src/storage/localfs.rs b/server/src/storage/localfs.rs index df88499a9..fad4538ea 100644 --- a/server/src/storage/localfs.rs +++ b/server/src/storage/localfs.rs @@ -32,7 +32,7 @@ use tokio::fs::{self, DirEntry}; use tokio_stream::wrappers::ReadDirStream; use crate::metrics::storage::{localfs::REQUEST_RESPONSE_TIME, StorageMetrics}; -use crate::{option::validation, utils::validate_path_is_writeable}; +use crate::option::validation; use super::{object_storage, LogStream, ObjectStorage, ObjectStorageError, ObjectStorageProvider}; @@ -139,8 +139,8 @@ impl ObjectStorage for LocalFS { } async fn check(&self) -> Result<(), ObjectStorageError> { - fs::create_dir_all(&self.root).await?; - validate_path_is_writeable(&self.root) + fs::create_dir_all(&self.root) + .await .map_err(|e| ObjectStorageError::UnhandledError(e.into())) } @@ -169,6 +169,23 @@ impl ObjectStorage for LocalFS { Ok(logstreams) } + async fn list_dirs_in_storage(&self) -> Result, ObjectStorageError> { + let dirs = ReadDirStream::new(fs::read_dir(&self.root).await?) + .try_collect::>() + .await? + .into_iter() + .map(dir_name); + + let dirs = FuturesUnordered::from_iter(dirs) + .try_collect::>() + .await? + .into_iter() + .flatten() + .collect::>(); + + Ok(dirs) + } + async fn list_dates(&self, stream_name: &str) -> Result, ObjectStorageError> { let path = self.root.join(stream_name); let directories = ReadDirStream::new(fs::read_dir(&path).await?); diff --git a/server/src/storage/object_storage.rs b/server/src/storage/object_storage.rs index be4b1c1c6..cd0051345 100644 --- a/server/src/storage/object_storage.rs +++ b/server/src/storage/object_storage.rs @@ -75,6 +75,7 @@ pub trait ObjectStorage: Sync + 'static { async fn check(&self) -> Result<(), ObjectStorageError>; async fn delete_stream(&self, stream_name: &str) -> Result<(), ObjectStorageError>; async fn list_streams(&self) -> Result, ObjectStorageError>; + async fn list_dirs_in_storage(&self) -> Result, ObjectStorageError>; async fn list_dates(&self, stream_name: &str) -> Result, ObjectStorageError>; async fn upload_file(&self, key: &str, path: &Path) -> Result<(), ObjectStorageError>; diff --git a/server/src/storage/s3.rs b/server/src/storage/s3.rs index af171bfae..dbd7dc915 100644 --- a/server/src/storage/s3.rs +++ b/server/src/storage/s3.rs @@ -470,6 +470,18 @@ impl ObjectStorage for S3 { fn store_url(&self) -> url::Url { url::Url::parse(&format!("s3://{}", self.bucket)).unwrap() } + + async fn list_dirs_in_storage(&self) -> Result, ObjectStorageError> { + let pre = object_store::path::Path::from("/"); + let resp = self.client.list_with_delimiter(Some(&pre)).await?; + + Ok(resp + .common_prefixes + .iter() + .flat_map(|path| path.parts()) + .map(|name| name.as_ref().to_string()) + .collect::>()) + } } impl From for ObjectStorageError { diff --git a/server/src/storage/store_metadata.rs b/server/src/storage/store_metadata.rs index 0e9ad955f..137cf1e24 100644 --- a/server/src/storage/store_metadata.rs +++ b/server/src/storage/store_metadata.rs @@ -92,8 +92,8 @@ impl StorageMetadata { } } -// always returns remote metadata as it is source of truth -// overwrites staging metadata while updating storage info +/// always returns remote metadata as it is source of truth +/// overwrites staging metadata while updating storage info pub async fn resolve_parseable_metadata() -> Result { let staging_metadata = get_staging_metadata()?; let storage = CONFIG.storage().get_object_store(); @@ -168,7 +168,7 @@ pub async fn resolve_parseable_metadata() -> Result String { s[0..1].to_uppercase() + &s[1..] } -pub fn validate_path_is_writeable(path: &Path) -> anyhow::Result<()> { - let Ok(md) = std::fs::metadata(path) else { - anyhow::bail!("Could not read metadata for staging dir") - }; - let permissions = md.permissions(); - if permissions.readonly() { - anyhow::bail!("Staging directory {} is not writable", path.display()) - } - Ok(()) -} - /// Convert minutes to a slot range /// e.g. given minute = 15 and OBJECT_STORE_DATA_GRANULARITY = 10 returns "10-19" pub fn minute_to_slot(minute: u32, data_granularity: u32) -> Option { @@ -263,7 +250,7 @@ mod tests { ] )] #[case::same_hour_with_00_to_59_minute_block( - "2022-06-11T16:00:00+00:00", "2022-06-11T16:59:59+00:00", + "2022-06-11T16:00:00+00:00", "2022-06-11T16:59:59+00:00", &["date=2022-06-11/hour=16/"] )] #[case::same_date_different_hours_coherent_minute( @@ -274,14 +261,14 @@ mod tests { ] )] #[case::same_date_different_hours_incoherent_minutes( - "2022-06-11T15:59:00+00:00", "2022-06-11T16:01:00+00:00", + "2022-06-11T15:59:00+00:00", "2022-06-11T16:01:00+00:00", &[ "date=2022-06-11/hour=15/minute=59/", "date=2022-06-11/hour=16/minute=00/" ] )] #[case::same_date_different_hours_whole_hours_between_incoherent_minutes( - "2022-06-11T15:59:00+00:00", "2022-06-11T17:01:00+00:00", + "2022-06-11T15:59:00+00:00", "2022-06-11T17:01:00+00:00", &[ "date=2022-06-11/hour=15/minute=59/", "date=2022-06-11/hour=16/", @@ -289,14 +276,14 @@ mod tests { ] )] #[case::different_date_coherent_hours_and_minutes( - "2022-06-11T00:00:00+00:00", "2022-06-13T00:00:00+00:00", + "2022-06-11T00:00:00+00:00", "2022-06-13T00:00:00+00:00", &[ "date=2022-06-11/", "date=2022-06-12/" ] )] #[case::different_date_incoherent_hours_coherent_minutes( - "2022-06-11T23:00:01+00:00", "2022-06-12T01:59:59+00:00", + "2022-06-11T23:00:01+00:00", "2022-06-12T01:59:59+00:00", &[ "date=2022-06-11/hour=23/", "date=2022-06-12/hour=00/", @@ -304,7 +291,7 @@ mod tests { ] )] #[case::different_date_incoherent_hours_incoherent_minutes( - "2022-06-11T23:59:59+00:00", "2022-06-12T00:01:00+00:00", + "2022-06-11T23:59:59+00:00", "2022-06-12T00:01:00+00:00", &[ "date=2022-06-11/hour=23/minute=59/", "date=2022-06-12/hour=00/minute=00/" From 007fd88f80684e5032afdf92daa0e6344787f8b4 Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Tue, 23 Jan 2024 11:39:20 +0530 Subject: [PATCH 09/73] fix: clean up storage validation logic further (#633) Standardise the error message and also use the new logg.ing domain for short URLs. --- README.md | 4 ++-- server/src/about.rs | 2 +- server/src/option.rs | 34 ++++++++++++---------------- server/src/storage/localfs.rs | 2 +- server/src/storage/object_storage.rs | 2 +- server/src/storage/s3.rs | 2 +- server/src/storage/store_metadata.rs | 8 ++----- 7 files changed, 23 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 737ead69a..526cee0f0 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@
[![Docker Pulls](https://img.shields.io/docker/pulls/parseable/parseable?logo=docker&label=Docker%20Pulls)](https://hub.docker.com/r/parseable/parseable) -[![Slack](https://img.shields.io/badge/slack-brightgreen.svg?logo=slack&label=Community&style=flat&color=%2373DC8C&)](https://launchpass.com/parseable) -[![Docs](https://img.shields.io/badge/stable%20docs-parseable.io%2Fdocs-brightgreen?style=flat&color=%2373DC8C&label=Docs)](https://www.parseable.io/docs) +[![Slack](https://img.shields.io/badge/slack-brightgreen.svg?logo=slack&label=Community&style=flat&color=%2373DC8C&)](https://logg.ing/community) +[![Docs](https://img.shields.io/badge/stable%20docs-parseable.io%2Fdocs-brightgreen?style=flat&color=%2373DC8C&label=Docs)](https://logg.ing/docs) [![Build](https://img.shields.io/github/checks-status/parseablehq/parseable/main?style=flat&color=%2373DC8C&label=Checks)](https://github.com/parseablehq/parseable/actions) [Key Concepts](https://www.parseable.io/docs/concepts) | [Features](https://github.com/parseablehq/parseable#rocket-highlights) | [Documentation](https://www.parseable.io/docs) | [Demo](https://demo.parseable.com/login?q=eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiJhZG1pbiJ9) | [Integrations](https://www.parseable.io/docs/category/integrations) | [FAQ](https://www.parseable.io/docs/faq) diff --git a/server/src/about.rs b/server/src/about.rs index c18df7600..f33ac2137 100644 --- a/server/src/about.rs +++ b/server/src/about.rs @@ -104,7 +104,7 @@ pub fn print_about( eprintln!( " Commit: \"{commit_hash}\" - Docs: \"https://www.parseable.io/docs\"" + Docs: \"https://logg.ing/docs\"" ); } diff --git a/server/src/option.rs b/server/src/option.rs index 50dab8878..e0e3260bd 100644 --- a/server/src/option.rs +++ b/server/src/option.rs @@ -30,7 +30,8 @@ use crate::oidc::{self, OpenidConfig}; use crate::storage::{FSConfig, ObjectStorageError, ObjectStorageProvider, S3Config}; pub const MIN_CACHE_SIZE_BYTES: u64 = 1000u64.pow(3); // 1 GiB - +pub const JOIN_COMMUNITY: &str = + "Join us on Parseable Slack community for questions : https://logg.ing/community"; pub static CONFIG: Lazy> = Lazy::new(|| Arc::new(Config::new())); #[derive(Debug)] @@ -104,30 +105,25 @@ impl Config { let has_parseable_json = obj_store.get_object(&rel_path).await.is_ok(); - let has_dirs = match obj_store.list_dirs_in_storage().await { + // Lists all the directories in the root of the bucket/directory + // can be a stream (if it contains .stream.json file) or not + let has_dirs = match obj_store.list_dirs().await { Ok(dirs) => !dirs.is_empty(), Err(_) => false, }; let has_streams = obj_store.list_streams().await.is_ok(); - if !has_dirs || has_parseable_json && has_streams { - Ok(()) - } else if has_parseable_json && !has_streams { - Err(ObjectStorageError::Custom( - "Could not start the server because storage contains stale data from previous deployment, please choose an empty storage and restart the server.\nJoin us on Parseable Slack to report this incident : launchpass.com/parseable" - .to_owned(), - )) - } else if !has_parseable_json && !has_streams && has_dirs { - Err(ObjectStorageError::Custom( - "Could not start the server because storage contains some stale data, please provide an empty storage and restart the server.\nJoin us on Parseable Slack to report this incident : launchpass.com/parseable".to_owned(), - )) - } else { - Err(ObjectStorageError::Custom( - "Could not start the server because storage contains stale data from previous deployment.\nJoin us on Parseable Slack to report this incident : launchpass.com/parseable" - .to_owned() - )) + if has_streams || !has_dirs && !has_parseable_json { + return Ok(()); } + + if self.mode_string() == "Local drive" { + return Err(ObjectStorageError::Custom(format!("Could not start the server because directory '{}' contains stale data, please use an empty directory, and restart the server.\n{}", self.storage.get_endpoint(), JOIN_COMMUNITY))); + } + + // S3 bucket mode + Err(ObjectStorageError::Custom(format!("Could not start the server because bucket '{}' contains stale data, please use an empty bucket and restart the server.\n{}", self.storage.get_endpoint(), JOIN_COMMUNITY))) } pub fn storage(&self) -> Arc { @@ -185,7 +181,7 @@ fn parseable_cli_command() -> Command { .next_line_help(false) .help_template( r#" -{about} Join the community at https://launchpass.com/parseable. +{about} Join the community at https://logg.ing/community. {all-args} "#, diff --git a/server/src/storage/localfs.rs b/server/src/storage/localfs.rs index fad4538ea..8b802ebe8 100644 --- a/server/src/storage/localfs.rs +++ b/server/src/storage/localfs.rs @@ -169,7 +169,7 @@ impl ObjectStorage for LocalFS { Ok(logstreams) } - async fn list_dirs_in_storage(&self) -> Result, ObjectStorageError> { + async fn list_dirs(&self) -> Result, ObjectStorageError> { let dirs = ReadDirStream::new(fs::read_dir(&self.root).await?) .try_collect::>() .await? diff --git a/server/src/storage/object_storage.rs b/server/src/storage/object_storage.rs index cd0051345..7494d16e1 100644 --- a/server/src/storage/object_storage.rs +++ b/server/src/storage/object_storage.rs @@ -75,7 +75,7 @@ pub trait ObjectStorage: Sync + 'static { async fn check(&self) -> Result<(), ObjectStorageError>; async fn delete_stream(&self, stream_name: &str) -> Result<(), ObjectStorageError>; async fn list_streams(&self) -> Result, ObjectStorageError>; - async fn list_dirs_in_storage(&self) -> Result, ObjectStorageError>; + async fn list_dirs(&self) -> Result, ObjectStorageError>; async fn list_dates(&self, stream_name: &str) -> Result, ObjectStorageError>; async fn upload_file(&self, key: &str, path: &Path) -> Result<(), ObjectStorageError>; diff --git a/server/src/storage/s3.rs b/server/src/storage/s3.rs index dbd7dc915..ef1144f18 100644 --- a/server/src/storage/s3.rs +++ b/server/src/storage/s3.rs @@ -471,7 +471,7 @@ impl ObjectStorage for S3 { url::Url::parse(&format!("s3://{}", self.bucket)).unwrap() } - async fn list_dirs_in_storage(&self) -> Result, ObjectStorageError> { + async fn list_dirs(&self) -> Result, ObjectStorageError> { let pre = object_store::path::Path::from("/"); let resp = self.client.list_with_delimiter(Some(&pre)).await?; diff --git a/server/src/storage/store_metadata.rs b/server/src/storage/store_metadata.rs index 137cf1e24..b7d3a52f8 100644 --- a/server/src/storage/store_metadata.rs +++ b/server/src/storage/store_metadata.rs @@ -26,7 +26,7 @@ use once_cell::sync::OnceCell; use std::io; use crate::{ - option::CONFIG, + option::{CONFIG, JOIN_COMMUNITY}, rbac::{role::model::DefaultPrivilege, user::User}, storage::ObjectStorageError, utils::uid, @@ -145,11 +145,7 @@ pub async fn resolve_parseable_metadata() -> Result = err.into(); ObjectStorageError::UnhandledError(err) })?; From 96ef2507a3bdbfe30b407f36fbd654830d38a9f4 Mon Sep 17 00:00:00 2001 From: Eshan <60269431+Eshanatnight@users.noreply.github.com> Date: Mon, 29 Jan 2024 11:34:24 +0530 Subject: [PATCH 10/73] feat: separate out ingest and query functionality of the server (#634) Add P_MODE with options `ingest`, `query` and `all`. Default mode is `all`. There are still more changes required for both modes to work well. Will be added in next subsequent PRs. Fixes #617 --- server/src/handlers/http.rs | 7 +- server/src/handlers/http/middleware.rs | 104 ++++++++++++++++++++++++- server/src/option.rs | 35 +++++++++ 3 files changed, 142 insertions(+), 4 deletions(-) diff --git a/server/src/handlers/http.rs b/server/src/handlers/http.rs index 3fad5c2cc..30aad59ce 100644 --- a/server/src/handlers/http.rs +++ b/server/src/handlers/http.rs @@ -35,7 +35,7 @@ use rustls_pemfile::{certs, pkcs8_private_keys}; use crate::option::CONFIG; use crate::rbac::role::Action; -use self::middleware::{DisAllowRootUser, RouteExt}; +use self::middleware::{DisAllowRootUser, ModeFilter, RouteExt}; mod about; mod health_check; @@ -76,6 +76,7 @@ pub async fn run_http( .wrap(actix_web::middleware::Logger::default()) .wrap(actix_web::middleware::Compress::default()) .wrap(cross_origin_config()) + .wrap(ModeFilter) }; let ssl_acceptor = match ( @@ -272,13 +273,16 @@ pub fn configure_routes( ); let role_api = web::scope("/role") + // GET Role List .service(resource("").route(web::get().to(role::list).authorize(Action::ListRole))) .service( + // PUT and GET Default Role resource("/default") .route(web::put().to(role::put_default).authorize(Action::PutRole)) .route(web::get().to(role::get_default).authorize(Action::GetRole)), ) .service( + // PUT, GET, DELETE Roles resource("/{name}") .route(web::put().to(role::put).authorize(Action::PutRole)) .route(web::delete().to(role::delete).authorize(Action::DeleteRole)) @@ -299,6 +303,7 @@ pub fn configure_routes( cfg.service( // Base path "{url}/api/v1" web::scope(&base_path()) + // .wrap(PathFilter) // POST "/query" ==> Get results of the SQL query passed in request body .service( web::resource("/query") diff --git a/server/src/handlers/http/middleware.rs b/server/src/handlers/http/middleware.rs index 8c078ae65..fede503e7 100644 --- a/server/src/handlers/http/middleware.rs +++ b/server/src/handlers/http/middleware.rs @@ -27,9 +27,12 @@ use actix_web::{ }; use futures_util::future::LocalBoxFuture; -use crate::handlers::{ - AUTHORIZATION_KEY, KINESIS_COMMON_ATTRIBUTES_KEY, LOG_SOURCE_KEY, LOG_SOURCE_KINESIS, - STREAM_NAME_HEADER_KEY, +use crate::{ + handlers::{ + AUTHORIZATION_KEY, KINESIS_COMMON_ATTRIBUTES_KEY, LOG_SOURCE_KEY, LOG_SOURCE_KINESIS, + STREAM_NAME_HEADER_KEY, + }, + option::Mode, }; use crate::{ option::CONFIG, @@ -252,3 +255,98 @@ where }) } } + +/// ModeFilterMiddleware factory +pub struct ModeFilter; + +/// PathFilterMiddleware needs to implement Service trait +impl Transform for ModeFilter +where + S: Service, Error = Error>, + S::Future: 'static, + B: 'static, +{ + type Response = ServiceResponse; + type Error = Error; + type InitError = (); + type Transform = ModeFilterMiddleware; + type Future = Ready>; + + fn new_transform(&self, service: S) -> Self::Future { + ready(Ok(ModeFilterMiddleware { service })) + } +} + +/// Actual middleware service +pub struct ModeFilterMiddleware { + service: S, +} + +/// Impl the service trait for the middleware service +impl Service for ModeFilterMiddleware +where + S: Service, Error = Error>, + S::Future: 'static, + B: 'static, +{ + type Response = ServiceResponse; + type Error = Error; + type Future = LocalBoxFuture<'static, Result>; + + // impl poll_ready + actix_web::dev::forward_ready!(service); + + fn call(&self, req: ServiceRequest) -> Self::Future { + let path = req.path(); + let mode = &CONFIG.parseable.mode; + + // change error messages based on mode + match mode { + Mode::Query => { + let cond = path.split('/').any(|x| x == "ingest"); + if cond { + Box::pin(async { + Err(actix_web::error::ErrorUnauthorized( + "Ingest API cannot be accessed in Query Mode", + )) + }) + } else { + let fut = self.service.call(req); + + Box::pin(async move { + let res = fut.await?; + Ok(res) + }) + } + } + + Mode::Ingest => { + let accessable_endpoints = ["ingest", "logstream", "liveness", "readiness"]; + let cond = path.split('/').any(|x| accessable_endpoints.contains(&x)); + if !cond { + Box::pin(async { + Err(actix_web::error::ErrorUnauthorized( + "Only Ingestion API can be accessed in Ingest Mode", + )) + }) + } else { + let fut = self.service.call(req); + + Box::pin(async move { + let res = fut.await?; + Ok(res) + }) + } + } + + Mode::All => { + let fut = self.service.call(req); + + Box::pin(async move { + let res = fut.await?; + Ok(res) + }) + } + } + } +} diff --git a/server/src/option.rs b/server/src/option.rs index e0e3260bd..624e11388 100644 --- a/server/src/option.rs +++ b/server/src/option.rs @@ -251,6 +251,9 @@ pub struct Server { /// Parquet compression algorithm pub parquet_compression: Compression, + + /// Mode of operation + pub mode: Mode, } impl FromArgMatches for Server { @@ -354,6 +357,17 @@ impl FromArgMatches for Server { _ => None, }; + self.mode = match m + .get_one::(Self::MODE) + .expect("Mode not set") + .as_str() + { + "query" => Mode::Query, + "ingest" => Mode::Ingest, + "all" => Mode::All, + _ => unreachable!(), + }; + Ok(()) } } @@ -382,6 +396,7 @@ impl Server { pub const QUERY_MEM_POOL_SIZE: &'static str = "query-mempool-size"; pub const ROW_GROUP_SIZE: &'static str = "row-group-size"; pub const PARQUET_COMPRESSION_ALGO: &'static str = "compression-algo"; + pub const MODE: &'static str = "mode"; pub const DEFAULT_USERNAME: &'static str = "admin"; pub const DEFAULT_PASSWORD: &'static str = "admin"; @@ -578,6 +593,18 @@ impl Server { .default_value("16384") .value_parser(value_parser!(usize)) .help("Number of rows in a row group"), + ).arg( + Arg::new(Self::MODE) + .long(Self::MODE) + .env("P_MODE") + .value_name("STRING") + .required(false) + .default_value("all") + .value_parser([ + "query", + "ingest", + "all"]) + .help("Mode of operation"), ) .arg( Arg::new(Self::PARQUET_COMPRESSION_ALGO) @@ -604,6 +631,14 @@ impl Server { } } +#[derive(Debug, Default, Eq, PartialEq)] +pub enum Mode { + Query, + Ingest, + #[default] + All, +} + #[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] #[allow(non_camel_case_types, clippy::upper_case_acronyms)] pub enum Compression { From 9eb9d3ffd4183df171d6b1fec927e48797ab30fe Mon Sep 17 00:00:00 2001 From: Nikhil Sinha <131262146+nikhilsinhacloudsurfex@users.noreply.github.com> Date: Mon, 29 Jan 2024 12:01:02 +0530 Subject: [PATCH 11/73] feat: allow configurable duration for data push to S3 (#626) create parquet file by grouping all arrow files (in staging) for the duration provided in env variable P_STORAGE_UPLOAD_INTERVAL also check if arrow files vector is not empty, then sort the arrow files and create key for parquet file from last file from sorted arrow files vector Fixes #616 --- server/src/storage/staging.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/server/src/storage/staging.rs b/server/src/storage/staging.rs index 6ee908079..04d3bef9a 100644 --- a/server/src/storage/staging.rs +++ b/server/src/storage/staging.rs @@ -124,6 +124,7 @@ impl StorageDir { // hashmap but exclude where hot filename matches let mut grouped_arrow_file: HashMap> = HashMap::new(); let mut arrow_files = self.arrow_files(); + arrow_files.retain(|path| { !path .file_name() @@ -132,12 +133,17 @@ impl StorageDir { .unwrap() .ends_with(&hot_filename) }); - for arrow_file_path in arrow_files { - let key = Self::arrow_path_to_parquet(&arrow_file_path); - grouped_arrow_file - .entry(key) - .or_default() - .push(arrow_file_path); + + //check if arrow files is not empty, fetch the parquet file path from last file from sorted arrow file list + if !(arrow_files.is_empty()) { + arrow_files.sort(); + let key = Self::arrow_path_to_parquet(arrow_files.last().unwrap()); + for arrow_file_path in arrow_files { + grouped_arrow_file + .entry(key.clone()) + .or_default() + .push(arrow_file_path); + } } grouped_arrow_file @@ -201,7 +207,6 @@ pub fn convert_disk_files_to_parquet( let record_reader = MergedReverseRecordReader::try_new(&files).unwrap(); let parquet_file = fs::File::create(&parquet_path).map_err(|_| MoveDataError::Create)?; - let props = parquet_writer_props().build(); let merged_schema = record_reader.merged_schema(); schemas.push(merged_schema.clone()); From fe860bd80665388be4d17e814e63789bdd28b819 Mon Sep 17 00:00:00 2001 From: Eshan <60269431+Eshanatnight@users.noreply.github.com> Date: Tue, 30 Jan 2024 16:42:52 +0530 Subject: [PATCH 12/73] fix: allow only GET /logstream in query mode (#643) Previously in Query Mode, All log stream endpoints were allowed. But is it better that only ingester is allowed to create streams. Fixes #641 --- server/src/handlers/http/middleware.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/server/src/handlers/http/middleware.rs b/server/src/handlers/http/middleware.rs index fede503e7..427b2bcf6 100644 --- a/server/src/handlers/http/middleware.rs +++ b/server/src/handlers/http/middleware.rs @@ -299,15 +299,23 @@ where fn call(&self, req: ServiceRequest) -> Self::Future { let path = req.path(); let mode = &CONFIG.parseable.mode; - // change error messages based on mode match mode { Mode::Query => { - let cond = path.split('/').any(|x| x == "ingest"); - if cond { + // In Query mode, only allows /ingest endpoint, and /logstream endpoint with GET method + let base_cond = path.split('/').any(|x| x == "ingest"); + let logstream_cond = + !(path.split('/').any(|x| x == "logstream") && req.method() == "GET"); + if base_cond { + Box::pin(async { + Err(actix_web::error::ErrorUnauthorized( + "Ingestion API cannot be accessed in Query Mode", + )) + }) + } else if logstream_cond { Box::pin(async { Err(actix_web::error::ErrorUnauthorized( - "Ingest API cannot be accessed in Query Mode", + "Logstream cannot be changed in Query Mode", )) }) } else { From 3e017bdc9e344568a70a21b0a3c1784bdfa3d6b7 Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Thu, 1 Feb 2024 21:05:02 +0530 Subject: [PATCH 13/73] Update CNAME Signed-off-by: Nitish Tiwari --- CNAME | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CNAME b/CNAME index a171e3429..acb13d02f 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -charts.parseable.io \ No newline at end of file +charts.parseable.com From 14d1da24682cbebcb3a178dddd5a0773d4b13532 Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Fri, 2 Feb 2024 04:47:54 +0530 Subject: [PATCH 14/73] update helm chart to correct domain (#647) --- helm-reindex.sh | 2 +- helm-releases/operator-0.0.3.tgz | Bin 29031 -> 29032 bytes helm-releases/parseable-0.7.3.tgz | Bin 46680 -> 46678 bytes index.yaml | 130 +++++++++++++++--------------- 4 files changed, 66 insertions(+), 66 deletions(-) diff --git a/helm-reindex.sh b/helm-reindex.sh index 861fe9c32..0511e07fe 100755 --- a/helm-reindex.sh +++ b/helm-reindex.sh @@ -3,4 +3,4 @@ helm package helm -d helm-releases/ helm package ../operator/helm/operator -d helm-releases/ -helm repo index --merge index.yaml --url https://charts.parseable.io . +helm repo index --merge index.yaml --url https://charts.parseable.com . diff --git a/helm-releases/operator-0.0.3.tgz b/helm-releases/operator-0.0.3.tgz index 8ee38369a17c01eb0434241c7546ba1ea733777c..6c8265496d4487da1bc08e20a1878e8605f35631 100644 GIT binary patch delta 23758 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 JJrV#C0{~h7nEe0% delta 23736 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 CRJMiy delta 39465 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 Rv*xF04hVr~A1MHg1OVKarCk63 diff --git a/index.yaml b/index.yaml index f27dfd62c..d332d6303 100644 --- a/index.yaml +++ b/index.yaml @@ -14,38 +14,38 @@ entries: operator: - apiVersion: v2 appVersion: v0.0.3 - created: "2024-01-04T13:22:39.339343045+05:30" + created: "2024-02-02T04:46:20.498961046+05:30" description: A Helm chart for Parseable Operator - digest: 0aeb294b82dd30a405e19023c4a3175fc85caf042660bafc03309e7c883f10bb + digest: adf27ac84b1f282ae1ba33e7e2880bf166046fcdfc11cc1dee2a16b5f1567cae name: operator type: application urls: - - https://charts.parseable.io/helm-releases/operator-0.0.3.tgz + - https://charts.parseable.com/helm-releases/operator-0.0.3.tgz version: 0.0.3 - apiVersion: v2 appVersion: v0.0.2 - created: "2024-01-04T13:22:39.33757159+05:30" + created: "2024-02-02T04:46:20.49618699+05:30" description: A Helm chart for Parseable Operator digest: 0bf4cd8cc7f1c5ff6d49f91fe91204855a215ae1cb5acaeb3fe84497bc97c566 name: operator type: application urls: - - https://charts.parseable.io/helm-releases/operator-0.0.2.tgz + - https://charts.parseable.com/helm-releases/operator-0.0.2.tgz version: 0.0.2 - apiVersion: v2 appVersion: 0.0.1 - created: "2024-01-04T13:22:39.336738866+05:30" + created: "2024-02-02T04:46:20.493407822+05:30" description: A Helm chart for Parseable Operator digest: 344cedd9e3a0f17c6ff09514dabed994bac7bac94ace500857d487c1c9cc1859 name: operator type: application urls: - - https://charts.parseable.io/helm-releases/operator-0.0.1.tgz + - https://charts.parseable.com/helm-releases/operator-0.0.1.tgz version: 0.0.1 parseable: - apiVersion: v2 appVersion: v0.7.3 - created: "2024-01-04T13:22:39.39222597+05:30" + created: "2024-02-02T04:46:20.639834884+05:30" dependencies: - condition: vector.enabled name: vector @@ -56,7 +56,7 @@ entries: repository: https://fluent.github.io/helm-charts version: 0.25.0 description: Helm chart for Parseable Server - digest: 6c7ca517a725f96b03abf4adf1f09a4ee57a2623c1f6aecaa31f66a7bb19877f + digest: adc8d4071a86fddf14ebeaa2d8adf86711f9d72855d881c4442da34eb3d3d0ff maintainers: - email: hi@parseable.io name: Parseable Team @@ -64,11 +64,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.7.3.tgz + - https://charts.parseable.com/helm-releases/parseable-0.7.3.tgz version: 0.7.3 - apiVersion: v2 appVersion: v0.7.2 - created: "2024-01-04T13:22:39.388808217+05:30" + created: "2024-02-02T04:46:20.631437529+05:30" dependencies: - condition: vector.enabled name: vector @@ -87,11 +87,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.7.2.tgz + - https://charts.parseable.com/helm-releases/parseable-0.7.2.tgz version: 0.7.2 - apiVersion: v2 appVersion: v0.7.1 - created: "2024-01-04T13:22:39.386689245+05:30" + created: "2024-02-02T04:46:20.621951367+05:30" dependencies: - condition: vector.enabled name: vector @@ -110,11 +110,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.7.1.tgz + - https://charts.parseable.com/helm-releases/parseable-0.7.1.tgz version: 0.7.1 - apiVersion: v2 appVersion: v0.7.0 - created: "2024-01-04T13:22:39.384539181+05:30" + created: "2024-02-02T04:46:20.613520799+05:30" dependencies: - condition: vector.enabled name: vector @@ -133,11 +133,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.7.0.tgz + - https://charts.parseable.com/helm-releases/parseable-0.7.0.tgz version: 0.7.0 - apiVersion: v2 appVersion: v0.6.2 - created: "2024-01-04T13:22:39.380706938+05:30" + created: "2024-02-02T04:46:20.604808133+05:30" dependencies: - condition: vector.enabled name: vector @@ -156,11 +156,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.6.2.tgz + - https://charts.parseable.com/helm-releases/parseable-0.6.2.tgz version: 0.6.2 - apiVersion: v2 appVersion: v0.6.1 - created: "2024-01-04T13:22:39.37727176+05:30" + created: "2024-02-02T04:46:20.595516838+05:30" dependencies: - condition: vector.enabled name: vector @@ -179,11 +179,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.6.1.tgz + - https://charts.parseable.com/helm-releases/parseable-0.6.1.tgz version: 0.6.1 - apiVersion: v2 appVersion: v0.6.0 - created: "2024-01-04T13:22:39.37384627+05:30" + created: "2024-02-02T04:46:20.588337966+05:30" dependencies: - condition: vector.enabled name: vector @@ -202,11 +202,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.6.0.tgz + - https://charts.parseable.com/helm-releases/parseable-0.6.0.tgz version: 0.6.0 - apiVersion: v2 appVersion: v0.5.1 - created: "2024-01-04T13:22:39.369713271+05:30" + created: "2024-02-02T04:46:20.581063709+05:30" dependencies: - condition: vector.enabled name: vector @@ -225,11 +225,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.5.1.tgz + - https://charts.parseable.com/helm-releases/parseable-0.5.1.tgz version: 0.5.1 - apiVersion: v2 appVersion: v0.5.0 - created: "2024-01-04T13:22:39.366281517+05:30" + created: "2024-02-02T04:46:20.572466227+05:30" dependencies: - condition: vector.enabled name: vector @@ -248,11 +248,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.5.0.tgz + - https://charts.parseable.com/helm-releases/parseable-0.5.0.tgz version: 0.5.0 - apiVersion: v2 appVersion: v0.4.4 - created: "2024-01-04T13:22:39.362784622+05:30" + created: "2024-02-02T04:46:20.565318496+05:30" dependencies: - condition: vector.enabled name: vector @@ -271,11 +271,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.4.5.tgz + - https://charts.parseable.com/helm-releases/parseable-0.4.5.tgz version: 0.4.5 - apiVersion: v2 appVersion: v0.4.3 - created: "2024-01-04T13:22:39.359584499+05:30" + created: "2024-02-02T04:46:20.557987081+05:30" dependencies: - condition: vector.enabled name: vector @@ -294,11 +294,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.4.4.tgz + - https://charts.parseable.com/helm-releases/parseable-0.4.4.tgz version: 0.4.4 - apiVersion: v2 appVersion: v0.4.2 - created: "2024-01-04T13:22:39.357447924+05:30" + created: "2024-02-02T04:46:20.549358751+05:30" dependencies: - condition: vector.enabled name: vector @@ -317,11 +317,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.4.3.tgz + - https://charts.parseable.com/helm-releases/parseable-0.4.3.tgz version: 0.4.3 - apiVersion: v2 appVersion: v0.4.1 - created: "2024-01-04T13:22:39.355364145+05:30" + created: "2024-02-02T04:46:20.542357122+05:30" dependencies: - condition: vector.enabled name: vector @@ -340,11 +340,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.4.2.tgz + - https://charts.parseable.com/helm-releases/parseable-0.4.2.tgz version: 0.4.2 - apiVersion: v2 appVersion: v0.4.0 - created: "2024-01-04T13:22:39.352152258+05:30" + created: "2024-02-02T04:46:20.535136217+05:30" dependencies: - condition: vector.enabled name: vector @@ -363,11 +363,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.4.1.tgz + - https://charts.parseable.com/helm-releases/parseable-0.4.1.tgz version: 0.4.1 - apiVersion: v2 appVersion: v0.4.0 - created: "2024-01-04T13:22:39.349617487+05:30" + created: "2024-02-02T04:46:20.526805474+05:30" dependencies: - condition: vector.enabled name: vector @@ -386,11 +386,11 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.4.0.tgz + - https://charts.parseable.com/helm-releases/parseable-0.4.0.tgz version: 0.4.0 - apiVersion: v2 appVersion: v0.3.1 - created: "2024-01-04T13:22:39.346764187+05:30" + created: "2024-02-02T04:46:20.518626266+05:30" dependencies: - condition: vector.enabled name: vector @@ -409,127 +409,127 @@ entries: name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.3.1.tgz + - https://charts.parseable.com/helm-releases/parseable-0.3.1.tgz version: 0.3.1 - apiVersion: v2 appVersion: v0.3.0 - created: "2024-01-04T13:22:39.342618937+05:30" + created: "2024-02-02T04:46:20.508627341+05:30" description: Helm chart for Parseable Server digest: ff30739229b727dc637f62fd4481c886a6080ce4556bae10cafe7642ddcfd937 name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.3.0.tgz + - https://charts.parseable.com/helm-releases/parseable-0.3.0.tgz version: 0.3.0 - apiVersion: v2 appVersion: v0.2.2 - created: "2024-01-04T13:22:39.342307108+05:30" + created: "2024-02-02T04:46:20.507709731+05:30" description: Helm chart for Parseable Server digest: 477d0dc2f0c07d4f4c32e105d4bdd70c71113add5c2a75ac5f1cb42aa0276db7 name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.2.2.tgz + - https://charts.parseable.com/helm-releases/parseable-0.2.2.tgz version: 0.2.2 - apiVersion: v2 appVersion: v0.2.1 - created: "2024-01-04T13:22:39.342005942+05:30" + created: "2024-02-02T04:46:20.506809814+05:30" description: Helm chart for Parseable Server digest: 84826fcd1b4c579f301569f43b0309c07e8082bad76f5cdd25f86e86ca2e8192 name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.2.1.tgz + - https://charts.parseable.com/helm-releases/parseable-0.2.1.tgz version: 0.2.1 - apiVersion: v2 appVersion: v0.2.0 - created: "2024-01-04T13:22:39.341730663+05:30" + created: "2024-02-02T04:46:20.50598112+05:30" description: Helm chart for Parseable Server digest: 7a759f7f9809f3935cba685e904c021a0b645f217f4e45b9be185900c467edff name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.2.0.tgz + - https://charts.parseable.com/helm-releases/parseable-0.2.0.tgz version: 0.2.0 - apiVersion: v2 appVersion: v0.1.1 - created: "2024-01-04T13:22:39.341457747+05:30" + created: "2024-02-02T04:46:20.505177572+05:30" description: Helm chart for Parseable Server digest: 37993cf392f662ec7b1fbfc9a2ba00ec906d98723e38f3c91ff1daca97c3d0b3 name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.1.1.tgz + - https://charts.parseable.com/helm-releases/parseable-0.1.1.tgz version: 0.1.1 - apiVersion: v2 appVersion: v0.1.0 - created: "2024-01-04T13:22:39.3411927+05:30" + created: "2024-02-02T04:46:20.50439889+05:30" description: Helm chart for Parseable Server digest: 1d580d072af8d6b1ebcbfee31c2e16c907d08db754780f913b5f0032b403789b name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.1.0.tgz + - https://charts.parseable.com/helm-releases/parseable-0.1.0.tgz version: 0.1.0 - apiVersion: v2 appVersion: v0.0.8 - created: "2024-01-04T13:22:39.340923513+05:30" + created: "2024-02-02T04:46:20.503570899+05:30" description: Helm chart for Parseable Server digest: c805254ffa634f96ecec448bcfff9973339aa9487dd8199b21b17b79a4de9345 name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.0.8.tgz + - https://charts.parseable.com/helm-releases/parseable-0.0.8.tgz version: 0.0.8 - apiVersion: v2 appVersion: v0.0.7 - created: "2024-01-04T13:22:39.340665206+05:30" + created: "2024-02-02T04:46:20.502733202+05:30" description: Helm chart for Parseable Server digest: c591f617ed1fe820bb2c72a4c976a78126f1d1095d552daa07c4700f46c4708a name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.0.7.tgz + - https://charts.parseable.com/helm-releases/parseable-0.0.7.tgz version: 0.0.7 - apiVersion: v2 appVersion: v0.0.6 - created: "2024-01-04T13:22:39.340401784+05:30" + created: "2024-02-02T04:46:20.50197177+05:30" description: Helm chart for Parseable Server digest: f9ae56a6fcd6a59e7bee0436200ddbedeb74ade6073deb435b8fcbaf08dda795 name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.0.6.tgz + - https://charts.parseable.com/helm-releases/parseable-0.0.6.tgz version: 0.0.6 - apiVersion: v2 appVersion: v0.0.5 - created: "2024-01-04T13:22:39.340138909+05:30" + created: "2024-02-02T04:46:20.501227244+05:30" description: Helm chart for Parseable Server digest: 4d6b08a064fba36e16feeb820b77e1e8e60fb6de48dbf7ec8410d03d10c26ad0 name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.0.5.tgz + - https://charts.parseable.com/helm-releases/parseable-0.0.5.tgz version: 0.0.5 - apiVersion: v2 appVersion: v0.0.2 - created: "2024-01-04T13:22:39.339859109+05:30" + created: "2024-02-02T04:46:20.500448574+05:30" description: Helm chart for Parseable Server digest: 38a0a3e4c498afbbcc76ebfcb9cb598fa2ca843a53cc93b3cb4f135b85c10844 name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.0.2.tgz + - https://charts.parseable.com/helm-releases/parseable-0.0.2.tgz version: 0.0.2 - apiVersion: v2 appVersion: v0.0.1 - created: "2024-01-04T13:22:39.339616047+05:30" + created: "2024-02-02T04:46:20.499735527+05:30" description: Helm chart for Parseable Server digest: 1f1142db092b9620ee38bb2294ccbb1c17f807b33bf56da43816af7fe89f301e name: parseable type: application urls: - - https://charts.parseable.io/helm-releases/parseable-0.0.1.tgz + - https://charts.parseable.com/helm-releases/parseable-0.0.1.tgz version: 0.0.1 parseable-operator: - apiVersion: v2 @@ -552,4 +552,4 @@ entries: urls: - https://charts.parseable.io/helm-releases/parseable-operator-0.0.1.tgz version: 0.0.1 -generated: "2024-01-04T13:22:39.335812243+05:30" +generated: "2024-02-02T04:46:20.489307129+05:30" From 1ef78ea0c135592a9f41a45a1558d23ddb873d1c Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Fri, 2 Feb 2024 04:59:47 +0530 Subject: [PATCH 15/73] remove collector from helm chart repo (#648) --- helm-releases/operator-0.0.3.tgz | Bin 29032 -> 29032 bytes helm-releases/parseable-0.7.3.tgz | Bin 46678 -> 46683 bytes index.yaml | 79 +++++++++++++----------------- 3 files changed, 34 insertions(+), 45 deletions(-) diff --git a/helm-releases/operator-0.0.3.tgz b/helm-releases/operator-0.0.3.tgz index 6c8265496d4487da1bc08e20a1878e8605f35631..6f21f6460d1b159ab40730759b5dfe815d31bb2a 100644 GIT binary patch delta 25903 zcmb4~LvSX{7w%(YV%v5yv29Fj+txd=`NrnNwr$(CZQbu*cY8Ot7rp4}Mc1i5b^1Kd zuTS?uPxnFN1p&=X%+a|$Uo^L>_k7K&(#>qZiMs{%i6;KCTvNX97%HIKHaS&@w3LWE z7y{^eA*Y||GUGcQM;!eYW1tDLWq=8?Vs z#>q_X000>odErKgGz#$-*PXe%f- zexx)xOdcvC5O#5w!#BP<_3Dd-Wr&QXS`=Dqb8+a!`rOvJb>RQ}>M7J3S}gqaH}>Pl zcI@j1@c6)#bN%yyEw@Q<^XnePYYLSHHOHy7klYL>`@esvmuX@o=->TyW=#3 zSfnKo!qy^gRY-a4xx`J??8$I?*a>)kDw$MWxeF%C6qG&xn$W|T57HXesioUR|TXnax(! zg7uS&b$9nvD4C>hGYwJGopAP-gOeOW;#(svDy_eiG3QGs0s=2{rZFl%mI&x%b6CY6 zqftO4*|QTr($%7iY(*;M&|(e9@+-^EJ;Tz74mNk!DrhIFwNzNEV#neH!Jk}f{^kPY z%jtDq9jOjH#O_q{oD)CnT0jGA6@ z&a|gV$+yE?Y+{n6R1@1K`UW(dp*#9=;qe*N|6nm_q-7*Hf(DrAILXmLoy7miVGkP9 zl%ea!;E-LLMwojgC{MY=2p@Cb!f-poz&0?LrPMi_TJZiCVN+b&S(djE!975OO^O=D z%7ZEmyAL$4mioS!p3I%Lj32@R+egk=@(iC4ckC4=3}UZ zu8X+`H-lNg52>k`Lifk?Zgk?G^j#*_92Yx4Ci)V~+vP2DSdVkcz!&fP<3uX{^pR61NZ|@0hq~U z`skcY_18xqJDFi?KE!*v6hz)}Q`9ZDljA)o@O~lx`N|oX0K`I-1sRyr(`l9sx39)h zuTuQ@J%4)1et%rPHJm8k?|fkYypHry@t)kk4RpCi-38pTZoeJw=KgH{7X=B4=Dk1$ z69top)xXi_M1jB9B?8)ySuiS9#+w;U&L?(r${PJ3>PDE=DfJ^}*f9;i$ zfM;$RmZT(3Ew??*X&#r|s&vDa`)X$=8)5&U?oZV4lz#6h5Nd`GzyLHq;eUk^$KTm( zGWae}HQX7^jA2kh`7{h(j7IM)? z@fv#O32Z%=_alw~bczE3pXN#FlcmN%f(WC#slq=|6c4&^S(T9)^xxJ8wU zz5lyOFj&&+#Wtzj!x5EVW%c#T9?xb6AQhK{S)NB(hz#u>Kv@ zvyij;4d6B@8_mR+#fz*7YXBB67jF#T6=sSRGIrXPLM#1h$&Fe3KxFx8JE@A@zZmV` zo)IKngjTaF3dpM1^!8OJv+|73GYj}
nMIa1tfP^$E$v_K<$NvpHd@=mC6#EIN!J9 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 delta 25883 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 z%0A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⁢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 a*ZjZNi+<1#aBy%i*uL>cIJkHuxc>oIZ!_co delta 42147 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 Date: Tue, 6 Feb 2024 16:09:56 +0530 Subject: [PATCH 16/73] fix: init_scheduler (#649) Earlier, separate scheduler was initialized for each stream on load time or whenever retention period is set. Now, a single scheduler is initialized which checks retention config of all the streams and performs the retention cleanup. Fixes #636 --- server/src/handlers/http/logstream.rs | 4 +- server/src/main.rs | 2 +- server/src/storage/retention.rs | 67 +++++++++++++++------------ 3 files changed, 39 insertions(+), 34 deletions(-) diff --git a/server/src/handlers/http/logstream.rs b/server/src/handlers/http/logstream.rs index ebcd41189..afd057eda 100644 --- a/server/src/handlers/http/logstream.rs +++ b/server/src/handlers/http/logstream.rs @@ -26,7 +26,7 @@ use serde_json::Value; use crate::alerts::Alerts; use crate::metadata::STREAM_INFO; use crate::option::CONFIG; -use crate::storage::retention::{self, Retention}; +use crate::storage::retention::Retention; use crate::storage::{LogStream, StorageDir}; use crate::{event, stats}; use crate::{metadata, validator}; @@ -219,8 +219,6 @@ pub async fn put_retention( .put_retention(&stream_name, &retention) .await?; - retention::init_scheduler(&stream_name, retention); - Ok(( format!("set retention configuration for log stream {stream_name}"), StatusCode::OK, diff --git a/server/src/main.rs b/server/src/main.rs index f0a1d087c..157c982f1 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -76,7 +76,7 @@ async fn main() -> anyhow::Result<()> { } // track all parquet files already in the data directory - storage::retention::load_retention_from_global().await; + storage::retention::load_retention_from_global(); // load data from stats back to prometheus metrics metrics::load_from_stats_from_storage().await; diff --git a/server/src/storage/retention.rs b/server/src/storage/retention.rs index c395c7d84..82062575a 100644 --- a/server/src/storage/retention.rs +++ b/server/src/storage/retention.rs @@ -43,40 +43,47 @@ fn async_runtime() -> tokio::runtime::Runtime { .unwrap() } -pub async fn load_retention_from_global() { +pub fn load_retention_from_global() { log::info!("loading retention for all streams"); - for stream in STREAM_INFO.list_streams() { - let res = CONFIG - .storage() - .get_object_store() - .get_retention(&stream) - .await; - match res { - Ok(config) => { - if config.tasks.is_empty() { - log::info!("skipping loading retention for {stream}"); - continue; - } - init_scheduler(&stream, config) - } - Err(err) => log::warn!("failed to load retention config for {stream} due to {err:?}"), - } - } + init_scheduler(); } -pub fn init_scheduler(stream: &str, config: Retention) { - log::info!("Setting up schedular for {stream}"); +pub fn init_scheduler() { + log::info!("Setting up schedular"); let mut scheduler = AsyncScheduler::new(); - for Task { action, days, .. } in config.tasks.into_iter() { - let func = match action { - Action::Delete => { - let stream = stream.to_string(); - move || action::delete(stream.clone(), u32::from(days)) - } - }; + let func = move || async { + for stream in STREAM_INFO.list_streams() { + let res = CONFIG + .storage() + .get_object_store() + .get_retention(&stream) + .await; + + match res { + Ok(config) => { + for Task { action, days, .. } in config.tasks.into_iter() { + match action { + Action::Delete => { + let stream = stream.to_string(); + thread::spawn(move || { + let rt = tokio::runtime::Runtime::new().unwrap(); + rt.block_on(async { + // Run the asynchronous delete action + action::delete(stream.clone(), u32::from(days)).await; + }); + }); + } + }; + } + } + Err(err) => { + log::warn!("failed to load retention config for {stream} due to {err:?}") + } + }; + } + }; - scheduler.every(1.day()).at("00:00").run(func); - } + scheduler.every(1.day()).at("00:00").run(func); let handler = thread::spawn(|| { let rt = async_runtime(); @@ -183,7 +190,7 @@ mod action { use crate::option::CONFIG; pub(super) async fn delete(stream_name: String, days: u32) { - log::info!("running retention task - delete"); + log::info!("running retention task - delete for stream={stream_name}"); let retain_until = get_retain_until(Utc::now().date_naive(), days as u64); let Ok(dates) = CONFIG From f873fd151c8ea6426879ed900896530560146258 Mon Sep 17 00:00:00 2001 From: Nikhil Sinha <131262146+nikhilsinhacloudsurfex@users.noreply.github.com> Date: Wed, 7 Feb 2024 12:02:45 +0530 Subject: [PATCH 17/73] fix: removed use of environment var P_STORAGE_UPLOAD_INTERVAL (#653) added const of 60 secs to be used for local to storage sync fixes #651 --- server/src/main.rs | 3 ++- server/src/option.rs | 30 ------------------------------ server/src/storage/staging.rs | 16 ++++++---------- 3 files changed, 8 insertions(+), 41 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index 157c982f1..ef0cb2cc6 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -50,6 +50,7 @@ mod validator; use option::CONFIG; use crate::localcache::LocalCacheManager; +pub const STORAGE_UPLOAD_INTERVAL: u32 = 60; #[actix_web::main] async fn main() -> anyhow::Result<()> { @@ -129,7 +130,7 @@ fn object_store_sync() -> (JoinHandle<()>, oneshot::Receiver<()>, oneshot::Sende rt.block_on(async { let mut scheduler = AsyncScheduler::new(); scheduler - .every((CONFIG.parseable.upload_interval as u32).seconds()) + .every(STORAGE_UPLOAD_INTERVAL.seconds()) // Extra time interval is added so that this schedular does not race with local sync. .plus(5u32.seconds()) .run(|| async { diff --git a/server/src/option.rs b/server/src/option.rs index 624e11388..5d713f28b 100644 --- a/server/src/option.rs +++ b/server/src/option.rs @@ -215,10 +215,6 @@ pub struct Server { /// Size for local cache pub local_cache_size: u64, - /// Interval in seconds after which uncommited data would be - /// uploaded to the storage platform. - pub upload_interval: u64, - /// Username for the basic authentication on the server pub username: String, @@ -284,10 +280,6 @@ impl FromArgMatches for Server { .get_one::(Self::CACHE_SIZE) .cloned() .expect("default value for cache size"); - self.upload_interval = m - .get_one::(Self::UPLOAD_INTERVAL) - .cloned() - .expect("default value for upload"); self.username = m .get_one::(Self::USERNAME) .cloned() @@ -381,7 +373,6 @@ impl Server { pub const STAGING: &'static str = "local-staging-path"; pub const CACHE: &'static str = "cache-path"; pub const CACHE_SIZE: &'static str = "cache-size"; - pub const UPLOAD_INTERVAL: &'static str = "upload-interval"; pub const USERNAME: &'static str = "username"; pub const PASSWORD: &'static str = "password"; pub const CHECK_UPDATE: &'static str = "check-update"; @@ -467,16 +458,6 @@ impl Server { .help("Maximum allowed cache size for all streams combined (In human readable format, e.g 1GiB, 2GiB, 100MB)") .next_line_help(true), ) - .arg( - Arg::new(Self::UPLOAD_INTERVAL) - .long(Self::UPLOAD_INTERVAL) - .env("P_STORAGE_UPLOAD_INTERVAL") - .value_name("SECONDS") - .default_value("60") - .value_parser(validation::upload_interval) - .help("Interval in seconds after which staging data would be sent to the storage") - .next_line_help(true), - ) .arg( Arg::new(Self::USERNAME) .long(Self::USERNAME) @@ -677,7 +658,6 @@ pub mod validation { use path_clean::PathClean; use crate::option::MIN_CACHE_SIZE_BYTES; - use crate::storage::LOCAL_SYNC_INTERVAL; use human_size::{multiples, SpecificSize}; pub fn file_path(s: &str) -> Result { @@ -755,14 +735,4 @@ pub mod validation { } Ok(size) } - - pub fn upload_interval(s: &str) -> Result { - let u = s - .parse::() - .map_err(|_| "invalid upload interval".to_string())?; - if u < LOCAL_SYNC_INTERVAL { - return Err("object storage upload interval must be 60 seconds or more".to_string()); - } - Ok(u) - } } diff --git a/server/src/storage/staging.rs b/server/src/storage/staging.rs index 04d3bef9a..31c5dffed 100644 --- a/server/src/storage/staging.rs +++ b/server/src/storage/staging.rs @@ -134,16 +134,12 @@ impl StorageDir { .ends_with(&hot_filename) }); - //check if arrow files is not empty, fetch the parquet file path from last file from sorted arrow file list - if !(arrow_files.is_empty()) { - arrow_files.sort(); - let key = Self::arrow_path_to_parquet(arrow_files.last().unwrap()); - for arrow_file_path in arrow_files { - grouped_arrow_file - .entry(key.clone()) - .or_default() - .push(arrow_file_path); - } + for arrow_file_path in arrow_files { + let key = Self::arrow_path_to_parquet(&arrow_file_path); + grouped_arrow_file + .entry(key) + .or_default() + .push(arrow_file_path); } grouped_arrow_file From e742a2ee432429f2fee12412c0b2a8ec79d3067a Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Thu, 15 Feb 2024 13:51:48 +0530 Subject: [PATCH 18/73] add license details with cargo-about (#658) --- README.md | 1 + about.hbs | 70 + about.toml | 19 + license.html | 13093 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 13183 insertions(+) create mode 100644 about.hbs create mode 100644 about.toml create mode 100644 license.html diff --git a/README.md b/README.md index 526cee0f0..f4f117391 100644 --- a/README.md +++ b/README.md @@ -92,3 +92,4 @@ But with log data growing exponentially, today's log data challenges involve who ### Supported by + diff --git a/about.hbs b/about.hbs new file mode 100644 index 000000000..699b3b04e --- /dev/null +++ b/about.hbs @@ -0,0 +1,70 @@ + + + + + + + +
+
+

Third Party Licenses

+

This page lists the licenses of the projects used in cargo-about.

+
+ +

Overview of licenses:

+
    + {{#each overview}} +
  • {{name}} ({{count}})
  • + {{/each}} +
+ +

All license text:

+ +
+ + + diff --git a/about.toml b/about.toml new file mode 100644 index 000000000..5c0c65fe7 --- /dev/null +++ b/about.toml @@ -0,0 +1,19 @@ +accepted = [ + "Apache-2.0", + "MIT", + "BSD-3-Clause", + "ISC", + "MPL-2.0", + "NOASSERTION", + "AGPL-3.0", + "GPL-3.0", + "BSD-2-Clause", + "BSL-1.0", + "OpenSSL", + "Unicode-DFS-2016", +] + +workarounds = [ + "ring", + "rustls", +] diff --git a/license.html b/license.html new file mode 100644 index 000000000..6443966a2 --- /dev/null +++ b/license.html @@ -0,0 +1,13093 @@ + + + + + + + +
+
+

Third Party Licenses

+

This page lists the licenses of the projects used in cargo-about.

+
+ +

Overview of licenses:

+ + +

All license text:

+
    +
  • +

    GNU Affero General Public License v3.0

    +

    Used by:

    + +
    GNU AFFERO GENERAL PUBLIC LICENSE
    +Version 3, 19 November 2007
    +
    +Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
    +
    +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
    +
    +                            Preamble
    +
    +The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.
    +
    +The licenses for most software and other practical works are designed to take away your freedom to share and change the works.  By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.
    +
    +When we speak of free software, we are referring to freedom, not price.  Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
    +
    +Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software.
    +
    +A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate.  Many developers of free software are heartened and encouraged by the resulting cooperation.  However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.
    +
    +The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community.  It requires the operator of a network server to provide the source code of the modified version running there to the users of that server.  Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.
    +
    +An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals.  This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license.
    +
    +The precise terms and conditions for copying, distribution and modification follow.
    +
    +                       TERMS AND CONDITIONS
    +
    +0. Definitions.
    +
    +"This License" refers to version 3 of the GNU Affero General Public License.
    +
    +"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
    +
    +"The Program" refers to any copyrightable work licensed under this License.  Each licensee is addressed as "you".  "Licensees" and "recipients" may be individuals or organizations.
    +
    +To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy.  The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.
    +
    +A "covered work" means either the unmodified Program or a work based on the Program.
    +
    +To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy.  Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
    +
    +To "convey" a work means any kind of propagation that enables other parties to make or receive copies.  Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
    +
    +An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License.  If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
    +
    +1. Source Code.
    +The "source code" for a work means the preferred form of the work for making modifications to it.  "Object code" means any non-source form of a work.
    +
    +A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
    +
    +The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form.  A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
    +
    +The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities.  However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.  For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those
    +subprograms and other parts of the work.
    +
    +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
    +
    +The Corresponding Source for a work in source code form is that same work.
    +
    +2. Basic Permissions.
    +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.  This License explicitly affirms your unlimited permission to run the unmodified Program.  The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work.  This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
    +
    +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force.  You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright.  Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
    +
    +Conveying under any other circumstances is permitted solely under the conditions stated below.  Sublicensing is not allowed; section 10 makes it unnecessary.
    +
    +3. Protecting Users' Legal Rights From Anti-Circumvention Law.
    +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
    +
    +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
    +
    +4. Conveying Verbatim Copies.
    +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
    +
    +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
    +
    +5. Conveying Modified Source Versions.
    +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
    +
    +    a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
    +
    +    b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7.  This requirement modifies the requirement in section 4 to "keep intact all notices".
    +
    +    c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy.  This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged.  This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
    +
    +    d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
    +
    +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit.  Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
    +
    +6. Conveying Non-Source Forms.
    +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
    +
    +    a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
    +
    +    b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
    +
    +    c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source.  This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
    +
    +    d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge.  You need not require recipients to copy the Corresponding Source along with the object code.  If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source.  Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
    +
    +    e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
    +
    +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
    +
    +A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling.  In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage.  For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product.  A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
    +
    +"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source.  The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
    +
    +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information.  But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
    +
    +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed.  Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
    +
    +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
    +
    +7. Additional Terms.
    +"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law.  If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
    +
    +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it.  (Additional permissions may be written to require their own removal in certain cases when you modify the work.)  You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
    +
    +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
    +
    +    a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
    +
    +    b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
    +
    +    c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
    +
    +    d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
    +
    +    e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
    +
    +    f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
    +
    +All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10.  If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.  If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
    +
    +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
    +
    +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
    +
    +8. Termination.
    +
    +You may not propagate or modify a covered work except as expressly provided under this License.  Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
    +
    +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
    +
    +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
    +
    +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License.  If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
    +
    +9. Acceptance Not Required for Having Copies.
    +
    +You are not required to accept this License in order to receive or run a copy of the Program.  Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance.  However, nothing other than this License grants you permission to propagate or modify any covered work.  These actions infringe copyright if you do not accept this License.  Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
    +
    +10. Automatic Licensing of Downstream Recipients.
    +
    +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License.  You are not responsible for enforcing compliance by third parties with this License.
    +
    +An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations.  If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
    +
    +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License.  For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
    +
    +11. Patents.
    +
    +A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based.  The work thus licensed is called the contributor's "contributor version".
    +
    +A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version.  For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
    +
    +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
    +
    +In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement).  To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
    +
    +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent
    +license to downstream recipients.  "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
    +
    +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
    +
    +A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License.  You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
    +
    +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
    +
    +12. No Surrender of Others' Freedom.
    +
    +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License.  If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may
    +not convey it at all.  For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
    +
    +13. Remote Network Interaction; Use with the GNU General Public License.
    +
    +Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software.  This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
    +
    +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work.  The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.
    +
    +14. Revised Versions of this License.
    +
    +The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time.  Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
    +
    +Each version is given a distinguishing version number.  If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation.  If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.
    +
    +If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
    +
    +Later license versions may give you additional or different permissions.  However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
    +
    +15. Disclaimer of Warranty.
    +
    +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
    +
    +16. Limitation of Liability.
    +
    +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
    +
    +17. Interpretation of Sections 15 and 16.
    +
    +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
    +
    +END OF TERMS AND CONDITIONS
    +
    +            How to Apply These Terms to Your New Programs
    +
    +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
    +
    +To do so, attach the following notices to the program.  It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
    +
    +     <one line to give the program's name and a brief idea of what it does.>
    +     Copyright (C) <year>  <name of author>
    +
    +     This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
    +
    +     This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details.
    +
    +     You should have received a copy of the GNU Affero General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.
    +
    +Also add information on how to contact you by electronic and paper mail.
    +
    +If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source.  For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code.  There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.
    +
    +You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <http://www.gnu.org/licenses/>.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    +                                 Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    +                                 Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    +                                 Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright 2022 Jacob Pratt et al.
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    +                                 Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright [yyyy] [name of copyright owner]
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    +                                 Apache License
    +                           Version 2.0, January 2004
    +                        https://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright [yyyy] [name of copyright owner]
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       https://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    +                                 Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright [yyyy] [name of copyright owner]
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright (c) Microsoft Corporation.
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright 2020 Tomasz "Soveu" Marx
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright 2021 Esteban Borai and Contributors
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright [yyyy] [name of copyright owner]
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright [yyyy] [name of copyright owner]
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +   
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "{}"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright 2016 Cyril Plisko
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "{}"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright 2017 Juniper Networks, Inc.
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "{}"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright 2017-NOW Actix Team
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "{}"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright 2017-NOW Nikolay Kim
    +   Copyright 2017-NOW svartalf and Actix team
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "{}"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright 2019 TiKV Project Authors.
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "{}"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright 2022-NOW Rob Ede
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "{}"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright {yyyy} {name of copyright owner}
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "{}"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright {yyyy} {name of copyright owner}
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                     Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1.  Definitions.
    +
    +    "License" shall mean the terms and conditions for use, reproduction,
    +    and distribution as defined by Sections 1 through 9 of this document.
    +
    +    "Licensor" shall mean the copyright owner or entity authorized by
    +    the copyright owner that is granting the License.
    +
    +    "Legal Entity" shall mean the union of the acting entity and all
    +    other entities that control, are controlled by, or are under common
    +    control with that entity. For the purposes of this definition,
    +    "control" means (i) the power, direct or indirect, to cause the
    +    direction or management of such entity, whether by contract or
    +    otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +    outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +    "You" (or "Your") shall mean an individual or Legal Entity
    +    exercising permissions granted by this License.
    +
    +    "Source" form shall mean the preferred form for making modifications,
    +    including but not limited to software source code, documentation
    +    source, and configuration files.
    +
    +    "Object" form shall mean any form resulting from mechanical
    +    transformation or translation of a Source form, including but
    +    not limited to compiled object code, generated documentation,
    +    and conversions to other media types.
    +
    +    "Work" shall mean the work of authorship, whether in Source or
    +    Object form, made available under the License, as indicated by a
    +    copyright notice that is included in or attached to the work
    +    (an example is provided in the Appendix below).
    +
    +    "Derivative Works" shall mean any work, whether in Source or Object
    +    form, that is based on (or derived from) the Work and for which the
    +    editorial revisions, annotations, elaborations, or other modifications
    +    represent, as a whole, an original work of authorship. For the purposes
    +    of this License, Derivative Works shall not include works that remain
    +    separable from, or merely link (or bind by name) to the interfaces of,
    +    the Work and Derivative Works thereof.
    +
    +    "Contribution" shall mean any work of authorship, including
    +    the original version of the Work and any modifications or additions
    +    to that Work or Derivative Works thereof, that is intentionally
    +    submitted to Licensor for inclusion in the Work by the copyright owner
    +    or by an individual or Legal Entity authorized to submit on behalf of
    +    the copyright owner. For the purposes of this definition, "submitted"
    +    means any form of electronic, verbal, or written communication sent
    +    to the Licensor or its representatives, including but not limited to
    +    communication on electronic mailing lists, source code control systems,
    +    and issue tracking systems that are managed by, or on behalf of, the
    +    Licensor for the purpose of discussing and improving the Work, but
    +    excluding communication that is conspicuously marked or otherwise
    +    designated in writing by the copyright owner as "Not a Contribution."
    +
    +    "Contributor" shall mean Licensor and any individual or Legal Entity
    +    on behalf of whom a Contribution has been received by Licensor and
    +    subsequently incorporated within the Work.
    +
    +2.  Grant of Copyright License. Subject to the terms and conditions of
    +    this License, each Contributor hereby grants to You a perpetual,
    +    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +    copyright license to reproduce, prepare Derivative Works of,
    +    publicly display, publicly perform, sublicense, and distribute the
    +    Work and such Derivative Works in Source or Object form.
    +
    +3.  Grant of Patent License. Subject to the terms and conditions of
    +    this License, each Contributor hereby grants to You a perpetual,
    +    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +    (except as stated in this section) patent license to make, have made,
    +    use, offer to sell, sell, import, and otherwise transfer the Work,
    +    where such license applies only to those patent claims licensable
    +    by such Contributor that are necessarily infringed by their
    +    Contribution(s) alone or by combination of their Contribution(s)
    +    with the Work to which such Contribution(s) was submitted. If You
    +    institute patent litigation against any entity (including a
    +    cross-claim or counterclaim in a lawsuit) alleging that the Work
    +    or a Contribution incorporated within the Work constitutes direct
    +    or contributory patent infringement, then any patent licenses
    +    granted to You under this License for that Work shall terminate
    +    as of the date such litigation is filed.
    +
    +4.  Redistribution. You may reproduce and distribute copies of the
    +    Work or Derivative Works thereof in any medium, with or without
    +    modifications, and in Source or Object form, provided that You
    +    meet the following conditions:
    +
    +    (a) You must give any other recipients of the Work or
    +    Derivative Works a copy of this License; and
    +
    +    (b) You must cause any modified files to carry prominent notices
    +    stating that You changed the files; and
    +
    +    (c) You must retain, in the Source form of any Derivative Works
    +    that You distribute, all copyright, patent, trademark, and
    +    attribution notices from the Source form of the Work,
    +    excluding those notices that do not pertain to any part of
    +    the Derivative Works; and
    +
    +    (d) If the Work includes a "NOTICE" text file as part of its
    +    distribution, then any Derivative Works that You distribute must
    +    include a readable copy of the attribution notices contained
    +    within such NOTICE file, excluding those notices that do not
    +    pertain to any part of the Derivative Works, in at least one
    +    of the following places: within a NOTICE text file distributed
    +    as part of the Derivative Works; within the Source form or
    +    documentation, if provided along with the Derivative Works; or,
    +    within a display generated by the Derivative Works, if and
    +    wherever such third-party notices normally appear. The contents
    +    of the NOTICE file are for informational purposes only and
    +    do not modify the License. You may add Your own attribution
    +    notices within Derivative Works that You distribute, alongside
    +    or as an addendum to the NOTICE text from the Work, provided
    +    that such additional attribution notices cannot be construed
    +    as modifying the License.
    +
    +    You may add Your own copyright statement to Your modifications and
    +    may provide additional or different license terms and conditions
    +    for use, reproduction, or distribution of Your modifications, or
    +    for any such Derivative Works as a whole, provided Your use,
    +    reproduction, and distribution of the Work otherwise complies with
    +    the conditions stated in this License.
    +
    +5.  Submission of Contributions. Unless You explicitly state otherwise,
    +    any Contribution intentionally submitted for inclusion in the Work
    +    by You to the Licensor shall be under the terms and conditions of
    +    this License, without any additional terms or conditions.
    +    Notwithstanding the above, nothing herein shall supersede or modify
    +    the terms of any separate license agreement you may have executed
    +    with Licensor regarding such Contributions.
    +
    +6.  Trademarks. This License does not grant permission to use the trade
    +    names, trademarks, service marks, or product names of the Licensor,
    +    except as required for reasonable and customary use in describing the
    +    origin of the Work and reproducing the content of the NOTICE file.
    +
    +7.  Disclaimer of Warranty. Unless required by applicable law or
    +    agreed to in writing, Licensor provides the Work (and each
    +    Contributor provides its Contributions) on an "AS IS" BASIS,
    +    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +    implied, including, without limitation, any warranties or conditions
    +    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +    PARTICULAR PURPOSE. You are solely responsible for determining the
    +    appropriateness of using or redistributing the Work and assume any
    +    risks associated with Your exercise of permissions under this License.
    +
    +8.  Limitation of Liability. In no event and under no legal theory,
    +    whether in tort (including negligence), contract, or otherwise,
    +    unless required by applicable law (such as deliberate and grossly
    +    negligent acts) or agreed to in writing, shall any Contributor be
    +    liable to You for damages, including any direct, indirect, special,
    +    incidental, or consequential damages of any character arising as a
    +    result of this License or out of the use or inability to use the
    +    Work (including but not limited to damages for loss of goodwill,
    +    work stoppage, computer failure or malfunction, or any and all
    +    other commercial damages or losses), even if such Contributor
    +    has been advised of the possibility of such damages.
    +
    +9.  Accepting Warranty or Additional Liability. While redistributing
    +    the Work or Derivative Works thereof, You may choose to offer,
    +    and charge a fee for, acceptance of support, warranty, indemnity,
    +    or other liability obligations and/or rights consistent with this
    +    License. However, in accepting such obligations, You may act only
    +    on Your own behalf and on Your sole responsibility, not on behalf
    +    of any other Contributor, and only if You agree to indemnify,
    +    defend, and hold each Contributor harmless for any liability
    +    incurred by, or claims asserted against, such Contributor by reason
    +    of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright (c) 2016 Alex Crichton
    +Copyright (c) 2017 The Tokio Authors
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2014 Paho Lurie-Gregg
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2016 Sean McArthur
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2017 Sergio Benitez
    +Copyright 2014 Alex Chricton
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2017 http-rs authors
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2017 quininer kel
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2018 The pin-utils authors
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2019 The CryptoCorrosion Contributors
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +   http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2019- Jake Goulding
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2019-2020 CreepySkeleton <creepy-skeleton@yandex.ru>
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2020 Andrew Straw
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +   http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     https://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     https://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     https://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	https://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     https://www.apache.org/licenses/LICENSE-2.0
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	https://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright 2019-2020 CreepySkeleton <creepy-skeleton@yandex.ru>
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
                                  Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +Copyright 2017 Aaron Power
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    # Licensed to the Apache Software Foundation (ASF) under one
    +# or more contributor license agreements.  See the NOTICE file
    +# distributed with this work for additional information
    +# regarding copyright ownership.  The ASF licenses this file
    +# to you under the Apache License, Version 2.0 (the
    +# "License"); you may not use this file except in compliance
    +# with the License.  You may obtain a copy of the License at
    +#
    +#   http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing,
    +# software distributed under the License is distributed on an
    +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +# KIND, either express or implied.  See the License for the
    +# specific language governing permissions and limitations
    +# under the License.
    +pytest
    +pyspark
    +black
    +pandas
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    # Licensing
    +
    +Lexical is dual licensed under the Apache 2.0 license as well as the MIT
    +license. See the LICENCE-MIT and the LICENCE-APACHE files for the licenses.
    +
    +Other licensing terms may apply, as described in depth below for various features and functionality. All assume use of `lexical` or `lexical-core`.
    +
    +## `write-floats, not(compact)`
    +
    +`lexical-write-float/src/algorithm.rs` is a direct port of the reference C++ implementation of Dragonbox, found [here](https://github.com/jk-jeon/dragonbox/).
    +This code (used if the `write-floats` feature is enabled and the `compact` feature is disabled) is subject to a [Boost Software License](https://github.com/jk-jeon/dragonbox/blob/71993f55067a89f4b4e27591605e21521f5c61be/LICENSE-Boost) and a modified [Apache2 license](https://github.com/jk-jeon/dragonbox/blob/71993f55067a89f4b4e27591605e21521f5c61be/LICENSE-Apache2-LLVM), shown in the [Boost Software License](#boost-software-license) and [Apache2 With LLVM Exceptions](#apache2-with-llvm-exceptions) sections below.
    +
    +## `write-floats, compact`
    +
    +`lexical-write-float/src/compact.rs` is a direct port of a C++ implementation of the Grisu algorithm, found [here](https://github.com/night-shift/fpconv/).
    +This code (used if both the `write-floats` and `compact` features are enabled) is subject to a [MIT License](https://github.com/night-shift/fpconv/blob/dfeb7e938fb85fb5eca130b84f856705ced75012/license), shown in the [fpconv License](#fpconv-license) section below.
    +
    +## `write-floats, radix`
    +
    +`lexical-write-float/src/radix.rs` is adapted from the V8 implementation found [here](). This code (used if both the `parse-floats` and `radix` features are enabled) is subject to a [3-clause BSD license](https://github.com/v8/v8/blob/f80bfeaf0792652bfbc1f174d5a7b8ab8bc0cbbd/LICENSE.v8), shown in the [V8 License](#v8-license) section below.
    +
    +## `parse-floats, compact`
    +
    +`lexical-parse-float/src/bellerophon.rs` is loosely based off the Golang implementation,
    +found [here](https://github.com/golang/go/blob/b10849fbb97a2244c086991b4623ae9f32c212d0/src/strconv/extfloat.go). This code (used if both the `parse-floats` and `compact` features are enabled) is subject to a [3-clause BSD license](https://github.com/golang/go/blob/b10849fbb97a2244c086991b4623ae9f32c212d0/LICENSE), shown in the [Go License](#go-license) section below.
    +
    +# License Terms
    +
    +This contains complete copies of the licensing terms for the feature-dependent code described above.
    +
    +## Go License
    +
    +Copyright (c) 2009 The Go Authors. All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +
    +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    +* Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +## Boost Software License
    +
    +Boost Software License - Version 1.0 - August 17th, 2003
    +
    +Permission is hereby granted, free of charge, to any person or organization
    +obtaining a copy of the software and accompanying documentation covered by
    +this license (the "Software") to use, reproduce, display, distribute,
    +execute, and transmit the Software, and to prepare derivative works of the
    +Software, and to permit third-parties to whom the Software is furnished to
    +do so, all subject to the following:
    +
    +The copyright notices in the Software and this entire statement, including
    +the above license grant, this restriction and the following disclaimer,
    +must be included in all copies of the Software, in whole or in part, and
    +all derivative works of the Software, unless such copies or derivative
    +works are solely in the form of machine-executable object code generated by
    +a source language processor.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
    +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
    +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
    +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +## Apache2 With LLVM Exceptions
    +
    +_Version 2.0, January 2004_
    +_&lt;<http://www.apache.org/licenses/>&gt;_
    +
    +### Terms and Conditions for use, reproduction, and distribution
    +
    +#### 1. Definitions
    +
    +“License” shall mean the terms and conditions for use, reproduction, and
    +distribution as defined by Sections 1 through 9 of this document.
    +
    +“Licensor” shall mean the copyright owner or entity authorized by the copyright
    +owner that is granting the License.
    +
    +“Legal Entity” shall mean the union of the acting entity and all other entities
    +that control, are controlled by, or are under common control with that entity.
    +For the purposes of this definition, “control” means **(i)** the power, direct or
    +indirect, to cause the direction or management of such entity, whether by
    +contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the
    +outstanding shares, or **(iii)** beneficial ownership of such entity.
    +
    +“You” (or “Your”) shall mean an individual or Legal Entity exercising
    +permissions granted by this License.
    +
    +“Source” form shall mean the preferred form for making modifications, including
    +but not limited to software source code, documentation source, and configuration
    +files.
    +
    +“Object” form shall mean any form resulting from mechanical transformation or
    +translation of a Source form, including but not limited to compiled object code,
    +generated documentation, and conversions to other media types.
    +
    +“Work” shall mean the work of authorship, whether in Source or Object form, made
    +available under the License, as indicated by a copyright notice that is included
    +in or attached to the work (an example is provided in the Appendix below).
    +
    +“Derivative Works” shall mean any work, whether in Source or Object form, that
    +is based on (or derived from) the Work and for which the editorial revisions,
    +annotations, elaborations, or other modifications represent, as a whole, an
    +original work of authorship. For the purposes of this License, Derivative Works
    +shall not include works that remain separable from, or merely link (or bind by
    +name) to the interfaces of, the Work and Derivative Works thereof.
    +
    +“Contribution” shall mean any work of authorship, including the original version
    +of the Work and any modifications or additions to that Work or Derivative Works
    +thereof, that is intentionally submitted to Licensor for inclusion in the Work
    +by the copyright owner or by an individual or Legal Entity authorized to submit
    +on behalf of the copyright owner. For the purposes of this definition,
    +“submitted” means any form of electronic, verbal, or written communication sent
    +to the Licensor or its representatives, including but not limited to
    +communication on electronic mailing lists, source code control systems, and
    +issue tracking systems that are managed by, or on behalf of, the Licensor for
    +the purpose of discussing and improving the Work, but excluding communication
    +that is conspicuously marked or otherwise designated in writing by the copyright
    +owner as “Not a Contribution.”
    +
    +“Contributor” shall mean Licensor and any individual or Legal Entity on behalf
    +of whom a Contribution has been received by Licensor and subsequently
    +incorporated within the Work.
    +
    +#### 2. Grant of Copyright License
    +
    +Subject to the terms and conditions of this License, each Contributor hereby
    +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
    +irrevocable copyright license to reproduce, prepare Derivative Works of,
    +publicly display, publicly perform, sublicense, and distribute the Work and such
    +Derivative Works in Source or Object form.
    +
    +#### 3. Grant of Patent License
    +
    +Subject to the terms and conditions of this License, each Contributor hereby
    +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
    +irrevocable (except as stated in this section) patent license to make, have
    +made, use, offer to sell, sell, import, and otherwise transfer the Work, where
    +such license applies only to those patent claims licensable by such Contributor
    +that are necessarily infringed by their Contribution(s) alone or by combination
    +of their Contribution(s) with the Work to which such Contribution(s) was
    +submitted. If You institute patent litigation against any entity (including a
    +cross-claim or counterclaim in a lawsuit) alleging that the Work or a
    +Contribution incorporated within the Work constitutes direct or contributory
    +patent infringement, then any patent licenses granted to You under this License
    +for that Work shall terminate as of the date such litigation is filed.
    +
    +#### 4. Redistribution
    +
    +You may reproduce and distribute copies of the Work or Derivative Works thereof
    +in any medium, with or without modifications, and in Source or Object form,
    +provided that You meet the following conditions:
    +
    +* **(a)** You must give any other recipients of the Work or Derivative Works a copy of
    +this License; and
    +* **(b)** You must cause any modified files to carry prominent notices stating that You
    +changed the files; and
    +* **(c)** You must retain, in the Source form of any Derivative Works that You distribute,
    +all copyright, patent, trademark, and attribution notices from the Source form
    +of the Work, excluding those notices that do not pertain to any part of the
    +Derivative Works; and
    +* **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any
    +Derivative Works that You distribute must include a readable copy of the
    +attribution notices contained within such NOTICE file, excluding those notices
    +that do not pertain to any part of the Derivative Works, in at least one of the
    +following places: within a NOTICE text file distributed as part of the
    +Derivative Works; within the Source form or documentation, if provided along
    +with the Derivative Works; or, within a display generated by the Derivative
    +Works, if and wherever such third-party notices normally appear. The contents of
    +the NOTICE file are for informational purposes only and do not modify the
    +License. You may add Your own attribution notices within Derivative Works that
    +You distribute, alongside or as an addendum to the NOTICE text from the Work,
    +provided that such additional attribution notices cannot be construed as
    +modifying the License.
    +
    +You may add Your own copyright statement to Your modifications and may provide
    +additional or different license terms and conditions for use, reproduction, or
    +distribution of Your modifications, or for any such Derivative Works as a whole,
    +provided Your use, reproduction, and distribution of the Work otherwise complies
    +with the conditions stated in this License.
    +
    +#### 5. Submission of Contributions
    +
    +Unless You explicitly state otherwise, any Contribution intentionally submitted
    +for inclusion in the Work by You to the Licensor shall be under the terms and
    +conditions of this License, without any additional terms or conditions.
    +Notwithstanding the above, nothing herein shall supersede or modify the terms of
    +any separate license agreement you may have executed with Licensor regarding
    +such Contributions.
    +
    +#### 6. Trademarks
    +
    +This License does not grant permission to use the trade names, trademarks,
    +service marks, or product names of the Licensor, except as required for
    +reasonable and customary use in describing the origin of the Work and
    +reproducing the content of the NOTICE file.
    +
    +#### 7. Disclaimer of Warranty
    +
    +Unless required by applicable law or agreed to in writing, Licensor provides the
    +Work (and each Contributor provides its Contributions) on an “AS IS” BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
    +including, without limitation, any warranties or conditions of TITLE,
    +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
    +solely responsible for determining the appropriateness of using or
    +redistributing the Work and assume any risks associated with Your exercise of
    +permissions under this License.
    +
    +#### 8. Limitation of Liability
    +
    +In no event and under no legal theory, whether in tort (including negligence),
    +contract, or otherwise, unless required by applicable law (such as deliberate
    +and grossly negligent acts) or agreed to in writing, shall any Contributor be
    +liable to You for damages, including any direct, indirect, special, incidental,
    +or consequential damages of any character arising as a result of this License or
    +out of the use or inability to use the Work (including but not limited to
    +damages for loss of goodwill, work stoppage, computer failure or malfunction, or
    +any and all other commercial damages or losses), even if such Contributor has
    +been advised of the possibility of such damages.
    +
    +#### 9. Accepting Warranty or Additional Liability
    +
    +While redistributing the Work or Derivative Works thereof, You may choose to
    +offer, and charge a fee for, acceptance of support, warranty, indemnity, or
    +other liability obligations and/or rights consistent with this License. However,
    +in accepting such obligations, You may act only on Your own behalf and on Your
    +sole responsibility, not on behalf of any other Contributor, and only if You
    +agree to indemnify, defend, and hold each Contributor harmless for any liability
    +incurred by, or claims asserted against, such Contributor by reason of your
    +accepting any such warranty or additional liability.
    +
    +_END OF TERMS AND CONDITIONS_
    +
    +### APPENDIX: How to apply the Apache License to your work
    +
    +To apply the Apache License to your work, attach the following boilerplate
    +notice, with the fields enclosed by brackets `[]` replaced with your own
    +identifying information. (Don't include the brackets!) The text should be
    +enclosed in the appropriate comment syntax for the file format. We also
    +recommend that a file or class name and description of purpose be included on
    +the same “printed page” as the copyright notice for easier identification within
    +third-party archives.
    +
    +    Copyright [yyyy] [name of copyright owner]
    +
    +    Licensed under the Apache License, Version 2.0 (the "License");
    +    you may not use this file except in compliance with the License.
    +    You may obtain a copy of the License at
    +
    +      http://www.apache.org/licenses/LICENSE-2.0
    +
    +    Unless required by applicable law or agreed to in writing, software
    +    distributed under the License is distributed on an "AS IS" BASIS,
    +    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +    See the License for the specific language governing permissions and
    +    limitations under the License.
    +
    +### LLVM Exceptions to the Apache 2.0 License
    +
    +As an exception, if, as a result of your compiling your source code, portions
    +of this Software are embedded into an Object form of such source code, you
    +may redistribute such embedded portions in such Object form without complying
    +with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
    +
    +In addition, if you combine or link compiled forms of this Software with
    +software that is licensed under the GPLv2 ("Combined Software") and if a
    +court of competent jurisdiction determines that the patent provision (Section
    +3), the indemnity provision (Section 9) or other Section of the License
    +conflicts with the conditions of the GPLv2, you may retroactively and
    +prospectively choose to deem waived or otherwise exclude such Section(s) of
    +the License, but only in their entirety and only with respect to the Combined
    +Software.
    +
    +## V8 License
    +
    +Copyright 2014, the V8 project authors. All rights reserved.
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +
    +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    +* Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +## fpconv License
    +
    +The MIT License
    +
    +Copyright (c) 2013 Andreas Samoljuk
    +
    +Permission is hereby granted, free of charge, to any person obtaining
    +a copy of this software and associated documentation files (the
    +"Software"), to deal in the Software without restriction, including
    +without limitation the rights to use, copy, modify, merge, publish,
    +distribute, sublicense, and/or sell copies of the Software, and to
    +permit persons to whom the Software is furnished to do so, subject to
    +the following conditions:
    +
    +The above copyright notice and this permission notice shall be
    +included in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
    +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    // Licensed to the Apache Software Foundation (ASF) under one
    +// or more contributor license agreements.  See the NOTICE file
    +// distributed with this work for additional information
    +// regarding copyright ownership.  The ASF licenses this file
    +// to you under the Apache License, Version 2.0 (the
    +// "License"); you may not use this file except in compliance
    +// with the License.  You may obtain a copy of the License at
    +//
    +//   http://www.apache.org/licenses/LICENSE-2.0
    +//
    +// Unless required by applicable law or agreed to in writing,
    +// software distributed under the License is distributed on an
    +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +// KIND, either express or implied.  See the License for the
    +// specific language governing permissions and limitations
    +// under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    // Licensed to the Apache Software Foundation (ASF) under one
    +// or more contributor license agreements.  See the NOTICE file
    +// distributed with this work for additional information
    +// regarding copyright ownership.  The ASF licenses this file
    +// to you under the Apache License, Version 2.0 (the
    +// "License"); you may not use this file except in compliance
    +// with the License.  You may obtain a copy of the License at
    +//
    +//   http://www.apache.org/licenses/LICENSE-2.0
    +//
    +// Unless required by applicable law or agreed to in writing,
    +// software distributed under the License is distributed on an
    +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +// KIND, either express or implied.  See the License for the
    +// specific language governing permissions and limitations
    +// under the License.
    +
    +pub mod page_util;
    +
    +#[cfg(test)]
    +pub mod file_util;
    +
    +#[cfg(test)]
    +pub mod rand_gen;
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    // Licensed under the Apache License, Version 2.0
    +// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
    +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
    +// All files in the project carrying such notice may not be copied, modified, or distributed
    +// except according to those terms.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    Apache License
    +                           Version 2.0, January 2004
    +                        http://www.apache.org/licenses/
    +
    +   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +   1. Definitions.
    +
    +      "License" shall mean the terms and conditions for use, reproduction,
    +      and distribution as defined by Sections 1 through 9 of this document.
    +
    +      "Licensor" shall mean the copyright owner or entity authorized by
    +      the copyright owner that is granting the License.
    +
    +      "Legal Entity" shall mean the union of the acting entity and all
    +      other entities that control, are controlled by, or are under common
    +      control with that entity. For the purposes of this definition,
    +      "control" means (i) the power, direct or indirect, to cause the
    +      direction or management of such entity, whether by contract or
    +      otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +      outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +      "You" (or "Your") shall mean an individual or Legal Entity
    +      exercising permissions granted by this License.
    +
    +      "Source" form shall mean the preferred form for making modifications,
    +      including but not limited to software source code, documentation
    +      source, and configuration files.
    +
    +      "Object" form shall mean any form resulting from mechanical
    +      transformation or translation of a Source form, including but
    +      not limited to compiled object code, generated documentation,
    +      and conversions to other media types.
    +
    +      "Work" shall mean the work of authorship, whether in Source or
    +      Object form, made available under the License, as indicated by a
    +      copyright notice that is included in or attached to the work
    +      (an example is provided in the Appendix below).
    +
    +      "Derivative Works" shall mean any work, whether in Source or Object
    +      form, that is based on (or derived from) the Work and for which the
    +      editorial revisions, annotations, elaborations, or other modifications
    +      represent, as a whole, an original work of authorship. For the purposes
    +      of this License, Derivative Works shall not include works that remain
    +      separable from, or merely link (or bind by name) to the interfaces of,
    +      the Work and Derivative Works thereof.
    +
    +      "Contribution" shall mean any work of authorship, including
    +      the original version of the Work and any modifications or additions
    +      to that Work or Derivative Works thereof, that is intentionally
    +      submitted to Licensor for inclusion in the Work by the copyright owner
    +      or by an individual or Legal Entity authorized to submit on behalf of
    +      the copyright owner. For the purposes of this definition, "submitted"
    +      means any form of electronic, verbal, or written communication sent
    +      to the Licensor or its representatives, including but not limited to
    +      communication on electronic mailing lists, source code control systems,
    +      and issue tracking systems that are managed by, or on behalf of, the
    +      Licensor for the purpose of discussing and improving the Work, but
    +      excluding communication that is conspicuously marked or otherwise
    +      designated in writing by the copyright owner as "Not a Contribution."
    +
    +      "Contributor" shall mean Licensor and any individual or Legal Entity
    +      on behalf of whom a Contribution has been received by Licensor and
    +      subsequently incorporated within the Work.
    +
    +   2. Grant of Copyright License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      copyright license to reproduce, prepare Derivative Works of,
    +      publicly display, publicly perform, sublicense, and distribute the
    +      Work and such Derivative Works in Source or Object form.
    +
    +   3. Grant of Patent License. Subject to the terms and conditions of
    +      this License, each Contributor hereby grants to You a perpetual,
    +      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +      (except as stated in this section) patent license to make, have made,
    +      use, offer to sell, sell, import, and otherwise transfer the Work,
    +      where such license applies only to those patent claims licensable
    +      by such Contributor that are necessarily infringed by their
    +      Contribution(s) alone or by combination of their Contribution(s)
    +      with the Work to which such Contribution(s) was submitted. If You
    +      institute patent litigation against any entity (including a
    +      cross-claim or counterclaim in a lawsuit) alleging that the Work
    +      or a Contribution incorporated within the Work constitutes direct
    +      or contributory patent infringement, then any patent licenses
    +      granted to You under this License for that Work shall terminate
    +      as of the date such litigation is filed.
    +
    +   4. Redistribution. You may reproduce and distribute copies of the
    +      Work or Derivative Works thereof in any medium, with or without
    +      modifications, and in Source or Object form, provided that You
    +      meet the following conditions:
    +
    +      (a) You must give any other recipients of the Work or
    +          Derivative Works a copy of this License; and
    +
    +      (b) You must cause any modified files to carry prominent notices
    +          stating that You changed the files; and
    +
    +      (c) You must retain, in the Source form of any Derivative Works
    +          that You distribute, all copyright, patent, trademark, and
    +          attribution notices from the Source form of the Work,
    +          excluding those notices that do not pertain to any part of
    +          the Derivative Works; and
    +
    +      (d) If the Work includes a "NOTICE" text file as part of its
    +          distribution, then any Derivative Works that You distribute must
    +          include a readable copy of the attribution notices contained
    +          within such NOTICE file, excluding those notices that do not
    +          pertain to any part of the Derivative Works, in at least one
    +          of the following places: within a NOTICE text file distributed
    +          as part of the Derivative Works; within the Source form or
    +          documentation, if provided along with the Derivative Works; or,
    +          within a display generated by the Derivative Works, if and
    +          wherever such third-party notices normally appear. The contents
    +          of the NOTICE file are for informational purposes only and
    +          do not modify the License. You may add Your own attribution
    +          notices within Derivative Works that You distribute, alongside
    +          or as an addendum to the NOTICE text from the Work, provided
    +          that such additional attribution notices cannot be construed
    +          as modifying the License.
    +
    +      You may add Your own copyright statement to Your modifications and
    +      may provide additional or different license terms and conditions
    +      for use, reproduction, or distribution of Your modifications, or
    +      for any such Derivative Works as a whole, provided Your use,
    +      reproduction, and distribution of the Work otherwise complies with
    +      the conditions stated in this License.
    +
    +   5. Submission of Contributions. Unless You explicitly state otherwise,
    +      any Contribution intentionally submitted for inclusion in the Work
    +      by You to the Licensor shall be under the terms and conditions of
    +      this License, without any additional terms or conditions.
    +      Notwithstanding the above, nothing herein shall supersede or modify
    +      the terms of any separate license agreement you may have executed
    +      with Licensor regarding such Contributions.
    +
    +   6. Trademarks. This License does not grant permission to use the trade
    +      names, trademarks, service marks, or product names of the Licensor,
    +      except as required for reasonable and customary use in describing the
    +      origin of the Work and reproducing the content of the NOTICE file.
    +
    +   7. Disclaimer of Warranty. Unless required by applicable law or
    +      agreed to in writing, Licensor provides the Work (and each
    +      Contributor provides its Contributions) on an "AS IS" BASIS,
    +      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +      implied, including, without limitation, any warranties or conditions
    +      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +      PARTICULAR PURPOSE. You are solely responsible for determining the
    +      appropriateness of using or redistributing the Work and assume any
    +      risks associated with Your exercise of permissions under this License.
    +
    +   8. Limitation of Liability. In no event and under no legal theory,
    +      whether in tort (including negligence), contract, or otherwise,
    +      unless required by applicable law (such as deliberate and grossly
    +      negligent acts) or agreed to in writing, shall any Contributor be
    +      liable to You for damages, including any direct, indirect, special,
    +      incidental, or consequential damages of any character arising as a
    +      result of this License or out of the use or inability to use the
    +      Work (including but not limited to damages for loss of goodwill,
    +      work stoppage, computer failure or malfunction, or any and all
    +      other commercial damages or losses), even if such Contributor
    +      has been advised of the possibility of such damages.
    +
    +   9. Accepting Warranty or Additional Liability. While redistributing
    +      the Work or Derivative Works thereof, You may choose to offer,
    +      and charge a fee for, acceptance of support, warranty, indemnity,
    +      or other liability obligations and/or rights consistent with this
    +      License. However, in accepting such obligations, You may act only
    +      on Your own behalf and on Your sole responsibility, not on behalf
    +      of any other Contributor, and only if You agree to indemnify,
    +      defend, and hold each Contributor harmless for any liability
    +      incurred by, or claims asserted against, such Contributor by reason
    +      of your accepting any such warranty or additional liability.
    +
    +   END OF TERMS AND CONDITIONS
    +
    +   APPENDIX: How to apply the Apache License to your work.
    +
    +      To apply the Apache License to your work, attach the following
    +      boilerplate notice, with the fields enclosed by brackets "[]"
    +      replaced with your own identifying information. (Don't include
    +      the brackets!)  The text should be enclosed in the appropriate
    +      comment syntax for the file format. We also recommend that a
    +      file or class name and description of purpose be included on the
    +      same "printed page" as the copyright notice for easier
    +      identification within third-party archives.
    +
    +   Copyright [yyyy] [name of copyright owner]
    +
    +   Licensed under the Apache License, Version 2.0 (the "License");
    +   you may not use this file except in compliance with the License.
    +   You may obtain a copy of the License at
    +
    +       http://www.apache.org/licenses/LICENSE-2.0
    +
    +   Unless required by applicable law or agreed to in writing, software
    +   distributed under the License is distributed on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +   See the License for the specific language governing permissions and
    +   limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    Apache License
    +Version 2.0, January 2004
    +http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +"License" shall mean the terms and conditions for use, reproduction,
    +and distribution as defined by Sections 1 through 9 of this document.
    +
    +"Licensor" shall mean the copyright owner or entity authorized by
    +the copyright owner that is granting the License.
    +
    +"Legal Entity" shall mean the union of the acting entity and all
    +other entities that control, are controlled by, or are under common
    +control with that entity. For the purposes of this definition,
    +"control" means (i) the power, direct or indirect, to cause the
    +direction or management of such entity, whether by contract or
    +otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +"You" (or "Your") shall mean an individual or Legal Entity
    +exercising permissions granted by this License.
    +
    +"Source" form shall mean the preferred form for making modifications,
    +including but not limited to software source code, documentation
    +source, and configuration files.
    +
    +"Object" form shall mean any form resulting from mechanical
    +transformation or translation of a Source form, including but
    +not limited to compiled object code, generated documentation,
    +and conversions to other media types.
    +
    +"Work" shall mean the work of authorship, whether in Source or
    +Object form, made available under the License, as indicated by a
    +copyright notice that is included in or attached to the work
    +(an example is provided in the Appendix below).
    +
    +"Derivative Works" shall mean any work, whether in Source or Object
    +form, that is based on (or derived from) the Work and for which the
    +editorial revisions, annotations, elaborations, or other modifications
    +represent, as a whole, an original work of authorship. For the purposes
    +of this License, Derivative Works shall not include works that remain
    +separable from, or merely link (or bind by name) to the interfaces of,
    +the Work and Derivative Works thereof.
    +
    +"Contribution" shall mean any work of authorship, including
    +the original version of the Work and any modifications or additions
    +to that Work or Derivative Works thereof, that is intentionally
    +submitted to Licensor for inclusion in the Work by the copyright owner
    +or by an individual or Legal Entity authorized to submit on behalf of
    +the copyright owner. For the purposes of this definition, "submitted"
    +means any form of electronic, verbal, or written communication sent
    +to the Licensor or its representatives, including but not limited to
    +communication on electronic mailing lists, source code control systems,
    +and issue tracking systems that are managed by, or on behalf of, the
    +Licensor for the purpose of discussing and improving the Work, but
    +excluding communication that is conspicuously marked or otherwise
    +designated in writing by the copyright owner as "Not a Contribution."
    +
    +"Contributor" shall mean Licensor and any individual or Legal Entity
    +on behalf of whom a Contribution has been received by Licensor and
    +subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +this License, each Contributor hereby grants to You a perpetual,
    +worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +copyright license to reproduce, prepare Derivative Works of,
    +publicly display, publicly perform, sublicense, and distribute the
    +Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +this License, each Contributor hereby grants to You a perpetual,
    +worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +(except as stated in this section) patent license to make, have made,
    +use, offer to sell, sell, import, and otherwise transfer the Work,
    +where such license applies only to those patent claims licensable
    +by such Contributor that are necessarily infringed by their
    +Contribution(s) alone or by combination of their Contribution(s)
    +with the Work to which such Contribution(s) was submitted. If You
    +institute patent litigation against any entity (including a
    +cross-claim or counterclaim in a lawsuit) alleging that the Work
    +or a Contribution incorporated within the Work constitutes direct
    +or contributory patent infringement, then any patent licenses
    +granted to You under this License for that Work shall terminate
    +as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +Work or Derivative Works thereof in any medium, with or without
    +modifications, and in Source or Object form, provided that You
    +meet the following conditions:
    +
    +(a) You must give any other recipients of the Work or
    +Derivative Works a copy of this License; and
    +
    +(b) You must cause any modified files to carry prominent notices
    +stating that You changed the files; and
    +
    +(c) You must retain, in the Source form of any Derivative Works
    +that You distribute, all copyright, patent, trademark, and
    +attribution notices from the Source form of the Work,
    +excluding those notices that do not pertain to any part of
    +the Derivative Works; and
    +
    +(d) If the Work includes a "NOTICE" text file as part of its
    +distribution, then any Derivative Works that You distribute must
    +include a readable copy of the attribution notices contained
    +within such NOTICE file, excluding those notices that do not
    +pertain to any part of the Derivative Works, in at least one
    +of the following places: within a NOTICE text file distributed
    +as part of the Derivative Works; within the Source form or
    +documentation, if provided along with the Derivative Works; or,
    +within a display generated by the Derivative Works, if and
    +wherever such third-party notices normally appear. The contents
    +of the NOTICE file are for informational purposes only and
    +do not modify the License. You may add Your own attribution
    +notices within Derivative Works that You distribute, alongside
    +or as an addendum to the NOTICE text from the Work, provided
    +that such additional attribution notices cannot be construed
    +as modifying the License.
    +
    +You may add Your own copyright statement to Your modifications and
    +may provide additional or different license terms and conditions
    +for use, reproduction, or distribution of Your modifications, or
    +for any such Derivative Works as a whole, provided Your use,
    +reproduction, and distribution of the Work otherwise complies with
    +the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +any Contribution intentionally submitted for inclusion in the Work
    +by You to the Licensor shall be under the terms and conditions of
    +this License, without any additional terms or conditions.
    +Notwithstanding the above, nothing herein shall supersede or modify
    +the terms of any separate license agreement you may have executed
    +with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +names, trademarks, service marks, or product names of the Licensor,
    +except as required for reasonable and customary use in describing the
    +origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +agreed to in writing, Licensor provides the Work (and each
    +Contributor provides its Contributions) on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +implied, including, without limitation, any warranties or conditions
    +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +PARTICULAR PURPOSE. You are solely responsible for determining the
    +appropriateness of using or redistributing the Work and assume any
    +risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +whether in tort (including negligence), contract, or otherwise,
    +unless required by applicable law (such as deliberate and grossly
    +negligent acts) or agreed to in writing, shall any Contributor be
    +liable to You for damages, including any direct, indirect, special,
    +incidental, or consequential damages of any character arising as a
    +result of this License or out of the use or inability to use the
    +Work (including but not limited to damages for loss of goodwill,
    +work stoppage, computer failure or malfunction, or any and all
    +other commercial damages or losses), even if such Contributor
    +has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +the Work or Derivative Works thereof, You may choose to offer,
    +and charge a fee for, acceptance of support, warranty, indemnity,
    +or other liability obligations and/or rights consistent with this
    +License. However, in accepting such obligations, You may act only
    +on Your own behalf and on Your sole responsibility, not on behalf
    +of any other Contributor, and only if You agree to indemnify,
    +defend, and hold each Contributor harmless for any liability
    +incurred by, or claims asserted against, such Contributor by reason
    +of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +To apply the Apache License to your work, attach the following
    +boilerplate notice, with the fields enclosed by brackets "[]"
    +replaced with your own identifying information. (Don't include
    +the brackets!)  The text should be enclosed in the appropriate
    +comment syntax for the file format. We also recommend that a
    +file or class name and description of purpose be included on the
    +same "printed page" as the copyright notice for easier
    +identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    Apache License
    +Version 2.0, January 2004
    +http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
    +
    +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
    +
    +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
    +
    +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
    +
    +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
    +
    +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
    +
    +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
    +
    +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
    +
    +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
    +
    +     (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
    +
    +     (b) You must cause any modified files to carry prominent notices stating that You changed the files; and
    +
    +     (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
    +
    +     (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
    +
    +     You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!)  The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    Copyright 2016 Nicolas Silva
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    Copyright 2018 Dan Reeves
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +    http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    Copyright 2023 The allocator-api2 project developers
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    Licensed under the Apache License, Version 2.0
    +<LICENSE-APACHE or
    +http://www.apache.org/licenses/LICENSE-2.0> or the MIT
    +license <LICENSE-MIT or http://opensource.org/licenses/MIT>,
    +at your option. All files in the project carrying such
    +notice may not be copied, modified, or distributed except
    +according to those terms.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    MIT OR Apache-2.0
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    MIT or Apache-2.0
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    Minimal-lexical is dual licensed under the Apache 2.0 license as well as the MIT
    +license. See the LICENCE-MIT and the LICENCE-APACHE files for the licenses.
    +
    +---
    +
    +`src/bellerophon.rs` is loosely based off the Golang implementation,
    +found [here](https://github.com/golang/go/blob/b10849fbb97a2244c086991b4623ae9f32c212d0/src/strconv/extfloat.go).
    +That code (used if the `compact` feature is enabled) is subject to a
    +[3-clause BSD license](https://github.com/golang/go/blob/b10849fbb97a2244c086991b4623ae9f32c212d0/LICENSE):
    +
    +Copyright (c) 2009 The Go Authors. All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +
    +   * Redistributions of source code must retain the above copyright
    +notice, this list of conditions and the following disclaimer.
    +   * Redistributions in binary form must reproduce the above
    +copyright notice, this list of conditions and the following disclaimer
    +in the documentation and/or other materials provided with the
    +distribution.
    +   * Neither the name of Google Inc. nor the names of its
    +contributors may be used to endorse or promote products derived from
    +this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    Rust-chrono is dual-licensed under The MIT License [1] and
    +Apache 2.0 License [2]. Copyright (c) 2014--2017, Kang Seonghoon and
    +contributors.
    +
    +Nota Bene: This is same as the Rust Project's own license.
    +
    +
    +[1]: <http://opensource.org/licenses/MIT>, which is reproduced below:
    +
    +~~~~
    +The MIT License (MIT)
    +
    +Copyright (c) 2014, Kang Seonghoon.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +~~~~
    +
    +
    +[2]: <http://www.apache.org/licenses/LICENSE-2.0>, which is reproduced below:
    +
    +~~~~
    +                              Apache License
    +                        Version 2.0, January 2004
    +                     http://www.apache.org/licenses/
    +
    +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
    +
    +1. Definitions.
    +
    +   "License" shall mean the terms and conditions for use, reproduction,
    +   and distribution as defined by Sections 1 through 9 of this document.
    +
    +   "Licensor" shall mean the copyright owner or entity authorized by
    +   the copyright owner that is granting the License.
    +
    +   "Legal Entity" shall mean the union of the acting entity and all
    +   other entities that control, are controlled by, or are under common
    +   control with that entity. For the purposes of this definition,
    +   "control" means (i) the power, direct or indirect, to cause the
    +   direction or management of such entity, whether by contract or
    +   otherwise, or (ii) ownership of fifty percent (50%) or more of the
    +   outstanding shares, or (iii) beneficial ownership of such entity.
    +
    +   "You" (or "Your") shall mean an individual or Legal Entity
    +   exercising permissions granted by this License.
    +
    +   "Source" form shall mean the preferred form for making modifications,
    +   including but not limited to software source code, documentation
    +   source, and configuration files.
    +
    +   "Object" form shall mean any form resulting from mechanical
    +   transformation or translation of a Source form, including but
    +   not limited to compiled object code, generated documentation,
    +   and conversions to other media types.
    +
    +   "Work" shall mean the work of authorship, whether in Source or
    +   Object form, made available under the License, as indicated by a
    +   copyright notice that is included in or attached to the work
    +   (an example is provided in the Appendix below).
    +
    +   "Derivative Works" shall mean any work, whether in Source or Object
    +   form, that is based on (or derived from) the Work and for which the
    +   editorial revisions, annotations, elaborations, or other modifications
    +   represent, as a whole, an original work of authorship. For the purposes
    +   of this License, Derivative Works shall not include works that remain
    +   separable from, or merely link (or bind by name) to the interfaces of,
    +   the Work and Derivative Works thereof.
    +
    +   "Contribution" shall mean any work of authorship, including
    +   the original version of the Work and any modifications or additions
    +   to that Work or Derivative Works thereof, that is intentionally
    +   submitted to Licensor for inclusion in the Work by the copyright owner
    +   or by an individual or Legal Entity authorized to submit on behalf of
    +   the copyright owner. For the purposes of this definition, "submitted"
    +   means any form of electronic, verbal, or written communication sent
    +   to the Licensor or its representatives, including but not limited to
    +   communication on electronic mailing lists, source code control systems,
    +   and issue tracking systems that are managed by, or on behalf of, the
    +   Licensor for the purpose of discussing and improving the Work, but
    +   excluding communication that is conspicuously marked or otherwise
    +   designated in writing by the copyright owner as "Not a Contribution."
    +
    +   "Contributor" shall mean Licensor and any individual or Legal Entity
    +   on behalf of whom a Contribution has been received by Licensor and
    +   subsequently incorporated within the Work.
    +
    +2. Grant of Copyright License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   copyright license to reproduce, prepare Derivative Works of,
    +   publicly display, publicly perform, sublicense, and distribute the
    +   Work and such Derivative Works in Source or Object form.
    +
    +3. Grant of Patent License. Subject to the terms and conditions of
    +   this License, each Contributor hereby grants to You a perpetual,
    +   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    +   (except as stated in this section) patent license to make, have made,
    +   use, offer to sell, sell, import, and otherwise transfer the Work,
    +   where such license applies only to those patent claims licensable
    +   by such Contributor that are necessarily infringed by their
    +   Contribution(s) alone or by combination of their Contribution(s)
    +   with the Work to which such Contribution(s) was submitted. If You
    +   institute patent litigation against any entity (including a
    +   cross-claim or counterclaim in a lawsuit) alleging that the Work
    +   or a Contribution incorporated within the Work constitutes direct
    +   or contributory patent infringement, then any patent licenses
    +   granted to You under this License for that Work shall terminate
    +   as of the date such litigation is filed.
    +
    +4. Redistribution. You may reproduce and distribute copies of the
    +   Work or Derivative Works thereof in any medium, with or without
    +   modifications, and in Source or Object form, provided that You
    +   meet the following conditions:
    +
    +   (a) You must give any other recipients of the Work or
    +       Derivative Works a copy of this License; and
    +
    +   (b) You must cause any modified files to carry prominent notices
    +       stating that You changed the files; and
    +
    +   (c) You must retain, in the Source form of any Derivative Works
    +       that You distribute, all copyright, patent, trademark, and
    +       attribution notices from the Source form of the Work,
    +       excluding those notices that do not pertain to any part of
    +       the Derivative Works; and
    +
    +   (d) If the Work includes a "NOTICE" text file as part of its
    +       distribution, then any Derivative Works that You distribute must
    +       include a readable copy of the attribution notices contained
    +       within such NOTICE file, excluding those notices that do not
    +       pertain to any part of the Derivative Works, in at least one
    +       of the following places: within a NOTICE text file distributed
    +       as part of the Derivative Works; within the Source form or
    +       documentation, if provided along with the Derivative Works; or,
    +       within a display generated by the Derivative Works, if and
    +       wherever such third-party notices normally appear. The contents
    +       of the NOTICE file are for informational purposes only and
    +       do not modify the License. You may add Your own attribution
    +       notices within Derivative Works that You distribute, alongside
    +       or as an addendum to the NOTICE text from the Work, provided
    +       that such additional attribution notices cannot be construed
    +       as modifying the License.
    +
    +   You may add Your own copyright statement to Your modifications and
    +   may provide additional or different license terms and conditions
    +   for use, reproduction, or distribution of Your modifications, or
    +   for any such Derivative Works as a whole, provided Your use,
    +   reproduction, and distribution of the Work otherwise complies with
    +   the conditions stated in this License.
    +
    +5. Submission of Contributions. Unless You explicitly state otherwise,
    +   any Contribution intentionally submitted for inclusion in the Work
    +   by You to the Licensor shall be under the terms and conditions of
    +   this License, without any additional terms or conditions.
    +   Notwithstanding the above, nothing herein shall supersede or modify
    +   the terms of any separate license agreement you may have executed
    +   with Licensor regarding such Contributions.
    +
    +6. Trademarks. This License does not grant permission to use the trade
    +   names, trademarks, service marks, or product names of the Licensor,
    +   except as required for reasonable and customary use in describing the
    +   origin of the Work and reproducing the content of the NOTICE file.
    +
    +7. Disclaimer of Warranty. Unless required by applicable law or
    +   agreed to in writing, Licensor provides the Work (and each
    +   Contributor provides its Contributions) on an "AS IS" BASIS,
    +   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    +   implied, including, without limitation, any warranties or conditions
    +   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    +   PARTICULAR PURPOSE. You are solely responsible for determining the
    +   appropriateness of using or redistributing the Work and assume any
    +   risks associated with Your exercise of permissions under this License.
    +
    +8. Limitation of Liability. In no event and under no legal theory,
    +   whether in tort (including negligence), contract, or otherwise,
    +   unless required by applicable law (such as deliberate and grossly
    +   negligent acts) or agreed to in writing, shall any Contributor be
    +   liable to You for damages, including any direct, indirect, special,
    +   incidental, or consequential damages of any character arising as a
    +   result of this License or out of the use or inability to use the
    +   Work (including but not limited to damages for loss of goodwill,
    +   work stoppage, computer failure or malfunction, or any and all
    +   other commercial damages or losses), even if such Contributor
    +   has been advised of the possibility of such damages.
    +
    +9. Accepting Warranty or Additional Liability. While redistributing
    +   the Work or Derivative Works thereof, You may choose to offer,
    +   and charge a fee for, acceptance of support, warranty, indemnity,
    +   or other liability obligations and/or rights consistent with this
    +   License. However, in accepting such obligations, You may act only
    +   on Your own behalf and on Your sole responsibility, not on behalf
    +   of any other Contributor, and only if You agree to indemnify,
    +   defend, and hold each Contributor harmless for any liability
    +   incurred by, or claims asserted against, such Contributor by reason
    +   of your accepting any such warranty or additional liability.
    +
    +END OF TERMS AND CONDITIONS
    +
    +APPENDIX: How to apply the Apache License to your work.
    +
    +   To apply the Apache License to your work, attach the following
    +   boilerplate notice, with the fields enclosed by brackets "[]"
    +   replaced with your own identifying information. (Don't include
    +   the brackets!)  The text should be enclosed in the appropriate
    +   comment syntax for the file format. We also recommend that a
    +   file or class name and description of purpose be included on the
    +   same "printed page" as the copyright notice for easier
    +   identification within third-party archives.
    +
    +Copyright [yyyy] [name of copyright owner]
    +
    +Licensed under the Apache License, Version 2.0 (the "License");
    +you may not use this file except in compliance with the License.
    +You may obtain a copy of the License at
    +
    +	http://www.apache.org/licenses/LICENSE-2.0
    +
    +Unless required by applicable law or agreed to in writing, software
    +distributed under the License is distributed on an "AS IS" BASIS,
    +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +See the License for the specific language governing permissions and
    +limitations under the License.
    +~~~~
    +
    +
    +
  • +
  • +

    BSD 2-Clause "Simplified" License

    +

    Used by:

    + +
    Copyright (c) 2015 David Roundy <roundyd@physics.oregonstate.edu>
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +
    +1. Redistributions of source code must retain the above copyright
    +   notice, this list of conditions and the following disclaimer.
    +
    +2. Redistributions in binary form must reproduce the above copyright
    +   notice, this list of conditions and the following disclaimer in the
    +   documentation and/or other materials provided with the
    +   distribution.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    BSD 2-Clause "Simplified" License

    +

    Used by:

    + +
    Copyright (c) 2015, Nick Fitzgerald
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without modification,
    +are permitted provided that the following conditions are met:
    +
    +1. Redistributions of source code must retain the above copyright notice, this
    +   list of conditions and the following disclaimer.
    +
    +2. Redistributions in binary form must reproduce the above copyright notice,
    +   this list of conditions and the following disclaimer in the documentation
    +   and/or other materials provided with the distribution.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
    +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
    +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
    +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    BSD 3-Clause "New" or "Revised" License

    +

    Used by:

    + +
    // Copyright 2015 The Chromium Authors. All rights reserved.
    +//
    +// Redistribution and use in source and binary forms, with or without
    +// modification, are permitted provided that the following conditions are
    +// met:
    +//
    +//    * Redistributions of source code must retain the above copyright
    +// notice, this list of conditions and the following disclaimer.
    +//    * Redistributions in binary form must reproduce the above
    +// copyright notice, this list of conditions and the following disclaimer
    +// in the documentation and/or other materials provided with the
    +// distribution.
    +//    * Neither the name of Google Inc. nor the names of its
    +// contributors may be used to endorse or promote products derived from
    +// this software without specific prior written permission.
    +//
    +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    BSD 3-Clause "New" or "Revised" License

    +

    Used by:

    + +
    BSD 3-Clause License
    +
    +Copyright (c) 2013, Julien Schmidt
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are met:
    +
    +1. Redistributions of source code must retain the above copyright notice, this
    +   list of conditions and the following disclaimer.
    +
    +2. Redistributions in binary form must reproduce the above copyright notice,
    +   this list of conditions and the following disclaimer in the documentation
    +   and/or other materials provided with the distribution.
    +
    +3. Neither the name of the copyright holder nor the names of its
    +   contributors may be used to endorse or promote products derived from
    +   this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    BSD 3-Clause "New" or "Revised" License

    +

    Used by:

    + +
    Copyright (c) 2014 by Armin Ronacher.
    +
    +Copyright (c) 2013 Koka El Kiwi
    +
    +Some rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +
    +    * Redistributions of source code must retain the above copyright
    +      notice, this list of conditions and the following disclaimer.
    +
    +    * Redistributions in binary form must reproduce the above
    +      copyright notice, this list of conditions and the following
    +      disclaimer in the documentation and/or other materials provided
    +      with the distribution.
    +
    +    * The names of the contributors may not be used to endorse or
    +      promote products derived from this software without specific
    +      prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    BSD 3-Clause "New" or "Revised" License

    +

    Used by:

    + +
    Copyright (c) 2016 Dropbox, Inc.
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
    +
    +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    +
    +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    +
    +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    BSD 3-Clause "New" or "Revised" License

    +

    Used by:

    + +
    Copyright (c) 2016-2017 Isis Agora Lovecruft, Henry de Valence. All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +
    +1. Redistributions of source code must retain the above copyright
    +notice, this list of conditions and the following disclaimer.
    +
    +2. Redistributions in binary form must reproduce the above copyright
    +notice, this list of conditions and the following disclaimer in the
    +documentation and/or other materials provided with the distribution.
    +
    +3. Neither the name of the copyright holder nor the names of its
    +contributors may be used to endorse or promote products derived from
    +this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
    +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
    +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
    +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
    +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
    +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
    +
    +
  • +
  • +

    BSD 3-Clause "New" or "Revised" License

    +

    Used by:

    + +
    Copyright (c) 2019, Sébastien Crozet
    +All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are met:
    +
    +1. Redistributions of source code must retain the above copyright notice, this
    +   list of conditions and the following disclaimer.
    +
    +2. Redistributions in binary form must reproduce the above copyright notice,
    +   this list of conditions and the following disclaimer in the documentation
    +   and/or other materials provided with the distribution.
    +
    +3. Neither the name of the author nor the names of its contributors may be used
    +   to endorse or promote products derived from this software without specific
    +   prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
    +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    BSD 3-Clause "New" or "Revised" License

    +

    Used by:

    + +
    Copyright (c) <year> <owner>. 
    +
    +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
    +
    +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    +
    +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    +
    +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    BSD 3-Clause "New" or "Revised" License

    +

    Used by:

    + +
    Copyright 2011, The Snappy-Rust Authors. All rights reserved.
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are
    +met:
    +
    +    * Redistributions of source code must retain the above copyright
    +notice, this list of conditions and the following disclaimer.
    +    * Redistributions in binary form must reproduce the above
    +copyright notice, this list of conditions and the following disclaimer
    +in the documentation and/or other materials provided with the
    +distribution.
    +    * Neither the name of the copyright holder nor the names of its
    +contributors may be used to endorse or promote products derived from
    +this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    BSD 3-Clause "New" or "Revised" License

    +

    Used by:

    + +
    Copyright © WHATWG (Apple, Google, Mozilla, Microsoft).
    +
    +Redistribution and use in source and binary forms, with or without
    +modification, are permitted provided that the following conditions are met:
    +
    +1. Redistributions of source code must retain the above copyright notice, this
    +   list of conditions and the following disclaimer.
    +
    +2. Redistributions in binary form must reproduce the above copyright notice,
    +   this list of conditions and the following disclaimer in the documentation
    +   and/or other materials provided with the distribution.
    +
    +3. Neither the name of the copyright holder nor the names of its
    +   contributors may be used to endorse or promote products derived from
    +   this software without specific prior written permission.
    +
    +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +
    +
  • +
  • +

    Boost Software License 1.0

    +

    Used by:

    + +
    Boost Software License - Version 1.0 - August 17th, 2003
    +
    +Permission is hereby granted, free of charge, to any person or organization
    +obtaining a copy of the software and accompanying documentation covered by
    +this license (the "Software") to use, reproduce, display, distribute,
    +execute, and transmit the Software, and to prepare derivative works of the
    +Software, and to permit third-parties to whom the Software is furnished to
    +do so, all subject to the following:
    +
    +The copyright notices in the Software and this entire statement, including
    +the above license grant, this restriction and the following disclaimer,
    +must be included in all copies of the Software, in whole or in part, and
    +all derivative works of the Software, unless such copies or derivative
    +works are solely in the form of machine-executable object code generated by
    +a source language processor.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
    +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
    +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
    +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    ISC License

    +

    Used by:

    + +
       Copyright 2015-2016 Brian Smith.
    +
    +   Permission to use, copy, modify, and/or distribute this software for any
    +   purpose with or without fee is hereby granted, provided that the above
    +   copyright notice and this permission notice appear in all copies.
    +
    +   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
    +   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
    +   SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
    +   OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
    +   CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +
  • +
  • +

    ISC License

    +

    Used by:

    + +
    /* Copyright (c) 2015, Google Inc.
    + *
    + * Permission to use, copy, modify, and/or distribute this software for any
    + * purpose with or without fee is hereby granted, provided that the above
    + * copyright notice and this permission notice appear in all copies.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
    + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
    + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
    + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
    +
    +
  • +
  • +

    ISC License

    +

    Used by:

    + +
    // Copyright 2015-2016 Brian Smith.
    +//
    +// Permission to use, copy, modify, and/or distribute this software for any
    +// purpose with or without fee is hereby granted, provided that the above
    +// copyright notice and this permission notice appear in all copies.
    +//
    +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
    +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
    +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +
    +
  • +
  • +

    ISC License

    +

    Used by:

    + +
    ISC License:
    +
    +Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC")
    +Copyright (c) 1995-2003 by Internet Software Consortium
    +
    +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
    +
    +THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    // Copyright (c) 2019 Nuclear Furnace
    +//
    +// Permission is hereby granted, free of charge, to any person obtaining a copy
    +// of this software and associated documentation files (the "Software"), to deal
    +// in the Software without restriction, including without limitation the rights
    +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +// copies of the Software, and to permit persons to whom the Software is
    +// furnished to do so, subject to the following conditions:
    +//
    +// The above copyright notice and this permission notice shall be included in all
    +// copies or substantial portions of the Software.
    +//
    +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +// SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (C) 2023 Christian Mauduit <ufoot@ufoot.org>
    +
    +Permission is hereby granted, free of charge, to any person obtaining
    +a copy of this software and associated documentation files (the
    +"Software"), to deal in the Software without restriction, including
    +without limitation the rights to use, copy, modify, merge, publish,
    +distribute, sublicense, and/or sell copies of the Software, and to
    +permit persons to whom the Software is furnished to do so, subject to
    +the following conditions:
    +
    +The above copyright notice and this permission notice shall be
    +included in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
    +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2014 Carl Lerche and other MIO contributors
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2014-2019 Geoffroy Couprie
    +
    +Permission is hereby granted, free of charge, to any person obtaining
    +a copy of this software and associated documentation files (the
    +"Software"), to deal in the Software without restriction, including
    +without limitation the rights to use, copy, modify, merge, publish,
    +distribute, sublicense, and/or sell copies of the Software, and to
    +permit persons to whom the Software is furnished to do so, subject to
    +the following conditions:
    +
    +The above copyright notice and this permission notice shall be
    +included in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
    +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2014-2021 Sean McArthur
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2015 Igor Shaula
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2015 Jonathan Reem
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2015-2016 the fiat-crypto authors (see
    +https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS).
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2017 Djzin
    +
    +The MIT License
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2017 Gilad Naaman
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2017 Redox OS Developers
    +
    +MIT License
    +
    +Permission is hereby granted, free of charge, to any person obtaining
    +a copy of this software and associated documentation files (the
    +"Software"), to deal in the Software without restriction, including
    +without limitation the rights to use, copy, modify, merge, publish,
    +distribute, sublicense, and/or sell copies of the Software, and to
    +permit persons to whom the Software is furnished to do so, subject to
    +the following conditions:
    +
    +The above copyright notice and this permission notice shall be
    +included in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
    +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
    +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2017 h2 authors
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2018 Carl Lerche
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2018 Sean McArthur
    +Copyright (c) 2016 Alex Crichton
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2018-2019 Sean McArthur
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Axum Contributors
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Carl Lerche
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Carl Lerche
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +Copyright (c) 2018 David Tolnay
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Hyper Contributors
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Stepan Koltsov
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
    +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
    +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
    +OR OTHER DEALINGS IN THE SOFTWARE.
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Tokio Contributors
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019 Tower Contributors
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2019-2021 Tower Contributors
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2020 Lucio Franco
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2022 Tokio Contributors
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2023 Tokio Contributors
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2023 Tokio Contributors
    +
    +Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +The MIT License (MIT)
    +
    +Copyright (c) 2019 Yoshua Wuyts
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright 2021 Axum Contributors
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2016 fengcen
    +Copyright (c) 2019 svartalf
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2017 Denis Kurilenko
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2017 Dylan Hart
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2017 Victor Polevoy
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2018 Guillaume Gomez
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2019 Acrimon
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2019 Arne Beer
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2019 Peter Glotfelty
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2021 Atomix Team
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2021 MarcusGrass
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2022 Ibraheem Ahmed
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) <year> <copyright holders>
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    MIT License
    +
    +Copyright (c) 2019 Timon
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    Permission is hereby granted, free of charge, to any
    +person obtaining a copy of this software and associated
    +documentation files (the "Software"), to deal in the
    +Software without restriction, including without
    +limitation the rights to use, copy, modify, merge,
    +publish, distribute, sublicense, and/or sell copies of
    +the Software, and to permit persons to whom the Software
    +is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright notice and this permission notice
    +shall be included in all copies or substantial portions
    +of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
    +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
    +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
    +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
    +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
    +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    +DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2014 Mathijs van de Nes
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015 Andrew Gallant
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015 Artem V. Navrotskiy
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015 Austin Bonander
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015 Gerd Zellweger
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015 Guillaume Gomez
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015 Jake Goulding
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015-2020 Julien Cretin
    +Copyright (c) 2017-2020 Google Inc.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2016 Google Inc. (lewinb@google.com) -- though not an official
    +Google product or in any way related!
    +Copyright (c) 2018-2020 Lewin Bormann (lbo@spheniscida.de)
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to
    +deal in the Software without restriction, including without limitation the
    +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
    +sell copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
    +IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2016 Jelte Fennema
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2017 Andrew Gallant
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2017-2022 itchyny <https://github.com/itchyny>
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2019 Alexander Korolev
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2020 Alexander Korolev
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2021 Alexander Korolev
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright for portions of this project are held by Vincent Prouillet, 2015 as part of
    +`Keats/rust-jwt`. All other copyright for project Foo are held by Yong Wen Chua, 2017.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +Copyright (c) 2016 Alexandre Bury
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2015 Bartłomiej Kamiński
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    The MIT License (MIT)
    +
    +Copyright (c) 2016 Johann Tuffe
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    This project is dual-licensed under the Unlicense and MIT licenses.
    +
    +You may use this code under the terms of either license.
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    This project is dual-licensed under the Unlicense and MIT licenses.
    +
    +You may use this code under the terms of either license.
    +
    +
  • +
  • +

    MIT License

    +

    Used by:

    + +
    the MIT License
    +
    +Copyright (c) 2018 rhysd
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
    +of the Software, and to permit persons to whom the Software is furnished to do so,
    +subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
    +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
    +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
    +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
    +THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    +
    +
    +
  • +
  • +

    Mozilla Public License 2.0

    +

    Used by:

    + +
    This packge contains a modified version of ca-bundle.crt:
    +
    +ca-bundle.crt -- Bundle of CA Root Certificates
    +
    +Certificate data from Mozilla as of: Thu Nov  3 19:04:19 2011#
    +This is a bundle of X.509 certificates of public Certificate Authorities
    +(CA). These were automatically extracted from Mozilla's root certificates
    +file (certdata.txt).  This file can be found in the mozilla source tree:
    +http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1#
    +It contains the certificates in PEM format and therefore
    +can be directly used with curl / libcurl / php_curl, or with
    +an Apache+mod_ssl webserver for SSL client authentication.
    +Just configure this file as the SSLCACertificateFile.#
    +
    +***** BEGIN LICENSE BLOCK *****
    +This Source Code Form is subject to the terms of the Mozilla Public License,
    +v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain
    +one at http://mozilla.org/MPL/2.0/.
    +
    +***** END LICENSE BLOCK *****
    +@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $
    +
    +
  • +
  • +

    NOASSERTION

    +

    Used by:

    + +
    
    +            
  • +
  • +

    OpenSSL License

    +

    Used by:

    + +
    /* ====================================================================
    + * Copyright (c) 1998-2011 The OpenSSL Project.  All rights reserved.
    + *
    + * Redistribution and use in source and binary forms, with or without
    + * modification, are permitted provided that the following conditions
    + * are met:
    + *
    + * 1. Redistributions of source code must retain the above copyright
    + *    notice, this list of conditions and the following disclaimer. 
    + *
    + * 2. Redistributions in binary form must reproduce the above copyright
    + *    notice, this list of conditions and the following disclaimer in
    + *    the documentation and/or other materials provided with the
    + *    distribution.
    + *
    + * 3. All advertising materials mentioning features or use of this
    + *    software must display the following acknowledgment:
    + *    "This product includes software developed by the OpenSSL Project
    + *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
    + *
    + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
    + *    endorse or promote products derived from this software without
    + *    prior written permission. For written permission, please contact
    + *    openssl-core@openssl.org.
    + *
    + * 5. Products derived from this software may not be called "OpenSSL"
    + *    nor may "OpenSSL" appear in their names without prior written
    + *    permission of the OpenSSL Project.
    + *
    + * 6. Redistributions of any form whatsoever must retain the following
    + *    acknowledgment:
    + *    "This product includes software developed by the OpenSSL Project
    + *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
    + *
    + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
    + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    + * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
    + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
    + * OF THE POSSIBILITY OF SUCH DAMAGE.
    + * ====================================================================
    + *
    + * This product includes cryptographic software written by Eric Young
    + * (eay@cryptsoft.com).  This product includes software written by Tim
    + * Hudson (tjh@cryptsoft.com).
    + *
    + */
    +
  • +
  • +

    Unicode License Agreement - Data Files and Software (2016)

    +

    Used by:

    + +
    UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
    +
    +Unicode Data Files include all data files under the directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and http://www.unicode.org/utility/trac/browser/.
    +
    +Unicode Data Files do not include PDF online code charts under the directory http://www.unicode.org/Public/.
    +
    +Software includes any source code published in the Unicode Standard or under the directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and http://www.unicode.org/utility/trac/browser/.
    +
    +NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
    +
    +COPYRIGHT AND PERMISSION NOTICE
    +
    +Copyright © 1991-2016 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that either
    +
    +     (a) this copyright and permission notice appear with all copies of the Data Files or Software, or
    +     (b) this copyright and permission notice appear in associated Documentation.
    +
    +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
    +
    +Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder.
    +
    +
  • +
+
+ + + + From b8066973290f340ce32bfc5e0161dd7a68c680ae Mon Sep 17 00:00:00 2001 From: Nikhil Sinha <131262146+nikhilsinhacloudsurfex@users.noreply.github.com> Date: Thu, 15 Feb 2024 15:43:55 +0530 Subject: [PATCH 19/73] feat: support OpenTelemetry log flattening (#657) fixes: #312 --- Cargo.lock | 169 +++++++++- server/Cargo.toml | 3 + server/src/handlers/http.rs | 1 + server/src/handlers/http/ingest.rs | 4 +- server/src/handlers/http/otel.rs | 281 +++++++++++++++++ .../otel/opentelemetry.proto.common.v1.rs | 95 ++++++ .../http/otel/opentelemetry.proto.logs.v1.rs | 291 ++++++++++++++++++ .../otel/opentelemetry.proto.resource.v1.rs | 38 +++ .../http/otel/opentelemetry/proto/README.md | 2 + .../proto/common/v1/common.proto | 81 +++++ .../opentelemetry/proto/logs/v1/logs.proto | 203 ++++++++++++ .../proto/resource/v1/resource.proto | 37 +++ server/src/handlers/http/otel/proto.rs | 38 +++ 13 files changed, 1234 insertions(+), 9 deletions(-) create mode 100644 server/src/handlers/http/otel.rs create mode 100644 server/src/handlers/http/otel/opentelemetry.proto.common.v1.rs create mode 100644 server/src/handlers/http/otel/opentelemetry.proto.logs.v1.rs create mode 100644 server/src/handlers/http/otel/opentelemetry.proto.resource.v1.rs create mode 100644 server/src/handlers/http/otel/opentelemetry/proto/README.md create mode 100644 server/src/handlers/http/otel/opentelemetry/proto/common/v1/common.proto create mode 100644 server/src/handlers/http/otel/opentelemetry/proto/logs/v1/logs.proto create mode 100644 server/src/handlers/http/otel/opentelemetry/proto/resource/v1/resource.proto create mode 100644 server/src/handlers/http/otel/proto.rs diff --git a/Cargo.lock b/Cargo.lock index 9bc3d23f9..998ff8a7d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1839,6 +1839,15 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "hostname" version = "0.3.1" @@ -2076,7 +2085,7 @@ checksum = "22e18b0a45d56fe973d6db23972bf5bc46f988a4a2385deac9cc29572f09daef" dependencies = [ "hermit-abi 0.3.1", "io-lifetimes", - "rustix", + "rustix 0.36.16", "windows-sys 0.45.0", ] @@ -2231,6 +2240,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + [[package]] name = "local-channel" version = "0.1.3" @@ -2393,6 +2408,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + [[package]] name = "nom" version = "7.1.3" @@ -2713,6 +2734,8 @@ dependencies = [ "parquet", "path-clean", "prometheus", + "prost", + "prost-build", "rand", "regex", "relative-path", @@ -2880,6 +2903,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +dependencies = [ + "proc-macro2", + "syn 2.0.37", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -2929,7 +2962,7 @@ dependencies = [ "byteorder", "hex", "lazy_static", - "rustix", + "rustix 0.36.16", ] [[package]] @@ -2951,19 +2984,41 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" dependencies = [ "bytes", "prost-derive", ] +[[package]] +name = "prost-build" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" +dependencies = [ + "bytes", + "heck", + "itertools 0.11.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.37", + "tempfile", + "which", +] + [[package]] name = "prost-derive" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" dependencies = [ "anyhow", "itertools 0.11.0", @@ -2972,6 +3027,15 @@ dependencies = [ "syn 2.0.37", ] +[[package]] +name = "prost-types" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" +dependencies = [ + "prost", +] + [[package]] name = "protobuf" version = "2.28.0" @@ -3245,10 +3309,23 @@ dependencies = [ "errno", "io-lifetimes", "libc", - "linux-raw-sys", + "linux-raw-sys 0.1.4", "windows-sys 0.45.0", ] +[[package]] +name = "rustix" +version = "0.38.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" +dependencies = [ + "bitflags 2.4.0", + "errno", + "libc", + "linux-raw-sys 0.4.13", + "windows-sys 0.48.0", +] + [[package]] name = "rustls" version = "0.20.8" @@ -4390,6 +4467,18 @@ dependencies = [ "webpki", ] +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.25", +] + [[package]] name = "winapi" version = "0.3.9" @@ -4452,6 +4541,15 @@ dependencies = [ "windows-targets 0.48.1", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-targets" version = "0.42.1" @@ -4482,6 +4580,21 @@ dependencies = [ "windows_x86_64_msvc 0.48.0", ] +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.1" @@ -4494,6 +4607,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.39.0" @@ -4512,6 +4631,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.39.0" @@ -4530,6 +4655,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.39.0" @@ -4548,6 +4679,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.39.0" @@ -4566,6 +4703,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.1" @@ -4578,6 +4721,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.39.0" @@ -4596,6 +4745,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winreg" version = "0.10.1" diff --git a/server/Cargo.toml b/server/Cargo.toml index 57afe65c5..f87de078d 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -103,6 +103,8 @@ http-auth-basic = "0.3.3" serde_repr = "0.1.17" hashlru = { version = "0.11.0", features = ["serde"] } path-clean = "1.0.1" +prost = "0.12.3" + [build-dependencies] cargo_toml = "0.15" @@ -112,6 +114,7 @@ ureq = "2.6" vergen = { version = "8.1", features = ["build", "git", "cargo", "gitcl"] } zip = { version = "0.6", default_features = false, features = ["deflate"] } url = "2.4.0" +prost-build = "0.12.3" [dev-dependencies] maplit = "1.0" diff --git a/server/src/handlers/http.rs b/server/src/handlers/http.rs index 30aad59ce..e30e3d77a 100644 --- a/server/src/handlers/http.rs +++ b/server/src/handlers/http.rs @@ -45,6 +45,7 @@ mod llm; mod logstream; mod middleware; mod oidc; +mod otel; mod query; mod rbac; mod role; diff --git a/server/src/handlers/http/ingest.rs b/server/src/handlers/http/ingest.rs index 429c3ffcd..2a3281843 100644 --- a/server/src/handlers/http/ingest.rs +++ b/server/src/handlers/http/ingest.rs @@ -34,8 +34,8 @@ use crate::handlers::{ use crate::metadata::STREAM_INFO; use crate::utils::header_parsing::{collect_labelled_headers, ParseHeaderError}; -use super::kinesis; use super::logstream::error::CreateStreamError; +use super::{kinesis, otel}; // Handler for POST /api/v1/ingest // ingests events by extracting stream name from header @@ -67,7 +67,7 @@ async fn flatten_and_push_logs( let log_source: String = log_source.to_str().unwrap().to_owned(); match log_source.as_str() { LOG_SOURCE_KINESIS => json = kinesis::flatten_kinesis_logs(&body), - LOG_SOURCE_OTEL => {} + LOG_SOURCE_OTEL => json = otel::flatten_otel_logs(&body), _ => { log::warn!("Unknown log source: {}", log_source); push_logs(stream_name.to_string(), req.clone(), body).await?; diff --git a/server/src/handlers/http/otel.rs b/server/src/handlers/http/otel.rs new file mode 100644 index 000000000..83a6404f8 --- /dev/null +++ b/server/src/handlers/http/otel.rs @@ -0,0 +1,281 @@ +/* + * Parseable Server (C) 2022 - 2024 Parseable, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +use bytes::Bytes; +use serde_json::Value; +mod proto; +use crate::handlers::http::otel::proto::logs::v1::LogRecordFlags; +use crate::handlers::http::otel::proto::logs::v1::LogsData; +use crate::handlers::http::otel::proto::logs::v1::SeverityNumber; +use std::collections::BTreeMap; +// Value can be one of types - String, Bool, Int, Double, ArrayValue, AnyValue, KeyValueList, Byte +fn collect_json_from_any_value( + key: &String, + value: super::otel::proto::common::v1::Value, +) -> BTreeMap { + let mut value_json: BTreeMap = BTreeMap::new(); + if value.str_val.is_some() { + value_json.insert( + key.to_string(), + Value::String(value.str_val.as_ref().unwrap().to_owned()), + ); + } + if value.bool_val.is_some() { + value_json.insert(key.to_string(), Value::Bool(value.bool_val.unwrap())); + } + if value.int_val.is_some() { + value_json.insert( + key.to_string(), + Value::Number(serde_json::Number::from(value.int_val.unwrap())), + ); + } + if value.double_val.is_some() { + value_json.insert( + key.to_string(), + Value::Number(serde_json::Number::from_f64(value.double_val.unwrap()).unwrap()), + ); + } + + //ArrayValue is a vector of AnyValue + //traverse by recursively calling the same function + if value.array_val.is_some() { + let array_val = value.array_val.as_ref().unwrap(); + let values = &array_val.values; + + for value in values { + let value = &value.value; + value_json = collect_json_from_any_value(key, value.clone()); + } + } + + //KeyValueList is a vector of KeyValue + //traverse through each element in the vector + if value.kv_list_val.is_some() { + let kv_list_val = value.kv_list_val.unwrap(); + for key_value in kv_list_val.values { + let value = key_value.value; + value_json = collect_json_from_values(&value, key); + } + } + if value.bytes_val.is_some() { + value_json.insert( + key.to_string(), + Value::String(value.bytes_val.as_ref().unwrap().to_owned()), + ); + } + + value_json +} + +//traverse through Value by calling function ollect_json_from_any_value +fn collect_json_from_values( + values: &Option, + key: &String, +) -> BTreeMap { + let mut value_json: BTreeMap = BTreeMap::new(); + + for value in values.iter() { + value_json = collect_json_from_any_value(key, value.clone()); + } + + value_json +} + +pub fn flatten_otel_logs(body: &Bytes) -> Vec> { + let mut vec_otel_json: Vec> = Vec::new(); + let body_str = std::str::from_utf8(body).unwrap(); + + let message: LogsData = serde_json::from_str(body_str).unwrap(); + for records in message.resource_logs.iter() { + for record in records.iter() { + let mut otel_json: BTreeMap = BTreeMap::new(); + for resource in record.resource.iter() { + let attributes = &resource.attributes; + for attributes in attributes.iter() { + for attribute in attributes { + let key = &attribute.key; + let value = &attribute.value; + let value_json = + collect_json_from_values(value, &format!("resource_{}", key)); + for key in value_json.keys() { + otel_json.insert(key.to_owned(), value_json[key].to_owned()); + } + } + } + if resource.dropped_attributes_count > 0 { + otel_json.insert( + "resource_dropped_attributes_count".to_string(), + Value::Number(serde_json::Number::from(resource.dropped_attributes_count)), + ); + } + } + + for scope_logs in record.scope_logs.iter() { + for scope_log in scope_logs.iter() { + for instrumentation_scope in scope_log.scope.iter() { + if !instrumentation_scope.name.is_empty() { + otel_json.insert( + "instrumentation_scope_name".to_string(), + Value::String(instrumentation_scope.name.to_string()), + ); + } + if !instrumentation_scope.version.is_empty() { + otel_json.insert( + "instrumentation_scope_version".to_string(), + Value::String(instrumentation_scope.version.to_string()), + ); + } + let attributes = &instrumentation_scope.attributes; + for attributes in attributes.iter() { + for attribute in attributes { + let key = &attribute.key; + let value = &attribute.value; + let value_json = collect_json_from_values( + value, + &format!("instrumentation_scope_{}", key), + ); + for key in value_json.keys() { + otel_json.insert(key.to_owned(), value_json[key].to_owned()); + } + } + } + if instrumentation_scope.dropped_attributes_count > 0 { + otel_json.insert( + "instrumentation_scope_dropped_attributes_count".to_string(), + Value::Number(serde_json::Number::from( + instrumentation_scope.dropped_attributes_count, + )), + ); + } + } + + for log_record in scope_log.log_records.iter() { + let mut log_record_json: BTreeMap = BTreeMap::new(); + if !log_record.time_unix_nano > 0 { + log_record_json.insert( + "time_unix_nano".to_string(), + Value::String(log_record.time_unix_nano.to_string()), + ); + } + if !log_record.observed_time_unix_nano > 0 { + log_record_json.insert( + "observed_time_unix_nano".to_string(), + Value::String(log_record.observed_time_unix_nano.to_string()), + ); + } + if log_record.severity_number > 0 { + let severity_number: i32 = log_record.severity_number; + log_record_json.insert( + "severity_number".to_string(), + Value::Number(serde_json::Number::from(severity_number)), + ); + if log_record.severity_text.is_empty() { + log_record_json.insert( + "severity_text".to_string(), + Value::String( + SeverityNumber::as_str_name(severity_number).to_string(), + ), + ); + } + } + if !log_record.severity_text.is_empty() { + log_record_json.insert( + "severity_text".to_string(), + Value::String(log_record.severity_text.to_string()), + ); + } + + if log_record.body.is_some() { + let body = &log_record.body; + let body_json = collect_json_from_values(body, &"body".to_string()); + for key in body_json.keys() { + log_record_json.insert(key.to_owned(), body_json[key].to_owned()); + } + } + + for attributes in log_record.attributes.iter() { + for attribute in attributes { + let key = &attribute.key; + let value = &attribute.value; + let value_json = + collect_json_from_values(value, &format!("log_record_{}", key)); + for key in value_json.keys() { + log_record_json + .insert(key.to_owned(), value_json[key].to_owned()); + } + } + } + + if log_record.dropped_attributes_count > 0 { + log_record_json.insert( + "log_record_dropped_attributes_count".to_string(), + Value::Number(serde_json::Number::from( + log_record.dropped_attributes_count, + )), + ); + } + + if log_record.flags > 0 { + let flags: u32 = log_record.flags; + log_record_json.insert( + "flags_number".to_string(), + Value::Number(serde_json::Number::from(flags)), + ); + log_record_json.insert( + "flags_string".to_string(), + Value::String(LogRecordFlags::as_str_name(flags).to_string()), + ); + } + + if !log_record.span_id.is_empty() { + log_record_json.insert( + "span_id".to_string(), + Value::String(log_record.span_id.to_string()), + ); + } + + if !log_record.trace_id.is_empty() { + log_record_json.insert( + "trace_id".to_string(), + Value::String(log_record.trace_id.to_string()), + ); + } + for key in log_record_json.keys() { + otel_json.insert(key.to_owned(), log_record_json[key].to_owned()); + } + vec_otel_json.push(otel_json.clone()); + } + + if !scope_log.schema_url.is_empty() { + otel_json.insert( + "scope_log_schema_url".to_string(), + Value::String(scope_log.schema_url.to_string()), + ); + } + } + } + if !record.schema_url.is_empty() { + otel_json.insert( + "resource_schema_url".to_string(), + Value::String(record.schema_url.to_string()), + ); + } + } + } + vec_otel_json +} diff --git a/server/src/handlers/http/otel/opentelemetry.proto.common.v1.rs b/server/src/handlers/http/otel/opentelemetry.proto.common.v1.rs new file mode 100644 index 000000000..ca2ea99bc --- /dev/null +++ b/server/src/handlers/http/otel/opentelemetry.proto.common.v1.rs @@ -0,0 +1,95 @@ +/* + * Parseable Server (C) 2022 - 2024 Parseable, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + // This file was generated by protoc-gen-rust-protobuf. The file was edited after the generation. + // All the repeated fields were changed to Option> and the `oneof` fields were changed to Option. + + use serde::{Deserialize, Serialize}; + #[derive(Serialize, Deserialize, Debug, Clone)] + /// AnyValue is used to represent any type of attribute value. AnyValue may contain a + /// primitive value such as a string or integer or it may contain an arbitrary nested + /// object containing arrays, key-value lists and primitives. + pub struct AnyValue { + /// The value is one of the listed fields. It is valid for all values to be unspecified + /// in which case this AnyValue is considered to be "empty". + pub value: Value, + } + + #[derive(Serialize, Deserialize, Debug, Clone)] + pub struct Value { + #[serde(rename = "stringValue")] + pub str_val: Option, + #[serde(rename = "boolValue")] + pub bool_val: Option, + #[serde(rename = "intValue")] + pub int_val: Option, + #[serde(rename = "doubleValue")] + pub double_val: Option, + #[serde(rename = "arrayValue")] + pub array_val: Option, + #[serde(rename = "keyVauleList")] + pub kv_list_val: Option, + #[serde(rename = "bytesValue")] + pub bytes_val: Option, + } + + #[derive(Serialize, Deserialize, Debug, Clone)] + /// ArrayValue is a list of AnyValue messages. We need ArrayValue as a message + /// since oneof in AnyValue does not allow repeated fields. + pub struct ArrayValue { + /// Array of values. The array may be empty (contain 0 elements). + pub values: Vec, + } + + #[derive(Serialize, Deserialize, Debug, Clone)] + /// KeyValueList is a list of KeyValue messages. We need KeyValueList as a message + /// since `oneof` in AnyValue does not allow repeated fields. Everywhere else where we need + /// a list of KeyValue messages (e.g. in Span) we use `repeated KeyValue` directly to + /// avoid unnecessary extra wrapping (which slows down the protocol). The 2 approaches + /// are semantically equivalent. + pub struct KeyValueList { + /// A collection of key/value pairs of key-value pairs. The list may be empty (may + /// contain 0 elements). + /// The keys MUST be unique (it is not allowed to have more than one + /// value with the same key). + pub values: Vec, + } + + #[derive(Serialize, Deserialize, Debug, Clone)] + /// KeyValue is a key-value pair that is used to store Span attributes, Link + /// attributes, etc. + pub struct KeyValue { + pub key: String, + pub value: Option, + } + + #[derive(Serialize, Deserialize, Debug)] + /// InstrumentationScope is a message representing the instrumentation scope information + /// such as the fully qualified name and version. + pub struct InstrumentationScope { + /// An empty instrumentation scope name means the name is unknown. + pub name: String, + pub version: String, + /// Additional attributes that describe the scope. \[Optional\]. + /// Attribute keys MUST be unique (it is not allowed to have more than one + /// attribute with the same key). + pub attributes: Option>, + #[serde(rename = "droppedAttributesCount")] + pub dropped_attributes_count: u32, + } + \ No newline at end of file diff --git a/server/src/handlers/http/otel/opentelemetry.proto.logs.v1.rs b/server/src/handlers/http/otel/opentelemetry.proto.logs.v1.rs new file mode 100644 index 000000000..318f85fbf --- /dev/null +++ b/server/src/handlers/http/otel/opentelemetry.proto.logs.v1.rs @@ -0,0 +1,291 @@ +/* + * Parseable Server (C) 2022 - 2024 Parseable, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +// This file was generated by protoc-gen-rust-protobuf. The file was edited after the generation. + // All the repeated fields were changed to Option>. + + use crate::handlers::http::otel::proto::common::v1::InstrumentationScope; + use crate::handlers::http::otel::proto::common::v1::KeyValue; + use crate::handlers::http::otel::proto::common::v1::Value; + use crate::handlers::http::otel::proto::resource::v1::Resource; + use serde::{Deserialize, Serialize}; + + #[derive(Serialize, Deserialize, Debug)] + /// LogsData represents the logs data that can be stored in a persistent storage, + /// OR can be embedded by other protocols that transfer OTLP logs data but do not + /// implement the OTLP protocol. + /// + /// The main difference between this message and collector protocol is that + /// in this message there will not be any "control" or "metadata" specific to + /// OTLP protocol. + /// + /// When new fields are added into this message, the OTLP request MUST be updated + /// as well. + pub struct LogsData { + /// An array of ResourceLogs. + /// For data coming from a single resource this array will typically contain + /// one element. Intermediary nodes that receive data from multiple origins + /// typically batch the data before forwarding further and in that case this + /// array will contain multiple elements. + #[serde(rename = "resourceLogs")] + pub resource_logs: Option>, + } + + #[derive(Serialize, Deserialize, Debug)] + /// A collection of ScopeLogs from a Resource. + pub struct ResourceLogs { + /// The resource for the logs in this message. + /// If this field is not set then resource info is unknown. + pub resource: Option, + /// A list of ScopeLogs that originate from a resource. + #[serde(rename = "scopeLogs")] + pub scope_logs: Option>, + /// This schema_url applies to the data in the "resource" field. It does not apply + /// to the data in the "scope_logs" field which have their own schema_url field. + #[serde(rename = "schemaUrl")] + pub schema_url: String, + } + + #[derive(Serialize, Deserialize, Debug)] + /// A collection of Logs produced by a Scope. + pub struct ScopeLogs { + /// The instrumentation scope information for the logs in this message. + /// Semantically when InstrumentationScope isn't set, it is equivalent with + /// an empty instrumentation scope name (unknown). + pub scope: Option, + /// A list of log records. + #[serde(rename = "logRecords")] + pub log_records: Vec, + /// This schema_url applies to all logs in the "logs" field. + #[serde(rename = "schemaUrl")] + pub schema_url: String, + } + + #[derive(Serialize, Deserialize, Debug)] + /// A log record according to OpenTelemetry Log Data Model: + /// + pub struct LogRecord { + /// time_unix_nano is the time when the event occurred. + /// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970. + /// Value of 0 indicates unknown or missing timestamp. + #[serde(rename = "timeUnixNano")] + pub time_unix_nano: u64, + /// Time when the event was observed by the collection system. + /// For events that originate in OpenTelemetry (e.g. using OpenTelemetry Logging SDK) + /// this timestamp is typically set at the generation time and is equal to Timestamp. + /// For events originating externally and collected by OpenTelemetry (e.g. using + /// Collector) this is the time when OpenTelemetry's code observed the event measured + /// by the clock of the OpenTelemetry code. This field MUST be set once the event is + /// observed by OpenTelemetry. + /// + /// For converting OpenTelemetry log data to formats that support only one timestamp or + /// when receiving OpenTelemetry log data by recipients that support only one timestamp + /// internally the following logic is recommended: + /// - Use time_unix_nano if it is present, otherwise use observed_time_unix_nano. + /// + /// Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970. + /// Value of 0 indicates unknown or missing timestamp. + #[serde(rename = "observedTimeUnixNano")] + pub observed_time_unix_nano: u64, + /// Numerical value of the severity, normalized to values described in Log Data Model. + /// \[Optional\]. + #[serde(rename = "severityNumber")] + pub severity_number: i32, + /// The severity text (also known as log level). The original string representation as + /// it is known at the source. \[Optional\]. + #[serde(rename = "severityText")] + pub severity_text: String, + /// A value containing the body of the log record. Can be for example a human-readable + /// string message (including multi-line) describing the event in a free form or it can + /// be a structured data composed of arrays and maps of other values. \[Optional\]. + pub body: Option, + /// Additional attributes that describe the specific event occurrence. \[Optional\]. + /// Attribute keys MUST be unique (it is not allowed to have more than one + /// attribute with the same key). + pub attributes: Option>, + #[serde(rename = "droppedAttributesCount")] + pub dropped_attributes_count: u32, + /// Flags, a bit field. 8 least significant bits are the trace flags as + /// defined in W3C Trace Context specification. 24 most significant bits are reserved + /// and must be set to 0. Readers must not assume that 24 most significant bits + /// will be zero and must correctly mask the bits when reading 8-bit trace flag (use + /// flags & LOG_RECORD_FLAGS_TRACE_FLAGS_MASK). \[Optional\]. + pub flags: u32, + /// A unique identifier for a trace. All logs from the same trace share + /// the same `trace_id`. The ID is a 16-byte array. An ID with all zeroes OR + /// of length other than 16 bytes is considered invalid (empty string in OTLP/JSON + /// is zero-length and thus is also invalid). + /// + /// This field is optional. + /// + /// The receivers SHOULD assume that the log record is not associated with a + /// trace if any of the following is true: + /// - the field is not present, + /// - the field contains an invalid value. + #[serde(rename = "traceId")] + pub trace_id: String, + /// A unique identifier for a span within a trace, assigned when the span + /// is created. The ID is an 8-byte array. An ID with all zeroes OR of length + /// other than 8 bytes is considered invalid (empty string in OTLP/JSON + /// is zero-length and thus is also invalid). + /// + /// This field is optional. If the sender specifies a valid span_id then it SHOULD also + /// specify a valid trace_id. + /// + /// The receivers SHOULD assume that the log record is not associated with a + /// span if any of the following is true: + /// - the field is not present, + /// - the field contains an invalid value. + #[serde(rename = "spanId")] + pub span_id: String, + } + /// Possible values for LogRecord.SeverityNumber. + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum SeverityNumber { + /// UNSPECIFIED is the default SeverityNumber, it MUST NOT be used. + Unspecified = 0, + Trace = 1, + Trace2 = 2, + Trace3 = 3, + Trace4 = 4, + Debug = 5, + Debug2 = 6, + Debug3 = 7, + Debug4 = 8, + Info = 9, + Info2 = 10, + Info3 = 11, + Info4 = 12, + Warn = 13, + Warn2 = 14, + Warn3 = 15, + Warn4 = 16, + Error = 17, + Error2 = 18, + Error3 = 19, + Error4 = 20, + Fatal = 21, + Fatal2 = 22, + Fatal3 = 23, + Fatal4 = 24, + } + impl SeverityNumber { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(severity_number: i32) -> &'static str { + match severity_number { + 0 => "SEVERITY_NUMBER_UNSPECIFIED", + 1 => "SEVERITY_NUMBER_TRACE", + 2 => "SEVERITY_NUMBER_TRACE2", + 3 => "SEVERITY_NUMBER_TRACE3", + 4 => "SEVERITY_NUMBER_TRACE4", + 5 => "SEVERITY_NUMBER_DEBUG", + 6 => "SEVERITY_NUMBER_DEBUG2", + 7 => "SEVERITY_NUMBER_DEBUG3", + 8 => "SEVERITY_NUMBER_DEBUG4", + 9 => "SEVERITY_NUMBER_INFO", + 10 => "SEVERITY_NUMBER_INFO2", + 11 => "SEVERITY_NUMBER_INFO3", + 12 => "SEVERITY_NUMBER_INFO4", + 13 => "SEVERITY_NUMBER_WARN", + 14 => "SEVERITY_NUMBER_WARN2", + 15 => "SEVERITY_NUMBER_WARN3", + 16 => "SEVERITY_NUMBER_WARN4", + 17 => "SEVERITY_NUMBER_ERROR", + 18 => "SEVERITY_NUMBER_ERROR2", + 19 => "SEVERITY_NUMBER_ERROR3", + 20 => "SEVERITY_NUMBER_ERROR4", + 21 => "SEVERITY_NUMBER_FATAL", + 22 => "SEVERITY_NUMBER_FATAL2", + 23 => "SEVERITY_NUMBER_FATAL3", + 24 => "SEVERITY_NUMBER_FATAL4", + _ => "Invalid severity number", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "SEVERITY_NUMBER_UNSPECIFIED" => Some(Self::Unspecified), + "SEVERITY_NUMBER_TRACE" => Some(Self::Trace), + "SEVERITY_NUMBER_TRACE2" => Some(Self::Trace2), + "SEVERITY_NUMBER_TRACE3" => Some(Self::Trace3), + "SEVERITY_NUMBER_TRACE4" => Some(Self::Trace4), + "SEVERITY_NUMBER_DEBUG" => Some(Self::Debug), + "SEVERITY_NUMBER_DEBUG2" => Some(Self::Debug2), + "SEVERITY_NUMBER_DEBUG3" => Some(Self::Debug3), + "SEVERITY_NUMBER_DEBUG4" => Some(Self::Debug4), + "SEVERITY_NUMBER_INFO" => Some(Self::Info), + "SEVERITY_NUMBER_INFO2" => Some(Self::Info2), + "SEVERITY_NUMBER_INFO3" => Some(Self::Info3), + "SEVERITY_NUMBER_INFO4" => Some(Self::Info4), + "SEVERITY_NUMBER_WARN" => Some(Self::Warn), + "SEVERITY_NUMBER_WARN2" => Some(Self::Warn2), + "SEVERITY_NUMBER_WARN3" => Some(Self::Warn3), + "SEVERITY_NUMBER_WARN4" => Some(Self::Warn4), + "SEVERITY_NUMBER_ERROR" => Some(Self::Error), + "SEVERITY_NUMBER_ERROR2" => Some(Self::Error2), + "SEVERITY_NUMBER_ERROR3" => Some(Self::Error3), + "SEVERITY_NUMBER_ERROR4" => Some(Self::Error4), + "SEVERITY_NUMBER_FATAL" => Some(Self::Fatal), + "SEVERITY_NUMBER_FATAL2" => Some(Self::Fatal2), + "SEVERITY_NUMBER_FATAL3" => Some(Self::Fatal3), + "SEVERITY_NUMBER_FATAL4" => Some(Self::Fatal4), + _ => None, + } + } + } + /// LogRecordFlags is defined as a protobuf 'uint32' type and is to be used as + /// bit-fields. Each non-zero value defined in this enum is a bit-mask. + /// To extract the bit-field, for example, use an expression like: + /// + /// (logRecord.flags & LOG_RECORD_FLAGS_TRACE_FLAGS_MASK) + /// + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum LogRecordFlags { + /// The zero value for the enum. Should not be used for comparisons. + /// Instead use bitwise "and" with the appropriate mask as shown above. + DoNotUse = 0, + /// Bits 0-7 are used for trace flags. + TraceFlagsMask = 255, + } + impl LogRecordFlags { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(flag: u32) -> &'static str { + match flag { + 0 => "LOG_RECORD_FLAGS_DO_NOT_USE", + 255 => "LOG_RECORD_FLAGS_TRACE_FLAGS_MASK", + _ => "Invalid flag", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "LOG_RECORD_FLAGS_DO_NOT_USE" => Some(Self::DoNotUse), + "LOG_RECORD_FLAGS_TRACE_FLAGS_MASK" => Some(Self::TraceFlagsMask), + _ => None, + } + } + } + \ No newline at end of file diff --git a/server/src/handlers/http/otel/opentelemetry.proto.resource.v1.rs b/server/src/handlers/http/otel/opentelemetry.proto.resource.v1.rs new file mode 100644 index 000000000..1d72275b0 --- /dev/null +++ b/server/src/handlers/http/otel/opentelemetry.proto.resource.v1.rs @@ -0,0 +1,38 @@ +/* + * Parseable Server (C) 2022 - 2024 Parseable, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + // This file was generated by protoc-gen-rust-protobuf. The file was edited after the generation. + // All the repeated fields were changed to Option> + + use crate::handlers::http::otel::proto::common::v1::KeyValue; + use serde::{Deserialize, Serialize}; + + #[derive(Serialize, Deserialize, Debug)] + /// Resource information. + pub struct Resource { + /// Set of attributes that describe the resource. + /// Attribute keys MUST be unique (it is not allowed to have more than one + /// attribute with the same key). + #[serde(rename = "attributes")] + pub attributes: Option>, + /// dropped_attributes_count is the number of dropped attributes. If the value is 0, then + /// no attributes were dropped. + + #[serde(rename = "droppedAttributesCount")] + pub dropped_attributes_count: u32, + } + \ No newline at end of file diff --git a/server/src/handlers/http/otel/opentelemetry/proto/README.md b/server/src/handlers/http/otel/opentelemetry/proto/README.md new file mode 100644 index 000000000..d0281330e --- /dev/null +++ b/server/src/handlers/http/otel/opentelemetry/proto/README.md @@ -0,0 +1,2 @@ +The following protobuf definitions are vendored from: +https://github.com/open-telemetry/opentelemetry-proto/tree/v1.0.0/opentelemetry/proto diff --git a/server/src/handlers/http/otel/opentelemetry/proto/common/v1/common.proto b/server/src/handlers/http/otel/opentelemetry/proto/common/v1/common.proto new file mode 100644 index 000000000..f7ee8f265 --- /dev/null +++ b/server/src/handlers/http/otel/opentelemetry/proto/common/v1/common.proto @@ -0,0 +1,81 @@ +// Copyright 2019, OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package opentelemetry.proto.common.v1; + +option csharp_namespace = "OpenTelemetry.Proto.Common.V1"; +option java_multiple_files = true; +option java_package = "io.opentelemetry.proto.common.v1"; +option java_outer_classname = "CommonProto"; +option go_package = "go.opentelemetry.io/proto/otlp/common/v1"; + +// AnyValue is used to represent any type of attribute value. AnyValue may contain a +// primitive value such as a string or integer or it may contain an arbitrary nested +// object containing arrays, key-value lists and primitives. +message AnyValue { + // The value is one of the listed fields. It is valid for all values to be unspecified + // in which case this AnyValue is considered to be "empty". + oneof value { + string string_value = 1; + bool bool_value = 2; + int64 int_value = 3; + double double_value = 4; + ArrayValue array_value = 5; + KeyValueList kvlist_value = 6; + bytes bytes_value = 7; + } +} + +// ArrayValue is a list of AnyValue messages. We need ArrayValue as a message +// since oneof in AnyValue does not allow repeated fields. +message ArrayValue { + // Array of values. The array may be empty (contain 0 elements). + repeated AnyValue values = 1; +} + +// KeyValueList is a list of KeyValue messages. We need KeyValueList as a message +// since `oneof` in AnyValue does not allow repeated fields. Everywhere else where we need +// a list of KeyValue messages (e.g. in Span) we use `repeated KeyValue` directly to +// avoid unnecessary extra wrapping (which slows down the protocol). The 2 approaches +// are semantically equivalent. +message KeyValueList { + // A collection of key/value pairs of key-value pairs. The list may be empty (may + // contain 0 elements). + // The keys MUST be unique (it is not allowed to have more than one + // value with the same key). + repeated KeyValue values = 1; +} + +// KeyValue is a key-value pair that is used to store Span attributes, Link +// attributes, etc. +message KeyValue { + string key = 1; + AnyValue value = 2; +} + +// InstrumentationScope is a message representing the instrumentation scope information +// such as the fully qualified name and version. +message InstrumentationScope { + // An empty instrumentation scope name means the name is unknown. + string name = 1; + string version = 2; + + // Additional attributes that describe the scope. [Optional]. + // Attribute keys MUST be unique (it is not allowed to have more than one + // attribute with the same key). + repeated KeyValue attributes = 3; + uint32 dropped_attributes_count = 4; +} diff --git a/server/src/handlers/http/otel/opentelemetry/proto/logs/v1/logs.proto b/server/src/handlers/http/otel/opentelemetry/proto/logs/v1/logs.proto new file mode 100644 index 000000000..0b4b64972 --- /dev/null +++ b/server/src/handlers/http/otel/opentelemetry/proto/logs/v1/logs.proto @@ -0,0 +1,203 @@ +// Copyright 2020, OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package opentelemetry.proto.logs.v1; + +import "opentelemetry/proto/common/v1/common.proto"; +import "opentelemetry/proto/resource/v1/resource.proto"; + +option csharp_namespace = "OpenTelemetry.Proto.Logs.V1"; +option java_multiple_files = true; +option java_package = "io.opentelemetry.proto.logs.v1"; +option java_outer_classname = "LogsProto"; +option go_package = "go.opentelemetry.io/proto/otlp/logs/v1"; + +// LogsData represents the logs data that can be stored in a persistent storage, +// OR can be embedded by other protocols that transfer OTLP logs data but do not +// implement the OTLP protocol. +// +// The main difference between this message and collector protocol is that +// in this message there will not be any "control" or "metadata" specific to +// OTLP protocol. +// +// When new fields are added into this message, the OTLP request MUST be updated +// as well. +message LogsData { + // An array of ResourceLogs. + // For data coming from a single resource this array will typically contain + // one element. Intermediary nodes that receive data from multiple origins + // typically batch the data before forwarding further and in that case this + // array will contain multiple elements. + repeated ResourceLogs resource_logs = 1; +} + +// A collection of ScopeLogs from a Resource. +message ResourceLogs { + reserved 1000; + + // The resource for the logs in this message. + // If this field is not set then resource info is unknown. + opentelemetry.proto.resource.v1.Resource resource = 1; + + // A list of ScopeLogs that originate from a resource. + repeated ScopeLogs scope_logs = 2; + + // This schema_url applies to the data in the "resource" field. It does not apply + // to the data in the "scope_logs" field which have their own schema_url field. + string schema_url = 3; +} + +// A collection of Logs produced by a Scope. +message ScopeLogs { + // The instrumentation scope information for the logs in this message. + // Semantically when InstrumentationScope isn't set, it is equivalent with + // an empty instrumentation scope name (unknown). + opentelemetry.proto.common.v1.InstrumentationScope scope = 1; + + // A list of log records. + repeated LogRecord log_records = 2; + + // This schema_url applies to all logs in the "logs" field. + string schema_url = 3; +} + +// Possible values for LogRecord.SeverityNumber. +enum SeverityNumber { + // UNSPECIFIED is the default SeverityNumber, it MUST NOT be used. + SEVERITY_NUMBER_UNSPECIFIED = 0; + SEVERITY_NUMBER_TRACE = 1; + SEVERITY_NUMBER_TRACE2 = 2; + SEVERITY_NUMBER_TRACE3 = 3; + SEVERITY_NUMBER_TRACE4 = 4; + SEVERITY_NUMBER_DEBUG = 5; + SEVERITY_NUMBER_DEBUG2 = 6; + SEVERITY_NUMBER_DEBUG3 = 7; + SEVERITY_NUMBER_DEBUG4 = 8; + SEVERITY_NUMBER_INFO = 9; + SEVERITY_NUMBER_INFO2 = 10; + SEVERITY_NUMBER_INFO3 = 11; + SEVERITY_NUMBER_INFO4 = 12; + SEVERITY_NUMBER_WARN = 13; + SEVERITY_NUMBER_WARN2 = 14; + SEVERITY_NUMBER_WARN3 = 15; + SEVERITY_NUMBER_WARN4 = 16; + SEVERITY_NUMBER_ERROR = 17; + SEVERITY_NUMBER_ERROR2 = 18; + SEVERITY_NUMBER_ERROR3 = 19; + SEVERITY_NUMBER_ERROR4 = 20; + SEVERITY_NUMBER_FATAL = 21; + SEVERITY_NUMBER_FATAL2 = 22; + SEVERITY_NUMBER_FATAL3 = 23; + SEVERITY_NUMBER_FATAL4 = 24; +} + +// LogRecordFlags is defined as a protobuf 'uint32' type and is to be used as +// bit-fields. Each non-zero value defined in this enum is a bit-mask. +// To extract the bit-field, for example, use an expression like: +// +// (logRecord.flags & LOG_RECORD_FLAGS_TRACE_FLAGS_MASK) +// +enum LogRecordFlags { + // The zero value for the enum. Should not be used for comparisons. + // Instead use bitwise "and" with the appropriate mask as shown above. + LOG_RECORD_FLAGS_DO_NOT_USE = 0; + + // Bits 0-7 are used for trace flags. + LOG_RECORD_FLAGS_TRACE_FLAGS_MASK = 0x000000FF; + + // Bits 8-31 are reserved for future use. +} + +// A log record according to OpenTelemetry Log Data Model: +// https://github.com/open-telemetry/oteps/blob/main/text/logs/0097-log-data-model.md +message LogRecord { + reserved 4; + + // time_unix_nano is the time when the event occurred. + // Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970. + // Value of 0 indicates unknown or missing timestamp. + fixed64 time_unix_nano = 1; + + // Time when the event was observed by the collection system. + // For events that originate in OpenTelemetry (e.g. using OpenTelemetry Logging SDK) + // this timestamp is typically set at the generation time and is equal to Timestamp. + // For events originating externally and collected by OpenTelemetry (e.g. using + // Collector) this is the time when OpenTelemetry's code observed the event measured + // by the clock of the OpenTelemetry code. This field MUST be set once the event is + // observed by OpenTelemetry. + // + // For converting OpenTelemetry log data to formats that support only one timestamp or + // when receiving OpenTelemetry log data by recipients that support only one timestamp + // internally the following logic is recommended: + // - Use time_unix_nano if it is present, otherwise use observed_time_unix_nano. + // + // Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970. + // Value of 0 indicates unknown or missing timestamp. + fixed64 observed_time_unix_nano = 11; + + // Numerical value of the severity, normalized to values described in Log Data Model. + // [Optional]. + SeverityNumber severity_number = 2; + + // The severity text (also known as log level). The original string representation as + // it is known at the source. [Optional]. + string severity_text = 3; + + // A value containing the body of the log record. Can be for example a human-readable + // string message (including multi-line) describing the event in a free form or it can + // be a structured data composed of arrays and maps of other values. [Optional]. + opentelemetry.proto.common.v1.AnyValue body = 5; + + // Additional attributes that describe the specific event occurrence. [Optional]. + // Attribute keys MUST be unique (it is not allowed to have more than one + // attribute with the same key). + repeated opentelemetry.proto.common.v1.KeyValue attributes = 6; + uint32 dropped_attributes_count = 7; + + // Flags, a bit field. 8 least significant bits are the trace flags as + // defined in W3C Trace Context specification. 24 most significant bits are reserved + // and must be set to 0. Readers must not assume that 24 most significant bits + // will be zero and must correctly mask the bits when reading 8-bit trace flag (use + // flags & LOG_RECORD_FLAGS_TRACE_FLAGS_MASK). [Optional]. + fixed32 flags = 8; + + // A unique identifier for a trace. All logs from the same trace share + // the same `trace_id`. The ID is a 16-byte array. An ID with all zeroes OR + // of length other than 16 bytes is considered invalid (empty string in OTLP/JSON + // is zero-length and thus is also invalid). + // + // This field is optional. + // + // The receivers SHOULD assume that the log record is not associated with a + // trace if any of the following is true: + // - the field is not present, + // - the field contains an invalid value. + bytes trace_id = 9; + + // A unique identifier for a span within a trace, assigned when the span + // is created. The ID is an 8-byte array. An ID with all zeroes OR of length + // other than 8 bytes is considered invalid (empty string in OTLP/JSON + // is zero-length and thus is also invalid). + // + // This field is optional. If the sender specifies a valid span_id then it SHOULD also + // specify a valid trace_id. + // + // The receivers SHOULD assume that the log record is not associated with a + // span if any of the following is true: + // - the field is not present, + // - the field contains an invalid value. + bytes span_id = 10; +} diff --git a/server/src/handlers/http/otel/opentelemetry/proto/resource/v1/resource.proto b/server/src/handlers/http/otel/opentelemetry/proto/resource/v1/resource.proto new file mode 100644 index 000000000..6637560bc --- /dev/null +++ b/server/src/handlers/http/otel/opentelemetry/proto/resource/v1/resource.proto @@ -0,0 +1,37 @@ +// Copyright 2019, OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package opentelemetry.proto.resource.v1; + +import "opentelemetry/proto/common/v1/common.proto"; + +option csharp_namespace = "OpenTelemetry.Proto.Resource.V1"; +option java_multiple_files = true; +option java_package = "io.opentelemetry.proto.resource.v1"; +option java_outer_classname = "ResourceProto"; +option go_package = "go.opentelemetry.io/proto/otlp/resource/v1"; + +// Resource information. +message Resource { + // Set of attributes that describe the resource. + // Attribute keys MUST be unique (it is not allowed to have more than one + // attribute with the same key). + repeated opentelemetry.proto.common.v1.KeyValue attributes = 1; + + // dropped_attributes_count is the number of dropped attributes. If the value is 0, then + // no attributes were dropped. + uint32 dropped_attributes_count = 2; +} diff --git a/server/src/handlers/http/otel/proto.rs b/server/src/handlers/http/otel/proto.rs new file mode 100644 index 000000000..9322bfcc5 --- /dev/null +++ b/server/src/handlers/http/otel/proto.rs @@ -0,0 +1,38 @@ +/* + * Parseable Server (C) 2022 - 2024 Parseable, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +/// Common types used across all event types. +pub mod common { + pub mod v1 { + include!("opentelemetry.proto.common.v1.rs"); + } +} + +/// Generated types used for logs. +pub mod logs { + pub mod v1 { + include!("opentelemetry.proto.logs.v1.rs"); + } +} + +/// Generated types used in resources. +pub mod resource { + pub mod v1 { + include!("opentelemetry.proto.resource.v1.rs"); + } +} From 9b192a12ebe6f555d4563945747b4df54d74beb3 Mon Sep 17 00:00:00 2001 From: Swastik Baranwal Date: Fri, 16 Feb 2024 12:56:14 +0530 Subject: [PATCH 20/73] fix: absolute url for windows (#655) fixes #650 --- server/src/storage/localfs.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/storage/localfs.rs b/server/src/storage/localfs.rs index 8b802ebe8..e0880cff0 100644 --- a/server/src/storage/localfs.rs +++ b/server/src/storage/localfs.rs @@ -212,7 +212,8 @@ impl ObjectStorage for LocalFS { fn absolute_url(&self, prefix: &RelativePath) -> object_store::path::Path { object_store::path::Path::parse( - format!("{}", self.root.join(prefix.as_str()).display()).trim_start_matches('/'), + format!("{}", self.root.join(prefix.as_str()).display()) + .trim_start_matches(std::path::MAIN_SEPARATOR), ) .unwrap() } From 8f180a8e7f11e3d9a9f9811b335ec7f5436a54da Mon Sep 17 00:00:00 2001 From: Gurjot Kaur <88080236+gurjotkaur20@users.noreply.github.com> Date: Sat, 17 Feb 2024 19:10:40 +0530 Subject: [PATCH 21/73] fix: avoid removal of retention configuration while updating snapshot (#661) fixes #654 --- server/src/storage.rs | 3 +++ server/src/storage/retention.rs | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/server/src/storage.rs b/server/src/storage.rs index 975fcf445..52b1b61a3 100644 --- a/server/src/storage.rs +++ b/server/src/storage.rs @@ -37,6 +37,7 @@ pub use store_metadata::{ put_remote_metadata, put_staging_metadata, resolve_parseable_metadata, StorageMetadata, }; +use self::retention::Retention; pub use self::staging::StorageDir; /// local sync interval to move data.records to /tmp dir of that stream. @@ -76,6 +77,7 @@ pub struct ObjectStoreFormat { pub snapshot: Snapshot, #[serde(default)] pub cache_enabled: bool, + pub retention: Retention, } #[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)] @@ -118,6 +120,7 @@ impl Default for ObjectStoreFormat { stats: Stats::default(), snapshot: Snapshot::default(), cache_enabled: false, + retention: Retention::new(), } } } diff --git a/server/src/storage/retention.rs b/server/src/storage/retention.rs index 82062575a..e7aa4b34b 100644 --- a/server/src/storage/retention.rs +++ b/server/src/storage/retention.rs @@ -128,6 +128,12 @@ struct TaskView { duration: String, } +impl Retention { + pub fn new() -> Self { + Self { tasks: Vec::new() } + } +} + impl TryFrom> for Retention { type Error = String; From 0e7fe60b7cf34b5986b554b5cb327d73046b415f Mon Sep 17 00:00:00 2001 From: Gurjot Kaur <88080236+gurjotkaur20@users.noreply.github.com> Date: Sun, 18 Feb 2024 15:33:37 +0530 Subject: [PATCH 22/73] fix: retention cleanup on server startup (#662) fixes #660 --- server/src/storage/retention.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/server/src/storage/retention.rs b/server/src/storage/retention.rs index e7aa4b34b..161505e5e 100644 --- a/server/src/storage/retention.rs +++ b/server/src/storage/retention.rs @@ -83,9 +83,15 @@ pub fn init_scheduler() { } }; + // Execute once on startup + thread::spawn(move || { + let rt = async_runtime(); + rt.block_on(func()); + }); + scheduler.every(1.day()).at("00:00").run(func); - let handler = thread::spawn(|| { + let scheduler_handler = thread::spawn(|| { let rt = async_runtime(); rt.block_on(async move { loop { @@ -95,7 +101,7 @@ pub fn init_scheduler() { }); }); - *SCHEDULER_HANDLER.lock().unwrap() = Some(handler); + *SCHEDULER_HANDLER.lock().unwrap() = Some(scheduler_handler); log::info!("Scheduler is initialized") } From 31f6efc3dae5c662564d6a6206d282f4f8967b0f Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Sun, 18 Feb 2024 22:17:09 +0530 Subject: [PATCH 23/73] prepare for release v0.8.0 (#663) includes console release v0.4.0 --- Cargo.lock | 2 +- helm-releases/operator-0.0.3.tgz | Bin 29032 -> 29030 bytes helm-releases/parseable-0.8.0.tgz | Bin 0 -> 46677 bytes helm/Chart.yaml | 4 +- helm/values.yaml | 2 +- index.yaml | 89 +++++++++++++++++++----------- server/Cargo.toml | 7 +-- 7 files changed, 63 insertions(+), 41 deletions(-) create mode 100644 helm-releases/parseable-0.8.0.tgz diff --git a/Cargo.lock b/Cargo.lock index 998ff8a7d..31508e5c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2681,7 +2681,7 @@ dependencies = [ [[package]] name = "parseable" -version = "0.7.3" +version = "0.8.0" dependencies = [ "actix-cors", "actix-web", diff --git a/helm-releases/operator-0.0.3.tgz b/helm-releases/operator-0.0.3.tgz index 6f21f6460d1b159ab40730759b5dfe815d31bb2a..9a5007beec46b090820646d284addca5718a9c88 100644 GIT binary patch literal 29030 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 literal 29032 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 literal 0 HcmV?d00001 diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 1db39ddce..01f18ee77 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: parseable description: Helm chart for Parseable Server type: application -version: 0.7.3 -appVersion: "v0.7.3" +version: 0.8.0 +appVersion: "v0.8.0" maintainers: - name: Parseable Team email: hi@parseable.io diff --git a/helm/values.yaml b/helm/values.yaml index 55fec4372..e54918237 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -1,7 +1,7 @@ parseable: image: repository: parseable/parseable - tag: v0.7.3 + tag: v0.8.0 pullPolicy: Always replicaCount: 1 ## Set to true if you want to deploy Parseable in local mode (store logs diff --git a/index.yaml b/index.yaml index 655d080d2..7349b880b 100644 --- a/index.yaml +++ b/index.yaml @@ -3,9 +3,9 @@ entries: operator: - apiVersion: v2 appVersion: v0.0.3 - created: "2024-02-02T04:58:27.25146749+05:30" + created: "2024-02-18T22:09:24.5390799+05:30" description: A Helm chart for Parseable Operator - digest: 75bb3b9200a80b270031a96cb1ed886a8c7a53633298b0f1f8b9a7e82c80df8b + digest: b0e3a4770ba2c7eabc5062d7d7227d8fe9b125b667b9c02de38f02902b3ec9a2 name: operator type: application urls: @@ -13,7 +13,7 @@ entries: version: 0.0.3 - apiVersion: v2 appVersion: v0.0.2 - created: "2024-02-02T04:58:27.249199172+05:30" + created: "2024-02-18T22:09:24.536773907+05:30" description: A Helm chart for Parseable Operator digest: 0bf4cd8cc7f1c5ff6d49f91fe91204855a215ae1cb5acaeb3fe84497bc97c566 name: operator @@ -23,7 +23,7 @@ entries: version: 0.0.2 - apiVersion: v2 appVersion: 0.0.1 - created: "2024-02-02T04:58:27.247010981+05:30" + created: "2024-02-18T22:09:24.534403806+05:30" description: A Helm chart for Parseable Operator digest: 344cedd9e3a0f17c6ff09514dabed994bac7bac94ace500857d487c1c9cc1859 name: operator @@ -32,9 +32,32 @@ entries: - https://charts.parseable.com/helm-releases/operator-0.0.1.tgz version: 0.0.1 parseable: + - apiVersion: v2 + appVersion: v0.8.0 + created: "2024-02-18T22:09:24.682367524+05:30" + dependencies: + - condition: vector.enabled + name: vector + repository: https://helm.vector.dev + version: 0.20.1 + - condition: fluent-bit.enabled + name: fluent-bit + repository: https://fluent.github.io/helm-charts + version: 0.25.0 + description: Helm chart for Parseable Server + digest: 50320f397905c455b6dd1fe3120d0ce15d1ea9e044952ae208386f1858fbe75a + maintainers: + - email: hi@parseable.io + name: Parseable Team + url: https://parseable.io + name: parseable + type: application + urls: + - https://charts.parseable.com/helm-releases/parseable-0.8.0.tgz + version: 0.8.0 - apiVersion: v2 appVersion: v0.7.3 - created: "2024-02-02T04:58:27.381994059+05:30" + created: "2024-02-18T22:09:24.673930558+05:30" dependencies: - condition: vector.enabled name: vector @@ -57,7 +80,7 @@ entries: version: 0.7.3 - apiVersion: v2 appVersion: v0.7.2 - created: "2024-02-02T04:58:27.374953342+05:30" + created: "2024-02-18T22:09:24.664810429+05:30" dependencies: - condition: vector.enabled name: vector @@ -80,7 +103,7 @@ entries: version: 0.7.2 - apiVersion: v2 appVersion: v0.7.1 - created: "2024-02-02T04:58:27.366847512+05:30" + created: "2024-02-18T22:09:24.656487251+05:30" dependencies: - condition: vector.enabled name: vector @@ -103,7 +126,7 @@ entries: version: 0.7.1 - apiVersion: v2 appVersion: v0.7.0 - created: "2024-02-02T04:58:27.359774207+05:30" + created: "2024-02-18T22:09:24.648107666+05:30" dependencies: - condition: vector.enabled name: vector @@ -126,7 +149,7 @@ entries: version: 0.7.0 - apiVersion: v2 appVersion: v0.6.2 - created: "2024-02-02T04:58:27.352690937+05:30" + created: "2024-02-18T22:09:24.63890944+05:30" dependencies: - condition: vector.enabled name: vector @@ -149,7 +172,7 @@ entries: version: 0.6.2 - apiVersion: v2 appVersion: v0.6.1 - created: "2024-02-02T04:58:27.343680764+05:30" + created: "2024-02-18T22:09:24.630607847+05:30" dependencies: - condition: vector.enabled name: vector @@ -172,7 +195,7 @@ entries: version: 0.6.1 - apiVersion: v2 appVersion: v0.6.0 - created: "2024-02-02T04:58:27.336640048+05:30" + created: "2024-02-18T22:09:24.622244865+05:30" dependencies: - condition: vector.enabled name: vector @@ -195,7 +218,7 @@ entries: version: 0.6.0 - apiVersion: v2 appVersion: v0.5.1 - created: "2024-02-02T04:58:27.329489526+05:30" + created: "2024-02-18T22:09:24.612797742+05:30" dependencies: - condition: vector.enabled name: vector @@ -218,7 +241,7 @@ entries: version: 0.5.1 - apiVersion: v2 appVersion: v0.5.0 - created: "2024-02-02T04:58:27.321044265+05:30" + created: "2024-02-18T22:09:24.605761986+05:30" dependencies: - condition: vector.enabled name: vector @@ -241,7 +264,7 @@ entries: version: 0.5.0 - apiVersion: v2 appVersion: v0.4.4 - created: "2024-02-02T04:58:27.313999318+05:30" + created: "2024-02-18T22:09:24.598697108+05:30" dependencies: - condition: vector.enabled name: vector @@ -264,7 +287,7 @@ entries: version: 0.4.5 - apiVersion: v2 appVersion: v0.4.3 - created: "2024-02-02T04:58:27.306780614+05:30" + created: "2024-02-18T22:09:24.590052185+05:30" dependencies: - condition: vector.enabled name: vector @@ -287,7 +310,7 @@ entries: version: 0.4.4 - apiVersion: v2 appVersion: v0.4.2 - created: "2024-02-02T04:58:27.298223673+05:30" + created: "2024-02-18T22:09:24.583210976+05:30" dependencies: - condition: vector.enabled name: vector @@ -310,7 +333,7 @@ entries: version: 0.4.3 - apiVersion: v2 appVersion: v0.4.1 - created: "2024-02-02T04:58:27.291324316+05:30" + created: "2024-02-18T22:09:24.57636669+05:30" dependencies: - condition: vector.enabled name: vector @@ -333,7 +356,7 @@ entries: version: 0.4.2 - apiVersion: v2 appVersion: v0.4.0 - created: "2024-02-02T04:58:27.284409028+05:30" + created: "2024-02-18T22:09:24.56802337+05:30" dependencies: - condition: vector.enabled name: vector @@ -356,7 +379,7 @@ entries: version: 0.4.1 - apiVersion: v2 appVersion: v0.4.0 - created: "2024-02-02T04:58:27.275674767+05:30" + created: "2024-02-18T22:09:24.561182792+05:30" dependencies: - condition: vector.enabled name: vector @@ -379,7 +402,7 @@ entries: version: 0.4.0 - apiVersion: v2 appVersion: v0.3.1 - created: "2024-02-02T04:58:27.267494289+05:30" + created: "2024-02-18T22:09:24.554120329+05:30" dependencies: - condition: vector.enabled name: vector @@ -402,7 +425,7 @@ entries: version: 0.3.1 - apiVersion: v2 appVersion: v0.3.0 - created: "2024-02-02T04:58:27.257567558+05:30" + created: "2024-02-18T22:09:24.545144971+05:30" description: Helm chart for Parseable Server digest: ff30739229b727dc637f62fd4481c886a6080ce4556bae10cafe7642ddcfd937 name: parseable @@ -412,7 +435,7 @@ entries: version: 0.3.0 - apiVersion: v2 appVersion: v0.2.2 - created: "2024-02-02T04:58:27.256889818+05:30" + created: "2024-02-18T22:09:24.544541447+05:30" description: Helm chart for Parseable Server digest: 477d0dc2f0c07d4f4c32e105d4bdd70c71113add5c2a75ac5f1cb42aa0276db7 name: parseable @@ -422,7 +445,7 @@ entries: version: 0.2.2 - apiVersion: v2 appVersion: v0.2.1 - created: "2024-02-02T04:58:27.256299687+05:30" + created: "2024-02-18T22:09:24.543983467+05:30" description: Helm chart for Parseable Server digest: 84826fcd1b4c579f301569f43b0309c07e8082bad76f5cdd25f86e86ca2e8192 name: parseable @@ -432,7 +455,7 @@ entries: version: 0.2.1 - apiVersion: v2 appVersion: v0.2.0 - created: "2024-02-02T04:58:27.255790738+05:30" + created: "2024-02-18T22:09:24.54347941+05:30" description: Helm chart for Parseable Server digest: 7a759f7f9809f3935cba685e904c021a0b645f217f4e45b9be185900c467edff name: parseable @@ -442,7 +465,7 @@ entries: version: 0.2.0 - apiVersion: v2 appVersion: v0.1.1 - created: "2024-02-02T04:58:27.255315523+05:30" + created: "2024-02-18T22:09:24.54297936+05:30" description: Helm chart for Parseable Server digest: 37993cf392f662ec7b1fbfc9a2ba00ec906d98723e38f3c91ff1daca97c3d0b3 name: parseable @@ -452,7 +475,7 @@ entries: version: 0.1.1 - apiVersion: v2 appVersion: v0.1.0 - created: "2024-02-02T04:58:27.254830285+05:30" + created: "2024-02-18T22:09:24.542467394+05:30" description: Helm chart for Parseable Server digest: 1d580d072af8d6b1ebcbfee31c2e16c907d08db754780f913b5f0032b403789b name: parseable @@ -462,7 +485,7 @@ entries: version: 0.1.0 - apiVersion: v2 appVersion: v0.0.8 - created: "2024-02-02T04:58:27.254355222+05:30" + created: "2024-02-18T22:09:24.541989019+05:30" description: Helm chart for Parseable Server digest: c805254ffa634f96ecec448bcfff9973339aa9487dd8199b21b17b79a4de9345 name: parseable @@ -472,7 +495,7 @@ entries: version: 0.0.8 - apiVersion: v2 appVersion: v0.0.7 - created: "2024-02-02T04:58:27.253889848+05:30" + created: "2024-02-18T22:09:24.541503125+05:30" description: Helm chart for Parseable Server digest: c591f617ed1fe820bb2c72a4c976a78126f1d1095d552daa07c4700f46c4708a name: parseable @@ -482,7 +505,7 @@ entries: version: 0.0.7 - apiVersion: v2 appVersion: v0.0.6 - created: "2024-02-02T04:58:27.253387407+05:30" + created: "2024-02-18T22:09:24.541022984+05:30" description: Helm chart for Parseable Server digest: f9ae56a6fcd6a59e7bee0436200ddbedeb74ade6073deb435b8fcbaf08dda795 name: parseable @@ -492,7 +515,7 @@ entries: version: 0.0.6 - apiVersion: v2 appVersion: v0.0.5 - created: "2024-02-02T04:58:27.252883805+05:30" + created: "2024-02-18T22:09:24.540531569+05:30" description: Helm chart for Parseable Server digest: 4d6b08a064fba36e16feeb820b77e1e8e60fb6de48dbf7ec8410d03d10c26ad0 name: parseable @@ -502,7 +525,7 @@ entries: version: 0.0.5 - apiVersion: v2 appVersion: v0.0.2 - created: "2024-02-02T04:58:27.252393358+05:30" + created: "2024-02-18T22:09:24.540015025+05:30" description: Helm chart for Parseable Server digest: 38a0a3e4c498afbbcc76ebfcb9cb598fa2ca843a53cc93b3cb4f135b85c10844 name: parseable @@ -512,7 +535,7 @@ entries: version: 0.0.2 - apiVersion: v2 appVersion: v0.0.1 - created: "2024-02-02T04:58:27.251952003+05:30" + created: "2024-02-18T22:09:24.539567583+05:30" description: Helm chart for Parseable Server digest: 1f1142db092b9620ee38bb2294ccbb1c17f807b33bf56da43816af7fe89f301e name: parseable @@ -541,4 +564,4 @@ entries: urls: - https://charts.parseable.io/helm-releases/parseable-operator-0.0.1.tgz version: 0.0.1 -generated: "2024-02-02T04:58:27.244360942+05:30" +generated: "2024-02-18T22:09:24.530781429+05:30" diff --git a/server/Cargo.toml b/server/Cargo.toml index f87de078d..19571d11b 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "parseable" -version = "0.7.3" +version = "0.8.0" authors = ["Parseable Team "] edition = "2021" rust-version = "1.73" @@ -105,7 +105,6 @@ hashlru = { version = "0.11.0", features = ["serde"] } path-clean = "1.0.1" prost = "0.12.3" - [build-dependencies] cargo_toml = "0.15" sha1_smol = { version = "1.0", features = ["std"] } @@ -121,8 +120,8 @@ maplit = "1.0" rstest = "0.16" [package.metadata.parseable_ui] -assets-url = "https://github.com/parseablehq/console/releases/download/v0.3.5/build.zip" -assets-sha1 = "c3fea8f87769273f60fc988e0d1c45a94fe4d2ad" +assets-url = "https://github.com/parseablehq/console/releases/download/v0.4.0/build.zip" +assets-sha1 = "f4858d44cb22d25911c10b3dd02061198402a5db" [features] debug = [] From 7c060c6433dbb15f73e6c2e03b3040a709b41aa5 Mon Sep 17 00:00:00 2001 From: Nitish Tiwari Date: Mon, 19 Feb 2024 11:22:44 +0530 Subject: [PATCH 24/73] update cargo-about details (#664) --- README.md | 18 +++ about.hbs | 4 +- license.html => parseable-license.html | 168 +++++++++++++++++++------ 3 files changed, 153 insertions(+), 37 deletions(-) rename license.html => parseable-license.html (99%) diff --git a/README.md b/README.md index f4f117391..a773ca766 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,24 @@ But with log data growing exponentially, today's log data challenges involve who +### License report + +A license report lists all the licenses of all dependencies in a project. You can use [cargo-about ↗︎](https://embarkstudios.github.io/cargo-about/) to generate a license report for the Parseable. + +If not already installed, install `cargo-about` using the below command. + +```sh +cargo install --locked cargo-about && cargo about init +``` + +To generate a license report, run the below command. + +```sh +cargo about generate about.hbs > parseable-license.html +``` + +You can see the license report in the file parseable-license.html. + ### Supported by diff --git a/about.hbs b/about.hbs index 699b3b04e..76a6b37c1 100644 --- a/about.hbs +++ b/about.hbs @@ -38,8 +38,8 @@

-

Third Party Licenses

-

This page lists the licenses of the projects used in cargo-about.

+

Third Party Licenses used in Parseable

+

This page lists the licenses of the projects used in Parseable.

Overview of licenses:

diff --git a/license.html b/parseable-license.html similarity index 99% rename from license.html rename to parseable-license.html index 6443966a2..6976d6696 100644 --- a/license.html +++ b/parseable-license.html @@ -38,14 +38,14 @@
-

Third Party Licenses

-

This page lists the licenses of the projects used in cargo-about.

+

Third Party Licenses used in Parseable

+

This page lists the licenses of the projects used in Parseable.

Overview of licenses:

                                 Apache License
                            Version 2.0, January 2004
@@ -2177,6 +2186,7 @@ 

Used by:

  • clap_lex 0.3.1
  • os_str_bytes 6.4.1
  • ryu 1.0.12
  • +
  • ureq 2.6.2
  •                                  Apache License
                                Version 2.0, January 2004
    @@ -4503,6 +4513,7 @@ 

    Used by:

  • cxxbridge-flags 1.0.90
  • cxxbridge-macro 1.0.90
  • libc 0.2.152
  • +
  • prettyplease 0.2.15
  • proc-macro2 1.0.67
  • quote 1.0.33
  • rustversion 1.0.12
  • @@ -7063,11 +7074,13 @@

    Used by:

  • libm 0.2.6
  • link-cplusplus 1.0.8
  • linux-raw-sys 0.1.4
  • +
  • linux-raw-sys 0.4.13
  • lock_api 0.4.9
  • lzma-sys 0.1.20
  • maplit 1.0.2
  • match_cfg 0.1.0
  • mime 0.3.17
  • +
  • multimap 0.8.3
  • num 0.4.1
  • num-bigint 0.4.3
  • num-complex 0.4.3
  • @@ -7085,8 +7098,10 @@

    Used by:

  • percent-encoding 2.3.0
  • petgraph 0.6.3
  • pkg-config 0.3.26
  • -
  • prost 0.12.1
  • -
  • prost-derive 0.12.1
  • +
  • prost 0.12.3
  • +
  • prost-build 0.12.3
  • +
  • prost-derive 0.12.3
  • +
  • prost-types 0.12.3
  • rayon 1.7.0
  • rayon-core 1.11.0
  • regex 1.8.4
  • @@ -7095,6 +7110,7 @@

    Used by:

  • rustc-demangle 0.1.21
  • rustc_version 0.4.0
  • rustix 0.36.16
  • +
  • rustix 0.38.25
  • rustls 0.20.8
  • rustls 0.21.10
  • rustls-pemfile 1.0.2
  • @@ -8374,6 +8390,7 @@

    Apache License 2.0

    Used by:

                                  Apache License
                             Version 2.0, January 2004
    @@ -9194,6 +9211,30 @@ 

    Used by:

    See the License for the specific language governing permissions and limitations under the License. +
    + +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    # Contributing
    +
    +## License
    +
    +Licensed under either of
    +
    + * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
    + * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
    +
    +at your option.
    +
    +### Contribution
    +
    +Unless you explicitly state otherwise, any contribution intentionally submitted
    +for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
    +additional terms or conditions.
     
  • @@ -10269,6 +10310,15 @@

    Used by:

    MIT OR Apache-2.0
  • +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    MIT OR Apache-2.0
    +
    +
  • Apache License 2.0

    Used by:

    @@ -10571,6 +10621,22 @@

    Used by:

    limitations under the License. ~~~~ +
  • + +
  • +

    Apache License 2.0

    +

    Used by:

    + +
    This project is licensed under either of
    +
    + * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
    +   http://www.apache.org/licenses/LICENSE-2.0)
    + * MIT license ([LICENSE-MIT](LICENSE-MIT) or
    +   http://opensource.org/licenses/MIT)
    +
    +at your option.
     
  • @@ -11239,6 +11305,33 @@

    Used by:

    OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +
  • + +
  • +

    MIT License

    +

    Used by:

    + +
    Copyright (c) 2015 fangyuanziti
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in
    +all copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    +THE SOFTWARE.
     
  • @@ -12258,6 +12351,7 @@

    Used by:

    MIT License

    Used by: