diff --git a/Cargo.lock b/Cargo.lock
index 503c1e0..05572f7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -45,6 +45,17 @@ dependencies = [
"opaque-debug",
]
+[[package]]
+name = "ahash"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+dependencies = [
+ "getrandom 0.2.16",
+ "once_cell",
+ "version_check",
+]
+
[[package]]
name = "ahash"
version = "0.8.12"
@@ -147,6 +158,12 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed51fe0f224d1d4ea768be38c51f9f831dee9d05c163c11fba0b8c44387b1fc3"
+[[package]]
+name = "arrayvec"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
+
[[package]]
name = "arrow-format"
version = "0.8.1"
@@ -196,6 +213,18 @@ version = "2.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
[[package]]
name = "block-buffer"
version = "0.9.0"
@@ -221,12 +250,58 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
+[[package]]
+name = "borsh"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a"
+dependencies = [
+ "borsh-derive",
+ "bytes",
+ "cfg_aliases",
+]
+
+[[package]]
+name = "borsh-derive"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59"
+dependencies = [
+ "once_cell",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.111",
+]
+
[[package]]
name = "bumpalo"
version = "3.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
+[[package]]
+name = "bytecheck"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
+dependencies = [
+ "bytecheck_derive",
+ "ptr_meta",
+ "simdutf8",
+]
+
+[[package]]
+name = "bytecheck_derive"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
[[package]]
name = "bytemuck"
version = "1.24.0"
@@ -292,6 +367,12 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+[[package]]
+name = "cfg_aliases"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
+
[[package]]
name = "chrono"
version = "0.4.42"
@@ -645,6 +726,7 @@ dependencies = [
"regex",
"reqwest",
"roxmltree",
+ "rust_decimal",
"serde",
"serde_json",
"simple_logger",
@@ -757,6 +839,12 @@ dependencies = [
"percent-encoding",
]
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
[[package]]
name = "futures-channel"
version = "0.3.31"
@@ -865,13 +953,22 @@ dependencies = [
"tracing",
]
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash 0.7.8",
+]
+
[[package]]
name = "hashbrown"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
dependencies = [
- "ahash",
+ "ahash 0.8.12",
"allocator-api2",
"rayon",
]
@@ -1113,9 +1210,9 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "2.12.1"
+version = "2.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2"
+checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff"
dependencies = [
"equivalent",
"hashbrown 0.16.1",
@@ -1590,7 +1687,7 @@ version = "0.35.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd503430a6d9779b07915d858865fe998317ef3cfef8973881f578ac5d4baae7"
dependencies = [
- "ahash",
+ "ahash 0.8.12",
"arrow-format",
"atoi_simd",
"bytemuck",
@@ -1622,7 +1719,7 @@ version = "0.35.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae73d5b8e55decde670caba1cc82b61f14bfb9a72503198f0997d657a98dcfd6"
dependencies = [
- "ahash",
+ "ahash 0.8.12",
"bitflags 2.10.0",
"bytemuck",
"chrono",
@@ -1664,7 +1761,7 @@ version = "0.35.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96e10a0745acd6009db64bef0ceb9e23a70b1c27b26a0a6517c91f3e6363bc06"
dependencies = [
- "ahash",
+ "ahash 0.8.12",
"atoi_simd",
"bytes",
"chrono",
@@ -1694,7 +1791,7 @@ version = "0.35.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3555f759705be6dd0d3762d16a0b8787b2dc4da73b57465f3b2bf1a070ba8f20"
dependencies = [
- "ahash",
+ "ahash 0.8.12",
"bitflags 2.10.0",
"glob",
"once_cell",
@@ -1717,7 +1814,7 @@ version = "0.35.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a7eb218296aaa7f79945f08288ca32ca3cf25fa505649eeee689ec21eebf636"
dependencies = [
- "ahash",
+ "ahash 0.8.12",
"argminmax",
"bytemuck",
"either",
@@ -1764,7 +1861,7 @@ version = "0.35.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10e32a0958ef854b132bad7f8369cb3237254635d5e864c99505bc0bc1035fbc"
dependencies = [
- "ahash",
+ "ahash 0.8.12",
"bytemuck",
"once_cell",
"percent-encoding",
@@ -1834,7 +1931,7 @@ version = "0.35.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da6ce68169fe61d46958c8eab7447360f30f2f23f6e24a0ce703a14b0a3cfbfc"
dependencies = [
- "ahash",
+ "ahash 0.8.12",
"bytemuck",
"hashbrown 0.14.5",
"indexmap",
@@ -1871,6 +1968,15 @@ dependencies = [
"zerocopy",
]
+[[package]]
+name = "proc-macro-crate"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
+dependencies = [
+ "toml_edit",
+]
+
[[package]]
name = "proc-macro2"
version = "1.0.103"
@@ -1880,6 +1986,26 @@ dependencies = [
"unicode-ident",
]
+[[package]]
+name = "ptr_meta"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
[[package]]
name = "quick-xml"
version = "0.30.0"
@@ -1905,6 +2031,12 @@ version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
[[package]]
name = "rand"
version = "0.8.5"
@@ -2003,6 +2135,15 @@ version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
+[[package]]
+name = "rend"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+dependencies = [
+ "bytecheck",
+]
+
[[package]]
name = "reqwest"
version = "0.11.27"
@@ -2043,12 +2184,69 @@ dependencies = [
"winreg",
]
+[[package]]
+name = "rkyv"
+version = "0.7.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1"
+dependencies = [
+ "bitvec",
+ "bytecheck",
+ "bytes",
+ "hashbrown 0.12.3",
+ "ptr_meta",
+ "rend",
+ "rkyv_derive",
+ "seahash",
+ "tinyvec",
+ "uuid",
+]
+
+[[package]]
+name = "rkyv_derive"
+version = "0.7.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
[[package]]
name = "roxmltree"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97"
+[[package]]
+name = "rust_decimal"
+version = "1.41.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ce901f9a19d251159075a4c37af514c3b8ef99c22e02dd8c19161cf397ee94a"
+dependencies = [
+ "arrayvec",
+ "borsh",
+ "bytes",
+ "num-traits",
+ "rand",
+ "rkyv",
+ "rust_decimal_macros",
+ "serde",
+ "serde_json",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "rust_decimal_macros"
+version = "1.40.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74a5a6f027e892c7a035c6fddb50435a1fbf5a734ffc0c2a9fed4d0221440519"
+dependencies = [
+ "quote",
+ "syn 2.0.111",
+]
+
[[package]]
name = "rustc_version"
version = "0.4.1"
@@ -2107,6 +2305,12 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
[[package]]
name = "security-framework"
version = "2.11.1"
@@ -2434,6 +2638,12 @@ dependencies = [
"libc",
]
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
[[package]]
name = "target-features"
version = "0.1.6"
@@ -2568,6 +2778,36 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "toml_datetime"
+version = "1.1.1+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
+dependencies = [
+ "serde_core",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.25.10+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a82418ca169e235e6c399a84e395ab6debeb3bc90edc959bf0f48647c6a32d1b"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "toml_parser",
+ "winnow",
+]
+
+[[package]]
+name = "toml_parser"
+version = "1.1.2+spec-1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
+dependencies = [
+ "winnow",
+]
+
[[package]]
name = "tower-service"
version = "0.3.3"
@@ -2674,6 +2914,16 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
+[[package]]
+name = "uuid"
+version = "1.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
[[package]]
name = "vcpkg"
version = "0.2.15"
@@ -2719,6 +2969,7 @@ dependencies = [
"cfg-if",
"once_cell",
"rustversion",
+ "serde",
"wasm-bindgen-macro",
"wasm-bindgen-shared",
]
@@ -3105,6 +3356,15 @@ version = "0.53.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
+[[package]]
+name = "winnow"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "winreg"
version = "0.50.0"
@@ -3127,6 +3387,15 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
[[package]]
name = "xxhash-rust"
version = "0.8.15"
diff --git a/Cargo.toml b/Cargo.toml
index 70309e8..1d981e6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,6 +11,7 @@ readme = "README.md"
keywords = ["etrade", "revolut"]
repository = "https://github.com/jczaja/e-trade-tax-return-pl-helper"
homepage = "https://github.com/jczaja/e-trade-tax-return-pl-helper"
+default-run = "etradeTaxReturnHelper"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
exclude = [
@@ -49,5 +50,6 @@ polars = "0.35.4"
csv = "1.3.0"
serde_json = { version = "=1.0.133", optional = true }
holidays = { version = "0.1.0", default-features = false, features = ["PL"] }
+rust_decimal = { version = "1.36.0", features = ["macros", "serde-with-float"] }
diff --git a/REUSE.toml b/REUSE.toml
index d0c53c7..61edf84 100644
--- a/REUSE.toml
+++ b/REUSE.toml
@@ -10,6 +10,7 @@ SPDX-License-Identifier = "LicenseRef-ETrade-MorganStanley"
path=[
"Cargo.lock",
"assets/etradetaxreturnhelper-640x480.gif",
+"rust_decimal.natvis",
]
SPDX-FileCopyrightText = "2025 RustInFinance"
SPDX-License-Identifier = "BSD-3-Clause"
diff --git a/rust_decimal.natvis b/rust_decimal.natvis
new file mode 100644
index 0000000..5851d23
--- /dev/null
+++ b/rust_decimal.natvis
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+ {(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo),g}
+ {(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 10.0,g}
+ {(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 100.0,g}
+ {(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 1000.0,g}
+ {(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 10000.0,g}
+ {(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 100000.0,g}
+ {(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 1000000.0,g}
+ {(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 10000000.0,g}
+ {(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 100000000.0,g}
+
+
+ {-(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo),g}
+ {-(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 10.0,g}
+ {-(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 100.0,g}
+ {-(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 1000.0,g}
+ {-(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 10000.0,g}
+ {-(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 100000.0,g}
+ {-(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 1000000.0,g}
+ {-(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 10000000.0,g}
+ {-(double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / 100000000.0,g}
+
+
+ ~{(double)((double)hi * 18446744073709551616.0 + (double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo)),g} (approx, scale={(flags >> 16) & 0xFF})
+ ~{-(double)((double)hi * 18446744073709551616.0 + (double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo)),g} (approx, scale={(flags >> 16) & 0xFF})
+
+
+ - (double)((unsigned __int64)mid * 4294967296 + (unsigned __int64)lo) / (((flags >> 16) & 0xFF) == 0 ? 1.0 : ((flags >> 16) & 0xFF) == 1 ? 10.0 : ((flags >> 16) & 0xFF) == 2 ? 100.0 : ((flags >> 16) & 0xFF) == 3 ? 1000.0 : ((flags >> 16) & 0xFF) == 4 ? 10000.0 : ((flags >> 16) & 0xFF) == 5 ? 100000.0 : ((flags >> 16) & 0xFF) == 6 ? 1000000.0 : ((flags >> 16) & 0xFF) == 7 ? 10000000.0 : 100000000.0)
+ - lo
+ - mid
+ - hi
+ - (flags >> 16) & 0xFF
+ - (flags >> 31) & 1
+
+
+
diff --git a/src/bin/gen_exchange_rates.rs b/src/bin/gen_exchange_rates.rs
index 7c821ef..cb2c8b9 100644
--- a/src/bin/gen_exchange_rates.rs
+++ b/src/bin/gen_exchange_rates.rs
@@ -87,28 +87,29 @@ fn main() {
let mut output_content = String::new();
output_content.push_str("use std::collections::HashMap;\n\n");
output_content.push_str("use etradeTaxReturnHelper::Exchange;\n\n");
+ output_content.push_str("use rust_decimal::Decimal;\nuse rust_decimal::dec;\n\n");
output_content.push_str("#[allow(clippy::approx_constant)]\n");
- output_content.push_str("pub fn get_exchange_rates() -> HashMap {\n");
+ output_content.push_str("pub fn get_exchange_rates() -> HashMap {\n");
output_content.push_str(" let mut exchange_rates = HashMap::new();\n");
for (exchange, kurs) in &kursy_map {
match exchange {
Exchange::USD(data) => {
output_content.push_str(&format!(
- " exchange_rates.insert(Exchange::USD(\"{}\".to_string()), {}f64);\n",
+ " exchange_rates.insert(Exchange::USD(\"{}\".to_string()), dec!({}));\n",
data, kurs
));
}
Exchange::EUR(data) => {
output_content.push_str(&format!(
- " exchange_rates.insert(Exchange::EUR(\"{}\".to_string()), {}f64);\n",
+ " exchange_rates.insert(Exchange::EUR(\"{}\".to_string()), dec!({}));\n",
data, kurs
));
}
Exchange::PLN(data) => {
output_content.push_str(&format!(
- " exchange_rates.insert(Exchange::PLN(\"{}\".to_string()), {}f64);\n",
+ " exchange_rates.insert(Exchange::PLN(\"{}\".to_string()), dec!({}));\n",
data, kurs
));
}
diff --git a/src/csvparser.rs b/src/csvparser.rs
index b5aa804..911d181 100644
--- a/src/csvparser.rs
+++ b/src/csvparser.rs
@@ -2,10 +2,12 @@
// SPDX-License-Identifier: BSD-3-Clause
use nom::{
- bytes::complete::tag, bytes::complete::take, error::Error, multi::many_m_n,
- number::complete::double, sequence::tuple,
+ bytes::complete::tag, bytes::complete::take, combinator::recognize, error::Error,
+ multi::many_m_n, number::complete::double, sequence::tuple,
};
use polars::prelude::*;
+use rust_decimal::Decimal;
+use std::str::FromStr;
enum ParsingState {
None,
@@ -54,28 +56,34 @@ fn extract_cash_with_currency(cashline: &str, currency: &str) -> Result>, take(1usize), tag("PLN")));
- let mut usd_parser = tuple((tag("$"), double::<&str, Error<_>>));
-
- // Let's check if We can convert value of currency to f64 directly
- let value: f64 = cashline_string
- .parse::()
- .map_err(|_| format!("error parsing \"{cashline_string}\" to f64"))
+ let mut pln_parser = tuple((
+ recognize(double::<&str, Error<_>>),
+ take(1usize),
+ tag("PLN"),
+ ));
+ let mut usd_parser = tuple((tag("$"), recognize(double::<&str, Error<_>>)));
+
+ // Let's check if we can convert value of currency to Decimal directly
+ let decimal_value: Decimal = Decimal::from_str(&cashline_string)
.or_else(|_| {
- let (_, (value, _, _)) = pln_parser(cashline_string.as_str())
- .map_err(|_| format!("error converting string: \"{cashline_string}\" to f64"))?;
- Ok::(value)
+ let (_, (value, _, _)) = pln_parser(cashline_string.as_str()).map_err(|_| {
+ format!("error converting string: \"{cashline_string}\" to Decimal")
+ })?;
+ Decimal::from_str(value)
+ .map_err(|e| format!("error converting {value} to Decimal: {e}"))
})
- .or_else(|_| {
- let (_, (_, value)) = usd_parser(cashline_string.as_str())
- .map_err(|_| format!("error converting string: \"{cashline_string}\" to f64"))?;
- Ok::(value)
+ .or_else(|_: String| {
+ let (_, (_, value)) = usd_parser(cashline_string.as_str()).map_err(|_| {
+ format!("error converting string: \"{cashline_string}\" to Decimal")
+ })?;
+ Decimal::from_str(value)
+ .map_err(|e| format!("error converting {value} to Decimal: {e}"))
})?;
match currency {
- "PLN" => Ok(crate::Currency::PLN(value)),
- "USD" => Ok(crate::Currency::USD(value)),
- "EUR" => Ok(crate::Currency::EUR(value)),
+ "PLN" => Ok(crate::Currency::PLN(decimal_value)),
+ "USD" => Ok(crate::Currency::USD(decimal_value)),
+ "EUR" => Ok(crate::Currency::EUR(decimal_value)),
_ => Err(format!("Error converting: {cashline_string}")),
}
}
@@ -92,30 +100,36 @@ fn extract_cash(cashline: &str) -> Result {
};
let cashline_string: String = cashline_string.replace(" ", "");
log::info!("Processed moneyin/total amount line: {cashline_string}");
- let mut euro_parser = tuple((double::<&str, Error<_>>, tag("€")));
- let mut euro_parser2 = tuple((tag("€"), double::<&str, Error<_>>));
- let mut usd_parser = tuple((many_m_n(0, 1, tag("-")), tag("$"), double::<&str, Error<_>>));
- let mut usd_parser2 = tuple((many_m_n(0, 1, tag("-")), double::<&str, Error<_>>, tag("$")));
- let mut pln_parser = tuple((double::<&str, Error<_>>, tag("PLN")));
+ let mut euro_parser = tuple((recognize(double::<&str, Error<_>>), tag("€")));
+ let mut euro_parser2 = tuple((tag("€"), recognize(double::<&str, Error<_>>)));
+ let mut usd_parser = tuple((
+ many_m_n(0, 1, tag("-")),
+ tag("$"),
+ recognize(double::<&str, Error<_>>),
+ ));
+ let mut usd_parser2 = tuple((
+ many_m_n(0, 1, tag("-")),
+ recognize(double::<&str, Error<_>>),
+ tag("$"),
+ ));
+ let mut pln_parser = tuple((recognize(double::<&str, Error<_>>), tag("PLN")));
+
+ let to_decimal = |v: &str| -> Result {
+ Decimal::from_str(v).map_err(|e| format!("error converting {v} to Decimal: {e}"))
+ };
if let Ok((_, (value, _))) = euro_parser(cashline_string.as_str()) {
- return Ok(crate::Currency::EUR(value));
+ return Ok(crate::Currency::EUR(to_decimal(value)?));
} else if let Ok((_, (_, value))) = euro_parser2(cashline_string.as_str()) {
- return Ok(crate::Currency::EUR(value));
+ return Ok(crate::Currency::EUR(to_decimal(value)?));
} else if let Ok((_, (value, _))) = pln_parser(cashline_string.as_str()) {
- return Ok(crate::Currency::PLN(value));
+ return Ok(crate::Currency::PLN(to_decimal(value)?));
} else if let Ok((_, (sign, _, value))) = usd_parser(cashline_string.as_str()) {
- return Ok(crate::Currency::USD(if sign.len() == 1 {
- -value
- } else {
- value
- }));
+ let d = to_decimal(value)?;
+ return Ok(crate::Currency::USD(if sign.len() == 1 { -d } else { d }));
} else if let Ok((_, (sign, value, _))) = usd_parser2(cashline_string.as_str()) {
- return Ok(crate::Currency::USD(if sign.len() == 1 {
- -value
- } else {
- value
- }));
+ let d = to_decimal(value)?;
+ return Ok(crate::Currency::USD(if sign.len() == 1 { -d } else { d }));
} else {
return Err(format!("Error converting: {cashline_string}"));
}
@@ -391,7 +405,8 @@ fn process_tax_consolidated_data(
.extend(parse_investment_transaction_dates(&filtred_df, "Date")?);
let lincomes = parse_incomes(&filtred_df, "Money in")?;
ta.symbols.extend(std::iter::repeat_n(None, lincomes.len()));
- let ltaxes: Vec = lincomes.iter().map(|i| i.derive(0.0)).collect();
+ let ltaxes: Vec =
+ lincomes.iter().map(|i| i.derive(Decimal::ZERO)).collect();
ta.taxes.extend(ltaxes);
ta.incomes.extend(lincomes);
}
@@ -546,7 +561,7 @@ pub fn parse_revolut_transactions(csvtoparse: &str) -> Result Result Result Result<(), String> {
- assert_eq!(extract_cash("0,07€"), Ok(crate::Currency::EUR(0.07)));
- assert_eq!(extract_cash("6 000€"), Ok(crate::Currency::EUR(6000.00)));
- assert_eq!(extract_cash("600,34€"), Ok(crate::Currency::EUR(600.34)));
+ assert_eq!(extract_cash("0,07€"), Ok(crate::Currency::EUR(dec!(0.07))));
+ assert_eq!(
+ extract_cash("6 000€"),
+ Ok(crate::Currency::EUR(dec!(6000.00)))
+ );
+ assert_eq!(
+ extract_cash("600,34€"),
+ Ok(crate::Currency::EUR(dec!(600.34)))
+ );
- assert_eq!(extract_cash("€840.03"), Ok(crate::Currency::EUR(840.03)));
- assert_eq!(extract_cash("€0.01"), Ok(crate::Currency::EUR(0.01)));
- assert_eq!(extract_cash("€440"), Ok(crate::Currency::EUR(440.0)));
+ assert_eq!(
+ extract_cash("€840.03"),
+ Ok(crate::Currency::EUR(dec!(840.03)))
+ );
+ assert_eq!(extract_cash("€0.01"), Ok(crate::Currency::EUR(dec!(0.01))));
+ assert_eq!(extract_cash("€440"), Ok(crate::Currency::EUR(dec!(440.0))));
- assert_eq!(extract_cash("1,06 PLN"), Ok(crate::Currency::PLN(1.06)));
+ assert_eq!(
+ extract_cash("1,06 PLN"),
+ Ok(crate::Currency::PLN(dec!(1.06)))
+ );
assert_eq!(
extract_cash("500 000.45 PLN"),
- Ok(crate::Currency::PLN(500000.45))
+ Ok(crate::Currency::PLN(dec!(500000.45)))
);
assert_eq!(
extract_cash("13,037.94 PLN"),
- Ok(crate::Currency::PLN(13037.94))
+ Ok(crate::Currency::PLN(dec!(13037.94)))
);
- assert_eq!(extract_cash("$2.94"), Ok(crate::Currency::USD(2.94)));
- assert_eq!(extract_cash("-$0.51"), Ok(crate::Currency::USD(-0.51)));
+ assert_eq!(extract_cash("$2.94"), Ok(crate::Currency::USD(dec!(2.94))));
+ assert_eq!(
+ extract_cash("-$0.51"),
+ Ok(crate::Currency::USD(dec!(-0.51)))
+ );
- assert_eq!(extract_cash("63,28$"), Ok(crate::Currency::USD(63.28)));
- assert_eq!(extract_cash("0$"), Ok(crate::Currency::USD(0.0)));
+ assert_eq!(
+ extract_cash("63,28$"),
+ Ok(crate::Currency::USD(dec!(63.28)))
+ );
+ assert_eq!(extract_cash("0$"), Ok(crate::Currency::USD(dec!(0.0))));
Ok(())
}
@@ -827,8 +861,8 @@ mod tests {
assert_eq!(
parse_incomes(&df, "Money in"),
Ok(vec![
- crate::Currency::EUR(6000.00),
- crate::Currency::EUR(3000.00)
+ crate::Currency::EUR(dec!(6000.00)),
+ crate::Currency::EUR(dec!(3000.00))
])
);
@@ -846,8 +880,8 @@ mod tests {
assert_eq!(
parse_incomes(&df, "Money in"),
Ok(vec![
- crate::Currency::EUR(0.27),
- crate::Currency::EUR(5452.74)
+ crate::Currency::EUR(dec!(0.27)),
+ crate::Currency::EUR(dec!(5452.74))
])
);
@@ -865,8 +899,8 @@ mod tests {
assert_eq!(
parse_incomes(&df, "Total Amount"),
Ok(vec![
- crate::Currency::USD(2.94),
- crate::Currency::USD(-0.51)
+ crate::Currency::USD(dec!(2.94)),
+ crate::Currency::USD(dec!(-0.51))
])
);
@@ -974,74 +1008,74 @@ mod tests {
(
"02/14/20".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(50.97),
- crate::Currency::USD(63.28),
+ crate::Currency::USD(dec!(50.97)),
+ crate::Currency::USD(dec!(63.28)),
),
(
"02/25/23".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.74),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.74)),
),
(
"02/25/23".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.37),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.37)),
),
(
"06/09/24".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.15),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.15)),
),
(
"06/09/24".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.16),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.16)),
),
(
"06/09/24".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.13),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.13)),
),
(
"06/09/24".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.13),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.13)),
),
(
"06/09/24".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.12),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.12)),
),
(
"06/09/24".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.14),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.14)),
),
(
"06/09/24".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.14),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.14)),
),
(
"06/09/24".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.14),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.14)),
),
(
"06/09/24".to_owned(),
"12/06/24".to_owned(),
- crate::Currency::USD(0.0),
- crate::Currency::USD(0.15),
+ crate::Currency::USD(dec!(0.0)),
+ crate::Currency::USD(dec!(0.15)),
),
],
});
@@ -1072,34 +1106,34 @@ mod tests {
);
// Sum up cost basis and gross proceeds (values are stored as Currency)
- let total_cost: f64 = parsed
+ let total_cost: Decimal = parsed
.crypto_transactions
.iter()
.map(|(_, _, cost, _)| cost.value())
.sum();
- let total_gross: f64 = parsed
+ let total_gross: Decimal = parsed
.crypto_transactions
.iter()
.map(|(_, _, _, gross)| gross.value())
.sum();
// The consolidated summary in the fixture reports 0$ cost and 7.95$ gross
- let eps = 1e-6;
- assert!(
- (total_cost - 0.0).abs() < eps,
- "expected total crypto cost ~0.0, got {}",
+ assert_eq!(
+ total_cost,
+ dec!(0.0),
+ "expected total crypto cost 0.0, got {}",
total_cost
);
assert!(
- (total_gross - 7.95).abs() < eps,
+ (total_gross - dec!(7.95)).abs() < dec!(0.000001),
"expected total crypto gross ~7.95, got {}",
total_gross
);
// Verify savings interest totals (present in the file summary):
// EUR interests total = 1,66€ and PLN interests total = 10,09 PLN
- let mut sum_eur = 0.0f64;
- let mut sum_pln = 0.0f64;
+ let mut sum_eur = Decimal::ZERO;
+ let mut sum_pln = Decimal::ZERO;
parsed
.dividend_transactions
.iter()
@@ -1109,14 +1143,13 @@ mod tests {
_ => (),
});
- let eps = 1e-6;
assert!(
- (sum_eur - 1.66).abs() < eps,
+ (sum_eur - dec!(1.66)).abs() < dec!(0.000001),
"expected EUR interests ~1.66, got {}",
sum_eur
);
assert!(
- (sum_pln - 10.09).abs() < eps,
+ (sum_pln - dec!(10.09)).abs() < dec!(0.000001),
"expected PLN interests ~10.09, got {}",
sum_pln
);
@@ -1138,20 +1171,20 @@ mod tests {
// EUR interests
(
"01/03/24".to_owned(),
- crate::Currency::EUR(0.01),
- crate::Currency::EUR(0.00),
+ crate::Currency::EUR(dec!(0.01)),
+ crate::Currency::EUR(dec!(0.00)),
None,
),
(
"01/04/24".to_owned(),
- crate::Currency::EUR(0.02),
- crate::Currency::EUR(0.00),
+ crate::Currency::EUR(dec!(0.02)),
+ crate::Currency::EUR(dec!(0.00)),
None,
),
(
"12/31/24".to_owned(),
- crate::Currency::EUR(0.01),
- crate::Currency::EUR(0.00),
+ crate::Currency::EUR(dec!(0.01)),
+ crate::Currency::EUR(dec!(0.00)),
None,
),
],
@@ -1172,53 +1205,53 @@ mod tests {
// EUR interests
(
"01/01/24".to_owned(),
- crate::Currency::EUR(0.26),
- crate::Currency::EUR(0.00),
+ crate::Currency::EUR(dec!(0.26)),
+ crate::Currency::EUR(dec!(0.00)),
None,
),
(
"04/12/24".to_owned(),
- crate::Currency::EUR(0.24),
- crate::Currency::EUR(0.00),
+ crate::Currency::EUR(dec!(0.24)),
+ crate::Currency::EUR(dec!(0.00)),
None,
),
// PLN interests
(
"01/04/24".to_owned(),
- crate::Currency::PLN(0.86),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.86)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"05/31/24".to_owned(),
- crate::Currency::PLN(1.26),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(1.26)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
// Euro dividends
(
"08/26/24".to_owned(),
- crate::Currency::PLN(302.43),
- crate::Currency::PLN(302.43 - 222.65),
+ crate::Currency::PLN(dec!(302.43)),
+ crate::Currency::PLN(dec!(302.43) - dec!(222.65)),
Some("DE000A289XJ2".to_string()),
),
// USD dividends
(
"03/04/24".to_owned(),
- crate::Currency::PLN(617.00),
- crate::Currency::PLN(617.00 - 524.43),
+ crate::Currency::PLN(dec!(617.00)),
+ crate::Currency::PLN(dec!(617.00) - dec!(524.43)),
Some("TFC".to_string()),
),
(
"03/21/24".to_owned(),
- crate::Currency::PLN(259.17),
- crate::Currency::PLN(0.0),
+ crate::Currency::PLN(dec!(259.17)),
+ crate::Currency::PLN(dec!(0.0)),
Some("AMCR".to_string()),
),
(
"12/17/24".to_owned(),
- crate::Currency::PLN(903.35),
- crate::Currency::PLN(903.35 - 767.83),
+ crate::Currency::PLN(dec!(903.35)),
+ crate::Currency::PLN(dec!(903.35) - dec!(767.83)),
Some("EPR".to_string()),
),
],
@@ -1226,43 +1259,43 @@ mod tests {
(
"07/29/24".to_owned(),
"10/28/24".to_owned(),
- crate::Currency::PLN(13037.94 + 65.94),
- crate::Currency::PLN(13348.22),
+ crate::Currency::PLN(dec!(13037.94) + dec!(65.94)),
+ crate::Currency::PLN(dec!(13348.22)),
Some("EU000A3K4DJ5".to_string()),
),
(
"09/09/24".to_owned(),
"11/21/24".to_owned(),
- crate::Currency::PLN(16097.86 + 81.41),
- crate::Currency::PLN(16477.91),
+ crate::Currency::PLN(dec!(16097.86) + dec!(81.41)),
+ crate::Currency::PLN(dec!(16477.91)),
Some("XS1218821756".to_string()),
),
(
"11/20/23".to_owned(),
"08/12/24".to_owned(),
- crate::Currency::PLN(19863.25 + 0.66),
- crate::Currency::PLN(22865.17),
+ crate::Currency::PLN(dec!(19863.25) + dec!(0.66)),
+ crate::Currency::PLN(dec!(22865.17)),
Some("XOM".to_string()),
),
(
"06/11/24".to_owned(),
"10/14/24".to_owned(),
- crate::Currency::PLN(525.08 + 0.0),
- crate::Currency::PLN(624.00),
+ crate::Currency::PLN(dec!(525.08) + dec!(0.0)),
+ crate::Currency::PLN(dec!(624.00)),
Some("TFC".to_string()),
),
(
"10/23/23".to_owned(),
"10/14/24".to_owned(),
- crate::Currency::PLN(835.88 + 0.03),
- crate::Currency::PLN(1046.20),
+ crate::Currency::PLN(dec!(835.88) + dec!(0.03)),
+ crate::Currency::PLN(dec!(1046.20)),
Some("AMCR".to_string()),
),
(
"08/22/24".to_owned(),
"10/17/24".to_owned(),
- crate::Currency::PLN(25135.50 + 128.17),
- crate::Currency::PLN(26130.41),
+ crate::Currency::PLN(dec!(25135.50) + dec!(128.17)),
+ crate::Currency::PLN(dec!(26130.41)),
Some("US13607LNF66".to_string()),
),
],
@@ -1281,26 +1314,26 @@ mod tests {
dividend_transactions: vec![
(
"06/04/24".to_owned(),
- crate::Currency::PLN(2.80),
- crate::Currency::PLN(0.68),
+ crate::Currency::PLN(dec!(2.80)),
+ crate::Currency::PLN(dec!(0.68)),
Some("QDVY".to_string()),
),
(
"06/20/24".to_owned(),
- crate::Currency::PLN(0.34),
- crate::Currency::PLN(0.08),
+ crate::Currency::PLN(dec!(0.34)),
+ crate::Currency::PLN(dec!(0.08)),
Some("EXI2".to_string()),
),
(
"06/28/24".to_owned(),
- crate::Currency::PLN(3.79),
- crate::Currency::PLN(0.94),
+ crate::Currency::PLN(dec!(3.79)),
+ crate::Currency::PLN(dec!(0.94)),
Some("IS3K".to_string()),
),
(
"07/01/24".to_owned(),
- crate::Currency::PLN(1.07),
- crate::Currency::PLN(0.25),
+ crate::Currency::PLN(dec!(1.07)),
+ crate::Currency::PLN(dec!(0.25)),
Some("IBCD".to_string()),
),
],
@@ -1322,56 +1355,56 @@ mod tests {
dividend_transactions: vec![
(
"06/04/24".to_owned(),
- crate::Currency::PLN(2.80),
- crate::Currency::PLN(0.68),
+ crate::Currency::PLN(dec!(2.80)),
+ crate::Currency::PLN(dec!(0.68)),
Some("QDVY".to_string()),
),
(
"06/20/24".to_owned(),
- crate::Currency::PLN(0.34),
- crate::Currency::PLN(0.08),
+ crate::Currency::PLN(dec!(0.34)),
+ crate::Currency::PLN(dec!(0.08)),
Some("EXI2".to_string()),
),
(
"06/28/24".to_owned(),
- crate::Currency::PLN(3.79),
- crate::Currency::PLN(0.94),
+ crate::Currency::PLN(dec!(3.79)),
+ crate::Currency::PLN(dec!(0.94)),
Some("IS3K".to_string()),
),
(
"07/01/24".to_owned(),
- crate::Currency::PLN(1.07),
- crate::Currency::PLN(0.25),
+ crate::Currency::PLN(dec!(1.07)),
+ crate::Currency::PLN(dec!(0.25)),
Some("IBCD".to_string()),
),
(
"09/27/24".to_owned(),
- crate::Currency::PLN(1.02),
- crate::Currency::PLN(0.25),
+ crate::Currency::PLN(dec!(1.02)),
+ crate::Currency::PLN(dec!(0.25)),
Some("IBCD".to_string()),
),
(
"09/27/24".to_owned(),
- crate::Currency::PLN(1.71),
- crate::Currency::PLN(0.42),
+ crate::Currency::PLN(dec!(1.71)),
+ crate::Currency::PLN(dec!(0.42)),
Some("IUSU".to_string()),
),
(
"11/29/24".to_owned(),
- crate::Currency::PLN(2.92),
- crate::Currency::PLN(0.73),
+ crate::Currency::PLN(dec!(2.92)),
+ crate::Currency::PLN(dec!(0.73)),
Some("QDVY".to_string()),
),
(
"12/17/24".to_owned(),
- crate::Currency::PLN(0.04),
- crate::Currency::PLN(0.0),
+ crate::Currency::PLN(dec!(0.04)),
+ crate::Currency::PLN(dec!(0.0)),
Some("EXI2".to_string()),
),
(
"12/31/24".to_owned(),
- crate::Currency::PLN(1.07),
- crate::Currency::PLN(0.25),
+ crate::Currency::PLN(dec!(1.07)),
+ crate::Currency::PLN(dec!(0.25)),
Some("IBCD".to_string()),
),
],
@@ -1393,106 +1426,106 @@ mod tests {
dividend_transactions: vec![
(
"03/04/24".to_owned(),
- crate::Currency::PLN(617.00),
- crate::Currency::PLN(92.57),
+ crate::Currency::PLN(dec!(617.00)),
+ crate::Currency::PLN(dec!(92.57)),
Some("TFC".to_string()),
),
(
"03/21/24".to_owned(),
- crate::Currency::PLN(259.17),
- crate::Currency::PLN(0.0),
+ crate::Currency::PLN(dec!(259.17)),
+ crate::Currency::PLN(dec!(0.0)),
Some("AMCR".to_string()),
),
(
"03/25/24".to_owned(),
- crate::Currency::PLN(212.39),
- crate::Currency::PLN(31.87),
+ crate::Currency::PLN(dec!(212.39)),
+ crate::Currency::PLN(dec!(31.87)),
Some("PXD".to_string()),
),
(
"05/16/24".to_owned(),
- crate::Currency::PLN(700.17),
- crate::Currency::PLN(105.04),
+ crate::Currency::PLN(dec!(700.17)),
+ crate::Currency::PLN(dec!(105.04)),
Some("EPR".to_string()),
),
(
"05/31/24".to_owned(),
- crate::Currency::PLN(875.82),
- crate::Currency::PLN(131.38),
+ crate::Currency::PLN(dec!(875.82)),
+ crate::Currency::PLN(dec!(131.38)),
Some("UPS".to_string()),
),
(
"06/03/24".to_owned(),
- crate::Currency::PLN(488.26),
- crate::Currency::PLN(73.25),
+ crate::Currency::PLN(dec!(488.26)),
+ crate::Currency::PLN(dec!(73.25)),
Some("ABR".to_string()),
),
(
"06/04/24".to_owned(),
- crate::Currency::PLN(613.2),
- crate::Currency::PLN(92.00),
+ crate::Currency::PLN(dec!(613.2)),
+ crate::Currency::PLN(dec!(92.00)),
Some("TFC".to_string()),
),
(
"06/11/24".to_owned(),
- crate::Currency::PLN(186.16),
- crate::Currency::PLN(27.92),
+ crate::Currency::PLN(dec!(186.16)),
+ crate::Currency::PLN(dec!(27.92)),
Some("XOM".to_string()),
),
(
"06/13/24".to_owned(),
- crate::Currency::PLN(264.74),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(264.74)),
+ crate::Currency::PLN(dec!(0.00)),
Some("AMCR".to_string()),
),
(
"06/18/24".to_owned(),
- crate::Currency::PLN(858.33),
- crate::Currency::PLN(128.74),
+ crate::Currency::PLN(dec!(858.33)),
+ crate::Currency::PLN(dec!(128.74)),
Some("EPR".to_string()),
),
(
"07/12/24".to_owned(),
- crate::Currency::PLN(421.5),
- crate::Currency::PLN(63.23),
+ crate::Currency::PLN(dec!(421.5)),
+ crate::Currency::PLN(dec!(63.23)),
Some("BBY".to_string()),
),
(
"07/16/24".to_owned(),
- crate::Currency::PLN(834.55),
- crate::Currency::PLN(125.18),
+ crate::Currency::PLN(dec!(834.55)),
+ crate::Currency::PLN(dec!(125.18)),
Some("EPR".to_string()),
),
(
"08/16/24".to_owned(),
- crate::Currency::PLN(834.79),
- crate::Currency::PLN(125.23),
+ crate::Currency::PLN(dec!(834.79)),
+ crate::Currency::PLN(dec!(125.23)),
Some("EPR".to_string()),
),
(
"08/26/24".to_owned(),
- crate::Currency::PLN(302.43),
- crate::Currency::PLN(79.77),
+ crate::Currency::PLN(dec!(302.43)),
+ crate::Currency::PLN(dec!(79.77)),
Some("DE000A289XJ2".to_string()),
),
(
"08/29/24".to_owned(),
- crate::Currency::PLN(801.25),
- crate::Currency::PLN(0.0),
+ crate::Currency::PLN(dec!(801.25)),
+ crate::Currency::PLN(dec!(0.0)),
Some("BMO".to_string()),
),
(
"08/30/24".to_owned(),
- crate::Currency::PLN(872.56),
- crate::Currency::PLN(130.90),
+ crate::Currency::PLN(dec!(872.56)),
+ crate::Currency::PLN(dec!(130.90)),
Some("CAG".to_string()),
),
],
sold_transactions: vec![(
"11/20/23".to_owned(),
"08/12/24".to_owned(),
- crate::Currency::USD(5000.0),
- crate::Currency::USD(5804.62),
+ crate::Currency::USD(dec!(5000.0)),
+ crate::Currency::USD(dec!(5804.62)),
Some("XOM".to_string()),
)],
crypto_transactions: vec![],
@@ -1514,116 +1547,116 @@ mod tests {
dividend_transactions: vec![
(
"12/12/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/13/23".to_owned(),
- crate::Currency::PLN(0.20),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.20)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/15/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/16/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/17/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/18/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/19/23".to_owned(),
- crate::Currency::PLN(0.41),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.41)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/20/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/21/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/22/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/23/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/24/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/25/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/26/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/27/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/28/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/29/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/30/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
(
"12/31/23".to_owned(),
- crate::Currency::PLN(0.21),
- crate::Currency::PLN(0.00),
+ crate::Currency::PLN(dec!(0.21)),
+ crate::Currency::PLN(dec!(0.00)),
None,
),
],
@@ -1644,20 +1677,20 @@ mod tests {
dividend_transactions: vec![
(
"11/02/23".to_owned(),
- crate::Currency::USD(-0.02),
- crate::Currency::USD(0.00),
+ crate::Currency::USD(dec!(-0.02)),
+ crate::Currency::USD(dec!(0.00)),
None,
),
(
"12/01/23".to_owned(),
- crate::Currency::USD(-0.51),
- crate::Currency::USD(0.00),
+ crate::Currency::USD(dec!(-0.51)),
+ crate::Currency::USD(dec!(0.00)),
None,
),
(
"12/14/23".to_owned(),
- crate::Currency::USD(2.94),
- crate::Currency::USD(0.00),
+ crate::Currency::USD(dec!(2.94)),
+ crate::Currency::USD(dec!(0.00)),
Some("AMCR".to_string()),
),
],
diff --git a/src/de.rs b/src/de.rs
index 2904a1a..d7747b3 100644
--- a/src/de.rs
+++ b/src/de.rs
@@ -2,6 +2,8 @@
// SPDX-License-Identifier: BSD-3-Clause
use regex::Regex;
+use rust_decimal::Decimal;
+use std::str::FromStr;
pub struct DE {}
@@ -10,25 +12,25 @@ impl etradeTaxReturnHelper::Residency for DE {
&self,
dates: &mut std::collections::HashMap<
etradeTaxReturnHelper::Exchange,
- Option<(String, f32)>,
+ Option<(String, Decimal)>,
>,
) -> Result<(), String> {
self.get_currency_exchange_rates(dates, "EUR")
}
- fn parse_exchange_rates(&self, body: &str) -> Result<(f32, String), String> {
+ fn parse_exchange_rates(&self, body: &str) -> Result<(Decimal, String), String> {
// to find examplery "1 US Dollar = 0.82831 Euros on 2/26/2021"
let pattern = "1 USD =";
let start_offset = body
.find(pattern)
.ok_or(&format!("Error finding pattern: {}", pattern))?;
let pattern_slice = &body[start_offset..start_offset + 100]; // 100 characters should be enough
- // Extract exchange rate (fp32 value)
+ // Extract exchange rate (Decimal value)
log::info!("Exchange rate slice: {}", pattern_slice);
let re = Regex::new(r"[0-9]+[.][0-9]+").unwrap();
- let exchange_rate: f32 = match re.find(pattern_slice) {
- Some(hit) => hit.as_str().parse::().unwrap(),
+ let exchange_rate: Decimal = match re.find(pattern_slice) {
+ Some(hit) => Decimal::from_str(hit.as_str()).unwrap(),
None => panic!(),
};
@@ -57,13 +59,18 @@ impl etradeTaxReturnHelper::Residency for DE {
fn present_result(
&self,
- gross_div: f32,
- tax_div: f32,
- gross_sold: f32,
- cost_sold: f32,
+ gross_interests: Decimal,
+ gross_div: Decimal,
+ tax_div: Decimal,
+ gross_sold: Decimal,
+ cost_sold: Decimal,
) -> (Vec, Option) {
+ let total_gross_div = gross_interests + gross_div;
let mut presentation: Vec = vec![];
- presentation.push(format!("===> (DIVIDENDS) INCOME: {:.2} EUR", gross_div));
+ presentation.push(format!(
+ "===> (DIVIDENDS+INTERESTS) INCOME: {:.2} EUR",
+ total_gross_div
+ ));
presentation.push(format!("===> (DIVIDENDS) TAX PAID: {:.2} EUR", tax_div));
presentation.push(format!("===> (SOLD STOCK) INCOME: {:.2} EUR", gross_sold));
presentation.push(format!(
@@ -78,24 +85,25 @@ impl etradeTaxReturnHelper::Residency for DE {
mod tests {
use super::*;
use etradeTaxReturnHelper::Residency;
+ use rust_decimal::dec;
#[test]
fn test_present_result_de() -> Result<(), String> {
let rd: Box = Box::new(DE {});
- let gross_div = 100.0f32;
- let tax_div = 15.0f32;
- let gross_sold = 1000.0f32;
- let cost_sold = 10.0f32;
+ let gross_div = dec!(100.0);
+ let tax_div = dec!(15.0);
+ let gross_sold = dec!(1000.0);
+ let cost_sold = dec!(10.0);
let ref_results: Vec = vec![
- "===> (DIVIDENDS) INCOME: 100.00 EUR".to_string(),
+ "===> (DIVIDENDS+INTERESTS) INCOME: 100.00 EUR".to_string(),
"===> (DIVIDENDS) TAX PAID: 15.00 EUR".to_string(),
"===> (SOLD STOCK) INCOME: 1000.00 EUR".to_string(),
"===> (SOLD STOCK) TAX DEDUCTIBLE COST: 10.00 EUR".to_string(),
];
- let (results, _) = rd.present_result(gross_div, tax_div, gross_sold, cost_sold);
+ let (results, _) = rd.present_result(dec!(0.0), gross_div, tax_div, gross_sold, cost_sold);
results
.iter()
@@ -109,7 +117,7 @@ mod tests {
fn test_get_exchange_rates_eur() -> Result<(), String> {
let mut dates: std::collections::HashMap<
etradeTaxReturnHelper::Exchange,
- Option<(String, f32)>,
+ Option<(String, Decimal)>,
> = std::collections::HashMap::new();
dates.insert(
etradeTaxReturnHelper::Exchange::USD("07/14/23".to_owned()),
@@ -119,16 +127,11 @@ mod tests {
let rd: DE = DE {};
rd.get_currency_exchange_rates(&mut dates,"EUR").map_err(|x| "Error: unable to get exchange rates. Please check your internet connection or proxy settings\n\nDetails:".to_string()+x.as_str())?;
- let mut expected_result: std::collections::HashMap<
- etradeTaxReturnHelper::Exchange,
- Option<(String, f32)>,
- > = std::collections::HashMap::new();
- expected_result.insert(
- etradeTaxReturnHelper::Exchange::USD("07/14/23".to_owned()),
- Some(("2023-07-13".to_owned(), 0.89429444)),
- );
-
- assert_eq!(dates, expected_result);
+ let (date, rate) = dates[&etradeTaxReturnHelper::Exchange::USD("07/14/23".to_owned())]
+ .clone()
+ .unwrap();
+ assert_eq!(date, "2023-07-13");
+ assert_eq!(rate, dec!(0.8942944017170452512967268825));
Ok(())
}
diff --git a/src/ecb.rs b/src/ecb.rs
index eb5c1d2..e2def21 100644
--- a/src/ecb.rs
+++ b/src/ecb.rs
@@ -3,11 +3,13 @@
use chrono;
use roxmltree;
+use rust_decimal::Decimal;
+use std::str::FromStr;
pub fn get_eur_to_usd_exchange_rate(
start_date: chrono::NaiveDate,
end_date: chrono::NaiveDate,
-) -> Result {
+) -> Result {
let query = [
("startPeriod", start_date.format("%Y-%m-%d").to_string()),
("endPeriod", end_date.format("%Y-%m-%d").to_string()),
@@ -17,18 +19,16 @@ pub fn get_eur_to_usd_exchange_rate(
let ecb_response = EcbResponse::from_xml_string(&response).unwrap();
assert_eq!(ecb_response.currency, "USD");
assert_eq!(ecb_response.currency_denom, "EUR");
- let usd_to_eur = ecb_response
- .rate
- .parse::()
+ let usd_to_eur = Decimal::from_str(&ecb_response.rate)
.map_err(|e| format!("Failed to parse exchange rate: {}", e))?;
invert_exchange_rate(usd_to_eur)
}
-fn invert_exchange_rate(rate: f32) -> Result {
- if rate == 0.0 {
+fn invert_exchange_rate(rate: Decimal) -> Result {
+ if rate == Decimal::ZERO {
return Err("Rate is zero".to_string());
}
- Ok(1.0 / rate)
+ Ok(Decimal::ONE / rate)
}
const ECB_URL: &str = "https://data-api.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A";
@@ -162,6 +162,7 @@ impl EcbResponse {
#[cfg(test)]
mod tests {
use super::*;
+ use rust_decimal::dec;
#[test]
fn test_ecb_parse_xml_from_file() {
@@ -257,9 +258,9 @@ mod tests {
let xml_data: &str = include_str!("../data/ecb_example_response.xml");
let ecb_response = EcbResponse::from_xml_string(xml_data).unwrap();
- let rate: f32 = ecb_response.rate.parse().unwrap();
- let inverse_rate: f32 = invert_exchange_rate(rate).unwrap();
- assert_eq!(inverse_rate, 1.0 / 1.1182);
+ let rate = Decimal::from_str(&ecb_response.rate).unwrap();
+ let inverse_rate = invert_exchange_rate(rate).unwrap();
+ assert_eq!(inverse_rate, Decimal::ONE / dec!(1.1182));
}
#[test]
diff --git a/src/gui.rs b/src/gui.rs
index 789aca9..6746e42 100644
--- a/src/gui.rs
+++ b/src/gui.rs
@@ -9,9 +9,10 @@ use fltk::{
browser::MultiBrowser,
button::Button,
dialog,
- enums::{Event, Font, FrameType, Key},
+ enums::{Event, Font, FrameType, Key, Shortcut},
frame::Frame,
group::Pack,
+ menu::{MenuBar, MenuFlag},
prelude::*,
text::{TextBuffer, TextDisplay},
window,
@@ -77,6 +78,7 @@ fn create_clear_documents(
fn create_execute_documents(
browser: Rc>,
+ menubar: Rc>,
tdisplay: Rc>,
sdisplay: Rc>,
ndisplay: Rc>,
@@ -118,9 +120,16 @@ fn create_execute_documents(
buffer.set_text("");
tbuffer.set_text("");
nbuffer.set_text("Running...");
+ let round_per_transaction = {
+ let mb = menubar.borrow();
+ mb.find_item("Options/Round per transaction")
+ .map(|item| item.value())
+ .unwrap_or(false)
+ };
let rd: Box = Box::new(PL {});
let etradeTaxReturnHelper::TaxCalculationResult {
- gross_income: gross_div,
+ gross_interests,
+ gross_div,
tax: tax_div,
gross_sold,
cost_sold,
@@ -129,7 +138,7 @@ fn create_execute_documents(
revolut_dividends_transactions: revolut_transactions,
sold_transactions,
revolut_sold_transactions,
- } = match run_taxation(&rd, file_names,false, false) {
+ } = match run_taxation(&rd, file_names, false, false, round_per_transaction) {
Ok(res) => {
nbuffer.set_text("Finished.\n\n (Double check if generated tax data (Summary) makes sense and then copy it to your tax form)");
res
@@ -139,7 +148,7 @@ fn create_execute_documents(
panic!("Error: unable to perform taxation");
}
};
- let (presentation,warning) = rd.present_result(gross_div, tax_div, gross_sold, cost_sold);
+ let (presentation,warning) = rd.present_result(gross_interests, gross_div, tax_div, gross_sold, cost_sold);
buffer.set_text(&presentation.join("\n"));
if let Some(warn_msg) = warning {
nbuffer.set_text(&warn_msg);
@@ -228,7 +237,16 @@ pub fn run_gui() {
wind.make_resizable(true);
- let mut uberpack = Pack::new(0, 0, WIND_SIZE_X as i32, WIND_SIZE_Y as i32, "");
+ let mut menubar = MenuBar::new(0, 0, WIND_SIZE_X, 25, "");
+ menubar.add(
+ "Options/Round per transaction",
+ Shortcut::None,
+ MenuFlag::Toggle,
+ |_| {},
+ );
+ let menubar = Rc::new(RefCell::new(menubar));
+
+ let mut uberpack = Pack::new(0, 25, WIND_SIZE_X as i32, WIND_SIZE_Y as i32 - 25, "");
let mut pack = Pack::new(0, 0, WIND_SIZE_X as i32, WIND_SIZE_Y / 2 as i32, "");
pack.set_type(fltk::group::PackType::Horizontal);
@@ -327,6 +345,7 @@ pub fn run_gui() {
);
create_execute_documents(
browser.clone(),
+ menubar.clone(),
tdisplay.clone(),
sdisplay.clone(),
ndisplay.clone(),
diff --git a/src/lib.rs b/src/lib.rs
index e5cdd9a..90d958b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,6 +1,8 @@
// SPDX-FileCopyrightText: 2022-2025 RustInFinance
// SPDX-License-Identifier: BSD-3-Clause
+#![debugger_visualizer(natvis_file = "../rust_decimal.natvis")]
+
mod csvparser;
mod ecb;
mod logging;
@@ -8,6 +10,8 @@ mod pdfparser;
mod transactions;
mod xlsxparser;
+use rust_decimal::Decimal;
+
type ReqwestClient = reqwest::blocking::Client;
pub use logging::ResultExt;
@@ -20,20 +24,20 @@ use transactions::{
#[derive(Debug, PartialEq, PartialOrd, Copy, Clone)]
pub enum Currency {
- PLN(f64),
- EUR(f64),
- USD(f64),
+ PLN(Decimal),
+ EUR(Decimal),
+ USD(Decimal),
}
impl Currency {
- fn value(&self) -> f64 {
+ pub fn value(&self) -> Decimal {
match self {
Currency::EUR(val) => *val,
Currency::PLN(val) => *val,
Currency::USD(val) => *val,
}
}
- fn derive(&self, val: f64) -> Currency {
+ pub fn derive(&self, val: Decimal) -> Currency {
match self {
Currency::EUR(_) => Currency::EUR(val),
Currency::PLN(_) => Currency::PLN(val),
@@ -58,13 +62,13 @@ pub enum Exchange {
USD(String),
}
-#[derive(Debug, PartialEq, PartialOrd)]
+#[derive(Debug, PartialEq, PartialOrd, Clone)]
pub struct Transaction {
pub transaction_date: String,
pub gross: Currency,
pub tax_paid: Currency,
pub exchange_rate_date: String,
- pub exchange_rate: f32,
+ pub exchange_rate: Decimal,
pub company: Option,
}
@@ -109,12 +113,12 @@ pub struct SoldTransaction {
pub settlement_date: String,
pub trade_date: String,
pub acquisition_date: String,
- pub income_us: f32,
- pub cost_basis: f32,
+ pub income_us: Decimal,
+ pub cost_basis: Decimal,
pub exchange_rate_settlement_date: String,
- pub exchange_rate_settlement: f32,
+ pub exchange_rate_settlement: Decimal,
pub exchange_rate_acquisition_date: String,
- pub exchange_rate_acquisition: f32,
+ pub exchange_rate_acquisition: Decimal,
pub company: Option,
// TODO
//pub country : Option,
@@ -136,24 +140,25 @@ impl SoldTransaction {
pub trait Residency {
fn present_result(
&self,
- gross_div: f32,
- tax_div: f32,
- gross_sold: f32,
- cost_sold: f32,
+ gross_interests: Decimal,
+ gross_div: Decimal,
+ tax_div: Decimal,
+ gross_sold: Decimal,
+ cost_sold: Decimal,
) -> (Vec, Option);
fn get_exchange_rates(
&self,
- dates: &mut std::collections::HashMap>,
+ dates: &mut std::collections::HashMap>,
) -> Result<(), String>;
// Default parser (not to be used)
- fn parse_exchange_rates(&self, _body: &str) -> Result<(f32, String), String> {
+ fn parse_exchange_rates(&self, _body: &str) -> Result<(Decimal, String), String> {
panic!("This method should not be used. Implement your own if needed!");
}
fn get_currency_exchange_rates(
&self,
- dates: &mut std::collections::HashMap>,
+ dates: &mut std::collections::HashMap>,
to: &str,
) -> Result<(), String> {
if to == "EUR" {
@@ -165,7 +170,7 @@ pub trait Residency {
fn get_currency_exchange_rates_ecb(
&self,
- dates: &mut std::collections::HashMap>,
+ dates: &mut std::collections::HashMap>,
_to: &str,
) -> Result<(), String> {
dates.iter_mut().try_for_each(|(exchange, val)| {
@@ -196,7 +201,7 @@ pub trait Residency {
fn get_currency_exchange_rates_legacy(
&self,
- dates: &mut std::collections::HashMap>,
+ dates: &mut std::collections::HashMap>,
to: &str,
) -> Result<(), String> {
let client = create_client();
@@ -254,10 +259,15 @@ pub trait Residency {
}
pub struct TaxCalculationResult {
- pub gross_income: f32,
- pub tax: f32,
- pub gross_sold: f32,
- pub cost_sold: f32,
+ /// Sum of all interest income (eTrade + Revolut savings) converted to PLN per-transaction.
+ /// Art. 30a ust. 1 pkt 1–3 PIT — rounding: Art. 63 §1a OP (ceil to grosz).
+ pub gross_interests: Decimal,
+ /// Sum of all dividend income (eTrade + Revolut stock divs) converted to PLN per-transaction.
+ /// Art. 30a ust. 1 pkt 4 PIT — rounding: Art. 63 §1 OP (half-up to full złoty).
+ pub gross_div: Decimal,
+ pub tax: Decimal,
+ pub gross_sold: Decimal,
+ pub cost_sold: Decimal,
pub interests: Vec,
pub transactions: Vec,
pub revolut_dividends_transactions: Vec,
@@ -287,30 +297,69 @@ fn create_client() -> reqwest::blocking::Client {
client
}
-fn compute_div_taxation(transactions: &Vec) -> (f32, f32) {
+/// Rounds to 0.01 PLN (grosz).
+fn round_to_grosz(val: Decimal) -> Decimal {
+ val.round_dp_with_strategy(2, rust_decimal::RoundingStrategy::MidpointAwayFromZero)
+}
+
+fn compute_div_taxation(
+ transactions: &Vec,
+ round_per_transaction: bool,
+) -> (Decimal, Decimal) {
// Gross income from dividends in target currency (PLN, EUR etc.)
- let gross_us_pl: f32 = transactions
+ let gross_us_pl: Decimal = transactions
.iter()
- .map(|x| x.exchange_rate * x.gross.value() as f32)
+ .map(|x| {
+ let v = x.exchange_rate * x.gross.value();
+ if round_per_transaction {
+ round_to_grosz(v)
+ } else {
+ v
+ }
+ })
.sum();
// Tax paid in US in PLN
- let tax_us_pl: f32 = transactions
+ let tax_us_pl: Decimal = transactions
.iter()
- .map(|x| x.exchange_rate * x.tax_paid.value() as f32)
+ .map(|x| {
+ let v = x.exchange_rate * x.tax_paid.value();
+ if round_per_transaction {
+ round_to_grosz(v)
+ } else {
+ v
+ }
+ })
.sum();
(gross_us_pl, tax_us_pl)
}
-fn compute_sold_taxation(transactions: &Vec) -> (f32, f32) {
+fn compute_sold_taxation(
+ transactions: &Vec,
+ round_per_transaction: bool,
+) -> (Decimal, Decimal) {
// Net income from sold stock in target currency (PLN, EUR etc.)
- let gross_us_pl: f32 = transactions
+ let gross_us_pl: Decimal = transactions
.iter()
- .map(|x| x.exchange_rate_settlement * x.income_us)
+ .map(|x| {
+ let v = x.exchange_rate_settlement * x.income_us;
+ if round_per_transaction {
+ round_to_grosz(v)
+ } else {
+ v
+ }
+ })
.sum();
// Cost of income e.g. cost_basis[target currency]
- let cost_us_pl: f32 = transactions
+ let cost_us_pl: Decimal = transactions
.iter()
- .map(|x| x.exchange_rate_acquisition * x.cost_basis)
+ .map(|x| {
+ let v = x.exchange_rate_acquisition * x.cost_basis;
+ if round_per_transaction {
+ round_to_grosz(v)
+ } else {
+ v
+ }
+ })
.sum();
(gross_us_pl, cost_us_pl)
}
@@ -374,13 +423,21 @@ pub fn run_taxation(
names: Vec,
per_company: bool,
multiyear: bool,
+ round_per_transaction: bool,
) -> Result {
validate_file_names(&names)?;
- let mut parsed_interests_transactions: Vec<(String, f32, f32)> = vec![];
- let mut parsed_div_transactions: Vec<(String, f32, f32, Option)> = vec![];
- let mut parsed_sold_transactions: Vec<(String, String, f32, f32, f32, Option)> = vec![];
- let mut parsed_gain_and_losses: Vec<(String, String, f32, f32, f32)> = vec![];
+ let mut parsed_interests_transactions: Vec<(String, Decimal, Decimal)> = vec![];
+ let mut parsed_div_transactions: Vec<(String, Decimal, Decimal, Option)> = vec![];
+ let mut parsed_sold_transactions: Vec<(
+ String,
+ String,
+ Decimal,
+ Decimal,
+ Decimal,
+ Option,
+ )> = vec![];
+ let mut parsed_gain_and_losses: Vec<(String, String, Decimal, Decimal, Decimal)> = vec![];
let mut parsed_revolut_dividends_transactions: Vec<(
String,
Currency,
@@ -441,7 +498,7 @@ pub fn run_taxation(
// Gather all trade , settlement and transaction dates into hash map to be passed to
// get_exchange_rate
// Hash map : Key(event date) -> (preceeding date, exchange_rate)
- let mut dates: std::collections::HashMap> =
+ let mut dates: std::collections::HashMap> =
std::collections::HashMap::new();
parsed_interests_transactions
.iter()
@@ -519,16 +576,35 @@ pub fn run_taxation(
println!("{}", per_company_report);
}
- let (gross_interests, _) = compute_div_taxation(&interests);
- let (gross_div, tax_div) = compute_div_taxation(&transactions);
- let (gross_sold, cost_sold) = compute_sold_taxation(&sold_transactions);
- let (gross_revolut, tax_revolut) = compute_div_taxation(&revolut_dividends_transactions);
- let (gross_revolut_sold, cost_revolut_sold) = compute_sold_taxation(&revolut_sold_transactions);
+ let (gross_etrade_interests, _) = compute_div_taxation(&interests, round_per_transaction);
+ let (gross_etrade_div, tax_etrade_div) =
+ compute_div_taxation(&transactions, round_per_transaction);
+ let (gross_sold, cost_sold) = compute_sold_taxation(&sold_transactions, round_per_transaction);
+
+ // Split Revolut transactions: savings interests (company=None, art. 30a pkt 1-3)
+ // vs stock dividends (company=Some, art. 30a pkt 4).
+ let revolut_interests_txns: Vec = revolut_dividends_transactions
+ .iter()
+ .filter(|x| x.company.is_none())
+ .cloned()
+ .collect();
+ let revolut_div_txns: Vec = revolut_dividends_transactions
+ .iter()
+ .filter(|x| x.company.is_some())
+ .cloned()
+ .collect();
+ let (gross_revolut_interests, _) =
+ compute_div_taxation(&revolut_interests_txns, round_per_transaction);
+ let (gross_revolut_div, tax_revolut) =
+ compute_div_taxation(&revolut_div_txns, round_per_transaction);
+ let (gross_revolut_sold, cost_revolut_sold) =
+ compute_sold_taxation(&revolut_sold_transactions, round_per_transaction);
Ok(TaxCalculationResult {
- gross_income: gross_interests + gross_div + gross_revolut,
- tax: tax_div + tax_revolut,
- gross_sold: gross_sold + gross_revolut_sold,
- cost_sold: cost_sold + cost_revolut_sold,
+ gross_interests: gross_etrade_interests + gross_revolut_interests,
+ gross_div: gross_etrade_div + gross_revolut_div,
+ tax: tax_etrade_div + tax_revolut,
+ gross_sold: round_to_grosz(gross_sold + gross_revolut_sold),
+ cost_sold: round_to_grosz(cost_sold + cost_revolut_sold),
interests,
transactions: transactions,
revolut_dividends_transactions: revolut_dividends_transactions,
@@ -540,6 +616,166 @@ pub fn run_taxation(
#[cfg(test)]
mod tests {
use super::*;
+ use rust_decimal::dec;
+
+ #[test]
+ fn test_round_to_grosz() {
+ // Normal rounding
+ assert_eq!(round_to_grosz(dec!(1.234)), dec!(1.23));
+ assert_eq!(round_to_grosz(dec!(1.235)), dec!(1.24));
+ assert_eq!(round_to_grosz(dec!(1.005)), dec!(1.01));
+ assert_eq!(round_to_grosz(dec!(0.0)), dec!(0.0));
+ // Rounds down when fraction < 0.5
+ assert_eq!(
+ round_to_grosz(dec!(4.1523) * dec!(12.34)),
+ round_to_grosz(dec!(51.239482))
+ );
+ }
+
+ // Each transaction is rounded to grosz individually before summing.
+ // Two transactions of 1.005 PLN each: per-transaction gives 1.01 + 1.01 = 2.02,
+ // whereas rounding the raw sum (2.010) would give 2.01 — a different result.
+ #[test]
+ fn test_div_taxation_stepwise_rounding() -> Result<(), String> {
+ let transactions: Vec = vec![
+ Transaction {
+ transaction_date: "N/A".to_string(),
+ gross: crate::Currency::PLN(dec!(1.005)),
+ tax_paid: crate::Currency::PLN(dec!(0.0)),
+ exchange_rate_date: "N/A".to_string(),
+ exchange_rate: dec!(1.0),
+ company: None,
+ },
+ Transaction {
+ transaction_date: "N/A".to_string(),
+ gross: crate::Currency::PLN(dec!(1.005)),
+ tax_paid: crate::Currency::PLN(dec!(0.0)),
+ exchange_rate_date: "N/A".to_string(),
+ exchange_rate: dec!(1.0),
+ company: None,
+ },
+ ];
+ let (gross, _) = compute_div_taxation(&transactions, true);
+ // Per-transaction: round(1.005) + round(1.005) = 1.01 + 1.01 = 2.02
+ assert_eq!(gross, dec!(2.02));
+ // Sanity check: rounding the raw sum would give a different answer
+ assert_ne!(gross, round_to_grosz(dec!(1.005) + dec!(1.005))); // round(2.01) = 2.01
+ Ok(())
+ }
+
+ // Each sold transaction's FX-converted income and cost are rounded to grosz individually
+ // before summing. Two transactions where rate * amount = 1.005 each: per-transaction gives
+ // 1.01 + 1.01 = 2.02, whereas rounding the raw sum (2.01) would give 2.01.
+ #[test]
+ fn test_sold_taxation_stepwise_rounding() -> Result<(), String> {
+ let transactions: Vec = vec![
+ SoldTransaction {
+ trade_date: "N/A".to_string(),
+ settlement_date: "N/A".to_string(),
+ acquisition_date: "N/A".to_string(),
+ income_us: dec!(1.0),
+ cost_basis: dec!(1.0),
+ exchange_rate_settlement_date: "N/A".to_string(),
+ exchange_rate_settlement: dec!(1.005),
+ exchange_rate_acquisition_date: "N/A".to_string(),
+ exchange_rate_acquisition: dec!(1.005),
+ company: Some("TFC".to_owned()),
+ },
+ SoldTransaction {
+ trade_date: "N/A".to_string(),
+ settlement_date: "N/A".to_string(),
+ acquisition_date: "N/A".to_string(),
+ income_us: dec!(1.0),
+ cost_basis: dec!(1.0),
+ exchange_rate_settlement_date: "N/A".to_string(),
+ exchange_rate_settlement: dec!(1.005),
+ exchange_rate_acquisition_date: "N/A".to_string(),
+ exchange_rate_acquisition: dec!(1.005),
+ company: Some("TFC".to_owned()),
+ },
+ ];
+ let (gross, cost) = compute_sold_taxation(&transactions, true);
+ // Per-transaction: round(1.005) + round(1.005) = 1.01 + 1.01 = 2.02
+ assert_eq!(gross, dec!(2.02));
+ assert_eq!(cost, dec!(2.02));
+ // Sanity check: rounding the raw sum would give a different answer
+ assert_ne!(gross, round_to_grosz(dec!(1.005) + dec!(1.005))); // round(2.01) = 2.01
+ Ok(())
+ }
+
+ /// Proves that f32 arithmetic gives a different (wrong) grosz result than
+ /// exact Decimal arithmetic for a realistic sold-stock scenario.
+ ///
+ /// Three stock sales with realistic NBP exchange rates, summing to ~200k PLN
+ /// where f32's ULP ≈ 0.016 — larger than 0.01 (one grosz). At this magnitude
+ /// f32 literally cannot distinguish adjacent grosz values.
+ ///
+ /// Exact gross sum (Decimal): 199985.462815 PLN → rounds to 199985.46
+ /// f32 gross sum: 199985.45 PLN → formats as 199985.45
+ ///
+ /// This is the kind of 1-grosz error that would appear on a PIT-38 tax return.
+ #[test]
+ fn test_decimal_precision_vs_f32_sold_taxation() {
+ // Three sold transactions with realistic NBP exchange rates.
+ // income amounts chosen so the PLN sum lands where f32 can't represent the grosz.
+ let transactions: Vec = vec![
+ SoldTransaction {
+ trade_date: "N/A".to_string(),
+ settlement_date: "N/A".to_string(),
+ acquisition_date: "N/A".to_string(),
+ income_us: dec!(24000.00),
+ cost_basis: Decimal::ZERO,
+ exchange_rate_settlement_date: "N/A".to_string(),
+ exchange_rate_settlement: dec!(4.1537), // realistic NBP USD/PLN
+ exchange_rate_acquisition_date: "N/A".to_string(),
+ exchange_rate_acquisition: Decimal::ONE,
+ company: Some("AAPL".to_owned()),
+ },
+ SoldTransaction {
+ trade_date: "N/A".to_string(),
+ settlement_date: "N/A".to_string(),
+ acquisition_date: "N/A".to_string(),
+ income_us: dec!(24000.00),
+ cost_basis: Decimal::ZERO,
+ exchange_rate_settlement_date: "N/A".to_string(),
+ exchange_rate_settlement: dec!(3.9150),
+ exchange_rate_acquisition_date: "N/A".to_string(),
+ exchange_rate_acquisition: Decimal::ONE,
+ company: Some("MSFT".to_owned()),
+ },
+ SoldTransaction {
+ trade_date: "N/A".to_string(),
+ settlement_date: "N/A".to_string(),
+ acquisition_date: "N/A".to_string(),
+ income_us: dec!(1480.01),
+ cost_basis: Decimal::ZERO,
+ exchange_rate_settlement_date: "N/A".to_string(),
+ exchange_rate_settlement: dec!(4.2815),
+ exchange_rate_acquisition_date: "N/A".to_string(),
+ exchange_rate_acquisition: Decimal::ONE,
+ company: Some("GOOG".to_owned()),
+ },
+ ];
+
+ let (gross, _cost) = compute_sold_taxation(&transactions, false);
+
+ // Decimal arithmetic is exact:
+ // 4.1537 * 24000 = 99688.8
+ // 3.9150 * 24000 = 93960.0
+ // 4.2815 * 1480.01 = 6336.662815
+ // sum = 199985.462815
+ assert_eq!(gross, dec!(199985.462815));
+ assert_eq!(round_to_grosz(gross), dec!(199985.46));
+
+ // Prove f32 gives a DIFFERENT answer (the bug this migration fixes):
+ let f32_gross: f32 =
+ 4.1537_f32 * 24000.0_f32 + 3.9150_f32 * 24000.0_f32 + 4.2815_f32 * 1480.01_f32;
+ assert_eq!(
+ format!("{:.2}", f32_gross),
+ "199985.45",
+ "f32 produces 199985.45 — a 1-grosz error vs the correct 199985.46"
+ );
+ }
#[test]
fn test_validate_file_names_invalid_path() {
@@ -606,13 +842,16 @@ mod tests {
// Init Transactions
let transactions: Vec = vec![Transaction {
transaction_date: "N/A".to_string(),
- gross: crate::Currency::USD(100.0),
- tax_paid: crate::Currency::USD(25.0),
+ gross: crate::Currency::USD(dec!(100.0)),
+ tax_paid: crate::Currency::USD(dec!(25.0)),
exchange_rate_date: "N/A".to_string(),
- exchange_rate: 4.0,
+ exchange_rate: dec!(4.0),
company: Some("INTEL CORP".to_owned()),
}];
- assert_eq!(compute_div_taxation(&transactions), (400.0, 100.0));
+ assert_eq!(
+ compute_div_taxation(&transactions, false),
+ (dec!(400.0), dec!(100.0))
+ );
Ok(())
}
@@ -622,24 +861,27 @@ mod tests {
let transactions: Vec = vec![
Transaction {
transaction_date: "N/A".to_string(),
- gross: crate::Currency::USD(100.0),
- tax_paid: crate::Currency::USD(25.0),
+ gross: crate::Currency::USD(dec!(100.0)),
+ tax_paid: crate::Currency::USD(dec!(25.0)),
exchange_rate_date: "N/A".to_string(),
- exchange_rate: 4.0,
+ exchange_rate: dec!(4.0),
company: Some("INTEL CORP".to_owned()),
},
Transaction {
transaction_date: "N/A".to_string(),
- gross: crate::Currency::USD(126.0),
- tax_paid: crate::Currency::USD(10.0),
+ gross: crate::Currency::USD(dec!(126.0)),
+ tax_paid: crate::Currency::USD(dec!(10.0)),
exchange_rate_date: "N/A".to_string(),
- exchange_rate: 3.5,
+ exchange_rate: dec!(3.5),
company: Some("INTEL CORP".to_owned()),
},
];
assert_eq!(
- compute_div_taxation(&transactions),
- (400.0 + 126.0 * 3.5, 100.0 + 10.0 * 3.5)
+ compute_div_taxation(&transactions, false),
+ (
+ dec!(400.0) + dec!(126.0) * dec!(3.5),
+ dec!(100.0) + dec!(10.0) * dec!(3.5)
+ )
);
Ok(())
}
@@ -648,24 +890,24 @@ mod tests {
let transactions: Vec = vec![
Transaction {
transaction_date: "03/01/21".to_string(),
- gross: crate::Currency::PLN(0.44),
- tax_paid: crate::Currency::PLN(0.0),
+ gross: crate::Currency::PLN(dec!(0.44)),
+ tax_paid: crate::Currency::PLN(dec!(0.0)),
exchange_rate_date: "N/A".to_string(),
- exchange_rate: 1.0,
+ exchange_rate: dec!(1.0),
company: None,
},
Transaction {
transaction_date: "04/11/21".to_string(),
- gross: crate::Currency::PLN(0.45),
- tax_paid: crate::Currency::PLN(0.0),
+ gross: crate::Currency::PLN(dec!(0.45)),
+ tax_paid: crate::Currency::PLN(dec!(0.0)),
exchange_rate_date: "N/A".to_string(),
- exchange_rate: 1.0,
+ exchange_rate: dec!(1.0),
company: None,
},
];
assert_eq!(
- compute_div_taxation(&transactions),
- (0.44 * 1.0 + 0.45 * 1.0, 0.0)
+ compute_div_taxation(&transactions, false),
+ (dec!(0.44) * dec!(1.0) + dec!(0.45) * dec!(1.0), dec!(0.0))
);
Ok(())
}
@@ -675,24 +917,24 @@ mod tests {
let transactions: Vec = vec![
Transaction {
transaction_date: "03/01/21".to_string(),
- gross: crate::Currency::EUR(0.44),
- tax_paid: crate::Currency::EUR(0.0),
+ gross: crate::Currency::EUR(dec!(0.44)),
+ tax_paid: crate::Currency::EUR(dec!(0.0)),
exchange_rate_date: "02/28/21".to_string(),
- exchange_rate: 2.0,
+ exchange_rate: dec!(2.0),
company: None,
},
Transaction {
transaction_date: "04/11/21".to_string(),
- gross: crate::Currency::EUR(0.45),
- tax_paid: crate::Currency::EUR(0.0),
+ gross: crate::Currency::EUR(dec!(0.45)),
+ tax_paid: crate::Currency::EUR(dec!(0.0)),
exchange_rate_date: "04/10/21".to_string(),
- exchange_rate: 3.0,
+ exchange_rate: dec!(3.0),
company: None,
},
];
assert_eq!(
- compute_div_taxation(&transactions),
- (0.44 * 2.0 + 0.45 * 3.0, 0.0)
+ compute_div_taxation(&transactions, false),
+ (dec!(0.44) * dec!(2.0) + dec!(0.45) * dec!(3.0), dec!(0.0))
);
Ok(())
}
@@ -704,17 +946,17 @@ mod tests {
trade_date: "N/A".to_string(),
settlement_date: "N/A".to_string(),
acquisition_date: "N/A".to_string(),
- income_us: 100.0,
- cost_basis: 70.0,
+ income_us: dec!(100.0),
+ cost_basis: dec!(70.0),
exchange_rate_settlement_date: "N/A".to_string(),
- exchange_rate_settlement: 5.0,
+ exchange_rate_settlement: dec!(5.0),
exchange_rate_acquisition_date: "N/A".to_string(),
- exchange_rate_acquisition: 6.0,
+ exchange_rate_acquisition: dec!(6.0),
company: Some("TFC".to_owned()),
}];
assert_eq!(
- compute_sold_taxation(&transactions),
- (100.0 * 5.0, 70.0 * 6.0)
+ compute_sold_taxation(&transactions, false),
+ (dec!(100.0) * dec!(5.0), dec!(70.0) * dec!(6.0))
);
Ok(())
}
@@ -727,30 +969,33 @@ mod tests {
trade_date: "N/A".to_string(),
settlement_date: "N/A".to_string(),
acquisition_date: "N/A".to_string(),
- income_us: 100.0,
- cost_basis: 70.0,
+ income_us: dec!(100.0),
+ cost_basis: dec!(70.0),
exchange_rate_settlement_date: "N/A".to_string(),
- exchange_rate_settlement: 5.0,
+ exchange_rate_settlement: dec!(5.0),
exchange_rate_acquisition_date: "N/A".to_string(),
- exchange_rate_acquisition: 6.0,
+ exchange_rate_acquisition: dec!(6.0),
company: Some("PXD".to_owned()),
},
SoldTransaction {
trade_date: "N/A".to_string(),
settlement_date: "N/A".to_string(),
acquisition_date: "N/A".to_string(),
- income_us: 10.0,
- cost_basis: 4.0,
+ income_us: dec!(10.0),
+ cost_basis: dec!(4.0),
exchange_rate_settlement_date: "N/A".to_string(),
- exchange_rate_settlement: 2.0,
+ exchange_rate_settlement: dec!(2.0),
exchange_rate_acquisition_date: "N/A".to_string(),
- exchange_rate_acquisition: 3.0,
+ exchange_rate_acquisition: dec!(3.0),
company: Some("TFC".to_owned()),
},
];
assert_eq!(
- compute_sold_taxation(&transactions),
- (100.0 * 5.0 + 10.0 * 2.0, 70.0 * 6.0 + 4.0 * 3.0)
+ compute_sold_taxation(&transactions, false),
+ (
+ dec!(100.0) * dec!(5.0) + dec!(10.0) * dec!(2.0),
+ dec!(70.0) * dec!(6.0) + dec!(4.0) * dec!(3.0)
+ )
);
Ok(())
}
diff --git a/src/main.rs b/src/main.rs
index 3ddad3e..ae7b61b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,6 +1,8 @@
// SPDX-FileCopyrightText: 2022-2025 RustInFinance
// SPDX-License-Identifier: BSD-3-Clause
+#![debugger_visualizer(natvis_file = "../rust_decimal.natvis")]
+
use clap::{Arg, Command};
use std::env;
@@ -58,6 +60,12 @@ fn create_cmd_line_pattern(myapp: Command) -> Command {
.help("Allow processing documents across more than year")
.action(clap::ArgAction::SetTrue)
)
+ .arg(
+ Arg::new("round-per-transaction")
+ .long("round-per-transaction")
+ .help("Round each FX-converted amount to grosz before summing (off by default)")
+ .action(clap::ArgAction::SetTrue)
+ )
}
fn configure_dataframes_format() {
@@ -108,7 +116,8 @@ fn main() {
let pdfnames: Vec = pdfnames.map(|x| x.to_string()).collect();
let TaxCalculationResult {
- gross_income: gross_div,
+ gross_interests,
+ gross_div,
tax: tax_div,
gross_sold,
cost_sold,
@@ -118,12 +127,14 @@ fn main() {
pdfnames,
matches.get_flag("per-company"),
matches.get_flag("multiyear"),
+ matches.get_flag("round-per-transaction"),
) {
Ok(res) => res,
Err(msg) => panic!("\nError: Unable to compute taxes. \n\nDetails: {msg}"),
};
- let (presentation, warning) = rd.present_result(gross_div, tax_div, gross_sold, cost_sold);
+ let (presentation, warning) =
+ rd.present_result(gross_interests, gross_div, tax_div, gross_sold, cost_sold);
presentation.iter().for_each(|x| println!("{x}"));
if let Some(warn_msg) = warning {
@@ -135,6 +146,8 @@ fn main() {
mod tests {
use super::*;
use clap::Command;
+ use rust_decimal::dec;
+ use rust_decimal::Decimal;
#[test]
fn test_exchange_rate_de() -> Result<(), String> {
@@ -142,7 +155,7 @@ mod tests {
let mut dates: std::collections::HashMap<
etradeTaxReturnHelper::Exchange,
- Option<(String, f32)>,
+ Option<(String, Decimal)>,
> = std::collections::HashMap::new();
dates.insert(
@@ -157,10 +170,8 @@ mod tests {
.clone()
.unwrap();
- assert_eq!(
- (exchange_rate_date, exchange_rate),
- ("2023-02-20".to_owned(), 0.9368559)
- );
+ assert_eq!(exchange_rate_date, "2023-02-20");
+ assert_eq!(exchange_rate, dec!(0.9368559115608019486602960465));
Ok(())
}
@@ -170,7 +181,7 @@ mod tests {
let mut dates: std::collections::HashMap<
etradeTaxReturnHelper::Exchange,
- Option<(String, f32)>,
+ Option<(String, Decimal)>,
> = std::collections::HashMap::new();
dates.insert(
@@ -187,7 +198,7 @@ mod tests {
assert_eq!(
(exchange_rate_date, exchange_rate),
- ("2021-02-26".to_owned(), 3.7247)
+ ("2021-02-26".to_owned(), dec!(3.7247))
);
Ok(())
}
@@ -198,7 +209,7 @@ mod tests {
let mut dates: std::collections::HashMap<
etradeTaxReturnHelper::Exchange,
- Option<(String, f32)>,
+ Option<(String, Decimal)>,
> = std::collections::HashMap::new();
dates.insert(
@@ -213,7 +224,10 @@ mod tests {
.clone()
.unwrap();
- assert_eq!((exchange_rate_date, exchange_rate), ("N/A".to_owned(), 1.0));
+ assert_eq!(
+ (exchange_rate_date, exchange_rate),
+ ("N/A".to_owned(), Decimal::ONE)
+ );
Ok(())
}
@@ -374,7 +388,7 @@ mod tests {
.expect_and_log("error getting financial documents names");
let pdfnames: Vec = pdfnames.map(|x| x.to_string()).collect();
- match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false) {
+ match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false, false) {
Ok(_) => panic!("Expected an error from run_taxation, but got Ok"),
Err(_) => Ok(()), // Expected error, test passes
}
@@ -395,17 +409,18 @@ mod tests {
.expect_and_log("error getting brokarage statements pdfs names");
let pdfnames: Vec = pdfnames.map(|x| x.to_string()).collect();
- match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false) {
+ match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false, false) {
Ok(TaxCalculationResult {
- gross_income: gross_div,
+ gross_interests,
+ gross_div,
tax: tax_div,
gross_sold,
cost_sold,
..
}) => {
assert_eq!(
- (gross_div, tax_div, gross_sold, cost_sold),
- (6331.29, 871.17993, 0.0, 0.0),
+ (gross_interests, gross_div, tax_div, gross_sold, cost_sold),
+ (dec!(0), dec!(6331.29), dec!(871.18), dec!(0), dec!(0)),
);
Ok(())
}
@@ -428,17 +443,63 @@ mod tests {
.expect_and_log("error getting brokarage statements pdfs names");
let pdfnames: Vec = pdfnames.map(|x| x.to_string()).collect();
- match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false) {
+ match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false, false) {
+ Ok(TaxCalculationResult {
+ gross_interests,
+ gross_div,
+ tax: tax_div,
+ gross_sold,
+ cost_sold,
+ ..
+ }) => {
+ assert_eq!(
+ (gross_interests, gross_div, tax_div, gross_sold, cost_sold),
+ (
+ dec!(0),
+ dec!(9142.32),
+ dec!(1207.08),
+ dec!(22988.62),
+ dec!(20163.50)
+ ),
+ );
+ Ok(())
+ }
+ Err(x) => panic!("Error in taxation process: {x}"),
+ }
+ }
+
+ #[test]
+ fn test_revolut_sold_and_dividends_round_per_transaction() -> Result<(), clap::Error> {
+ let myapp = Command::new("etradeTaxHelper").arg_required_else_help(true);
+ let rd: Box = Box::new(pl::PL {});
+
+ let matches = create_cmd_line_pattern(myapp).get_matches_from(vec![
+ "mytest",
+ "revolut_data/trading-pnl-statement_2022-11-01_2024-09-01_pl-pl_e989f4.csv",
+ ]);
+ let pdfnames = matches
+ .get_many::("financial documents")
+ .expect_and_log("error getting brokarage statements pdfs names");
+ let pdfnames: Vec = pdfnames.map(|x| x.to_string()).collect();
+
+ match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false, true) {
Ok(TaxCalculationResult {
- gross_income: gross_div,
+ gross_interests,
+ gross_div,
tax: tax_div,
gross_sold,
cost_sold,
..
}) => {
assert_eq!(
- (gross_div, tax_div, gross_sold, cost_sold),
- (9142.319, 1207.08, 22988.617, 20163.5),
+ (gross_interests, gross_div, tax_div, gross_sold, cost_sold),
+ (
+ dec!(0),
+ dec!(9142.32),
+ dec!(1207.08),
+ dec!(22988.62),
+ dec!(20163.50)
+ ),
);
Ok(())
}
@@ -461,17 +522,18 @@ mod tests {
.expect_and_log("error getting brokarage statements pdfs names");
let pdfnames: Vec = pdfnames.map(|x| x.to_string()).collect();
- match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false) {
+ match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false, false) {
Ok(TaxCalculationResult {
- gross_income: gross_div,
+ gross_interests,
+ gross_div,
tax: tax_div,
gross_sold,
cost_sold,
..
}) => {
assert_eq!(
- (gross_div, tax_div, gross_sold, cost_sold),
- (86.93008, 0.0, 0.0, 0.0),
+ (gross_interests, gross_div, tax_div, gross_sold, cost_sold),
+ (dec!(86.93), dec!(0), dec!(0), dec!(0), dec!(0)),
);
Ok(())
}
@@ -495,17 +557,24 @@ mod tests {
.expect_and_log("error getting brokarage statements pdfs names");
let pdfnames: Vec = pdfnames.map(|x| x.to_string()).collect();
- match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false) {
+ match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false, false) {
Ok(TaxCalculationResult {
- gross_income: gross_div,
+ gross_interests,
+ gross_div,
tax: tax_div,
gross_sold,
cost_sold,
..
}) => {
assert_eq!(
- (gross_div, tax_div, gross_sold, cost_sold),
- (219.34755, 0.0, 89845.65, 44369.938),
+ (gross_interests, gross_div, tax_div, gross_sold, cost_sold),
+ (
+ dec!(0),
+ dec!(219.34755),
+ dec!(0.0),
+ dec!(89845.65),
+ dec!(44369.938)
+ ),
);
Ok(())
}
@@ -526,17 +595,18 @@ mod tests {
.expect_and_log("error getting brokarage statements pdfs names");
let pdfnames: Vec = pdfnames.map(|x| x.to_string()).collect();
- match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false) {
+ match etradeTaxReturnHelper::run_taxation(&rd, pdfnames, false, false, false) {
Ok(TaxCalculationResult {
- gross_income: gross_div,
+ gross_interests,
+ gross_div,
tax: tax_div,
gross_sold,
cost_sold,
..
}) => {
assert_eq!(
- (gross_div, tax_div, gross_sold, cost_sold),
- (0.66164804, 0.0, 0.0, 0.0),
+ (gross_interests, gross_div, tax_div, gross_sold, cost_sold),
+ (dec!(0.66164804), dec!(0), dec!(0.0), dec!(0.0), dec!(0.0)),
);
Ok(())
}
diff --git a/src/nbp.rs b/src/nbp.rs
index 22b5cbb..1f1736e 100644
--- a/src/nbp.rs
+++ b/src/nbp.rs
@@ -3,4293 +3,4295 @@
use std::collections::HashMap;
use etradeTaxReturnHelper::Exchange;
+use rust_decimal::dec;
+use rust_decimal::Decimal;
#[allow(clippy::approx_constant)]
-pub fn get_exchange_rates() -> HashMap {
+pub fn get_exchange_rates() -> HashMap {
let mut exchange_rates = HashMap::new();
- exchange_rates.insert(Exchange::EUR("2025-03-24".to_string()), 4.1832f64);
- exchange_rates.insert(Exchange::USD("2016-07-05".to_string()), 3.9963f64);
- exchange_rates.insert(Exchange::USD("2023-10-12".to_string()), 4.2659f64);
- exchange_rates.insert(Exchange::USD("2024-07-12".to_string()), 3.9099f64);
- exchange_rates.insert(Exchange::USD("2020-01-21".to_string()), 3.8284f64);
- exchange_rates.insert(Exchange::USD("2025-03-26".to_string()), 3.8614f64);
- exchange_rates.insert(Exchange::USD("2018-05-10".to_string()), 3.5773f64);
- exchange_rates.insert(Exchange::USD("2019-05-22".to_string()), 3.862f64);
- exchange_rates.insert(Exchange::USD("2024-11-15".to_string()), 4.0898f64);
- exchange_rates.insert(Exchange::EUR("2025-12-17".to_string()), 4.2149f64);
- exchange_rates.insert(Exchange::USD("2024-04-12".to_string()), 3.9983f64);
- exchange_rates.insert(Exchange::USD("2025-08-21".to_string()), 3.6483f64);
- exchange_rates.insert(Exchange::USD("2020-06-23".to_string()), 3.9311f64);
- exchange_rates.insert(Exchange::USD("2025-10-15".to_string()), 3.6585f64);
- exchange_rates.insert(Exchange::USD("2015-01-22".to_string()), 3.6994f64);
- exchange_rates.insert(Exchange::USD("2017-01-04".to_string()), 4.2037f64);
- exchange_rates.insert(Exchange::USD("2015-11-02".to_string()), 3.859f64);
- exchange_rates.insert(Exchange::USD("2023-09-14".to_string()), 4.312f64);
- exchange_rates.insert(Exchange::USD("2024-12-11".to_string()), 4.0628f64);
- exchange_rates.insert(Exchange::USD("2020-12-18".to_string()), 3.6322f64);
- exchange_rates.insert(Exchange::USD("2025-10-20".to_string()), 3.6349f64);
- exchange_rates.insert(Exchange::USD("2022-08-12".to_string()), 4.5459f64);
- exchange_rates.insert(Exchange::USD("2019-11-21".to_string()), 3.8737f64);
- exchange_rates.insert(Exchange::USD("2016-04-15".to_string()), 3.8176f64);
- exchange_rates.insert(Exchange::USD("2015-03-13".to_string()), 3.9141f64);
- exchange_rates.insert(Exchange::EUR("2023-04-05".to_string()), 4.6803f64);
- exchange_rates.insert(Exchange::USD("2021-07-28".to_string()), 3.8849f64);
- exchange_rates.insert(Exchange::EUR("2023-12-11".to_string()), 4.3366f64);
- exchange_rates.insert(Exchange::USD("2012-07-02".to_string()), 3.3456f64);
- exchange_rates.insert(Exchange::USD("2021-12-15".to_string()), 4.0999f64);
- exchange_rates.insert(Exchange::USD("2015-03-02".to_string()), 3.7053f64);
- exchange_rates.insert(Exchange::USD("2020-08-07".to_string()), 3.7302f64);
- exchange_rates.insert(Exchange::USD("2013-07-25".to_string()), 3.2143f64);
- exchange_rates.insert(Exchange::USD("2021-07-14".to_string()), 3.8955f64);
- exchange_rates.insert(Exchange::USD("2020-08-31".to_string()), 3.6924f64);
- exchange_rates.insert(Exchange::USD("2012-05-17".to_string()), 3.4194f64);
- exchange_rates.insert(Exchange::USD("2012-06-21".to_string()), 3.3617f64);
- exchange_rates.insert(Exchange::EUR("2023-11-20".to_string()), 4.368f64);
- exchange_rates.insert(Exchange::USD("2025-04-25".to_string()), 3.7611f64);
- exchange_rates.insert(Exchange::EUR("2024-03-22".to_string()), 4.3186f64);
- exchange_rates.insert(Exchange::USD("2024-02-19".to_string()), 4.0269f64);
- exchange_rates.insert(Exchange::USD("2018-06-06".to_string()), 3.647f64);
- exchange_rates.insert(Exchange::USD("2021-09-15".to_string()), 3.8475f64);
- exchange_rates.insert(Exchange::USD("2019-10-04".to_string()), 3.9469f64);
- exchange_rates.insert(Exchange::EUR("2025-04-16".to_string()), 4.3033f64);
- exchange_rates.insert(Exchange::USD("2024-08-05".to_string()), 3.9331f64);
- exchange_rates.insert(Exchange::USD("2019-02-11".to_string()), 3.819f64);
- exchange_rates.insert(Exchange::USD("2019-02-01".to_string()), 3.7243f64);
- exchange_rates.insert(Exchange::USD("2014-10-30".to_string()), 3.3592f64);
- exchange_rates.insert(Exchange::USD("2016-05-16".to_string()), 3.8625f64);
- exchange_rates.insert(Exchange::USD("2016-06-28".to_string()), 4.003f64);
- exchange_rates.insert(Exchange::EUR("2025-08-25".to_string()), 4.2627f64);
- exchange_rates.insert(Exchange::USD("2023-01-11".to_string()), 4.3639f64);
- exchange_rates.insert(Exchange::USD("2016-01-07".to_string()), 4.0085f64);
- exchange_rates.insert(Exchange::USD("2020-01-13".to_string()), 3.8101f64);
- exchange_rates.insert(Exchange::EUR("2025-05-15".to_string()), 4.2378f64);
- exchange_rates.insert(Exchange::EUR("2024-04-11".to_string()), 4.2649f64);
- exchange_rates.insert(Exchange::USD("2015-04-21".to_string()), 3.7275f64);
- exchange_rates.insert(Exchange::USD("2023-05-09".to_string()), 4.1609f64);
- exchange_rates.insert(Exchange::EUR("2023-04-19".to_string()), 4.6278f64);
- exchange_rates.insert(Exchange::USD("2025-03-24".to_string()), 3.859f64);
- exchange_rates.insert(Exchange::USD("2018-10-23".to_string()), 3.7485f64);
- exchange_rates.insert(Exchange::USD("2015-04-08".to_string()), 3.7135f64);
- exchange_rates.insert(Exchange::USD("2023-03-15".to_string()), 4.403f64);
- exchange_rates.insert(Exchange::USD("2019-07-03".to_string()), 3.7596f64);
- exchange_rates.insert(Exchange::USD("2014-04-29".to_string()), 3.0318f64);
- exchange_rates.insert(Exchange::USD("2015-07-23".to_string()), 3.7559f64);
- exchange_rates.insert(Exchange::USD("2024-06-27".to_string()), 4.0312f64);
- exchange_rates.insert(Exchange::USD("2012-05-28".to_string()), 3.4535f64);
- exchange_rates.insert(Exchange::EUR("2025-04-24".to_string()), 4.2789f64);
- exchange_rates.insert(Exchange::USD("2019-04-15".to_string()), 3.7789f64);
- exchange_rates.insert(Exchange::USD("2023-03-03".to_string()), 4.4341f64);
- exchange_rates.insert(Exchange::USD("2017-02-06".to_string()), 3.9892f64);
- exchange_rates.insert(Exchange::USD("2018-06-14".to_string()), 3.6155f64);
- exchange_rates.insert(Exchange::USD("2013-06-26".to_string()), 3.3239f64);
- exchange_rates.insert(Exchange::EUR("2023-01-10".to_string()), 4.6981f64);
- exchange_rates.insert(Exchange::USD("2024-08-13".to_string()), 3.9314f64);
- exchange_rates.insert(Exchange::USD("2017-12-15".to_string()), 3.5786f64);
- exchange_rates.insert(Exchange::USD("2014-05-23".to_string()), 3.049f64);
- exchange_rates.insert(Exchange::USD("2023-10-09".to_string()), 4.3439f64);
- exchange_rates.insert(Exchange::USD("2020-06-26".to_string()), 3.9697f64);
- exchange_rates.insert(Exchange::USD("2019-07-29".to_string()), 3.8453f64);
- exchange_rates.insert(Exchange::USD("2022-05-24".to_string()), 4.3071f64);
- exchange_rates.insert(Exchange::EUR("2024-09-02".to_string()), 4.2812f64);
- exchange_rates.insert(Exchange::EUR("2025-07-03".to_string()), 4.2634f64);
- exchange_rates.insert(Exchange::USD("2020-12-08".to_string()), 3.6914f64);
- exchange_rates.insert(Exchange::USD("2018-02-08".to_string()), 3.4119f64);
- exchange_rates.insert(Exchange::USD("2014-08-13".to_string()), 3.1442f64);
- exchange_rates.insert(Exchange::EUR("2025-06-09".to_string()), 4.2772f64);
- exchange_rates.insert(Exchange::USD("2025-09-24".to_string()), 3.6254f64);
- exchange_rates.insert(Exchange::USD("2014-04-16".to_string()), 3.0272f64);
- exchange_rates.insert(Exchange::USD("2012-10-29".to_string()), 3.2145f64);
- exchange_rates.insert(Exchange::EUR("2023-09-28".to_string()), 4.634f64);
- exchange_rates.insert(Exchange::USD("2022-10-31".to_string()), 4.734f64);
- exchange_rates.insert(Exchange::USD("2012-01-31".to_string()), 3.2032f64);
- exchange_rates.insert(Exchange::USD("2015-08-21".to_string()), 3.7308f64);
- exchange_rates.insert(Exchange::USD("2018-07-02".to_string()), 3.7703f64);
- exchange_rates.insert(Exchange::USD("2015-11-10".to_string()), 3.957f64);
- exchange_rates.insert(Exchange::USD("2019-05-14".to_string()), 3.8323f64);
- exchange_rates.insert(Exchange::USD("2014-11-06".to_string()), 3.3769f64);
- exchange_rates.insert(Exchange::EUR("2024-12-06".to_string()), 4.2669f64);
- exchange_rates.insert(Exchange::USD("2016-10-12".to_string()), 3.8851f64);
- exchange_rates.insert(Exchange::USD("2013-12-30".to_string()), 3.018f64);
- exchange_rates.insert(Exchange::USD("2022-02-04".to_string()), 3.9657f64);
- exchange_rates.insert(Exchange::USD("2025-10-01".to_string()), 3.6245f64);
- exchange_rates.insert(Exchange::EUR("2024-01-17".to_string()), 4.3978f64);
- exchange_rates.insert(Exchange::USD("2021-01-15".to_string()), 3.7466f64);
- exchange_rates.insert(Exchange::USD("2014-02-27".to_string()), 3.0655f64);
- exchange_rates.insert(Exchange::USD("2019-03-04".to_string()), 3.7893f64);
- exchange_rates.insert(Exchange::USD("2020-05-18".to_string()), 4.2224f64);
- exchange_rates.insert(Exchange::USD("2015-03-06".to_string()), 3.7649f64);
- exchange_rates.insert(Exchange::USD("2023-12-28".to_string()), 3.899f64);
- exchange_rates.insert(Exchange::USD("2023-05-26".to_string()), 4.2156f64);
- exchange_rates.insert(Exchange::USD("2012-05-22".to_string()), 3.3811f64);
- exchange_rates.insert(Exchange::EUR("2023-03-27".to_string()), 4.6856f64);
- exchange_rates.insert(Exchange::EUR("2025-10-10".to_string()), 4.2583f64);
- exchange_rates.insert(Exchange::EUR("2024-05-17".to_string()), 4.2685f64);
- exchange_rates.insert(Exchange::EUR("2023-11-15".to_string()), 4.39f64);
- exchange_rates.insert(Exchange::USD("2025-11-21".to_string()), 3.6868f64);
- exchange_rates.insert(Exchange::USD("2017-08-24".to_string()), 3.6329f64);
- exchange_rates.insert(Exchange::USD("2025-12-12".to_string()), 3.6027f64);
- exchange_rates.insert(Exchange::USD("2013-03-19".to_string()), 3.2055f64);
- exchange_rates.insert(Exchange::EUR("2025-06-06".to_string()), 4.2881f64);
- exchange_rates.insert(Exchange::USD("2024-02-08".to_string()), 4.0292f64);
- exchange_rates.insert(Exchange::USD("2024-09-17".to_string()), 3.8354f64);
- exchange_rates.insert(Exchange::EUR("2025-11-18".to_string()), 4.2331f64);
- exchange_rates.insert(Exchange::EUR("2024-05-20".to_string()), 4.2575f64);
- exchange_rates.insert(Exchange::EUR("2024-09-12".to_string()), 4.2986f64);
- exchange_rates.insert(Exchange::USD("2018-06-15".to_string()), 3.6922f64);
- exchange_rates.insert(Exchange::USD("2013-11-26".to_string()), 3.0945f64);
- exchange_rates.insert(Exchange::EUR("2025-07-16".to_string()), 4.2585f64);
- exchange_rates.insert(Exchange::USD("2018-07-18".to_string()), 3.7031f64);
- exchange_rates.insert(Exchange::USD("2014-02-10".to_string()), 3.0683f64);
- exchange_rates.insert(Exchange::EUR("2024-01-26".to_string()), 4.3802f64);
- exchange_rates.insert(Exchange::USD("2022-06-27".to_string()), 4.4369f64);
- exchange_rates.insert(Exchange::USD("2024-02-27".to_string()), 3.9682f64);
- exchange_rates.insert(Exchange::USD("2023-08-11".to_string()), 4.0501f64);
- exchange_rates.insert(Exchange::USD("2016-10-19".to_string()), 3.9285f64);
- exchange_rates.insert(Exchange::USD("2018-01-08".to_string()), 3.4735f64);
- exchange_rates.insert(Exchange::EUR("2024-06-03".to_string()), 4.2817f64);
- exchange_rates.insert(Exchange::USD("2022-09-26".to_string()), 4.9113f64);
- exchange_rates.insert(Exchange::USD("2020-06-17".to_string()), 3.9532f64);
- exchange_rates.insert(Exchange::USD("2014-07-11".to_string()), 3.0426f64);
- exchange_rates.insert(Exchange::USD("2012-03-19".to_string()), 3.1361f64);
- exchange_rates.insert(Exchange::USD("2019-06-11".to_string()), 3.7722f64);
- exchange_rates.insert(Exchange::USD("2024-03-26".to_string()), 3.9704f64);
- exchange_rates.insert(Exchange::USD("2024-01-09".to_string()), 3.9612f64);
- exchange_rates.insert(Exchange::USD("2015-04-15".to_string()), 3.7875f64);
- exchange_rates.insert(Exchange::USD("2013-02-04".to_string()), 3.0563f64);
- exchange_rates.insert(Exchange::USD("2023-04-14".to_string()), 4.2042f64);
- exchange_rates.insert(Exchange::USD("2015-08-13".to_string()), 3.7625f64);
- exchange_rates.insert(Exchange::EUR("2023-05-25".to_string()), 4.503f64);
- exchange_rates.insert(Exchange::USD("2023-02-07".to_string()), 4.4325f64);
- exchange_rates.insert(Exchange::USD("2013-12-16".to_string()), 3.035f64);
- exchange_rates.insert(Exchange::USD("2022-09-23".to_string()), 4.8796f64);
- exchange_rates.insert(Exchange::EUR("2023-07-19".to_string()), 4.4492f64);
- exchange_rates.insert(Exchange::USD("2017-07-26".to_string()), 3.6661f64);
- exchange_rates.insert(Exchange::USD("2015-12-18".to_string()), 3.9558f64);
- exchange_rates.insert(Exchange::EUR("2023-08-08".to_string()), 4.4375f64);
- exchange_rates.insert(Exchange::USD("2025-02-13".to_string()), 3.996f64);
- exchange_rates.insert(Exchange::USD("2021-06-28".to_string()), 3.7762f64);
- exchange_rates.insert(Exchange::EUR("2024-01-18".to_string()), 4.4016f64);
- exchange_rates.insert(Exchange::USD("2015-10-06".to_string()), 3.789f64);
- exchange_rates.insert(Exchange::USD("2013-01-15".to_string()), 3.075f64);
- exchange_rates.insert(Exchange::USD("2020-08-14".to_string()), 3.7227f64);
- exchange_rates.insert(Exchange::USD("2021-02-09".to_string()), 3.6972f64);
- exchange_rates.insert(Exchange::USD("2019-07-26".to_string()), 3.8296f64);
- exchange_rates.insert(Exchange::USD("2020-11-23".to_string()), 3.7616f64);
- exchange_rates.insert(Exchange::USD("2015-03-26".to_string()), 3.705f64);
- exchange_rates.insert(Exchange::USD("2012-11-05".to_string()), 3.2211f64);
- exchange_rates.insert(Exchange::EUR("2025-10-06".to_string()), 4.2521f64);
- exchange_rates.insert(Exchange::USD("2021-06-14".to_string()), 3.7185f64);
- exchange_rates.insert(Exchange::USD("2017-10-23".to_string()), 3.6061f64);
- exchange_rates.insert(Exchange::USD("2017-10-27".to_string()), 3.6568f64);
- exchange_rates.insert(Exchange::EUR("2024-03-15".to_string()), 4.2929f64);
- exchange_rates.insert(Exchange::USD("2015-06-29".to_string()), 3.7671f64);
- exchange_rates.insert(Exchange::EUR("2025-10-30".to_string()), 4.2425f64);
- exchange_rates.insert(Exchange::USD("2018-09-13".to_string()), 3.713f64);
- exchange_rates.insert(Exchange::EUR("2025-09-25".to_string()), 4.2619f64);
- exchange_rates.insert(Exchange::EUR("2024-07-12".to_string()), 4.2567f64);
- exchange_rates.insert(Exchange::USD("2018-08-30".to_string()), 3.6724f64);
- exchange_rates.insert(Exchange::USD("2018-03-27".to_string()), 3.3921f64);
- exchange_rates.insert(Exchange::USD("2021-04-21".to_string()), 3.795f64);
- exchange_rates.insert(Exchange::USD("2016-04-26".to_string()), 3.8935f64);
- exchange_rates.insert(Exchange::USD("2024-10-21".to_string()), 3.9775f64);
- exchange_rates.insert(Exchange::USD("2014-06-24".to_string()), 3.0526f64);
- exchange_rates.insert(Exchange::USD("2013-08-30".to_string()), 3.2209f64);
- exchange_rates.insert(Exchange::EUR("2024-08-13".to_string()), 4.2945f64);
- exchange_rates.insert(Exchange::EUR("2023-02-01".to_string()), 4.708f64);
- exchange_rates.insert(Exchange::EUR("2024-01-29".to_string()), 4.3653f64);
- exchange_rates.insert(Exchange::EUR("2023-09-27".to_string()), 4.6065f64);
- exchange_rates.insert(Exchange::USD("2022-10-13".to_string()), 4.9905f64);
- exchange_rates.insert(Exchange::EUR("2025-01-29".to_string()), 4.2077f64);
- exchange_rates.insert(Exchange::EUR("2023-07-21".to_string()), 4.4501f64);
- exchange_rates.insert(Exchange::EUR("2025-09-26".to_string()), 4.2668f64);
- exchange_rates.insert(Exchange::USD("2018-04-16".to_string()), 3.3666f64);
- exchange_rates.insert(Exchange::USD("2014-12-04".to_string()), 3.3728f64);
- exchange_rates.insert(Exchange::USD("2025-01-23".to_string()), 4.0515f64);
- exchange_rates.insert(Exchange::USD("2024-08-12".to_string()), 3.9488f64);
- exchange_rates.insert(Exchange::USD("2023-01-31".to_string()), 4.348f64);
- exchange_rates.insert(Exchange::USD("2019-04-25".to_string()), 3.8537f64);
- exchange_rates.insert(Exchange::USD("2014-07-25".to_string()), 3.0831f64);
- exchange_rates.insert(Exchange::USD("2014-08-20".to_string()), 3.147f64);
- exchange_rates.insert(Exchange::USD("2025-06-27".to_string()), 3.6177f64);
- exchange_rates.insert(Exchange::USD("2012-10-23".to_string()), 3.1662f64);
- exchange_rates.insert(Exchange::EUR("2023-07-11".to_string()), 4.4426f64);
- exchange_rates.insert(Exchange::USD("2014-07-29".to_string()), 3.09f64);
- exchange_rates.insert(Exchange::USD("2015-01-15".to_string()), 3.6588f64);
- exchange_rates.insert(Exchange::USD("2019-05-16".to_string()), 3.8259f64);
- exchange_rates.insert(Exchange::USD("2021-03-05".to_string()), 3.8393f64);
- exchange_rates.insert(Exchange::USD("2013-12-04".to_string()), 3.0916f64);
- exchange_rates.insert(Exchange::USD("2021-02-11".to_string()), 3.7117f64);
- exchange_rates.insert(Exchange::USD("2025-10-24".to_string()), 3.6481f64);
- exchange_rates.insert(Exchange::USD("2020-10-20".to_string()), 3.8926f64);
- exchange_rates.insert(Exchange::USD("2013-08-28".to_string()), 3.184f64);
- exchange_rates.insert(Exchange::USD("2021-11-22".to_string()), 4.1855f64);
- exchange_rates.insert(Exchange::USD("2012-06-13".to_string()), 3.4591f64);
- exchange_rates.insert(Exchange::USD("2025-01-07".to_string()), 4.077f64);
- exchange_rates.insert(Exchange::USD("2014-01-13".to_string()), 3.045f64);
- exchange_rates.insert(Exchange::USD("2025-12-23".to_string()), 3.5848f64);
- exchange_rates.insert(Exchange::USD("2014-07-18".to_string()), 3.0652f64);
- exchange_rates.insert(Exchange::EUR("2024-02-27".to_string()), 4.3067f64);
- exchange_rates.insert(Exchange::USD("2019-11-15".to_string()), 3.8848f64);
- exchange_rates.insert(Exchange::USD("2019-03-29".to_string()), 3.8365f64);
- exchange_rates.insert(Exchange::USD("2021-09-01".to_string()), 3.8238f64);
- exchange_rates.insert(Exchange::USD("2014-05-27".to_string()), 3.0532f64);
- exchange_rates.insert(Exchange::USD("2014-06-02".to_string()), 3.0413f64);
- exchange_rates.insert(Exchange::USD("2012-07-26".to_string()), 3.4523f64);
- exchange_rates.insert(Exchange::USD("2016-09-20".to_string()), 3.8438f64);
- exchange_rates.insert(Exchange::EUR("2023-11-21".to_string()), 4.3647f64);
- exchange_rates.insert(Exchange::USD("2017-03-29".to_string()), 3.9265f64);
- exchange_rates.insert(Exchange::EUR("2025-06-24".to_string()), 4.2604f64);
- exchange_rates.insert(Exchange::USD("2020-02-17".to_string()), 3.9189f64);
- exchange_rates.insert(Exchange::USD("2023-07-06".to_string()), 4.1191f64);
- exchange_rates.insert(Exchange::USD("2016-09-14".to_string()), 3.8716f64);
- exchange_rates.insert(Exchange::USD("2023-02-20".to_string()), 4.4515f64);
- exchange_rates.insert(Exchange::USD("2017-03-30".to_string()), 3.9402f64);
- exchange_rates.insert(Exchange::USD("2020-09-18".to_string()), 3.7585f64);
- exchange_rates.insert(Exchange::USD("2024-05-23".to_string()), 3.9394f64);
- exchange_rates.insert(Exchange::USD("2021-08-04".to_string()), 3.8366f64);
- exchange_rates.insert(Exchange::EUR("2023-08-01".to_string()), 4.419f64);
- exchange_rates.insert(Exchange::EUR("2023-07-18".to_string()), 4.4331f64);
- exchange_rates.insert(Exchange::USD("2016-11-03".to_string()), 3.8965f64);
- exchange_rates.insert(Exchange::USD("2015-04-27".to_string()), 3.7115f64);
- exchange_rates.insert(Exchange::USD("2012-04-23".to_string()), 3.1972f64);
- exchange_rates.insert(Exchange::USD("2022-12-06".to_string()), 4.4787f64);
- exchange_rates.insert(Exchange::USD("2012-06-06".to_string()), 3.4703f64);
- exchange_rates.insert(Exchange::USD("2015-09-09".to_string()), 3.7634f64);
- exchange_rates.insert(Exchange::USD("2013-04-29".to_string()), 3.1712f64);
- exchange_rates.insert(Exchange::USD("2021-06-21".to_string()), 3.8214f64);
- exchange_rates.insert(Exchange::USD("2012-03-16".to_string()), 3.1688f64);
- exchange_rates.insert(Exchange::USD("2023-06-05".to_string()), 4.1933f64);
- exchange_rates.insert(Exchange::EUR("2025-11-03".to_string()), 4.2527f64);
- exchange_rates.insert(Exchange::USD("2021-08-20".to_string()), 3.9301f64);
- exchange_rates.insert(Exchange::EUR("2025-11-21".to_string()), 4.2489f64);
- exchange_rates.insert(Exchange::USD("2016-10-03".to_string()), 3.8252f64);
- exchange_rates.insert(Exchange::USD("2022-07-05".to_string()), 4.5947f64);
- exchange_rates.insert(Exchange::USD("2013-04-08".to_string()), 3.1893f64);
- exchange_rates.insert(Exchange::USD("2022-05-10".to_string()), 4.4223f64);
- exchange_rates.insert(Exchange::USD("2016-12-12".to_string()), 4.209f64);
- exchange_rates.insert(Exchange::USD("2014-03-11".to_string()), 3.0449f64);
- exchange_rates.insert(Exchange::USD("2019-10-23".to_string()), 3.8473f64);
- exchange_rates.insert(Exchange::USD("2025-09-03".to_string()), 3.6538f64);
- exchange_rates.insert(Exchange::USD("2021-12-02".to_string()), 4.0625f64);
- exchange_rates.insert(Exchange::USD("2019-05-10".to_string()), 3.8242f64);
- exchange_rates.insert(Exchange::USD("2023-06-20".to_string()), 4.058f64);
- exchange_rates.insert(Exchange::USD("2021-06-16".to_string()), 3.7336f64);
- exchange_rates.insert(Exchange::USD("2018-02-07".to_string()), 3.3677f64);
- exchange_rates.insert(Exchange::EUR("2025-10-13".to_string()), 4.2592f64);
- exchange_rates.insert(Exchange::USD("2014-10-10".to_string()), 3.2985f64);
- exchange_rates.insert(Exchange::USD("2024-02-15".to_string()), 4.0495f64);
- exchange_rates.insert(Exchange::EUR("2023-09-13".to_string()), 4.6402f64);
- exchange_rates.insert(Exchange::USD("2022-03-22".to_string()), 4.272f64);
- exchange_rates.insert(Exchange::EUR("2025-10-15".to_string()), 4.2556f64);
- exchange_rates.insert(Exchange::EUR("2025-11-13".to_string()), 4.2304f64);
- exchange_rates.insert(Exchange::USD("2019-08-09".to_string()), 3.8613f64);
- exchange_rates.insert(Exchange::USD("2014-02-25".to_string()), 3.0264f64);
- exchange_rates.insert(Exchange::USD("2022-05-18".to_string()), 4.4279f64);
- exchange_rates.insert(Exchange::USD("2022-06-24".to_string()), 4.4656f64);
- exchange_rates.insert(Exchange::EUR("2024-02-20".to_string()), 4.3186f64);
- exchange_rates.insert(Exchange::EUR("2025-01-15".to_string()), 4.2611f64);
- exchange_rates.insert(Exchange::USD("2021-09-06".to_string()), 3.8041f64);
- exchange_rates.insert(Exchange::USD("2022-12-29".to_string()), 4.4078f64);
- exchange_rates.insert(Exchange::USD("2017-09-20".to_string()), 3.5619f64);
- exchange_rates.insert(Exchange::USD("2014-01-08".to_string()), 3.0717f64);
- exchange_rates.insert(Exchange::USD("2024-09-16".to_string()), 3.8438f64);
- exchange_rates.insert(Exchange::USD("2012-02-21".to_string()), 3.1488f64);
- exchange_rates.insert(Exchange::USD("2016-07-20".to_string()), 3.979f64);
- exchange_rates.insert(Exchange::USD("2016-08-30".to_string()), 3.8858f64);
- exchange_rates.insert(Exchange::USD("2012-07-27".to_string()), 3.3843f64);
- exchange_rates.insert(Exchange::USD("2017-10-05".to_string()), 3.6502f64);
- exchange_rates.insert(Exchange::EUR("2025-08-05".to_string()), 4.2763f64);
- exchange_rates.insert(Exchange::USD("2024-12-10".to_string()), 4.0518f64);
- exchange_rates.insert(Exchange::EUR("2024-01-23".to_string()), 4.3697f64);
- exchange_rates.insert(Exchange::USD("2017-08-10".to_string()), 3.6432f64);
- exchange_rates.insert(Exchange::USD("2023-10-20".to_string()), 4.2194f64);
- exchange_rates.insert(Exchange::USD("2012-07-09".to_string()), 3.4538f64);
- exchange_rates.insert(Exchange::EUR("2023-04-04".to_string()), 4.6785f64);
- exchange_rates.insert(Exchange::USD("2021-07-30".to_string()), 3.841f64);
- exchange_rates.insert(Exchange::USD("2018-02-05".to_string()), 3.3375f64);
- exchange_rates.insert(Exchange::USD("2016-12-28".to_string()), 4.226f64);
- exchange_rates.insert(Exchange::USD("2014-06-20".to_string()), 3.0495f64);
- exchange_rates.insert(Exchange::USD("2020-09-24".to_string()), 3.8833f64);
- exchange_rates.insert(Exchange::USD("2022-05-26".to_string()), 4.3189f64);
- exchange_rates.insert(Exchange::EUR("2023-07-12".to_string()), 4.4471f64);
- exchange_rates.insert(Exchange::USD("2019-10-24".to_string()), 3.8448f64);
- exchange_rates.insert(Exchange::USD("2015-09-29".to_string()), 3.7799f64);
- exchange_rates.insert(Exchange::USD("2022-08-24".to_string()), 4.8029f64);
- exchange_rates.insert(Exchange::USD("2012-10-31".to_string()), 3.1806f64);
- exchange_rates.insert(Exchange::USD("2013-08-13".to_string()), 3.1489f64);
- exchange_rates.insert(Exchange::USD("2021-02-08".to_string()), 3.7301f64);
- exchange_rates.insert(Exchange::USD("2022-07-13".to_string()), 4.8221f64);
- exchange_rates.insert(Exchange::USD("2023-03-20".to_string()), 4.413f64);
- exchange_rates.insert(Exchange::USD("2013-08-21".to_string()), 3.1698f64);
- exchange_rates.insert(Exchange::USD("2024-08-09".to_string()), 3.9604f64);
- exchange_rates.insert(Exchange::USD("2012-05-15".to_string()), 3.3579f64);
- exchange_rates.insert(Exchange::USD("2019-12-18".to_string()), 3.8302f64);
- exchange_rates.insert(Exchange::USD("2025-09-02".to_string()), 3.6626f64);
- exchange_rates.insert(Exchange::USD("2021-06-10".to_string()), 3.6821f64);
- exchange_rates.insert(Exchange::USD("2021-11-29".to_string()), 4.1627f64);
- exchange_rates.insert(Exchange::USD("2024-09-09".to_string()), 3.8758f64);
- exchange_rates.insert(Exchange::EUR("2023-06-19".to_string()), 4.4457f64);
- exchange_rates.insert(Exchange::USD("2020-11-30".to_string()), 3.7364f64);
- exchange_rates.insert(Exchange::USD("2021-01-08".to_string()), 3.6919f64);
- exchange_rates.insert(Exchange::USD("2013-03-04".to_string()), 3.1837f64);
- exchange_rates.insert(Exchange::USD("2012-12-07".to_string()), 3.193f64);
- exchange_rates.insert(Exchange::USD("2023-06-02".to_string()), 4.1903f64);
- exchange_rates.insert(Exchange::USD("2022-04-25".to_string()), 4.3188f64);
- exchange_rates.insert(Exchange::USD("2013-10-17".to_string()), 3.0625f64);
- exchange_rates.insert(Exchange::EUR("2024-01-30".to_string()), 4.3634f64);
- exchange_rates.insert(Exchange::USD("2025-04-11".to_string()), 3.7606f64);
- exchange_rates.insert(Exchange::USD("2024-06-24".to_string()), 4.0319f64);
- exchange_rates.insert(Exchange::USD("2017-03-15".to_string()), 4.0646f64);
- exchange_rates.insert(Exchange::USD("2014-07-28".to_string()), 3.086f64);
- exchange_rates.insert(Exchange::USD("2013-07-19".to_string()), 3.2348f64);
- exchange_rates.insert(Exchange::USD("2020-02-24".to_string()), 3.9772f64);
- exchange_rates.insert(Exchange::USD("2016-05-31".to_string()), 3.9369f64);
- exchange_rates.insert(Exchange::EUR("2024-12-10".to_string()), 4.2672f64);
- exchange_rates.insert(Exchange::USD("2016-09-23".to_string()), 3.8328f64);
- exchange_rates.insert(Exchange::USD("2021-08-02".to_string()), 3.8377f64);
- exchange_rates.insert(Exchange::EUR("2025-04-09".to_string()), 4.2818f64);
- exchange_rates.insert(Exchange::USD("2022-04-11".to_string()), 4.2586f64);
- exchange_rates.insert(Exchange::USD("2021-12-16".to_string()), 4.0938f64);
- exchange_rates.insert(Exchange::USD("2022-04-06".to_string()), 4.2606f64);
- exchange_rates.insert(Exchange::USD("2013-08-05".to_string()), 3.1771f64);
- exchange_rates.insert(Exchange::USD("2015-05-25".to_string()), 3.75f64);
- exchange_rates.insert(Exchange::USD("2015-04-24".to_string()), 3.6895f64);
- exchange_rates.insert(Exchange::EUR("2024-11-21".to_string()), 4.3469f64);
- exchange_rates.insert(Exchange::USD("2023-04-18".to_string()), 4.2151f64);
- exchange_rates.insert(Exchange::EUR("2024-08-06".to_string()), 4.313f64);
- exchange_rates.insert(Exchange::USD("2022-01-20".to_string()), 3.9833f64);
- exchange_rates.insert(Exchange::USD("2022-04-15".to_string()), 4.2865f64);
- exchange_rates.insert(Exchange::USD("2018-06-05".to_string()), 3.6569f64);
- exchange_rates.insert(Exchange::USD("2015-05-13".to_string()), 3.63f64);
- exchange_rates.insert(Exchange::USD("2017-03-01".to_string()), 4.0756f64);
- exchange_rates.insert(Exchange::USD("2016-02-03".to_string()), 4.0325f64);
- exchange_rates.insert(Exchange::EUR("2023-02-09".to_string()), 4.7363f64);
- exchange_rates.insert(Exchange::USD("2019-01-21".to_string()), 3.7751f64);
- exchange_rates.insert(Exchange::USD("2012-05-04".to_string()), 3.1891f64);
- exchange_rates.insert(Exchange::EUR("2025-12-02".to_string()), 4.239f64);
- exchange_rates.insert(Exchange::USD("2021-07-08".to_string()), 3.8408f64);
- exchange_rates.insert(Exchange::USD("2013-08-08".to_string()), 3.1503f64);
- exchange_rates.insert(Exchange::USD("2019-01-24".to_string()), 3.7844f64);
- exchange_rates.insert(Exchange::USD("2013-04-24".to_string()), 3.1823f64);
- exchange_rates.insert(Exchange::USD("2018-12-21".to_string()), 3.7528f64);
- exchange_rates.insert(Exchange::EUR("2023-02-22".to_string()), 4.7538f64);
- exchange_rates.insert(Exchange::USD("2012-09-20".to_string()), 3.2092f64);
- exchange_rates.insert(Exchange::USD("2013-02-21".to_string()), 3.1633f64);
- exchange_rates.insert(Exchange::USD("2014-04-10".to_string()), 3.0092f64);
- exchange_rates.insert(Exchange::USD("2012-05-07".to_string()), 3.2279f64);
- exchange_rates.insert(Exchange::USD("2012-09-11".to_string()), 3.2098f64);
- exchange_rates.insert(Exchange::USD("2018-10-01".to_string()), 3.6867f64);
- exchange_rates.insert(Exchange::USD("2017-12-06".to_string()), 3.5653f64);
- exchange_rates.insert(Exchange::USD("2023-11-13".to_string()), 4.1474f64);
- exchange_rates.insert(Exchange::USD("2024-01-16".to_string()), 4.0358f64);
- exchange_rates.insert(Exchange::USD("2013-01-31".to_string()), 3.0874f64);
- exchange_rates.insert(Exchange::USD("2015-12-07".to_string()), 3.9853f64);
- exchange_rates.insert(Exchange::USD("2020-11-09".to_string()), 3.7787f64);
- exchange_rates.insert(Exchange::USD("2017-11-13".to_string()), 3.6382f64);
- exchange_rates.insert(Exchange::USD("2013-04-09".to_string()), 3.1696f64);
- exchange_rates.insert(Exchange::USD("2016-02-25".to_string()), 3.9705f64);
- exchange_rates.insert(Exchange::USD("2018-09-14".to_string()), 3.6817f64);
- exchange_rates.insert(Exchange::USD("2013-12-19".to_string()), 3.049f64);
- exchange_rates.insert(Exchange::USD("2018-01-03".to_string()), 3.4616f64);
- exchange_rates.insert(Exchange::USD("2023-01-25".to_string()), 4.3265f64);
- exchange_rates.insert(Exchange::USD("2021-09-14".to_string()), 3.8542f64);
- exchange_rates.insert(Exchange::USD("2024-09-06".to_string()), 3.8489f64);
- exchange_rates.insert(Exchange::USD("2014-03-20".to_string()), 3.05f64);
- exchange_rates.insert(Exchange::USD("2022-01-24".to_string()), 4.0049f64);
- exchange_rates.insert(Exchange::USD("2017-10-20".to_string()), 3.5966f64);
- exchange_rates.insert(Exchange::USD("2013-03-26".to_string()), 3.2427f64);
- exchange_rates.insert(Exchange::USD("2025-02-05".to_string()), 4.0426f64);
- exchange_rates.insert(Exchange::USD("2018-11-30".to_string()), 3.7731f64);
- exchange_rates.insert(Exchange::USD("2025-04-23".to_string()), 3.7583f64);
- exchange_rates.insert(Exchange::USD("2024-05-10".to_string()), 3.9866f64);
- exchange_rates.insert(Exchange::USD("2016-05-05".to_string()), 3.8475f64);
- exchange_rates.insert(Exchange::USD("2024-05-06".to_string()), 4.0202f64);
- exchange_rates.insert(Exchange::EUR("2025-11-07".to_string()), 4.2483f64);
- exchange_rates.insert(Exchange::USD("2013-04-23".to_string()), 3.1811f64);
- exchange_rates.insert(Exchange::USD("2018-02-23".to_string()), 3.3911f64);
- exchange_rates.insert(Exchange::USD("2024-06-18".to_string()), 4.0549f64);
- exchange_rates.insert(Exchange::USD("2015-12-21".to_string()), 3.92f64);
- exchange_rates.insert(Exchange::EUR("2024-04-19".to_string()), 4.3316f64);
- exchange_rates.insert(Exchange::USD("2023-05-05".to_string()), 4.1612f64);
- exchange_rates.insert(Exchange::USD("2016-03-22".to_string()), 3.8005f64);
- exchange_rates.insert(Exchange::USD("2013-04-25".to_string()), 3.1792f64);
- exchange_rates.insert(Exchange::USD("2019-09-10".to_string()), 3.9273f64);
- exchange_rates.insert(Exchange::USD("2022-01-26".to_string()), 4.0684f64);
- exchange_rates.insert(Exchange::USD("2021-09-09".to_string()), 3.8292f64);
- exchange_rates.insert(Exchange::USD("2021-11-05".to_string()), 3.9911f64);
- exchange_rates.insert(Exchange::USD("2018-01-29".to_string()), 3.3375f64);
- exchange_rates.insert(Exchange::USD("2017-07-18".to_string()), 3.6469f64);
- exchange_rates.insert(Exchange::USD("2016-02-16".to_string()), 3.9404f64);
- exchange_rates.insert(Exchange::USD("2024-07-11".to_string()), 3.9257f64);
- exchange_rates.insert(Exchange::USD("2018-12-19".to_string()), 3.7619f64);
- exchange_rates.insert(Exchange::USD("2014-04-18".to_string()), 3.0265f64);
- exchange_rates.insert(Exchange::USD("2012-08-29".to_string()), 3.3081f64);
- exchange_rates.insert(Exchange::USD("2024-05-08".to_string()), 4.0202f64);
- exchange_rates.insert(Exchange::USD("2017-02-14".to_string()), 4.0525f64);
- exchange_rates.insert(Exchange::USD("2019-06-13".to_string()), 3.7736f64);
- exchange_rates.insert(Exchange::EUR("2024-08-08".to_string()), 4.3225f64);
- exchange_rates.insert(Exchange::USD("2013-06-18".to_string()), 3.1682f64);
- exchange_rates.insert(Exchange::USD("2013-05-21".to_string()), 3.249f64);
- exchange_rates.insert(Exchange::USD("2022-02-09".to_string()), 3.953f64);
- exchange_rates.insert(Exchange::USD("2015-03-18".to_string()), 3.9073f64);
- exchange_rates.insert(Exchange::USD("2016-03-02".to_string()), 3.9861f64);
- exchange_rates.insert(Exchange::USD("2016-01-18".to_string()), 4.1133f64);
- exchange_rates.insert(Exchange::USD("2019-06-10".to_string()), 3.7745f64);
- exchange_rates.insert(Exchange::USD("2015-04-10".to_string()), 3.7894f64);
- exchange_rates.insert(Exchange::USD("2015-07-20".to_string()), 3.7868f64);
- exchange_rates.insert(Exchange::USD("2019-05-31".to_string()), 3.8498f64);
- exchange_rates.insert(Exchange::USD("2014-08-06".to_string()), 3.1377f64);
- exchange_rates.insert(Exchange::EUR("2025-06-11".to_string()), 4.2643f64);
- exchange_rates.insert(Exchange::USD("2024-09-11".to_string()), 3.8816f64);
- exchange_rates.insert(Exchange::EUR("2024-11-22".to_string()), 4.343f64);
- exchange_rates.insert(Exchange::EUR("2025-09-01".to_string()), 4.2574f64);
- exchange_rates.insert(Exchange::USD("2020-10-16".to_string()), 3.8976f64);
- exchange_rates.insert(Exchange::USD("2024-02-12".to_string()), 4.0189f64);
- exchange_rates.insert(Exchange::USD("2024-01-22".to_string()), 3.9972f64);
- exchange_rates.insert(Exchange::USD("2025-02-03".to_string()), 4.1352f64);
- exchange_rates.insert(Exchange::USD("2015-08-18".to_string()), 3.7578f64);
- exchange_rates.insert(Exchange::USD("2023-01-19".to_string()), 4.3469f64);
- exchange_rates.insert(Exchange::USD("2023-10-06".to_string()), 4.3608f64);
- exchange_rates.insert(Exchange::USD("2018-08-09".to_string()), 3.6846f64);
- exchange_rates.insert(Exchange::USD("2016-09-05".to_string()), 3.8937f64);
- exchange_rates.insert(Exchange::USD("2017-06-16".to_string()), 3.7749f64);
- exchange_rates.insert(Exchange::EUR("2023-12-27".to_string()), 4.3311f64);
- exchange_rates.insert(Exchange::USD("2022-07-04".to_string()), 4.5032f64);
- exchange_rates.insert(Exchange::USD("2024-07-29".to_string()), 3.9556f64);
- exchange_rates.insert(Exchange::EUR("2024-03-21".to_string()), 4.3031f64);
- exchange_rates.insert(Exchange::USD("2024-07-25".to_string()), 3.9619f64);
- exchange_rates.insert(Exchange::USD("2014-07-31".to_string()), 3.1094f64);
- exchange_rates.insert(Exchange::USD("2012-07-23".to_string()), 3.4529f64);
- exchange_rates.insert(Exchange::USD("2017-08-11".to_string()), 3.6449f64);
- exchange_rates.insert(Exchange::USD("2017-10-30".to_string()), 3.643f64);
- exchange_rates.insert(Exchange::USD("2025-01-22".to_string()), 4.0646f64);
- exchange_rates.insert(Exchange::USD("2019-09-17".to_string()), 3.9412f64);
- exchange_rates.insert(Exchange::USD("2012-07-03".to_string()), 3.3427f64);
- exchange_rates.insert(Exchange::USD("2015-02-18".to_string()), 3.6784f64);
- exchange_rates.insert(Exchange::USD("2013-12-09".to_string()), 3.0534f64);
- exchange_rates.insert(Exchange::EUR("2024-01-16".to_string()), 4.3934f64);
- exchange_rates.insert(Exchange::USD("2013-08-07".to_string()), 3.1725f64);
- exchange_rates.insert(Exchange::USD("2014-03-12".to_string()), 3.0508f64);
- exchange_rates.insert(Exchange::EUR("2024-07-22".to_string()), 4.2797f64);
- exchange_rates.insert(Exchange::EUR("2025-01-23".to_string()), 4.2182f64);
- exchange_rates.insert(Exchange::USD("2019-02-15".to_string()), 3.8326f64);
- exchange_rates.insert(Exchange::USD("2018-09-17".to_string()), 3.6876f64);
- exchange_rates.insert(Exchange::USD("2021-11-12".to_string()), 4.0559f64);
- exchange_rates.insert(Exchange::USD("2018-10-04".to_string()), 3.7512f64);
- exchange_rates.insert(Exchange::EUR("2023-07-25".to_string()), 4.4348f64);
- exchange_rates.insert(Exchange::USD("2022-03-25".to_string()), 4.3125f64);
- exchange_rates.insert(Exchange::USD("2019-07-05".to_string()), 3.7689f64);
- exchange_rates.insert(Exchange::USD("2016-04-11".to_string()), 3.7587f64);
- exchange_rates.insert(Exchange::EUR("2025-07-07".to_string()), 4.2524f64);
- exchange_rates.insert(Exchange::USD("2024-12-23".to_string()), 4.095f64);
- exchange_rates.insert(Exchange::USD("2023-05-24".to_string()), 4.1573f64);
- exchange_rates.insert(Exchange::EUR("2023-01-20".to_string()), 4.7137f64);
- exchange_rates.insert(Exchange::USD("2018-07-11".to_string()), 3.7f64);
- exchange_rates.insert(Exchange::USD("2018-08-28".to_string()), 3.6548f64);
- exchange_rates.insert(Exchange::EUR("2023-01-11".to_string()), 4.6871f64);
- exchange_rates.insert(Exchange::USD("2019-12-06".to_string()), 3.85f64);
- exchange_rates.insert(Exchange::USD("2012-05-09".to_string()), 3.2412f64);
- exchange_rates.insert(Exchange::USD("2015-02-09".to_string()), 3.6811f64);
- exchange_rates.insert(Exchange::USD("2020-12-04".to_string()), 3.6765f64);
- exchange_rates.insert(Exchange::EUR("2023-01-16".to_string()), 4.7004f64);
- exchange_rates.insert(Exchange::USD("2021-01-20".to_string()), 3.7303f64);
- exchange_rates.insert(Exchange::USD("2022-09-09".to_string()), 4.6599f64);
- exchange_rates.insert(Exchange::USD("2013-01-29".to_string()), 3.1229f64);
- exchange_rates.insert(Exchange::USD("2021-04-15".to_string()), 3.8014f64);
- exchange_rates.insert(Exchange::USD("2013-10-10".to_string()), 3.0994f64);
- exchange_rates.insert(Exchange::USD("2024-10-14".to_string()), 3.9288f64);
- exchange_rates.insert(Exchange::USD("2021-05-06".to_string()), 3.8066f64);
- exchange_rates.insert(Exchange::USD("2012-05-31".to_string()), 3.5372f64);
- exchange_rates.insert(Exchange::USD("2022-11-18".to_string()), 4.5337f64);
- exchange_rates.insert(Exchange::EUR("2023-07-31".to_string()), 4.4135f64);
- exchange_rates.insert(Exchange::USD("2015-09-18".to_string()), 3.6738f64);
- exchange_rates.insert(Exchange::USD("2012-05-23".to_string()), 3.446f64);
- exchange_rates.insert(Exchange::USD("2020-08-21".to_string()), 3.7164f64);
- exchange_rates.insert(Exchange::USD("2018-10-17".to_string()), 3.7123f64);
- exchange_rates.insert(Exchange::EUR("2025-06-25".to_string()), 4.2479f64);
- exchange_rates.insert(Exchange::USD("2025-12-09".to_string()), 3.6336f64);
- exchange_rates.insert(Exchange::USD("2016-12-13".to_string()), 4.1905f64);
- exchange_rates.insert(Exchange::USD("2017-08-01".to_string()), 3.5991f64);
- exchange_rates.insert(Exchange::USD("2017-06-26".to_string()), 3.7653f64);
- exchange_rates.insert(Exchange::EUR("2025-03-11".to_string()), 4.1977f64);
- exchange_rates.insert(Exchange::USD("2014-05-29".to_string()), 3.0395f64);
- exchange_rates.insert(Exchange::USD("2018-02-01".to_string()), 3.3346f64);
- exchange_rates.insert(Exchange::USD("2012-06-05".to_string()), 3.5359f64);
- exchange_rates.insert(Exchange::USD("2015-09-24".to_string()), 3.7687f64);
- exchange_rates.insert(Exchange::USD("2016-01-15".to_string()), 4.0411f64);
- exchange_rates.insert(Exchange::USD("2019-05-30".to_string()), 3.8548f64);
- exchange_rates.insert(Exchange::USD("2021-02-03".to_string()), 3.7352f64);
- exchange_rates.insert(Exchange::USD("2024-06-12".to_string()), 4.0342f64);
- exchange_rates.insert(Exchange::USD("2017-07-07".to_string()), 3.7068f64);
- exchange_rates.insert(Exchange::EUR("2023-03-15".to_string()), 4.7015f64);
- exchange_rates.insert(Exchange::USD("2019-03-01".to_string()), 3.792f64);
- exchange_rates.insert(Exchange::USD("2023-07-24".to_string()), 4.021f64);
- exchange_rates.insert(Exchange::USD("2022-05-06".to_string()), 4.4502f64);
- exchange_rates.insert(Exchange::USD("2014-01-29".to_string()), 3.0829f64);
- exchange_rates.insert(Exchange::USD("2012-11-28".to_string()), 3.1799f64);
- exchange_rates.insert(Exchange::EUR("2025-12-12".to_string()), 4.2271f64);
- exchange_rates.insert(Exchange::EUR("2025-11-26".to_string()), 4.233f64);
- exchange_rates.insert(Exchange::USD("2014-02-07".to_string()), 3.0857f64);
- exchange_rates.insert(Exchange::EUR("2025-01-17".to_string()), 4.2691f64);
- exchange_rates.insert(Exchange::EUR("2023-06-01".to_string()), 4.5312f64);
- exchange_rates.insert(Exchange::USD("2019-04-24".to_string()), 3.8229f64);
- exchange_rates.insert(Exchange::USD("2015-02-12".to_string()), 3.6926f64);
- exchange_rates.insert(Exchange::EUR("2024-09-13".to_string()), 4.2883f64);
- exchange_rates.insert(Exchange::USD("2020-05-05".to_string()), 4.1927f64);
- exchange_rates.insert(Exchange::USD("2016-12-05".to_string()), 4.2213f64);
- exchange_rates.insert(Exchange::USD("2019-12-11".to_string()), 3.866f64);
- exchange_rates.insert(Exchange::EUR("2023-01-09".to_string()), 4.697f64);
- exchange_rates.insert(Exchange::USD("2021-04-26".to_string()), 3.7657f64);
- exchange_rates.insert(Exchange::USD("2025-12-30".to_string()), 3.5936f64);
- exchange_rates.insert(Exchange::USD("2020-10-23".to_string()), 3.8665f64);
- exchange_rates.insert(Exchange::USD("2018-09-26".to_string()), 3.643f64);
- exchange_rates.insert(Exchange::EUR("2025-07-21".to_string()), 4.2445f64);
- exchange_rates.insert(Exchange::USD("2022-10-17".to_string()), 4.9522f64);
- exchange_rates.insert(Exchange::USD("2025-08-20".to_string()), 3.654f64);
- exchange_rates.insert(Exchange::EUR("2024-06-04".to_string()), 4.2923f64);
- exchange_rates.insert(Exchange::USD("2016-03-01".to_string()), 3.9924f64);
- exchange_rates.insert(Exchange::USD("2023-01-02".to_string()), 4.3811f64);
- exchange_rates.insert(Exchange::USD("2020-03-13".to_string()), 3.9067f64);
- exchange_rates.insert(Exchange::USD("2018-05-09".to_string()), 3.609f64);
- exchange_rates.insert(Exchange::USD("2015-06-01".to_string()), 3.785f64);
- exchange_rates.insert(Exchange::USD("2019-08-22".to_string()), 3.9337f64);
- exchange_rates.insert(Exchange::USD("2013-05-02".to_string()), 3.1492f64);
- exchange_rates.insert(Exchange::USD("2024-06-14".to_string()), 4.076f64);
- exchange_rates.insert(Exchange::EUR("2023-01-26".to_string()), 4.7239f64);
- exchange_rates.insert(Exchange::USD("2020-12-11".to_string()), 3.663f64);
- exchange_rates.insert(Exchange::USD("2019-01-02".to_string()), 3.7619f64);
- exchange_rates.insert(Exchange::USD("2018-10-03".to_string()), 3.7103f64);
- exchange_rates.insert(Exchange::USD("2020-05-12".to_string()), 4.2095f64);
- exchange_rates.insert(Exchange::USD("2020-12-30".to_string()), 3.6901f64);
- exchange_rates.insert(Exchange::USD("2025-12-19".to_string()), 3.5941f64);
- exchange_rates.insert(Exchange::USD("2023-10-05".to_string()), 4.3768f64);
- exchange_rates.insert(Exchange::USD("2025-10-07".to_string()), 3.6481f64);
- exchange_rates.insert(Exchange::USD("2013-04-18".to_string()), 3.1529f64);
- exchange_rates.insert(Exchange::USD("2012-12-24".to_string()), 3.08f64);
- exchange_rates.insert(Exchange::USD("2018-05-23".to_string()), 3.6693f64);
- exchange_rates.insert(Exchange::EUR("2024-10-02".to_string()), 4.2952f64);
- exchange_rates.insert(Exchange::USD("2025-12-10".to_string()), 3.6329f64);
- exchange_rates.insert(Exchange::EUR("2025-08-12".to_string()), 4.2626f64);
- exchange_rates.insert(Exchange::USD("2013-05-31".to_string()), 3.2953f64);
- exchange_rates.insert(Exchange::USD("2024-12-24".to_string()), 4.1127f64);
- exchange_rates.insert(Exchange::USD("2022-08-04".to_string()), 4.634f64);
- exchange_rates.insert(Exchange::USD("2019-01-22".to_string()), 3.7727f64);
- exchange_rates.insert(Exchange::USD("2021-09-28".to_string()), 3.9546f64);
- exchange_rates.insert(Exchange::USD("2014-09-23".to_string()), 3.243f64);
- exchange_rates.insert(Exchange::USD("2016-04-19".to_string()), 3.7925f64);
- exchange_rates.insert(Exchange::USD("2019-10-07".to_string()), 3.9498f64);
- exchange_rates.insert(Exchange::USD("2024-07-05".to_string()), 3.9581f64);
- exchange_rates.insert(Exchange::USD("2015-09-16".to_string()), 3.7315f64);
- exchange_rates.insert(Exchange::USD("2025-06-05".to_string()), 3.7495f64);
- exchange_rates.insert(Exchange::USD("2014-11-25".to_string()), 3.3706f64);
- exchange_rates.insert(Exchange::USD("2020-11-25".to_string()), 3.7556f64);
- exchange_rates.insert(Exchange::USD("2012-03-08".to_string()), 3.122f64);
- exchange_rates.insert(Exchange::USD("2022-08-11".to_string()), 4.5206f64);
- exchange_rates.insert(Exchange::USD("2019-04-18".to_string()), 3.8002f64);
- exchange_rates.insert(Exchange::USD("2022-11-17".to_string()), 4.5387f64);
- exchange_rates.insert(Exchange::EUR("2023-03-07".to_string()), 4.6871f64);
- exchange_rates.insert(Exchange::USD("2012-01-16".to_string()), 3.4798f64);
- exchange_rates.insert(Exchange::USD("2017-01-16".to_string()), 4.1354f64);
- exchange_rates.insert(Exchange::USD("2012-09-10".to_string()), 3.2189f64);
- exchange_rates.insert(Exchange::USD("2016-02-26".to_string()), 3.9545f64);
- exchange_rates.insert(Exchange::USD("2016-08-23".to_string()), 3.8061f64);
- exchange_rates.insert(Exchange::EUR("2025-02-24".to_string()), 4.1609f64);
- exchange_rates.insert(Exchange::EUR("2023-05-23".to_string()), 4.4981f64);
- exchange_rates.insert(Exchange::EUR("2024-06-07".to_string()), 4.2891f64);
- exchange_rates.insert(Exchange::EUR("2025-09-22".to_string()), 4.2645f64);
- exchange_rates.insert(Exchange::USD("2013-07-05".to_string()), 3.3245f64);
- exchange_rates.insert(Exchange::USD("2017-06-20".to_string()), 3.7862f64);
- exchange_rates.insert(Exchange::USD("2016-03-30".to_string()), 3.7495f64);
- exchange_rates.insert(Exchange::USD("2012-11-29".to_string()), 3.1556f64);
- exchange_rates.insert(Exchange::USD("2015-08-26".to_string()), 3.6937f64);
- exchange_rates.insert(Exchange::USD("2022-10-10".to_string()), 5.0239f64);
- exchange_rates.insert(Exchange::USD("2012-04-02".to_string()), 3.1017f64);
- exchange_rates.insert(Exchange::EUR("2024-07-11".to_string()), 4.2586f64);
- exchange_rates.insert(Exchange::USD("2020-07-23".to_string()), 3.806f64);
- exchange_rates.insert(Exchange::USD("2015-07-27".to_string()), 3.7455f64);
- exchange_rates.insert(Exchange::USD("2013-12-24".to_string()), 3.0346f64);
- exchange_rates.insert(Exchange::USD("2020-10-13".to_string()), 3.7932f64);
- exchange_rates.insert(Exchange::EUR("2025-04-11".to_string()), 4.2972f64);
- exchange_rates.insert(Exchange::USD("2018-11-09".to_string()), 3.7838f64);
- exchange_rates.insert(Exchange::USD("2017-12-29".to_string()), 3.4813f64);
- exchange_rates.insert(Exchange::USD("2013-12-31".to_string()), 3.012f64);
- exchange_rates.insert(Exchange::USD("2012-07-31".to_string()), 3.3508f64);
- exchange_rates.insert(Exchange::EUR("2023-12-05".to_string()), 4.3233f64);
- exchange_rates.insert(Exchange::USD("2018-11-19".to_string()), 3.784f64);
- exchange_rates.insert(Exchange::EUR("2023-02-06".to_string()), 4.7195f64);
- exchange_rates.insert(Exchange::USD("2019-10-21".to_string()), 3.8307f64);
- exchange_rates.insert(Exchange::USD("2016-05-18".to_string()), 3.9005f64);
- exchange_rates.insert(Exchange::EUR("2025-12-23".to_string()), 4.2274f64);
- exchange_rates.insert(Exchange::USD("2017-08-23".to_string()), 3.6274f64);
- exchange_rates.insert(Exchange::EUR("2024-10-10".to_string()), 4.3029f64);
- exchange_rates.insert(Exchange::USD("2018-03-15".to_string()), 3.4117f64);
- exchange_rates.insert(Exchange::USD("2013-05-22".to_string()), 3.2322f64);
- exchange_rates.insert(Exchange::EUR("2023-02-16".to_string()), 4.7728f64);
- exchange_rates.insert(Exchange::USD("2014-07-08".to_string()), 3.0441f64);
- exchange_rates.insert(Exchange::USD("2021-03-25".to_string()), 3.9253f64);
- exchange_rates.insert(Exchange::USD("2022-03-10".to_string()), 4.3482f64);
- exchange_rates.insert(Exchange::USD("2018-08-01".to_string()), 3.6603f64);
- exchange_rates.insert(Exchange::USD("2016-08-22".to_string()), 3.809f64);
- exchange_rates.insert(Exchange::USD("2018-06-28".to_string()), 3.7705f64);
- exchange_rates.insert(Exchange::USD("2013-08-14".to_string()), 3.1643f64);
- exchange_rates.insert(Exchange::EUR("2023-09-25".to_string()), 4.5892f64);
- exchange_rates.insert(Exchange::USD("2024-11-05".to_string()), 4.0038f64);
- exchange_rates.insert(Exchange::USD("2023-03-31".to_string()), 4.2934f64);
- exchange_rates.insert(Exchange::EUR("2023-06-14".to_string()), 4.4715f64);
- exchange_rates.insert(Exchange::EUR("2023-11-30".to_string()), 4.3492f64);
- exchange_rates.insert(Exchange::EUR("2024-07-19".to_string()), 4.293f64);
- exchange_rates.insert(Exchange::USD("2023-10-30".to_string()), 4.204f64);
- exchange_rates.insert(Exchange::EUR("2025-07-23".to_string()), 4.2544f64);
- exchange_rates.insert(Exchange::USD("2014-09-01".to_string()), 3.2035f64);
- exchange_rates.insert(Exchange::USD("2021-08-31".to_string()), 3.8386f64);
- exchange_rates.insert(Exchange::USD("2024-12-03".to_string()), 4.0803f64);
- exchange_rates.insert(Exchange::USD("2023-11-08".to_string()), 4.1804f64);
- exchange_rates.insert(Exchange::USD("2018-11-14".to_string()), 3.8114f64);
- exchange_rates.insert(Exchange::USD("2017-05-12".to_string()), 3.8837f64);
- exchange_rates.insert(Exchange::USD("2013-01-16".to_string()), 3.1097f64);
- exchange_rates.insert(Exchange::USD("2018-07-05".to_string()), 3.7485f64);
- exchange_rates.insert(Exchange::EUR("2025-06-02".to_string()), 4.2578f64);
- exchange_rates.insert(Exchange::USD("2020-07-28".to_string()), 3.7532f64);
- exchange_rates.insert(Exchange::USD("2015-05-08".to_string()), 3.6095f64);
- exchange_rates.insert(Exchange::USD("2017-12-18".to_string()), 3.574f64);
- exchange_rates.insert(Exchange::USD("2012-03-05".to_string()), 3.1355f64);
- exchange_rates.insert(Exchange::USD("2025-02-10".to_string()), 4.0548f64);
- exchange_rates.insert(Exchange::USD("2025-06-03".to_string()), 3.7437f64);
- exchange_rates.insert(Exchange::USD("2024-10-22".to_string()), 3.9862f64);
- exchange_rates.insert(Exchange::USD("2015-01-13".to_string()), 3.6252f64);
- exchange_rates.insert(Exchange::USD("2015-03-03".to_string()), 3.719f64);
- exchange_rates.insert(Exchange::EUR("2024-07-01".to_string()), 4.2981f64);
- exchange_rates.insert(Exchange::USD("2017-07-17".to_string()), 3.6767f64);
- exchange_rates.insert(Exchange::USD("2016-06-20".to_string()), 3.8724f64);
- exchange_rates.insert(Exchange::USD("2024-05-15".to_string()), 3.9368f64);
- exchange_rates.insert(Exchange::EUR("2023-03-06".to_string()), 4.7073f64);
- exchange_rates.insert(Exchange::EUR("2023-12-28".to_string()), 4.3392f64);
- exchange_rates.insert(Exchange::USD("2022-08-29".to_string()), 4.7821f64);
- exchange_rates.insert(Exchange::USD("2020-04-16".to_string()), 4.1631f64);
- exchange_rates.insert(Exchange::USD("2019-05-24".to_string()), 3.8436f64);
- exchange_rates.insert(Exchange::USD("2012-09-07".to_string()), 3.2578f64);
- exchange_rates.insert(Exchange::EUR("2023-03-28".to_string()), 4.6816f64);
- exchange_rates.insert(Exchange::USD("2019-08-07".to_string()), 3.8597f64);
- exchange_rates.insert(Exchange::USD("2025-05-19".to_string()), 3.8004f64);
- exchange_rates.insert(Exchange::USD("2013-07-12".to_string()), 3.3201f64);
- exchange_rates.insert(Exchange::EUR("2024-12-05".to_string()), 4.2695f64);
- exchange_rates.insert(Exchange::EUR("2023-02-20".to_string()), 4.7542f64);
- exchange_rates.insert(Exchange::USD("2022-11-21".to_string()), 4.5991f64);
- exchange_rates.insert(Exchange::USD("2017-11-28".to_string()), 3.5382f64);
- exchange_rates.insert(Exchange::USD("2015-10-16".to_string()), 3.7243f64);
- exchange_rates.insert(Exchange::USD("2025-09-15".to_string()), 3.6188f64);
- exchange_rates.insert(Exchange::USD("2024-12-02".to_string()), 4.0827f64);
- exchange_rates.insert(Exchange::USD("2022-11-15".to_string()), 4.5143f64);
- exchange_rates.insert(Exchange::USD("2016-09-30".to_string()), 3.8558f64);
- exchange_rates.insert(Exchange::USD("2015-10-05".to_string()), 3.773f64);
- exchange_rates.insert(Exchange::USD("2015-10-19".to_string()), 3.7265f64);
- exchange_rates.insert(Exchange::USD("2013-11-06".to_string()), 3.0896f64);
- exchange_rates.insert(Exchange::USD("2013-01-07".to_string()), 3.1618f64);
- exchange_rates.insert(Exchange::USD("2023-04-20".to_string()), 4.2024f64);
- exchange_rates.insert(Exchange::EUR("2023-04-14".to_string()), 4.6494f64);
- exchange_rates.insert(Exchange::USD("2023-12-08".to_string()), 4.0181f64);
- exchange_rates.insert(Exchange::USD("2013-04-04".to_string()), 3.275f64);
- exchange_rates.insert(Exchange::EUR("2023-03-10".to_string()), 4.6838f64);
- exchange_rates.insert(Exchange::USD("2023-12-29".to_string()), 3.935f64);
- exchange_rates.insert(Exchange::EUR("2023-12-22".to_string()), 4.3288f64);
- exchange_rates.insert(Exchange::USD("2023-06-14".to_string()), 4.1393f64);
- exchange_rates.insert(Exchange::USD("2015-11-12".to_string()), 3.9434f64);
- exchange_rates.insert(Exchange::USD("2022-08-08".to_string()), 4.6127f64);
- exchange_rates.insert(Exchange::EUR("2025-07-29".to_string()), 4.2737f64);
- exchange_rates.insert(Exchange::USD("2024-07-02".to_string()), 4.0375f64);
- exchange_rates.insert(Exchange::EUR("2025-02-12".to_string()), 4.1721f64);
- exchange_rates.insert(Exchange::USD("2012-04-24".to_string()), 3.1946f64);
- exchange_rates.insert(Exchange::EUR("2024-08-09".to_string()), 4.3238f64);
- exchange_rates.insert(Exchange::USD("2020-08-12".to_string()), 3.7558f64);
- exchange_rates.insert(Exchange::USD("2018-10-26".to_string()), 3.7899f64);
- exchange_rates.insert(Exchange::USD("2020-11-24".to_string()), 3.7625f64);
- exchange_rates.insert(Exchange::USD("2017-03-28".to_string()), 3.9169f64);
- exchange_rates.insert(Exchange::USD("2016-08-29".to_string()), 3.8789f64);
- exchange_rates.insert(Exchange::USD("2012-10-18".to_string()), 3.1314f64);
- exchange_rates.insert(Exchange::USD("2022-07-14".to_string()), 4.8274f64);
- exchange_rates.insert(Exchange::USD("2021-09-22".to_string()), 3.946f64);
- exchange_rates.insert(Exchange::USD("2024-10-02".to_string()), 3.8792f64);
- exchange_rates.insert(Exchange::USD("2022-10-07".to_string()), 4.9588f64);
- exchange_rates.insert(Exchange::USD("2022-09-19".to_string()), 4.7255f64);
- exchange_rates.insert(Exchange::USD("2014-05-14".to_string()), 3.048f64);
- exchange_rates.insert(Exchange::USD("2018-09-04".to_string()), 3.7241f64);
- exchange_rates.insert(Exchange::USD("2014-10-23".to_string()), 3.339f64);
- exchange_rates.insert(Exchange::EUR("2023-03-20".to_string()), 4.7109f64);
- exchange_rates.insert(Exchange::USD("2025-12-29".to_string()), 3.5898f64);
- exchange_rates.insert(Exchange::USD("2020-07-21".to_string()), 3.8812f64);
- exchange_rates.insert(Exchange::USD("2019-02-18".to_string()), 3.8286f64);
- exchange_rates.insert(Exchange::USD("2015-08-14".to_string()), 3.7557f64);
- exchange_rates.insert(Exchange::USD("2022-06-28".to_string()), 4.4377f64);
- exchange_rates.insert(Exchange::USD("2022-08-26".to_string()), 4.7465f64);
- exchange_rates.insert(Exchange::USD("2021-11-08".to_string()), 3.9747f64);
- exchange_rates.insert(Exchange::USD("2019-12-04".to_string()), 3.8647f64);
- exchange_rates.insert(Exchange::USD("2017-04-18".to_string()), 3.98f64);
- exchange_rates.insert(Exchange::USD("2019-12-27".to_string()), 3.8266f64);
- exchange_rates.insert(Exchange::EUR("2023-04-07".to_string()), 4.6862f64);
- exchange_rates.insert(Exchange::USD("2019-12-10".to_string()), 3.8711f64);
- exchange_rates.insert(Exchange::EUR("2024-09-03".to_string()), 4.2757f64);
- exchange_rates.insert(Exchange::EUR("2024-03-08".to_string()), 4.3079f64);
- exchange_rates.insert(Exchange::USD("2025-07-02".to_string()), 3.609f64);
- exchange_rates.insert(Exchange::USD("2012-09-06".to_string()), 3.2955f64);
- exchange_rates.insert(Exchange::USD("2020-05-21".to_string()), 4.1346f64);
- exchange_rates.insert(Exchange::EUR("2025-02-28".to_string()), 4.1575f64);
- exchange_rates.insert(Exchange::USD("2020-07-03".to_string()), 3.9764f64);
- exchange_rates.insert(Exchange::USD("2021-07-21".to_string()), 3.9035f64);
- exchange_rates.insert(Exchange::USD("2013-05-08".to_string()), 3.1609f64);
- exchange_rates.insert(Exchange::USD("2017-09-14".to_string()), 3.5984f64);
- exchange_rates.insert(Exchange::USD("2024-07-17".to_string()), 3.921f64);
- exchange_rates.insert(Exchange::USD("2016-01-04".to_string()), 3.9281f64);
- exchange_rates.insert(Exchange::USD("2015-01-30".to_string()), 3.7204f64);
- exchange_rates.insert(Exchange::USD("2022-03-01".to_string()), 4.2193f64);
- exchange_rates.insert(Exchange::USD("2022-07-20".to_string()), 4.6524f64);
- exchange_rates.insert(Exchange::USD("2015-04-16".to_string()), 3.7746f64);
- exchange_rates.insert(Exchange::USD("2018-07-19".to_string()), 3.7163f64);
- exchange_rates.insert(Exchange::USD("2013-03-13".to_string()), 3.1863f64);
- exchange_rates.insert(Exchange::USD("2012-12-11".to_string()), 3.1645f64);
- exchange_rates.insert(Exchange::USD("2022-04-04".to_string()), 4.2073f64);
- exchange_rates.insert(Exchange::USD("2021-06-23".to_string()), 3.7878f64);
- exchange_rates.insert(Exchange::EUR("2025-06-26".to_string()), 4.2479f64);
- exchange_rates.insert(Exchange::USD("2014-07-17".to_string()), 3.0579f64);
- exchange_rates.insert(Exchange::USD("2014-11-18".to_string()), 3.3706f64);
- exchange_rates.insert(Exchange::EUR("2024-04-03".to_string()), 4.2923f64);
- exchange_rates.insert(Exchange::USD("2021-10-21".to_string()), 3.9449f64);
- exchange_rates.insert(Exchange::USD("2020-07-14".to_string()), 3.957f64);
- exchange_rates.insert(Exchange::USD("2020-08-19".to_string()), 3.6732f64);
- exchange_rates.insert(Exchange::USD("2015-04-29".to_string()), 3.6396f64);
- exchange_rates.insert(Exchange::USD("2013-10-03".to_string()), 3.0951f64);
- exchange_rates.insert(Exchange::USD("2013-05-20".to_string()), 3.238f64);
- exchange_rates.insert(Exchange::EUR("2024-07-15".to_string()), 4.2499f64);
- exchange_rates.insert(Exchange::USD("2022-03-15".to_string()), 4.2992f64);
- exchange_rates.insert(Exchange::USD("2018-09-20".to_string()), 3.6702f64);
- exchange_rates.insert(Exchange::USD("2014-05-12".to_string()), 3.0362f64);
- exchange_rates.insert(Exchange::USD("2025-09-26".to_string()), 3.6528f64);
- exchange_rates.insert(Exchange::USD("2023-09-19".to_string()), 4.3472f64);
- exchange_rates.insert(Exchange::USD("2016-03-10".to_string()), 3.932f64);
- exchange_rates.insert(Exchange::USD("2016-08-04".to_string()), 3.8588f64);
- exchange_rates.insert(Exchange::USD("2013-04-19".to_string()), 3.1409f64);
- exchange_rates.insert(Exchange::EUR("2023-09-12".to_string()), 4.6836f64);
- exchange_rates.insert(Exchange::EUR("2024-10-17".to_string()), 4.3174f64);
- exchange_rates.insert(Exchange::USD("2021-12-01".to_string()), 4.1051f64);
- exchange_rates.insert(Exchange::USD("2022-08-30".to_string()), 4.721f64);
- exchange_rates.insert(Exchange::USD("2016-04-18".to_string()), 3.801f64);
- exchange_rates.insert(Exchange::USD("2012-09-24".to_string()), 3.218f64);
- exchange_rates.insert(Exchange::USD("2022-07-27".to_string()), 4.7142f64);
- exchange_rates.insert(Exchange::USD("2019-10-22".to_string()), 3.8408f64);
- exchange_rates.insert(Exchange::USD("2022-11-30".to_string()), 4.5066f64);
- exchange_rates.insert(Exchange::USD("2016-10-06".to_string()), 3.8405f64);
- exchange_rates.insert(Exchange::USD("2023-08-17".to_string()), 4.1094f64);
- exchange_rates.insert(Exchange::USD("2012-12-28".to_string()), 3.0893f64);
- exchange_rates.insert(Exchange::USD("2019-07-08".to_string()), 3.7857f64);
- exchange_rates.insert(Exchange::USD("2017-10-13".to_string()), 3.601f64);
- exchange_rates.insert(Exchange::USD("2022-08-10".to_string()), 4.6112f64);
- exchange_rates.insert(Exchange::USD("2018-04-04".to_string()), 3.4224f64);
- exchange_rates.insert(Exchange::USD("2024-02-09".to_string()), 4.0096f64);
- exchange_rates.insert(Exchange::USD("2014-05-09".to_string()), 3.0247f64);
- exchange_rates.insert(Exchange::USD("2019-11-29".to_string()), 3.9288f64);
- exchange_rates.insert(Exchange::USD("2019-11-18".to_string()), 3.8767f64);
- exchange_rates.insert(Exchange::USD("2017-02-23".to_string()), 4.084f64);
- exchange_rates.insert(Exchange::USD("2012-12-21".to_string()), 3.0791f64);
- exchange_rates.insert(Exchange::EUR("2023-11-14".to_string()), 4.4163f64);
- exchange_rates.insert(Exchange::USD("2025-04-08".to_string()), 3.927f64);
- exchange_rates.insert(Exchange::USD("2018-01-26".to_string()), 3.3299f64);
- exchange_rates.insert(Exchange::USD("2017-03-03".to_string()), 4.0955f64);
- exchange_rates.insert(Exchange::USD("2024-05-22".to_string()), 3.9243f64);
- exchange_rates.insert(Exchange::USD("2021-09-27".to_string()), 3.9276f64);
- exchange_rates.insert(Exchange::USD("2012-08-06".to_string()), 3.2752f64);
- exchange_rates.insert(Exchange::EUR("2023-06-07".to_string()), 4.479f64);
- exchange_rates.insert(Exchange::EUR("2024-06-26".to_string()), 4.3087f64);
- exchange_rates.insert(Exchange::USD("2015-07-21".to_string()), 3.7875f64);
- exchange_rates.insert(Exchange::USD("2017-02-21".to_string()), 4.0942f64);
- exchange_rates.insert(Exchange::USD("2012-09-27".to_string()), 3.2236f64);
- exchange_rates.insert(Exchange::EUR("2025-07-01".to_string()), 4.2415f64);
- exchange_rates.insert(Exchange::EUR("2023-05-09".to_string()), 4.5683f64);
- exchange_rates.insert(Exchange::USD("2025-05-12".to_string()), 3.8011f64);
- exchange_rates.insert(Exchange::USD("2020-01-23".to_string()), 3.8308f64);
- exchange_rates.insert(Exchange::USD("2018-01-12".to_string()), 3.4366f64);
- exchange_rates.insert(Exchange::USD("2023-03-07".to_string()), 4.3981f64);
- exchange_rates.insert(Exchange::USD("2015-02-05".to_string()), 3.6656f64);
- exchange_rates.insert(Exchange::USD("2014-12-09".to_string()), 3.3688f64);
- exchange_rates.insert(Exchange::EUR("2024-05-15".to_string()), 4.2635f64);
- exchange_rates.insert(Exchange::USD("2015-01-28".to_string()), 3.7276f64);
- exchange_rates.insert(Exchange::USD("2022-08-23".to_string()), 4.803f64);
- exchange_rates.insert(Exchange::USD("2020-01-27".to_string()), 3.8725f64);
- exchange_rates.insert(Exchange::USD("2024-11-29".to_string()), 4.077f64);
- exchange_rates.insert(Exchange::USD("2012-02-17".to_string()), 3.179f64);
- exchange_rates.insert(Exchange::USD("2016-11-07".to_string()), 3.9132f64);
- exchange_rates.insert(Exchange::USD("2022-06-13".to_string()), 4.4209f64);
- exchange_rates.insert(Exchange::USD("2022-10-25".to_string()), 4.8499f64);
- exchange_rates.insert(Exchange::USD("2020-01-31".to_string()), 3.8999f64);
- exchange_rates.insert(Exchange::USD("2017-11-07".to_string()), 3.6652f64);
- exchange_rates.insert(Exchange::USD("2012-08-31".to_string()), 3.3353f64);
- exchange_rates.insert(Exchange::USD("2023-04-06".to_string()), 4.3033f64);
- exchange_rates.insert(Exchange::USD("2023-07-19".to_string()), 3.9612f64);
- exchange_rates.insert(Exchange::USD("2023-06-09".to_string()), 4.1545f64);
- exchange_rates.insert(Exchange::USD("2017-02-08".to_string()), 4.0521f64);
- exchange_rates.insert(Exchange::USD("2018-10-18".to_string()), 3.7302f64);
- exchange_rates.insert(Exchange::USD("2018-03-28".to_string()), 3.3956f64);
- exchange_rates.insert(Exchange::USD("2017-02-28".to_string()), 4.077f64);
- exchange_rates.insert(Exchange::USD("2015-09-14".to_string()), 3.7124f64);
- exchange_rates.insert(Exchange::EUR("2025-03-25".to_string()), 4.1664f64);
- exchange_rates.insert(Exchange::USD("2015-07-09".to_string()), 3.829f64);
- exchange_rates.insert(Exchange::USD("2023-07-11".to_string()), 4.0374f64);
- exchange_rates.insert(Exchange::USD("2013-08-23".to_string()), 3.1673f64);
- exchange_rates.insert(Exchange::EUR("2024-02-06".to_string()), 4.3435f64);
- exchange_rates.insert(Exchange::USD("2017-04-05".to_string()), 3.9783f64);
- exchange_rates.insert(Exchange::USD("2022-03-02".to_string()), 4.3302f64);
- exchange_rates.insert(Exchange::EUR("2025-05-21".to_string()), 4.2403f64);
- exchange_rates.insert(Exchange::USD("2023-01-13".to_string()), 4.3272f64);
- exchange_rates.insert(Exchange::USD("2023-05-25".to_string()), 4.1994f64);
- exchange_rates.insert(Exchange::USD("2023-12-06".to_string()), 4.0202f64);
- exchange_rates.insert(Exchange::EUR("2023-05-30".to_string()), 4.522f64);
- exchange_rates.insert(Exchange::USD("2018-09-27".to_string()), 3.6557f64);
- exchange_rates.insert(Exchange::USD("2024-10-11".to_string()), 3.9204f64);
- exchange_rates.insert(Exchange::USD("2021-03-17".to_string()), 3.8676f64);
- exchange_rates.insert(Exchange::USD("2016-11-18".to_string()), 4.1968f64);
- exchange_rates.insert(Exchange::USD("2014-05-16".to_string()), 3.0567f64);
- exchange_rates.insert(Exchange::USD("2013-12-17".to_string()), 3.036f64);
- exchange_rates.insert(Exchange::USD("2021-12-29".to_string()), 4.0779f64);
- exchange_rates.insert(Exchange::USD("2020-10-07".to_string()), 3.8126f64);
- exchange_rates.insert(Exchange::USD("2025-02-26".to_string()), 3.9434f64);
- exchange_rates.insert(Exchange::USD("2024-10-10".to_string()), 3.9355f64);
- exchange_rates.insert(Exchange::USD("2025-08-01".to_string()), 3.7536f64);
- exchange_rates.insert(Exchange::USD("2023-09-21".to_string()), 4.3365f64);
- exchange_rates.insert(Exchange::USD("2019-09-24".to_string()), 3.9838f64);
- exchange_rates.insert(Exchange::USD("2016-08-25".to_string()), 3.819f64);
- exchange_rates.insert(Exchange::USD("2015-02-02".to_string()), 3.6801f64);
- exchange_rates.insert(Exchange::EUR("2024-09-09".to_string()), 4.2818f64);
- exchange_rates.insert(Exchange::USD("2025-03-19".to_string()), 3.8473f64);
- exchange_rates.insert(Exchange::USD("2018-11-21".to_string()), 3.7829f64);
- exchange_rates.insert(Exchange::USD("2017-11-22".to_string()), 3.5881f64);
- exchange_rates.insert(Exchange::EUR("2024-07-10".to_string()), 4.2529f64);
- exchange_rates.insert(Exchange::EUR("2024-08-20".to_string()), 4.2665f64);
- exchange_rates.insert(Exchange::USD("2020-03-09".to_string()), 3.7899f64);
- exchange_rates.insert(Exchange::USD("2022-10-04".to_string()), 4.8615f64);
- exchange_rates.insert(Exchange::USD("2021-07-07".to_string()), 3.8225f64);
- exchange_rates.insert(Exchange::USD("2021-11-30".to_string()), 4.1214f64);
- exchange_rates.insert(Exchange::USD("2018-01-22".to_string()), 3.4036f64);
- exchange_rates.insert(Exchange::USD("2019-09-11".to_string()), 3.9324f64);
- exchange_rates.insert(Exchange::USD("2025-06-20".to_string()), 3.7067f64);
- exchange_rates.insert(Exchange::EUR("2024-04-02".to_string()), 4.2934f64);
- exchange_rates.insert(Exchange::USD("2024-02-16".to_string()), 4.0325f64);
- exchange_rates.insert(Exchange::USD("2024-11-20".to_string()), 4.112f64);
- exchange_rates.insert(Exchange::USD("2015-01-21".to_string()), 3.7358f64);
- exchange_rates.insert(Exchange::USD("2025-07-03".to_string()), 3.6137f64);
- exchange_rates.insert(Exchange::USD("2019-03-12".to_string()), 3.8116f64);
- exchange_rates.insert(Exchange::USD("2017-06-29".to_string()), 3.7122f64);
- exchange_rates.insert(Exchange::USD("2023-07-10".to_string()), 4.0632f64);
- exchange_rates.insert(Exchange::USD("2020-08-27".to_string()), 3.7286f64);
- exchange_rates.insert(Exchange::USD("2017-11-21".to_string()), 3.606f64);
- exchange_rates.insert(Exchange::USD("2015-05-20".to_string()), 3.6538f64);
- exchange_rates.insert(Exchange::USD("2025-03-13".to_string()), 3.8568f64);
- exchange_rates.insert(Exchange::USD("2017-07-10".to_string()), 3.716f64);
- exchange_rates.insert(Exchange::USD("2016-11-08".to_string()), 3.9169f64);
- exchange_rates.insert(Exchange::USD("2017-06-28".to_string()), 3.7249f64);
- exchange_rates.insert(Exchange::USD("2023-12-07".to_string()), 4.0199f64);
- exchange_rates.insert(Exchange::USD("2015-07-30".to_string()), 3.7754f64);
- exchange_rates.insert(Exchange::USD("2014-10-21".to_string()), 3.2987f64);
- exchange_rates.insert(Exchange::USD("2013-05-15".to_string()), 3.234f64);
- exchange_rates.insert(Exchange::EUR("2025-10-16".to_string()), 4.2517f64);
- exchange_rates.insert(Exchange::USD("2023-01-23".to_string()), 4.3242f64);
- exchange_rates.insert(Exchange::USD("2021-05-17".to_string()), 3.7288f64);
- exchange_rates.insert(Exchange::USD("2015-04-30".to_string()), 3.5987f64);
- exchange_rates.insert(Exchange::USD("2022-11-28".to_string()), 4.4827f64);
- exchange_rates.insert(Exchange::USD("2014-11-26".to_string()), 3.3546f64);
- exchange_rates.insert(Exchange::USD("2018-08-29".to_string()), 3.6747f64);
- exchange_rates.insert(Exchange::USD("2024-08-07".to_string()), 3.9526f64);
- exchange_rates.insert(Exchange::USD("2024-04-30".to_string()), 4.0341f64);
- exchange_rates.insert(Exchange::USD("2020-08-05".to_string()), 3.7143f64);
- exchange_rates.insert(Exchange::USD("2013-08-16".to_string()), 3.1665f64);
- exchange_rates.insert(Exchange::USD("2019-03-14".to_string()), 3.8018f64);
- exchange_rates.insert(Exchange::USD("2014-11-19".to_string()), 3.3655f64);
- exchange_rates.insert(Exchange::USD("2023-03-27".to_string()), 4.3518f64);
- exchange_rates.insert(Exchange::USD("2020-12-03".to_string()), 3.6981f64);
- exchange_rates.insert(Exchange::EUR("2024-02-28".to_string()), 4.3116f64);
- exchange_rates.insert(Exchange::USD("2021-10-01".to_string()), 3.9678f64);
- exchange_rates.insert(Exchange::USD("2024-01-10".to_string()), 3.9656f64);
- exchange_rates.insert(Exchange::USD("2022-10-18".to_string()), 4.8929f64);
- exchange_rates.insert(Exchange::USD("2023-08-02".to_string()), 4.0497f64);
- exchange_rates.insert(Exchange::USD("2016-12-15".to_string()), 4.2329f64);
- exchange_rates.insert(Exchange::USD("2016-05-30".to_string()), 3.947f64);
- exchange_rates.insert(Exchange::USD("2016-08-08".to_string()), 3.8706f64);
- exchange_rates.insert(Exchange::USD("2014-07-23".to_string()), 3.0707f64);
- exchange_rates.insert(Exchange::USD("2023-09-28".to_string()), 4.4062f64);
- exchange_rates.insert(Exchange::USD("2019-10-18".to_string()), 3.8503f64);
- exchange_rates.insert(Exchange::USD("2015-07-22".to_string()), 3.7629f64);
- exchange_rates.insert(Exchange::USD("2013-07-31".to_string()), 3.1929f64);
- exchange_rates.insert(Exchange::USD("2022-01-18".to_string()), 3.9734f64);
- exchange_rates.insert(Exchange::USD("2018-07-16".to_string()), 3.6828f64);
- exchange_rates.insert(Exchange::EUR("2024-12-04".to_string()), 4.2899f64);
- exchange_rates.insert(Exchange::USD("2018-10-09".to_string()), 3.7629f64);
- exchange_rates.insert(Exchange::EUR("2023-04-20".to_string()), 4.6109f64);
- exchange_rates.insert(Exchange::EUR("2023-05-12".to_string()), 4.5444f64);
- exchange_rates.insert(Exchange::USD("2024-12-04".to_string()), 4.0845f64);
- exchange_rates.insert(Exchange::EUR("2024-09-30".to_string()), 4.2791f64);
- exchange_rates.insert(Exchange::EUR("2025-02-25".to_string()), 4.1339f64);
- exchange_rates.insert(Exchange::USD("2025-07-30".to_string()), 3.6981f64);
- exchange_rates.insert(Exchange::USD("2022-02-17".to_string()), 3.9687f64);
- exchange_rates.insert(Exchange::USD("2015-09-25".to_string()), 3.7818f64);
- exchange_rates.insert(Exchange::USD("2017-06-30".to_string()), 3.7062f64);
- exchange_rates.insert(Exchange::USD("2023-07-04".to_string()), 4.0636f64);
- exchange_rates.insert(Exchange::USD("2012-01-05".to_string()), 3.5081f64);
- exchange_rates.insert(Exchange::USD("2018-12-14".to_string()), 3.8095f64);
- exchange_rates.insert(Exchange::USD("2019-08-21".to_string()), 3.921f64);
- exchange_rates.insert(Exchange::USD("2017-07-25".to_string()), 3.6519f64);
- exchange_rates.insert(Exchange::USD("2017-03-13".to_string()), 4.0747f64);
- exchange_rates.insert(Exchange::EUR("2025-04-14".to_string()), 4.2776f64);
- exchange_rates.insert(Exchange::USD("2020-07-16".to_string()), 3.9422f64);
- exchange_rates.insert(Exchange::USD("2016-12-29".to_string()), 4.2161f64);
- exchange_rates.insert(Exchange::USD("2020-08-10".to_string()), 3.7393f64);
- exchange_rates.insert(Exchange::USD("2013-09-16".to_string()), 3.1435f64);
- exchange_rates.insert(Exchange::USD("2023-03-21".to_string()), 4.3715f64);
- exchange_rates.insert(Exchange::USD("2024-12-12".to_string()), 4.074f64);
- exchange_rates.insert(Exchange::USD("2013-10-24".to_string()), 3.0323f64);
- exchange_rates.insert(Exchange::USD("2012-08-13".to_string()), 3.3202f64);
- exchange_rates.insert(Exchange::EUR("2023-05-16".to_string()), 4.4904f64);
- exchange_rates.insert(Exchange::USD("2024-05-21".to_string()), 3.9175f64);
- exchange_rates.insert(Exchange::USD("2019-02-19".to_string()), 3.8311f64);
- exchange_rates.insert(Exchange::USD("2016-06-23".to_string()), 3.8593f64);
- exchange_rates.insert(Exchange::USD("2015-11-19".to_string()), 3.9754f64);
- exchange_rates.insert(Exchange::USD("2024-04-23".to_string()), 4.061f64);
- exchange_rates.insert(Exchange::USD("2022-02-28".to_string()), 4.1965f64);
- exchange_rates.insert(Exchange::EUR("2023-03-24".to_string()), 4.6911f64);
- exchange_rates.insert(Exchange::USD("2016-05-23".to_string()), 3.9513f64);
- exchange_rates.insert(Exchange::USD("2016-06-21".to_string()), 3.8741f64);
- exchange_rates.insert(Exchange::USD("2019-12-24".to_string()), 3.8487f64);
- exchange_rates.insert(Exchange::USD("2018-11-12".to_string()), 3.8163f64);
- exchange_rates.insert(Exchange::USD("2023-10-03".to_string()), 4.4012f64);
- exchange_rates.insert(Exchange::EUR("2023-09-06".to_string()), 4.4974f64);
- exchange_rates.insert(Exchange::USD("2012-03-14".to_string()), 3.1699f64);
- exchange_rates.insert(Exchange::USD("2015-08-25".to_string()), 3.6613f64);
- exchange_rates.insert(Exchange::EUR("2025-09-04".to_string()), 4.2553f64);
- exchange_rates.insert(Exchange::USD("2019-06-21".to_string()), 3.7705f64);
- exchange_rates.insert(Exchange::USD("2012-11-06".to_string()), 3.2223f64);
- exchange_rates.insert(Exchange::USD("2012-10-09".to_string()), 3.1501f64);
- exchange_rates.insert(Exchange::EUR("2023-03-09".to_string()), 4.6836f64);
- exchange_rates.insert(Exchange::EUR("2023-11-29".to_string()), 4.3327f64);
- exchange_rates.insert(Exchange::USD("2018-01-02".to_string()), 3.4546f64);
- exchange_rates.insert(Exchange::USD("2015-03-31".to_string()), 3.8125f64);
- exchange_rates.insert(Exchange::USD("2023-10-24".to_string()), 4.1884f64);
- exchange_rates.insert(Exchange::USD("2022-08-01".to_string()), 4.629f64);
- exchange_rates.insert(Exchange::USD("2019-10-15".to_string()), 3.8952f64);
- exchange_rates.insert(Exchange::USD("2025-07-17".to_string()), 3.6686f64);
- exchange_rates.insert(Exchange::EUR("2024-04-26".to_string()), 4.3225f64);
- exchange_rates.insert(Exchange::USD("2014-10-13".to_string()), 3.3062f64);
- exchange_rates.insert(Exchange::USD("2012-01-11".to_string()), 3.4919f64);
- exchange_rates.insert(Exchange::USD("2018-01-17".to_string()), 3.4109f64);
- exchange_rates.insert(Exchange::USD("2013-07-09".to_string()), 3.3588f64);
- exchange_rates.insert(Exchange::USD("2025-05-06".to_string()), 3.7789f64);
- exchange_rates.insert(Exchange::USD("2021-09-30".to_string()), 3.9925f64);
- exchange_rates.insert(Exchange::USD("2015-02-25".to_string()), 3.6649f64);
- exchange_rates.insert(Exchange::USD("2025-10-08".to_string()), 3.6619f64);
- exchange_rates.insert(Exchange::USD("2021-12-13".to_string()), 4.1003f64);
- exchange_rates.insert(Exchange::USD("2020-09-30".to_string()), 3.8658f64);
- exchange_rates.insert(Exchange::USD("2022-08-16".to_string()), 4.6282f64);
- exchange_rates.insert(Exchange::USD("2017-03-06".to_string()), 4.0663f64);
- exchange_rates.insert(Exchange::USD("2016-05-02".to_string()), 3.8195f64);
- exchange_rates.insert(Exchange::EUR("2023-02-15".to_string()), 4.7593f64);
- exchange_rates.insert(Exchange::USD("2021-12-03".to_string()), 4.0653f64);
- exchange_rates.insert(Exchange::USD("2024-04-16".to_string()), 4.0687f64);
- exchange_rates.insert(Exchange::USD("2021-11-10".to_string()), 3.9737f64);
- exchange_rates.insert(Exchange::USD("2017-01-27".to_string()), 4.0595f64);
- exchange_rates.insert(Exchange::USD("2017-04-21".to_string()), 3.9841f64);
- exchange_rates.insert(Exchange::USD("2016-07-04".to_string()), 3.9886f64);
- exchange_rates.insert(Exchange::EUR("2023-04-03".to_string()), 4.6805f64);
- exchange_rates.insert(Exchange::USD("2015-07-03".to_string()), 3.7726f64);
- exchange_rates.insert(Exchange::USD("2012-10-17".to_string()), 3.1261f64);
- exchange_rates.insert(Exchange::USD("2012-03-07".to_string()), 3.1631f64);
- exchange_rates.insert(Exchange::USD("2022-07-21".to_string()), 4.6682f64);
- exchange_rates.insert(Exchange::USD("2018-10-11".to_string()), 3.7399f64);
- exchange_rates.insert(Exchange::USD("2020-01-16".to_string()), 3.7968f64);
- exchange_rates.insert(Exchange::EUR("2025-09-08".to_string()), 4.2484f64);
- exchange_rates.insert(Exchange::EUR("2023-11-27".to_string()), 4.3543f64);
- exchange_rates.insert(Exchange::USD("2022-06-21".to_string()), 4.3917f64);
- exchange_rates.insert(Exchange::EUR("2024-08-14".to_string()), 4.2933f64);
- exchange_rates.insert(Exchange::USD("2018-12-20".to_string()), 3.7331f64);
- exchange_rates.insert(Exchange::USD("2021-07-15".to_string()), 3.8629f64);
- exchange_rates.insert(Exchange::USD("2014-03-18".to_string()), 3.0396f64);
- exchange_rates.insert(Exchange::USD("2019-09-09".to_string()), 3.931f64);
- exchange_rates.insert(Exchange::EUR("2023-06-05".to_string()), 4.4851f64);
- exchange_rates.insert(Exchange::EUR("2024-05-24".to_string()), 4.2624f64);
- exchange_rates.insert(Exchange::USD("2012-01-25".to_string()), 3.299f64);
- exchange_rates.insert(Exchange::EUR("2025-06-27".to_string()), 4.2362f64);
- exchange_rates.insert(Exchange::USD("2013-06-25".to_string()), 3.284f64);
- exchange_rates.insert(Exchange::USD("2014-09-15".to_string()), 3.2522f64);
- exchange_rates.insert(Exchange::USD("2024-12-19".to_string()), 4.0944f64);
- exchange_rates.insert(Exchange::USD("2024-01-17".to_string()), 4.0434f64);
- exchange_rates.insert(Exchange::USD("2024-07-22".to_string()), 3.9307f64);
- exchange_rates.insert(Exchange::USD("2022-09-28".to_string()), 5.0381f64);
- exchange_rates.insert(Exchange::USD("2012-07-06".to_string()), 3.4057f64);
- exchange_rates.insert(Exchange::USD("2019-12-20".to_string()), 3.8311f64);
- exchange_rates.insert(Exchange::USD("2023-12-01".to_string()), 3.991f64);
- exchange_rates.insert(Exchange::EUR("2025-01-20".to_string()), 4.2587f64);
- exchange_rates.insert(Exchange::USD("2020-12-28".to_string()), 3.6639f64);
- exchange_rates.insert(Exchange::USD("2016-03-25".to_string()), 3.8174f64);
- exchange_rates.insert(Exchange::USD("2023-04-28".to_string()), 4.1753f64);
- exchange_rates.insert(Exchange::USD("2018-09-18".to_string()), 3.6817f64);
- exchange_rates.insert(Exchange::EUR("2023-12-01".to_string()), 4.3494f64);
- exchange_rates.insert(Exchange::USD("2022-07-07".to_string()), 4.7029f64);
- exchange_rates.insert(Exchange::EUR("2023-08-03".to_string()), 4.4585f64);
- exchange_rates.insert(Exchange::EUR("2023-11-06".to_string()), 4.4615f64);
- exchange_rates.insert(Exchange::EUR("2023-10-03".to_string()), 4.6147f64);
- exchange_rates.insert(Exchange::USD("2014-12-03".to_string()), 3.373f64);
- exchange_rates.insert(Exchange::USD("2023-03-28".to_string()), 4.33f64);
- exchange_rates.insert(Exchange::USD("2021-05-14".to_string()), 3.7374f64);
- exchange_rates.insert(Exchange::USD("2013-07-02".to_string()), 3.3222f64);
- exchange_rates.insert(Exchange::USD("2021-06-09".to_string()), 3.6545f64);
- exchange_rates.insert(Exchange::USD("2024-04-29".to_string()), 4.0346f64);
- exchange_rates.insert(Exchange::EUR("2024-10-18".to_string()), 4.3048f64);
- exchange_rates.insert(Exchange::USD("2014-12-22".to_string()), 3.4767f64);
- exchange_rates.insert(Exchange::EUR("2023-04-13".to_string()), 4.6511f64);
- exchange_rates.insert(Exchange::EUR("2025-01-14".to_string()), 4.2737f64);
- exchange_rates.insert(Exchange::EUR("2025-08-13".to_string()), 4.2586f64);
- exchange_rates.insert(Exchange::USD("2018-09-03".to_string()), 3.6991f64);
- exchange_rates.insert(Exchange::USD("2017-12-11".to_string()), 3.5633f64);
- exchange_rates.insert(Exchange::USD("2015-09-17".to_string()), 3.7129f64);
- exchange_rates.insert(Exchange::USD("2014-11-13".to_string()), 3.386f64);
- exchange_rates.insert(Exchange::USD("2023-03-10".to_string()), 4.4266f64);
- exchange_rates.insert(Exchange::USD("2021-03-22".to_string()), 3.8768f64);
- exchange_rates.insert(Exchange::USD("2021-06-17".to_string()), 3.7931f64);
- exchange_rates.insert(Exchange::USD("2019-08-16".to_string()), 3.9281f64);
- exchange_rates.insert(Exchange::USD("2017-05-16".to_string()), 3.7932f64);
- exchange_rates.insert(Exchange::USD("2014-05-13".to_string()), 3.0381f64);
- exchange_rates.insert(Exchange::USD("2014-11-04".to_string()), 3.3776f64);
- exchange_rates.insert(Exchange::USD("2019-04-03".to_string()), 3.8192f64);
- exchange_rates.insert(Exchange::USD("2025-07-08".to_string()), 3.6135f64);
- exchange_rates.insert(Exchange::USD("2023-12-15".to_string()), 3.9326f64);
- exchange_rates.insert(Exchange::USD("2012-02-27".to_string()), 3.1176f64);
- exchange_rates.insert(Exchange::USD("2012-11-12".to_string()), 3.2803f64);
- exchange_rates.insert(Exchange::EUR("2024-03-18".to_string()), 4.3086f64);
- exchange_rates.insert(Exchange::USD("2020-01-20".to_string()), 3.8277f64);
- exchange_rates.insert(Exchange::USD("2020-04-09".to_string()), 4.1744f64);
- exchange_rates.insert(Exchange::USD("2020-08-18".to_string()), 3.6895f64);
- exchange_rates.insert(Exchange::USD("2013-04-05".to_string()), 3.2358f64);
- exchange_rates.insert(Exchange::USD("2020-05-07".to_string()), 4.2162f64);
- exchange_rates.insert(Exchange::USD("2020-11-05".to_string()), 3.8353f64);
- exchange_rates.insert(Exchange::USD("2019-03-21".to_string()), 3.7581f64);
- exchange_rates.insert(Exchange::USD("2013-01-17".to_string()), 3.0853f64);
- exchange_rates.insert(Exchange::EUR("2024-02-01".to_string()), 4.3247f64);
- exchange_rates.insert(Exchange::EUR("2024-04-23".to_string()), 4.3335f64);
- exchange_rates.insert(Exchange::USD("2025-08-25".to_string()), 3.6421f64);
- exchange_rates.insert(Exchange::USD("2024-01-15".to_string()), 3.9963f64);
- exchange_rates.insert(Exchange::USD("2020-04-08".to_string()), 4.1801f64);
- exchange_rates.insert(Exchange::USD("2021-12-08".to_string()), 4.071f64);
- exchange_rates.insert(Exchange::USD("2024-04-03".to_string()), 3.9843f64);
- exchange_rates.insert(Exchange::USD("2020-12-23".to_string()), 3.6919f64);
- exchange_rates.insert(Exchange::USD("2021-12-24".to_string()), 4.0785f64);
- exchange_rates.insert(Exchange::USD("2016-03-07".to_string()), 3.9515f64);
- exchange_rates.insert(Exchange::USD("2025-02-28".to_string()), 3.9993f64);
- exchange_rates.insert(Exchange::USD("2025-08-07".to_string()), 3.6477f64);
- exchange_rates.insert(Exchange::USD("2016-09-08".to_string()), 3.8255f64);
- exchange_rates.insert(Exchange::EUR("2023-04-26".to_string()), 4.5887f64);
- exchange_rates.insert(Exchange::EUR("2025-01-30".to_string()), 4.2039f64);
- exchange_rates.insert(Exchange::USD("2014-12-29".to_string()), 3.527f64);
- exchange_rates.insert(Exchange::EUR("2023-10-30".to_string()), 4.4491f64);
- exchange_rates.insert(Exchange::USD("2012-07-17".to_string()), 3.3973f64);
- exchange_rates.insert(Exchange::USD("2019-04-23".to_string()), 3.8118f64);
- exchange_rates.insert(Exchange::EUR("2024-02-14".to_string()), 4.3435f64);
- exchange_rates.insert(Exchange::EUR("2025-03-31".to_string()), 4.1839f64);
- exchange_rates.insert(Exchange::USD("2023-05-12".to_string()), 4.1638f64);
- exchange_rates.insert(Exchange::USD("2017-11-23".to_string()), 3.5557f64);
- exchange_rates.insert(Exchange::USD("2013-11-07".to_string()), 3.0844f64);
- exchange_rates.insert(Exchange::USD("2024-02-28".to_string()), 3.9922f64);
- exchange_rates.insert(Exchange::USD("2021-01-22".to_string()), 3.7255f64);
- exchange_rates.insert(Exchange::EUR("2025-09-10".to_string()), 4.2604f64);
- exchange_rates.insert(Exchange::USD("2023-04-04".to_string()), 4.2855f64);
- exchange_rates.insert(Exchange::USD("2021-05-20".to_string()), 3.7077f64);
- exchange_rates.insert(Exchange::USD("2019-12-13".to_string()), 3.8234f64);
- exchange_rates.insert(Exchange::USD("2014-09-17".to_string()), 3.2331f64);
- exchange_rates.insert(Exchange::USD("2021-10-26".to_string()), 3.974f64);
- exchange_rates.insert(Exchange::USD("2020-06-22".to_string()), 3.9667f64);
- exchange_rates.insert(Exchange::USD("2015-04-23".to_string()), 3.7371f64);
- exchange_rates.insert(Exchange::USD("2021-02-01".to_string()), 3.7323f64);
- exchange_rates.insert(Exchange::USD("2024-02-06".to_string()), 4.0484f64);
- exchange_rates.insert(Exchange::USD("2023-07-25".to_string()), 4.008f64);
- exchange_rates.insert(Exchange::USD("2022-02-16".to_string()), 3.9478f64);
- exchange_rates.insert(Exchange::USD("2022-06-09".to_string()), 4.2764f64);
- exchange_rates.insert(Exchange::USD("2021-02-17".to_string()), 3.7287f64);
- exchange_rates.insert(Exchange::USD("2018-03-29".to_string()), 3.4201f64);
- exchange_rates.insert(Exchange::USD("2018-06-08".to_string()), 3.6479f64);
- exchange_rates.insert(Exchange::USD("2018-03-01".to_string()), 3.4356f64);
- exchange_rates.insert(Exchange::USD("2013-11-22".to_string()), 3.1077f64);
- exchange_rates.insert(Exchange::USD("2012-03-06".to_string()), 3.1557f64);
- exchange_rates.insert(Exchange::USD("2020-10-22".to_string()), 3.8734f64);
- exchange_rates.insert(Exchange::USD("2021-08-17".to_string()), 3.8797f64);
- exchange_rates.insert(Exchange::USD("2025-07-10".to_string()), 3.6209f64);
- exchange_rates.insert(Exchange::USD("2021-04-23".to_string()), 3.7855f64);
- exchange_rates.insert(Exchange::USD("2022-10-20".to_string()), 4.9024f64);
- exchange_rates.insert(Exchange::USD("2025-11-18".to_string()), 3.6525f64);
- exchange_rates.insert(Exchange::USD("2017-04-27".to_string()), 3.8776f64);
- exchange_rates.insert(Exchange::USD("2022-01-17".to_string()), 3.9567f64);
- exchange_rates.insert(Exchange::USD("2015-03-24".to_string()), 3.7453f64);
- exchange_rates.insert(Exchange::USD("2015-07-10".to_string()), 3.7709f64);
- exchange_rates.insert(Exchange::USD("2013-05-29".to_string()), 3.2831f64);
- exchange_rates.insert(Exchange::USD("2012-11-02".to_string()), 3.1965f64);
- exchange_rates.insert(Exchange::EUR("2023-04-28".to_string()), 4.5889f64);
- exchange_rates.insert(Exchange::EUR("2025-02-11".to_string()), 4.1783f64);
- exchange_rates.insert(Exchange::USD("2020-02-20".to_string()), 3.9621f64);
- exchange_rates.insert(Exchange::USD("2019-06-07".to_string()), 3.7958f64);
- exchange_rates.insert(Exchange::USD("2013-01-28".to_string()), 3.1074f64);
- exchange_rates.insert(Exchange::EUR("2025-04-25".to_string()), 4.2688f64);
- exchange_rates.insert(Exchange::USD("2024-04-19".to_string()), 4.0688f64);
- exchange_rates.insert(Exchange::USD("2020-02-19".to_string()), 3.9556f64);
- exchange_rates.insert(Exchange::USD("2014-07-30".to_string()), 3.0978f64);
- exchange_rates.insert(Exchange::USD("2012-01-20".to_string()), 3.3537f64);
- exchange_rates.insert(Exchange::USD("2025-03-28".to_string()), 3.8817f64);
- exchange_rates.insert(Exchange::EUR("2025-11-10".to_string()), 4.2351f64);
- exchange_rates.insert(Exchange::USD("2013-09-27".to_string()), 3.1328f64);
- exchange_rates.insert(Exchange::USD("2019-03-22".to_string()), 3.7948f64);
- exchange_rates.insert(Exchange::EUR("2025-10-31".to_string()), 4.2543f64);
- exchange_rates.insert(Exchange::USD("2020-03-27".to_string()), 4.1127f64);
- exchange_rates.insert(Exchange::USD("2025-04-22".to_string()), 3.722f64);
- exchange_rates.insert(Exchange::EUR("2023-10-04".to_string()), 4.6303f64);
- exchange_rates.insert(Exchange::USD("2023-05-29".to_string()), 4.2234f64);
- exchange_rates.insert(Exchange::USD("2015-12-31".to_string()), 3.9011f64);
- exchange_rates.insert(Exchange::USD("2016-02-05".to_string()), 3.942f64);
- exchange_rates.insert(Exchange::USD("2023-06-28".to_string()), 4.0719f64);
- exchange_rates.insert(Exchange::USD("2015-09-04".to_string()), 3.7952f64);
- exchange_rates.insert(Exchange::USD("2023-09-27".to_string()), 4.3622f64);
- exchange_rates.insert(Exchange::EUR("2025-11-28".to_string()), 4.2369f64);
- exchange_rates.insert(Exchange::EUR("2024-08-01".to_string()), 4.2924f64);
- exchange_rates.insert(Exchange::USD("2025-10-27".to_string()), 3.6395f64);
- exchange_rates.insert(Exchange::USD("2012-11-07".to_string()), 3.2031f64);
- exchange_rates.insert(Exchange::USD("2013-06-04".to_string()), 3.2524f64);
- exchange_rates.insert(Exchange::USD("2023-11-24".to_string()), 4.0103f64);
- exchange_rates.insert(Exchange::USD("2013-03-11".to_string()), 3.1828f64);
- exchange_rates.insert(Exchange::USD("2017-11-08".to_string()), 3.6595f64);
- exchange_rates.insert(Exchange::EUR("2024-11-04".to_string()), 4.3443f64);
- exchange_rates.insert(Exchange::USD("2024-06-19".to_string()), 4.0387f64);
- exchange_rates.insert(Exchange::USD("2023-08-16".to_string()), 4.0832f64);
- exchange_rates.insert(Exchange::USD("2024-12-31".to_string()), 4.1012f64);
- exchange_rates.insert(Exchange::USD("2013-01-25".to_string()), 3.1186f64);
- exchange_rates.insert(Exchange::USD("2025-12-18".to_string()), 3.5893f64);
- exchange_rates.insert(Exchange::USD("2023-09-04".to_string()), 4.1353f64);
- exchange_rates.insert(Exchange::USD("2016-07-22".to_string()), 3.9504f64);
- exchange_rates.insert(Exchange::USD("2018-05-16".to_string()), 3.6241f64);
- exchange_rates.insert(Exchange::USD("2020-09-11".to_string()), 3.7534f64);
- exchange_rates.insert(Exchange::USD("2021-05-05".to_string()), 3.8136f64);
- exchange_rates.insert(Exchange::USD("2022-10-05".to_string()), 4.838f64);
- exchange_rates.insert(Exchange::USD("2012-06-25".to_string()), 3.4105f64);
- exchange_rates.insert(Exchange::EUR("2025-09-12".to_string()), 4.2593f64);
- exchange_rates.insert(Exchange::USD("2025-05-21".to_string()), 3.7452f64);
- exchange_rates.insert(Exchange::USD("2023-12-19".to_string()), 3.9591f64);
- exchange_rates.insert(Exchange::USD("2022-03-14".to_string()), 4.3221f64);
- exchange_rates.insert(Exchange::USD("2021-12-27".to_string()), 4.0889f64);
- exchange_rates.insert(Exchange::USD("2012-07-19".to_string()), 3.39f64);
- exchange_rates.insert(Exchange::USD("2014-08-21".to_string()), 3.1569f64);
- exchange_rates.insert(Exchange::EUR("2025-08-20".to_string()), 4.2524f64);
- exchange_rates.insert(Exchange::EUR("2023-01-13".to_string()), 4.6915f64);
- exchange_rates.insert(Exchange::USD("2022-01-13".to_string()), 3.9463f64);
- exchange_rates.insert(Exchange::USD("2022-08-19".to_string()), 4.7061f64);
- exchange_rates.insert(Exchange::USD("2021-10-12".to_string()), 3.9664f64);
- exchange_rates.insert(Exchange::USD("2016-08-01".to_string()), 3.904f64);
- exchange_rates.insert(Exchange::USD("2014-06-03".to_string()), 3.0449f64);
- exchange_rates.insert(Exchange::USD("2013-02-12".to_string()), 3.1159f64);
- exchange_rates.insert(Exchange::USD("2020-07-02".to_string()), 3.9528f64);
- exchange_rates.insert(Exchange::EUR("2023-02-24".to_string()), 4.7245f64);
- exchange_rates.insert(Exchange::EUR("2023-05-19".to_string()), 4.5367f64);
- exchange_rates.insert(Exchange::USD("2018-01-30".to_string()), 3.3442f64);
- exchange_rates.insert(Exchange::USD("2023-01-16".to_string()), 4.3436f64);
- exchange_rates.insert(Exchange::USD("2020-06-15".to_string()), 3.9413f64);
- exchange_rates.insert(Exchange::USD("2023-05-16".to_string()), 4.1228f64);
- exchange_rates.insert(Exchange::USD("2017-03-16".to_string()), 4.03f64);
- exchange_rates.insert(Exchange::EUR("2024-03-14".to_string()), 4.287f64);
- exchange_rates.insert(Exchange::USD("2023-04-03".to_string()), 4.3168f64);
- exchange_rates.insert(Exchange::USD("2015-10-14".to_string()), 3.7129f64);
- exchange_rates.insert(Exchange::USD("2014-01-23".to_string()), 3.0559f64);
- exchange_rates.insert(Exchange::EUR("2025-05-22".to_string()), 4.2447f64);
- exchange_rates.insert(Exchange::USD("2017-04-10".to_string()), 3.9956f64);
- exchange_rates.insert(Exchange::EUR("2025-01-22".to_string()), 4.2461f64);
- exchange_rates.insert(Exchange::USD("2022-02-24".to_string()), 4.1281f64);
- exchange_rates.insert(Exchange::USD("2024-07-30".to_string()), 3.9567f64);
- exchange_rates.insert(Exchange::USD("2021-01-12".to_string()), 3.7188f64);
- exchange_rates.insert(Exchange::USD("2019-01-11".to_string()), 3.7289f64);
- exchange_rates.insert(Exchange::USD("2015-08-11".to_string()), 3.8087f64);
- exchange_rates.insert(Exchange::EUR("2024-02-13".to_string()), 4.3214f64);
- exchange_rates.insert(Exchange::USD("2021-07-16".to_string()), 3.8808f64);
- exchange_rates.insert(Exchange::USD("2014-04-30".to_string()), 3.044f64);
- exchange_rates.insert(Exchange::USD("2017-06-12".to_string()), 3.735f64);
- exchange_rates.insert(Exchange::USD("2019-09-13".to_string()), 3.912f64);
- exchange_rates.insert(Exchange::USD("2025-01-03".to_string()), 4.1512f64);
- exchange_rates.insert(Exchange::USD("2025-07-24".to_string()), 3.6158f64);
- exchange_rates.insert(Exchange::USD("2012-05-30".to_string()), 3.5139f64);
- exchange_rates.insert(Exchange::USD("2014-11-14".to_string()), 3.3933f64);
- exchange_rates.insert(Exchange::USD("2017-01-23".to_string()), 4.076f64);
- exchange_rates.insert(Exchange::USD("2014-09-18".to_string()), 3.249f64);
- exchange_rates.insert(Exchange::USD("2013-10-25".to_string()), 3.0326f64);
- exchange_rates.insert(Exchange::USD("2017-08-31".to_string()), 3.5822f64);
- exchange_rates.insert(Exchange::USD("2023-07-03".to_string()), 4.0714f64);
- exchange_rates.insert(Exchange::USD("2020-01-10".to_string()), 3.8272f64);
- exchange_rates.insert(Exchange::USD("2016-02-09".to_string()), 3.9771f64);
- exchange_rates.insert(Exchange::USD("2022-05-20".to_string()), 4.3832f64);
- exchange_rates.insert(Exchange::EUR("2024-05-10".to_string()), 4.2979f64);
- exchange_rates.insert(Exchange::USD("2025-03-25".to_string()), 3.8578f64);
- exchange_rates.insert(Exchange::USD("2018-02-09".to_string()), 3.4263f64);
- exchange_rates.insert(Exchange::EUR("2023-12-14".to_string()), 4.3053f64);
- exchange_rates.insert(Exchange::USD("2015-11-13".to_string()), 3.9388f64);
- exchange_rates.insert(Exchange::EUR("2025-09-29".to_string()), 4.2688f64);
- exchange_rates.insert(Exchange::USD("2017-10-11".to_string()), 3.6219f64);
- exchange_rates.insert(Exchange::USD("2016-08-24".to_string()), 3.8174f64);
- exchange_rates.insert(Exchange::EUR("2024-07-09".to_string()), 4.2633f64);
- exchange_rates.insert(Exchange::USD("2024-09-20".to_string()), 3.8317f64);
- exchange_rates.insert(Exchange::USD("2013-11-14".to_string()), 3.115f64);
- exchange_rates.insert(Exchange::USD("2023-02-24".to_string()), 4.463f64);
- exchange_rates.insert(Exchange::USD("2017-05-30".to_string()), 3.7471f64);
- exchange_rates.insert(Exchange::USD("2012-11-15".to_string()), 3.2678f64);
- exchange_rates.insert(Exchange::USD("2015-06-18".to_string()), 3.6556f64);
- exchange_rates.insert(Exchange::USD("2024-08-23".to_string()), 3.8453f64);
- exchange_rates.insert(Exchange::USD("2022-04-13".to_string()), 4.2872f64);
- exchange_rates.insert(Exchange::USD("2024-06-20".to_string()), 4.0345f64);
- exchange_rates.insert(Exchange::USD("2022-04-12".to_string()), 4.2926f64);
- exchange_rates.insert(Exchange::USD("2015-09-07".to_string()), 3.7928f64);
- exchange_rates.insert(Exchange::USD("2013-12-11".to_string()), 3.0386f64);
- exchange_rates.insert(Exchange::USD("2021-04-02".to_string()), 3.8986f64);
- exchange_rates.insert(Exchange::USD("2013-08-12".to_string()), 3.151f64);
- exchange_rates.insert(Exchange::USD("2013-10-23".to_string()), 3.0385f64);
- exchange_rates.insert(Exchange::USD("2013-03-28".to_string()), 3.2773f64);
- exchange_rates.insert(Exchange::EUR("2023-05-10".to_string()), 4.5488f64);
- exchange_rates.insert(Exchange::EUR("2024-04-18".to_string()), 4.3309f64);
- exchange_rates.insert(Exchange::USD("2020-01-15".to_string()), 3.7992f64);
- exchange_rates.insert(Exchange::USD("2017-11-27".to_string()), 3.5276f64);
- exchange_rates.insert(Exchange::EUR("2023-07-17".to_string()), 4.452f64);
- exchange_rates.insert(Exchange::USD("2022-02-07".to_string()), 3.9872f64);
- exchange_rates.insert(Exchange::USD("2014-08-14".to_string()), 3.1285f64);
- exchange_rates.insert(Exchange::USD("2013-05-24".to_string()), 3.24f64);
- exchange_rates.insert(Exchange::USD("2018-03-19".to_string()), 3.4341f64);
- exchange_rates.insert(Exchange::USD("2025-06-11".to_string()), 3.7306f64);
- exchange_rates.insert(Exchange::USD("2023-11-09".to_string()), 4.1513f64);
- exchange_rates.insert(Exchange::USD("2015-05-19".to_string()), 3.6152f64);
- exchange_rates.insert(Exchange::USD("2016-07-12".to_string()), 3.9807f64);
- exchange_rates.insert(Exchange::USD("2014-09-16".to_string()), 3.2419f64);
- exchange_rates.insert(Exchange::USD("2019-02-26".to_string()), 3.8124f64);
- exchange_rates.insert(Exchange::USD("2023-09-08".to_string()), 4.2958f64);
- exchange_rates.insert(Exchange::EUR("2025-12-29".to_string()), 4.2274f64);
- exchange_rates.insert(Exchange::USD("2013-05-14".to_string()), 3.1998f64);
- exchange_rates.insert(Exchange::USD("2013-01-02".to_string()), 3.066f64);
- exchange_rates.insert(Exchange::USD("2014-07-07".to_string()), 3.0497f64);
- exchange_rates.insert(Exchange::USD("2015-04-02".to_string()), 3.7524f64);
- exchange_rates.insert(Exchange::EUR("2023-02-02".to_string()), 4.7079f64);
- exchange_rates.insert(Exchange::USD("2015-12-30".to_string()), 3.8801f64);
- exchange_rates.insert(Exchange::USD("2022-06-01".to_string()), 4.2817f64);
- exchange_rates.insert(Exchange::EUR("2024-08-05".to_string()), 4.3073f64);
- exchange_rates.insert(Exchange::USD("2019-02-28".to_string()), 3.7853f64);
- exchange_rates.insert(Exchange::USD("2022-06-14".to_string()), 4.4478f64);
- exchange_rates.insert(Exchange::USD("2016-09-22".to_string()), 3.8128f64);
- exchange_rates.insert(Exchange::USD("2014-04-03".to_string()), 3.033f64);
- exchange_rates.insert(Exchange::USD("2018-05-04".to_string()), 3.5754f64);
- exchange_rates.insert(Exchange::USD("2024-04-05".to_string()), 3.9571f64);
- exchange_rates.insert(Exchange::USD("2020-11-06".to_string()), 3.8194f64);
- exchange_rates.insert(Exchange::USD("2019-01-14".to_string()), 3.7458f64);
- exchange_rates.insert(Exchange::USD("2022-04-01".to_string()), 4.1978f64);
- exchange_rates.insert(Exchange::USD("2020-11-18".to_string()), 3.7621f64);
- exchange_rates.insert(Exchange::USD("2018-06-11".to_string()), 3.6247f64);
- exchange_rates.insert(Exchange::USD("2022-07-29".to_string()), 4.6365f64);
- exchange_rates.insert(Exchange::USD("2021-03-23".to_string()), 3.8746f64);
- exchange_rates.insert(Exchange::USD("2022-04-07".to_string()), 4.2727f64);
- exchange_rates.insert(Exchange::USD("2018-10-31".to_string()), 3.8203f64);
- exchange_rates.insert(Exchange::EUR("2025-10-08".to_string()), 4.2533f64);
- exchange_rates.insert(Exchange::EUR("2023-12-12".to_string()), 4.3396f64);
- exchange_rates.insert(Exchange::USD("2020-12-29".to_string()), 3.6778f64);
- exchange_rates.insert(Exchange::USD("2018-06-04".to_string()), 3.6665f64);
- exchange_rates.insert(Exchange::USD("2025-12-16".to_string()), 3.593f64);
- exchange_rates.insert(Exchange::USD("2020-03-26".to_string()), 4.1988f64);
- exchange_rates.insert(Exchange::USD("2023-08-03".to_string()), 4.081f64);
- exchange_rates.insert(Exchange::USD("2019-05-02".to_string()), 3.8177f64);
- exchange_rates.insert(Exchange::EUR("2025-04-29".to_string()), 4.2646f64);
- exchange_rates.insert(Exchange::USD("2013-08-19".to_string()), 3.1873f64);
- exchange_rates.insert(Exchange::USD("2025-05-20".to_string()), 3.7747f64);
- exchange_rates.insert(Exchange::USD("2024-09-30".to_string()), 3.8193f64);
- exchange_rates.insert(Exchange::USD("2023-03-08".to_string()), 4.4626f64);
- exchange_rates.insert(Exchange::USD("2022-01-05".to_string()), 4.0396f64);
- exchange_rates.insert(Exchange::USD("2014-02-20".to_string()), 3.049f64);
- exchange_rates.insert(Exchange::EUR("2024-08-02".to_string()), 4.2903f64);
- exchange_rates.insert(Exchange::USD("2016-05-19".to_string()), 3.9161f64);
- exchange_rates.insert(Exchange::EUR("2024-02-08".to_string()), 4.3449f64);
- exchange_rates.insert(Exchange::USD("2018-04-10".to_string()), 3.4068f64);
- exchange_rates.insert(Exchange::USD("2013-09-06".to_string()), 3.2732f64);
- exchange_rates.insert(Exchange::USD("2012-02-03".to_string()), 3.1848f64);
- exchange_rates.insert(Exchange::USD("2016-12-20".to_string()), 4.2493f64);
- exchange_rates.insert(Exchange::USD("2016-02-23".to_string()), 3.9671f64);
- exchange_rates.insert(Exchange::USD("2012-05-18".to_string()), 3.4431f64);
- exchange_rates.insert(Exchange::USD("2017-02-13".to_string()), 4.0496f64);
- exchange_rates.insert(Exchange::USD("2018-05-07".to_string()), 3.5634f64);
- exchange_rates.insert(Exchange::USD("2012-01-04".to_string()), 3.432f64);
- exchange_rates.insert(Exchange::USD("2017-09-13".to_string()), 3.5627f64);
- exchange_rates.insert(Exchange::USD("2018-07-24".to_string()), 3.702f64);
- exchange_rates.insert(Exchange::USD("2023-11-29".to_string()), 3.9478f64);
- exchange_rates.insert(Exchange::EUR("2025-11-27".to_string()), 4.227f64);
- exchange_rates.insert(Exchange::USD("2012-08-10".to_string()), 3.3195f64);
- exchange_rates.insert(Exchange::USD("2020-03-02".to_string()), 3.9023f64);
- exchange_rates.insert(Exchange::USD("2014-10-03".to_string()), 3.3079f64);
- exchange_rates.insert(Exchange::EUR("2025-11-06".to_string()), 4.2566f64);
- exchange_rates.insert(Exchange::USD("2016-03-21".to_string()), 3.7838f64);
- exchange_rates.insert(Exchange::USD("2025-08-26".to_string()), 3.6716f64);
- exchange_rates.insert(Exchange::USD("2023-09-13".to_string()), 4.3225f64);
- exchange_rates.insert(Exchange::USD("2017-02-24".to_string()), 4.0681f64);
- exchange_rates.insert(Exchange::USD("2015-02-26".to_string()), 3.6519f64);
- exchange_rates.insert(Exchange::USD("2012-11-23".to_string()), 3.1945f64);
- exchange_rates.insert(Exchange::EUR("2025-01-08".to_string()), 4.2656f64);
- exchange_rates.insert(Exchange::USD("2024-05-29".to_string()), 3.9244f64);
- exchange_rates.insert(Exchange::USD("2024-12-17".to_string()), 4.0623f64);
- exchange_rates.insert(Exchange::USD("2022-09-30".to_string()), 4.9533f64);
- exchange_rates.insert(Exchange::USD("2014-12-15".to_string()), 3.3621f64);
- exchange_rates.insert(Exchange::EUR("2023-03-22".to_string()), 4.6888f64);
- exchange_rates.insert(Exchange::USD("2017-02-09".to_string()), 4.0332f64);
- exchange_rates.insert(Exchange::USD("2020-04-21".to_string()), 4.1779f64);
- exchange_rates.insert(Exchange::USD("2016-07-29".to_string()), 3.9364f64);
- exchange_rates.insert(Exchange::EUR("2024-07-26".to_string()), 4.2773f64);
- exchange_rates.insert(Exchange::USD("2024-02-23".to_string()), 4.005f64);
- exchange_rates.insert(Exchange::USD("2020-05-08".to_string()), 4.2065f64);
- exchange_rates.insert(Exchange::USD("2024-12-30".to_string()), 4.096f64);
- exchange_rates.insert(Exchange::EUR("2025-02-18".to_string()), 4.1574f64);
- exchange_rates.insert(Exchange::USD("2017-07-12".to_string()), 3.7034f64);
- exchange_rates.insert(Exchange::USD("2025-06-12".to_string()), 3.6929f64);
- exchange_rates.insert(Exchange::USD("2024-03-21".to_string()), 3.9431f64);
- exchange_rates.insert(Exchange::USD("2021-04-13".to_string()), 3.8342f64);
- exchange_rates.insert(Exchange::USD("2016-11-10".to_string()), 3.9856f64);
- exchange_rates.insert(Exchange::USD("2019-08-26".to_string()), 3.9335f64);
- exchange_rates.insert(Exchange::USD("2013-03-01".to_string()), 3.1769f64);
- exchange_rates.insert(Exchange::EUR("2023-08-23".to_string()), 4.4834f64);
- exchange_rates.insert(Exchange::EUR("2024-08-19".to_string()), 4.2693f64);
- exchange_rates.insert(Exchange::EUR("2025-12-11".to_string()), 4.2284f64);
- exchange_rates.insert(Exchange::USD("2022-12-15".to_string()), 4.41f64);
- exchange_rates.insert(Exchange::EUR("2024-11-20".to_string()), 4.3404f64);
- exchange_rates.insert(Exchange::USD("2020-12-21".to_string()), 3.7082f64);
- exchange_rates.insert(Exchange::USD("2016-06-03".to_string()), 3.9384f64);
- exchange_rates.insert(Exchange::USD("2015-01-26".to_string()), 3.7601f64);
- exchange_rates.insert(Exchange::EUR("2024-09-10".to_string()), 4.2827f64);
- exchange_rates.insert(Exchange::USD("2023-02-13".to_string()), 4.4856f64);
- exchange_rates.insert(Exchange::USD("2016-08-03".to_string()), 3.8516f64);
- exchange_rates.insert(Exchange::USD("2023-03-23".to_string()), 4.3011f64);
- exchange_rates.insert(Exchange::EUR("2025-12-30".to_string()), 4.2293f64);
- exchange_rates.insert(Exchange::USD("2020-07-27".to_string()), 3.7643f64);
- exchange_rates.insert(Exchange::USD("2021-05-19".to_string()), 3.7087f64);
- exchange_rates.insert(Exchange::USD("2018-03-16".to_string()), 3.4214f64);
- exchange_rates.insert(Exchange::EUR("2024-10-31".to_string()), 4.353f64);
- exchange_rates.insert(Exchange::EUR("2025-06-04".to_string()), 4.2778f64);
- exchange_rates.insert(Exchange::EUR("2024-09-25".to_string()), 4.2634f64);
- exchange_rates.insert(Exchange::EUR("2023-04-27".to_string()), 4.5915f64);
- exchange_rates.insert(Exchange::USD("2022-03-04".to_string()), 4.391f64);
- exchange_rates.insert(Exchange::USD("2025-07-01".to_string()), 3.593f64);
- exchange_rates.insert(Exchange::USD("2023-04-26".to_string()), 4.1557f64);
- exchange_rates.insert(Exchange::USD("2025-12-15".to_string()), 3.5928f64);
- exchange_rates.insert(Exchange::USD("2018-12-18".to_string()), 3.7668f64);
- exchange_rates.insert(Exchange::USD("2025-10-21".to_string()), 3.6479f64);
- exchange_rates.insert(Exchange::USD("2020-09-16".to_string()), 3.7526f64);
- exchange_rates.insert(Exchange::EUR("2023-09-26".to_string()), 4.6077f64);
- exchange_rates.insert(Exchange::USD("2022-09-08".to_string()), 4.7268f64);
- exchange_rates.insert(Exchange::USD("2022-03-16".to_string()), 4.2828f64);
- exchange_rates.insert(Exchange::USD("2016-07-11".to_string()), 4.006f64);
- exchange_rates.insert(Exchange::USD("2017-09-19".to_string()), 3.5821f64);
- exchange_rates.insert(Exchange::USD("2022-12-01".to_string()), 4.4911f64);
- exchange_rates.insert(Exchange::EUR("2023-12-29".to_string()), 4.348f64);
- exchange_rates.insert(Exchange::USD("2018-09-10".to_string()), 3.7283f64);
- exchange_rates.insert(Exchange::EUR("2024-06-17".to_string()), 4.3608f64);
- exchange_rates.insert(Exchange::USD("2018-05-11".to_string()), 3.5708f64);
- exchange_rates.insert(Exchange::USD("2015-01-12".to_string()), 3.6218f64);
- exchange_rates.insert(Exchange::USD("2013-03-25".to_string()), 3.195f64);
- exchange_rates.insert(Exchange::USD("2014-10-27".to_string()), 3.3288f64);
- exchange_rates.insert(Exchange::EUR("2023-06-26".to_string()), 4.4297f64);
- exchange_rates.insert(Exchange::USD("2018-02-06".to_string()), 3.3498f64);
- exchange_rates.insert(Exchange::USD("2018-08-13".to_string()), 3.7862f64);
- exchange_rates.insert(Exchange::USD("2016-08-18".to_string()), 3.7826f64);
- exchange_rates.insert(Exchange::USD("2015-01-20".to_string()), 3.7346f64);
- exchange_rates.insert(Exchange::EUR("2024-07-08".to_string()), 4.278f64);
- exchange_rates.insert(Exchange::USD("2023-01-30".to_string()), 4.3258f64);
- exchange_rates.insert(Exchange::EUR("2024-05-21".to_string()), 4.2572f64);
- exchange_rates.insert(Exchange::USD("2013-12-12".to_string()), 3.0415f64);
- exchange_rates.insert(Exchange::USD("2025-02-18".to_string()), 3.9729f64);
- exchange_rates.insert(Exchange::USD("2020-09-03".to_string()), 3.7337f64);
- exchange_rates.insert(Exchange::USD("2019-11-08".to_string()), 3.8625f64);
- exchange_rates.insert(Exchange::USD("2015-10-29".to_string()), 3.8974f64);
- exchange_rates.insert(Exchange::USD("2017-11-03".to_string()), 3.6408f64);
- exchange_rates.insert(Exchange::USD("2012-02-09".to_string()), 3.1487f64);
- exchange_rates.insert(Exchange::USD("2017-01-02".to_string()), 4.2106f64);
- exchange_rates.insert(Exchange::USD("2021-10-19".to_string()), 3.9212f64);
- exchange_rates.insert(Exchange::USD("2019-09-06".to_string()), 3.9315f64);
- exchange_rates.insert(Exchange::USD("2019-07-15".to_string()), 3.7856f64);
- exchange_rates.insert(Exchange::USD("2017-03-31".to_string()), 3.9455f64);
- exchange_rates.insert(Exchange::USD("2016-11-21".to_string()), 4.1748f64);
- exchange_rates.insert(Exchange::USD("2015-11-30".to_string()), 4.0304f64);
- exchange_rates.insert(Exchange::USD("2024-11-07".to_string()), 4.0414f64);
- exchange_rates.insert(Exchange::USD("2022-05-09".to_string()), 4.4784f64);
- exchange_rates.insert(Exchange::USD("2012-10-30".to_string()), 3.2036f64);
- exchange_rates.insert(Exchange::USD("2019-11-22".to_string()), 3.8853f64);
- exchange_rates.insert(Exchange::USD("2014-02-24".to_string()), 3.0255f64);
- exchange_rates.insert(Exchange::USD("2018-07-25".to_string()), 3.6793f64);
- exchange_rates.insert(Exchange::EUR("2025-07-17".to_string()), 4.2559f64);
- exchange_rates.insert(Exchange::USD("2017-05-19".to_string()), 3.7735f64);
- exchange_rates.insert(Exchange::USD("2015-08-07".to_string()), 3.8326f64);
- exchange_rates.insert(Exchange::USD("2025-04-16".to_string()), 3.7851f64);
- exchange_rates.insert(Exchange::USD("2021-09-13".to_string()), 3.8495f64);
- exchange_rates.insert(Exchange::USD("2016-05-09".to_string()), 3.873f64);
- exchange_rates.insert(Exchange::USD("2022-02-02".to_string()), 4.0283f64);
- exchange_rates.insert(Exchange::USD("2022-10-26".to_string()), 4.7538f64);
- exchange_rates.insert(Exchange::USD("2020-04-01".to_string()), 4.1701f64);
- exchange_rates.insert(Exchange::USD("2020-09-08".to_string()), 3.7652f64);
- exchange_rates.insert(Exchange::EUR("2023-03-08".to_string()), 4.7018f64);
- exchange_rates.insert(Exchange::USD("2019-06-24".to_string()), 3.736f64);
- exchange_rates.insert(Exchange::USD("2021-01-21".to_string()), 3.7312f64);
- exchange_rates.insert(Exchange::EUR("2023-05-02".to_string()), 4.5892f64);
- exchange_rates.insert(Exchange::USD("2018-01-23".to_string()), 3.4084f64);
- exchange_rates.insert(Exchange::USD("2019-11-07".to_string()), 3.8502f64);
- exchange_rates.insert(Exchange::EUR("2025-02-26".to_string()), 4.1394f64);
- exchange_rates.insert(Exchange::USD("2019-08-05".to_string()), 3.8739f64);
- exchange_rates.insert(Exchange::USD("2025-03-12".to_string()), 3.8496f64);
- exchange_rates.insert(Exchange::USD("2019-05-07".to_string()), 3.8278f64);
- exchange_rates.insert(Exchange::USD("2017-05-22".to_string()), 3.7526f64);
- exchange_rates.insert(Exchange::USD("2020-03-04".to_string()), 3.8536f64);
- exchange_rates.insert(Exchange::USD("2017-04-13".to_string()), 3.9886f64);
- exchange_rates.insert(Exchange::USD("2017-01-13".to_string()), 4.1084f64);
- exchange_rates.insert(Exchange::USD("2019-07-24".to_string()), 3.8229f64);
- exchange_rates.insert(Exchange::USD("2017-10-17".to_string()), 3.5964f64);
- exchange_rates.insert(Exchange::USD("2015-12-16".to_string()), 3.9644f64);
- exchange_rates.insert(Exchange::EUR("2025-11-04".to_string()), 4.2575f64);
- exchange_rates.insert(Exchange::USD("2024-08-16".to_string()), 3.8914f64);
- exchange_rates.insert(Exchange::USD("2023-01-26".to_string()), 4.3354f64);
- exchange_rates.insert(Exchange::USD("2019-01-07".to_string()), 3.7575f64);
- exchange_rates.insert(Exchange::EUR("2023-09-05".to_string()), 4.4764f64);
- exchange_rates.insert(Exchange::USD("2022-11-08".to_string()), 4.6893f64);
- exchange_rates.insert(Exchange::EUR("2025-04-30".to_string()), 4.2778f64);
- exchange_rates.insert(Exchange::USD("2017-10-03".to_string()), 3.6737f64);
- exchange_rates.insert(Exchange::USD("2017-12-12".to_string()), 3.5708f64);
- exchange_rates.insert(Exchange::USD("2020-08-11".to_string()), 3.739f64);
- exchange_rates.insert(Exchange::USD("2023-03-16".to_string()), 4.4248f64);
- exchange_rates.insert(Exchange::EUR("2023-06-12".to_string()), 4.4366f64);
- exchange_rates.insert(Exchange::USD("2020-09-10".to_string()), 3.761f64);
- exchange_rates.insert(Exchange::USD("2017-04-06".to_string()), 3.9792f64);
- exchange_rates.insert(Exchange::USD("2013-12-03".to_string()), 3.0973f64);
- exchange_rates.insert(Exchange::EUR("2025-06-18".to_string()), 4.2717f64);
- exchange_rates.insert(Exchange::EUR("2023-01-03".to_string()), 4.68f64);
- exchange_rates.insert(Exchange::USD("2020-08-03".to_string()), 3.7499f64);
- exchange_rates.insert(Exchange::USD("2015-09-03".to_string()), 3.7645f64);
- exchange_rates.insert(Exchange::USD("2023-07-27".to_string()), 3.9702f64);
- exchange_rates.insert(Exchange::USD("2017-05-17".to_string()), 3.7808f64);
- exchange_rates.insert(Exchange::USD("2015-06-30".to_string()), 3.7645f64);
- exchange_rates.insert(Exchange::USD("2013-09-25".to_string()), 3.1234f64);
- exchange_rates.insert(Exchange::USD("2024-10-25".to_string()), 4.0219f64);
- exchange_rates.insert(Exchange::USD("2022-09-12".to_string()), 4.6225f64);
- exchange_rates.insert(Exchange::USD("2017-08-30".to_string()), 3.5678f64);
- exchange_rates.insert(Exchange::USD("2018-04-17".to_string()), 3.3572f64);
- exchange_rates.insert(Exchange::USD("2021-02-02".to_string()), 3.7311f64);
- exchange_rates.insert(Exchange::USD("2017-12-27".to_string()), 3.5253f64);
- exchange_rates.insert(Exchange::USD("2012-03-15".to_string()), 3.1723f64);
- exchange_rates.insert(Exchange::USD("2025-05-05".to_string()), 3.7752f64);
- exchange_rates.insert(Exchange::USD("2018-05-30".to_string()), 3.72f64);
- exchange_rates.insert(Exchange::USD("2019-01-17".to_string()), 3.7615f64);
- exchange_rates.insert(Exchange::USD("2023-04-07".to_string()), 4.2932f64);
- exchange_rates.insert(Exchange::USD("2025-04-04".to_string()), 3.856f64);
- exchange_rates.insert(Exchange::USD("2017-05-15".to_string()), 3.8463f64);
- exchange_rates.insert(Exchange::USD("2019-10-28".to_string()), 3.8529f64);
- exchange_rates.insert(Exchange::USD("2017-08-03".to_string()), 3.5918f64);
- exchange_rates.insert(Exchange::EUR("2023-06-20".to_string()), 4.4386f64);
- exchange_rates.insert(Exchange::USD("2013-10-28".to_string()), 3.0271f64);
- exchange_rates.insert(Exchange::EUR("2024-04-05".to_string()), 4.2883f64);
- exchange_rates.insert(Exchange::USD("2018-06-01".to_string()), 3.6934f64);
- exchange_rates.insert(Exchange::USD("2016-01-05".to_string()), 4.0073f64);
- exchange_rates.insert(Exchange::EUR("2024-10-04".to_string()), 4.313f64);
- exchange_rates.insert(Exchange::USD("2016-07-19".to_string()), 3.9582f64);
- exchange_rates.insert(Exchange::USD("2017-11-16".to_string()), 3.5958f64);
- exchange_rates.insert(Exchange::USD("2016-12-22".to_string()), 4.2222f64);
- exchange_rates.insert(Exchange::EUR("2025-09-11".to_string()), 4.2626f64);
- exchange_rates.insert(Exchange::USD("2014-02-17".to_string()), 3.025f64);
- exchange_rates.insert(Exchange::USD("2025-11-17".to_string()), 3.64f64);
- exchange_rates.insert(Exchange::USD("2015-05-27".to_string()), 3.7906f64);
- exchange_rates.insert(Exchange::USD("2015-09-28".to_string()), 3.7861f64);
- exchange_rates.insert(Exchange::USD("2013-06-21".to_string()), 3.2743f64);
- exchange_rates.insert(Exchange::USD("2012-10-22".to_string()), 3.147f64);
- exchange_rates.insert(Exchange::USD("2017-05-10".to_string()), 3.8777f64);
- exchange_rates.insert(Exchange::USD("2016-06-08".to_string()), 3.815f64);
- exchange_rates.insert(Exchange::USD("2012-11-30".to_string()), 3.1585f64);
- exchange_rates.insert(Exchange::USD("2023-06-21".to_string()), 4.0648f64);
- exchange_rates.insert(Exchange::USD("2025-01-24".to_string()), 4.0124f64);
- exchange_rates.insert(Exchange::USD("2025-07-25".to_string()), 3.6228f64);
- exchange_rates.insert(Exchange::USD("2023-01-20".to_string()), 4.352f64);
- exchange_rates.insert(Exchange::USD("2021-10-22".to_string()), 3.9576f64);
- exchange_rates.insert(Exchange::USD("2022-10-12".to_string()), 5.0014f64);
- exchange_rates.insert(Exchange::USD("2025-03-31".to_string()), 3.8643f64);
- exchange_rates.insert(Exchange::EUR("2024-10-21".to_string()), 4.3178f64);
- exchange_rates.insert(Exchange::USD("2016-09-07".to_string()), 3.8515f64);
- exchange_rates.insert(Exchange::USD("2021-12-31".to_string()), 4.06f64);
- exchange_rates.insert(Exchange::USD("2021-11-09".to_string()), 3.9622f64);
- exchange_rates.insert(Exchange::USD("2020-10-01".to_string()), 3.8513f64);
- exchange_rates.insert(Exchange::USD("2014-12-11".to_string()), 3.3611f64);
- exchange_rates.insert(Exchange::USD("2012-02-16".to_string()), 3.2502f64);
- exchange_rates.insert(Exchange::USD("2013-07-08".to_string()), 3.3576f64);
- exchange_rates.insert(Exchange::USD("2012-12-13".to_string()), 3.1333f64);
- exchange_rates.insert(Exchange::USD("2012-06-18".to_string()), 3.3741f64);
- exchange_rates.insert(Exchange::USD("2013-08-02".to_string()), 3.2201f64);
- exchange_rates.insert(Exchange::USD("2012-04-18".to_string()), 3.1902f64);
- exchange_rates.insert(Exchange::EUR("2023-09-19".to_string()), 4.6458f64);
- exchange_rates.insert(Exchange::USD("2014-03-24".to_string()), 3.0483f64);
- exchange_rates.insert(Exchange::USD("2024-05-28".to_string()), 3.9183f64);
- exchange_rates.insert(Exchange::USD("2014-05-20".to_string()), 3.062f64);
- exchange_rates.insert(Exchange::EUR("2023-11-22".to_string()), 4.3804f64);
- exchange_rates.insert(Exchange::USD("2022-04-19".to_string()), 4.2887f64);
- exchange_rates.insert(Exchange::EUR("2025-03-21".to_string()), 4.1979f64);
- exchange_rates.insert(Exchange::USD("2023-08-18".to_string()), 4.1285f64);
- exchange_rates.insert(Exchange::USD("2025-02-24".to_string()), 3.9734f64);
- exchange_rates.insert(Exchange::USD("2014-03-10".to_string()), 3.0266f64);
- exchange_rates.insert(Exchange::USD("2020-11-19".to_string()), 3.7872f64);
- exchange_rates.insert(Exchange::USD("2012-11-16".to_string()), 3.2682f64);
- exchange_rates.insert(Exchange::EUR("2023-08-07".to_string()), 4.4279f64);
- exchange_rates.insert(Exchange::EUR("2025-12-01".to_string()), 4.2286f64);
- exchange_rates.insert(Exchange::USD("2021-04-29".to_string()), 3.7786f64);
- exchange_rates.insert(Exchange::USD("2024-01-19".to_string()), 4.0289f64);
- exchange_rates.insert(Exchange::EUR("2024-03-28".to_string()), 4.3191f64);
- exchange_rates.insert(Exchange::USD("2023-01-04".to_string()), 4.3998f64);
- exchange_rates.insert(Exchange::USD("2017-02-15".to_string()), 4.0752f64);
- exchange_rates.insert(Exchange::USD("2017-01-26".to_string()), 4.059f64);
- exchange_rates.insert(Exchange::EUR("2024-09-23".to_string()), 4.2785f64);
- exchange_rates.insert(Exchange::USD("2012-07-05".to_string()), 3.3743f64);
- exchange_rates.insert(Exchange::USD("2018-07-17".to_string()), 3.6619f64);
- exchange_rates.insert(Exchange::EUR("2025-09-15".to_string()), 4.2476f64);
- exchange_rates.insert(Exchange::USD("2023-10-26".to_string()), 4.2395f64);
- exchange_rates.insert(Exchange::USD("2014-07-09".to_string()), 3.0322f64);
- exchange_rates.insert(Exchange::EUR("2025-05-16".to_string()), 4.2392f64);
- exchange_rates.insert(Exchange::USD("2018-11-16".to_string()), 3.7876f64);
- exchange_rates.insert(Exchange::USD("2018-01-04".to_string()), 3.4472f64);
- exchange_rates.insert(Exchange::USD("2015-05-14".to_string()), 3.5921f64);
- exchange_rates.insert(Exchange::EUR("2023-05-04".to_string()), 4.5868f64);
- exchange_rates.insert(Exchange::USD("2023-09-20".to_string()), 4.3501f64);
- exchange_rates.insert(Exchange::USD("2019-04-17".to_string()), 3.7778f64);
- exchange_rates.insert(Exchange::USD("2013-06-13".to_string()), 3.2f64);
- exchange_rates.insert(Exchange::USD("2014-12-02".to_string()), 3.3466f64);
- exchange_rates.insert(Exchange::EUR("2024-12-27".to_string()), 4.2747f64);
- exchange_rates.insert(Exchange::EUR("2023-07-04".to_string()), 4.4273f64);
- exchange_rates.insert(Exchange::USD("2014-12-31".to_string()), 3.5072f64);
- exchange_rates.insert(Exchange::USD("2015-02-06".to_string()), 3.6395f64);
- exchange_rates.insert(Exchange::USD("2016-11-29".to_string()), 4.1827f64);
- exchange_rates.insert(Exchange::USD("2014-01-30".to_string()), 3.1166f64);
- exchange_rates.insert(Exchange::USD("2017-02-07".to_string()), 4.028f64);
- exchange_rates.insert(Exchange::USD("2013-10-04".to_string()), 3.0902f64);
- exchange_rates.insert(Exchange::USD("2018-07-31".to_string()), 3.6481f64);
- exchange_rates.insert(Exchange::USD("2014-02-28".to_string()), 3.0254f64);
- exchange_rates.insert(Exchange::USD("2024-08-28".to_string()), 3.8539f64);
- exchange_rates.insert(Exchange::USD("2022-11-14".to_string()), 4.5383f64);
- exchange_rates.insert(Exchange::EUR("2025-05-30".to_string()), 4.2507f64);
- exchange_rates.insert(Exchange::USD("2025-03-07".to_string()), 3.8448f64);
- exchange_rates.insert(Exchange::USD("2025-12-31".to_string()), 3.6016f64);
- exchange_rates.insert(Exchange::USD("2024-01-29".to_string()), 4.0326f64);
- exchange_rates.insert(Exchange::USD("2024-06-11".to_string()), 4.0443f64);
- exchange_rates.insert(Exchange::USD("2020-07-30".to_string()), 3.7549f64);
- exchange_rates.insert(Exchange::EUR("2025-10-01".to_string()), 4.2586f64);
- exchange_rates.insert(Exchange::USD("2014-02-19".to_string()), 3.0286f64);
- exchange_rates.insert(Exchange::USD("2019-06-27".to_string()), 3.7426f64);
- exchange_rates.insert(Exchange::USD("2022-01-03".to_string()), 4.0424f64);
- exchange_rates.insert(Exchange::USD("2023-10-16".to_string()), 4.2505f64);
- exchange_rates.insert(Exchange::USD("2014-05-22".to_string()), 3.0525f64);
- exchange_rates.insert(Exchange::USD("2025-04-07".to_string()), 3.9097f64);
- exchange_rates.insert(Exchange::USD("2023-08-30".to_string()), 4.1167f64);
- exchange_rates.insert(Exchange::USD("2023-11-27".to_string()), 3.9769f64);
- exchange_rates.insert(Exchange::USD("2012-08-22".to_string()), 3.2639f64);
- exchange_rates.insert(Exchange::USD("2023-01-03".to_string()), 4.4373f64);
- exchange_rates.insert(Exchange::USD("2018-04-11".to_string()), 3.3859f64);
- exchange_rates.insert(Exchange::USD("2022-08-09".to_string()), 4.5919f64);
- exchange_rates.insert(Exchange::USD("2020-09-29".to_string()), 3.9228f64);
- exchange_rates.insert(Exchange::USD("2014-06-11".to_string()), 3.0431f64);
- exchange_rates.insert(Exchange::USD("2018-03-05".to_string()), 3.3995f64);
- exchange_rates.insert(Exchange::USD("2015-09-08".to_string()), 3.7878f64);
- exchange_rates.insert(Exchange::USD("2022-06-17".to_string()), 4.463f64);
- exchange_rates.insert(Exchange::USD("2022-12-22".to_string()), 4.3726f64);
- exchange_rates.insert(Exchange::USD("2019-09-04".to_string()), 3.9414f64);
- exchange_rates.insert(Exchange::USD("2016-05-27".to_string()), 3.9393f64);
- exchange_rates.insert(Exchange::EUR("2023-08-25".to_string()), 4.4674f64);
- exchange_rates.insert(Exchange::USD("2019-07-02".to_string()), 3.7593f64);
- exchange_rates.insert(Exchange::USD("2017-03-27".to_string()), 3.9259f64);
- exchange_rates.insert(Exchange::USD("2024-03-28".to_string()), 4.0081f64);
- exchange_rates.insert(Exchange::USD("2021-01-07".to_string()), 3.6656f64);
- exchange_rates.insert(Exchange::EUR("2023-08-18".to_string()), 4.4869f64);
- exchange_rates.insert(Exchange::USD("2024-03-06".to_string()), 3.963f64);
- exchange_rates.insert(Exchange::USD("2025-04-14".to_string()), 3.7564f64);
- exchange_rates.insert(Exchange::USD("2021-10-29".to_string()), 3.9664f64);
- exchange_rates.insert(Exchange::USD("2021-10-13".to_string()), 3.9638f64);
- exchange_rates.insert(Exchange::USD("2012-04-26".to_string()), 3.1599f64);
- exchange_rates.insert(Exchange::USD("2012-10-16".to_string()), 3.1438f64);
- exchange_rates.insert(Exchange::USD("2023-08-04".to_string()), 4.062f64);
- exchange_rates.insert(Exchange::USD("2018-09-07".to_string()), 3.6995f64);
- exchange_rates.insert(Exchange::USD("2013-09-10".to_string()), 3.2181f64);
- exchange_rates.insert(Exchange::EUR("2025-12-05".to_string()), 4.2321f64);
- exchange_rates.insert(Exchange::USD("2018-07-09".to_string()), 3.685f64);
- exchange_rates.insert(Exchange::USD("2022-08-03".to_string()), 4.6164f64);
- exchange_rates.insert(Exchange::USD("2015-01-09".to_string()), 3.6252f64);
- exchange_rates.insert(Exchange::USD("2024-08-19".to_string()), 3.8682f64);
- exchange_rates.insert(Exchange::USD("2015-08-24".to_string()), 3.6971f64);
- exchange_rates.insert(Exchange::USD("2021-12-07".to_string()), 4.0788f64);
- exchange_rates.insert(Exchange::EUR("2023-06-23".to_string()), 4.4367f64);
- exchange_rates.insert(Exchange::EUR("2024-02-22".to_string()), 4.3199f64);
- exchange_rates.insert(Exchange::EUR("2023-02-28".to_string()), 4.717f64);
- exchange_rates.insert(Exchange::USD("2016-03-17".to_string()), 3.8037f64);
- exchange_rates.insert(Exchange::USD("2023-11-30".to_string()), 3.981f64);
- exchange_rates.insert(Exchange::EUR("2024-10-24".to_string()), 4.3396f64);
- exchange_rates.insert(Exchange::USD("2016-06-15".to_string()), 3.9351f64);
- exchange_rates.insert(Exchange::USD("2025-05-29".to_string()), 3.7588f64);
- exchange_rates.insert(Exchange::USD("2012-01-30".to_string()), 3.2433f64);
- exchange_rates.insert(Exchange::EUR("2024-07-29".to_string()), 4.2847f64);
- exchange_rates.insert(Exchange::USD("2025-01-09".to_string()), 4.1523f64);
- exchange_rates.insert(Exchange::USD("2020-04-29".to_string()), 4.1807f64);
- exchange_rates.insert(Exchange::USD("2019-04-26".to_string()), 3.8508f64);
- exchange_rates.insert(Exchange::USD("2013-08-27".to_string()), 3.1849f64);
- exchange_rates.insert(Exchange::USD("2022-03-23".to_string()), 4.2772f64);
- exchange_rates.insert(Exchange::USD("2014-12-23".to_string()), 3.4937f64);
- exchange_rates.insert(Exchange::EUR("2024-10-11".to_string()), 4.2926f64);
- exchange_rates.insert(Exchange::USD("2015-03-17".to_string()), 3.9034f64);
- exchange_rates.insert(Exchange::EUR("2023-10-02".to_string()), 4.6091f64);
- exchange_rates.insert(Exchange::USD("2024-06-25".to_string()), 3.9975f64);
- exchange_rates.insert(Exchange::USD("2019-05-17".to_string()), 3.8545f64);
- exchange_rates.insert(Exchange::USD("2021-02-26".to_string()), 3.7247f64);
- exchange_rates.insert(Exchange::USD("2023-06-22".to_string()), 4.033f64);
- exchange_rates.insert(Exchange::EUR("2024-06-05".to_string()), 4.3081f64);
- exchange_rates.insert(Exchange::USD("2017-09-08".to_string()), 3.5239f64);
- exchange_rates.insert(Exchange::USD("2024-12-09".to_string()), 4.0298f64);
- exchange_rates.insert(Exchange::USD("2018-06-20".to_string()), 3.7352f64);
- exchange_rates.insert(Exchange::USD("2017-09-27".to_string()), 3.665f64);
- exchange_rates.insert(Exchange::USD("2021-10-05".to_string()), 3.9688f64);
- exchange_rates.insert(Exchange::USD("2019-01-03".to_string()), 3.7827f64);
- exchange_rates.insert(Exchange::USD("2017-07-21".to_string()), 3.632f64);
- exchange_rates.insert(Exchange::USD("2025-06-18".to_string()), 3.7137f64);
- exchange_rates.insert(Exchange::USD("2017-08-04".to_string()), 3.5702f64);
- exchange_rates.insert(Exchange::USD("2014-03-25".to_string()), 3.0342f64);
- exchange_rates.insert(Exchange::USD("2014-10-08".to_string()), 3.305f64);
- exchange_rates.insert(Exchange::USD("2013-03-14".to_string()), 3.2f64);
- exchange_rates.insert(Exchange::USD("2013-04-26".to_string()), 3.1943f64);
- exchange_rates.insert(Exchange::USD("2013-09-24".to_string()), 3.1338f64);
- exchange_rates.insert(Exchange::USD("2012-08-07".to_string()), 3.2606f64);
- exchange_rates.insert(Exchange::USD("2020-02-14".to_string()), 3.9098f64);
- exchange_rates.insert(Exchange::USD("2025-05-08".to_string()), 3.784f64);
- exchange_rates.insert(Exchange::USD("2015-06-03".to_string()), 3.7108f64);
- exchange_rates.insert(Exchange::EUR("2024-09-06".to_string()), 4.279f64);
- exchange_rates.insert(Exchange::USD("2014-10-06".to_string()), 3.3343f64);
- exchange_rates.insert(Exchange::USD("2012-12-20".to_string()), 3.0769f64);
- exchange_rates.insert(Exchange::USD("2020-12-02".to_string()), 3.7038f64);
- exchange_rates.insert(Exchange::USD("2017-03-24".to_string()), 3.9481f64);
- exchange_rates.insert(Exchange::USD("2016-11-25".to_string()), 4.1628f64);
- exchange_rates.insert(Exchange::USD("2025-04-30".to_string()), 3.7617f64);
- exchange_rates.insert(Exchange::USD("2021-07-01".to_string()), 3.8149f64);
- exchange_rates.insert(Exchange::USD("2012-06-19".to_string()), 3.3916f64);
- exchange_rates.insert(Exchange::USD("2023-08-31".to_string()), 4.1074f64);
- exchange_rates.insert(Exchange::USD("2017-09-26".to_string()), 3.6234f64);
- exchange_rates.insert(Exchange::USD("2014-06-25".to_string()), 3.0451f64);
- exchange_rates.insert(Exchange::USD("2012-10-15".to_string()), 3.1565f64);
- exchange_rates.insert(Exchange::EUR("2025-04-15".to_string()), 4.2767f64);
- exchange_rates.insert(Exchange::USD("2017-06-13".to_string()), 3.7379f64);
- exchange_rates.insert(Exchange::USD("2020-02-03".to_string()), 3.8864f64);
- exchange_rates.insert(Exchange::USD("2012-07-12".to_string()), 3.4383f64);
- exchange_rates.insert(Exchange::USD("2012-12-05".to_string()), 3.1516f64);
- exchange_rates.insert(Exchange::EUR("2025-08-06".to_string()), 4.282f64);
- exchange_rates.insert(Exchange::USD("2016-05-24".to_string()), 3.9789f64);
- exchange_rates.insert(Exchange::USD("2020-11-03".to_string()), 3.9069f64);
- exchange_rates.insert(Exchange::USD("2014-07-14".to_string()), 3.0368f64);
- exchange_rates.insert(Exchange::EUR("2025-11-14".to_string()), 4.2274f64);
- exchange_rates.insert(Exchange::USD("2024-09-26".to_string()), 3.8294f64);
- exchange_rates.insert(Exchange::USD("2022-09-20".to_string()), 4.7118f64);
- exchange_rates.insert(Exchange::USD("2014-10-01".to_string()), 3.3172f64);
- exchange_rates.insert(Exchange::EUR("2023-12-18".to_string()), 4.3269f64);
- exchange_rates.insert(Exchange::EUR("2023-12-21".to_string()), 4.3387f64);
- exchange_rates.insert(Exchange::USD("2016-03-03".to_string()), 3.9805f64);
- exchange_rates.insert(Exchange::USD("2015-06-08".to_string()), 3.7381f64);
- exchange_rates.insert(Exchange::USD("2019-10-09".to_string()), 3.9382f64);
- exchange_rates.insert(Exchange::USD("2020-06-30".to_string()), 3.9806f64);
- exchange_rates.insert(Exchange::EUR("2025-03-26".to_string()), 4.1686f64);
- exchange_rates.insert(Exchange::USD("2014-11-10".to_string()), 3.3765f64);
- exchange_rates.insert(Exchange::USD("2024-04-18".to_string()), 4.0559f64);
- exchange_rates.insert(Exchange::USD("2018-01-31".to_string()), 3.3318f64);
- exchange_rates.insert(Exchange::USD("2023-04-05".to_string()), 4.2739f64);
- exchange_rates.insert(Exchange::USD("2015-04-20".to_string()), 3.7302f64);
- exchange_rates.insert(Exchange::USD("2023-05-02".to_string()), 4.1823f64);
- exchange_rates.insert(Exchange::USD("2013-01-22".to_string()), 3.1341f64);
- exchange_rates.insert(Exchange::USD("2020-04-14".to_string()), 4.1666f64);
- exchange_rates.insert(Exchange::USD("2013-10-21".to_string()), 3.062f64);
- exchange_rates.insert(Exchange::EUR("2023-07-20".to_string()), 4.4511f64);
- exchange_rates.insert(Exchange::USD("2023-05-18".to_string()), 4.1929f64);
- exchange_rates.insert(Exchange::USD("2023-08-29".to_string()), 4.1341f64);
- exchange_rates.insert(Exchange::USD("2018-03-30".to_string()), 3.4139f64);
- exchange_rates.insert(Exchange::USD("2012-09-18".to_string()), 3.1509f64);
- exchange_rates.insert(Exchange::USD("2014-01-07".to_string()), 3.0688f64);
- exchange_rates.insert(Exchange::USD("2022-05-31".to_string()), 4.2651f64);
- exchange_rates.insert(Exchange::USD("2020-02-10".to_string()), 3.8996f64);
- exchange_rates.insert(Exchange::USD("2022-12-19".to_string()), 4.4153f64);
- exchange_rates.insert(Exchange::EUR("2023-12-08".to_string()), 4.3303f64);
- exchange_rates.insert(Exchange::USD("2022-05-30".to_string()), 4.2617f64);
- exchange_rates.insert(Exchange::USD("2021-04-14".to_string()), 3.8065f64);
- exchange_rates.insert(Exchange::USD("2018-01-25".to_string()), 3.3376f64);
- exchange_rates.insert(Exchange::USD("2012-01-10".to_string()), 3.5083f64);
- exchange_rates.insert(Exchange::USD("2018-02-27".to_string()), 3.3816f64);
- exchange_rates.insert(Exchange::USD("2016-08-31".to_string()), 3.9082f64);
- exchange_rates.insert(Exchange::USD("2015-08-27".to_string()), 3.745f64);
- exchange_rates.insert(Exchange::USD("2025-08-19".to_string()), 3.6332f64);
- exchange_rates.insert(Exchange::USD("2022-07-28".to_string()), 4.6952f64);
- exchange_rates.insert(Exchange::USD("2019-09-02".to_string()), 3.9819f64);
- exchange_rates.insert(Exchange::USD("2018-05-25".to_string()), 3.6686f64);
- exchange_rates.insert(Exchange::USD("2024-04-08".to_string()), 3.9546f64);
- exchange_rates.insert(Exchange::USD("2023-10-31".to_string()), 4.1684f64);
- exchange_rates.insert(Exchange::USD("2019-05-13".to_string()), 3.8321f64);
- exchange_rates.insert(Exchange::USD("2017-11-30".to_string()), 3.5543f64);
- exchange_rates.insert(Exchange::USD("2018-04-27".to_string()), 3.5003f64);
- exchange_rates.insert(Exchange::USD("2014-06-16".to_string()), 3.0654f64);
- exchange_rates.insert(Exchange::USD("2016-08-02".to_string()), 3.882f64);
- exchange_rates.insert(Exchange::USD("2012-07-20".to_string()), 3.3961f64);
- exchange_rates.insert(Exchange::USD("2020-03-18".to_string()), 4.0749f64);
- exchange_rates.insert(Exchange::USD("2014-08-29".to_string()), 3.1965f64);
- exchange_rates.insert(Exchange::USD("2021-10-06".to_string()), 3.9992f64);
- exchange_rates.insert(Exchange::USD("2021-11-23".to_string()), 4.1893f64);
- exchange_rates.insert(Exchange::EUR("2024-08-12".to_string()), 4.3123f64);
- exchange_rates.insert(Exchange::USD("2018-09-28".to_string()), 3.6754f64);
- exchange_rates.insert(Exchange::USD("2012-01-19".to_string()), 3.3678f64);
- exchange_rates.insert(Exchange::USD("2019-09-12".to_string()), 3.9362f64);
- exchange_rates.insert(Exchange::USD("2014-10-14".to_string()), 3.3095f64);
- exchange_rates.insert(Exchange::EUR("2025-04-01".to_string()), 4.1818f64);
- exchange_rates.insert(Exchange::USD("2018-09-06".to_string()), 3.7143f64);
- exchange_rates.insert(Exchange::USD("2020-05-06".to_string()), 4.2022f64);
- exchange_rates.insert(Exchange::USD("2022-11-22".to_string()), 4.5844f64);
- exchange_rates.insert(Exchange::USD("2012-02-08".to_string()), 3.1461f64);
- exchange_rates.insert(Exchange::USD("2013-08-29".to_string()), 3.2269f64);
- exchange_rates.insert(Exchange::EUR("2023-12-04".to_string()), 4.3337f64);
- exchange_rates.insert(Exchange::USD("2019-04-12".to_string()), 3.7899f64);
- exchange_rates.insert(Exchange::EUR("2024-09-27".to_string()), 4.2761f64);
- exchange_rates.insert(Exchange::USD("2016-01-29".to_string()), 4.0723f64);
- exchange_rates.insert(Exchange::USD("2013-07-30".to_string()), 3.1798f64);
- exchange_rates.insert(Exchange::USD("2014-10-24".to_string()), 3.3387f64);
- exchange_rates.insert(Exchange::USD("2015-01-07".to_string()), 3.6375f64);
- exchange_rates.insert(Exchange::USD("2012-06-20".to_string()), 3.3471f64);
- exchange_rates.insert(Exchange::USD("2018-04-03".to_string()), 3.4177f64);
- exchange_rates.insert(Exchange::USD("2014-01-15".to_string()), 3.0495f64);
- exchange_rates.insert(Exchange::USD("2018-05-14".to_string()), 3.5558f64);
- exchange_rates.insert(Exchange::EUR("2025-02-05".to_string()), 4.2059f64);
- exchange_rates.insert(Exchange::USD("2023-10-17".to_string()), 4.2131f64);
- exchange_rates.insert(Exchange::USD("2021-12-21".to_string()), 4.0937f64);
- exchange_rates.insert(Exchange::USD("2020-08-20".to_string()), 3.7164f64);
- exchange_rates.insert(Exchange::USD("2022-04-08".to_string()), 4.2703f64);
- exchange_rates.insert(Exchange::USD("2017-05-09".to_string()), 3.8741f64);
- exchange_rates.insert(Exchange::USD("2016-07-28".to_string()), 3.9389f64);
- exchange_rates.insert(Exchange::USD("2013-09-09".to_string()), 3.2357f64);
- exchange_rates.insert(Exchange::USD("2024-06-03".to_string()), 3.9501f64);
- exchange_rates.insert(Exchange::USD("2025-07-28".to_string()), 3.6446f64);
- exchange_rates.insert(Exchange::EUR("2025-08-27".to_string()), 4.2639f64);
- exchange_rates.insert(Exchange::USD("2016-07-21".to_string()), 3.9685f64);
- exchange_rates.insert(Exchange::USD("2012-04-25".to_string()), 3.1675f64);
- exchange_rates.insert(Exchange::USD("2025-11-04".to_string()), 3.7019f64);
- exchange_rates.insert(Exchange::USD("2024-07-04".to_string()), 3.9784f64);
- exchange_rates.insert(Exchange::EUR("2023-05-22".to_string()), 4.5269f64);
- exchange_rates.insert(Exchange::USD("2021-04-09".to_string()), 3.8208f64);
- exchange_rates.insert(Exchange::USD("2021-07-22".to_string()), 3.8801f64);
- exchange_rates.insert(Exchange::USD("2023-07-12".to_string()), 4.0347f64);
- exchange_rates.insert(Exchange::USD("2024-11-06".to_string()), 4.0595f64);
- exchange_rates.insert(Exchange::USD("2013-10-30".to_string()), 3.0433f64);
- exchange_rates.insert(Exchange::EUR("2023-07-03".to_string()), 4.4321f64);
- exchange_rates.insert(Exchange::USD("2018-11-15".to_string()), 3.8074f64);
- exchange_rates.insert(Exchange::EUR("2025-04-03".to_string()), 4.1791f64);
- exchange_rates.insert(Exchange::USD("2019-02-08".to_string()), 3.804f64);
- exchange_rates.insert(Exchange::USD("2025-07-07".to_string()), 3.6269f64);
- exchange_rates.insert(Exchange::USD("2016-04-13".to_string()), 3.7771f64);
- exchange_rates.insert(Exchange::USD("2015-04-17".to_string()), 3.7277f64);
- exchange_rates.insert(Exchange::EUR("2024-09-24".to_string()), 4.2668f64);
- exchange_rates.insert(Exchange::USD("2013-10-15".to_string()), 3.0893f64);
- exchange_rates.insert(Exchange::USD("2020-02-21".to_string()), 3.9623f64);
- exchange_rates.insert(Exchange::USD("2012-02-23".to_string()), 3.138f64);
- exchange_rates.insert(Exchange::USD("2019-12-30".to_string()), 3.8027f64);
- exchange_rates.insert(Exchange::USD("2013-10-18".to_string()), 3.0506f64);
- exchange_rates.insert(Exchange::USD("2014-10-22".to_string()), 3.3275f64);
- exchange_rates.insert(Exchange::EUR("2025-01-10".to_string()), 4.2657f64);
- exchange_rates.insert(Exchange::USD("2015-02-19".to_string()), 3.6631f64);
- exchange_rates.insert(Exchange::USD("2016-01-14".to_string()), 3.999f64);
- exchange_rates.insert(Exchange::EUR("2025-06-10".to_string()), 4.2611f64);
- exchange_rates.insert(Exchange::USD("2020-06-19".to_string()), 3.9741f64);
- exchange_rates.insert(Exchange::USD("2017-02-03".to_string()), 4.0014f64);
- exchange_rates.insert(Exchange::USD("2012-12-19".to_string()), 3.069f64);
- exchange_rates.insert(Exchange::USD("2014-08-18".to_string()), 3.1342f64);
- exchange_rates.insert(Exchange::USD("2023-03-13".to_string()), 4.3906f64);
- exchange_rates.insert(Exchange::USD("2015-10-20".to_string()), 3.7385f64);
- exchange_rates.insert(Exchange::USD("2016-12-09".to_string()), 4.1772f64);
- exchange_rates.insert(Exchange::USD("2025-01-08".to_string()), 4.1335f64);
- exchange_rates.insert(Exchange::USD("2022-11-09".to_string()), 4.6817f64);
- exchange_rates.insert(Exchange::EUR("2025-12-04".to_string()), 4.2299f64);
- exchange_rates.insert(Exchange::USD("2012-07-30".to_string()), 3.378f64);
- exchange_rates.insert(Exchange::USD("2013-02-18".to_string()), 3.141f64);
- exchange_rates.insert(Exchange::USD("2025-05-14".to_string()), 3.7775f64);
- exchange_rates.insert(Exchange::USD("2023-06-30".to_string()), 4.1066f64);
- exchange_rates.insert(Exchange::USD("2021-02-19".to_string()), 3.6997f64);
- exchange_rates.insert(Exchange::USD("2017-09-06".to_string()), 3.5538f64);
- exchange_rates.insert(Exchange::USD("2015-08-12".to_string()), 3.7805f64);
- exchange_rates.insert(Exchange::USD("2025-11-20".to_string()), 3.6684f64);
- exchange_rates.insert(Exchange::USD("2024-08-22".to_string()), 3.8456f64);
- exchange_rates.insert(Exchange::USD("2018-03-13".to_string()), 3.4143f64);
- exchange_rates.insert(Exchange::USD("2016-09-27".to_string()), 3.8227f64);
- exchange_rates.insert(Exchange::EUR("2023-11-28".to_string()), 4.3542f64);
- exchange_rates.insert(Exchange::USD("2025-08-06".to_string()), 3.6994f64);
- exchange_rates.insert(Exchange::USD("2021-06-01".to_string()), 3.659f64);
- exchange_rates.insert(Exchange::USD("2024-11-28".to_string()), 4.0907f64);
- exchange_rates.insert(Exchange::EUR("2024-02-09".to_string()), 4.3167f64);
- exchange_rates.insert(Exchange::USD("2024-09-18".to_string()), 3.8358f64);
- exchange_rates.insert(Exchange::USD("2019-02-13".to_string()), 3.8261f64);
- exchange_rates.insert(Exchange::USD("2021-07-19".to_string()), 3.8968f64);
- exchange_rates.insert(Exchange::USD("2025-05-09".to_string()), 3.7681f64);
- exchange_rates.insert(Exchange::USD("2023-11-10".to_string()), 4.1423f64);
- exchange_rates.insert(Exchange::USD("2024-08-02".to_string()), 3.9672f64);
- exchange_rates.insert(Exchange::USD("2015-08-06".to_string()), 3.8385f64);
- exchange_rates.insert(Exchange::EUR("2024-11-19".to_string()), 4.3308f64);
- exchange_rates.insert(Exchange::USD("2021-01-13".to_string()), 3.7142f64);
- exchange_rates.insert(Exchange::USD("2019-09-20".to_string()), 3.9319f64);
- exchange_rates.insert(Exchange::USD("2013-10-31".to_string()), 3.0507f64);
- exchange_rates.insert(Exchange::USD("2013-04-02".to_string()), 3.2552f64);
- exchange_rates.insert(Exchange::USD("2021-03-31".to_string()), 3.9676f64);
- exchange_rates.insert(Exchange::USD("2020-11-02".to_string()), 3.9557f64);
- exchange_rates.insert(Exchange::EUR("2024-07-04".to_string()), 4.2975f64);
- exchange_rates.insert(Exchange::USD("2020-02-25".to_string()), 3.9624f64);
- exchange_rates.insert(Exchange::EUR("2024-03-29".to_string()), 4.3009f64);
- exchange_rates.insert(Exchange::EUR("2024-10-09".to_string()), 4.3026f64);
- exchange_rates.insert(Exchange::USD("2018-01-09".to_string()), 3.4992f64);
- exchange_rates.insert(Exchange::USD("2018-09-25".to_string()), 3.6511f64);
- exchange_rates.insert(Exchange::USD("2013-01-10".to_string()), 3.1121f64);
- exchange_rates.insert(Exchange::EUR("2024-11-26".to_string()), 4.3157f64);
- exchange_rates.insert(Exchange::USD("2017-06-07".to_string()), 3.7241f64);
- exchange_rates.insert(Exchange::EUR("2024-06-18".to_string()), 4.3468f64);
- exchange_rates.insert(Exchange::USD("2025-12-05".to_string()), 3.6313f64);
- exchange_rates.insert(Exchange::USD("2017-01-17".to_string()), 4.0989f64);
- exchange_rates.insert(Exchange::USD("2018-04-24".to_string()), 3.4401f64);
- exchange_rates.insert(Exchange::USD("2012-01-02".to_string()), 3.4454f64);
- exchange_rates.insert(Exchange::EUR("2023-03-21".to_string()), 4.6981f64);
- exchange_rates.insert(Exchange::EUR("2025-05-06".to_string()), 4.2806f64);
- exchange_rates.insert(Exchange::USD("2020-12-09".to_string()), 3.6657f64);
- exchange_rates.insert(Exchange::USD("2020-01-28".to_string()), 3.8844f64);
- exchange_rates.insert(Exchange::USD("2022-09-27".to_string()), 4.9476f64);
- exchange_rates.insert(Exchange::USD("2016-04-27".to_string()), 3.8793f64);
- exchange_rates.insert(Exchange::USD("2014-04-15".to_string()), 3.0325f64);
- exchange_rates.insert(Exchange::USD("2020-05-04".to_string()), 4.1646f64);
- exchange_rates.insert(Exchange::EUR("2024-06-24".to_string()), 4.3198f64);
- exchange_rates.insert(Exchange::USD("2024-01-31".to_string()), 4.0135f64);
- exchange_rates.insert(Exchange::USD("2014-09-11".to_string()), 3.2435f64);
- exchange_rates.insert(Exchange::EUR("2025-05-27".to_string()), 4.2479f64);
- exchange_rates.insert(Exchange::USD("2014-12-24".to_string()), 3.529f64);
- exchange_rates.insert(Exchange::USD("2012-05-21".to_string()), 3.3928f64);
- exchange_rates.insert(Exchange::USD("2019-07-11".to_string()), 3.7859f64);
- exchange_rates.insert(Exchange::USD("2023-04-24".to_string()), 4.1905f64);
- exchange_rates.insert(Exchange::USD("2023-01-17".to_string()), 4.3398f64);
- exchange_rates.insert(Exchange::EUR("2025-07-15".to_string()), 4.2538f64);
- exchange_rates.insert(Exchange::USD("2021-12-23".to_string()), 4.095f64);
- exchange_rates.insert(Exchange::EUR("2023-06-22".to_string()), 4.4335f64);
- exchange_rates.insert(Exchange::USD("2023-09-15".to_string()), 4.3418f64);
- exchange_rates.insert(Exchange::EUR("2023-09-20".to_string()), 4.6529f64);
- exchange_rates.insert(Exchange::USD("2021-04-30".to_string()), 3.7746f64);
- exchange_rates.insert(Exchange::EUR("2024-01-19".to_string()), 4.3846f64);
- exchange_rates.insert(Exchange::USD("2020-10-12".to_string()), 3.7927f64);
- exchange_rates.insert(Exchange::EUR("2025-03-12".to_string()), 4.2017f64);
- exchange_rates.insert(Exchange::USD("2025-03-21".to_string()), 3.8774f64);
- exchange_rates.insert(Exchange::USD("2024-04-15".to_string()), 4.0209f64);
- exchange_rates.insert(Exchange::USD("2021-04-06".to_string()), 3.8973f64);
- exchange_rates.insert(Exchange::USD("2022-06-02".to_string()), 4.2931f64);
- exchange_rates.insert(Exchange::USD("2013-09-11".to_string()), 3.1955f64);
- exchange_rates.insert(Exchange::USD("2023-12-04".to_string()), 3.985f64);
- exchange_rates.insert(Exchange::USD("2017-09-18".to_string()), 3.5881f64);
- exchange_rates.insert(Exchange::USD("2023-08-28".to_string()), 4.14f64);
- exchange_rates.insert(Exchange::USD("2014-08-04".to_string()), 3.1114f64);
- exchange_rates.insert(Exchange::USD("2015-10-12".to_string()), 3.7148f64);
- exchange_rates.insert(Exchange::USD("2017-07-19".to_string()), 3.6486f64);
- exchange_rates.insert(Exchange::USD("2024-05-16".to_string()), 3.9195f64);
- exchange_rates.insert(Exchange::USD("2015-03-25".to_string()), 3.7355f64);
- exchange_rates.insert(Exchange::USD("2020-02-26".to_string()), 3.9573f64);
- exchange_rates.insert(Exchange::USD("2019-08-13".to_string()), 3.8714f64);
- exchange_rates.insert(Exchange::USD("2015-05-22".to_string()), 3.669f64);
- exchange_rates.insert(Exchange::USD("2013-06-07".to_string()), 3.2545f64);
- exchange_rates.insert(Exchange::USD("2021-02-18".to_string()), 3.7152f64);
- exchange_rates.insert(Exchange::EUR("2024-10-03".to_string()), 4.299f64);
- exchange_rates.insert(Exchange::USD("2025-12-11".to_string()), 3.6132f64);
- exchange_rates.insert(Exchange::EUR("2023-09-01".to_string()), 4.4762f64);
- exchange_rates.insert(Exchange::USD("2025-02-14".to_string()), 3.972f64);
- exchange_rates.insert(Exchange::USD("2012-04-27".to_string()), 3.1666f64);
- exchange_rates.insert(Exchange::EUR("2023-01-18".to_string()), 4.7091f64);
- exchange_rates.insert(Exchange::USD("2013-08-20".to_string()), 3.1761f64);
- exchange_rates.insert(Exchange::USD("2015-12-03".to_string()), 4.04f64);
- exchange_rates.insert(Exchange::USD("2013-12-05".to_string()), 3.087f64);
- exchange_rates.insert(Exchange::USD("2021-03-02".to_string()), 3.7765f64);
- exchange_rates.insert(Exchange::USD("2016-04-21".to_string()), 3.7981f64);
- exchange_rates.insert(Exchange::USD("2025-02-07".to_string()), 4.0321f64);
- exchange_rates.insert(Exchange::USD("2024-02-01".to_string()), 4.0047f64);
- exchange_rates.insert(Exchange::USD("2013-08-06".to_string()), 3.1744f64);
- exchange_rates.insert(Exchange::USD("2020-05-26".to_string()), 4.0885f64);
- exchange_rates.insert(Exchange::EUR("2025-02-20".to_string()), 4.1723f64);
- exchange_rates.insert(Exchange::USD("2020-06-03".to_string()), 3.9121f64);
- exchange_rates.insert(Exchange::USD("2024-05-14".to_string()), 3.9701f64);
- exchange_rates.insert(Exchange::USD("2024-06-21".to_string()), 4.0527f64);
- exchange_rates.insert(Exchange::USD("2019-09-05".to_string()), 3.933f64);
- exchange_rates.insert(Exchange::USD("2017-09-05".to_string()), 3.5642f64);
- exchange_rates.insert(Exchange::USD("2015-10-23".to_string()), 3.82f64);
- exchange_rates.insert(Exchange::USD("2025-11-03".to_string()), 3.6933f64);
- exchange_rates.insert(Exchange::USD("2022-11-03".to_string()), 4.8291f64);
- exchange_rates.insert(Exchange::USD("2014-09-10".to_string()), 3.2508f64);
- exchange_rates.insert(Exchange::USD("2019-06-04".to_string()), 3.8041f64);
- exchange_rates.insert(Exchange::EUR("2025-05-20".to_string()), 4.2497f64);
- exchange_rates.insert(Exchange::USD("2025-05-15".to_string()), 3.7804f64);
- exchange_rates.insert(Exchange::USD("2022-07-08".to_string()), 4.7417f64);
- exchange_rates.insert(Exchange::EUR("2023-10-09".to_string()), 4.5793f64);
- exchange_rates.insert(Exchange::USD("2023-11-06".to_string()), 4.1512f64);
- exchange_rates.insert(Exchange::USD("2020-04-28".to_string()), 4.184f64);
- exchange_rates.insert(Exchange::USD("2023-07-05".to_string()), 4.0869f64);
- exchange_rates.insert(Exchange::USD("2014-08-01".to_string()), 3.128f64);
- exchange_rates.insert(Exchange::USD("2018-07-13".to_string()), 3.7244f64);
- exchange_rates.insert(Exchange::USD("2013-01-24".to_string()), 3.1503f64);
- exchange_rates.insert(Exchange::USD("2025-08-05".to_string()), 3.7066f64);
- exchange_rates.insert(Exchange::USD("2021-09-29".to_string()), 3.9684f64);
- exchange_rates.insert(Exchange::USD("2016-10-21".to_string()), 3.98f64);
- exchange_rates.insert(Exchange::USD("2020-04-10".to_string()), 4.1566f64);
- exchange_rates.insert(Exchange::USD("2025-09-08".to_string()), 3.6214f64);
- exchange_rates.insert(Exchange::USD("2019-04-09".to_string()), 3.8003f64);
- exchange_rates.insert(Exchange::USD("2015-10-21".to_string()), 3.7627f64);
- exchange_rates.insert(Exchange::EUR("2024-12-11".to_string()), 4.2661f64);
- exchange_rates.insert(Exchange::USD("2020-11-27".to_string()), 3.7614f64);
- exchange_rates.insert(Exchange::USD("2018-03-06".to_string()), 3.3936f64);
- exchange_rates.insert(Exchange::USD("2020-12-17".to_string()), 3.6254f64);
- exchange_rates.insert(Exchange::USD("2016-10-18".to_string()), 3.9148f64);
- exchange_rates.insert(Exchange::EUR("2023-09-18".to_string()), 4.6377f64);
- exchange_rates.insert(Exchange::USD("2013-01-08".to_string()), 3.1457f64);
- exchange_rates.insert(Exchange::EUR("2023-01-27".to_string()), 4.7076f64);
- exchange_rates.insert(Exchange::USD("2025-05-27".to_string()), 3.743f64);
- exchange_rates.insert(Exchange::USD("2022-12-16".to_string()), 4.4227f64);
- exchange_rates.insert(Exchange::USD("2018-03-23".to_string()), 3.4319f64);
- exchange_rates.insert(Exchange::USD("2018-02-13".to_string()), 3.3916f64);
- exchange_rates.insert(Exchange::USD("2024-03-11".to_string()), 3.9262f64);
- exchange_rates.insert(Exchange::USD("2022-01-28".to_string()), 4.1048f64);
- exchange_rates.insert(Exchange::USD("2016-05-13".to_string()), 3.8775f64);
- exchange_rates.insert(Exchange::USD("2020-12-16".to_string()), 3.6334f64);
- exchange_rates.insert(Exchange::EUR("2025-05-13".to_string()), 4.2525f64);
- exchange_rates.insert(Exchange::USD("2021-05-31".to_string()), 3.6724f64);
- exchange_rates.insert(Exchange::USD("2025-04-01".to_string()), 3.8656f64);
- exchange_rates.insert(Exchange::USD("2022-07-01".to_string()), 4.5106f64);
- exchange_rates.insert(Exchange::USD("2025-01-20".to_string()), 4.1321f64);
- exchange_rates.insert(Exchange::USD("2019-09-27".to_string()), 4.0154f64);
- exchange_rates.insert(Exchange::EUR("2023-10-06".to_string()), 4.5998f64);
- exchange_rates.insert(Exchange::USD("2014-04-25".to_string()), 3.0378f64);
- exchange_rates.insert(Exchange::USD("2022-07-12".to_string()), 4.8284f64);
- exchange_rates.insert(Exchange::EUR("2024-10-08".to_string()), 4.3203f64);
- exchange_rates.insert(Exchange::USD("2016-02-18".to_string()), 3.9416f64);
- exchange_rates.insert(Exchange::USD("2016-10-04".to_string()), 3.8472f64);
- exchange_rates.insert(Exchange::USD("2016-10-14".to_string()), 3.8965f64);
- exchange_rates.insert(Exchange::USD("2015-08-28".to_string()), 3.7493f64);
- exchange_rates.insert(Exchange::EUR("2025-08-28".to_string()), 4.2681f64);
- exchange_rates.insert(Exchange::USD("2023-05-30".to_string()), 4.2242f64);
- exchange_rates.insert(Exchange::USD("2018-06-19".to_string()), 3.7316f64);
- exchange_rates.insert(Exchange::USD("2022-12-09".to_string()), 4.4351f64);
- exchange_rates.insert(Exchange::USD("2013-11-04".to_string()), 3.0975f64);
- exchange_rates.insert(Exchange::EUR("2024-02-16".to_string()), 4.3414f64);
- exchange_rates.insert(Exchange::EUR("2024-11-14".to_string()), 4.3365f64);
- exchange_rates.insert(Exchange::USD("2025-05-07".to_string()), 3.7642f64);
- exchange_rates.insert(Exchange::EUR("2025-07-30".to_string()), 4.2732f64);
- exchange_rates.insert(Exchange::USD("2018-02-14".to_string()), 3.3769f64);
- exchange_rates.insert(Exchange::USD("2021-08-27".to_string()), 3.8978f64);
- exchange_rates.insert(Exchange::USD("2022-05-13".to_string()), 4.4849f64);
- exchange_rates.insert(Exchange::USD("2016-10-11".to_string()), 3.8487f64);
- exchange_rates.insert(Exchange::USD("2012-05-25".to_string()), 3.4589f64);
- exchange_rates.insert(Exchange::USD("2018-10-24".to_string()), 3.7698f64);
- exchange_rates.insert(Exchange::USD("2019-10-11".to_string()), 3.9145f64);
- exchange_rates.insert(Exchange::USD("2017-11-06".to_string()), 3.6585f64);
- exchange_rates.insert(Exchange::USD("2024-08-27".to_string()), 3.8331f64);
- exchange_rates.insert(Exchange::USD("2022-10-27".to_string()), 4.7216f64);
- exchange_rates.insert(Exchange::USD("2014-06-23".to_string()), 3.0627f64);
- exchange_rates.insert(Exchange::USD("2022-09-01".to_string()), 4.6959f64);
- exchange_rates.insert(Exchange::USD("2017-07-06".to_string()), 3.7351f64);
- exchange_rates.insert(Exchange::USD("2023-10-02".to_string()), 4.3634f64);
- exchange_rates.insert(Exchange::USD("2014-08-26".to_string()), 3.1686f64);
- exchange_rates.insert(Exchange::USD("2021-08-16".to_string()), 3.873f64);
- exchange_rates.insert(Exchange::USD("2018-08-06".to_string()), 3.692f64);
- exchange_rates.insert(Exchange::USD("2025-09-19".to_string()), 3.6278f64);
- exchange_rates.insert(Exchange::USD("2018-10-08".to_string()), 3.7574f64);
- exchange_rates.insert(Exchange::USD("2015-11-03".to_string()), 3.8678f64);
- exchange_rates.insert(Exchange::USD("2019-01-18".to_string()), 3.7694f64);
- exchange_rates.insert(Exchange::USD("2014-03-28".to_string()), 3.0374f64);
- exchange_rates.insert(Exchange::USD("2019-08-02".to_string()), 3.8829f64);
- exchange_rates.insert(Exchange::USD("2023-09-22".to_string()), 4.3269f64);
- exchange_rates.insert(Exchange::EUR("2023-10-19".to_string()), 4.4529f64);
- exchange_rates.insert(Exchange::USD("2018-06-12".to_string()), 3.6271f64);
- exchange_rates.insert(Exchange::USD("2021-11-18".to_string()), 4.1114f64);
- exchange_rates.insert(Exchange::USD("2015-06-10".to_string()), 3.676f64);
- exchange_rates.insert(Exchange::USD("2019-03-06".to_string()), 3.8038f64);
- exchange_rates.insert(Exchange::USD("2019-02-12".to_string()), 3.838f64);
- exchange_rates.insert(Exchange::USD("2022-09-07".to_string()), 4.7584f64);
- exchange_rates.insert(Exchange::USD("2018-02-12".to_string()), 3.4122f64);
- exchange_rates.insert(Exchange::USD("2017-04-19".to_string()), 3.9571f64);
- exchange_rates.insert(Exchange::USD("2016-04-01".to_string()), 3.7193f64);
- exchange_rates.insert(Exchange::USD("2023-06-23".to_string()), 4.0893f64);
- exchange_rates.insert(Exchange::USD("2013-09-12".to_string()), 3.1782f64);
- exchange_rates.insert(Exchange::EUR("2023-08-02".to_string()), 4.4484f64);
- exchange_rates.insert(Exchange::USD("2024-01-11".to_string()), 3.968f64);
- exchange_rates.insert(Exchange::EUR("2024-03-12".to_string()), 4.2804f64);
- exchange_rates.insert(Exchange::USD("2012-08-23".to_string()), 3.2488f64);
- exchange_rates.insert(Exchange::USD("2015-05-05".to_string()), 3.6205f64);
- exchange_rates.insert(Exchange::USD("2021-10-14".to_string()), 3.9403f64);
- exchange_rates.insert(Exchange::USD("2025-05-30".to_string()), 3.7537f64);
- exchange_rates.insert(Exchange::EUR("2024-01-25".to_string()), 4.379f64);
- exchange_rates.insert(Exchange::USD("2024-05-13".to_string()), 3.9853f64);
- exchange_rates.insert(Exchange::USD("2025-06-13".to_string()), 3.7056f64);
- exchange_rates.insert(Exchange::USD("2016-02-02".to_string()), 4.0333f64);
- exchange_rates.insert(Exchange::USD("2016-09-06".to_string()), 3.8869f64);
- exchange_rates.insert(Exchange::USD("2023-02-03".to_string()), 4.2928f64);
- exchange_rates.insert(Exchange::EUR("2024-07-31".to_string()), 4.2953f64);
- exchange_rates.insert(Exchange::USD("2019-05-20".to_string()), 3.8543f64);
- exchange_rates.insert(Exchange::USD("2019-01-31".to_string()), 3.7271f64);
- exchange_rates.insert(Exchange::USD("2017-04-25".to_string()), 3.8873f64);
- exchange_rates.insert(Exchange::USD("2020-01-22".to_string()), 3.8202f64);
- exchange_rates.insert(Exchange::USD("2025-03-17".to_string()), 3.8329f64);
- exchange_rates.insert(Exchange::USD("2023-06-27".to_string()), 4.0481f64);
- exchange_rates.insert(Exchange::USD("2016-04-12".to_string()), 3.749f64);
- exchange_rates.insert(Exchange::USD("2019-11-13".to_string()), 3.8902f64);
- exchange_rates.insert(Exchange::USD("2014-03-14".to_string()), 3.0481f64);
- exchange_rates.insert(Exchange::USD("2020-03-05".to_string()), 3.8479f64);
- exchange_rates.insert(Exchange::USD("2014-11-28".to_string()), 3.3605f64);
- exchange_rates.insert(Exchange::USD("2025-10-30".to_string()), 3.652f64);
- exchange_rates.insert(Exchange::USD("2021-12-17".to_string()), 4.0882f64);
- exchange_rates.insert(Exchange::USD("2013-09-19".to_string()), 3.0833f64);
- exchange_rates.insert(Exchange::USD("2016-02-22".to_string()), 3.9391f64);
- exchange_rates.insert(Exchange::EUR("2023-07-13".to_string()), 4.4336f64);
- exchange_rates.insert(Exchange::USD("2014-07-21".to_string()), 3.07f64);
- exchange_rates.insert(Exchange::USD("2020-03-24".to_string()), 4.2421f64);
- exchange_rates.insert(Exchange::EUR("2024-11-12".to_string()), 4.357f64);
- exchange_rates.insert(Exchange::USD("2022-11-24".to_string()), 4.5101f64);
- exchange_rates.insert(Exchange::USD("2019-01-30".to_string()), 3.7577f64);
- exchange_rates.insert(Exchange::USD("2015-12-23".to_string()), 3.8872f64);
- exchange_rates.insert(Exchange::USD("2024-12-13".to_string()), 4.0738f64);
- exchange_rates.insert(Exchange::EUR("2023-06-29".to_string()), 4.4568f64);
- exchange_rates.insert(Exchange::USD("2016-12-08".to_string()), 4.1107f64);
- exchange_rates.insert(Exchange::EUR("2025-10-09".to_string()), 4.2569f64);
- exchange_rates.insert(Exchange::USD("2025-08-14".to_string()), 3.6542f64);
- exchange_rates.insert(Exchange::USD("2021-11-19".to_string()), 4.1457f64);
- exchange_rates.insert(Exchange::EUR("2023-05-24".to_string()), 4.4803f64);
- exchange_rates.insert(Exchange::USD("2012-11-13".to_string()), 3.2945f64);
- exchange_rates.insert(Exchange::USD("2014-10-20".to_string()), 3.3109f64);
- exchange_rates.insert(Exchange::USD("2015-11-04".to_string()), 3.8876f64);
- exchange_rates.insert(Exchange::EUR("2024-03-19".to_string()), 4.3201f64);
- exchange_rates.insert(Exchange::USD("2025-05-26".to_string()), 3.7344f64);
- exchange_rates.insert(Exchange::USD("2025-10-09".to_string()), 3.6659f64);
- exchange_rates.insert(Exchange::EUR("2025-10-21".to_string()), 4.2392f64);
- exchange_rates.insert(Exchange::USD("2018-06-26".to_string()), 3.7151f64);
- exchange_rates.insert(Exchange::EUR("2024-09-17".to_string()), 4.2748f64);
- exchange_rates.insert(Exchange::USD("2014-06-27".to_string()), 3.0485f64);
- exchange_rates.insert(Exchange::USD("2020-10-15".to_string()), 3.8904f64);
- exchange_rates.insert(Exchange::USD("2025-09-04".to_string()), 3.6501f64);
- exchange_rates.insert(Exchange::USD("2018-01-18".to_string()), 3.4108f64);
- exchange_rates.insert(Exchange::USD("2013-03-07".to_string()), 3.1808f64);
- exchange_rates.insert(Exchange::USD("2017-06-19".to_string()), 3.7615f64);
- exchange_rates.insert(Exchange::USD("2018-12-17".to_string()), 3.7871f64);
- exchange_rates.insert(Exchange::USD("2016-08-05".to_string()), 3.8542f64);
- exchange_rates.insert(Exchange::USD("2025-08-27".to_string()), 3.6793f64);
- exchange_rates.insert(Exchange::USD("2022-12-27".to_string()), 4.3671f64);
- exchange_rates.insert(Exchange::USD("2018-03-22".to_string()), 3.4264f64);
- exchange_rates.insert(Exchange::EUR("2023-08-22".to_string()), 4.4648f64);
- exchange_rates.insert(Exchange::USD("2012-10-25".to_string()), 3.1851f64);
- exchange_rates.insert(Exchange::USD("2025-07-11".to_string()), 3.6432f64);
- exchange_rates.insert(Exchange::USD("2017-03-02".to_string()), 4.0765f64);
- exchange_rates.insert(Exchange::USD("2016-12-23".to_string()), 4.2199f64);
- exchange_rates.insert(Exchange::USD("2015-07-13".to_string()), 3.7543f64);
- exchange_rates.insert(Exchange::USD("2022-01-11".to_string()), 4.0106f64);
- exchange_rates.insert(Exchange::USD("2016-04-25".to_string()), 3.8962f64);
- exchange_rates.insert(Exchange::EUR("2024-02-05".to_string()), 4.3278f64);
- exchange_rates.insert(Exchange::USD("2025-06-04".to_string()), 3.7525f64);
- exchange_rates.insert(Exchange::USD("2020-05-13".to_string()), 4.2111f64);
- exchange_rates.insert(Exchange::USD("2019-06-14".to_string()), 3.7727f64);
- exchange_rates.insert(Exchange::USD("2014-02-12".to_string()), 3.0552f64);
- exchange_rates.insert(Exchange::EUR("2024-09-05".to_string()), 4.2717f64);
- exchange_rates.insert(Exchange::USD("2013-04-11".to_string()), 3.1382f64);
- exchange_rates.insert(Exchange::USD("2019-11-04".to_string()), 3.8099f64);
- exchange_rates.insert(Exchange::USD("2021-01-29".to_string()), 3.746f64);
- exchange_rates.insert(Exchange::USD("2017-05-11".to_string()), 3.8744f64);
- exchange_rates.insert(Exchange::USD("2025-11-19".to_string()), 3.6656f64);
- exchange_rates.insert(Exchange::USD("2021-06-24".to_string()), 3.7986f64);
- exchange_rates.insert(Exchange::EUR("2025-06-03".to_string()), 4.2721f64);
- exchange_rates.insert(Exchange::USD("2012-04-19".to_string()), 3.1879f64);
- exchange_rates.insert(Exchange::USD("2014-06-17".to_string()), 3.0495f64);
- exchange_rates.insert(Exchange::EUR("2024-02-19".to_string()), 4.339f64);
- exchange_rates.insert(Exchange::USD("2019-11-27".to_string()), 3.9154f64);
- exchange_rates.insert(Exchange::USD("2019-04-04".to_string()), 3.8215f64);
- exchange_rates.insert(Exchange::USD("2024-11-12".to_string()), 4.1011f64);
- exchange_rates.insert(Exchange::USD("2020-10-29".to_string()), 3.9505f64);
- exchange_rates.insert(Exchange::USD("2021-06-07".to_string()), 3.6656f64);
- exchange_rates.insert(Exchange::USD("2017-11-29".to_string()), 3.5385f64);
- exchange_rates.insert(Exchange::USD("2019-06-03".to_string()), 3.8292f64);
- exchange_rates.insert(Exchange::USD("2013-01-21".to_string()), 3.1351f64);
- exchange_rates.insert(Exchange::EUR("2025-10-29".to_string()), 4.2374f64);
- exchange_rates.insert(Exchange::USD("2016-09-13".to_string()), 3.8734f64);
- exchange_rates.insert(Exchange::USD("2022-07-25".to_string()), 4.6171f64);
- exchange_rates.insert(Exchange::USD("2015-05-12".to_string()), 3.6447f64);
- exchange_rates.insert(Exchange::USD("2017-05-18".to_string()), 3.7926f64);
- exchange_rates.insert(Exchange::USD("2013-10-11".to_string()), 3.085f64);
- exchange_rates.insert(Exchange::USD("2023-04-27".to_string()), 4.1541f64);
- exchange_rates.insert(Exchange::USD("2013-03-18".to_string()), 3.2015f64);
- exchange_rates.insert(Exchange::USD("2023-03-17".to_string()), 4.4202f64);
- exchange_rates.insert(Exchange::USD("2021-01-28".to_string()), 3.7566f64);
- exchange_rates.insert(Exchange::USD("2020-02-07".to_string()), 3.8947f64);
- exchange_rates.insert(Exchange::USD("2021-03-09".to_string()), 3.8507f64);
- exchange_rates.insert(Exchange::USD("2020-09-04".to_string()), 3.7533f64);
- exchange_rates.insert(Exchange::EUR("2023-05-11".to_string()), 4.5259f64);
- exchange_rates.insert(Exchange::USD("2019-07-31".to_string()), 3.8504f64);
- exchange_rates.insert(Exchange::EUR("2024-12-09".to_string()), 4.2581f64);
- exchange_rates.insert(Exchange::USD("2014-06-10".to_string()), 3.0303f64);
- exchange_rates.insert(Exchange::USD("2014-06-30".to_string()), 3.0473f64);
- exchange_rates.insert(Exchange::USD("2023-03-02".to_string()), 4.4002f64);
- exchange_rates.insert(Exchange::USD("2020-03-17".to_string()), 4.046f64);
- exchange_rates.insert(Exchange::USD("2025-01-21".to_string()), 4.1101f64);
- exchange_rates.insert(Exchange::EUR("2023-02-21".to_string()), 4.7469f64);
- exchange_rates.insert(Exchange::USD("2023-02-06".to_string()), 4.3833f64);
- exchange_rates.insert(Exchange::USD("2022-07-15".to_string()), 4.7966f64);
- exchange_rates.insert(Exchange::USD("2024-01-23".to_string()), 4.0133f64);
- exchange_rates.insert(Exchange::USD("2020-02-04".to_string()), 3.8773f64);
- exchange_rates.insert(Exchange::USD("2016-03-31".to_string()), 3.759f64);
- exchange_rates.insert(Exchange::USD("2017-09-21".to_string()), 3.5975f64);
- exchange_rates.insert(Exchange::USD("2014-07-04".to_string()), 3.0495f64);
- exchange_rates.insert(Exchange::EUR("2023-06-06".to_string()), 4.4902f64);
- exchange_rates.insert(Exchange::USD("2017-10-19".to_string()), 3.5896f64);
- exchange_rates.insert(Exchange::EUR("2024-01-31".to_string()), 4.3434f64);
- exchange_rates.insert(Exchange::USD("2024-01-02".to_string()), 3.9432f64);
- exchange_rates.insert(Exchange::USD("2024-02-29".to_string()), 3.9803f64);
- exchange_rates.insert(Exchange::USD("2024-07-16".to_string()), 3.9083f64);
- exchange_rates.insert(Exchange::USD("2021-02-10".to_string()), 3.6973f64);
- exchange_rates.insert(Exchange::USD("2019-03-15".to_string()), 3.8014f64);
- exchange_rates.insert(Exchange::USD("2018-06-21".to_string()), 3.7607f64);
- exchange_rates.insert(Exchange::USD("2017-01-10".to_string()), 4.127f64);
- exchange_rates.insert(Exchange::EUR("2023-12-15".to_string()), 4.3103f64);
- exchange_rates.insert(Exchange::EUR("2024-09-18".to_string()), 4.2691f64);
- exchange_rates.insert(Exchange::USD("2015-11-17".to_string()), 3.9775f64);
- exchange_rates.insert(Exchange::USD("2023-11-16".to_string()), 4.0415f64);
- exchange_rates.insert(Exchange::USD("2024-12-16".to_string()), 4.0571f64);
- exchange_rates.insert(Exchange::USD("2016-09-12".to_string()), 3.8668f64);
- exchange_rates.insert(Exchange::USD("2023-02-17".to_string()), 4.4888f64);
- exchange_rates.insert(Exchange::EUR("2025-10-27".to_string()), 4.2353f64);
- exchange_rates.insert(Exchange::EUR("2023-09-21".to_string()), 4.621f64);
- exchange_rates.insert(Exchange::USD("2021-06-25".to_string()), 3.7749f64);
- exchange_rates.insert(Exchange::USD("2024-03-12".to_string()), 3.9162f64);
- exchange_rates.insert(Exchange::USD("2024-03-15".to_string()), 3.9392f64);
- exchange_rates.insert(Exchange::USD("2023-02-09".to_string()), 4.4003f64);
- exchange_rates.insert(Exchange::USD("2023-02-02".to_string()), 4.2803f64);
- exchange_rates.insert(Exchange::USD("2023-11-20".to_string()), 3.9938f64);
- exchange_rates.insert(Exchange::USD("2018-07-20".to_string()), 3.717f64);
- exchange_rates.insert(Exchange::USD("2024-11-04".to_string()), 3.9869f64);
- exchange_rates.insert(Exchange::USD("2016-11-04".to_string()), 3.8862f64);
- exchange_rates.insert(Exchange::EUR("2023-06-02".to_string()), 4.5148f64);
- exchange_rates.insert(Exchange::EUR("2025-10-03".to_string()), 4.2559f64);
- exchange_rates.insert(Exchange::USD("2018-09-24".to_string()), 3.662f64);
- exchange_rates.insert(Exchange::USD("2014-11-20".to_string()), 3.368f64);
- exchange_rates.insert(Exchange::USD("2020-01-30".to_string()), 3.8856f64);
- exchange_rates.insert(Exchange::USD("2023-06-13".to_string()), 4.1439f64);
- exchange_rates.insert(Exchange::USD("2016-03-16".to_string()), 3.8749f64);
- exchange_rates.insert(Exchange::USD("2024-07-01".to_string()), 3.9915f64);
- exchange_rates.insert(Exchange::USD("2020-04-27".to_string()), 4.1696f64);
- exchange_rates.insert(Exchange::USD("2018-08-27".to_string()), 3.682f64);
- exchange_rates.insert(Exchange::EUR("2024-12-02".to_string()), 4.2923f64);
- exchange_rates.insert(Exchange::USD("2012-02-10".to_string()), 3.1703f64);
- exchange_rates.insert(Exchange::USD("2012-07-04".to_string()), 3.3415f64);
- exchange_rates.insert(Exchange::EUR("2025-03-05".to_string()), 4.1545f64);
- exchange_rates.insert(Exchange::USD("2020-06-04".to_string()), 3.9573f64);
- exchange_rates.insert(Exchange::EUR("2024-04-16".to_string()), 4.3197f64);
- exchange_rates.insert(Exchange::USD("2024-10-01".to_string()), 3.859f64);
- exchange_rates.insert(Exchange::EUR("2024-10-16".to_string()), 4.2955f64);
- exchange_rates.insert(Exchange::USD("2022-09-14".to_string()), 4.7233f64);
- exchange_rates.insert(Exchange::USD("2019-10-25".to_string()), 3.8452f64);
- exchange_rates.insert(Exchange::USD("2012-11-08".to_string()), 3.2655f64);
- exchange_rates.insert(Exchange::EUR("2025-03-17".to_string()), 4.1777f64);
- exchange_rates.insert(Exchange::USD("2012-12-04".to_string()), 3.1575f64);
- exchange_rates.insert(Exchange::EUR("2023-12-07".to_string()), 4.3334f64);
- exchange_rates.insert(Exchange::USD("2013-11-28".to_string()), 3.0872f64);
- exchange_rates.insert(Exchange::USD("2013-08-01".to_string()), 3.1961f64);
- exchange_rates.insert(Exchange::USD("2022-03-29".to_string()), 4.2917f64);
- exchange_rates.insert(Exchange::USD("2024-05-31".to_string()), 3.9389f64);
- exchange_rates.insert(Exchange::USD("2024-10-03".to_string()), 3.8951f64);
- exchange_rates.insert(Exchange::EUR("2023-03-03".to_string()), 4.7046f64);
- exchange_rates.insert(Exchange::USD("2021-12-28".to_string()), 4.062f64);
- exchange_rates.insert(Exchange::EUR("2024-04-30".to_string()), 4.3213f64);
- exchange_rates.insert(Exchange::USD("2020-10-05".to_string()), 3.8252f64);
- exchange_rates.insert(Exchange::USD("2013-08-26".to_string()), 3.1658f64);
- exchange_rates.insert(Exchange::EUR("2025-09-30".to_string()), 4.2692f64);
- exchange_rates.insert(Exchange::USD("2019-05-15".to_string()), 3.8457f64);
- exchange_rates.insert(Exchange::USD("2019-05-27".to_string()), 3.8374f64);
- exchange_rates.insert(Exchange::USD("2013-09-17".to_string()), 3.1552f64);
- exchange_rates.insert(Exchange::USD("2020-03-19".to_string()), 4.2421f64);
- exchange_rates.insert(Exchange::EUR("2024-09-04".to_string()), 4.2815f64);
- exchange_rates.insert(Exchange::USD("2025-05-13".to_string()), 3.8266f64);
- exchange_rates.insert(Exchange::USD("2021-03-30".to_string()), 3.9604f64);
- exchange_rates.insert(Exchange::USD("2017-10-06".to_string()), 3.6799f64);
- exchange_rates.insert(Exchange::USD("2012-03-01".to_string()), 3.0887f64);
- exchange_rates.insert(Exchange::USD("2023-12-14".to_string()), 3.9484f64);
- exchange_rates.insert(Exchange::EUR("2024-10-28".to_string()), 4.3478f64);
- exchange_rates.insert(Exchange::USD("2017-07-03".to_string()), 3.7196f64);
- exchange_rates.insert(Exchange::USD("2017-11-10".to_string()), 3.6274f64);
- exchange_rates.insert(Exchange::USD("2018-11-23".to_string()), 3.7779f64);
- exchange_rates.insert(Exchange::EUR("2023-06-15".to_string()), 4.4633f64);
- exchange_rates.insert(Exchange::EUR("2025-10-07".to_string()), 4.2559f64);
- exchange_rates.insert(Exchange::USD("2025-04-03".to_string()), 3.7968f64);
- exchange_rates.insert(Exchange::USD("2021-08-12".to_string()), 3.9074f64);
- exchange_rates.insert(Exchange::USD("2021-06-18".to_string()), 3.8198f64);
- exchange_rates.insert(Exchange::USD("2023-07-20".to_string()), 3.971f64);
- exchange_rates.insert(Exchange::USD("2019-08-28".to_string()), 3.9548f64);
- exchange_rates.insert(Exchange::USD("2017-12-07".to_string()), 3.5722f64);
- exchange_rates.insert(Exchange::USD("2014-04-22".to_string()), 3.034f64);
- exchange_rates.insert(Exchange::USD("2020-03-03".to_string()), 3.8804f64);
- exchange_rates.insert(Exchange::USD("2018-05-28".to_string()), 3.6849f64);
- exchange_rates.insert(Exchange::USD("2024-11-08".to_string()), 4.0117f64);
- exchange_rates.insert(Exchange::USD("2017-01-09".to_string()), 4.1592f64);
- exchange_rates.insert(Exchange::USD("2015-10-07".to_string()), 3.7604f64);
- exchange_rates.insert(Exchange::USD("2025-10-31".to_string()), 3.6751f64);
- exchange_rates.insert(Exchange::USD("2020-04-17".to_string()), 4.1886f64);
- exchange_rates.insert(Exchange::USD("2020-11-26".to_string()), 3.7586f64);
- exchange_rates.insert(Exchange::USD("2015-12-28".to_string()), 3.8663f64);
- exchange_rates.insert(Exchange::EUR("2025-08-07".to_string()), 4.2618f64);
- exchange_rates.insert(Exchange::USD("2020-04-20".to_string()), 4.1525f64);
- exchange_rates.insert(Exchange::EUR("2025-10-20".to_string()), 4.2396f64);
- exchange_rates.insert(Exchange::EUR("2025-11-12".to_string()), 4.2312f64);
- exchange_rates.insert(Exchange::USD("2023-08-01".to_string()), 4.0262f64);
- exchange_rates.insert(Exchange::USD("2020-07-24".to_string()), 3.8029f64);
- exchange_rates.insert(Exchange::USD("2017-03-22".to_string()), 3.9731f64);
- exchange_rates.insert(Exchange::USD("2016-11-24".to_string()), 4.188f64);
- exchange_rates.insert(Exchange::USD("2014-01-21".to_string()), 3.0763f64);
- exchange_rates.insert(Exchange::USD("2020-11-12".to_string()), 3.7995f64);
- exchange_rates.insert(Exchange::USD("2016-06-07".to_string()), 3.8298f64);
- exchange_rates.insert(Exchange::USD("2015-12-22".to_string()), 3.8787f64);
- exchange_rates.insert(Exchange::USD("2012-12-18".to_string()), 3.1044f64);
- exchange_rates.insert(Exchange::USD("2020-01-07".to_string()), 3.7861f64);
- exchange_rates.insert(Exchange::USD("2022-06-29".to_string()), 4.4533f64);
- exchange_rates.insert(Exchange::USD("2017-04-28".to_string()), 3.8696f64);
- exchange_rates.insert(Exchange::USD("2019-10-14".to_string()), 3.8958f64);
- exchange_rates.insert(Exchange::USD("2019-02-21".to_string()), 3.8247f64);
- exchange_rates.insert(Exchange::USD("2025-06-17".to_string()), 3.7005f64);
- exchange_rates.insert(Exchange::USD("2019-01-04".to_string()), 3.772f64);
- exchange_rates.insert(Exchange::USD("2025-06-10".to_string()), 3.7352f64);
- exchange_rates.insert(Exchange::USD("2017-07-28".to_string()), 3.6406f64);
- exchange_rates.insert(Exchange::USD("2024-10-17".to_string()), 3.9786f64);
- exchange_rates.insert(Exchange::USD("2025-11-25".to_string()), 3.6675f64);
- exchange_rates.insert(Exchange::USD("2020-10-27".to_string()), 3.886f64);
- exchange_rates.insert(Exchange::USD("2018-09-19".to_string()), 3.6685f64);
- exchange_rates.insert(Exchange::USD("2014-02-14".to_string()), 3.0334f64);
- exchange_rates.insert(Exchange::USD("2021-10-07".to_string()), 3.9334f64);
- exchange_rates.insert(Exchange::USD("2019-04-10".to_string()), 3.8023f64);
- exchange_rates.insert(Exchange::USD("2022-10-06".to_string()), 4.8989f64);
- exchange_rates.insert(Exchange::EUR("2025-02-03".to_string()), 4.2305f64);
- exchange_rates.insert(Exchange::USD("2024-05-27".to_string()), 3.9196f64);
- exchange_rates.insert(Exchange::USD("2018-05-08".to_string()), 3.5884f64);
- exchange_rates.insert(Exchange::USD("2015-03-11".to_string()), 3.9091f64);
- exchange_rates.insert(Exchange::USD("2019-12-23".to_string()), 3.8394f64);
- exchange_rates.insert(Exchange::USD("2019-05-06".to_string()), 3.8313f64);
- exchange_rates.insert(Exchange::USD("2012-08-03".to_string()), 3.3548f64);
- exchange_rates.insert(Exchange::USD("2017-01-19".to_string()), 4.1014f64);
- exchange_rates.insert(Exchange::USD("2016-12-21".to_string()), 4.2484f64);
- exchange_rates.insert(Exchange::EUR("2023-01-19".to_string()), 4.7053f64);
- exchange_rates.insert(Exchange::USD("2016-08-12".to_string()), 3.8219f64);
- exchange_rates.insert(Exchange::USD("2023-03-14".to_string()), 4.3793f64);
- exchange_rates.insert(Exchange::USD("2016-05-12".to_string()), 3.8811f64);
- exchange_rates.insert(Exchange::EUR("2025-11-19".to_string()), 4.2424f64);
- exchange_rates.insert(Exchange::EUR("2023-01-25".to_string()), 4.7079f64);
- exchange_rates.insert(Exchange::USD("2024-10-08".to_string()), 3.9299f64);
- exchange_rates.insert(Exchange::USD("2014-03-31".to_string()), 3.0344f64);
- exchange_rates.insert(Exchange::USD("2019-07-17".to_string()), 3.8038f64);
- exchange_rates.insert(Exchange::USD("2016-12-19".to_string()), 4.2255f64);
- exchange_rates.insert(Exchange::USD("2021-05-21".to_string()), 3.6778f64);
- exchange_rates.insert(Exchange::USD("2019-09-18".to_string()), 3.9322f64);
- exchange_rates.insert(Exchange::USD("2018-07-30".to_string()), 3.6684f64);
- exchange_rates.insert(Exchange::USD("2021-08-11".to_string()), 3.9148f64);
- exchange_rates.insert(Exchange::USD("2018-10-30".to_string()), 3.8062f64);
- exchange_rates.insert(Exchange::USD("2014-10-28".to_string()), 3.3295f64);
- exchange_rates.insert(Exchange::USD("2020-10-21".to_string()), 3.8706f64);
- exchange_rates.insert(Exchange::USD("2020-02-27".to_string()), 3.9413f64);
- exchange_rates.insert(Exchange::USD("2021-10-15".to_string()), 3.9413f64);
- exchange_rates.insert(Exchange::USD("2013-04-22".to_string()), 3.1448f64);
- exchange_rates.insert(Exchange::USD("2017-07-14".to_string()), 3.6986f64);
- exchange_rates.insert(Exchange::USD("2023-03-01".to_string()), 4.4094f64);
- exchange_rates.insert(Exchange::USD("2016-02-08".to_string()), 3.9525f64);
- exchange_rates.insert(Exchange::USD("2013-02-14".to_string()), 3.1209f64);
- exchange_rates.insert(Exchange::EUR("2024-08-07".to_string()), 4.3158f64);
- exchange_rates.insert(Exchange::USD("2021-07-29".to_string()), 3.8617f64);
- exchange_rates.insert(Exchange::USD("2016-08-19".to_string()), 3.7905f64);
- exchange_rates.insert(Exchange::USD("2013-12-02".to_string()), 3.0965f64);
- exchange_rates.insert(Exchange::USD("2022-03-17".to_string()), 4.2403f64);
- exchange_rates.insert(Exchange::USD("2015-01-29".to_string()), 3.7418f64);
- exchange_rates.insert(Exchange::USD("2024-10-07".to_string()), 3.9368f64);
- exchange_rates.insert(Exchange::USD("2025-06-09".to_string()), 3.7427f64);
- exchange_rates.insert(Exchange::USD("2012-10-26".to_string()), 3.2119f64);
- exchange_rates.insert(Exchange::USD("2016-11-17".to_string()), 4.1375f64);
- exchange_rates.insert(Exchange::EUR("2023-03-17".to_string()), 4.7062f64);
- exchange_rates.insert(Exchange::USD("2013-10-09".to_string()), 3.1057f64);
- exchange_rates.insert(Exchange::USD("2024-01-08".to_string()), 3.9812f64);
- exchange_rates.insert(Exchange::EUR("2024-01-05".to_string()), 4.3484f64);
- exchange_rates.insert(Exchange::USD("2021-04-07".to_string()), 3.8611f64);
- exchange_rates.insert(Exchange::USD("2012-08-20".to_string()), 3.2944f64);
- exchange_rates.insert(Exchange::EUR("2025-03-27".to_string()), 4.1913f64);
- exchange_rates.insert(Exchange::USD("2018-03-14".to_string()), 3.4055f64);
- exchange_rates.insert(Exchange::USD("2013-11-18".to_string()), 3.0953f64);
- exchange_rates.insert(Exchange::USD("2015-02-13".to_string()), 3.6552f64);
- exchange_rates.insert(Exchange::EUR("2023-02-27".to_string()), 4.7162f64);
- exchange_rates.insert(Exchange::USD("2025-08-04".to_string()), 3.6977f64);
- exchange_rates.insert(Exchange::EUR("2024-12-03".to_string()), 4.2927f64);
- exchange_rates.insert(Exchange::USD("2017-05-26".to_string()), 3.7248f64);
- exchange_rates.insert(Exchange::USD("2025-11-24".to_string()), 3.6726f64);
- exchange_rates.insert(Exchange::USD("2018-09-21".to_string()), 3.6402f64);
- exchange_rates.insert(Exchange::USD("2020-02-05".to_string()), 3.8654f64);
- exchange_rates.insert(Exchange::USD("2013-02-06".to_string()), 3.0868f64);
- exchange_rates.insert(Exchange::USD("2016-11-16".to_string()), 4.138f64);
- exchange_rates.insert(Exchange::USD("2021-05-11".to_string()), 3.7514f64);
- exchange_rates.insert(Exchange::USD("2016-04-05".to_string()), 3.7337f64);
- exchange_rates.insert(Exchange::USD("2025-09-11".to_string()), 3.6459f64);
- exchange_rates.insert(Exchange::USD("2014-03-13".to_string()), 3.0284f64);
- exchange_rates.insert(Exchange::EUR("2025-09-19".to_string()), 4.2666f64);
- exchange_rates.insert(Exchange::USD("2015-11-06".to_string()), 3.9075f64);
- exchange_rates.insert(Exchange::USD("2018-10-05".to_string()), 3.7518f64);
- exchange_rates.insert(Exchange::USD("2012-02-28".to_string()), 3.0977f64);
- exchange_rates.insert(Exchange::EUR("2024-07-02".to_string()), 4.3286f64);
- exchange_rates.insert(Exchange::USD("2022-03-24".to_string()), 4.331f64);
- exchange_rates.insert(Exchange::USD("2020-06-24".to_string()), 3.9395f64);
- exchange_rates.insert(Exchange::USD("2013-02-08".to_string()), 3.1056f64);
- exchange_rates.insert(Exchange::USD("2021-05-24".to_string()), 3.6795f64);
- exchange_rates.insert(Exchange::USD("2019-12-19".to_string()), 3.8281f64);
- exchange_rates.insert(Exchange::USD("2016-10-07".to_string()), 3.8505f64);
- exchange_rates.insert(Exchange::USD("2013-10-08".to_string()), 3.0873f64);
- exchange_rates.insert(Exchange::USD("2025-02-12".to_string()), 4.0215f64);
- exchange_rates.insert(Exchange::USD("2018-02-02".to_string()), 3.3329f64);
- exchange_rates.insert(Exchange::USD("2017-12-13".to_string()), 3.588f64);
- exchange_rates.insert(Exchange::USD("2013-05-09".to_string()), 3.1392f64);
- exchange_rates.insert(Exchange::EUR("2025-02-06".to_string()), 4.2073f64);
- exchange_rates.insert(Exchange::USD("2015-11-09".to_string()), 3.9605f64);
- exchange_rates.insert(Exchange::EUR("2024-02-02".to_string()), 4.3173f64);
- exchange_rates.insert(Exchange::EUR("2023-11-16".to_string()), 4.3854f64);
- exchange_rates.insert(Exchange::USD("2019-07-30".to_string()), 3.8493f64);
- exchange_rates.insert(Exchange::USD("2014-01-14".to_string()), 3.04f64);
- exchange_rates.insert(Exchange::USD("2017-06-23".to_string()), 3.7824f64);
- exchange_rates.insert(Exchange::USD("2019-11-26".to_string()), 3.9039f64);
- exchange_rates.insert(Exchange::USD("2015-10-13".to_string()), 3.7199f64);
- exchange_rates.insert(Exchange::EUR("2024-08-23".to_string()), 4.2769f64);
- exchange_rates.insert(Exchange::USD("2021-03-19".to_string()), 3.8865f64);
- exchange_rates.insert(Exchange::EUR("2023-08-21".to_string()), 4.4768f64);
- exchange_rates.insert(Exchange::USD("2014-02-04".to_string()), 3.1189f64);
- exchange_rates.insert(Exchange::USD("2021-04-22".to_string()), 3.7885f64);
- exchange_rates.insert(Exchange::USD("2024-07-31".to_string()), 3.9689f64);
- exchange_rates.insert(Exchange::USD("2022-02-23".to_string()), 3.9937f64);
- exchange_rates.insert(Exchange::USD("2016-01-11".to_string()), 4.0085f64);
- exchange_rates.insert(Exchange::USD("2020-09-02".to_string()), 3.7191f64);
- exchange_rates.insert(Exchange::USD("2017-05-24".to_string()), 3.7535f64);
- exchange_rates.insert(Exchange::USD("2013-04-30".to_string()), 3.1721f64);
- exchange_rates.insert(Exchange::USD("2021-05-18".to_string()), 3.705f64);
- exchange_rates.insert(Exchange::USD("2017-06-06".to_string()), 3.725f64);
- exchange_rates.insert(Exchange::USD("2018-10-19".to_string()), 3.7601f64);
- exchange_rates.insert(Exchange::USD("2024-10-24".to_string()), 4.0168f64);
- exchange_rates.insert(Exchange::USD("2020-07-10".to_string()), 3.9646f64);
- exchange_rates.insert(Exchange::USD("2017-03-09".to_string()), 4.0864f64);
- exchange_rates.insert(Exchange::USD("2020-05-15".to_string()), 4.2135f64);
- exchange_rates.insert(Exchange::USD("2017-02-02".to_string()), 3.9835f64);
- exchange_rates.insert(Exchange::USD("2021-07-27".to_string()), 3.9017f64);
- exchange_rates.insert(Exchange::USD("2014-03-26".to_string()), 3.0318f64);
- exchange_rates.insert(Exchange::USD("2022-11-25".to_string()), 4.5111f64);
- exchange_rates.insert(Exchange::USD("2015-03-10".to_string()), 3.8345f64);
- exchange_rates.insert(Exchange::EUR("2024-08-26".to_string()), 4.2803f64);
- exchange_rates.insert(Exchange::EUR("2024-12-16".to_string()), 4.2622f64);
- exchange_rates.insert(Exchange::USD("2025-04-09".to_string()), 3.8828f64);
- exchange_rates.insert(Exchange::USD("2020-12-10".to_string()), 3.6574f64);
- exchange_rates.insert(Exchange::USD("2019-07-04".to_string()), 3.7618f64);
- exchange_rates.insert(Exchange::USD("2020-01-09".to_string()), 3.8251f64);
- exchange_rates.insert(Exchange::EUR("2024-01-03".to_string()), 4.3646f64);
- exchange_rates.insert(Exchange::USD("2022-08-05".to_string()), 4.6024f64);
- exchange_rates.insert(Exchange::USD("2019-11-20".to_string()), 3.8792f64);
- exchange_rates.insert(Exchange::USD("2023-09-11".to_string()), 4.3077f64);
- exchange_rates.insert(Exchange::USD("2019-07-25".to_string()), 3.8199f64);
- exchange_rates.insert(Exchange::USD("2016-03-04".to_string()), 3.9545f64);
- exchange_rates.insert(Exchange::USD("2015-12-09".to_string()), 3.9705f64);
- exchange_rates.insert(Exchange::USD("2014-10-16".to_string()), 3.2985f64);
- exchange_rates.insert(Exchange::USD("2016-06-22".to_string()), 3.8945f64);
- exchange_rates.insert(Exchange::EUR("2023-01-04".to_string()), 4.6688f64);
- exchange_rates.insert(Exchange::EUR("2023-09-22".to_string()), 4.6069f64);
- exchange_rates.insert(Exchange::USD("2014-03-27".to_string()), 3.0401f64);
- exchange_rates.insert(Exchange::USD("2023-10-13".to_string()), 4.3033f64);
- exchange_rates.insert(Exchange::USD("2019-12-31".to_string()), 3.7977f64);
- exchange_rates.insert(Exchange::USD("2015-03-16".to_string()), 3.926f64);
- exchange_rates.insert(Exchange::USD("2020-12-01".to_string()), 3.7367f64);
- exchange_rates.insert(Exchange::USD("2013-05-23".to_string()), 3.2587f64);
- exchange_rates.insert(Exchange::EUR("2023-02-10".to_string()), 4.7716f64);
- exchange_rates.insert(Exchange::USD("2023-06-01".to_string()), 4.2399f64);
- exchange_rates.insert(Exchange::USD("2024-11-26".to_string()), 4.1073f64);
- exchange_rates.insert(Exchange::USD("2021-08-30".to_string()), 3.8724f64);
- exchange_rates.insert(Exchange::EUR("2024-01-04".to_string()), 4.3525f64);
- exchange_rates.insert(Exchange::USD("2024-12-20".to_string()), 4.1002f64);
- exchange_rates.insert(Exchange::USD("2014-08-05".to_string()), 3.1121f64);
- exchange_rates.insert(Exchange::EUR("2025-07-02".to_string()), 4.25f64);
- exchange_rates.insert(Exchange::USD("2015-06-24".to_string()), 3.7103f64);
- exchange_rates.insert(Exchange::USD("2013-03-27".to_string()), 3.2635f64);
- exchange_rates.insert(Exchange::USD("2013-01-23".to_string()), 3.1195f64);
- exchange_rates.insert(Exchange::USD("2023-05-23".to_string()), 4.1634f64);
- exchange_rates.insert(Exchange::USD("2018-11-05".to_string()), 3.7907f64);
- exchange_rates.insert(Exchange::USD("2016-01-25".to_string()), 4.1346f64);
- exchange_rates.insert(Exchange::USD("2013-06-10".to_string()), 3.221f64);
- exchange_rates.insert(Exchange::USD("2013-07-18".to_string()), 3.2362f64);
- exchange_rates.insert(Exchange::USD("2021-03-12".to_string()), 3.8521f64);
- exchange_rates.insert(Exchange::USD("2012-09-12".to_string()), 3.168f64);
- exchange_rates.insert(Exchange::USD("2019-10-10".to_string()), 3.9226f64);
- exchange_rates.insert(Exchange::USD("2012-11-21".to_string()), 3.2287f64);
- exchange_rates.insert(Exchange::USD("2025-02-17".to_string()), 3.9749f64);
- exchange_rates.insert(Exchange::USD("2015-09-23".to_string()), 3.7801f64);
- exchange_rates.insert(Exchange::EUR("2025-06-30".to_string()), 4.2419f64);
- exchange_rates.insert(Exchange::USD("2024-01-18".to_string()), 4.0437f64);
- exchange_rates.insert(Exchange::USD("2015-01-27".to_string()), 3.7348f64);
- exchange_rates.insert(Exchange::USD("2015-09-11".to_string()), 3.7264f64);
- exchange_rates.insert(Exchange::USD("2022-01-12".to_string()), 3.9879f64);
- exchange_rates.insert(Exchange::USD("2020-03-06".to_string()), 3.8231f64);
- exchange_rates.insert(Exchange::USD("2025-01-13".to_string()), 4.1904f64);
- exchange_rates.insert(Exchange::USD("2018-09-05".to_string()), 3.733f64);
- exchange_rates.insert(Exchange::USD("2022-07-19".to_string()), 4.6594f64);
- exchange_rates.insert(Exchange::USD("2025-11-12".to_string()), 3.657f64);
- exchange_rates.insert(Exchange::EUR("2023-07-27".to_string()), 4.4224f64);
- exchange_rates.insert(Exchange::USD("2021-04-01".to_string()), 3.9428f64);
- exchange_rates.insert(Exchange::EUR("2025-07-14".to_string()), 4.2614f64);
- exchange_rates.insert(Exchange::USD("2021-08-24".to_string()), 3.9086f64);
- exchange_rates.insert(Exchange::USD("2025-10-06".to_string()), 3.6446f64);
- exchange_rates.insert(Exchange::USD("2013-10-16".to_string()), 3.0854f64);
- exchange_rates.insert(Exchange::USD("2023-10-27".to_string()), 4.2267f64);
- exchange_rates.insert(Exchange::USD("2021-04-16".to_string()), 3.7978f64);
- exchange_rates.insert(Exchange::USD("2023-08-08".to_string()), 4.0396f64);
- exchange_rates.insert(Exchange::USD("2021-07-09".to_string()), 3.8427f64);
- exchange_rates.insert(Exchange::USD("2015-06-16".to_string()), 3.6933f64);
- exchange_rates.insert(Exchange::USD("2017-11-02".to_string()), 3.6366f64);
- exchange_rates.insert(Exchange::USD("2014-01-27".to_string()), 3.0884f64);
- exchange_rates.insert(Exchange::USD("2014-09-30".to_string()), 3.2973f64);
- exchange_rates.insert(Exchange::USD("2023-06-19".to_string()), 4.068f64);
- exchange_rates.insert(Exchange::USD("2024-12-27".to_string()), 4.1036f64);
- exchange_rates.insert(Exchange::USD("2016-05-06".to_string()), 3.8732f64);
- exchange_rates.insert(Exchange::USD("2013-07-10".to_string()), 3.3724f64);
- exchange_rates.insert(Exchange::USD("2012-07-24".to_string()), 3.4678f64);
- exchange_rates.insert(Exchange::USD("2015-06-02".to_string()), 3.7676f64);
- exchange_rates.insert(Exchange::USD("2025-09-22".to_string()), 3.6255f64);
- exchange_rates.insert(Exchange::USD("2016-10-25".to_string()), 3.9543f64);
- exchange_rates.insert(Exchange::USD("2017-12-14".to_string()), 3.5716f64);
- exchange_rates.insert(Exchange::USD("2014-11-27".to_string()), 3.3528f64);
- exchange_rates.insert(Exchange::USD("2025-09-25".to_string()), 3.6295f64);
- exchange_rates.insert(Exchange::USD("2021-11-24".to_string()), 4.1764f64);
- exchange_rates.insert(Exchange::EUR("2025-08-04".to_string()), 4.2734f64);
- exchange_rates.insert(Exchange::USD("2014-06-05".to_string()), 3.0275f64);
- exchange_rates.insert(Exchange::USD("2025-09-01".to_string()), 3.6278f64);
- exchange_rates.insert(Exchange::USD("2014-07-16".to_string()), 3.0503f64);
- exchange_rates.insert(Exchange::USD("2018-01-10".to_string()), 3.4999f64);
- exchange_rates.insert(Exchange::EUR("2025-07-09".to_string()), 4.2399f64);
- exchange_rates.insert(Exchange::USD("2020-07-13".to_string()), 3.9564f64);
- exchange_rates.insert(Exchange::USD("2018-07-10".to_string()), 3.6973f64);
- exchange_rates.insert(Exchange::USD("2015-09-22".to_string()), 3.7438f64);
- exchange_rates.insert(Exchange::USD("2013-02-27".to_string()), 3.1841f64);
- exchange_rates.insert(Exchange::USD("2022-02-15".to_string()), 3.974f64);
- exchange_rates.insert(Exchange::USD("2020-07-06".to_string()), 3.9588f64);
- exchange_rates.insert(Exchange::USD("2013-05-06".to_string()), 3.1646f64);
- exchange_rates.insert(Exchange::EUR("2023-08-09".to_string()), 4.4586f64);
- exchange_rates.insert(Exchange::USD("2020-06-16".to_string()), 3.9058f64);
- exchange_rates.insert(Exchange::USD("2012-04-06".to_string()), 3.1814f64);
- exchange_rates.insert(Exchange::USD("2018-08-02".to_string()), 3.6783f64);
- exchange_rates.insert(Exchange::USD("2016-06-02".to_string()), 3.9204f64);
- exchange_rates.insert(Exchange::USD("2019-03-25".to_string()), 3.7966f64);
- exchange_rates.insert(Exchange::USD("2017-11-24".to_string()), 3.5486f64);
- exchange_rates.insert(Exchange::USD("2019-01-25".to_string()), 3.7893f64);
- exchange_rates.insert(Exchange::USD("2014-04-23".to_string()), 3.0273f64);
- exchange_rates.insert(Exchange::USD("2012-03-09".to_string()), 3.1126f64);
- exchange_rates.insert(Exchange::USD("2017-08-09".to_string()), 3.6342f64);
- exchange_rates.insert(Exchange::USD("2015-01-23".to_string()), 3.7687f64);
- exchange_rates.insert(Exchange::USD("2018-05-17".to_string()), 3.6283f64);
- exchange_rates.insert(Exchange::USD("2015-03-12".to_string()), 3.8928f64);
- exchange_rates.insert(Exchange::USD("2025-01-02".to_string()), 4.1219f64);
- exchange_rates.insert(Exchange::USD("2013-09-02".to_string()), 3.2164f64);
- exchange_rates.insert(Exchange::USD("2012-02-01".to_string()), 3.1913f64);
- exchange_rates.insert(Exchange::USD("2023-09-06".to_string()), 4.1895f64);
- exchange_rates.insert(Exchange::USD("2024-03-18".to_string()), 3.9528f64);
- exchange_rates.insert(Exchange::USD("2022-06-08".to_string()), 4.2904f64);
- exchange_rates.insert(Exchange::USD("2017-11-14".to_string()), 3.6126f64);
- exchange_rates.insert(Exchange::USD("2012-01-27".to_string()), 3.2163f64);
- exchange_rates.insert(Exchange::USD("2018-09-12".to_string()), 3.7198f64);
- exchange_rates.insert(Exchange::USD("2020-12-15".to_string()), 3.6554f64);
- exchange_rates.insert(Exchange::USD("2017-10-18".to_string()), 3.6006f64);
- exchange_rates.insert(Exchange::USD("2025-10-28".to_string()), 3.6327f64);
- exchange_rates.insert(Exchange::USD("2018-06-25".to_string()), 3.7087f64);
- exchange_rates.insert(Exchange::EUR("2025-12-18".to_string()), 4.2076f64);
- exchange_rates.insert(Exchange::USD("2017-10-09".to_string()), 3.6743f64);
- exchange_rates.insert(Exchange::USD("2024-07-23".to_string()), 3.9355f64);
- exchange_rates.insert(Exchange::USD("2023-02-10".to_string()), 4.4565f64);
- exchange_rates.insert(Exchange::USD("2020-07-29".to_string()), 3.761f64);
- exchange_rates.insert(Exchange::USD("2013-07-16".to_string()), 3.2735f64);
- exchange_rates.insert(Exchange::USD("2012-01-26".to_string()), 3.2233f64);
- exchange_rates.insert(Exchange::EUR("2024-09-16".to_string()), 4.2753f64);
- exchange_rates.insert(Exchange::USD("2019-03-27".to_string()), 3.8113f64);
- exchange_rates.insert(Exchange::USD("2023-04-17".to_string()), 4.2261f64);
- exchange_rates.insert(Exchange::USD("2022-08-18".to_string()), 4.6468f64);
- exchange_rates.insert(Exchange::USD("2018-11-22".to_string()), 3.7764f64);
- exchange_rates.insert(Exchange::USD("2014-03-03".to_string()), 3.0462f64);
- exchange_rates.insert(Exchange::USD("2013-12-23".to_string()), 3.0443f64);
- exchange_rates.insert(Exchange::EUR("2024-07-03".to_string()), 4.3021f64);
- exchange_rates.insert(Exchange::USD("2024-06-26".to_string()), 4.0291f64);
- exchange_rates.insert(Exchange::USD("2020-12-14".to_string()), 3.6548f64);
- exchange_rates.insert(Exchange::EUR("2025-10-23".to_string()), 4.2347f64);
- exchange_rates.insert(Exchange::USD("2014-07-22".to_string()), 3.0748f64);
- exchange_rates.insert(Exchange::EUR("2025-05-29".to_string()), 4.2369f64);
- exchange_rates.insert(Exchange::USD("2021-04-08".to_string()), 3.8365f64);
- exchange_rates.insert(Exchange::USD("2021-01-05".to_string()), 3.7031f64);
- exchange_rates.insert(Exchange::USD("2018-02-16".to_string()), 3.3173f64);
- exchange_rates.insert(Exchange::USD("2024-05-07".to_string()), 4.0056f64);
- exchange_rates.insert(Exchange::USD("2014-03-17".to_string()), 3.043f64);
- exchange_rates.insert(Exchange::EUR("2024-05-08".to_string()), 4.3195f64);
- exchange_rates.insert(Exchange::USD("2018-10-15".to_string()), 3.7091f64);
- exchange_rates.insert(Exchange::USD("2014-12-01".to_string()), 3.3519f64);
- exchange_rates.insert(Exchange::USD("2025-09-12".to_string()), 3.635f64);
- exchange_rates.insert(Exchange::USD("2012-03-12".to_string()), 3.1285f64);
- exchange_rates.insert(Exchange::USD("2020-06-29".to_string()), 3.9656f64);
- exchange_rates.insert(Exchange::USD("2016-12-30".to_string()), 4.1793f64);
- exchange_rates.insert(Exchange::USD("2016-05-04".to_string()), 3.83f64);
- exchange_rates.insert(Exchange::USD("2015-01-05".to_string()), 3.5975f64);
- exchange_rates.insert(Exchange::EUR("2025-12-15".to_string()), 4.2192f64);
- exchange_rates.insert(Exchange::USD("2015-07-15".to_string()), 3.747f64);
- exchange_rates.insert(Exchange::USD("2024-06-07".to_string()), 3.9389f64);
- exchange_rates.insert(Exchange::EUR("2023-08-14".to_string()), 4.4361f64);
- exchange_rates.insert(Exchange::EUR("2023-09-07".to_string()), 4.594f64);
- exchange_rates.insert(Exchange::EUR("2025-01-09".to_string()), 4.2794f64);
- exchange_rates.insert(Exchange::USD("2014-03-06".to_string()), 3.0427f64);
- exchange_rates.insert(Exchange::USD("2013-04-10".to_string()), 3.1405f64);
- exchange_rates.insert(Exchange::USD("2014-12-17".to_string()), 3.3928f64);
- exchange_rates.insert(Exchange::USD("2022-06-15".to_string()), 4.4455f64);
- exchange_rates.insert(Exchange::EUR("2024-04-10".to_string()), 4.2641f64);
- exchange_rates.insert(Exchange::USD("2013-06-06".to_string()), 3.2564f64);
- exchange_rates.insert(Exchange::USD("2017-07-24".to_string()), 3.6395f64);
- exchange_rates.insert(Exchange::USD("2018-08-14".to_string()), 3.7768f64);
- exchange_rates.insert(Exchange::USD("2019-08-30".to_string()), 3.9717f64);
- exchange_rates.insert(Exchange::USD("2013-02-20".to_string()), 3.1002f64);
- exchange_rates.insert(Exchange::EUR("2023-10-27".to_string()), 4.4642f64);
- exchange_rates.insert(Exchange::EUR("2023-11-17".to_string()), 4.3767f64);
- exchange_rates.insert(Exchange::USD("2022-04-22".to_string()), 4.2935f64);
- exchange_rates.insert(Exchange::USD("2021-03-24".to_string()), 3.9098f64);
- exchange_rates.insert(Exchange::USD("2020-04-15".to_string()), 4.1519f64);
- exchange_rates.insert(Exchange::USD("2018-08-17".to_string()), 3.7784f64);
- exchange_rates.insert(Exchange::USD("2016-04-04".to_string()), 3.7254f64);
- exchange_rates.insert(Exchange::USD("2012-06-29".to_string()), 3.3885f64);
- exchange_rates.insert(Exchange::USD("2024-08-26".to_string()), 3.8284f64);
- exchange_rates.insert(Exchange::USD("2013-10-29".to_string()), 3.0436f64);
- exchange_rates.insert(Exchange::EUR("2025-08-18".to_string()), 4.2558f64);
- exchange_rates.insert(Exchange::USD("2013-01-18".to_string()), 3.0925f64);
- exchange_rates.insert(Exchange::USD("2023-01-12".to_string()), 4.3556f64);
- exchange_rates.insert(Exchange::USD("2018-06-13".to_string()), 3.6461f64);
- exchange_rates.insert(Exchange::USD("2016-11-22".to_string()), 4.1507f64);
- exchange_rates.insert(Exchange::USD("2016-10-13".to_string()), 3.9164f64);
- exchange_rates.insert(Exchange::USD("2022-06-10".to_string()), 4.3363f64);
- exchange_rates.insert(Exchange::USD("2013-11-29".to_string()), 3.0846f64);
- exchange_rates.insert(Exchange::USD("2016-09-21".to_string()), 3.8601f64);
- exchange_rates.insert(Exchange::USD("2023-08-25".to_string()), 4.1419f64);
- exchange_rates.insert(Exchange::USD("2019-03-19".to_string()), 3.7823f64);
- exchange_rates.insert(Exchange::EUR("2024-03-27".to_string()), 4.3153f64);
- exchange_rates.insert(Exchange::USD("2017-08-25".to_string()), 3.6112f64);
- exchange_rates.insert(Exchange::USD("2016-11-23".to_string()), 4.1588f64);
- exchange_rates.insert(Exchange::USD("2017-10-25".to_string()), 3.6006f64);
- exchange_rates.insert(Exchange::USD("2016-09-15".to_string()), 3.8587f64);
- exchange_rates.insert(Exchange::USD("2023-02-27".to_string()), 4.4697f64);
- exchange_rates.insert(Exchange::USD("2022-12-05".to_string()), 4.4415f64);
- exchange_rates.insert(Exchange::USD("2018-08-23".to_string()), 3.7069f64);
- exchange_rates.insert(Exchange::USD("2013-06-19".to_string()), 3.1777f64);
- exchange_rates.insert(Exchange::USD("2015-10-15".to_string()), 3.6948f64);
- exchange_rates.insert(Exchange::USD("2025-09-10".to_string()), 3.6414f64);
- exchange_rates.insert(Exchange::USD("2014-06-12".to_string()), 3.0374f64);
- exchange_rates.insert(Exchange::USD("2019-08-20".to_string()), 3.9408f64);
- exchange_rates.insert(Exchange::USD("2015-03-30".to_string()), 3.7685f64);
- exchange_rates.insert(Exchange::USD("2025-10-13".to_string()), 3.6763f64);
- exchange_rates.insert(Exchange::USD("2019-04-05".to_string()), 3.8215f64);
- exchange_rates.insert(Exchange::USD("2013-04-17".to_string()), 3.1159f64);
- exchange_rates.insert(Exchange::USD("2012-09-28".to_string()), 3.178f64);
- exchange_rates.insert(Exchange::USD("2013-11-05".to_string()), 3.0981f64);
- exchange_rates.insert(Exchange::USD("2012-08-30".to_string()), 3.3397f64);
- exchange_rates.insert(Exchange::USD("2016-05-10".to_string()), 3.8853f64);
- exchange_rates.insert(Exchange::USD("2017-01-24".to_string()), 4.0708f64);
- exchange_rates.insert(Exchange::USD("2017-07-20".to_string()), 3.6604f64);
- exchange_rates.insert(Exchange::EUR("2024-10-23".to_string()), 4.3344f64);
- exchange_rates.insert(Exchange::USD("2024-07-03".to_string()), 3.999f64);
- exchange_rates.insert(Exchange::USD("2013-09-13".to_string()), 3.1696f64);
- exchange_rates.insert(Exchange::USD("2015-06-19".to_string()), 3.6879f64);
- exchange_rates.insert(Exchange::USD("2025-07-31".to_string()), 3.7257f64);
- exchange_rates.insert(Exchange::USD("2020-06-05".to_string()), 3.9217f64);
- exchange_rates.insert(Exchange::USD("2025-08-28".to_string()), 3.6658f64);
- exchange_rates.insert(Exchange::USD("2013-10-14".to_string()), 3.0936f64);
- exchange_rates.insert(Exchange::USD("2015-06-23".to_string()), 3.704f64);
- exchange_rates.insert(Exchange::USD("2014-03-19".to_string()), 3.0245f64);
- exchange_rates.insert(Exchange::USD("2018-01-24".to_string()), 3.375f64);
- exchange_rates.insert(Exchange::USD("2018-03-08".to_string()), 3.3935f64);
- exchange_rates.insert(Exchange::USD("2017-03-17".to_string()), 3.9917f64);
- exchange_rates.insert(Exchange::USD("2013-04-03".to_string()), 3.2693f64);
- exchange_rates.insert(Exchange::USD("2025-01-29".to_string()), 4.0443f64);
- exchange_rates.insert(Exchange::USD("2013-07-23".to_string()), 3.2001f64);
- exchange_rates.insert(Exchange::USD("2015-07-31".to_string()), 3.7929f64);
- exchange_rates.insert(Exchange::USD("2013-07-24".to_string()), 3.18f64);
- exchange_rates.insert(Exchange::USD("2015-05-04".to_string()), 3.632f64);
- exchange_rates.insert(Exchange::EUR("2024-06-13".to_string()), 4.3355f64);
- exchange_rates.insert(Exchange::USD("2018-06-18".to_string()), 3.7003f64);
- exchange_rates.insert(Exchange::USD("2025-11-14".to_string()), 3.6376f64);
- exchange_rates.insert(Exchange::USD("2015-06-09".to_string()), 3.6975f64);
- exchange_rates.insert(Exchange::USD("2021-02-23".to_string()), 3.7117f64);
- exchange_rates.insert(Exchange::EUR("2023-04-12".to_string()), 4.666f64);
- exchange_rates.insert(Exchange::USD("2014-01-31".to_string()), 3.1288f64);
- exchange_rates.insert(Exchange::USD("2018-11-02".to_string()), 3.7804f64);
- exchange_rates.insert(Exchange::USD("2012-06-15".to_string()), 3.3971f64);
- exchange_rates.insert(Exchange::USD("2018-07-04".to_string()), 3.7759f64);
- exchange_rates.insert(Exchange::USD("2016-06-30".to_string()), 3.9803f64);
- exchange_rates.insert(Exchange::USD("2014-06-09".to_string()), 3.0067f64);
- exchange_rates.insert(Exchange::USD("2025-07-21".to_string()), 3.6455f64);
- exchange_rates.insert(Exchange::USD("2019-03-05".to_string()), 3.7977f64);
- exchange_rates.insert(Exchange::USD("2015-05-21".to_string()), 3.6605f64);
- exchange_rates.insert(Exchange::USD("2012-07-13".to_string()), 3.4463f64);
- exchange_rates.insert(Exchange::EUR("2023-04-21".to_string()), 4.6039f64);
- exchange_rates.insert(Exchange::USD("2015-11-18".to_string()), 3.9802f64);
- exchange_rates.insert(Exchange::EUR("2023-09-29".to_string()), 4.6356f64);
- exchange_rates.insert(Exchange::USD("2012-02-22".to_string()), 3.1635f64);
- exchange_rates.insert(Exchange::USD("2019-02-25".to_string()), 3.8241f64);
- exchange_rates.insert(Exchange::USD("2024-09-04".to_string()), 3.8738f64);
- exchange_rates.insert(Exchange::USD("2022-07-22".to_string()), 4.692f64);
- exchange_rates.insert(Exchange::USD("2021-07-02".to_string()), 3.8263f64);
- exchange_rates.insert(Exchange::USD("2023-09-29".to_string()), 4.3697f64);
- exchange_rates.insert(Exchange::EUR("2024-12-23".to_string()), 4.2621f64);
- exchange_rates.insert(Exchange::USD("2025-06-26".to_string()), 3.6222f64);
- exchange_rates.insert(Exchange::USD("2025-04-18".to_string()), 3.7661f64);
- exchange_rates.insert(Exchange::USD("2025-05-16".to_string()), 3.7853f64);
- exchange_rates.insert(Exchange::USD("2013-05-16".to_string()), 3.2521f64);
- exchange_rates.insert(Exchange::USD("2021-07-05".to_string()), 3.7979f64);
- exchange_rates.insert(Exchange::USD("2012-03-29".to_string()), 3.1234f64);
- exchange_rates.insert(Exchange::USD("2021-05-13".to_string()), 3.7675f64);
- exchange_rates.insert(Exchange::USD("2014-09-19".to_string()), 3.2507f64);
- exchange_rates.insert(Exchange::USD("2024-08-21".to_string()), 3.8565f64);
- exchange_rates.insert(Exchange::USD("2025-04-17".to_string()), 3.7684f64);
- exchange_rates.insert(Exchange::EUR("2023-05-26".to_string()), 4.5242f64);
- exchange_rates.insert(Exchange::USD("2019-04-02".to_string()), 3.8403f64);
- exchange_rates.insert(Exchange::USD("2015-09-21".to_string()), 3.708f64);
- exchange_rates.insert(Exchange::USD("2020-09-17".to_string()), 3.7713f64);
- exchange_rates.insert(Exchange::USD("2012-03-30".to_string()), 3.1191f64);
- exchange_rates.insert(Exchange::USD("2014-09-22".to_string()), 3.257f64);
- exchange_rates.insert(Exchange::USD("2017-03-10".to_string()), 4.0761f64);
- exchange_rates.insert(Exchange::EUR("2025-07-22".to_string()), 4.2531f64);
- exchange_rates.insert(Exchange::USD("2021-06-15".to_string()), 3.7349f64);
- exchange_rates.insert(Exchange::USD("2022-03-09".to_string()), 4.4147f64);
- exchange_rates.insert(Exchange::USD("2015-04-22".to_string()), 3.7125f64);
- exchange_rates.insert(Exchange::USD("2016-06-09".to_string()), 3.8126f64);
- exchange_rates.insert(Exchange::USD("2013-07-01".to_string()), 3.321f64);
- exchange_rates.insert(Exchange::EUR("2023-09-08".to_string()), 4.6019f64);
- exchange_rates.insert(Exchange::USD("2021-12-06".to_string()), 4.0619f64);
- exchange_rates.insert(Exchange::USD("2021-01-14".to_string()), 3.7323f64);
- exchange_rates.insert(Exchange::USD("2018-01-11".to_string()), 3.495f64);
- exchange_rates.insert(Exchange::USD("2023-06-06".to_string()), 4.1964f64);
- exchange_rates.insert(Exchange::USD("2020-03-30".to_string()), 4.0933f64);
- exchange_rates.insert(Exchange::USD("2018-04-18".to_string()), 3.3721f64);
- exchange_rates.insert(Exchange::EUR("2023-06-30".to_string()), 4.4503f64);
- exchange_rates.insert(Exchange::EUR("2025-06-23".to_string()), 4.2727f64);
- exchange_rates.insert(Exchange::EUR("2023-12-06".to_string()), 4.3382f64);
- exchange_rates.insert(Exchange::USD("2024-09-12".to_string()), 3.9025f64);
- exchange_rates.insert(Exchange::EUR("2024-01-02".to_string()), 4.3434f64);
- exchange_rates.insert(Exchange::USD("2024-01-30".to_string()), 4.0301f64);
- exchange_rates.insert(Exchange::USD("2017-09-29".to_string()), 3.6519f64);
- exchange_rates.insert(Exchange::USD("2024-08-20".to_string()), 3.8506f64);
- exchange_rates.insert(Exchange::USD("2012-04-04".to_string()), 3.1503f64);
- exchange_rates.insert(Exchange::USD("2012-04-05".to_string()), 3.1678f64);
- exchange_rates.insert(Exchange::USD("2012-08-24".to_string()), 3.268f64);
- exchange_rates.insert(Exchange::USD("2012-11-14".to_string()), 3.275f64);
- exchange_rates.insert(Exchange::EUR("2024-07-23".to_string()), 4.281f64);
- exchange_rates.insert(Exchange::EUR("2025-05-23".to_string()), 4.2541f64);
- exchange_rates.insert(Exchange::USD("2013-03-22".to_string()), 3.2361f64);
- exchange_rates.insert(Exchange::USD("2016-12-06".to_string()), 4.1825f64);
- exchange_rates.insert(Exchange::USD("2013-10-07".to_string()), 3.0976f64);
- exchange_rates.insert(Exchange::USD("2012-10-08".to_string()), 3.143f64);
- exchange_rates.insert(Exchange::USD("2017-06-01".to_string()), 3.7262f64);
- exchange_rates.insert(Exchange::USD("2014-08-28".to_string()), 3.1834f64);
- exchange_rates.insert(Exchange::USD("2013-03-06".to_string()), 3.166f64);
- exchange_rates.insert(Exchange::EUR("2024-12-13".to_string()), 4.2722f64);
- exchange_rates.insert(Exchange::USD("2014-02-03".to_string()), 3.137f64);
- exchange_rates.insert(Exchange::USD("2020-06-10".to_string()), 3.918f64);
- exchange_rates.insert(Exchange::USD("2023-02-23".to_string()), 4.4873f64);
- exchange_rates.insert(Exchange::USD("2019-01-28".to_string()), 3.7592f64);
- exchange_rates.insert(Exchange::USD("2016-04-29".to_string()), 3.8738f64);
- exchange_rates.insert(Exchange::USD("2016-09-28".to_string()), 3.8264f64);
- exchange_rates.insert(Exchange::EUR("2024-10-29".to_string()), 4.3542f64);
- exchange_rates.insert(Exchange::USD("2012-05-02".to_string()), 3.1593f64);
- exchange_rates.insert(Exchange::EUR("2023-07-14".to_string()), 4.4486f64);
- exchange_rates.insert(Exchange::USD("2023-11-17".to_string()), 4.0327f64);
- exchange_rates.insert(Exchange::USD("2016-10-20".to_string()), 3.9359f64);
- exchange_rates.insert(Exchange::USD("2015-12-01".to_string()), 4.0248f64);
- exchange_rates.insert(Exchange::USD("2018-04-09".to_string()), 3.4174f64);
- exchange_rates.insert(Exchange::USD("2012-04-12".to_string()), 3.1818f64);
- exchange_rates.insert(Exchange::USD("2020-05-28".to_string()), 4.0244f64);
- exchange_rates.insert(Exchange::USD("2015-01-19".to_string()), 3.7176f64);
- exchange_rates.insert(Exchange::USD("2023-04-12".to_string()), 4.2713f64);
- exchange_rates.insert(Exchange::USD("2012-06-11".to_string()), 3.4072f64);
- exchange_rates.insert(Exchange::USD("2016-06-17".to_string()), 3.9412f64);
- exchange_rates.insert(Exchange::USD("2023-04-13".to_string()), 4.2225f64);
- exchange_rates.insert(Exchange::USD("2016-07-15".to_string()), 3.9598f64);
- exchange_rates.insert(Exchange::USD("2012-11-27".to_string()), 3.1634f64);
- exchange_rates.insert(Exchange::USD("2014-04-09".to_string()), 3.0221f64);
- exchange_rates.insert(Exchange::USD("2022-01-19".to_string()), 3.993f64);
- exchange_rates.insert(Exchange::USD("2012-04-17".to_string()), 3.1872f64);
- exchange_rates.insert(Exchange::USD("2023-11-02".to_string()), 4.1963f64);
- exchange_rates.insert(Exchange::USD("2023-11-22".to_string()), 4.018f64);
- exchange_rates.insert(Exchange::USD("2015-06-05".to_string()), 3.6949f64);
- exchange_rates.insert(Exchange::USD("2024-10-04".to_string()), 3.9118f64);
- exchange_rates.insert(Exchange::USD("2012-09-03".to_string()), 3.3398f64);
- exchange_rates.insert(Exchange::USD("2012-10-10".to_string()), 3.1695f64);
- exchange_rates.insert(Exchange::EUR("2025-03-18".to_string()), 4.1776f64);
- exchange_rates.insert(Exchange::USD("2024-10-28".to_string()), 4.0207f64);
- exchange_rates.insert(Exchange::USD("2022-04-27".to_string()), 4.4453f64);
- exchange_rates.insert(Exchange::USD("2022-08-17".to_string()), 4.6119f64);
- exchange_rates.insert(Exchange::USD("2021-01-26".to_string()), 3.7512f64);
- exchange_rates.insert(Exchange::USD("2017-03-23".to_string()), 3.9687f64);
- exchange_rates.insert(Exchange::USD("2021-12-14".to_string()), 4.1088f64);
- exchange_rates.insert(Exchange::USD("2022-09-13".to_string()), 4.6363f64);
- exchange_rates.insert(Exchange::USD("2018-10-25".to_string()), 3.7796f64);
- exchange_rates.insert(Exchange::EUR("2024-01-12".to_string()), 4.3574f64);
- exchange_rates.insert(Exchange::EUR("2024-09-11".to_string()), 4.2864f64);
- exchange_rates.insert(Exchange::USD("2022-05-11".to_string()), 4.419f64);
- exchange_rates.insert(Exchange::USD("2017-12-19".to_string()), 3.5583f64);
- exchange_rates.insert(Exchange::USD("2020-09-07".to_string()), 3.7666f64);
- exchange_rates.insert(Exchange::EUR("2023-02-23".to_string()), 4.7525f64);
- exchange_rates.insert(Exchange::USD("2015-10-08".to_string()), 3.7543f64);
- exchange_rates.insert(Exchange::USD("2012-04-13".to_string()), 3.1765f64);
- exchange_rates.insert(Exchange::USD("2013-03-05".to_string()), 3.1665f64);
- exchange_rates.insert(Exchange::USD("2018-03-20".to_string()), 3.4296f64);
- exchange_rates.insert(Exchange::USD("2018-06-29".to_string()), 3.744f64);
- exchange_rates.insert(Exchange::USD("2015-04-28".to_string()), 3.6751f64);
- exchange_rates.insert(Exchange::EUR("2024-05-13".to_string()), 4.2977f64);
- exchange_rates.insert(Exchange::USD("2020-05-25".to_string()), 4.1428f64);
- exchange_rates.insert(Exchange::USD("2019-10-03".to_string()), 3.9652f64);
- exchange_rates.insert(Exchange::USD("2024-04-25".to_string()), 4.0276f64);
- exchange_rates.insert(Exchange::USD("2013-04-15".to_string()), 3.1502f64);
- exchange_rates.insert(Exchange::USD("2016-11-09".to_string()), 3.9305f64);
- exchange_rates.insert(Exchange::USD("2024-01-04".to_string()), 3.9684f64);
- exchange_rates.insert(Exchange::EUR("2024-10-30".to_string()), 4.335f64);
- exchange_rates.insert(Exchange::USD("2016-01-28".to_string()), 4.0872f64);
- exchange_rates.insert(Exchange::USD("2014-01-16".to_string()), 3.0566f64);
- exchange_rates.insert(Exchange::USD("2015-08-04".to_string()), 3.7792f64);
- exchange_rates.insert(Exchange::EUR("2025-11-25".to_string()), 4.2301f64);
- exchange_rates.insert(Exchange::USD("2025-07-04".to_string()), 3.6108f64);
- exchange_rates.insert(Exchange::USD("2022-03-31".to_string()), 4.1801f64);
- exchange_rates.insert(Exchange::USD("2012-09-05".to_string()), 3.3693f64);
- exchange_rates.insert(Exchange::USD("2024-08-14".to_string()), 3.8963f64);
- exchange_rates.insert(Exchange::USD("2021-01-04".to_string()), 3.6998f64);
- exchange_rates.insert(Exchange::USD("2013-02-01".to_string()), 3.0744f64);
- exchange_rates.insert(Exchange::USD("2015-07-14".to_string()), 3.7645f64);
- exchange_rates.insert(Exchange::EUR("2025-04-08".to_string()), 4.2946f64);
- exchange_rates.insert(Exchange::EUR("2023-01-31".to_string()), 4.7089f64);
- exchange_rates.insert(Exchange::USD("2019-06-17".to_string()), 3.7989f64);
- exchange_rates.insert(Exchange::USD("2024-03-27".to_string()), 3.9857f64);
- exchange_rates.insert(Exchange::USD("2018-08-20".to_string()), 3.7695f64);
- exchange_rates.insert(Exchange::USD("2014-11-21".to_string()), 3.3827f64);
- exchange_rates.insert(Exchange::USD("2022-09-05".to_string()), 4.769f64);
- exchange_rates.insert(Exchange::USD("2018-12-12".to_string()), 3.7934f64);
- exchange_rates.insert(Exchange::USD("2013-01-11".to_string()), 3.089f64);
- exchange_rates.insert(Exchange::EUR("2025-08-26".to_string()), 4.2657f64);
- exchange_rates.insert(Exchange::USD("2024-05-02".to_string()), 4.0474f64);
- exchange_rates.insert(Exchange::USD("2016-10-31".to_string()), 3.9488f64);
- exchange_rates.insert(Exchange::USD("2016-12-01".to_string()), 4.1987f64);
- exchange_rates.insert(Exchange::USD("2023-09-01".to_string()), 4.1263f64);
- exchange_rates.insert(Exchange::USD("2024-05-09".to_string()), 4.0076f64);
- exchange_rates.insert(Exchange::USD("2019-06-18".to_string()), 3.8097f64);
- exchange_rates.insert(Exchange::USD("2025-03-06".to_string()), 3.8674f64);
- exchange_rates.insert(Exchange::USD("2017-07-31".to_string()), 3.6264f64);
- exchange_rates.insert(Exchange::USD("2014-01-28".to_string()), 3.0635f64);
- exchange_rates.insert(Exchange::USD("2013-01-04".to_string()), 3.17f64);
- exchange_rates.insert(Exchange::EUR("2023-05-08".to_string()), 4.5671f64);
- exchange_rates.insert(Exchange::EUR("2024-03-25".to_string()), 4.3091f64);
- exchange_rates.insert(Exchange::USD("2019-01-10".to_string()), 3.736f64);
- exchange_rates.insert(Exchange::USD("2024-04-10".to_string()), 3.9264f64);
- exchange_rates.insert(Exchange::USD("2024-01-12".to_string()), 3.9746f64);
- exchange_rates.insert(Exchange::USD("2013-02-26".to_string()), 3.1733f64);
- exchange_rates.insert(Exchange::USD("2023-02-15".to_string()), 4.4372f64);
- exchange_rates.insert(Exchange::USD("2024-03-14".to_string()), 3.9183f64);
- exchange_rates.insert(Exchange::USD("2022-10-14".to_string()), 4.9569f64);
- exchange_rates.insert(Exchange::USD("2014-05-06".to_string()), 3.0196f64);
- exchange_rates.insert(Exchange::USD("2021-03-15".to_string()), 3.8429f64);
- exchange_rates.insert(Exchange::USD("2023-03-30".to_string()), 4.3043f64);
- exchange_rates.insert(Exchange::USD("2021-06-22".to_string()), 3.8132f64);
- exchange_rates.insert(Exchange::USD("2021-01-25".to_string()), 3.7402f64);
- exchange_rates.insert(Exchange::USD("2018-02-28".to_string()), 3.4188f64);
- exchange_rates.insert(Exchange::EUR("2024-01-24".to_string()), 4.3755f64);
- exchange_rates.insert(Exchange::USD("2024-01-25".to_string()), 4.0189f64);
- exchange_rates.insert(Exchange::USD("2014-10-09".to_string()), 3.2776f64);
- exchange_rates.insert(Exchange::EUR("2025-02-19".to_string()), 4.1582f64);
- exchange_rates.insert(Exchange::USD("2025-03-05".to_string()), 3.8785f64);
- exchange_rates.insert(Exchange::USD("2024-04-11".to_string()), 3.9707f64);
- exchange_rates.insert(Exchange::USD("2024-07-15".to_string()), 3.896f64);
- exchange_rates.insert(Exchange::EUR("2025-12-08".to_string()), 4.2289f64);
- exchange_rates.insert(Exchange::USD("2013-08-22".to_string()), 3.1811f64);
- exchange_rates.insert(Exchange::EUR("2024-05-02".to_string()), 4.3323f64);
- exchange_rates.insert(Exchange::USD("2013-02-11".to_string()), 3.0991f64);
- exchange_rates.insert(Exchange::EUR("2025-06-16".to_string()), 4.2612f64);
- exchange_rates.insert(Exchange::USD("2017-08-14".to_string()), 3.6278f64);
- exchange_rates.insert(Exchange::USD("2025-01-14".to_string()), 4.1658f64);
- exchange_rates.insert(Exchange::USD("2012-01-03".to_string()), 3.4277f64);
- exchange_rates.insert(Exchange::USD("2016-12-02".to_string()), 4.215f64);
- exchange_rates.insert(Exchange::USD("2018-08-31".to_string()), 3.6808f64);
- exchange_rates.insert(Exchange::USD("2025-12-03".to_string()), 3.6333f64);
- exchange_rates.insert(Exchange::USD("2020-02-12".to_string()), 3.901f64);
- exchange_rates.insert(Exchange::USD("2013-02-05".to_string()), 3.0831f64);
- exchange_rates.insert(Exchange::USD("2016-03-15".to_string()), 3.8649f64);
- exchange_rates.insert(Exchange::USD("2015-09-15".to_string()), 3.7238f64);
- exchange_rates.insert(Exchange::USD("2013-06-28".to_string()), 3.3175f64);
- exchange_rates.insert(Exchange::USD("2012-08-17".to_string()), 3.2886f64);
- exchange_rates.insert(Exchange::USD("2015-07-16".to_string()), 3.7694f64);
- exchange_rates.insert(Exchange::USD("2025-10-02".to_string()), 3.621f64);
- exchange_rates.insert(Exchange::USD("2014-08-12".to_string()), 3.1465f64);
- exchange_rates.insert(Exchange::USD("2012-10-04".to_string()), 3.1646f64);
- exchange_rates.insert(Exchange::USD("2016-05-17".to_string()), 3.8508f64);
- exchange_rates.insert(Exchange::USD("2018-06-22".to_string()), 3.6977f64);
- exchange_rates.insert(Exchange::USD("2022-01-21".to_string()), 3.9953f64);
- exchange_rates.insert(Exchange::USD("2019-08-29".to_string()), 3.9586f64);
- exchange_rates.insert(Exchange::USD("2021-03-10".to_string()), 3.842f64);
- exchange_rates.insert(Exchange::USD("2018-06-07".to_string()), 3.6062f64);
- exchange_rates.insert(Exchange::USD("2016-07-25".to_string()), 3.9697f64);
- exchange_rates.insert(Exchange::USD("2024-02-02".to_string()), 3.9641f64);
- exchange_rates.insert(Exchange::USD("2020-11-04".to_string()), 3.8996f64);
- exchange_rates.insert(Exchange::USD("2014-01-09".to_string()), 3.0695f64);
- exchange_rates.insert(Exchange::USD("2014-01-17".to_string()), 3.0596f64);
- exchange_rates.insert(Exchange::USD("2013-07-15".to_string()), 3.2955f64);
- exchange_rates.insert(Exchange::USD("2025-07-15".to_string()), 3.6396f64);
- exchange_rates.insert(Exchange::USD("2017-07-04".to_string()), 3.7372f64);
- exchange_rates.insert(Exchange::USD("2013-06-27".to_string()), 3.3241f64);
- exchange_rates.insert(Exchange::USD("2014-09-12".to_string()), 3.2468f64);
- exchange_rates.insert(Exchange::USD("2016-06-01".to_string()), 3.935f64);
- exchange_rates.insert(Exchange::USD("2019-06-19".to_string()), 3.8104f64);
- exchange_rates.insert(Exchange::EUR("2023-02-08".to_string()), 4.7402f64);
- exchange_rates.insert(Exchange::USD("2018-02-20".to_string()), 3.3597f64);
- exchange_rates.insert(Exchange::USD("2024-06-17".to_string()), 4.0728f64);
- exchange_rates.insert(Exchange::USD("2016-08-09".to_string()), 3.8482f64);
- exchange_rates.insert(Exchange::EUR("2025-02-27".to_string()), 4.1371f64);
- exchange_rates.insert(Exchange::EUR("2025-07-08".to_string()), 4.2455f64);
- exchange_rates.insert(Exchange::EUR("2025-09-02".to_string()), 4.2651f64);
- exchange_rates.insert(Exchange::USD("2017-03-20".to_string()), 3.9821f64);
- exchange_rates.insert(Exchange::USD("2018-02-15".to_string()), 3.3259f64);
- exchange_rates.insert(Exchange::EUR("2023-02-07".to_string()), 4.7476f64);
- exchange_rates.insert(Exchange::USD("2021-06-08".to_string()), 3.669f64);
- exchange_rates.insert(Exchange::USD("2014-05-02".to_string()), 3.0289f64);
- exchange_rates.insert(Exchange::USD("2012-01-23".to_string()), 3.3353f64);
- exchange_rates.insert(Exchange::USD("2016-03-29".to_string()), 3.8037f64);
- exchange_rates.insert(Exchange::USD("2025-02-27".to_string()), 3.9459f64);
- exchange_rates.insert(Exchange::USD("2019-03-11".to_string()), 3.8199f64);
- exchange_rates.insert(Exchange::EUR("2023-11-09".to_string()), 4.4413f64);
- exchange_rates.insert(Exchange::USD("2025-08-11".to_string()), 3.6495f64);
- exchange_rates.insert(Exchange::USD("2023-01-05".to_string()), 4.397f64);
- exchange_rates.insert(Exchange::USD("2024-02-05".to_string()), 4.0244f64);
- exchange_rates.insert(Exchange::USD("2013-12-06".to_string()), 3.0673f64);
- exchange_rates.insert(Exchange::EUR("2023-10-25".to_string()), 4.4758f64);
- exchange_rates.insert(Exchange::EUR("2024-02-26".to_string()), 4.3117f64);
- exchange_rates.insert(Exchange::USD("2024-11-21".to_string()), 4.1332f64);
- exchange_rates.insert(Exchange::USD("2014-12-05".to_string()), 3.3619f64);
- exchange_rates.insert(Exchange::USD("2020-02-13".to_string()), 3.9104f64);
- exchange_rates.insert(Exchange::USD("2020-10-08".to_string()), 3.8175f64);
- exchange_rates.insert(Exchange::USD("2013-01-14".to_string()), 3.0828f64);
- exchange_rates.insert(Exchange::USD("2013-12-10".to_string()), 3.0425f64);
- exchange_rates.insert(Exchange::USD("2024-12-06".to_string()), 4.0341f64);
- exchange_rates.insert(Exchange::USD("2018-04-05".to_string()), 3.4301f64);
- exchange_rates.insert(Exchange::USD("2020-06-02".to_string()), 3.9303f64);
- exchange_rates.insert(Exchange::EUR("2025-09-23".to_string()), 4.2552f64);
- exchange_rates.insert(Exchange::USD("2017-01-11".to_string()), 4.1465f64);
- exchange_rates.insert(Exchange::EUR("2025-05-19".to_string()), 4.2785f64);
- exchange_rates.insert(Exchange::USD("2022-03-07".to_string()), 4.5722f64);
- exchange_rates.insert(Exchange::EUR("2024-07-30".to_string()), 4.2845f64);
- exchange_rates.insert(Exchange::EUR("2023-01-02".to_string()), 4.6784f64);
- exchange_rates.insert(Exchange::USD("2022-04-29".to_string()), 4.4072f64);
- exchange_rates.insert(Exchange::USD("2018-02-22".to_string()), 3.4009f64);
- exchange_rates.insert(Exchange::USD("2024-03-19".to_string()), 3.9866f64);
- exchange_rates.insert(Exchange::USD("2016-07-18".to_string()), 3.9853f64);
- exchange_rates.insert(Exchange::USD("2021-02-05".to_string()), 3.7554f64);
- exchange_rates.insert(Exchange::EUR("2023-12-20".to_string()), 4.3341f64);
- exchange_rates.insert(Exchange::EUR("2023-08-29".to_string()), 4.469f64);
- exchange_rates.insert(Exchange::USD("2023-01-10".to_string()), 4.372f64);
- exchange_rates.insert(Exchange::USD("2022-02-10".to_string()), 3.9218f64);
- exchange_rates.insert(Exchange::USD("2018-04-06".to_string()), 3.4315f64);
- exchange_rates.insert(Exchange::USD("2025-12-08".to_string()), 3.63f64);
- exchange_rates.insert(Exchange::USD("2024-11-19".to_string()), 4.1052f64);
- exchange_rates.insert(Exchange::USD("2019-08-01".to_string()), 3.886f64);
- exchange_rates.insert(Exchange::USD("2024-09-02".to_string()), 3.8684f64);
- exchange_rates.insert(Exchange::USD("2016-03-09".to_string()), 3.9395f64);
- exchange_rates.insert(Exchange::USD("2023-08-14".to_string()), 4.0525f64);
- exchange_rates.insert(Exchange::USD("2020-03-23".to_string()), 4.2654f64);
- exchange_rates.insert(Exchange::USD("2018-07-27".to_string()), 3.6937f64);
- exchange_rates.insert(Exchange::USD("2012-07-10".to_string()), 3.4145f64);
- exchange_rates.insert(Exchange::EUR("2023-05-17".to_string()), 4.4945f64);
- exchange_rates.insert(Exchange::USD("2018-12-10".to_string()), 3.76f64);
- exchange_rates.insert(Exchange::USD("2017-01-31".to_string()), 4.0446f64);
- exchange_rates.insert(Exchange::USD("2012-03-20".to_string()), 3.1288f64);
- exchange_rates.insert(Exchange::EUR("2023-07-10".to_string()), 4.4553f64);
- exchange_rates.insert(Exchange::USD("2022-06-30".to_string()), 4.4825f64);
- exchange_rates.insert(Exchange::USD("2012-11-09".to_string()), 3.2588f64);
- exchange_rates.insert(Exchange::USD("2018-02-19".to_string()), 3.3411f64);
- exchange_rates.insert(Exchange::USD("2024-10-30".to_string()), 3.9989f64);
- exchange_rates.insert(Exchange::USD("2019-02-14".to_string()), 3.8516f64);
- exchange_rates.insert(Exchange::USD("2022-01-31".to_string()), 4.1147f64);
- exchange_rates.insert(Exchange::USD("2018-07-12".to_string()), 3.7055f64);
- exchange_rates.insert(Exchange::USD("2019-08-19".to_string()), 3.9199f64);
- exchange_rates.insert(Exchange::USD("2025-09-17".to_string()), 3.5919f64);
- exchange_rates.insert(Exchange::USD("2015-06-17".to_string()), 3.6873f64);
- exchange_rates.insert(Exchange::USD("2012-06-14".to_string()), 3.442f64);
- exchange_rates.insert(Exchange::EUR("2023-08-04".to_string()), 4.4438f64);
- exchange_rates.insert(Exchange::USD("2017-04-24".to_string()), 3.906f64);
- exchange_rates.insert(Exchange::USD("2020-05-11".to_string()), 4.2126f64);
- exchange_rates.insert(Exchange::USD("2022-12-12".to_string()), 4.4424f64);
- exchange_rates.insert(Exchange::EUR("2023-10-16".to_string()), 4.4804f64);
- exchange_rates.insert(Exchange::USD("2012-01-09".to_string()), 3.515f64);
- exchange_rates.insert(Exchange::USD("2025-04-24".to_string()), 3.7599f64);
- exchange_rates.insert(Exchange::USD("2023-08-22".to_string()), 4.0924f64);
- exchange_rates.insert(Exchange::USD("2017-11-15".to_string()), 3.5886f64);
- exchange_rates.insert(Exchange::USD("2018-06-27".to_string()), 3.7351f64);
- exchange_rates.insert(Exchange::USD("2015-12-11".to_string()), 3.9718f64);
- exchange_rates.insert(Exchange::USD("2013-09-03".to_string()), 3.2433f64);
- exchange_rates.insert(Exchange::USD("2017-11-20".to_string()), 3.5909f64);
- exchange_rates.insert(Exchange::EUR("2023-11-03".to_string()), 4.4569f64);
- exchange_rates.insert(Exchange::EUR("2025-11-20".to_string()), 4.2289f64);
- exchange_rates.insert(Exchange::USD("2019-06-28".to_string()), 3.7336f64);
- exchange_rates.insert(Exchange::USD("2022-06-22".to_string()), 4.4338f64);
- exchange_rates.insert(Exchange::USD("2016-09-29".to_string()), 3.8354f64);
- exchange_rates.insert(Exchange::EUR("2025-08-29".to_string()), 4.2684f64);
- exchange_rates.insert(Exchange::USD("2025-04-10".to_string()), 3.8637f64);
- exchange_rates.insert(Exchange::USD("2018-05-15".to_string()), 3.5931f64);
- exchange_rates.insert(Exchange::USD("2018-12-06".to_string()), 3.7844f64);
- exchange_rates.insert(Exchange::USD("2017-10-12".to_string()), 3.6f64);
- exchange_rates.insert(Exchange::USD("2019-03-18".to_string()), 3.7876f64);
- exchange_rates.insert(Exchange::USD("2016-03-11".to_string()), 3.8903f64);
- exchange_rates.insert(Exchange::USD("2023-01-18".to_string()), 4.3322f64);
- exchange_rates.insert(Exchange::USD("2018-11-27".to_string()), 3.7948f64);
- exchange_rates.insert(Exchange::USD("2016-10-10".to_string()), 3.8307f64);
- exchange_rates.insert(Exchange::USD("2020-05-22".to_string()), 4.1503f64);
- exchange_rates.insert(Exchange::EUR("2024-12-18".to_string()), 4.2628f64);
- exchange_rates.insert(Exchange::EUR("2025-02-14".to_string()), 4.1632f64);
- exchange_rates.insert(Exchange::USD("2021-10-20".to_string()), 3.9428f64);
- exchange_rates.insert(Exchange::USD("2023-07-17".to_string()), 3.9616f64);
- exchange_rates.insert(Exchange::USD("2021-05-10".to_string()), 3.7493f64);
- exchange_rates.insert(Exchange::EUR("2024-11-15".to_string()), 4.3198f64);
- exchange_rates.insert(Exchange::USD("2025-06-02".to_string()), 3.7282f64);
- exchange_rates.insert(Exchange::EUR("2025-01-02".to_string()), 4.2668f64);
- exchange_rates.insert(Exchange::USD("2013-06-12".to_string()), 3.2002f64);
- exchange_rates.insert(Exchange::USD("2020-06-18".to_string()), 3.9589f64);
- exchange_rates.insert(Exchange::USD("2017-11-09".to_string()), 3.6466f64);
- exchange_rates.insert(Exchange::USD("2013-09-04".to_string()), 3.2387f64);
- exchange_rates.insert(Exchange::USD("2023-10-23".to_string()), 4.2022f64);
- exchange_rates.insert(Exchange::USD("2024-02-22".to_string()), 3.9804f64);
- exchange_rates.insert(Exchange::USD("2018-08-07".to_string()), 3.6722f64);
- exchange_rates.insert(Exchange::USD("2016-09-09".to_string()), 3.8385f64);
- exchange_rates.insert(Exchange::USD("2025-12-17".to_string()), 3.5976f64);
- exchange_rates.insert(Exchange::USD("2018-12-04".to_string()), 3.7516f64);
- exchange_rates.insert(Exchange::USD("2018-12-31".to_string()), 3.7597f64);
- exchange_rates.insert(Exchange::USD("2019-07-23".to_string()), 3.7997f64);
- exchange_rates.insert(Exchange::USD("2012-03-26".to_string()), 3.1348f64);
- exchange_rates.insert(Exchange::EUR("2024-06-19".to_string()), 4.3376f64);
- exchange_rates.insert(Exchange::USD("2012-10-05".to_string()), 3.1353f64);
- exchange_rates.insert(Exchange::USD("2021-08-19".to_string()), 3.9226f64);
- exchange_rates.insert(Exchange::EUR("2023-02-14".to_string()), 4.7847f64);
- exchange_rates.insert(Exchange::EUR("2024-05-29".to_string()), 4.2529f64);
- exchange_rates.insert(Exchange::USD("2024-11-27".to_string()), 4.0974f64);
- exchange_rates.insert(Exchange::USD("2017-05-02".to_string()), 3.8675f64);
- exchange_rates.insert(Exchange::USD("2024-10-23".to_string()), 4.0176f64);
- exchange_rates.insert(Exchange::EUR("2025-04-04".to_string()), 4.2403f64);
- exchange_rates.insert(Exchange::USD("2014-07-10".to_string()), 3.0323f64);
- exchange_rates.insert(Exchange::USD("2018-11-28".to_string()), 3.8114f64);
- exchange_rates.insert(Exchange::USD("2012-10-02".to_string()), 3.1833f64);
- exchange_rates.insert(Exchange::USD("2018-07-23".to_string()), 3.6957f64);
- exchange_rates.insert(Exchange::USD("2021-09-20".to_string()), 3.9282f64);
- exchange_rates.insert(Exchange::EUR("2024-12-20".to_string()), 4.2572f64);
- exchange_rates.insert(Exchange::USD("2016-01-21".to_string()), 4.1303f64);
- exchange_rates.insert(Exchange::USD("2022-12-23".to_string()), 4.37f64);
- exchange_rates.insert(Exchange::USD("2025-07-29".to_string()), 3.6941f64);
- exchange_rates.insert(Exchange::USD("2015-07-17".to_string()), 3.7676f64);
- exchange_rates.insert(Exchange::USD("2017-09-25".to_string()), 3.5866f64);
- exchange_rates.insert(Exchange::EUR("2024-03-26".to_string()), 4.3093f64);
- exchange_rates.insert(Exchange::USD("2022-09-06".to_string()), 4.7367f64);
- exchange_rates.insert(Exchange::EUR("2024-08-30".to_string()), 4.2798f64);
- exchange_rates.insert(Exchange::EUR("2024-02-12".to_string()), 4.328f64);
- exchange_rates.insert(Exchange::USD("2022-04-20".to_string()), 4.2708f64);
- exchange_rates.insert(Exchange::USD("2024-01-24".to_string()), 4.0131f64);
- exchange_rates.insert(Exchange::EUR("2024-06-06".to_string()), 4.2997f64);
- exchange_rates.insert(Exchange::EUR("2023-10-26".to_string()), 4.4708f64);
- exchange_rates.insert(Exchange::EUR("2025-08-08".to_string()), 4.2566f64);
- exchange_rates.insert(Exchange::USD("2015-06-25".to_string()), 3.7305f64);
- exchange_rates.insert(Exchange::USD("2017-06-14".to_string()), 3.7497f64);
- exchange_rates.insert(Exchange::USD("2022-10-28".to_string()), 4.7477f64);
- exchange_rates.insert(Exchange::USD("2022-02-25".to_string()), 4.1683f64);
- exchange_rates.insert(Exchange::USD("2018-10-16".to_string()), 3.7036f64);
- exchange_rates.insert(Exchange::USD("2023-02-21".to_string()), 4.4524f64);
- exchange_rates.insert(Exchange::USD("2014-04-07".to_string()), 3.0446f64);
- exchange_rates.insert(Exchange::USD("2014-05-28".to_string()), 3.0598f64);
- exchange_rates.insert(Exchange::USD("2013-10-02".to_string()), 3.1212f64);
- exchange_rates.insert(Exchange::USD("2023-03-06".to_string()), 4.4289f64);
- exchange_rates.insert(Exchange::EUR("2023-04-06".to_string()), 4.6902f64);
- exchange_rates.insert(Exchange::USD("2021-10-04".to_string()), 3.9368f64);
- exchange_rates.insert(Exchange::USD("2021-09-08".to_string()), 3.8213f64);
- exchange_rates.insert(Exchange::USD("2025-08-29".to_string()), 3.6559f64);
- exchange_rates.insert(Exchange::USD("2024-04-17".to_string()), 4.0741f64);
- exchange_rates.insert(Exchange::USD("2017-07-27".to_string()), 3.6366f64);
- exchange_rates.insert(Exchange::USD("2012-03-22".to_string()), 3.168f64);
- exchange_rates.insert(Exchange::USD("2020-08-28".to_string()), 3.6983f64);
- exchange_rates.insert(Exchange::USD("2018-03-21".to_string()), 3.4544f64);
- exchange_rates.insert(Exchange::USD("2013-03-15".to_string()), 3.1868f64);
- exchange_rates.insert(Exchange::USD("2019-02-06".to_string()), 3.7706f64);
- exchange_rates.insert(Exchange::USD("2022-10-24".to_string()), 4.8669f64);
- exchange_rates.insert(Exchange::USD("2023-10-18".to_string()), 4.2035f64);
- exchange_rates.insert(Exchange::USD("2023-04-11".to_string()), 4.2917f64);
- exchange_rates.insert(Exchange::USD("2023-12-22".to_string()), 3.9338f64);
- exchange_rates.insert(Exchange::USD("2014-04-17".to_string()), 3.0317f64);
- exchange_rates.insert(Exchange::USD("2025-01-28".to_string()), 4.0337f64);
- exchange_rates.insert(Exchange::USD("2025-11-26".to_string()), 3.6578f64);
- exchange_rates.insert(Exchange::USD("2012-05-24".to_string()), 3.4779f64);
- exchange_rates.insert(Exchange::USD("2022-09-21".to_string()), 4.7919f64);
- exchange_rates.insert(Exchange::USD("2013-12-20".to_string()), 3.0525f64);
- exchange_rates.insert(Exchange::USD("2017-04-14".to_string()), 3.9911f64);
- exchange_rates.insert(Exchange::EUR("2025-11-24".to_string()), 4.2345f64);
- exchange_rates.insert(Exchange::EUR("2025-03-04".to_string()), 4.1568f64);
- exchange_rates.insert(Exchange::EUR("2023-09-15".to_string()), 4.6307f64);
- exchange_rates.insert(Exchange::EUR("2023-11-13".to_string()), 4.4336f64);
- exchange_rates.insert(Exchange::USD("2012-12-10".to_string()), 3.1978f64);
- exchange_rates.insert(Exchange::USD("2012-12-17".to_string()), 3.1035f64);
- exchange_rates.insert(Exchange::EUR("2024-09-19".to_string()), 4.2693f64);
- exchange_rates.insert(Exchange::USD("2022-01-10".to_string()), 4.0064f64);
- exchange_rates.insert(Exchange::USD("2016-04-14".to_string()), 3.8174f64);
- exchange_rates.insert(Exchange::EUR("2024-05-06".to_string()), 4.3294f64);
- exchange_rates.insert(Exchange::USD("2012-07-11".to_string()), 3.4007f64);
- exchange_rates.insert(Exchange::USD("2019-02-04".to_string()), 3.7408f64);
- exchange_rates.insert(Exchange::USD("2015-05-18".to_string()), 3.555f64);
- exchange_rates.insert(Exchange::EUR("2023-08-30".to_string()), 4.474f64);
- exchange_rates.insert(Exchange::USD("2025-04-29".to_string()), 3.7458f64);
- exchange_rates.insert(Exchange::USD("2018-07-26".to_string()), 3.6649f64);
- exchange_rates.insert(Exchange::USD("2023-05-31".to_string()), 4.2559f64);
- exchange_rates.insert(Exchange::USD("2013-07-03".to_string()), 3.3516f64);
- exchange_rates.insert(Exchange::USD("2021-02-24".to_string()), 3.7145f64);
- exchange_rates.insert(Exchange::USD("2015-05-28".to_string()), 3.7858f64);
- exchange_rates.insert(Exchange::EUR("2024-07-25".to_string()), 4.2971f64);
- exchange_rates.insert(Exchange::USD("2024-03-05".to_string()), 3.9838f64);
- exchange_rates.insert(Exchange::USD("2018-12-07".to_string()), 3.7694f64);
- exchange_rates.insert(Exchange::USD("2024-03-07".to_string()), 3.9485f64);
- exchange_rates.insert(Exchange::USD("2019-08-27".to_string()), 3.9309f64);
- exchange_rates.insert(Exchange::USD("2018-05-22".to_string()), 3.6252f64);
- exchange_rates.insert(Exchange::USD("2015-12-10".to_string()), 3.9601f64);
- exchange_rates.insert(Exchange::USD("2014-12-10".to_string()), 3.3572f64);
- exchange_rates.insert(Exchange::USD("2013-09-30".to_string()), 3.1227f64);
- exchange_rates.insert(Exchange::USD("2021-01-11".to_string()), 3.7271f64);
- exchange_rates.insert(Exchange::EUR("2024-06-20".to_string()), 4.3238f64);
- exchange_rates.insert(Exchange::USD("2022-11-29".to_string()), 4.5164f64);
- exchange_rates.insert(Exchange::USD("2018-12-13".to_string()), 3.7739f64);
- exchange_rates.insert(Exchange::USD("2021-08-06".to_string()), 3.8519f64);
- exchange_rates.insert(Exchange::USD("2023-12-20".to_string()), 3.9527f64);
- exchange_rates.insert(Exchange::USD("2018-05-02".to_string()), 3.5563f64);
- exchange_rates.insert(Exchange::USD("2016-07-14".to_string()), 3.9681f64);
- exchange_rates.insert(Exchange::USD("2020-09-21".to_string()), 3.7963f64);
- exchange_rates.insert(Exchange::USD("2016-01-22".to_string()), 4.1031f64);
- exchange_rates.insert(Exchange::USD("2024-08-01".to_string()), 3.9802f64);
- exchange_rates.insert(Exchange::USD("2015-12-15".to_string()), 3.9523f64);
- exchange_rates.insert(Exchange::EUR("2025-09-03".to_string()), 4.2589f64);
- exchange_rates.insert(Exchange::USD("2012-12-03".to_string()), 3.1498f64);
- exchange_rates.insert(Exchange::EUR("2025-10-02".to_string()), 4.256f64);
- exchange_rates.insert(Exchange::USD("2023-07-28".to_string()), 4.0377f64);
- exchange_rates.insert(Exchange::USD("2019-06-05".to_string()), 3.7929f64);
- exchange_rates.insert(Exchange::EUR("2024-05-23".to_string()), 4.2699f64);
- exchange_rates.insert(Exchange::USD("2025-09-23".to_string()), 3.605f64);
- exchange_rates.insert(Exchange::USD("2022-10-21".to_string()), 4.9f64);
- exchange_rates.insert(Exchange::USD("2016-10-28".to_string()), 3.9696f64);
- exchange_rates.insert(Exchange::USD("2025-10-10".to_string()), 3.6778f64);
- exchange_rates.insert(Exchange::USD("2015-02-03".to_string()), 3.6886f64);
- exchange_rates.insert(Exchange::EUR("2023-06-27".to_string()), 4.4286f64);
- exchange_rates.insert(Exchange::USD("2025-01-30".to_string()), 4.0393f64);
- exchange_rates.insert(Exchange::EUR("2025-10-28".to_string()), 4.2345f64);
- exchange_rates.insert(Exchange::USD("2019-03-26".to_string()), 3.7969f64);
- exchange_rates.insert(Exchange::EUR("2023-04-24".to_string()), 4.6129f64);
- exchange_rates.insert(Exchange::USD("2025-02-21".to_string()), 3.9835f64);
- exchange_rates.insert(Exchange::EUR("2025-12-16".to_string()), 4.2239f64);
- exchange_rates.insert(Exchange::USD("2014-08-25".to_string()), 3.168f64);
- exchange_rates.insert(Exchange::USD("2012-08-02".to_string()), 3.3462f64);
- exchange_rates.insert(Exchange::USD("2021-06-11".to_string()), 3.6759f64);
- exchange_rates.insert(Exchange::EUR("2025-12-22".to_string()), 4.2115f64);
- exchange_rates.insert(Exchange::USD("2015-08-31".to_string()), 3.778f64);
- exchange_rates.insert(Exchange::USD("2020-07-07".to_string()), 3.9689f64);
- exchange_rates.insert(Exchange::USD("2022-12-13".to_string()), 4.4527f64);
- exchange_rates.insert(Exchange::USD("2019-03-07".to_string()), 3.8038f64);
- exchange_rates.insert(Exchange::EUR("2025-03-20".to_string()), 4.1972f64);
- exchange_rates.insert(Exchange::USD("2015-08-20".to_string()), 3.7659f64);
- exchange_rates.insert(Exchange::USD("2013-11-21".to_string()), 3.1227f64);
- exchange_rates.insert(Exchange::USD("2022-10-11".to_string()), 5.0171f64);
- exchange_rates.insert(Exchange::USD("2023-03-09".to_string()), 4.4356f64);
- exchange_rates.insert(Exchange::USD("2018-12-11".to_string()), 3.7763f64);
- exchange_rates.insert(Exchange::USD("2014-10-31".to_string()), 3.3459f64);
- exchange_rates.insert(Exchange::USD("2023-01-09".to_string()), 4.401f64);
- exchange_rates.insert(Exchange::USD("2021-07-12".to_string()), 3.8378f64);
- exchange_rates.insert(Exchange::USD("2021-01-18".to_string()), 3.7699f64);
- exchange_rates.insert(Exchange::EUR("2025-05-26".to_string()), 4.2514f64);
- exchange_rates.insert(Exchange::USD("2022-09-02".to_string()), 4.7276f64);
- exchange_rates.insert(Exchange::EUR("2023-12-13".to_string()), 4.3309f64);
- exchange_rates.insert(Exchange::USD("2025-02-04".to_string()), 4.0864f64);
- exchange_rates.insert(Exchange::USD("2019-02-20".to_string()), 3.8221f64);
- exchange_rates.insert(Exchange::USD("2016-08-11".to_string()), 3.8297f64);
- exchange_rates.insert(Exchange::USD("2020-06-09".to_string()), 3.9453f64);
- exchange_rates.insert(Exchange::USD("2012-02-15".to_string()), 3.166f64);
- exchange_rates.insert(Exchange::USD("2021-10-08".to_string()), 3.9775f64);
- exchange_rates.insert(Exchange::USD("2016-10-26".to_string()), 3.9517f64);
- exchange_rates.insert(Exchange::USD("2017-08-17".to_string()), 3.6258f64);
- exchange_rates.insert(Exchange::USD("2012-08-14".to_string()), 3.3059f64);
- exchange_rates.insert(Exchange::USD("2012-08-08".to_string()), 3.304f64);
- exchange_rates.insert(Exchange::USD("2023-09-18".to_string()), 4.3489f64);
- exchange_rates.insert(Exchange::USD("2014-09-24".to_string()), 3.2525f64);
- exchange_rates.insert(Exchange::USD("2014-07-24".to_string()), 3.0702f64);
- exchange_rates.insert(Exchange::USD("2020-10-06".to_string()), 3.818f64);
- exchange_rates.insert(Exchange::EUR("2025-03-07".to_string()), 4.176f64);
- exchange_rates.insert(Exchange::EUR("2023-09-14".to_string()), 4.6285f64);
- exchange_rates.insert(Exchange::EUR("2024-06-27".to_string()), 4.3085f64);
- exchange_rates.insert(Exchange::USD("2024-06-04".to_string()), 3.9448f64);
- exchange_rates.insert(Exchange::USD("2024-01-26".to_string()), 4.0393f64);
- exchange_rates.insert(Exchange::EUR("2025-02-17".to_string()), 4.1635f64);
- exchange_rates.insert(Exchange::USD("2012-03-23".to_string()), 3.1417f64);
- exchange_rates.insert(Exchange::USD("2017-10-31".to_string()), 3.6529f64);
- exchange_rates.insert(Exchange::EUR("2023-03-16".to_string()), 4.6978f64);
- exchange_rates.insert(Exchange::USD("2024-04-26".to_string()), 4.0245f64);
- exchange_rates.insert(Exchange::USD("2025-08-22".to_string()), 3.6786f64);
- exchange_rates.insert(Exchange::USD("2013-10-01".to_string()), 3.117f64);
- exchange_rates.insert(Exchange::USD("2014-09-26".to_string()), 3.2776f64);
- exchange_rates.insert(Exchange::USD("2024-07-19".to_string()), 3.9461f64);
- exchange_rates.insert(Exchange::USD("2016-07-08".to_string()), 4.0001f64);
- exchange_rates.insert(Exchange::USD("2017-01-18".to_string()), 4.087f64);
- exchange_rates.insert(Exchange::USD("2016-06-27".to_string()), 4.0263f64);
- exchange_rates.insert(Exchange::USD("2017-04-04".to_string()), 3.989f64);
- exchange_rates.insert(Exchange::USD("2013-04-16".to_string()), 3.1559f64);
- exchange_rates.insert(Exchange::USD("2015-10-22".to_string()), 3.7806f64);
- exchange_rates.insert(Exchange::USD("2021-07-13".to_string()), 3.8533f64);
- exchange_rates.insert(Exchange::USD("2013-12-13".to_string()), 3.0432f64);
- exchange_rates.insert(Exchange::USD("2022-03-28".to_string()), 4.2784f64);
- exchange_rates.insert(Exchange::EUR("2024-08-22".to_string()), 4.285f64);
- exchange_rates.insert(Exchange::EUR("2025-04-28".to_string()), 4.2766f64);
- exchange_rates.insert(Exchange::EUR("2024-02-07".to_string()), 4.3466f64);
- exchange_rates.insert(Exchange::EUR("2025-02-13".to_string()), 4.1652f64);
- exchange_rates.insert(Exchange::USD("2012-12-31".to_string()), 3.0996f64);
- exchange_rates.insert(Exchange::USD("2019-08-12".to_string()), 3.8711f64);
- exchange_rates.insert(Exchange::USD("2013-06-14".to_string()), 3.1654f64);
- exchange_rates.insert(Exchange::USD("2015-04-14".to_string()), 3.8001f64);
- exchange_rates.insert(Exchange::EUR("2023-01-12".to_string()), 4.6888f64);
- exchange_rates.insert(Exchange::EUR("2023-11-23".to_string()), 4.3658f64);
- exchange_rates.insert(Exchange::USD("2020-08-04".to_string()), 3.7364f64);
- exchange_rates.insert(Exchange::USD("2025-05-22".to_string()), 3.7559f64);
- exchange_rates.insert(Exchange::EUR("2025-09-09".to_string()), 4.254f64);
- exchange_rates.insert(Exchange::USD("2018-09-11".to_string()), 3.7087f64);
- exchange_rates.insert(Exchange::USD("2014-05-19".to_string()), 3.0558f64);
- exchange_rates.insert(Exchange::USD("2022-11-16".to_string()), 4.505f64);
- exchange_rates.insert(Exchange::EUR("2023-03-31".to_string()), 4.6755f64);
- exchange_rates.insert(Exchange::USD("2025-06-16".to_string()), 3.6804f64);
- exchange_rates.insert(Exchange::USD("2020-08-26".to_string()), 3.7269f64);
- exchange_rates.insert(Exchange::USD("2019-04-11".to_string()), 3.7964f64);
- exchange_rates.insert(Exchange::USD("2018-04-26".to_string()), 3.4827f64);
- exchange_rates.insert(Exchange::USD("2018-11-20".to_string()), 3.79f64);
- exchange_rates.insert(Exchange::USD("2018-11-13".to_string()), 3.8268f64);
- exchange_rates.insert(Exchange::USD("2019-07-10".to_string()), 3.8066f64);
- exchange_rates.insert(Exchange::USD("2017-01-25".to_string()), 4.0585f64);
- exchange_rates.insert(Exchange::USD("2016-04-07".to_string()), 3.7414f64);
- exchange_rates.insert(Exchange::USD("2025-07-23".to_string()), 3.626f64);
- exchange_rates.insert(Exchange::USD("2017-12-22".to_string()), 3.5393f64);
- exchange_rates.insert(Exchange::EUR("2025-07-24".to_string()), 4.2514f64);
- exchange_rates.insert(Exchange::EUR("2023-08-16".to_string()), 4.4621f64);
- exchange_rates.insert(Exchange::EUR("2024-02-23".to_string()), 4.3326f64);
- exchange_rates.insert(Exchange::USD("2019-07-22".to_string()), 3.7869f64);
- exchange_rates.insert(Exchange::USD("2021-09-07".to_string()), 3.8041f64);
- exchange_rates.insert(Exchange::USD("2024-11-13".to_string()), 4.0853f64);
- exchange_rates.insert(Exchange::USD("2016-12-14".to_string()), 4.1768f64);
- exchange_rates.insert(Exchange::USD("2022-05-02".to_string()), 4.4454f64);
- exchange_rates.insert(Exchange::USD("2019-08-08".to_string()), 3.8538f64);
- exchange_rates.insert(Exchange::USD("2022-02-21".to_string()), 3.9769f64);
- exchange_rates.insert(Exchange::EUR("2024-01-09".to_string()), 4.3351f64);
- exchange_rates.insert(Exchange::USD("2020-03-31".to_string()), 4.1466f64);
- exchange_rates.insert(Exchange::EUR("2024-09-20".to_string()), 4.2779f64);
- exchange_rates.insert(Exchange::USD("2018-01-16".to_string()), 3.419f64);
- exchange_rates.insert(Exchange::USD("2015-11-23".to_string()), 3.988f64);
- exchange_rates.insert(Exchange::USD("2016-08-26".to_string()), 3.8328f64);
- exchange_rates.insert(Exchange::USD("2023-07-13".to_string()), 3.9724f64);
- exchange_rates.insert(Exchange::USD("2017-08-08".to_string()), 3.6027f64);
- exchange_rates.insert(Exchange::USD("2012-02-14".to_string()), 3.1801f64);
- exchange_rates.insert(Exchange::USD("2020-02-06".to_string()), 3.8672f64);
- exchange_rates.insert(Exchange::USD("2013-11-15".to_string()), 3.1172f64);
- exchange_rates.insert(Exchange::USD("2016-02-19".to_string()), 3.9531f64);
- exchange_rates.insert(Exchange::USD("2025-11-05".to_string()), 3.7091f64);
- exchange_rates.insert(Exchange::USD("2015-04-07".to_string()), 3.7435f64);
- exchange_rates.insert(Exchange::USD("2013-02-28".to_string()), 3.1679f64);
- exchange_rates.insert(Exchange::USD("2015-10-02".to_string()), 3.8028f64);
- exchange_rates.insert(Exchange::USD("2015-12-17".to_string()), 3.9646f64);
- exchange_rates.insert(Exchange::USD("2014-11-05".to_string()), 3.3887f64);
- exchange_rates.insert(Exchange::USD("2024-06-10".to_string()), 4.0159f64);
- exchange_rates.insert(Exchange::EUR("2024-04-17".to_string()), 4.3353f64);
- exchange_rates.insert(Exchange::EUR("2024-10-15".to_string()), 4.2913f64);
- exchange_rates.insert(Exchange::USD("2014-02-11".to_string()), 3.0581f64);
- exchange_rates.insert(Exchange::EUR("2023-02-13".to_string()), 4.7895f64);
- exchange_rates.insert(Exchange::USD("2024-10-15".to_string()), 3.9332f64);
- exchange_rates.insert(Exchange::USD("2025-07-22".to_string()), 3.6353f64);
- exchange_rates.insert(Exchange::USD("2023-12-13".to_string()), 4.0149f64);
- exchange_rates.insert(Exchange::USD("2012-01-24".to_string()), 3.297f64);
- exchange_rates.insert(Exchange::EUR("2024-10-22".to_string()), 4.3159f64);
- exchange_rates.insert(Exchange::USD("2025-11-06".to_string()), 3.6971f64);
- exchange_rates.insert(Exchange::USD("2021-07-23".to_string()), 3.8851f64);
- exchange_rates.insert(Exchange::USD("2020-03-11".to_string()), 3.8186f64);
- exchange_rates.insert(Exchange::EUR("2024-05-07".to_string()), 4.3116f64);
- exchange_rates.insert(Exchange::USD("2017-05-31".to_string()), 3.7354f64);
- exchange_rates.insert(Exchange::USD("2021-12-20".to_string()), 4.1182f64);
- exchange_rates.insert(Exchange::USD("2025-03-14".to_string()), 3.8509f64);
- exchange_rates.insert(Exchange::USD("2023-03-24".to_string()), 4.3742f64);
- exchange_rates.insert(Exchange::USD("2020-04-03".to_string()), 4.2396f64);
- exchange_rates.insert(Exchange::USD("2016-03-14".to_string()), 3.847f64);
- exchange_rates.insert(Exchange::USD("2016-05-25".to_string()), 3.9684f64);
- exchange_rates.insert(Exchange::USD("2012-04-16".to_string()), 3.2289f64);
- exchange_rates.insert(Exchange::USD("2012-08-21".to_string()), 3.279f64);
- exchange_rates.insert(Exchange::EUR("2025-07-10".to_string()), 4.2464f64);
- exchange_rates.insert(Exchange::USD("2020-10-30".to_string()), 3.9563f64);
- exchange_rates.insert(Exchange::USD("2016-12-16".to_string()), 4.2296f64);
- exchange_rates.insert(Exchange::USD("2023-08-10".to_string()), 4.0521f64);
- exchange_rates.insert(Exchange::USD("2015-05-26".to_string()), 3.7898f64);
- exchange_rates.insert(Exchange::USD("2022-11-07".to_string()), 4.6926f64);
- exchange_rates.insert(Exchange::USD("2014-11-24".to_string()), 3.3842f64);
- exchange_rates.insert(Exchange::EUR("2024-11-27".to_string()), 4.309f64);
- exchange_rates.insert(Exchange::USD("2019-05-21".to_string()), 3.8625f64);
- exchange_rates.insert(Exchange::USD("2016-01-19".to_string()), 4.0917f64);
- exchange_rates.insert(Exchange::USD("2023-12-05".to_string()), 3.991f64);
- exchange_rates.insert(Exchange::EUR("2023-05-05".to_string()), 4.5885f64);
- exchange_rates.insert(Exchange::EUR("2024-04-09".to_string()), 4.2588f64);
- exchange_rates.insert(Exchange::USD("2018-01-19".to_string()), 3.3994f64);
- exchange_rates.insert(Exchange::EUR("2025-03-06".to_string()), 4.1766f64);
- exchange_rates.insert(Exchange::EUR("2025-10-17".to_string()), 4.2565f64);
- exchange_rates.insert(Exchange::EUR("2025-01-27".to_string()), 4.2176f64);
- exchange_rates.insert(Exchange::USD("2017-12-04".to_string()), 3.5499f64);
- exchange_rates.insert(Exchange::USD("2024-02-07".to_string()), 4.0362f64);
- exchange_rates.insert(Exchange::USD("2017-07-11".to_string()), 3.7235f64);
- exchange_rates.insert(Exchange::EUR("2024-05-22".to_string()), 4.2575f64);
- exchange_rates.insert(Exchange::USD("2022-10-19".to_string()), 4.8892f64);
- exchange_rates.insert(Exchange::USD("2020-03-25".to_string()), 4.222f64);
- exchange_rates.insert(Exchange::EUR("2024-06-10".to_string()), 4.3197f64);
- exchange_rates.insert(Exchange::USD("2022-02-14".to_string()), 4.0439f64);
- exchange_rates.insert(Exchange::USD("2022-07-26".to_string()), 4.6222f64);
- exchange_rates.insert(Exchange::USD("2020-01-17".to_string()), 3.8053f64);
- exchange_rates.insert(Exchange::USD("2015-02-27".to_string()), 3.698f64);
- exchange_rates.insert(Exchange::USD("2014-05-08".to_string()), 3.0042f64);
- exchange_rates.insert(Exchange::USD("2019-11-19".to_string()), 3.8786f64);
- exchange_rates.insert(Exchange::EUR("2024-03-07".to_string()), 4.3045f64);
- exchange_rates.insert(Exchange::EUR("2023-02-03".to_string()), 4.692f64);
- exchange_rates.insert(Exchange::USD("2016-09-19".to_string()), 3.8586f64);
- exchange_rates.insert(Exchange::USD("2019-12-02".to_string()), 3.9047f64);
- exchange_rates.insert(Exchange::EUR("2025-04-23".to_string()), 4.2893f64);
- exchange_rates.insert(Exchange::USD("2020-01-14".to_string()), 3.8019f64);
- exchange_rates.insert(Exchange::USD("2023-06-07".to_string()), 4.1887f64);
- exchange_rates.insert(Exchange::USD("2018-07-03".to_string()), 3.7723f64);
- exchange_rates.insert(Exchange::USD("2017-09-04".to_string()), 3.5718f64);
- exchange_rates.insert(Exchange::USD("2017-10-02".to_string()), 3.6726f64);
- exchange_rates.insert(Exchange::USD("2014-09-29".to_string()), 3.3f64);
- exchange_rates.insert(Exchange::USD("2015-12-24".to_string()), 3.8695f64);
- exchange_rates.insert(Exchange::USD("2023-07-26".to_string()), 3.9949f64);
- exchange_rates.insert(Exchange::USD("2023-10-11".to_string()), 4.2589f64);
- exchange_rates.insert(Exchange::USD("2014-01-10".to_string()), 3.07f64);
- exchange_rates.insert(Exchange::USD("2022-03-08".to_string()), 4.5115f64);
- exchange_rates.insert(Exchange::USD("2024-04-24".to_string()), 4.0417f64);
- exchange_rates.insert(Exchange::USD("2024-09-27".to_string()), 3.8368f64);
- exchange_rates.insert(Exchange::USD("2016-05-20".to_string()), 3.9358f64);
- exchange_rates.insert(Exchange::USD("2023-04-19".to_string()), 4.2244f64);
- exchange_rates.insert(Exchange::USD("2014-09-03".to_string()), 3.1912f64);
- exchange_rates.insert(Exchange::USD("2019-01-15".to_string()), 3.7542f64);
- exchange_rates.insert(Exchange::USD("2015-12-08".to_string()), 3.9877f64);
- exchange_rates.insert(Exchange::USD("2015-10-26".to_string()), 3.8645f64);
- exchange_rates.insert(Exchange::EUR("2023-03-02".to_string()), 4.675f64);
- exchange_rates.insert(Exchange::EUR("2023-09-11".to_string()), 4.6209f64);
- exchange_rates.insert(Exchange::USD("2023-05-10".to_string()), 4.1532f64);
- exchange_rates.insert(Exchange::USD("2017-10-26".to_string()), 3.5939f64);
- exchange_rates.insert(Exchange::USD("2013-07-17".to_string()), 3.241f64);
- exchange_rates.insert(Exchange::USD("2021-12-09".to_string()), 4.0837f64);
- exchange_rates.insert(Exchange::USD("2022-01-04".to_string()), 4.0468f64);
- exchange_rates.insert(Exchange::USD("2021-08-05".to_string()), 3.8485f64);
- exchange_rates.insert(Exchange::USD("2012-06-26".to_string()), 3.4088f64);
- exchange_rates.insert(Exchange::EUR("2025-06-05".to_string()), 4.2791f64);
- exchange_rates.insert(Exchange::USD("2023-09-25".to_string()), 4.3188f64);
- exchange_rates.insert(Exchange::EUR("2023-06-21".to_string()), 4.4408f64);
- exchange_rates.insert(Exchange::USD("2015-02-20".to_string()), 3.6895f64);
- exchange_rates.insert(Exchange::USD("2015-03-23".to_string()), 3.818f64);
- exchange_rates.insert(Exchange::USD("2023-02-28".to_string()), 4.4475f64);
- exchange_rates.insert(Exchange::USD("2025-04-15".to_string()), 3.7692f64);
- exchange_rates.insert(Exchange::USD("2017-11-17".to_string()), 3.5965f64);
- exchange_rates.insert(Exchange::USD("2015-08-17".to_string()), 3.7613f64);
- exchange_rates.insert(Exchange::USD("2020-05-19".to_string()), 4.1645f64);
- exchange_rates.insert(Exchange::EUR("2024-03-06".to_string()), 4.3106f64);
- exchange_rates.insert(Exchange::USD("2021-12-22".to_string()), 4.0984f64);
- exchange_rates.insert(Exchange::USD("2018-02-21".to_string()), 3.3697f64);
- exchange_rates.insert(Exchange::USD("2022-02-18".to_string()), 3.9798f64);
- exchange_rates.insert(Exchange::USD("2017-02-22".to_string()), 4.0899f64);
- exchange_rates.insert(Exchange::EUR("2023-10-10".to_string()), 4.5581f64);
- exchange_rates.insert(Exchange::EUR("2025-04-07".to_string()), 4.2975f64);
- exchange_rates.insert(Exchange::USD("2022-04-14".to_string()), 4.2581f64);
- exchange_rates.insert(Exchange::USD("2014-10-15".to_string()), 3.3262f64);
- exchange_rates.insert(Exchange::EUR("2025-03-13".to_string()), 4.196f64);
- exchange_rates.insert(Exchange::USD("2013-01-03".to_string()), 3.1005f64);
- exchange_rates.insert(Exchange::USD("2019-11-25".to_string()), 3.9036f64);
- exchange_rates.insert(Exchange::USD("2021-10-27".to_string()), 3.9815f64);
- exchange_rates.insert(Exchange::USD("2022-06-03".to_string()), 4.2689f64);
- exchange_rates.insert(Exchange::USD("2014-04-11".to_string()), 3.0086f64);
- exchange_rates.insert(Exchange::USD("2013-01-30".to_string()), 3.0938f64);
- exchange_rates.insert(Exchange::EUR("2023-01-23".to_string()), 4.7186f64);
- exchange_rates.insert(Exchange::EUR("2024-11-25".to_string()), 4.3319f64);
- exchange_rates.insert(Exchange::EUR("2024-08-29".to_string()), 4.2862f64);
- exchange_rates.insert(Exchange::USD("2013-09-18".to_string()), 3.1689f64);
- exchange_rates.insert(Exchange::USD("2021-06-04".to_string()), 3.6931f64);
- exchange_rates.insert(Exchange::USD("2018-10-29".to_string()), 3.793f64);
- exchange_rates.insert(Exchange::USD("2021-10-25".to_string()), 3.9502f64);
- exchange_rates.insert(Exchange::USD("2018-12-05".to_string()), 3.7832f64);
- exchange_rates.insert(Exchange::USD("2014-08-27".to_string()), 3.1764f64);
- exchange_rates.insert(Exchange::USD("2014-08-11".to_string()), 3.1378f64);
- exchange_rates.insert(Exchange::EUR("2024-12-19".to_string()), 4.2633f64);
- exchange_rates.insert(Exchange::EUR("2023-10-20".to_string()), 4.4675f64);
- exchange_rates.insert(Exchange::USD("2024-11-14".to_string()), 4.122f64);
- exchange_rates.insert(Exchange::EUR("2023-01-05".to_string()), 4.6709f64);
- exchange_rates.insert(Exchange::EUR("2024-03-04".to_string()), 4.3201f64);
- exchange_rates.insert(Exchange::USD("2022-05-19".to_string()), 4.4231f64);
- exchange_rates.insert(Exchange::USD("2017-04-03".to_string()), 3.9664f64);
- exchange_rates.insert(Exchange::USD("2016-02-17".to_string()), 3.9431f64);
- exchange_rates.insert(Exchange::USD("2025-10-14".to_string()), 3.6897f64);
- exchange_rates.insert(Exchange::USD("2020-10-09".to_string()), 3.7913f64);
- exchange_rates.insert(Exchange::EUR("2023-03-01".to_string()), 4.6925f64);
- exchange_rates.insert(Exchange::EUR("2023-06-16".to_string()), 4.4583f64);
- exchange_rates.insert(Exchange::USD("2023-03-29".to_string()), 4.3247f64);
- exchange_rates.insert(Exchange::USD("2022-05-16".to_string()), 4.4785f64);
- exchange_rates.insert(Exchange::USD("2019-03-08".to_string()), 3.8409f64);
- exchange_rates.insert(Exchange::USD("2012-01-12".to_string()), 3.4945f64);
- exchange_rates.insert(Exchange::USD("2025-07-16".to_string()), 3.6631f64);
- exchange_rates.insert(Exchange::USD("2012-02-24".to_string()), 3.1103f64);
- exchange_rates.insert(Exchange::EUR("2024-12-30".to_string()), 4.2738f64);
- exchange_rates.insert(Exchange::USD("2025-12-02".to_string()), 3.6512f64);
- exchange_rates.insert(Exchange::USD("2019-01-29".to_string()), 3.7563f64);
- exchange_rates.insert(Exchange::USD("2021-05-04".to_string()), 3.794f64);
- exchange_rates.insert(Exchange::EUR("2024-07-18".to_string()), 4.2954f64);
- exchange_rates.insert(Exchange::USD("2014-12-30".to_string()), 3.5458f64);
- exchange_rates.insert(Exchange::USD("2024-07-24".to_string()), 3.9498f64);
- exchange_rates.insert(Exchange::USD("2021-05-28".to_string()), 3.6766f64);
- exchange_rates.insert(Exchange::USD("2012-11-22".to_string()), 3.2021f64);
- exchange_rates.insert(Exchange::USD("2024-04-22".to_string()), 4.054f64);
- exchange_rates.insert(Exchange::USD("2023-03-22".to_string()), 4.3467f64);
- exchange_rates.insert(Exchange::USD("2019-01-16".to_string()), 3.7619f64);
- exchange_rates.insert(Exchange::USD("2022-09-16".to_string()), 4.7384f64);
- exchange_rates.insert(Exchange::USD("2025-02-11".to_string()), 4.0497f64);
- exchange_rates.insert(Exchange::USD("2019-08-14".to_string()), 3.889f64);
- exchange_rates.insert(Exchange::USD("2025-03-11".to_string()), 3.8481f64);
- exchange_rates.insert(Exchange::USD("2017-05-29".to_string()), 3.7371f64);
- exchange_rates.insert(Exchange::USD("2016-03-08".to_string()), 3.9333f64);
- exchange_rates.insert(Exchange::USD("2013-11-20".to_string()), 3.0947f64);
- exchange_rates.insert(Exchange::USD("2013-02-13".to_string()), 3.1012f64);
- exchange_rates.insert(Exchange::EUR("2025-09-16".to_string()), 4.2504f64);
- exchange_rates.insert(Exchange::USD("2019-03-13".to_string()), 3.8077f64);
- exchange_rates.insert(Exchange::USD("2017-03-14".to_string()), 4.0697f64);
- exchange_rates.insert(Exchange::USD("2013-04-12".to_string()), 3.1537f64);
- exchange_rates.insert(Exchange::USD("2017-09-07".to_string()), 3.5511f64);
- exchange_rates.insert(Exchange::USD("2020-09-09".to_string()), 3.7871f64);
- exchange_rates.insert(Exchange::USD("2022-08-22".to_string()), 4.7427f64);
- exchange_rates.insert(Exchange::USD("2020-08-17".to_string()), 3.7076f64);
- exchange_rates.insert(Exchange::USD("2018-08-08".to_string()), 3.6782f64);
- exchange_rates.insert(Exchange::USD("2012-10-01".to_string()), 3.1809f64);
- exchange_rates.insert(Exchange::EUR("2025-01-07".to_string()), 4.2515f64);
- exchange_rates.insert(Exchange::USD("2019-06-26".to_string()), 3.754f64);
- exchange_rates.insert(Exchange::EUR("2025-06-20".to_string()), 4.2709f64);
- exchange_rates.insert(Exchange::USD("2018-10-12".to_string()), 3.713f64);
- exchange_rates.insert(Exchange::USD("2014-05-21".to_string()), 3.054f64);
- exchange_rates.insert(Exchange::USD("2019-08-23".to_string()), 3.9371f64);
- exchange_rates.insert(Exchange::USD("2015-03-09".to_string()), 3.789f64);
- exchange_rates.insert(Exchange::USD("2015-10-01".to_string()), 3.8005f64);
- exchange_rates.insert(Exchange::USD("2024-03-08".to_string()), 3.9392f64);
- exchange_rates.insert(Exchange::USD("2016-11-15".to_string()), 4.0837f64);
- exchange_rates.insert(Exchange::USD("2018-12-27".to_string()), 3.7616f64);
- exchange_rates.insert(Exchange::USD("2024-01-05".to_string()), 3.985f64);
- exchange_rates.insert(Exchange::EUR("2023-07-26".to_string()), 4.4248f64);
- exchange_rates.insert(Exchange::USD("2012-12-12".to_string()), 3.1459f64);
- exchange_rates.insert(Exchange::USD("2021-02-25".to_string()), 3.6943f64);
- exchange_rates.insert(Exchange::USD("2014-10-02".to_string()), 3.3039f64);
- exchange_rates.insert(Exchange::USD("2025-03-20".to_string()), 3.8675f64);
- exchange_rates.insert(Exchange::USD("2024-11-22".to_string()), 4.1752f64);
- exchange_rates.insert(Exchange::USD("2014-06-04".to_string()), 3.0491f64);
- exchange_rates.insert(Exchange::USD("2024-09-24".to_string()), 3.83f64);
- exchange_rates.insert(Exchange::USD("2025-05-28".to_string()), 3.7456f64);
- exchange_rates.insert(Exchange::USD("2015-10-27".to_string()), 3.8669f64);
- exchange_rates.insert(Exchange::USD("2013-08-09".to_string()), 3.1336f64);
- exchange_rates.insert(Exchange::EUR("2025-09-05".to_string()), 4.2476f64);
- exchange_rates.insert(Exchange::USD("2022-01-25".to_string()), 4.0593f64);
- exchange_rates.insert(Exchange::USD("2013-05-10".to_string()), 3.1861f64);
- exchange_rates.insert(Exchange::USD("2023-05-15".to_string()), 4.149f64);
- exchange_rates.insert(Exchange::USD("2019-01-23".to_string()), 3.7747f64);
- exchange_rates.insert(Exchange::USD("2024-11-18".to_string()), 4.0997f64);
- exchange_rates.insert(Exchange::USD("2025-09-05".to_string()), 3.6357f64);
- exchange_rates.insert(Exchange::USD("2014-09-04".to_string()), 3.1947f64);
- exchange_rates.insert(Exchange::USD("2013-05-17".to_string()), 3.252f64);
- exchange_rates.insert(Exchange::USD("2012-09-04".to_string()), 3.3281f64);
- exchange_rates.insert(Exchange::EUR("2025-05-14".to_string()), 4.2455f64);
- exchange_rates.insert(Exchange::USD("2014-05-05".to_string()), 3.031f64);
- exchange_rates.insert(Exchange::EUR("2024-04-15".to_string()), 4.2851f64);
- exchange_rates.insert(Exchange::USD("2022-08-25".to_string()), 4.7546f64);
- exchange_rates.insert(Exchange::USD("2013-03-29".to_string()), 3.259f64);
- exchange_rates.insert(Exchange::EUR("2023-03-30".to_string()), 4.6801f64);
- exchange_rates.insert(Exchange::USD("2024-06-06".to_string()), 3.953f64);
- exchange_rates.insert(Exchange::USD("2025-08-08".to_string()), 3.6577f64);
- exchange_rates.insert(Exchange::USD("2021-01-27".to_string()), 3.7507f64);
- exchange_rates.insert(Exchange::USD("2022-07-06".to_string()), 4.6796f64);
- exchange_rates.insert(Exchange::EUR("2024-03-11".to_string()), 4.2933f64);
- exchange_rates.insert(Exchange::EUR("2025-09-17".to_string()), 4.2559f64);
- exchange_rates.insert(Exchange::USD("2019-05-09".to_string()), 3.841f64);
- exchange_rates.insert(Exchange::USD("2021-11-03".to_string()), 3.9681f64);
- exchange_rates.insert(Exchange::USD("2015-12-29".to_string()), 3.8659f64);
- exchange_rates.insert(Exchange::USD("2015-07-07".to_string()), 3.8313f64);
- exchange_rates.insert(Exchange::EUR("2023-10-23".to_string()), 4.4552f64);
- exchange_rates.insert(Exchange::USD("2022-12-07".to_string()), 4.4834f64);
- exchange_rates.insert(Exchange::USD("2020-07-31".to_string()), 3.7166f64);
- exchange_rates.insert(Exchange::USD("2020-05-27".to_string()), 4.0504f64);
- exchange_rates.insert(Exchange::USD("2014-02-26".to_string()), 3.026f64);
- exchange_rates.insert(Exchange::USD("2025-10-23".to_string()), 3.6519f64);
- exchange_rates.insert(Exchange::USD("2014-01-20".to_string()), 3.068f64);
- exchange_rates.insert(Exchange::USD("2024-03-04".to_string()), 3.982f64);
- exchange_rates.insert(Exchange::USD("2017-12-28".to_string()), 3.5046f64);
- exchange_rates.insert(Exchange::EUR("2023-10-12".to_string()), 4.5329f64);
- exchange_rates.insert(Exchange::EUR("2023-12-19".to_string()), 4.3321f64);
- exchange_rates.insert(Exchange::USD("2012-05-14".to_string()), 3.3422f64);
- exchange_rates.insert(Exchange::USD("2014-06-26".to_string()), 3.0361f64);
- exchange_rates.insert(Exchange::USD("2018-04-12".to_string()), 3.3924f64);
- exchange_rates.insert(Exchange::USD("2017-02-01".to_string()), 4.0071f64);
- exchange_rates.insert(Exchange::USD("2017-08-22".to_string()), 3.6334f64);
- exchange_rates.insert(Exchange::USD("2019-10-17".to_string()), 3.8638f64);
- exchange_rates.insert(Exchange::EUR("2025-10-22".to_string()), 4.2438f64);
- exchange_rates.insert(Exchange::USD("2023-06-16".to_string()), 4.0715f64);
- exchange_rates.insert(Exchange::EUR("2025-11-17".to_string()), 4.2231f64);
- exchange_rates.insert(Exchange::USD("2025-11-07".to_string()), 3.6818f64);
- exchange_rates.insert(Exchange::USD("2019-05-23".to_string()), 3.8696f64);
- exchange_rates.insert(Exchange::EUR("2023-07-07".to_string()), 4.4803f64);
- exchange_rates.insert(Exchange::EUR("2025-06-12".to_string()), 4.2631f64);
- exchange_rates.insert(Exchange::EUR("2024-12-17".to_string()), 4.2599f64);
- exchange_rates.insert(Exchange::EUR("2025-08-01".to_string()), 4.2813f64);
- exchange_rates.insert(Exchange::USD("2021-12-30".to_string()), 4.0631f64);
- exchange_rates.insert(Exchange::USD("2022-12-08".to_string()), 4.476f64);
- exchange_rates.insert(Exchange::EUR("2025-04-22".to_string()), 4.2801f64);
- exchange_rates.insert(Exchange::USD("2025-09-29".to_string()), 3.6411f64);
- exchange_rates.insert(Exchange::USD("2022-05-12".to_string()), 4.4863f64);
- exchange_rates.insert(Exchange::EUR("2025-03-03".to_string()), 4.1827f64);
- exchange_rates.insert(Exchange::EUR("2023-11-08".to_string()), 4.4584f64);
- exchange_rates.insert(Exchange::USD("2020-01-02".to_string()), 3.8f64);
- exchange_rates.insert(Exchange::USD("2022-03-21".to_string()), 4.2444f64);
- exchange_rates.insert(Exchange::USD("2017-08-16".to_string()), 3.6435f64);
- exchange_rates.insert(Exchange::USD("2016-07-26".to_string()), 3.9682f64);
- exchange_rates.insert(Exchange::EUR("2024-08-21".to_string()), 4.2879f64);
- exchange_rates.insert(Exchange::USD("2024-11-25".to_string()), 4.1297f64);
- exchange_rates.insert(Exchange::USD("2020-09-28".to_string()), 3.9083f64);
- exchange_rates.insert(Exchange::USD("2024-01-03".to_string()), 3.9909f64);
- exchange_rates.insert(Exchange::USD("2014-09-02".to_string()), 3.2112f64);
- exchange_rates.insert(Exchange::USD("2024-05-17".to_string()), 3.9363f64);
- exchange_rates.insert(Exchange::USD("2025-01-17".to_string()), 4.1462f64);
- exchange_rates.insert(Exchange::USD("2022-06-20".to_string()), 4.44f64);
- exchange_rates.insert(Exchange::USD("2017-06-21".to_string()), 3.809f64);
- exchange_rates.insert(Exchange::USD("2014-09-09".to_string()), 3.2605f64);
- exchange_rates.insert(Exchange::EUR("2024-05-31".to_string()), 4.2678f64);
- exchange_rates.insert(Exchange::USD("2020-04-06".to_string()), 4.2257f64);
- exchange_rates.insert(Exchange::EUR("2025-12-31".to_string()), 4.2267f64);
- exchange_rates.insert(Exchange::USD("2025-01-15".to_string()), 4.133f64);
- exchange_rates.insert(Exchange::USD("2021-10-18".to_string()), 3.9471f64);
- exchange_rates.insert(Exchange::USD("2022-04-26".to_string()), 4.3469f64);
- exchange_rates.insert(Exchange::USD("2022-11-02".to_string()), 4.7485f64);
- exchange_rates.insert(Exchange::USD("2022-12-14".to_string()), 4.3973f64);
- exchange_rates.insert(Exchange::USD("2015-09-10".to_string()), 3.7648f64);
- exchange_rates.insert(Exchange::USD("2017-02-27".to_string()), 4.0745f64);
- exchange_rates.insert(Exchange::EUR("2023-07-28".to_string()), 4.4257f64);
- exchange_rates.insert(Exchange::USD("2016-12-27".to_string()), 4.212f64);
- exchange_rates.insert(Exchange::USD("2013-03-12".to_string()), 3.1887f64);
- exchange_rates.insert(Exchange::EUR("2024-11-06".to_string()), 4.3662f64);
- exchange_rates.insert(Exchange::USD("2021-04-19".to_string()), 3.7816f64);
- exchange_rates.insert(Exchange::EUR("2025-03-28".to_string()), 4.1819f64);
- exchange_rates.insert(Exchange::USD("2014-04-08".to_string()), 3.0276f64);
- exchange_rates.insert(Exchange::USD("2012-11-20".to_string()), 3.2333f64);
- exchange_rates.insert(Exchange::USD("2021-07-20".to_string()), 3.9012f64);
- exchange_rates.insert(Exchange::USD("2015-07-08".to_string()), 3.8225f64);
- exchange_rates.insert(Exchange::USD("2012-05-10".to_string()), 3.2735f64);
- exchange_rates.insert(Exchange::USD("2015-07-06".to_string()), 3.796f64);
- exchange_rates.insert(Exchange::USD("2015-01-08".to_string()), 3.6482f64);
- exchange_rates.insert(Exchange::USD("2024-07-08".to_string()), 3.947f64);
- exchange_rates.insert(Exchange::USD("2019-05-29".to_string()), 3.8554f64);
- exchange_rates.insert(Exchange::USD("2012-06-28".to_string()), 3.4408f64);
- exchange_rates.insert(Exchange::USD("2012-10-24".to_string()), 3.1996f64);
- exchange_rates.insert(Exchange::USD("2015-05-29".to_string()), 3.7671f64);
- exchange_rates.insert(Exchange::USD("2021-07-06".to_string()), 3.8021f64);
- exchange_rates.insert(Exchange::USD("2012-04-20".to_string()), 3.1828f64);
- exchange_rates.insert(Exchange::USD("2018-10-10".to_string()), 3.7507f64);
- exchange_rates.insert(Exchange::USD("2014-11-12".to_string()), 3.3966f64);
- exchange_rates.insert(Exchange::USD("2017-08-02".to_string()), 3.5863f64);
- exchange_rates.insert(Exchange::USD("2025-11-27".to_string()), 3.651f64);
- exchange_rates.insert(Exchange::USD("2025-11-28".to_string()), 3.6624f64);
- exchange_rates.insert(Exchange::USD("2022-10-03".to_string()), 4.9207f64);
- exchange_rates.insert(Exchange::USD("2013-03-08".to_string()), 3.169f64);
- exchange_rates.insert(Exchange::USD("2014-08-07".to_string()), 3.1397f64);
- exchange_rates.insert(Exchange::USD("2023-08-09".to_string()), 4.0592f64);
- exchange_rates.insert(Exchange::USD("2024-03-13".to_string()), 3.9269f64);
- exchange_rates.insert(Exchange::USD("2021-04-28".to_string()), 3.7939f64);
- exchange_rates.insert(Exchange::USD("2023-05-11".to_string()), 4.1414f64);
- exchange_rates.insert(Exchange::USD("2020-11-13".to_string()), 3.8015f64);
- exchange_rates.insert(Exchange::USD("2012-08-28".to_string()), 3.2685f64);
- exchange_rates.insert(Exchange::USD("2012-10-19".to_string()), 3.1499f64);
- exchange_rates.insert(Exchange::USD("2016-07-27".to_string()), 3.9739f64);
- exchange_rates.insert(Exchange::USD("2013-05-28".to_string()), 3.2465f64);
- exchange_rates.insert(Exchange::USD("2012-06-01".to_string()), 3.5777f64);
- exchange_rates.insert(Exchange::USD("2014-05-07".to_string()), 3.0187f64);
- exchange_rates.insert(Exchange::USD("2019-02-05".to_string()), 3.7542f64);
- exchange_rates.insert(Exchange::USD("2019-09-25".to_string()), 3.9856f64);
- exchange_rates.insert(Exchange::EUR("2023-09-04".to_string()), 4.4653f64);
- exchange_rates.insert(Exchange::USD("2013-01-09".to_string()), 3.1516f64);
- exchange_rates.insert(Exchange::EUR("2025-01-16".to_string()), 4.262f64);
- exchange_rates.insert(Exchange::USD("2018-04-19".to_string()), 3.3693f64);
- exchange_rates.insert(Exchange::USD("2017-04-11".to_string()), 4.0009f64);
- exchange_rates.insert(Exchange::USD("2017-08-07".to_string()), 3.5995f64);
- exchange_rates.insert(Exchange::USD("2016-10-27".to_string()), 3.976f64);
- exchange_rates.insert(Exchange::USD("2021-03-16".to_string()), 3.8519f64);
- exchange_rates.insert(Exchange::USD("2016-12-07".to_string()), 4.1268f64);
- exchange_rates.insert(Exchange::USD("2021-09-10".to_string()), 3.8402f64);
- exchange_rates.insert(Exchange::USD("2015-05-11".to_string()), 3.6489f64);
- exchange_rates.insert(Exchange::USD("2019-01-09".to_string()), 3.7509f64);
- exchange_rates.insert(Exchange::USD("2021-09-21".to_string()), 3.9337f64);
- exchange_rates.insert(Exchange::USD("2020-11-10".to_string()), 3.8168f64);
- exchange_rates.insert(Exchange::EUR("2023-10-18".to_string()), 4.4488f64);
- exchange_rates.insert(Exchange::EUR("2023-11-24".to_string()), 4.3722f64);
- exchange_rates.insert(Exchange::USD("2015-07-02".to_string()), 3.7859f64);
- exchange_rates.insert(Exchange::USD("2024-04-04".to_string()), 3.9515f64);
- exchange_rates.insert(Exchange::USD("2023-02-22".to_string()), 4.4687f64);
- exchange_rates.insert(Exchange::EUR("2024-02-21".to_string()), 4.3163f64);
- exchange_rates.insert(Exchange::EUR("2024-06-12".to_string()), 4.3354f64);
- exchange_rates.insert(Exchange::EUR("2025-06-17".to_string()), 4.275f64);
- exchange_rates.insert(Exchange::USD("2016-08-16".to_string()), 3.7929f64);
- exchange_rates.insert(Exchange::USD("2019-06-12".to_string()), 3.763f64);
- exchange_rates.insert(Exchange::USD("2020-09-23".to_string()), 3.8399f64);
- exchange_rates.insert(Exchange::USD("2012-02-02".to_string()), 3.1955f64);
- exchange_rates.insert(Exchange::USD("2022-05-27".to_string()), 4.2966f64);
- exchange_rates.insert(Exchange::USD("2013-05-07".to_string()), 3.1767f64);
- exchange_rates.insert(Exchange::USD("2016-06-13".to_string()), 3.8943f64);
- exchange_rates.insert(Exchange::USD("2023-05-22".to_string()), 4.1881f64);
- exchange_rates.insert(Exchange::USD("2024-06-28".to_string()), 4.032f64);
- exchange_rates.insert(Exchange::EUR("2025-05-09".to_string()), 4.2414f64);
- exchange_rates.insert(Exchange::USD("2015-08-05".to_string()), 3.8359f64);
- exchange_rates.insert(Exchange::USD("2024-12-05".to_string()), 4.0554f64);
- exchange_rates.insert(Exchange::EUR("2023-06-28".to_string()), 4.46f64);
- exchange_rates.insert(Exchange::EUR("2024-03-20".to_string()), 4.3242f64);
- exchange_rates.insert(Exchange::USD("2016-03-24".to_string()), 3.824f64);
- exchange_rates.insert(Exchange::USD("2023-08-21".to_string()), 4.1124f64);
- exchange_rates.insert(Exchange::USD("2012-10-12".to_string()), 3.1577f64);
- exchange_rates.insert(Exchange::USD("2017-04-07".to_string()), 3.9755f64);
- exchange_rates.insert(Exchange::USD("2015-04-13".to_string()), 3.8088f64);
- exchange_rates.insert(Exchange::USD("2012-08-16".to_string()), 3.3253f64);
- exchange_rates.insert(Exchange::EUR("2024-04-08".to_string()), 4.2805f64);
- exchange_rates.insert(Exchange::USD("2017-09-28".to_string()), 3.6682f64);
- exchange_rates.insert(Exchange::EUR("2025-01-21".to_string()), 4.2554f64);
- exchange_rates.insert(Exchange::USD("2015-04-09".to_string()), 3.7414f64);
- exchange_rates.insert(Exchange::USD("2015-05-07".to_string()), 3.583f64);
- exchange_rates.insert(Exchange::USD("2023-10-25".to_string()), 4.2284f64);
- exchange_rates.insert(Exchange::USD("2020-07-01".to_string()), 3.9591f64);
- exchange_rates.insert(Exchange::USD("2016-08-10".to_string()), 3.825f64);
- exchange_rates.insert(Exchange::USD("2022-06-06".to_string()), 4.2675f64);
- exchange_rates.insert(Exchange::USD("2016-07-01".to_string()), 3.9548f64);
- exchange_rates.insert(Exchange::USD("2013-02-25".to_string()), 3.1412f64);
- exchange_rates.insert(Exchange::USD("2020-04-23".to_string()), 4.2093f64);
- exchange_rates.insert(Exchange::USD("2021-12-10".to_string()), 4.0887f64);
- exchange_rates.insert(Exchange::USD("2021-09-03".to_string()), 3.7998f64);
- exchange_rates.insert(Exchange::USD("2025-08-13".to_string()), 3.6353f64);
- exchange_rates.insert(Exchange::USD("2020-09-14".to_string()), 3.7522f64);
- exchange_rates.insert(Exchange::USD("2016-01-27".to_string()), 4.1144f64);
- exchange_rates.insert(Exchange::USD("2019-03-28".to_string()), 3.8202f64);
- exchange_rates.insert(Exchange::USD("2016-11-14".to_string()), 4.0805f64);
- exchange_rates.insert(Exchange::EUR("2023-05-15".to_string()), 4.5096f64);
- exchange_rates.insert(Exchange::EUR("2025-12-19".to_string()), 4.2094f64);
- exchange_rates.insert(Exchange::USD("2012-10-03".to_string()), 3.1896f64);
- exchange_rates.insert(Exchange::USD("2015-07-29".to_string()), 3.7471f64);
- exchange_rates.insert(Exchange::USD("2020-10-02".to_string()), 3.8366f64);
- exchange_rates.insert(Exchange::USD("2012-01-17".to_string()), 3.4215f64);
- exchange_rates.insert(Exchange::USD("2023-07-31".to_string()), 3.9995f64);
- exchange_rates.insert(Exchange::USD("2019-10-02".to_string()), 4.0152f64);
- exchange_rates.insert(Exchange::USD("2012-01-13".to_string()), 3.4323f64);
- exchange_rates.insert(Exchange::USD("2025-03-03".to_string()), 4.0112f64);
- exchange_rates.insert(Exchange::USD("2019-06-25".to_string()), 3.7376f64);
- exchange_rates.insert(Exchange::USD("2022-04-21".to_string()), 4.2596f64);
- exchange_rates.insert(Exchange::USD("2021-11-25".to_string()), 4.16f64);
- exchange_rates.insert(Exchange::USD("2025-06-06".to_string()), 3.7565f64);
- exchange_rates.insert(Exchange::USD("2023-11-03".to_string()), 4.1857f64);
- exchange_rates.insert(Exchange::USD("2023-06-15".to_string()), 4.1203f64);
- exchange_rates.insert(Exchange::USD("2013-06-05".to_string()), 3.2421f64);
- exchange_rates.insert(Exchange::USD("2025-08-18".to_string()), 3.6434f64);
- exchange_rates.insert(Exchange::USD("2023-12-11".to_string()), 4.0277f64);
- exchange_rates.insert(Exchange::USD("2018-03-07".to_string()), 3.3744f64);
- exchange_rates.insert(Exchange::USD("2015-10-09".to_string()), 3.7242f64);
- exchange_rates.insert(Exchange::USD("2015-12-14".to_string()), 3.9695f64);
- exchange_rates.insert(Exchange::USD("2014-03-05".to_string()), 3.0477f64);
- exchange_rates.insert(Exchange::USD("2013-07-29".to_string()), 3.1859f64);
- exchange_rates.insert(Exchange::USD("2020-04-02".to_string()), 4.1917f64);
- exchange_rates.insert(Exchange::USD("2025-07-09".to_string()), 3.6198f64);
- exchange_rates.insert(Exchange::USD("2017-07-05".to_string()), 3.7471f64);
- exchange_rates.insert(Exchange::USD("2021-01-19".to_string()), 3.7416f64);
- exchange_rates.insert(Exchange::USD("2018-11-26".to_string()), 3.7701f64);
- exchange_rates.insert(Exchange::USD("2018-12-24".to_string()), 3.7588f64);
- exchange_rates.insert(Exchange::USD("2017-12-21".to_string()), 3.5369f64);
- exchange_rates.insert(Exchange::EUR("2023-10-05".to_string()), 4.5974f64);
- exchange_rates.insert(Exchange::EUR("2025-04-10".to_string()), 4.2644f64);
- exchange_rates.insert(Exchange::USD("2019-07-16".to_string()), 3.7867f64);
- exchange_rates.insert(Exchange::EUR("2025-06-13".to_string()), 4.272f64);
- exchange_rates.insert(Exchange::USD("2018-04-25".to_string()), 3.4548f64);
- exchange_rates.insert(Exchange::USD("2023-02-01".to_string()), 4.3254f64);
- exchange_rates.insert(Exchange::USD("2021-03-18".to_string()), 3.8705f64);
- exchange_rates.insert(Exchange::USD("2021-05-26".to_string()), 3.6691f64);
- exchange_rates.insert(Exchange::USD("2015-10-28".to_string()), 3.8826f64);
- exchange_rates.insert(Exchange::USD("2023-06-12".to_string()), 4.1169f64);
- exchange_rates.insert(Exchange::USD("2022-09-29".to_string()), 5.0328f64);
- exchange_rates.insert(Exchange::USD("2014-03-04".to_string()), 3.0489f64);
- exchange_rates.insert(Exchange::USD("2017-03-21".to_string()), 3.9502f64);
- exchange_rates.insert(Exchange::USD("2015-02-11".to_string()), 3.7094f64);
- exchange_rates.insert(Exchange::USD("2013-11-12".to_string()), 3.1448f64);
- exchange_rates.insert(Exchange::USD("2023-08-24".to_string()), 4.118f64);
- exchange_rates.insert(Exchange::USD("2024-03-29".to_string()), 3.9886f64);
- exchange_rates.insert(Exchange::EUR("2023-02-17".to_string()), 4.7747f64);
- exchange_rates.insert(Exchange::USD("2024-07-18".to_string()), 3.9296f64);
- exchange_rates.insert(Exchange::EUR("2023-05-18".to_string()), 4.5355f64);
- exchange_rates.insert(Exchange::USD("2018-08-10".to_string()), 3.7481f64);
- exchange_rates.insert(Exchange::USD("2022-02-22".to_string()), 4.012f64);
- exchange_rates.insert(Exchange::USD("2012-05-11".to_string()), 3.2765f64);
- exchange_rates.insert(Exchange::USD("2020-07-15".to_string()), 3.9117f64);
- exchange_rates.insert(Exchange::USD("2014-04-24".to_string()), 3.0285f64);
- exchange_rates.insert(Exchange::EUR("2024-10-07".to_string()), 4.3185f64);
- exchange_rates.insert(Exchange::USD("2014-04-01".to_string()), 3.0278f64);
- exchange_rates.insert(Exchange::EUR("2023-06-13".to_string()), 4.4783f64);
- exchange_rates.insert(Exchange::USD("2023-07-14".to_string()), 3.9617f64);
- exchange_rates.insert(Exchange::USD("2014-05-26".to_string()), 3.0466f64);
- exchange_rates.insert(Exchange::USD("2024-10-18".to_string()), 3.9718f64);
- exchange_rates.insert(Exchange::USD("2013-02-07".to_string()), 3.0886f64);
- exchange_rates.insert(Exchange::EUR("2024-05-14".to_string()), 4.2812f64);
- exchange_rates.insert(Exchange::USD("2016-06-29".to_string()), 3.9905f64);
- exchange_rates.insert(Exchange::USD("2013-03-20".to_string()), 3.2169f64);
- exchange_rates.insert(Exchange::USD("2020-11-16".to_string()), 3.7782f64);
- exchange_rates.insert(Exchange::USD("2025-02-06".to_string()), 4.0613f64);
- exchange_rates.insert(Exchange::USD("2012-06-27".to_string()), 3.4015f64);
- exchange_rates.insert(Exchange::USD("2021-03-29".to_string()), 3.957f64);
- exchange_rates.insert(Exchange::USD("2022-07-18".to_string()), 4.7152f64);
- exchange_rates.insert(Exchange::USD("2012-02-20".to_string()), 3.1598f64);
- exchange_rates.insert(Exchange::USD("2012-06-12".to_string()), 3.4552f64);
- exchange_rates.insert(Exchange::USD("2017-09-01".to_string()), 3.5693f64);
- exchange_rates.insert(Exchange::USD("2023-02-08".to_string()), 4.4074f64);
- exchange_rates.insert(Exchange::EUR("2024-06-14".to_string()), 4.3581f64);
- exchange_rates.insert(Exchange::USD("2020-04-24".to_string()), 4.2142f64);
- exchange_rates.insert(Exchange::USD("2021-10-28".to_string()), 3.9938f64);
- exchange_rates.insert(Exchange::USD("2018-04-23".to_string()), 3.4156f64);
- exchange_rates.insert(Exchange::USD("2013-11-08".to_string()), 3.1133f64);
- exchange_rates.insert(Exchange::EUR("2023-03-23".to_string()), 4.6817f64);
- exchange_rates.insert(Exchange::USD("2018-08-22".to_string()), 3.7104f64);
- exchange_rates.insert(Exchange::USD("2015-06-11".to_string()), 3.6817f64);
- exchange_rates.insert(Exchange::EUR("2025-05-05".to_string()), 4.276f64);
- exchange_rates.insert(Exchange::USD("2016-06-16".to_string()), 3.9469f64);
- exchange_rates.insert(Exchange::EUR("2025-08-22".to_string()), 4.267f64);
- exchange_rates.insert(Exchange::USD("2019-05-08".to_string()), 3.8325f64);
- exchange_rates.insert(Exchange::USD("2013-07-26".to_string()), 3.1831f64);
- exchange_rates.insert(Exchange::EUR("2023-07-24".to_string()), 4.4517f64);
- exchange_rates.insert(Exchange::USD("2015-06-22".to_string()), 3.6799f64);
- exchange_rates.insert(Exchange::EUR("2025-01-31".to_string()), 4.213f64);
- exchange_rates.insert(Exchange::USD("2019-07-12".to_string()), 3.7889f64);
- exchange_rates.insert(Exchange::USD("2013-02-22".to_string()), 3.1443f64);
- exchange_rates.insert(Exchange::EUR("2023-04-18".to_string()), 4.6286f64);
- exchange_rates.insert(Exchange::EUR("2023-10-24".to_string()), 4.4604f64);
- exchange_rates.insert(Exchange::USD("2016-02-29".to_string()), 3.9935f64);
- exchange_rates.insert(Exchange::USD("2013-12-18".to_string()), 3.0393f64);
- exchange_rates.insert(Exchange::USD("2021-04-12".to_string()), 3.8144f64);
- exchange_rates.insert(Exchange::USD("2024-06-13".to_string()), 4.0119f64);
- exchange_rates.insert(Exchange::USD("2014-11-07".to_string()), 3.4084f64);
- exchange_rates.insert(Exchange::USD("2017-04-12".to_string()), 4.0026f64);
- exchange_rates.insert(Exchange::USD("2013-07-22".to_string()), 3.2142f64);
- exchange_rates.insert(Exchange::EUR("2025-03-14".to_string()), 4.179f64);
- exchange_rates.insert(Exchange::USD("2020-02-18".to_string()), 3.9448f64);
- exchange_rates.insert(Exchange::USD("2023-05-17".to_string()), 4.1504f64);
- exchange_rates.insert(Exchange::USD("2022-02-03".to_string()), 4.0267f64);
- exchange_rates.insert(Exchange::USD("2017-05-04".to_string()), 3.863f64);
- exchange_rates.insert(Exchange::USD("2022-12-21".to_string()), 4.3947f64);
- exchange_rates.insert(Exchange::USD("2015-10-30".to_string()), 3.8748f64);
- exchange_rates.insert(Exchange::USD("2022-02-08".to_string()), 3.9693f64);
- exchange_rates.insert(Exchange::USD("2015-09-02".to_string()), 3.7626f64);
- exchange_rates.insert(Exchange::USD("2013-05-13".to_string()), 3.2051f64);
- exchange_rates.insert(Exchange::USD("2019-10-30".to_string()), 3.8388f64);
- exchange_rates.insert(Exchange::USD("2024-07-10".to_string()), 3.9324f64);
- exchange_rates.insert(Exchange::EUR("2025-05-28".to_string()), 4.2447f64);
- exchange_rates.insert(Exchange::USD("2012-12-27".to_string()), 3.0816f64);
- exchange_rates.insert(Exchange::USD("2014-09-08".to_string()), 3.2303f64);
- exchange_rates.insert(Exchange::USD("2019-04-19".to_string()), 3.8051f64);
- exchange_rates.insert(Exchange::USD("2024-03-01".to_string()), 3.9922f64);
- exchange_rates.insert(Exchange::USD("2024-10-16".to_string()), 3.9468f64);
- exchange_rates.insert(Exchange::EUR("2024-10-25".to_string()), 4.3533f64);
- exchange_rates.insert(Exchange::USD("2023-06-29".to_string()), 4.0832f64);
- exchange_rates.insert(Exchange::USD("2018-12-28".to_string()), 3.755f64);
- exchange_rates.insert(Exchange::USD("2014-05-15".to_string()), 3.0589f64);
- exchange_rates.insert(Exchange::USD("2012-12-14".to_string()), 3.1271f64);
- exchange_rates.insert(Exchange::USD("2022-12-20".to_string()), 4.4001f64);
- exchange_rates.insert(Exchange::USD("2017-06-02".to_string()), 3.7323f64);
- exchange_rates.insert(Exchange::EUR("2023-06-09".to_string()), 4.4717f64);
- exchange_rates.insert(Exchange::USD("2022-01-07".to_string()), 4.0279f64);
- exchange_rates.insert(Exchange::EUR("2024-03-13".to_string()), 4.2896f64);
- exchange_rates.insert(Exchange::EUR("2025-02-10".to_string()), 4.1872f64);
- exchange_rates.insert(Exchange::USD("2020-08-06".to_string()), 3.724f64);
- exchange_rates.insert(Exchange::EUR("2025-05-08".to_string()), 4.2714f64);
- exchange_rates.insert(Exchange::USD("2016-05-11".to_string()), 3.8855f64);
- exchange_rates.insert(Exchange::USD("2021-02-15".to_string()), 3.6949f64);
- exchange_rates.insert(Exchange::EUR("2025-09-18".to_string()), 4.2564f64);
- exchange_rates.insert(Exchange::USD("2022-02-11".to_string()), 3.9665f64);
- exchange_rates.insert(Exchange::USD("2023-12-27".to_string()), 3.9178f64);
- exchange_rates.insert(Exchange::USD("2014-11-17".to_string()), 3.3819f64);
- exchange_rates.insert(Exchange::USD("2015-02-16".to_string()), 3.6665f64);
- exchange_rates.insert(Exchange::USD("2015-03-19".to_string()), 3.8596f64);
- exchange_rates.insert(Exchange::USD("2015-11-26".to_string()), 4.0298f64);
- exchange_rates.insert(Exchange::USD("2022-03-18".to_string()), 4.2707f64);
- exchange_rates.insert(Exchange::USD("2013-07-04".to_string()), 3.3246f64);
- exchange_rates.insert(Exchange::EUR("2023-03-29".to_string()), 4.685f64);
- exchange_rates.insert(Exchange::USD("2022-07-11".to_string()), 4.7416f64);
- exchange_rates.insert(Exchange::USD("2021-05-07".to_string()), 3.7861f64);
- exchange_rates.insert(Exchange::EUR("2023-07-05".to_string()), 4.4498f64);
- exchange_rates.insert(Exchange::USD("2012-04-10".to_string()), 3.1904f64);
- exchange_rates.insert(Exchange::USD("2014-01-03".to_string()), 3.0517f64);
- exchange_rates.insert(Exchange::USD("2021-02-22".to_string()), 3.7135f64);
- exchange_rates.insert(Exchange::USD("2015-11-20".to_string()), 3.9706f64);
- exchange_rates.insert(Exchange::USD("2022-05-17".to_string()), 4.4379f64);
- exchange_rates.insert(Exchange::USD("2015-08-19".to_string()), 3.7718f64);
- exchange_rates.insert(Exchange::USD("2019-06-06".to_string()), 3.8065f64);
- exchange_rates.insert(Exchange::EUR("2024-02-29".to_string()), 4.319f64);
- exchange_rates.insert(Exchange::EUR("2025-08-11".to_string()), 4.2533f64);
- exchange_rates.insert(Exchange::USD("2017-10-04".to_string()), 3.6597f64);
- exchange_rates.insert(Exchange::USD("2022-09-15".to_string()), 4.7202f64);
- exchange_rates.insert(Exchange::USD("2014-10-29".to_string()), 3.3192f64);
- exchange_rates.insert(Exchange::USD("2014-07-01".to_string()), 3.0355f64);
- exchange_rates.insert(Exchange::USD("2025-11-10".to_string()), 3.661f64);
- exchange_rates.insert(Exchange::EUR("2025-01-03".to_string()), 4.2718f64);
- exchange_rates.insert(Exchange::EUR("2025-04-17".to_string()), 4.2879f64);
- exchange_rates.insert(Exchange::USD("2015-11-24".to_string()), 4.0021f64);
- exchange_rates.insert(Exchange::EUR("2025-07-31".to_string()), 4.2661f64);
- exchange_rates.insert(Exchange::USD("2014-04-28".to_string()), 3.0368f64);
- exchange_rates.insert(Exchange::USD("2012-09-17".to_string()), 3.1207f64);
- exchange_rates.insert(Exchange::USD("2017-02-16".to_string()), 4.0567f64);
- exchange_rates.insert(Exchange::EUR("2025-08-14".to_string()), 4.2639f64);
- exchange_rates.insert(Exchange::USD("2016-10-05".to_string()), 3.8307f64);
- exchange_rates.insert(Exchange::USD("2020-06-01".to_string()), 3.968f64);
- exchange_rates.insert(Exchange::USD("2024-07-26".to_string()), 3.9415f64);
- exchange_rates.insert(Exchange::USD("2019-02-27".to_string()), 3.7886f64);
- exchange_rates.insert(Exchange::USD("2016-09-01".to_string()), 3.9116f64);
- exchange_rates.insert(Exchange::USD("2016-06-06".to_string()), 3.8602f64);
- exchange_rates.insert(Exchange::USD("2014-04-14".to_string()), 3.0288f64);
- exchange_rates.insert(Exchange::EUR("2024-08-28".to_string()), 4.2938f64);
- exchange_rates.insert(Exchange::USD("2024-08-08".to_string()), 3.952f64);
- exchange_rates.insert(Exchange::USD("2025-04-28".to_string()), 3.7701f64);
- exchange_rates.insert(Exchange::USD("2024-04-09".to_string()), 3.9223f64);
- exchange_rates.insert(Exchange::USD("2016-11-02".to_string()), 3.8954f64);
- exchange_rates.insert(Exchange::USD("2014-07-03".to_string()), 3.0418f64);
- exchange_rates.insert(Exchange::USD("2023-01-24".to_string()), 4.3341f64);
- exchange_rates.insert(Exchange::USD("2015-01-14".to_string()), 3.6525f64);
- exchange_rates.insert(Exchange::USD("2023-09-12".to_string()), 4.3711f64);
- exchange_rates.insert(Exchange::USD("2016-10-24".to_string()), 3.969f64);
- exchange_rates.insert(Exchange::USD("2023-04-21".to_string()), 4.2006f64);
- exchange_rates.insert(Exchange::USD("2024-03-20".to_string()), 3.9895f64);
- exchange_rates.insert(Exchange::USD("2017-06-09".to_string()), 3.7465f64);
- exchange_rates.insert(Exchange::USD("2018-03-26".to_string()), 3.4145f64);
- exchange_rates.insert(Exchange::EUR("2024-04-29".to_string()), 4.319f64);
- exchange_rates.insert(Exchange::USD("2024-10-09".to_string()), 3.9266f64);
- exchange_rates.insert(Exchange::USD("2021-09-17".to_string()), 3.8882f64);
- exchange_rates.insert(Exchange::USD("2014-09-25".to_string()), 3.2823f64);
- exchange_rates.insert(Exchange::USD("2016-01-26".to_string()), 4.1475f64);
- exchange_rates.insert(Exchange::USD("2012-09-14".to_string()), 3.1131f64);
- exchange_rates.insert(Exchange::USD("2021-02-16".to_string()), 3.694f64);
- exchange_rates.insert(Exchange::USD("2014-04-02".to_string()), 3.0288f64);
- exchange_rates.insert(Exchange::USD("2014-12-18".to_string()), 3.4428f64);
- exchange_rates.insert(Exchange::USD("2012-06-22".to_string()), 3.4025f64);
- exchange_rates.insert(Exchange::USD("2017-10-10".to_string()), 3.6468f64);
- exchange_rates.insert(Exchange::EUR("2023-10-13".to_string()), 4.5417f64);
- exchange_rates.insert(Exchange::USD("2025-02-20".to_string()), 3.9974f64);
- exchange_rates.insert(Exchange::EUR("2025-11-05".to_string()), 4.2597f64);
- exchange_rates.insert(Exchange::EUR("2023-03-13".to_string()), 4.6848f64);
- exchange_rates.insert(Exchange::USD("2013-10-22".to_string()), 3.0564f64);
- exchange_rates.insert(Exchange::USD("2023-11-07".to_string()), 4.1667f64);
- exchange_rates.insert(Exchange::USD("2018-11-07".to_string()), 3.7398f64);
- exchange_rates.insert(Exchange::USD("2022-12-02".to_string()), 4.4492f64);
- exchange_rates.insert(Exchange::USD("2015-01-16".to_string()), 3.7174f64);
- exchange_rates.insert(Exchange::USD("2013-11-27".to_string()), 3.0899f64);
- exchange_rates.insert(Exchange::USD("2020-03-20".to_string()), 4.24f64);
- exchange_rates.insert(Exchange::USD("2018-11-29".to_string()), 3.7728f64);
- exchange_rates.insert(Exchange::USD("2019-12-05".to_string()), 3.8566f64);
- exchange_rates.insert(Exchange::USD("2017-01-05".to_string()), 4.1667f64);
- exchange_rates.insert(Exchange::EUR("2024-06-11".to_string()), 4.3456f64);
- exchange_rates.insert(Exchange::USD("2020-01-03".to_string()), 3.8213f64);
- exchange_rates.insert(Exchange::USD("2020-10-19".to_string()), 3.8761f64);
- exchange_rates.insert(Exchange::EUR("2024-05-09".to_string()), 4.2993f64);
- exchange_rates.insert(Exchange::USD("2019-12-09".to_string()), 3.8704f64);
- exchange_rates.insert(Exchange::USD("2022-03-30".to_string()), 4.1688f64);
- exchange_rates.insert(Exchange::USD("2020-01-08".to_string()), 3.8123f64);
- exchange_rates.insert(Exchange::USD("2015-11-25".to_string()), 4.0215f64);
- exchange_rates.insert(Exchange::USD("2015-02-23".to_string()), 3.6933f64);
- exchange_rates.insert(Exchange::USD("2025-06-24".to_string()), 3.6753f64);
- exchange_rates.insert(Exchange::EUR("2025-01-13".to_string()), 4.2715f64);
- exchange_rates.insert(Exchange::USD("2023-05-04".to_string()), 4.1547f64);
- exchange_rates.insert(Exchange::USD("2024-09-10".to_string()), 3.8798f64);
- exchange_rates.insert(Exchange::EUR("2023-01-24".to_string()), 4.7073f64);
- exchange_rates.insert(Exchange::USD("2012-09-21".to_string()), 3.1712f64);
- exchange_rates.insert(Exchange::USD("2025-11-13".to_string()), 3.6417f64);
- exchange_rates.insert(Exchange::USD("2016-02-10".to_string()), 3.9383f64);
- exchange_rates.insert(Exchange::USD("2022-05-05".to_string()), 4.4017f64);
- exchange_rates.insert(Exchange::USD("2013-05-27".to_string()), 3.2416f64);
- exchange_rates.insert(Exchange::EUR("2024-06-21".to_string()), 4.3331f64);
- exchange_rates.insert(Exchange::EUR("2025-03-10".to_string()), 4.1857f64);
- exchange_rates.insert(Exchange::USD("2017-05-08".to_string()), 3.8391f64);
- exchange_rates.insert(Exchange::USD("2014-04-04".to_string()), 3.0397f64);
- exchange_rates.insert(Exchange::USD("2015-08-10".to_string()), 3.8246f64);
- exchange_rates.insert(Exchange::USD("2020-02-11".to_string()), 3.9041f64);
- exchange_rates.insert(Exchange::USD("2020-10-28".to_string()), 3.9313f64);
- exchange_rates.insert(Exchange::USD("2014-06-06".to_string()), 3.0222f64);
- exchange_rates.insert(Exchange::USD("2022-06-23".to_string()), 4.4881f64);
- exchange_rates.insert(Exchange::USD("2021-07-26".to_string()), 3.8915f64);
- exchange_rates.insert(Exchange::EUR("2025-01-28".to_string()), 4.2092f64);
- exchange_rates.insert(Exchange::USD("2019-11-12".to_string()), 3.878f64);
- exchange_rates.insert(Exchange::EUR("2023-04-25".to_string()), 4.598f64);
- exchange_rates.insert(Exchange::EUR("2024-11-18".to_string()), 4.332f64);
- exchange_rates.insert(Exchange::USD("2023-11-28".to_string()), 3.975f64);
- exchange_rates.insert(Exchange::USD("2020-03-16".to_string()), 3.9231f64);
- exchange_rates.insert(Exchange::EUR("2024-11-13".to_string()), 4.3416f64);
- exchange_rates.insert(Exchange::EUR("2023-08-11".to_string()), 4.4547f64);
- exchange_rates.insert(Exchange::USD("2020-08-13".to_string()), 3.7176f64);
- exchange_rates.insert(Exchange::USD("2015-11-16".to_string()), 3.9581f64);
- exchange_rates.insert(Exchange::EUR("2024-11-29".to_string()), 4.3043f64);
- exchange_rates.insert(Exchange::USD("2021-03-26".to_string()), 3.9307f64);
- exchange_rates.insert(Exchange::USD("2021-10-11".to_string()), 3.9862f64);
- exchange_rates.insert(Exchange::USD("2016-01-20".to_string()), 4.0877f64);
- exchange_rates.insert(Exchange::USD("2015-05-06".to_string()), 3.6116f64);
- exchange_rates.insert(Exchange::USD("2014-02-13".to_string()), 3.0532f64);
- exchange_rates.insert(Exchange::USD("2018-03-02".to_string()), 3.42f64);
- exchange_rates.insert(Exchange::USD("2023-05-19".to_string()), 4.2053f64);
- exchange_rates.insert(Exchange::USD("2021-08-25".to_string()), 3.8869f64);
- exchange_rates.insert(Exchange::EUR("2025-07-18".to_string()), 4.2509f64);
- exchange_rates.insert(Exchange::EUR("2024-01-15".to_string()), 4.3748f64);
- exchange_rates.insert(Exchange::USD("2024-02-14".to_string()), 4.0593f64);
- exchange_rates.insert(Exchange::USD("2022-05-23".to_string()), 4.3369f64);
- exchange_rates.insert(Exchange::USD("2012-11-26".to_string()), 3.1744f64);
- exchange_rates.insert(Exchange::USD("2017-05-25".to_string()), 3.7177f64);
- exchange_rates.insert(Exchange::USD("2017-12-08".to_string()), 3.5808f64);
- exchange_rates.insert(Exchange::EUR("2025-12-10".to_string()), 4.2274f64);
- exchange_rates.insert(Exchange::USD("2014-11-03".to_string()), 3.3772f64);
- exchange_rates.insert(Exchange::USD("2020-06-25".to_string()), 3.9623f64);
- exchange_rates.insert(Exchange::USD("2018-11-06".to_string()), 3.7802f64);
- exchange_rates.insert(Exchange::USD("2025-07-14".to_string()), 3.6475f64);
- exchange_rates.insert(Exchange::USD("2024-10-29".to_string()), 4.0251f64);
- exchange_rates.insert(Exchange::USD("2019-04-01".to_string()), 3.8267f64);
- exchange_rates.insert(Exchange::USD("2023-08-23".to_string()), 4.1438f64);
- exchange_rates.insert(Exchange::USD("2025-09-30".to_string()), 3.6315f64);
- exchange_rates.insert(Exchange::USD("2022-12-30".to_string()), 4.4018f64);
- exchange_rates.insert(Exchange::EUR("2023-08-17".to_string()), 4.4681f64);
- exchange_rates.insert(Exchange::USD("2015-03-27".to_string()), 3.789f64);
- exchange_rates.insert(Exchange::USD("2019-04-30".to_string()), 3.8291f64);
- exchange_rates.insert(Exchange::USD("2025-01-31".to_string()), 4.0576f64);
- exchange_rates.insert(Exchange::USD("2024-02-13".to_string()), 4.0136f64);
- exchange_rates.insert(Exchange::USD("2020-09-01".to_string()), 3.6707f64);
- exchange_rates.insert(Exchange::USD("2019-09-19".to_string()), 3.9267f64);
- exchange_rates.insert(Exchange::USD("2020-01-29".to_string()), 3.8871f64);
- exchange_rates.insert(Exchange::USD("2023-07-07".to_string()), 4.1189f64);
- exchange_rates.insert(Exchange::USD("2017-10-16".to_string()), 3.6004f64);
- exchange_rates.insert(Exchange::USD("2019-04-08".to_string()), 3.8188f64);
- exchange_rates.insert(Exchange::EUR("2024-07-17".to_string()), 4.2904f64);
- exchange_rates.insert(Exchange::USD("2020-05-20".to_string()), 4.1619f64);
- exchange_rates.insert(Exchange::EUR("2023-10-11".to_string()), 4.5183f64);
- exchange_rates.insert(Exchange::USD("2018-08-03".to_string()), 3.6926f64);
- exchange_rates.insert(Exchange::USD("2019-07-18".to_string()), 3.7933f64);
- exchange_rates.insert(Exchange::USD("2024-09-03".to_string()), 3.8701f64);
- exchange_rates.insert(Exchange::USD("2016-04-28".to_string()), 3.8695f64);
- exchange_rates.insert(Exchange::USD("2022-05-25".to_string()), 4.3069f64);
- exchange_rates.insert(Exchange::USD("2021-05-27".to_string()), 3.6929f64);
- exchange_rates.insert(Exchange::USD("2023-11-15".to_string()), 4.0453f64);
- exchange_rates.insert(Exchange::USD("2019-02-07".to_string()), 3.7919f64);
- exchange_rates.insert(Exchange::EUR("2025-07-04".to_string()), 4.2515f64);
- exchange_rates.insert(Exchange::USD("2025-06-30".to_string()), 3.6164f64);
- exchange_rates.insert(Exchange::USD("2012-02-07".to_string()), 3.1806f64);
- exchange_rates.insert(Exchange::USD("2012-03-21".to_string()), 3.1173f64);
- exchange_rates.insert(Exchange::USD("2014-07-15".to_string()), 3.0454f64);
- exchange_rates.insert(Exchange::USD("2014-01-02".to_string()), 3.0315f64);
- exchange_rates.insert(Exchange::USD("2018-11-08".to_string()), 3.7599f64);
- exchange_rates.insert(Exchange::USD("2021-03-08".to_string()), 3.8665f64);
- exchange_rates.insert(Exchange::USD("2025-05-23".to_string()), 3.7506f64);
- exchange_rates.insert(Exchange::USD("2017-06-05".to_string()), 3.7066f64);
- exchange_rates.insert(Exchange::USD("2023-12-21".to_string()), 3.9645f64);
- exchange_rates.insert(Exchange::USD("2021-11-02".to_string()), 3.9772f64);
- exchange_rates.insert(Exchange::USD("2020-11-17".to_string()), 3.7877f64);
- exchange_rates.insert(Exchange::USD("2025-09-16".to_string()), 3.6034f64);
- exchange_rates.insert(Exchange::USD("2025-08-12".to_string()), 3.6702f64);
- exchange_rates.insert(Exchange::USD("2019-07-01".to_string()), 3.743f64);
- exchange_rates.insert(Exchange::USD("2018-01-15".to_string()), 3.401f64);
- exchange_rates.insert(Exchange::USD("2017-09-22".to_string()), 3.5651f64);
- exchange_rates.insert(Exchange::USD("2016-01-12".to_string()), 4.017f64);
- exchange_rates.insert(Exchange::USD("2017-03-08".to_string()), 4.0818f64);
- exchange_rates.insert(Exchange::USD("2014-08-08".to_string()), 3.1509f64);
- exchange_rates.insert(Exchange::USD("2012-04-30".to_string()), 3.1509f64);
- exchange_rates.insert(Exchange::EUR("2023-05-29".to_string()), 4.5294f64);
- exchange_rates.insert(Exchange::USD("2020-10-26".to_string()), 3.8759f64);
- exchange_rates.insert(Exchange::EUR("2024-12-31".to_string()), 4.273f64);
- exchange_rates.insert(Exchange::USD("2016-03-18".to_string()), 3.7882f64);
- exchange_rates.insert(Exchange::EUR("2025-08-19".to_string()), 4.242f64);
- exchange_rates.insert(Exchange::EUR("2024-04-04".to_string()), 4.2921f64);
- exchange_rates.insert(Exchange::EUR("2024-12-12".to_string()), 4.2818f64);
- exchange_rates.insert(Exchange::USD("2016-07-07".to_string()), 4.0036f64);
- exchange_rates.insert(Exchange::USD("2016-02-04".to_string()), 3.9492f64);
- exchange_rates.insert(Exchange::EUR("2024-05-27".to_string()), 4.2528f64);
- exchange_rates.insert(Exchange::USD("2024-05-20".to_string()), 3.9149f64);
- exchange_rates.insert(Exchange::USD("2015-04-01".to_string()), 3.789f64);
- exchange_rates.insert(Exchange::USD("2025-12-01".to_string()), 3.6383f64);
- exchange_rates.insert(Exchange::EUR("2024-11-07".to_string()), 4.3431f64);
- exchange_rates.insert(Exchange::USD("2022-04-28".to_string()), 4.4613f64);
- exchange_rates.insert(Exchange::USD("2020-04-30".to_string()), 4.1729f64);
- exchange_rates.insert(Exchange::USD("2020-07-09".to_string()), 3.9486f64);
- exchange_rates.insert(Exchange::USD("2019-01-08".to_string()), 3.7559f64);
- exchange_rates.insert(Exchange::USD("2015-03-05".to_string()), 3.7525f64);
- exchange_rates.insert(Exchange::USD("2012-05-16".to_string()), 3.4353f64);
- exchange_rates.insert(Exchange::EUR("2025-09-24".to_string()), 4.2676f64);
- exchange_rates.insert(Exchange::USD("2014-12-12".to_string()), 3.3639f64);
- exchange_rates.insert(Exchange::USD("2021-08-03".to_string()), 3.8315f64);
- exchange_rates.insert(Exchange::USD("2022-01-14".to_string()), 3.9597f64);
- exchange_rates.insert(Exchange::USD("2016-07-06".to_string()), 4.0225f64);
- exchange_rates.insert(Exchange::USD("2015-11-05".to_string()), 3.8925f64);
- exchange_rates.insert(Exchange::USD("2014-10-07".to_string()), 3.3106f64);
- exchange_rates.insert(Exchange::USD("2014-12-08".to_string()), 3.3978f64);
- exchange_rates.insert(Exchange::USD("2023-11-21".to_string()), 3.9882f64);
- exchange_rates.insert(Exchange::USD("2017-04-20".to_string()), 3.9588f64);
- exchange_rates.insert(Exchange::USD("2020-06-08".to_string()), 3.9197f64);
- exchange_rates.insert(Exchange::EUR("2023-05-31".to_string()), 4.5376f64);
- exchange_rates.insert(Exchange::USD("2017-12-05".to_string()), 3.5454f64);
- exchange_rates.insert(Exchange::EUR("2024-01-22".to_string()), 4.356f64);
- exchange_rates.insert(Exchange::USD("2016-06-10".to_string()), 3.8545f64);
- exchange_rates.insert(Exchange::USD("2023-10-10".to_string()), 4.2985f64);
- exchange_rates.insert(Exchange::USD("2017-06-08".to_string()), 3.74f64);
- exchange_rates.insert(Exchange::USD("2017-09-12".to_string()), 3.5552f64);
- exchange_rates.insert(Exchange::USD("2023-08-07".to_string()), 4.0347f64);
- exchange_rates.insert(Exchange::USD("2016-06-14".to_string()), 3.9483f64);
- exchange_rates.insert(Exchange::USD("2022-11-23".to_string()), 4.548f64);
- exchange_rates.insert(Exchange::EUR("2023-11-02".to_string()), 4.4582f64);
- exchange_rates.insert(Exchange::USD("2016-04-22".to_string()), 3.8399f64);
- exchange_rates.insert(Exchange::USD("2021-08-26".to_string()), 3.8912f64);
- exchange_rates.insert(Exchange::USD("2020-07-20".to_string()), 3.8997f64);
- exchange_rates.insert(Exchange::EUR("2023-08-24".to_string()), 4.473f64);
- exchange_rates.insert(Exchange::USD("2019-03-20".to_string()), 3.7767f64);
- exchange_rates.insert(Exchange::USD("2016-08-17".to_string()), 3.8075f64);
- exchange_rates.insert(Exchange::EUR("2023-01-30".to_string()), 4.716f64);
- exchange_rates.insert(Exchange::USD("2020-03-10".to_string()), 3.8058f64);
- exchange_rates.insert(Exchange::USD("2023-07-18".to_string()), 3.9451f64);
- exchange_rates.insert(Exchange::USD("2017-08-29".to_string()), 3.5372f64);
- exchange_rates.insert(Exchange::USD("2018-07-06".to_string()), 3.7222f64);
- exchange_rates.insert(Exchange::USD("2018-05-21".to_string()), 3.6615f64);
- exchange_rates.insert(Exchange::USD("2015-03-20".to_string()), 3.8645f64);
- exchange_rates.insert(Exchange::USD("2014-10-17".to_string()), 3.2964f64);
- exchange_rates.insert(Exchange::EUR("2025-05-07".to_string()), 4.2757f64);
- exchange_rates.insert(Exchange::EUR("2025-05-12".to_string()), 4.2337f64);
- exchange_rates.insert(Exchange::USD("2016-11-28".to_string()), 4.1521f64);
- exchange_rates.insert(Exchange::USD("2019-07-09".to_string()), 3.8074f64);
- exchange_rates.insert(Exchange::EUR("2025-08-21".to_string()), 4.2521f64);
- exchange_rates.insert(Exchange::USD("2019-11-28".to_string()), 3.9252f64);
- exchange_rates.insert(Exchange::USD("2021-06-29".to_string()), 3.7914f64);
- exchange_rates.insert(Exchange::USD("2020-07-22".to_string()), 3.8534f64);
- exchange_rates.insert(Exchange::USD("2025-01-16".to_string()), 4.1433f64);
- exchange_rates.insert(Exchange::USD("2013-09-20".to_string()), 3.1152f64);
- exchange_rates.insert(Exchange::USD("2019-05-28".to_string()), 3.8386f64);
- exchange_rates.insert(Exchange::USD("2017-01-20".to_string()), 4.1005f64);
- exchange_rates.insert(Exchange::USD("2021-04-20".to_string()), 3.7737f64);
- exchange_rates.insert(Exchange::USD("2018-08-24".to_string()), 3.7014f64);
- exchange_rates.insert(Exchange::USD("2025-09-18".to_string()), 3.5986f64);
- exchange_rates.insert(Exchange::USD("2013-06-17".to_string()), 3.1719f64);
- exchange_rates.insert(Exchange::USD("2020-12-24".to_string()), 3.6981f64);
- exchange_rates.insert(Exchange::USD("2019-09-03".to_string()), 3.9882f64);
- exchange_rates.insert(Exchange::USD("2018-04-20".to_string()), 3.3881f64);
- exchange_rates.insert(Exchange::USD("2017-05-05".to_string()), 3.849f64);
- exchange_rates.insert(Exchange::USD("2020-01-24".to_string()), 3.8475f64);
- exchange_rates.insert(Exchange::USD("2012-08-09".to_string()), 3.2915f64);
- exchange_rates.insert(Exchange::USD("2015-03-04".to_string()), 3.7485f64);
- exchange_rates.insert(Exchange::USD("2015-04-03".to_string()), 3.7449f64);
- exchange_rates.insert(Exchange::USD("2015-12-02".to_string()), 4.0305f64);
- exchange_rates.insert(Exchange::USD("2025-03-10".to_string()), 3.8573f64);
- exchange_rates.insert(Exchange::USD("2020-11-20".to_string()), 3.7677f64);
- exchange_rates.insert(Exchange::USD("2018-05-24".to_string()), 3.659f64);
- exchange_rates.insert(Exchange::EUR("2023-10-17".to_string()), 4.4389f64);
- exchange_rates.insert(Exchange::USD("2013-06-20".to_string()), 3.2693f64);
- exchange_rates.insert(Exchange::USD("2019-04-16".to_string()), 3.7802f64);
- exchange_rates.insert(Exchange::USD("2014-03-21".to_string()), 3.0425f64);
- exchange_rates.insert(Exchange::EUR("2023-04-11".to_string()), 4.681f64);
- exchange_rates.insert(Exchange::EUR("2024-06-28".to_string()), 4.313f64);
- exchange_rates.insert(Exchange::USD("2017-08-28".to_string()), 3.5736f64);
- exchange_rates.insert(Exchange::USD("2015-07-01".to_string()), 3.7625f64);
- exchange_rates.insert(Exchange::USD("2015-11-27".to_string()), 4.0333f64);
- exchange_rates.insert(Exchange::USD("2018-10-02".to_string()), 3.7326f64);
- exchange_rates.insert(Exchange::USD("2016-01-13".to_string()), 4.0068f64);
- exchange_rates.insert(Exchange::USD("2020-02-28".to_string()), 3.9255f64);
- exchange_rates.insert(Exchange::USD("2016-09-26".to_string()), 3.8324f64);
- exchange_rates.insert(Exchange::USD("2015-09-30".to_string()), 3.7754f64);
- exchange_rates.insert(Exchange::EUR("2025-07-11".to_string()), 4.2563f64);
- exchange_rates.insert(Exchange::USD("2023-09-26".to_string()), 4.3485f64);
- exchange_rates.insert(Exchange::USD("2015-06-12".to_string()), 3.7094f64);
- exchange_rates.insert(Exchange::USD("2019-10-29".to_string()), 3.8598f64);
- exchange_rates.insert(Exchange::USD("2018-03-12".to_string()), 3.4066f64);
- exchange_rates.insert(Exchange::USD("2016-07-13".to_string()), 3.9809f64);
- exchange_rates.insert(Exchange::USD("2012-08-27".to_string()), 3.257f64);
- exchange_rates.insert(Exchange::USD("2020-05-14".to_string()), 4.2269f64);
- exchange_rates.insert(Exchange::USD("2017-06-22".to_string()), 3.8002f64);
- exchange_rates.insert(Exchange::USD("2016-04-20".to_string()), 3.7842f64);
- exchange_rates.insert(Exchange::USD("2019-10-08".to_string()), 3.9405f64);
- exchange_rates.insert(Exchange::USD("2022-01-27".to_string()), 4.083f64);
- exchange_rates.insert(Exchange::USD("2012-09-25".to_string()), 3.2136f64);
- exchange_rates.insert(Exchange::USD("2012-05-29".to_string()), 3.4675f64);
- exchange_rates.insert(Exchange::USD("2018-12-03".to_string()), 3.7672f64);
- exchange_rates.insert(Exchange::USD("2024-04-02".to_string()), 4.0009f64);
- exchange_rates.insert(Exchange::USD("2014-02-18".to_string()), 3.03f64);
- exchange_rates.insert(Exchange::USD("2019-10-01".to_string()), 4.0147f64);
- exchange_rates.insert(Exchange::USD("2016-09-02".to_string()), 3.9164f64);
- exchange_rates.insert(Exchange::EUR("2023-01-17".to_string()), 4.6946f64);
- exchange_rates.insert(Exchange::EUR("2024-08-27".to_string()), 4.2802f64);
- exchange_rates.insert(Exchange::USD("2016-02-15".to_string()), 3.922f64);
- exchange_rates.insert(Exchange::USD("2021-08-09".to_string()), 3.8885f64);
- exchange_rates.insert(Exchange::USD("2023-12-12".to_string()), 4.0204f64);
- exchange_rates.insert(Exchange::EUR("2025-10-24".to_string()), 4.2353f64);
- exchange_rates.insert(Exchange::USD("2014-03-07".to_string()), 3.0185f64);
- exchange_rates.insert(Exchange::USD("2025-12-04".to_string()), 3.6221f64);
- exchange_rates.insert(Exchange::USD("2024-08-30".to_string()), 3.8644f64);
- exchange_rates.insert(Exchange::USD("2020-09-15".to_string()), 3.7445f64);
- exchange_rates.insert(Exchange::USD("2016-02-01".to_string()), 4.0638f64);
- exchange_rates.insert(Exchange::USD("2024-03-25".to_string()), 3.9833f64);
- exchange_rates.insert(Exchange::USD("2012-11-19".to_string()), 3.2503f64);
- exchange_rates.insert(Exchange::USD("2013-07-11".to_string()), 3.3225f64);
- exchange_rates.insert(Exchange::EUR("2024-03-01".to_string()), 4.3176f64);
- exchange_rates.insert(Exchange::USD("2018-05-29".to_string()), 3.7299f64);
- exchange_rates.insert(Exchange::USD("2016-04-08".to_string()), 3.7701f64);
- exchange_rates.insert(Exchange::USD("2018-05-18".to_string()), 3.6385f64);
- exchange_rates.insert(Exchange::USD("2016-04-06".to_string()), 3.751f64);
- exchange_rates.insert(Exchange::USD("2019-04-29".to_string()), 3.8468f64);
- exchange_rates.insert(Exchange::USD("2023-04-25".to_string()), 4.1649f64);
- exchange_rates.insert(Exchange::USD("2015-06-26".to_string()), 3.7275f64);
- exchange_rates.insert(Exchange::USD("2021-03-11".to_string()), 3.8287f64);
- exchange_rates.insert(Exchange::USD("2017-01-03".to_string()), 4.2271f64);
- exchange_rates.insert(Exchange::USD("2019-07-19".to_string()), 3.7855f64);
- exchange_rates.insert(Exchange::USD("2025-07-18".to_string()), 3.6535f64);
- exchange_rates.insert(Exchange::USD("2017-05-23".to_string()), 3.7354f64);
- exchange_rates.insert(Exchange::EUR("2024-12-24".to_string()), 4.2739f64);
- exchange_rates.insert(Exchange::EUR("2024-06-25".to_string()), 4.2909f64);
- exchange_rates.insert(Exchange::USD("2020-06-12".to_string()), 3.9299f64);
- exchange_rates.insert(Exchange::USD("2020-08-25".to_string()), 3.7144f64);
- exchange_rates.insert(Exchange::EUR("2023-11-07".to_string()), 4.4513f64);
- exchange_rates.insert(Exchange::USD("2021-08-10".to_string()), 3.8937f64);
- exchange_rates.insert(Exchange::EUR("2024-08-16".to_string()), 4.2732f64);
- exchange_rates.insert(Exchange::USD("2025-10-16".to_string()), 3.6467f64);
- exchange_rates.insert(Exchange::EUR("2025-02-07".to_string()), 4.1898f64);
- exchange_rates.insert(Exchange::USD("2012-06-04".to_string()), 3.5431f64);
- exchange_rates.insert(Exchange::USD("2013-06-03".to_string()), 3.2865f64);
- exchange_rates.insert(Exchange::USD("2021-06-30".to_string()), 3.8035f64);
- exchange_rates.insert(Exchange::USD("2020-12-22".to_string()), 3.6921f64);
- exchange_rates.insert(Exchange::USD("2021-02-04".to_string()), 3.7509f64);
- exchange_rates.insert(Exchange::USD("2012-01-18".to_string()), 3.4f64);
- exchange_rates.insert(Exchange::USD("2023-06-26".to_string()), 4.0669f64);
- exchange_rates.insert(Exchange::USD("2013-02-19".to_string()), 3.136f64);
- exchange_rates.insert(Exchange::USD("2012-03-02".to_string()), 3.1023f64);
- exchange_rates.insert(Exchange::USD("2013-11-19".to_string()), 3.0925f64);
- exchange_rates.insert(Exchange::USD("2025-10-22".to_string()), 3.6591f64);
- exchange_rates.insert(Exchange::USD("2019-02-22".to_string()), 3.8242f64);
- exchange_rates.insert(Exchange::USD("2018-10-22".to_string()), 3.7273f64);
- exchange_rates.insert(Exchange::USD("2014-06-13".to_string()), 3.0382f64);
- exchange_rates.insert(Exchange::USD("2014-07-02".to_string()), 3.0387f64);
- exchange_rates.insert(Exchange::USD("2022-08-31".to_string()), 4.736f64);
- exchange_rates.insert(Exchange::USD("2013-09-05".to_string()), 3.2463f64);
- exchange_rates.insert(Exchange::USD("2012-04-03".to_string()), 3.099f64);
- exchange_rates.insert(Exchange::USD("2025-01-27".to_string()), 4.021f64);
- exchange_rates.insert(Exchange::USD("2014-12-19".to_string()), 3.4791f64);
- exchange_rates.insert(Exchange::USD("2022-05-04".to_string()), 4.4456f64);
- exchange_rates.insert(Exchange::USD("2019-12-17".to_string()), 3.8211f64);
- exchange_rates.insert(Exchange::USD("2014-02-21".to_string()), 3.0389f64);
- exchange_rates.insert(Exchange::USD("2018-08-21".to_string()), 3.7375f64);
- exchange_rates.insert(Exchange::USD("2025-04-02".to_string()), 3.8707f64);
- exchange_rates.insert(Exchange::USD("2017-03-07".to_string()), 4.0803f64);
- exchange_rates.insert(Exchange::EUR("2023-11-10".to_string()), 4.4227f64);
- exchange_rates.insert(Exchange::USD("2024-02-20".to_string()), 3.9994f64);
- exchange_rates.insert(Exchange::USD("2013-09-26".to_string()), 3.1277f64);
- exchange_rates.insert(Exchange::USD("2013-02-15".to_string()), 3.1398f64);
- exchange_rates.insert(Exchange::USD("2022-11-10".to_string()), 4.7328f64);
- exchange_rates.insert(Exchange::EUR("2025-07-25".to_string()), 4.2544f64);
- exchange_rates.insert(Exchange::USD("2023-12-18".to_string()), 3.9625f64);
- exchange_rates.insert(Exchange::USD("2023-10-04".to_string()), 4.4155f64);
- exchange_rates.insert(Exchange::USD("2020-12-07".to_string()), 3.7001f64);
- exchange_rates.insert(Exchange::USD("2016-02-12".to_string()), 3.9074f64);
- exchange_rates.insert(Exchange::EUR("2024-07-16".to_string()), 4.2604f64);
- exchange_rates.insert(Exchange::USD("2021-06-02".to_string()), 3.6659f64);
- exchange_rates.insert(Exchange::USD("2019-09-23".to_string()), 3.9983f64);
- exchange_rates.insert(Exchange::EUR("2025-07-28".to_string()), 4.2565f64);
- exchange_rates.insert(Exchange::USD("2021-08-13".to_string()), 3.8934f64);
- exchange_rates.insert(Exchange::USD("2018-03-09".to_string()), 3.4132f64);
- exchange_rates.insert(Exchange::EUR("2024-04-24".to_string()), 4.3177f64);
- exchange_rates.insert(Exchange::USD("2024-09-25".to_string()), 3.8117f64);
- exchange_rates.insert(Exchange::USD("2019-08-06".to_string()), 3.8482f64);
- exchange_rates.insert(Exchange::USD("2019-11-05".to_string()), 3.8308f64);
- exchange_rates.insert(Exchange::USD("2021-05-25".to_string()), 3.6549f64);
- exchange_rates.insert(Exchange::USD("2012-03-28".to_string()), 3.11f64);
- exchange_rates.insert(Exchange::USD("2018-02-26".to_string()), 3.3799f64);
- exchange_rates.insert(Exchange::USD("2012-06-08".to_string()), 3.4566f64);
- exchange_rates.insert(Exchange::EUR("2023-04-17".to_string()), 4.6341f64);
- exchange_rates.insert(Exchange::USD("2024-02-21".to_string()), 3.9966f64);
- exchange_rates.insert(Exchange::EUR("2025-05-02".to_string()), 4.275f64);
- exchange_rates.insert(Exchange::USD("2024-10-31".to_string()), 4.0059f64);
- exchange_rates.insert(Exchange::EUR("2024-11-08".to_string()), 4.3244f64);
- exchange_rates.insert(Exchange::USD("2020-03-12".to_string()), 3.8642f64);
- exchange_rates.insert(Exchange::USD("2022-12-28".to_string()), 4.4127f64);
- exchange_rates.insert(Exchange::USD("2014-01-22".to_string()), 3.0761f64);
- exchange_rates.insert(Exchange::USD("2023-09-07".to_string()), 4.289f64);
- exchange_rates.insert(Exchange::USD("2024-12-18".to_string()), 4.0621f64);
- exchange_rates.insert(Exchange::USD("2018-01-05".to_string()), 3.4488f64);
- exchange_rates.insert(Exchange::USD("2021-05-12".to_string()), 3.7456f64);
- exchange_rates.insert(Exchange::USD("2017-01-12".to_string()), 4.1103f64);
- exchange_rates.insert(Exchange::USD("2017-02-10".to_string()), 4.0435f64);
- exchange_rates.insert(Exchange::USD("2012-02-06".to_string()), 3.2084f64);
- exchange_rates.insert(Exchange::USD("2021-03-04".to_string()), 3.7851f64);
- exchange_rates.insert(Exchange::USD("2015-02-04".to_string()), 3.644f64);
- exchange_rates.insert(Exchange::EUR("2024-03-05".to_string()), 4.3228f64);
- exchange_rates.insert(Exchange::USD("2017-06-27".to_string()), 3.7442f64);
- exchange_rates.insert(Exchange::USD("2020-12-31".to_string()), 3.7584f64);
- exchange_rates.insert(Exchange::USD("2012-07-25".to_string()), 3.4719f64);
- exchange_rates.insert(Exchange::USD("2019-11-14".to_string()), 3.9011f64);
- exchange_rates.insert(Exchange::USD("2023-02-14".to_string()), 4.4463f64);
- exchange_rates.insert(Exchange::USD("2019-10-31".to_string()), 3.8174f64);
- exchange_rates.insert(Exchange::USD("2025-12-22".to_string()), 3.5904f64);
- exchange_rates.insert(Exchange::USD("2023-02-16".to_string()), 4.4601f64);
- exchange_rates.insert(Exchange::USD("2012-02-29".to_string()), 3.073f64);
- exchange_rates.insert(Exchange::USD("2020-07-17".to_string()), 3.9263f64);
- exchange_rates.insert(Exchange::USD("2019-09-26".to_string()), 4.0092f64);
- exchange_rates.insert(Exchange::USD("2015-09-01".to_string()), 3.7503f64);
- exchange_rates.insert(Exchange::EUR("2025-01-24".to_string()), 4.21f64);
- exchange_rates.insert(Exchange::USD("2017-01-30".to_string()), 4.0472f64);
- exchange_rates.insert(Exchange::USD("2017-12-20".to_string()), 3.5459f64);
- exchange_rates.insert(Exchange::EUR("2024-11-28".to_string()), 4.3085f64);
- exchange_rates.insert(Exchange::USD("2017-10-24".to_string()), 3.6031f64);
- exchange_rates.insert(Exchange::USD("2021-09-02".to_string()), 3.8044f64);
- exchange_rates.insert(Exchange::USD("2022-06-07".to_string()), 4.2935f64);
- exchange_rates.insert(Exchange::USD("2021-03-03".to_string()), 3.7509f64);
- exchange_rates.insert(Exchange::USD("2018-04-30".to_string()), 3.4868f64);
- exchange_rates.insert(Exchange::EUR("2023-08-10".to_string()), 4.465f64);
- exchange_rates.insert(Exchange::USD("2022-09-22".to_string()), 4.8343f64);
- exchange_rates.insert(Exchange::USD("2019-12-16".to_string()), 3.8311f64);
- exchange_rates.insert(Exchange::USD("2021-11-15".to_string()), 4.0497f64);
- exchange_rates.insert(Exchange::USD("2024-05-24".to_string()), 3.9376f64);
- exchange_rates.insert(Exchange::USD("2013-06-24".to_string()), 3.3137f64);
- exchange_rates.insert(Exchange::USD("2023-07-21".to_string()), 3.999f64);
- exchange_rates.insert(Exchange::USD("2021-03-01".to_string()), 3.7572f64);
- exchange_rates.insert(Exchange::USD("2021-09-24".to_string()), 3.9268f64);
- exchange_rates.insert(Exchange::USD("2014-12-16".to_string()), 3.3522f64);
- exchange_rates.insert(Exchange::EUR("2024-11-05".to_string()), 4.3607f64);
- exchange_rates.insert(Exchange::USD("2023-10-19".to_string()), 4.2264f64);
- exchange_rates.insert(Exchange::EUR("2025-04-02".to_string()), 4.1794f64);
- exchange_rates.insert(Exchange::USD("2024-08-29".to_string()), 3.867f64);
- exchange_rates.insert(Exchange::USD("2015-02-24".to_string()), 3.6948f64);
- exchange_rates.insert(Exchange::USD("2012-07-16".to_string()), 3.4353f64);
- exchange_rates.insert(Exchange::USD("2020-09-25".to_string()), 3.9016f64);
- exchange_rates.insert(Exchange::USD("2024-09-23".to_string()), 3.8571f64);
- exchange_rates.insert(Exchange::USD("2014-08-22".to_string()), 3.152f64);
- exchange_rates.insert(Exchange::USD("2025-01-10".to_string()), 4.1415f64);
- exchange_rates.insert(Exchange::USD("2012-02-13".to_string()), 3.1643f64);
- exchange_rates.insert(Exchange::EUR("2023-08-28".to_string()), 4.4716f64);
- exchange_rates.insert(Exchange::USD("2025-02-19".to_string()), 3.9875f64);
- exchange_rates.insert(Exchange::USD("2025-10-29".to_string()), 3.6399f64);
- exchange_rates.insert(Exchange::EUR("2025-04-18".to_string()), 4.2823f64);
- exchange_rates.insert(Exchange::USD("2022-11-04".to_string()), 4.7975f64);
- exchange_rates.insert(Exchange::USD("2019-09-30".to_string()), 4f64);
- exchange_rates.insert(Exchange::USD("2016-03-23".to_string()), 3.801f64);
- exchange_rates.insert(Exchange::USD("2016-11-30".to_string()), 4.1721f64);
- exchange_rates.insert(Exchange::EUR("2024-05-28".to_string()), 4.2592f64);
- exchange_rates.insert(Exchange::USD("2022-08-02".to_string()), 4.5984f64);
- exchange_rates.insert(Exchange::USD("2017-09-11".to_string()), 3.5293f64);
- exchange_rates.insert(Exchange::EUR("2024-04-12".to_string()), 4.2666f64);
- exchange_rates.insert(Exchange::EUR("2025-02-21".to_string()), 4.1705f64);
- exchange_rates.insert(Exchange::USD("2012-12-06".to_string()), 3.1538f64);
- exchange_rates.insert(Exchange::USD("2012-10-11".to_string()), 3.1819f64);
- exchange_rates.insert(Exchange::USD("2024-03-22".to_string()), 3.9928f64);
- exchange_rates.insert(Exchange::USD("2024-06-05".to_string()), 3.9607f64);
- exchange_rates.insert(Exchange::USD("2023-05-08".to_string()), 4.1384f64);
- exchange_rates.insert(Exchange::EUR("2024-01-08".to_string()), 4.3548f64);
- exchange_rates.insert(Exchange::USD("2023-01-27".to_string()), 4.3252f64);
- exchange_rates.insert(Exchange::USD("2021-08-18".to_string()), 3.8861f64);
- exchange_rates.insert(Exchange::USD("2022-04-05".to_string()), 4.2233f64);
- exchange_rates.insert(Exchange::USD("2016-02-11".to_string()), 3.9219f64);
- exchange_rates.insert(Exchange::USD("2014-08-19".to_string()), 3.1356f64);
- exchange_rates.insert(Exchange::EUR("2024-04-22".to_string()), 4.3203f64);
- exchange_rates.insert(Exchange::USD("2016-06-24".to_string()), 3.9994f64);
- exchange_rates.insert(Exchange::USD("2013-09-23".to_string()), 3.126f64);
- exchange_rates.insert(Exchange::USD("2014-05-30".to_string()), 3.0435f64);
- exchange_rates.insert(Exchange::USD("2012-09-26".to_string()), 3.2187f64);
- exchange_rates.insert(Exchange::USD("2017-09-15".to_string()), 3.5863f64);
- exchange_rates.insert(Exchange::USD("2021-09-16".to_string()), 3.8847f64);
- exchange_rates.insert(Exchange::USD("2012-03-13".to_string()), 3.1288f64);
- exchange_rates.insert(Exchange::USD("2024-08-06".to_string()), 3.9467f64);
- exchange_rates.insert(Exchange::USD("2019-09-16".to_string()), 3.9116f64);
- exchange_rates.insert(Exchange::USD("2016-09-16".to_string()), 3.8497f64);
- exchange_rates.insert(Exchange::USD("2021-08-23".to_string()), 3.9107f64);
- exchange_rates.insert(Exchange::USD("2019-12-03".to_string()), 3.8706f64);
- exchange_rates.insert(Exchange::USD("2023-11-14".to_string()), 4.121f64);
- exchange_rates.insert(Exchange::EUR("2025-12-09".to_string()), 4.234f64);
- exchange_rates.insert(Exchange::USD("2015-02-10".to_string()), 3.722f64);
- exchange_rates.insert(Exchange::USD("2021-11-04".to_string()), 3.9807f64);
- exchange_rates.insert(Exchange::USD("2015-02-17".to_string()), 3.6788f64);
- exchange_rates.insert(Exchange::USD("2025-03-04".to_string()), 3.9543f64);
- exchange_rates.insert(Exchange::EUR("2023-08-31".to_string()), 4.4684f64);
- exchange_rates.insert(Exchange::EUR("2024-04-25".to_string()), 4.3198f64);
- exchange_rates.insert(Exchange::USD("2016-01-08".to_string()), 3.9963f64);
- exchange_rates.insert(Exchange::USD("2012-09-13".to_string()), 3.1852f64);
- exchange_rates.insert(Exchange::USD("2025-09-09".to_string()), 3.6173f64);
- exchange_rates.insert(Exchange::USD("2015-12-04".to_string()), 3.9607f64);
- exchange_rates.insert(Exchange::USD("2014-09-05".to_string()), 3.2354f64);
- exchange_rates.insert(Exchange::USD("2025-06-25".to_string()), 3.659f64);
- exchange_rates.insert(Exchange::USD("2017-02-20".to_string()), 4.0692f64);
- exchange_rates.insert(Exchange::EUR("2024-10-01".to_string()), 4.2846f64);
- exchange_rates.insert(Exchange::USD("2015-01-02".to_string()), 3.5725f64);
- exchange_rates.insert(Exchange::USD("2017-02-17".to_string()), 4.0693f64);
- exchange_rates.insert(Exchange::USD("2017-04-26".to_string()), 3.8757f64);
- exchange_rates.insert(Exchange::USD("2025-02-25".to_string()), 3.947f64);
- exchange_rates.insert(Exchange::USD("2025-05-02".to_string()), 3.7722f64);
- exchange_rates.insert(Exchange::USD("2025-03-18".to_string()), 3.8152f64);
- exchange_rates.insert(Exchange::EUR("2024-10-14".to_string()), 4.2928f64);
- exchange_rates.insert(Exchange::EUR("2025-02-04".to_string()), 4.2249f64);
- exchange_rates.insert(Exchange::USD("2018-08-16".to_string()), 3.7871f64);
- exchange_rates.insert(Exchange::EUR("2025-12-03".to_string()), 4.2312f64);
- exchange_rates.insert(Exchange::USD("2017-08-21".to_string()), 3.6408f64);
- exchange_rates.insert(Exchange::USD("2012-04-11".to_string()), 3.2034f64);
- exchange_rates.insert(Exchange::USD("2020-04-22".to_string()), 4.1736f64);
- exchange_rates.insert(Exchange::USD("2014-02-05".to_string()), 3.0987f64);
- exchange_rates.insert(Exchange::USD("2013-12-27".to_string()), 3.0105f64);
- exchange_rates.insert(Exchange::USD("2024-09-19".to_string()), 3.8249f64);
- exchange_rates.insert(Exchange::USD("2025-06-23".to_string()), 3.7212f64);
- exchange_rates.insert(Exchange::USD("2017-08-18".to_string()), 3.6459f64);
- exchange_rates.insert(Exchange::USD("2024-02-26".to_string()), 3.9776f64);
- exchange_rates.insert(Exchange::USD("2016-02-24".to_string()), 3.9803f64);
- exchange_rates.insert(Exchange::USD("2013-03-21".to_string()), 3.2387f64);
- exchange_rates.insert(Exchange::USD("2014-02-06".to_string()), 3.095f64);
- exchange_rates.insert(Exchange::USD("2018-04-13".to_string()), 3.3862f64);
- exchange_rates.insert(Exchange::USD("2012-05-08".to_string()), 3.2238f64);
- exchange_rates.insert(Exchange::USD("2025-10-17".to_string()), 3.6388f64);
- exchange_rates.insert(Exchange::USD("2015-08-03".to_string()), 3.7705f64);
- exchange_rates.insert(Exchange::EUR("2024-07-24".to_string()), 4.2796f64);
- exchange_rates.insert(Exchange::USD("2012-07-18".to_string()), 3.395f64);
- exchange_rates.insert(Exchange::EUR("2023-03-14".to_string()), 4.6909f64);
- exchange_rates.insert(Exchange::USD("2021-11-26".to_string()), 4.1754f64);
- exchange_rates.insert(Exchange::USD("2020-05-29".to_string()), 4.0031f64);
- exchange_rates.insert(Exchange::USD("2013-06-11".to_string()), 3.2201f64);
- exchange_rates.insert(Exchange::USD("2015-07-24".to_string()), 3.7654f64);
- exchange_rates.insert(Exchange::USD("2017-07-13".to_string()), 3.7133f64);
- exchange_rates.insert(Exchange::USD("2020-08-24".to_string()), 3.7273f64);
- exchange_rates.insert(Exchange::USD("2022-03-03".to_string()), 4.3257f64);
- exchange_rates.insert(Exchange::USD("2012-09-19".to_string()), 3.1631f64);
- exchange_rates.insert(Exchange::USD("2021-02-12".to_string()), 3.7186f64);
- exchange_rates.insert(Exchange::USD("2013-11-13".to_string()), 3.1358f64);
- exchange_rates.insert(Exchange::USD("2024-09-05".to_string()), 3.8487f64);
- exchange_rates.insert(Exchange::EUR("2023-10-31".to_string()), 4.4475f64);
- exchange_rates.insert(Exchange::EUR("2024-05-16".to_string()), 4.2617f64);
- exchange_rates.insert(Exchange::USD("2019-11-06".to_string()), 3.8497f64);
- exchange_rates.insert(Exchange::USD("2021-04-27".to_string()), 3.7826f64);
- exchange_rates.insert(Exchange::USD("2020-10-14".to_string()), 3.8301f64);
- exchange_rates.insert(Exchange::EUR("2025-10-14".to_string()), 4.2645f64);
- exchange_rates.insert(Exchange::USD("2015-06-15".to_string()), 3.6905f64);
- exchange_rates.insert(Exchange::USD("2019-10-16".to_string()), 3.8934f64);
- exchange_rates.insert(Exchange::USD("2023-09-05".to_string()), 4.1643f64);
- exchange_rates.insert(Exchange::USD("2024-07-09".to_string()), 3.9391f64);
- exchange_rates.insert(Exchange::USD("2020-09-22".to_string()), 3.8359f64);
- exchange_rates.insert(Exchange::USD("2023-11-23".to_string()), 3.9969f64);
- exchange_rates.insert(Exchange::USD("2025-03-27".to_string()), 3.8913f64);
- exchange_rates.insert(Exchange::USD("2021-11-17".to_string()), 4.1204f64);
- exchange_rates.insert(Exchange::USD("2020-04-07".to_string()), 4.1717f64);
- exchange_rates.insert(Exchange::EUR("2024-02-15".to_string()), 4.3463f64);
- exchange_rates.insert(Exchange::USD("2022-03-11".to_string()), 4.3694f64);
- exchange_rates.insert(Exchange::EUR("2024-09-26".to_string()), 4.2665f64);
- exchange_rates.insert(Exchange::USD("2015-07-28".to_string()), 3.7303f64);
- exchange_rates.insert(Exchange::USD("2014-01-24".to_string()), 3.0727f64);
- exchange_rates.insert(Exchange::EUR("2024-07-05".to_string()), 4.2858f64);
- exchange_rates.insert(Exchange::USD("2017-12-01".to_string()), 3.5352f64);
- exchange_rates.insert(Exchange::USD("2025-10-03".to_string()), 3.6253f64);
- exchange_rates.insert(Exchange::USD("2020-07-08".to_string()), 3.9666f64);
- exchange_rates.insert(Exchange::USD("2012-08-01".to_string()), 3.342f64);
- exchange_rates.insert(Exchange::EUR("2024-01-10".to_string()), 4.3413f64);
- exchange_rates.insert(Exchange::EUR("2024-01-11".to_string()), 4.3505f64);
- exchange_rates.insert(Exchange::USD("2016-10-17".to_string()), 3.9265f64);
- exchange_rates.insert(Exchange::EUR("2025-03-19".to_string()), 4.1945f64);
- exchange_rates.insert(Exchange::USD("2014-06-18".to_string()), 3.0589f64);
- exchange_rates.insert(Exchange::USD("2024-09-13".to_string()), 3.8659f64);
- exchange_rates.insert(Exchange::USD("2022-02-01".to_string()), 4.0689f64);
- exchange_rates.insert(Exchange::USD("2012-03-27".to_string()), 3.0939f64);
- exchange_rates.insert(Exchange::USD("2019-12-12".to_string()), 3.8505f64);
- exchange_rates.insert(Exchange::USD("2015-05-15".to_string()), 3.5719f64);
- exchange_rates.insert(Exchange::EUR("2023-07-06".to_string()), 4.4754f64);
- exchange_rates.insert(Exchange::USD("2021-11-16".to_string()), 4.1061f64);
- exchange_rates.insert(Exchange::USD("2013-11-25".to_string()), 3.1019f64);
- exchange_rates.insert(Exchange::USD("2021-09-23".to_string()), 3.9256f64);
+ exchange_rates.insert(Exchange::EUR("2025-03-24".to_string()), dec!(4.1832));
+ exchange_rates.insert(Exchange::USD("2016-07-05".to_string()), dec!(3.9963));
+ exchange_rates.insert(Exchange::USD("2023-10-12".to_string()), dec!(4.2659));
+ exchange_rates.insert(Exchange::USD("2024-07-12".to_string()), dec!(3.9099));
+ exchange_rates.insert(Exchange::USD("2020-01-21".to_string()), dec!(3.8284));
+ exchange_rates.insert(Exchange::USD("2025-03-26".to_string()), dec!(3.8614));
+ exchange_rates.insert(Exchange::USD("2018-05-10".to_string()), dec!(3.5773));
+ exchange_rates.insert(Exchange::USD("2019-05-22".to_string()), dec!(3.862));
+ exchange_rates.insert(Exchange::USD("2024-11-15".to_string()), dec!(4.0898));
+ exchange_rates.insert(Exchange::EUR("2025-12-17".to_string()), dec!(4.2149));
+ exchange_rates.insert(Exchange::USD("2024-04-12".to_string()), dec!(3.9983));
+ exchange_rates.insert(Exchange::USD("2025-08-21".to_string()), dec!(3.6483));
+ exchange_rates.insert(Exchange::USD("2020-06-23".to_string()), dec!(3.9311));
+ exchange_rates.insert(Exchange::USD("2025-10-15".to_string()), dec!(3.6585));
+ exchange_rates.insert(Exchange::USD("2015-01-22".to_string()), dec!(3.6994));
+ exchange_rates.insert(Exchange::USD("2017-01-04".to_string()), dec!(4.2037));
+ exchange_rates.insert(Exchange::USD("2015-11-02".to_string()), dec!(3.859));
+ exchange_rates.insert(Exchange::USD("2023-09-14".to_string()), dec!(4.312));
+ exchange_rates.insert(Exchange::USD("2024-12-11".to_string()), dec!(4.0628));
+ exchange_rates.insert(Exchange::USD("2020-12-18".to_string()), dec!(3.6322));
+ exchange_rates.insert(Exchange::USD("2025-10-20".to_string()), dec!(3.6349));
+ exchange_rates.insert(Exchange::USD("2022-08-12".to_string()), dec!(4.5459));
+ exchange_rates.insert(Exchange::USD("2019-11-21".to_string()), dec!(3.8737));
+ exchange_rates.insert(Exchange::USD("2016-04-15".to_string()), dec!(3.8176));
+ exchange_rates.insert(Exchange::USD("2015-03-13".to_string()), dec!(3.9141));
+ exchange_rates.insert(Exchange::EUR("2023-04-05".to_string()), dec!(4.6803));
+ exchange_rates.insert(Exchange::USD("2021-07-28".to_string()), dec!(3.8849));
+ exchange_rates.insert(Exchange::EUR("2023-12-11".to_string()), dec!(4.3366));
+ exchange_rates.insert(Exchange::USD("2012-07-02".to_string()), dec!(3.3456));
+ exchange_rates.insert(Exchange::USD("2021-12-15".to_string()), dec!(4.0999));
+ exchange_rates.insert(Exchange::USD("2015-03-02".to_string()), dec!(3.7053));
+ exchange_rates.insert(Exchange::USD("2020-08-07".to_string()), dec!(3.7302));
+ exchange_rates.insert(Exchange::USD("2013-07-25".to_string()), dec!(3.2143));
+ exchange_rates.insert(Exchange::USD("2021-07-14".to_string()), dec!(3.8955));
+ exchange_rates.insert(Exchange::USD("2020-08-31".to_string()), dec!(3.6924));
+ exchange_rates.insert(Exchange::USD("2012-05-17".to_string()), dec!(3.4194));
+ exchange_rates.insert(Exchange::USD("2012-06-21".to_string()), dec!(3.3617));
+ exchange_rates.insert(Exchange::EUR("2023-11-20".to_string()), dec!(4.368));
+ exchange_rates.insert(Exchange::USD("2025-04-25".to_string()), dec!(3.7611));
+ exchange_rates.insert(Exchange::EUR("2024-03-22".to_string()), dec!(4.3186));
+ exchange_rates.insert(Exchange::USD("2024-02-19".to_string()), dec!(4.0269));
+ exchange_rates.insert(Exchange::USD("2018-06-06".to_string()), dec!(3.647));
+ exchange_rates.insert(Exchange::USD("2021-09-15".to_string()), dec!(3.8475));
+ exchange_rates.insert(Exchange::USD("2019-10-04".to_string()), dec!(3.9469));
+ exchange_rates.insert(Exchange::EUR("2025-04-16".to_string()), dec!(4.3033));
+ exchange_rates.insert(Exchange::USD("2024-08-05".to_string()), dec!(3.9331));
+ exchange_rates.insert(Exchange::USD("2019-02-11".to_string()), dec!(3.819));
+ exchange_rates.insert(Exchange::USD("2019-02-01".to_string()), dec!(3.7243));
+ exchange_rates.insert(Exchange::USD("2014-10-30".to_string()), dec!(3.3592));
+ exchange_rates.insert(Exchange::USD("2016-05-16".to_string()), dec!(3.8625));
+ exchange_rates.insert(Exchange::USD("2016-06-28".to_string()), dec!(4.003));
+ exchange_rates.insert(Exchange::EUR("2025-08-25".to_string()), dec!(4.2627));
+ exchange_rates.insert(Exchange::USD("2023-01-11".to_string()), dec!(4.3639));
+ exchange_rates.insert(Exchange::USD("2016-01-07".to_string()), dec!(4.0085));
+ exchange_rates.insert(Exchange::USD("2020-01-13".to_string()), dec!(3.8101));
+ exchange_rates.insert(Exchange::EUR("2025-05-15".to_string()), dec!(4.2378));
+ exchange_rates.insert(Exchange::EUR("2024-04-11".to_string()), dec!(4.2649));
+ exchange_rates.insert(Exchange::USD("2015-04-21".to_string()), dec!(3.7275));
+ exchange_rates.insert(Exchange::USD("2023-05-09".to_string()), dec!(4.1609));
+ exchange_rates.insert(Exchange::EUR("2023-04-19".to_string()), dec!(4.6278));
+ exchange_rates.insert(Exchange::USD("2025-03-24".to_string()), dec!(3.859));
+ exchange_rates.insert(Exchange::USD("2018-10-23".to_string()), dec!(3.7485));
+ exchange_rates.insert(Exchange::USD("2015-04-08".to_string()), dec!(3.7135));
+ exchange_rates.insert(Exchange::USD("2023-03-15".to_string()), dec!(4.403));
+ exchange_rates.insert(Exchange::USD("2019-07-03".to_string()), dec!(3.7596));
+ exchange_rates.insert(Exchange::USD("2014-04-29".to_string()), dec!(3.0318));
+ exchange_rates.insert(Exchange::USD("2015-07-23".to_string()), dec!(3.7559));
+ exchange_rates.insert(Exchange::USD("2024-06-27".to_string()), dec!(4.0312));
+ exchange_rates.insert(Exchange::USD("2012-05-28".to_string()), dec!(3.4535));
+ exchange_rates.insert(Exchange::EUR("2025-04-24".to_string()), dec!(4.2789));
+ exchange_rates.insert(Exchange::USD("2019-04-15".to_string()), dec!(3.7789));
+ exchange_rates.insert(Exchange::USD("2023-03-03".to_string()), dec!(4.4341));
+ exchange_rates.insert(Exchange::USD("2017-02-06".to_string()), dec!(3.9892));
+ exchange_rates.insert(Exchange::USD("2018-06-14".to_string()), dec!(3.6155));
+ exchange_rates.insert(Exchange::USD("2013-06-26".to_string()), dec!(3.3239));
+ exchange_rates.insert(Exchange::EUR("2023-01-10".to_string()), dec!(4.6981));
+ exchange_rates.insert(Exchange::USD("2024-08-13".to_string()), dec!(3.9314));
+ exchange_rates.insert(Exchange::USD("2017-12-15".to_string()), dec!(3.5786));
+ exchange_rates.insert(Exchange::USD("2014-05-23".to_string()), dec!(3.049));
+ exchange_rates.insert(Exchange::USD("2023-10-09".to_string()), dec!(4.3439));
+ exchange_rates.insert(Exchange::USD("2020-06-26".to_string()), dec!(3.9697));
+ exchange_rates.insert(Exchange::USD("2019-07-29".to_string()), dec!(3.8453));
+ exchange_rates.insert(Exchange::USD("2022-05-24".to_string()), dec!(4.3071));
+ exchange_rates.insert(Exchange::EUR("2024-09-02".to_string()), dec!(4.2812));
+ exchange_rates.insert(Exchange::EUR("2025-07-03".to_string()), dec!(4.2634));
+ exchange_rates.insert(Exchange::USD("2020-12-08".to_string()), dec!(3.6914));
+ exchange_rates.insert(Exchange::USD("2018-02-08".to_string()), dec!(3.4119));
+ exchange_rates.insert(Exchange::USD("2014-08-13".to_string()), dec!(3.1442));
+ exchange_rates.insert(Exchange::EUR("2025-06-09".to_string()), dec!(4.2772));
+ exchange_rates.insert(Exchange::USD("2025-09-24".to_string()), dec!(3.6254));
+ exchange_rates.insert(Exchange::USD("2014-04-16".to_string()), dec!(3.0272));
+ exchange_rates.insert(Exchange::USD("2012-10-29".to_string()), dec!(3.2145));
+ exchange_rates.insert(Exchange::EUR("2023-09-28".to_string()), dec!(4.634));
+ exchange_rates.insert(Exchange::USD("2022-10-31".to_string()), dec!(4.734));
+ exchange_rates.insert(Exchange::USD("2012-01-31".to_string()), dec!(3.2032));
+ exchange_rates.insert(Exchange::USD("2015-08-21".to_string()), dec!(3.7308));
+ exchange_rates.insert(Exchange::USD("2018-07-02".to_string()), dec!(3.7703));
+ exchange_rates.insert(Exchange::USD("2015-11-10".to_string()), dec!(3.957));
+ exchange_rates.insert(Exchange::USD("2019-05-14".to_string()), dec!(3.8323));
+ exchange_rates.insert(Exchange::USD("2014-11-06".to_string()), dec!(3.3769));
+ exchange_rates.insert(Exchange::EUR("2024-12-06".to_string()), dec!(4.2669));
+ exchange_rates.insert(Exchange::USD("2016-10-12".to_string()), dec!(3.8851));
+ exchange_rates.insert(Exchange::USD("2013-12-30".to_string()), dec!(3.018));
+ exchange_rates.insert(Exchange::USD("2022-02-04".to_string()), dec!(3.9657));
+ exchange_rates.insert(Exchange::USD("2025-10-01".to_string()), dec!(3.6245));
+ exchange_rates.insert(Exchange::EUR("2024-01-17".to_string()), dec!(4.3978));
+ exchange_rates.insert(Exchange::USD("2021-01-15".to_string()), dec!(3.7466));
+ exchange_rates.insert(Exchange::USD("2014-02-27".to_string()), dec!(3.0655));
+ exchange_rates.insert(Exchange::USD("2019-03-04".to_string()), dec!(3.7893));
+ exchange_rates.insert(Exchange::USD("2020-05-18".to_string()), dec!(4.2224));
+ exchange_rates.insert(Exchange::USD("2015-03-06".to_string()), dec!(3.7649));
+ exchange_rates.insert(Exchange::USD("2023-12-28".to_string()), dec!(3.899));
+ exchange_rates.insert(Exchange::USD("2023-05-26".to_string()), dec!(4.2156));
+ exchange_rates.insert(Exchange::USD("2012-05-22".to_string()), dec!(3.3811));
+ exchange_rates.insert(Exchange::EUR("2023-03-27".to_string()), dec!(4.6856));
+ exchange_rates.insert(Exchange::EUR("2025-10-10".to_string()), dec!(4.2583));
+ exchange_rates.insert(Exchange::EUR("2024-05-17".to_string()), dec!(4.2685));
+ exchange_rates.insert(Exchange::EUR("2023-11-15".to_string()), dec!(4.39));
+ exchange_rates.insert(Exchange::USD("2025-11-21".to_string()), dec!(3.6868));
+ exchange_rates.insert(Exchange::USD("2017-08-24".to_string()), dec!(3.6329));
+ exchange_rates.insert(Exchange::USD("2025-12-12".to_string()), dec!(3.6027));
+ exchange_rates.insert(Exchange::USD("2013-03-19".to_string()), dec!(3.2055));
+ exchange_rates.insert(Exchange::EUR("2025-06-06".to_string()), dec!(4.2881));
+ exchange_rates.insert(Exchange::USD("2024-02-08".to_string()), dec!(4.0292));
+ exchange_rates.insert(Exchange::USD("2024-09-17".to_string()), dec!(3.8354));
+ exchange_rates.insert(Exchange::EUR("2025-11-18".to_string()), dec!(4.2331));
+ exchange_rates.insert(Exchange::EUR("2024-05-20".to_string()), dec!(4.2575));
+ exchange_rates.insert(Exchange::EUR("2024-09-12".to_string()), dec!(4.2986));
+ exchange_rates.insert(Exchange::USD("2018-06-15".to_string()), dec!(3.6922));
+ exchange_rates.insert(Exchange::USD("2013-11-26".to_string()), dec!(3.0945));
+ exchange_rates.insert(Exchange::EUR("2025-07-16".to_string()), dec!(4.2585));
+ exchange_rates.insert(Exchange::USD("2018-07-18".to_string()), dec!(3.7031));
+ exchange_rates.insert(Exchange::USD("2014-02-10".to_string()), dec!(3.0683));
+ exchange_rates.insert(Exchange::EUR("2024-01-26".to_string()), dec!(4.3802));
+ exchange_rates.insert(Exchange::USD("2022-06-27".to_string()), dec!(4.4369));
+ exchange_rates.insert(Exchange::USD("2024-02-27".to_string()), dec!(3.9682));
+ exchange_rates.insert(Exchange::USD("2023-08-11".to_string()), dec!(4.0501));
+ exchange_rates.insert(Exchange::USD("2016-10-19".to_string()), dec!(3.9285));
+ exchange_rates.insert(Exchange::USD("2018-01-08".to_string()), dec!(3.4735));
+ exchange_rates.insert(Exchange::EUR("2024-06-03".to_string()), dec!(4.2817));
+ exchange_rates.insert(Exchange::USD("2022-09-26".to_string()), dec!(4.9113));
+ exchange_rates.insert(Exchange::USD("2020-06-17".to_string()), dec!(3.9532));
+ exchange_rates.insert(Exchange::USD("2014-07-11".to_string()), dec!(3.0426));
+ exchange_rates.insert(Exchange::USD("2012-03-19".to_string()), dec!(3.1361));
+ exchange_rates.insert(Exchange::USD("2019-06-11".to_string()), dec!(3.7722));
+ exchange_rates.insert(Exchange::USD("2024-03-26".to_string()), dec!(3.9704));
+ exchange_rates.insert(Exchange::USD("2024-01-09".to_string()), dec!(3.9612));
+ exchange_rates.insert(Exchange::USD("2015-04-15".to_string()), dec!(3.7875));
+ exchange_rates.insert(Exchange::USD("2013-02-04".to_string()), dec!(3.0563));
+ exchange_rates.insert(Exchange::USD("2023-04-14".to_string()), dec!(4.2042));
+ exchange_rates.insert(Exchange::USD("2015-08-13".to_string()), dec!(3.7625));
+ exchange_rates.insert(Exchange::EUR("2023-05-25".to_string()), dec!(4.503));
+ exchange_rates.insert(Exchange::USD("2023-02-07".to_string()), dec!(4.4325));
+ exchange_rates.insert(Exchange::USD("2013-12-16".to_string()), dec!(3.035));
+ exchange_rates.insert(Exchange::USD("2022-09-23".to_string()), dec!(4.8796));
+ exchange_rates.insert(Exchange::EUR("2023-07-19".to_string()), dec!(4.4492));
+ exchange_rates.insert(Exchange::USD("2017-07-26".to_string()), dec!(3.6661));
+ exchange_rates.insert(Exchange::USD("2015-12-18".to_string()), dec!(3.9558));
+ exchange_rates.insert(Exchange::EUR("2023-08-08".to_string()), dec!(4.4375));
+ exchange_rates.insert(Exchange::USD("2025-02-13".to_string()), dec!(3.996));
+ exchange_rates.insert(Exchange::USD("2021-06-28".to_string()), dec!(3.7762));
+ exchange_rates.insert(Exchange::EUR("2024-01-18".to_string()), dec!(4.4016));
+ exchange_rates.insert(Exchange::USD("2015-10-06".to_string()), dec!(3.789));
+ exchange_rates.insert(Exchange::USD("2013-01-15".to_string()), dec!(3.075));
+ exchange_rates.insert(Exchange::USD("2020-08-14".to_string()), dec!(3.7227));
+ exchange_rates.insert(Exchange::USD("2021-02-09".to_string()), dec!(3.6972));
+ exchange_rates.insert(Exchange::USD("2019-07-26".to_string()), dec!(3.8296));
+ exchange_rates.insert(Exchange::USD("2020-11-23".to_string()), dec!(3.7616));
+ exchange_rates.insert(Exchange::USD("2015-03-26".to_string()), dec!(3.705));
+ exchange_rates.insert(Exchange::USD("2012-11-05".to_string()), dec!(3.2211));
+ exchange_rates.insert(Exchange::EUR("2025-10-06".to_string()), dec!(4.2521));
+ exchange_rates.insert(Exchange::USD("2021-06-14".to_string()), dec!(3.7185));
+ exchange_rates.insert(Exchange::USD("2017-10-23".to_string()), dec!(3.6061));
+ exchange_rates.insert(Exchange::USD("2017-10-27".to_string()), dec!(3.6568));
+ exchange_rates.insert(Exchange::EUR("2024-03-15".to_string()), dec!(4.2929));
+ exchange_rates.insert(Exchange::USD("2015-06-29".to_string()), dec!(3.7671));
+ exchange_rates.insert(Exchange::EUR("2025-10-30".to_string()), dec!(4.2425));
+ exchange_rates.insert(Exchange::USD("2018-09-13".to_string()), dec!(3.713));
+ exchange_rates.insert(Exchange::EUR("2025-09-25".to_string()), dec!(4.2619));
+ exchange_rates.insert(Exchange::EUR("2024-07-12".to_string()), dec!(4.2567));
+ exchange_rates.insert(Exchange::USD("2018-08-30".to_string()), dec!(3.6724));
+ exchange_rates.insert(Exchange::USD("2018-03-27".to_string()), dec!(3.3921));
+ exchange_rates.insert(Exchange::USD("2021-04-21".to_string()), dec!(3.795));
+ exchange_rates.insert(Exchange::USD("2016-04-26".to_string()), dec!(3.8935));
+ exchange_rates.insert(Exchange::USD("2024-10-21".to_string()), dec!(3.9775));
+ exchange_rates.insert(Exchange::USD("2014-06-24".to_string()), dec!(3.0526));
+ exchange_rates.insert(Exchange::USD("2013-08-30".to_string()), dec!(3.2209));
+ exchange_rates.insert(Exchange::EUR("2024-08-13".to_string()), dec!(4.2945));
+ exchange_rates.insert(Exchange::EUR("2023-02-01".to_string()), dec!(4.708));
+ exchange_rates.insert(Exchange::EUR("2024-01-29".to_string()), dec!(4.3653));
+ exchange_rates.insert(Exchange::EUR("2023-09-27".to_string()), dec!(4.6065));
+ exchange_rates.insert(Exchange::USD("2022-10-13".to_string()), dec!(4.9905));
+ exchange_rates.insert(Exchange::EUR("2025-01-29".to_string()), dec!(4.2077));
+ exchange_rates.insert(Exchange::EUR("2023-07-21".to_string()), dec!(4.4501));
+ exchange_rates.insert(Exchange::EUR("2025-09-26".to_string()), dec!(4.2668));
+ exchange_rates.insert(Exchange::USD("2018-04-16".to_string()), dec!(3.3666));
+ exchange_rates.insert(Exchange::USD("2014-12-04".to_string()), dec!(3.3728));
+ exchange_rates.insert(Exchange::USD("2025-01-23".to_string()), dec!(4.0515));
+ exchange_rates.insert(Exchange::USD("2024-08-12".to_string()), dec!(3.9488));
+ exchange_rates.insert(Exchange::USD("2023-01-31".to_string()), dec!(4.348));
+ exchange_rates.insert(Exchange::USD("2019-04-25".to_string()), dec!(3.8537));
+ exchange_rates.insert(Exchange::USD("2014-07-25".to_string()), dec!(3.0831));
+ exchange_rates.insert(Exchange::USD("2014-08-20".to_string()), dec!(3.147));
+ exchange_rates.insert(Exchange::USD("2025-06-27".to_string()), dec!(3.6177));
+ exchange_rates.insert(Exchange::USD("2012-10-23".to_string()), dec!(3.1662));
+ exchange_rates.insert(Exchange::EUR("2023-07-11".to_string()), dec!(4.4426));
+ exchange_rates.insert(Exchange::USD("2014-07-29".to_string()), dec!(3.09));
+ exchange_rates.insert(Exchange::USD("2015-01-15".to_string()), dec!(3.6588));
+ exchange_rates.insert(Exchange::USD("2019-05-16".to_string()), dec!(3.8259));
+ exchange_rates.insert(Exchange::USD("2021-03-05".to_string()), dec!(3.8393));
+ exchange_rates.insert(Exchange::USD("2013-12-04".to_string()), dec!(3.0916));
+ exchange_rates.insert(Exchange::USD("2021-02-11".to_string()), dec!(3.7117));
+ exchange_rates.insert(Exchange::USD("2025-10-24".to_string()), dec!(3.6481));
+ exchange_rates.insert(Exchange::USD("2020-10-20".to_string()), dec!(3.8926));
+ exchange_rates.insert(Exchange::USD("2013-08-28".to_string()), dec!(3.184));
+ exchange_rates.insert(Exchange::USD("2021-11-22".to_string()), dec!(4.1855));
+ exchange_rates.insert(Exchange::USD("2012-06-13".to_string()), dec!(3.4591));
+ exchange_rates.insert(Exchange::USD("2025-01-07".to_string()), dec!(4.077));
+ exchange_rates.insert(Exchange::USD("2014-01-13".to_string()), dec!(3.045));
+ exchange_rates.insert(Exchange::USD("2025-12-23".to_string()), dec!(3.5848));
+ exchange_rates.insert(Exchange::USD("2014-07-18".to_string()), dec!(3.0652));
+ exchange_rates.insert(Exchange::EUR("2024-02-27".to_string()), dec!(4.3067));
+ exchange_rates.insert(Exchange::USD("2019-11-15".to_string()), dec!(3.8848));
+ exchange_rates.insert(Exchange::USD("2019-03-29".to_string()), dec!(3.8365));
+ exchange_rates.insert(Exchange::USD("2021-09-01".to_string()), dec!(3.8238));
+ exchange_rates.insert(Exchange::USD("2014-05-27".to_string()), dec!(3.0532));
+ exchange_rates.insert(Exchange::USD("2014-06-02".to_string()), dec!(3.0413));
+ exchange_rates.insert(Exchange::USD("2012-07-26".to_string()), dec!(3.4523));
+ exchange_rates.insert(Exchange::USD("2016-09-20".to_string()), dec!(3.8438));
+ exchange_rates.insert(Exchange::EUR("2023-11-21".to_string()), dec!(4.3647));
+ exchange_rates.insert(Exchange::USD("2017-03-29".to_string()), dec!(3.9265));
+ exchange_rates.insert(Exchange::EUR("2025-06-24".to_string()), dec!(4.2604));
+ exchange_rates.insert(Exchange::USD("2020-02-17".to_string()), dec!(3.9189));
+ exchange_rates.insert(Exchange::USD("2023-07-06".to_string()), dec!(4.1191));
+ exchange_rates.insert(Exchange::USD("2016-09-14".to_string()), dec!(3.8716));
+ exchange_rates.insert(Exchange::USD("2023-02-20".to_string()), dec!(4.4515));
+ exchange_rates.insert(Exchange::USD("2017-03-30".to_string()), dec!(3.9402));
+ exchange_rates.insert(Exchange::USD("2020-09-18".to_string()), dec!(3.7585));
+ exchange_rates.insert(Exchange::USD("2024-05-23".to_string()), dec!(3.9394));
+ exchange_rates.insert(Exchange::USD("2021-08-04".to_string()), dec!(3.8366));
+ exchange_rates.insert(Exchange::EUR("2023-08-01".to_string()), dec!(4.419));
+ exchange_rates.insert(Exchange::EUR("2023-07-18".to_string()), dec!(4.4331));
+ exchange_rates.insert(Exchange::USD("2016-11-03".to_string()), dec!(3.8965));
+ exchange_rates.insert(Exchange::USD("2015-04-27".to_string()), dec!(3.7115));
+ exchange_rates.insert(Exchange::USD("2012-04-23".to_string()), dec!(3.1972));
+ exchange_rates.insert(Exchange::USD("2022-12-06".to_string()), dec!(4.4787));
+ exchange_rates.insert(Exchange::USD("2012-06-06".to_string()), dec!(3.4703));
+ exchange_rates.insert(Exchange::USD("2015-09-09".to_string()), dec!(3.7634));
+ exchange_rates.insert(Exchange::USD("2013-04-29".to_string()), dec!(3.1712));
+ exchange_rates.insert(Exchange::USD("2021-06-21".to_string()), dec!(3.8214));
+ exchange_rates.insert(Exchange::USD("2012-03-16".to_string()), dec!(3.1688));
+ exchange_rates.insert(Exchange::USD("2023-06-05".to_string()), dec!(4.1933));
+ exchange_rates.insert(Exchange::EUR("2025-11-03".to_string()), dec!(4.2527));
+ exchange_rates.insert(Exchange::USD("2021-08-20".to_string()), dec!(3.9301));
+ exchange_rates.insert(Exchange::EUR("2025-11-21".to_string()), dec!(4.2489));
+ exchange_rates.insert(Exchange::USD("2016-10-03".to_string()), dec!(3.8252));
+ exchange_rates.insert(Exchange::USD("2022-07-05".to_string()), dec!(4.5947));
+ exchange_rates.insert(Exchange::USD("2013-04-08".to_string()), dec!(3.1893));
+ exchange_rates.insert(Exchange::USD("2022-05-10".to_string()), dec!(4.4223));
+ exchange_rates.insert(Exchange::USD("2016-12-12".to_string()), dec!(4.209));
+ exchange_rates.insert(Exchange::USD("2014-03-11".to_string()), dec!(3.0449));
+ exchange_rates.insert(Exchange::USD("2019-10-23".to_string()), dec!(3.8473));
+ exchange_rates.insert(Exchange::USD("2025-09-03".to_string()), dec!(3.6538));
+ exchange_rates.insert(Exchange::USD("2021-12-02".to_string()), dec!(4.0625));
+ exchange_rates.insert(Exchange::USD("2019-05-10".to_string()), dec!(3.8242));
+ exchange_rates.insert(Exchange::USD("2023-06-20".to_string()), dec!(4.058));
+ exchange_rates.insert(Exchange::USD("2021-06-16".to_string()), dec!(3.7336));
+ exchange_rates.insert(Exchange::USD("2018-02-07".to_string()), dec!(3.3677));
+ exchange_rates.insert(Exchange::EUR("2025-10-13".to_string()), dec!(4.2592));
+ exchange_rates.insert(Exchange::USD("2014-10-10".to_string()), dec!(3.2985));
+ exchange_rates.insert(Exchange::USD("2024-02-15".to_string()), dec!(4.0495));
+ exchange_rates.insert(Exchange::EUR("2023-09-13".to_string()), dec!(4.6402));
+ exchange_rates.insert(Exchange::USD("2022-03-22".to_string()), dec!(4.272));
+ exchange_rates.insert(Exchange::EUR("2025-10-15".to_string()), dec!(4.2556));
+ exchange_rates.insert(Exchange::EUR("2025-11-13".to_string()), dec!(4.2304));
+ exchange_rates.insert(Exchange::USD("2019-08-09".to_string()), dec!(3.8613));
+ exchange_rates.insert(Exchange::USD("2014-02-25".to_string()), dec!(3.0264));
+ exchange_rates.insert(Exchange::USD("2022-05-18".to_string()), dec!(4.4279));
+ exchange_rates.insert(Exchange::USD("2022-06-24".to_string()), dec!(4.4656));
+ exchange_rates.insert(Exchange::EUR("2024-02-20".to_string()), dec!(4.3186));
+ exchange_rates.insert(Exchange::EUR("2025-01-15".to_string()), dec!(4.2611));
+ exchange_rates.insert(Exchange::USD("2021-09-06".to_string()), dec!(3.8041));
+ exchange_rates.insert(Exchange::USD("2022-12-29".to_string()), dec!(4.4078));
+ exchange_rates.insert(Exchange::USD("2017-09-20".to_string()), dec!(3.5619));
+ exchange_rates.insert(Exchange::USD("2014-01-08".to_string()), dec!(3.0717));
+ exchange_rates.insert(Exchange::USD("2024-09-16".to_string()), dec!(3.8438));
+ exchange_rates.insert(Exchange::USD("2012-02-21".to_string()), dec!(3.1488));
+ exchange_rates.insert(Exchange::USD("2016-07-20".to_string()), dec!(3.979));
+ exchange_rates.insert(Exchange::USD("2016-08-30".to_string()), dec!(3.8858));
+ exchange_rates.insert(Exchange::USD("2012-07-27".to_string()), dec!(3.3843));
+ exchange_rates.insert(Exchange::USD("2017-10-05".to_string()), dec!(3.6502));
+ exchange_rates.insert(Exchange::EUR("2025-08-05".to_string()), dec!(4.2763));
+ exchange_rates.insert(Exchange::USD("2024-12-10".to_string()), dec!(4.0518));
+ exchange_rates.insert(Exchange::EUR("2024-01-23".to_string()), dec!(4.3697));
+ exchange_rates.insert(Exchange::USD("2017-08-10".to_string()), dec!(3.6432));
+ exchange_rates.insert(Exchange::USD("2023-10-20".to_string()), dec!(4.2194));
+ exchange_rates.insert(Exchange::USD("2012-07-09".to_string()), dec!(3.4538));
+ exchange_rates.insert(Exchange::EUR("2023-04-04".to_string()), dec!(4.6785));
+ exchange_rates.insert(Exchange::USD("2021-07-30".to_string()), dec!(3.841));
+ exchange_rates.insert(Exchange::USD("2018-02-05".to_string()), dec!(3.3375));
+ exchange_rates.insert(Exchange::USD("2016-12-28".to_string()), dec!(4.226));
+ exchange_rates.insert(Exchange::USD("2014-06-20".to_string()), dec!(3.0495));
+ exchange_rates.insert(Exchange::USD("2020-09-24".to_string()), dec!(3.8833));
+ exchange_rates.insert(Exchange::USD("2022-05-26".to_string()), dec!(4.3189));
+ exchange_rates.insert(Exchange::EUR("2023-07-12".to_string()), dec!(4.4471));
+ exchange_rates.insert(Exchange::USD("2019-10-24".to_string()), dec!(3.8448));
+ exchange_rates.insert(Exchange::USD("2015-09-29".to_string()), dec!(3.7799));
+ exchange_rates.insert(Exchange::USD("2022-08-24".to_string()), dec!(4.8029));
+ exchange_rates.insert(Exchange::USD("2012-10-31".to_string()), dec!(3.1806));
+ exchange_rates.insert(Exchange::USD("2013-08-13".to_string()), dec!(3.1489));
+ exchange_rates.insert(Exchange::USD("2021-02-08".to_string()), dec!(3.7301));
+ exchange_rates.insert(Exchange::USD("2022-07-13".to_string()), dec!(4.8221));
+ exchange_rates.insert(Exchange::USD("2023-03-20".to_string()), dec!(4.413));
+ exchange_rates.insert(Exchange::USD("2013-08-21".to_string()), dec!(3.1698));
+ exchange_rates.insert(Exchange::USD("2024-08-09".to_string()), dec!(3.9604));
+ exchange_rates.insert(Exchange::USD("2012-05-15".to_string()), dec!(3.3579));
+ exchange_rates.insert(Exchange::USD("2019-12-18".to_string()), dec!(3.8302));
+ exchange_rates.insert(Exchange::USD("2025-09-02".to_string()), dec!(3.6626));
+ exchange_rates.insert(Exchange::USD("2021-06-10".to_string()), dec!(3.6821));
+ exchange_rates.insert(Exchange::USD("2021-11-29".to_string()), dec!(4.1627));
+ exchange_rates.insert(Exchange::USD("2024-09-09".to_string()), dec!(3.8758));
+ exchange_rates.insert(Exchange::EUR("2023-06-19".to_string()), dec!(4.4457));
+ exchange_rates.insert(Exchange::USD("2020-11-30".to_string()), dec!(3.7364));
+ exchange_rates.insert(Exchange::USD("2021-01-08".to_string()), dec!(3.6919));
+ exchange_rates.insert(Exchange::USD("2013-03-04".to_string()), dec!(3.1837));
+ exchange_rates.insert(Exchange::USD("2012-12-07".to_string()), dec!(3.193));
+ exchange_rates.insert(Exchange::USD("2023-06-02".to_string()), dec!(4.1903));
+ exchange_rates.insert(Exchange::USD("2022-04-25".to_string()), dec!(4.3188));
+ exchange_rates.insert(Exchange::USD("2013-10-17".to_string()), dec!(3.0625));
+ exchange_rates.insert(Exchange::EUR("2024-01-30".to_string()), dec!(4.3634));
+ exchange_rates.insert(Exchange::USD("2025-04-11".to_string()), dec!(3.7606));
+ exchange_rates.insert(Exchange::USD("2024-06-24".to_string()), dec!(4.0319));
+ exchange_rates.insert(Exchange::USD("2017-03-15".to_string()), dec!(4.0646));
+ exchange_rates.insert(Exchange::USD("2014-07-28".to_string()), dec!(3.086));
+ exchange_rates.insert(Exchange::USD("2013-07-19".to_string()), dec!(3.2348));
+ exchange_rates.insert(Exchange::USD("2020-02-24".to_string()), dec!(3.9772));
+ exchange_rates.insert(Exchange::USD("2016-05-31".to_string()), dec!(3.9369));
+ exchange_rates.insert(Exchange::EUR("2024-12-10".to_string()), dec!(4.2672));
+ exchange_rates.insert(Exchange::USD("2016-09-23".to_string()), dec!(3.8328));
+ exchange_rates.insert(Exchange::USD("2021-08-02".to_string()), dec!(3.8377));
+ exchange_rates.insert(Exchange::EUR("2025-04-09".to_string()), dec!(4.2818));
+ exchange_rates.insert(Exchange::USD("2022-04-11".to_string()), dec!(4.2586));
+ exchange_rates.insert(Exchange::USD("2021-12-16".to_string()), dec!(4.0938));
+ exchange_rates.insert(Exchange::USD("2022-04-06".to_string()), dec!(4.2606));
+ exchange_rates.insert(Exchange::USD("2013-08-05".to_string()), dec!(3.1771));
+ exchange_rates.insert(Exchange::USD("2015-05-25".to_string()), dec!(3.75));
+ exchange_rates.insert(Exchange::USD("2015-04-24".to_string()), dec!(3.6895));
+ exchange_rates.insert(Exchange::EUR("2024-11-21".to_string()), dec!(4.3469));
+ exchange_rates.insert(Exchange::USD("2023-04-18".to_string()), dec!(4.2151));
+ exchange_rates.insert(Exchange::EUR("2024-08-06".to_string()), dec!(4.313));
+ exchange_rates.insert(Exchange::USD("2022-01-20".to_string()), dec!(3.9833));
+ exchange_rates.insert(Exchange::USD("2022-04-15".to_string()), dec!(4.2865));
+ exchange_rates.insert(Exchange::USD("2018-06-05".to_string()), dec!(3.6569));
+ exchange_rates.insert(Exchange::USD("2015-05-13".to_string()), dec!(3.63));
+ exchange_rates.insert(Exchange::USD("2017-03-01".to_string()), dec!(4.0756));
+ exchange_rates.insert(Exchange::USD("2016-02-03".to_string()), dec!(4.0325));
+ exchange_rates.insert(Exchange::EUR("2023-02-09".to_string()), dec!(4.7363));
+ exchange_rates.insert(Exchange::USD("2019-01-21".to_string()), dec!(3.7751));
+ exchange_rates.insert(Exchange::USD("2012-05-04".to_string()), dec!(3.1891));
+ exchange_rates.insert(Exchange::EUR("2025-12-02".to_string()), dec!(4.239));
+ exchange_rates.insert(Exchange::USD("2021-07-08".to_string()), dec!(3.8408));
+ exchange_rates.insert(Exchange::USD("2013-08-08".to_string()), dec!(3.1503));
+ exchange_rates.insert(Exchange::USD("2019-01-24".to_string()), dec!(3.7844));
+ exchange_rates.insert(Exchange::USD("2013-04-24".to_string()), dec!(3.1823));
+ exchange_rates.insert(Exchange::USD("2018-12-21".to_string()), dec!(3.7528));
+ exchange_rates.insert(Exchange::EUR("2023-02-22".to_string()), dec!(4.7538));
+ exchange_rates.insert(Exchange::USD("2012-09-20".to_string()), dec!(3.2092));
+ exchange_rates.insert(Exchange::USD("2013-02-21".to_string()), dec!(3.1633));
+ exchange_rates.insert(Exchange::USD("2014-04-10".to_string()), dec!(3.0092));
+ exchange_rates.insert(Exchange::USD("2012-05-07".to_string()), dec!(3.2279));
+ exchange_rates.insert(Exchange::USD("2012-09-11".to_string()), dec!(3.2098));
+ exchange_rates.insert(Exchange::USD("2018-10-01".to_string()), dec!(3.6867));
+ exchange_rates.insert(Exchange::USD("2017-12-06".to_string()), dec!(3.5653));
+ exchange_rates.insert(Exchange::USD("2023-11-13".to_string()), dec!(4.1474));
+ exchange_rates.insert(Exchange::USD("2024-01-16".to_string()), dec!(4.0358));
+ exchange_rates.insert(Exchange::USD("2013-01-31".to_string()), dec!(3.0874));
+ exchange_rates.insert(Exchange::USD("2015-12-07".to_string()), dec!(3.9853));
+ exchange_rates.insert(Exchange::USD("2020-11-09".to_string()), dec!(3.7787));
+ exchange_rates.insert(Exchange::USD("2017-11-13".to_string()), dec!(3.6382));
+ exchange_rates.insert(Exchange::USD("2013-04-09".to_string()), dec!(3.1696));
+ exchange_rates.insert(Exchange::USD("2016-02-25".to_string()), dec!(3.9705));
+ exchange_rates.insert(Exchange::USD("2018-09-14".to_string()), dec!(3.6817));
+ exchange_rates.insert(Exchange::USD("2013-12-19".to_string()), dec!(3.049));
+ exchange_rates.insert(Exchange::USD("2018-01-03".to_string()), dec!(3.4616));
+ exchange_rates.insert(Exchange::USD("2023-01-25".to_string()), dec!(4.3265));
+ exchange_rates.insert(Exchange::USD("2021-09-14".to_string()), dec!(3.8542));
+ exchange_rates.insert(Exchange::USD("2024-09-06".to_string()), dec!(3.8489));
+ exchange_rates.insert(Exchange::USD("2014-03-20".to_string()), dec!(3.05));
+ exchange_rates.insert(Exchange::USD("2022-01-24".to_string()), dec!(4.0049));
+ exchange_rates.insert(Exchange::USD("2017-10-20".to_string()), dec!(3.5966));
+ exchange_rates.insert(Exchange::USD("2013-03-26".to_string()), dec!(3.2427));
+ exchange_rates.insert(Exchange::USD("2025-02-05".to_string()), dec!(4.0426));
+ exchange_rates.insert(Exchange::USD("2018-11-30".to_string()), dec!(3.7731));
+ exchange_rates.insert(Exchange::USD("2025-04-23".to_string()), dec!(3.7583));
+ exchange_rates.insert(Exchange::USD("2024-05-10".to_string()), dec!(3.9866));
+ exchange_rates.insert(Exchange::USD("2016-05-05".to_string()), dec!(3.8475));
+ exchange_rates.insert(Exchange::USD("2024-05-06".to_string()), dec!(4.0202));
+ exchange_rates.insert(Exchange::EUR("2025-11-07".to_string()), dec!(4.2483));
+ exchange_rates.insert(Exchange::USD("2013-04-23".to_string()), dec!(3.1811));
+ exchange_rates.insert(Exchange::USD("2018-02-23".to_string()), dec!(3.3911));
+ exchange_rates.insert(Exchange::USD("2024-06-18".to_string()), dec!(4.0549));
+ exchange_rates.insert(Exchange::USD("2015-12-21".to_string()), dec!(3.92));
+ exchange_rates.insert(Exchange::EUR("2024-04-19".to_string()), dec!(4.3316));
+ exchange_rates.insert(Exchange::USD("2023-05-05".to_string()), dec!(4.1612));
+ exchange_rates.insert(Exchange::USD("2016-03-22".to_string()), dec!(3.8005));
+ exchange_rates.insert(Exchange::USD("2013-04-25".to_string()), dec!(3.1792));
+ exchange_rates.insert(Exchange::USD("2019-09-10".to_string()), dec!(3.9273));
+ exchange_rates.insert(Exchange::USD("2022-01-26".to_string()), dec!(4.0684));
+ exchange_rates.insert(Exchange::USD("2021-09-09".to_string()), dec!(3.8292));
+ exchange_rates.insert(Exchange::USD("2021-11-05".to_string()), dec!(3.9911));
+ exchange_rates.insert(Exchange::USD("2018-01-29".to_string()), dec!(3.3375));
+ exchange_rates.insert(Exchange::USD("2017-07-18".to_string()), dec!(3.6469));
+ exchange_rates.insert(Exchange::USD("2016-02-16".to_string()), dec!(3.9404));
+ exchange_rates.insert(Exchange::USD("2024-07-11".to_string()), dec!(3.9257));
+ exchange_rates.insert(Exchange::USD("2018-12-19".to_string()), dec!(3.7619));
+ exchange_rates.insert(Exchange::USD("2014-04-18".to_string()), dec!(3.0265));
+ exchange_rates.insert(Exchange::USD("2012-08-29".to_string()), dec!(3.3081));
+ exchange_rates.insert(Exchange::USD("2024-05-08".to_string()), dec!(4.0202));
+ exchange_rates.insert(Exchange::USD("2017-02-14".to_string()), dec!(4.0525));
+ exchange_rates.insert(Exchange::USD("2019-06-13".to_string()), dec!(3.7736));
+ exchange_rates.insert(Exchange::EUR("2024-08-08".to_string()), dec!(4.3225));
+ exchange_rates.insert(Exchange::USD("2013-06-18".to_string()), dec!(3.1682));
+ exchange_rates.insert(Exchange::USD("2013-05-21".to_string()), dec!(3.249));
+ exchange_rates.insert(Exchange::USD("2022-02-09".to_string()), dec!(3.953));
+ exchange_rates.insert(Exchange::USD("2015-03-18".to_string()), dec!(3.9073));
+ exchange_rates.insert(Exchange::USD("2016-03-02".to_string()), dec!(3.9861));
+ exchange_rates.insert(Exchange::USD("2016-01-18".to_string()), dec!(4.1133));
+ exchange_rates.insert(Exchange::USD("2019-06-10".to_string()), dec!(3.7745));
+ exchange_rates.insert(Exchange::USD("2015-04-10".to_string()), dec!(3.7894));
+ exchange_rates.insert(Exchange::USD("2015-07-20".to_string()), dec!(3.7868));
+ exchange_rates.insert(Exchange::USD("2019-05-31".to_string()), dec!(3.8498));
+ exchange_rates.insert(Exchange::USD("2014-08-06".to_string()), dec!(3.1377));
+ exchange_rates.insert(Exchange::EUR("2025-06-11".to_string()), dec!(4.2643));
+ exchange_rates.insert(Exchange::USD("2024-09-11".to_string()), dec!(3.8816));
+ exchange_rates.insert(Exchange::EUR("2024-11-22".to_string()), dec!(4.343));
+ exchange_rates.insert(Exchange::EUR("2025-09-01".to_string()), dec!(4.2574));
+ exchange_rates.insert(Exchange::USD("2020-10-16".to_string()), dec!(3.8976));
+ exchange_rates.insert(Exchange::USD("2024-02-12".to_string()), dec!(4.0189));
+ exchange_rates.insert(Exchange::USD("2024-01-22".to_string()), dec!(3.9972));
+ exchange_rates.insert(Exchange::USD("2025-02-03".to_string()), dec!(4.1352));
+ exchange_rates.insert(Exchange::USD("2015-08-18".to_string()), dec!(3.7578));
+ exchange_rates.insert(Exchange::USD("2023-01-19".to_string()), dec!(4.3469));
+ exchange_rates.insert(Exchange::USD("2023-10-06".to_string()), dec!(4.3608));
+ exchange_rates.insert(Exchange::USD("2018-08-09".to_string()), dec!(3.6846));
+ exchange_rates.insert(Exchange::USD("2016-09-05".to_string()), dec!(3.8937));
+ exchange_rates.insert(Exchange::USD("2017-06-16".to_string()), dec!(3.7749));
+ exchange_rates.insert(Exchange::EUR("2023-12-27".to_string()), dec!(4.3311));
+ exchange_rates.insert(Exchange::USD("2022-07-04".to_string()), dec!(4.5032));
+ exchange_rates.insert(Exchange::USD("2024-07-29".to_string()), dec!(3.9556));
+ exchange_rates.insert(Exchange::EUR("2024-03-21".to_string()), dec!(4.3031));
+ exchange_rates.insert(Exchange::USD("2024-07-25".to_string()), dec!(3.9619));
+ exchange_rates.insert(Exchange::USD("2014-07-31".to_string()), dec!(3.1094));
+ exchange_rates.insert(Exchange::USD("2012-07-23".to_string()), dec!(3.4529));
+ exchange_rates.insert(Exchange::USD("2017-08-11".to_string()), dec!(3.6449));
+ exchange_rates.insert(Exchange::USD("2017-10-30".to_string()), dec!(3.643));
+ exchange_rates.insert(Exchange::USD("2025-01-22".to_string()), dec!(4.0646));
+ exchange_rates.insert(Exchange::USD("2019-09-17".to_string()), dec!(3.9412));
+ exchange_rates.insert(Exchange::USD("2012-07-03".to_string()), dec!(3.3427));
+ exchange_rates.insert(Exchange::USD("2015-02-18".to_string()), dec!(3.6784));
+ exchange_rates.insert(Exchange::USD("2013-12-09".to_string()), dec!(3.0534));
+ exchange_rates.insert(Exchange::EUR("2024-01-16".to_string()), dec!(4.3934));
+ exchange_rates.insert(Exchange::USD("2013-08-07".to_string()), dec!(3.1725));
+ exchange_rates.insert(Exchange::USD("2014-03-12".to_string()), dec!(3.0508));
+ exchange_rates.insert(Exchange::EUR("2024-07-22".to_string()), dec!(4.2797));
+ exchange_rates.insert(Exchange::EUR("2025-01-23".to_string()), dec!(4.2182));
+ exchange_rates.insert(Exchange::USD("2019-02-15".to_string()), dec!(3.8326));
+ exchange_rates.insert(Exchange::USD("2018-09-17".to_string()), dec!(3.6876));
+ exchange_rates.insert(Exchange::USD("2021-11-12".to_string()), dec!(4.0559));
+ exchange_rates.insert(Exchange::USD("2018-10-04".to_string()), dec!(3.7512));
+ exchange_rates.insert(Exchange::EUR("2023-07-25".to_string()), dec!(4.4348));
+ exchange_rates.insert(Exchange::USD("2022-03-25".to_string()), dec!(4.3125));
+ exchange_rates.insert(Exchange::USD("2019-07-05".to_string()), dec!(3.7689));
+ exchange_rates.insert(Exchange::USD("2016-04-11".to_string()), dec!(3.7587));
+ exchange_rates.insert(Exchange::EUR("2025-07-07".to_string()), dec!(4.2524));
+ exchange_rates.insert(Exchange::USD("2024-12-23".to_string()), dec!(4.095));
+ exchange_rates.insert(Exchange::USD("2023-05-24".to_string()), dec!(4.1573));
+ exchange_rates.insert(Exchange::EUR("2023-01-20".to_string()), dec!(4.7137));
+ exchange_rates.insert(Exchange::USD("2018-07-11".to_string()), dec!(3.7));
+ exchange_rates.insert(Exchange::USD("2018-08-28".to_string()), dec!(3.6548));
+ exchange_rates.insert(Exchange::EUR("2023-01-11".to_string()), dec!(4.6871));
+ exchange_rates.insert(Exchange::USD("2019-12-06".to_string()), dec!(3.85));
+ exchange_rates.insert(Exchange::USD("2012-05-09".to_string()), dec!(3.2412));
+ exchange_rates.insert(Exchange::USD("2015-02-09".to_string()), dec!(3.6811));
+ exchange_rates.insert(Exchange::USD("2020-12-04".to_string()), dec!(3.6765));
+ exchange_rates.insert(Exchange::EUR("2023-01-16".to_string()), dec!(4.7004));
+ exchange_rates.insert(Exchange::USD("2021-01-20".to_string()), dec!(3.7303));
+ exchange_rates.insert(Exchange::USD("2022-09-09".to_string()), dec!(4.6599));
+ exchange_rates.insert(Exchange::USD("2013-01-29".to_string()), dec!(3.1229));
+ exchange_rates.insert(Exchange::USD("2021-04-15".to_string()), dec!(3.8014));
+ exchange_rates.insert(Exchange::USD("2013-10-10".to_string()), dec!(3.0994));
+ exchange_rates.insert(Exchange::USD("2024-10-14".to_string()), dec!(3.9288));
+ exchange_rates.insert(Exchange::USD("2021-05-06".to_string()), dec!(3.8066));
+ exchange_rates.insert(Exchange::USD("2012-05-31".to_string()), dec!(3.5372));
+ exchange_rates.insert(Exchange::USD("2022-11-18".to_string()), dec!(4.5337));
+ exchange_rates.insert(Exchange::EUR("2023-07-31".to_string()), dec!(4.4135));
+ exchange_rates.insert(Exchange::USD("2015-09-18".to_string()), dec!(3.6738));
+ exchange_rates.insert(Exchange::USD("2012-05-23".to_string()), dec!(3.446));
+ exchange_rates.insert(Exchange::USD("2020-08-21".to_string()), dec!(3.7164));
+ exchange_rates.insert(Exchange::USD("2018-10-17".to_string()), dec!(3.7123));
+ exchange_rates.insert(Exchange::EUR("2025-06-25".to_string()), dec!(4.2479));
+ exchange_rates.insert(Exchange::USD("2025-12-09".to_string()), dec!(3.6336));
+ exchange_rates.insert(Exchange::USD("2016-12-13".to_string()), dec!(4.1905));
+ exchange_rates.insert(Exchange::USD("2017-08-01".to_string()), dec!(3.5991));
+ exchange_rates.insert(Exchange::USD("2017-06-26".to_string()), dec!(3.7653));
+ exchange_rates.insert(Exchange::EUR("2025-03-11".to_string()), dec!(4.1977));
+ exchange_rates.insert(Exchange::USD("2014-05-29".to_string()), dec!(3.0395));
+ exchange_rates.insert(Exchange::USD("2018-02-01".to_string()), dec!(3.3346));
+ exchange_rates.insert(Exchange::USD("2012-06-05".to_string()), dec!(3.5359));
+ exchange_rates.insert(Exchange::USD("2015-09-24".to_string()), dec!(3.7687));
+ exchange_rates.insert(Exchange::USD("2016-01-15".to_string()), dec!(4.0411));
+ exchange_rates.insert(Exchange::USD("2019-05-30".to_string()), dec!(3.8548));
+ exchange_rates.insert(Exchange::USD("2021-02-03".to_string()), dec!(3.7352));
+ exchange_rates.insert(Exchange::USD("2024-06-12".to_string()), dec!(4.0342));
+ exchange_rates.insert(Exchange::USD("2017-07-07".to_string()), dec!(3.7068));
+ exchange_rates.insert(Exchange::EUR("2023-03-15".to_string()), dec!(4.7015));
+ exchange_rates.insert(Exchange::USD("2019-03-01".to_string()), dec!(3.792));
+ exchange_rates.insert(Exchange::USD("2023-07-24".to_string()), dec!(4.021));
+ exchange_rates.insert(Exchange::USD("2022-05-06".to_string()), dec!(4.4502));
+ exchange_rates.insert(Exchange::USD("2014-01-29".to_string()), dec!(3.0829));
+ exchange_rates.insert(Exchange::USD("2012-11-28".to_string()), dec!(3.1799));
+ exchange_rates.insert(Exchange::EUR("2025-12-12".to_string()), dec!(4.2271));
+ exchange_rates.insert(Exchange::EUR("2025-11-26".to_string()), dec!(4.233));
+ exchange_rates.insert(Exchange::USD("2014-02-07".to_string()), dec!(3.0857));
+ exchange_rates.insert(Exchange::EUR("2025-01-17".to_string()), dec!(4.2691));
+ exchange_rates.insert(Exchange::EUR("2023-06-01".to_string()), dec!(4.5312));
+ exchange_rates.insert(Exchange::USD("2019-04-24".to_string()), dec!(3.8229));
+ exchange_rates.insert(Exchange::USD("2015-02-12".to_string()), dec!(3.6926));
+ exchange_rates.insert(Exchange::EUR("2024-09-13".to_string()), dec!(4.2883));
+ exchange_rates.insert(Exchange::USD("2020-05-05".to_string()), dec!(4.1927));
+ exchange_rates.insert(Exchange::USD("2016-12-05".to_string()), dec!(4.2213));
+ exchange_rates.insert(Exchange::USD("2019-12-11".to_string()), dec!(3.866));
+ exchange_rates.insert(Exchange::EUR("2023-01-09".to_string()), dec!(4.697));
+ exchange_rates.insert(Exchange::USD("2021-04-26".to_string()), dec!(3.7657));
+ exchange_rates.insert(Exchange::USD("2025-12-30".to_string()), dec!(3.5936));
+ exchange_rates.insert(Exchange::USD("2020-10-23".to_string()), dec!(3.8665));
+ exchange_rates.insert(Exchange::USD("2018-09-26".to_string()), dec!(3.643));
+ exchange_rates.insert(Exchange::EUR("2025-07-21".to_string()), dec!(4.2445));
+ exchange_rates.insert(Exchange::USD("2022-10-17".to_string()), dec!(4.9522));
+ exchange_rates.insert(Exchange::USD("2025-08-20".to_string()), dec!(3.654));
+ exchange_rates.insert(Exchange::EUR("2024-06-04".to_string()), dec!(4.2923));
+ exchange_rates.insert(Exchange::USD("2016-03-01".to_string()), dec!(3.9924));
+ exchange_rates.insert(Exchange::USD("2023-01-02".to_string()), dec!(4.3811));
+ exchange_rates.insert(Exchange::USD("2020-03-13".to_string()), dec!(3.9067));
+ exchange_rates.insert(Exchange::USD("2018-05-09".to_string()), dec!(3.609));
+ exchange_rates.insert(Exchange::USD("2015-06-01".to_string()), dec!(3.785));
+ exchange_rates.insert(Exchange::USD("2019-08-22".to_string()), dec!(3.9337));
+ exchange_rates.insert(Exchange::USD("2013-05-02".to_string()), dec!(3.1492));
+ exchange_rates.insert(Exchange::USD("2024-06-14".to_string()), dec!(4.076));
+ exchange_rates.insert(Exchange::EUR("2023-01-26".to_string()), dec!(4.7239));
+ exchange_rates.insert(Exchange::USD("2020-12-11".to_string()), dec!(3.663));
+ exchange_rates.insert(Exchange::USD("2019-01-02".to_string()), dec!(3.7619));
+ exchange_rates.insert(Exchange::USD("2018-10-03".to_string()), dec!(3.7103));
+ exchange_rates.insert(Exchange::USD("2020-05-12".to_string()), dec!(4.2095));
+ exchange_rates.insert(Exchange::USD("2020-12-30".to_string()), dec!(3.6901));
+ exchange_rates.insert(Exchange::USD("2025-12-19".to_string()), dec!(3.5941));
+ exchange_rates.insert(Exchange::USD("2023-10-05".to_string()), dec!(4.3768));
+ exchange_rates.insert(Exchange::USD("2025-10-07".to_string()), dec!(3.6481));
+ exchange_rates.insert(Exchange::USD("2013-04-18".to_string()), dec!(3.1529));
+ exchange_rates.insert(Exchange::USD("2012-12-24".to_string()), dec!(3.08));
+ exchange_rates.insert(Exchange::USD("2018-05-23".to_string()), dec!(3.6693));
+ exchange_rates.insert(Exchange::EUR("2024-10-02".to_string()), dec!(4.2952));
+ exchange_rates.insert(Exchange::USD("2025-12-10".to_string()), dec!(3.6329));
+ exchange_rates.insert(Exchange::EUR("2025-08-12".to_string()), dec!(4.2626));
+ exchange_rates.insert(Exchange::USD("2013-05-31".to_string()), dec!(3.2953));
+ exchange_rates.insert(Exchange::USD("2024-12-24".to_string()), dec!(4.1127));
+ exchange_rates.insert(Exchange::USD("2022-08-04".to_string()), dec!(4.634));
+ exchange_rates.insert(Exchange::USD("2019-01-22".to_string()), dec!(3.7727));
+ exchange_rates.insert(Exchange::USD("2021-09-28".to_string()), dec!(3.9546));
+ exchange_rates.insert(Exchange::USD("2014-09-23".to_string()), dec!(3.243));
+ exchange_rates.insert(Exchange::USD("2016-04-19".to_string()), dec!(3.7925));
+ exchange_rates.insert(Exchange::USD("2019-10-07".to_string()), dec!(3.9498));
+ exchange_rates.insert(Exchange::USD("2024-07-05".to_string()), dec!(3.9581));
+ exchange_rates.insert(Exchange::USD("2015-09-16".to_string()), dec!(3.7315));
+ exchange_rates.insert(Exchange::USD("2025-06-05".to_string()), dec!(3.7495));
+ exchange_rates.insert(Exchange::USD("2014-11-25".to_string()), dec!(3.3706));
+ exchange_rates.insert(Exchange::USD("2020-11-25".to_string()), dec!(3.7556));
+ exchange_rates.insert(Exchange::USD("2012-03-08".to_string()), dec!(3.122));
+ exchange_rates.insert(Exchange::USD("2022-08-11".to_string()), dec!(4.5206));
+ exchange_rates.insert(Exchange::USD("2019-04-18".to_string()), dec!(3.8002));
+ exchange_rates.insert(Exchange::USD("2022-11-17".to_string()), dec!(4.5387));
+ exchange_rates.insert(Exchange::EUR("2023-03-07".to_string()), dec!(4.6871));
+ exchange_rates.insert(Exchange::USD("2012-01-16".to_string()), dec!(3.4798));
+ exchange_rates.insert(Exchange::USD("2017-01-16".to_string()), dec!(4.1354));
+ exchange_rates.insert(Exchange::USD("2012-09-10".to_string()), dec!(3.2189));
+ exchange_rates.insert(Exchange::USD("2016-02-26".to_string()), dec!(3.9545));
+ exchange_rates.insert(Exchange::USD("2016-08-23".to_string()), dec!(3.8061));
+ exchange_rates.insert(Exchange::EUR("2025-02-24".to_string()), dec!(4.1609));
+ exchange_rates.insert(Exchange::EUR("2023-05-23".to_string()), dec!(4.4981));
+ exchange_rates.insert(Exchange::EUR("2024-06-07".to_string()), dec!(4.2891));
+ exchange_rates.insert(Exchange::EUR("2025-09-22".to_string()), dec!(4.2645));
+ exchange_rates.insert(Exchange::USD("2013-07-05".to_string()), dec!(3.3245));
+ exchange_rates.insert(Exchange::USD("2017-06-20".to_string()), dec!(3.7862));
+ exchange_rates.insert(Exchange::USD("2016-03-30".to_string()), dec!(3.7495));
+ exchange_rates.insert(Exchange::USD("2012-11-29".to_string()), dec!(3.1556));
+ exchange_rates.insert(Exchange::USD("2015-08-26".to_string()), dec!(3.6937));
+ exchange_rates.insert(Exchange::USD("2022-10-10".to_string()), dec!(5.0239));
+ exchange_rates.insert(Exchange::USD("2012-04-02".to_string()), dec!(3.1017));
+ exchange_rates.insert(Exchange::EUR("2024-07-11".to_string()), dec!(4.2586));
+ exchange_rates.insert(Exchange::USD("2020-07-23".to_string()), dec!(3.806));
+ exchange_rates.insert(Exchange::USD("2015-07-27".to_string()), dec!(3.7455));
+ exchange_rates.insert(Exchange::USD("2013-12-24".to_string()), dec!(3.0346));
+ exchange_rates.insert(Exchange::USD("2020-10-13".to_string()), dec!(3.7932));
+ exchange_rates.insert(Exchange::EUR("2025-04-11".to_string()), dec!(4.2972));
+ exchange_rates.insert(Exchange::USD("2018-11-09".to_string()), dec!(3.7838));
+ exchange_rates.insert(Exchange::USD("2017-12-29".to_string()), dec!(3.4813));
+ exchange_rates.insert(Exchange::USD("2013-12-31".to_string()), dec!(3.012));
+ exchange_rates.insert(Exchange::USD("2012-07-31".to_string()), dec!(3.3508));
+ exchange_rates.insert(Exchange::EUR("2023-12-05".to_string()), dec!(4.3233));
+ exchange_rates.insert(Exchange::USD("2018-11-19".to_string()), dec!(3.784));
+ exchange_rates.insert(Exchange::EUR("2023-02-06".to_string()), dec!(4.7195));
+ exchange_rates.insert(Exchange::USD("2019-10-21".to_string()), dec!(3.8307));
+ exchange_rates.insert(Exchange::USD("2016-05-18".to_string()), dec!(3.9005));
+ exchange_rates.insert(Exchange::EUR("2025-12-23".to_string()), dec!(4.2274));
+ exchange_rates.insert(Exchange::USD("2017-08-23".to_string()), dec!(3.6274));
+ exchange_rates.insert(Exchange::EUR("2024-10-10".to_string()), dec!(4.3029));
+ exchange_rates.insert(Exchange::USD("2018-03-15".to_string()), dec!(3.4117));
+ exchange_rates.insert(Exchange::USD("2013-05-22".to_string()), dec!(3.2322));
+ exchange_rates.insert(Exchange::EUR("2023-02-16".to_string()), dec!(4.7728));
+ exchange_rates.insert(Exchange::USD("2014-07-08".to_string()), dec!(3.0441));
+ exchange_rates.insert(Exchange::USD("2021-03-25".to_string()), dec!(3.9253));
+ exchange_rates.insert(Exchange::USD("2022-03-10".to_string()), dec!(4.3482));
+ exchange_rates.insert(Exchange::USD("2018-08-01".to_string()), dec!(3.6603));
+ exchange_rates.insert(Exchange::USD("2016-08-22".to_string()), dec!(3.809));
+ exchange_rates.insert(Exchange::USD("2018-06-28".to_string()), dec!(3.7705));
+ exchange_rates.insert(Exchange::USD("2013-08-14".to_string()), dec!(3.1643));
+ exchange_rates.insert(Exchange::EUR("2023-09-25".to_string()), dec!(4.5892));
+ exchange_rates.insert(Exchange::USD("2024-11-05".to_string()), dec!(4.0038));
+ exchange_rates.insert(Exchange::USD("2023-03-31".to_string()), dec!(4.2934));
+ exchange_rates.insert(Exchange::EUR("2023-06-14".to_string()), dec!(4.4715));
+ exchange_rates.insert(Exchange::EUR("2023-11-30".to_string()), dec!(4.3492));
+ exchange_rates.insert(Exchange::EUR("2024-07-19".to_string()), dec!(4.293));
+ exchange_rates.insert(Exchange::USD("2023-10-30".to_string()), dec!(4.204));
+ exchange_rates.insert(Exchange::EUR("2025-07-23".to_string()), dec!(4.2544));
+ exchange_rates.insert(Exchange::USD("2014-09-01".to_string()), dec!(3.2035));
+ exchange_rates.insert(Exchange::USD("2021-08-31".to_string()), dec!(3.8386));
+ exchange_rates.insert(Exchange::USD("2024-12-03".to_string()), dec!(4.0803));
+ exchange_rates.insert(Exchange::USD("2023-11-08".to_string()), dec!(4.1804));
+ exchange_rates.insert(Exchange::USD("2018-11-14".to_string()), dec!(3.8114));
+ exchange_rates.insert(Exchange::USD("2017-05-12".to_string()), dec!(3.8837));
+ exchange_rates.insert(Exchange::USD("2013-01-16".to_string()), dec!(3.1097));
+ exchange_rates.insert(Exchange::USD("2018-07-05".to_string()), dec!(3.7485));
+ exchange_rates.insert(Exchange::EUR("2025-06-02".to_string()), dec!(4.2578));
+ exchange_rates.insert(Exchange::USD("2020-07-28".to_string()), dec!(3.7532));
+ exchange_rates.insert(Exchange::USD("2015-05-08".to_string()), dec!(3.6095));
+ exchange_rates.insert(Exchange::USD("2017-12-18".to_string()), dec!(3.574));
+ exchange_rates.insert(Exchange::USD("2012-03-05".to_string()), dec!(3.1355));
+ exchange_rates.insert(Exchange::USD("2025-02-10".to_string()), dec!(4.0548));
+ exchange_rates.insert(Exchange::USD("2025-06-03".to_string()), dec!(3.7437));
+ exchange_rates.insert(Exchange::USD("2024-10-22".to_string()), dec!(3.9862));
+ exchange_rates.insert(Exchange::USD("2015-01-13".to_string()), dec!(3.6252));
+ exchange_rates.insert(Exchange::USD("2015-03-03".to_string()), dec!(3.719));
+ exchange_rates.insert(Exchange::EUR("2024-07-01".to_string()), dec!(4.2981));
+ exchange_rates.insert(Exchange::USD("2017-07-17".to_string()), dec!(3.6767));
+ exchange_rates.insert(Exchange::USD("2016-06-20".to_string()), dec!(3.8724));
+ exchange_rates.insert(Exchange::USD("2024-05-15".to_string()), dec!(3.9368));
+ exchange_rates.insert(Exchange::EUR("2023-03-06".to_string()), dec!(4.7073));
+ exchange_rates.insert(Exchange::EUR("2023-12-28".to_string()), dec!(4.3392));
+ exchange_rates.insert(Exchange::USD("2022-08-29".to_string()), dec!(4.7821));
+ exchange_rates.insert(Exchange::USD("2020-04-16".to_string()), dec!(4.1631));
+ exchange_rates.insert(Exchange::USD("2019-05-24".to_string()), dec!(3.8436));
+ exchange_rates.insert(Exchange::USD("2012-09-07".to_string()), dec!(3.2578));
+ exchange_rates.insert(Exchange::EUR("2023-03-28".to_string()), dec!(4.6816));
+ exchange_rates.insert(Exchange::USD("2019-08-07".to_string()), dec!(3.8597));
+ exchange_rates.insert(Exchange::USD("2025-05-19".to_string()), dec!(3.8004));
+ exchange_rates.insert(Exchange::USD("2013-07-12".to_string()), dec!(3.3201));
+ exchange_rates.insert(Exchange::EUR("2024-12-05".to_string()), dec!(4.2695));
+ exchange_rates.insert(Exchange::EUR("2023-02-20".to_string()), dec!(4.7542));
+ exchange_rates.insert(Exchange::USD("2022-11-21".to_string()), dec!(4.5991));
+ exchange_rates.insert(Exchange::USD("2017-11-28".to_string()), dec!(3.5382));
+ exchange_rates.insert(Exchange::USD("2015-10-16".to_string()), dec!(3.7243));
+ exchange_rates.insert(Exchange::USD("2025-09-15".to_string()), dec!(3.6188));
+ exchange_rates.insert(Exchange::USD("2024-12-02".to_string()), dec!(4.0827));
+ exchange_rates.insert(Exchange::USD("2022-11-15".to_string()), dec!(4.5143));
+ exchange_rates.insert(Exchange::USD("2016-09-30".to_string()), dec!(3.8558));
+ exchange_rates.insert(Exchange::USD("2015-10-05".to_string()), dec!(3.773));
+ exchange_rates.insert(Exchange::USD("2015-10-19".to_string()), dec!(3.7265));
+ exchange_rates.insert(Exchange::USD("2013-11-06".to_string()), dec!(3.0896));
+ exchange_rates.insert(Exchange::USD("2013-01-07".to_string()), dec!(3.1618));
+ exchange_rates.insert(Exchange::USD("2023-04-20".to_string()), dec!(4.2024));
+ exchange_rates.insert(Exchange::EUR("2023-04-14".to_string()), dec!(4.6494));
+ exchange_rates.insert(Exchange::USD("2023-12-08".to_string()), dec!(4.0181));
+ exchange_rates.insert(Exchange::USD("2013-04-04".to_string()), dec!(3.275));
+ exchange_rates.insert(Exchange::EUR("2023-03-10".to_string()), dec!(4.6838));
+ exchange_rates.insert(Exchange::USD("2023-12-29".to_string()), dec!(3.935));
+ exchange_rates.insert(Exchange::EUR("2023-12-22".to_string()), dec!(4.3288));
+ exchange_rates.insert(Exchange::USD("2023-06-14".to_string()), dec!(4.1393));
+ exchange_rates.insert(Exchange::USD("2015-11-12".to_string()), dec!(3.9434));
+ exchange_rates.insert(Exchange::USD("2022-08-08".to_string()), dec!(4.6127));
+ exchange_rates.insert(Exchange::EUR("2025-07-29".to_string()), dec!(4.2737));
+ exchange_rates.insert(Exchange::USD("2024-07-02".to_string()), dec!(4.0375));
+ exchange_rates.insert(Exchange::EUR("2025-02-12".to_string()), dec!(4.1721));
+ exchange_rates.insert(Exchange::USD("2012-04-24".to_string()), dec!(3.1946));
+ exchange_rates.insert(Exchange::EUR("2024-08-09".to_string()), dec!(4.3238));
+ exchange_rates.insert(Exchange::USD("2020-08-12".to_string()), dec!(3.7558));
+ exchange_rates.insert(Exchange::USD("2018-10-26".to_string()), dec!(3.7899));
+ exchange_rates.insert(Exchange::USD("2020-11-24".to_string()), dec!(3.7625));
+ exchange_rates.insert(Exchange::USD("2017-03-28".to_string()), dec!(3.9169));
+ exchange_rates.insert(Exchange::USD("2016-08-29".to_string()), dec!(3.8789));
+ exchange_rates.insert(Exchange::USD("2012-10-18".to_string()), dec!(3.1314));
+ exchange_rates.insert(Exchange::USD("2022-07-14".to_string()), dec!(4.8274));
+ exchange_rates.insert(Exchange::USD("2021-09-22".to_string()), dec!(3.946));
+ exchange_rates.insert(Exchange::USD("2024-10-02".to_string()), dec!(3.8792));
+ exchange_rates.insert(Exchange::USD("2022-10-07".to_string()), dec!(4.9588));
+ exchange_rates.insert(Exchange::USD("2022-09-19".to_string()), dec!(4.7255));
+ exchange_rates.insert(Exchange::USD("2014-05-14".to_string()), dec!(3.048));
+ exchange_rates.insert(Exchange::USD("2018-09-04".to_string()), dec!(3.7241));
+ exchange_rates.insert(Exchange::USD("2014-10-23".to_string()), dec!(3.339));
+ exchange_rates.insert(Exchange::EUR("2023-03-20".to_string()), dec!(4.7109));
+ exchange_rates.insert(Exchange::USD("2025-12-29".to_string()), dec!(3.5898));
+ exchange_rates.insert(Exchange::USD("2020-07-21".to_string()), dec!(3.8812));
+ exchange_rates.insert(Exchange::USD("2019-02-18".to_string()), dec!(3.8286));
+ exchange_rates.insert(Exchange::USD("2015-08-14".to_string()), dec!(3.7557));
+ exchange_rates.insert(Exchange::USD("2022-06-28".to_string()), dec!(4.4377));
+ exchange_rates.insert(Exchange::USD("2022-08-26".to_string()), dec!(4.7465));
+ exchange_rates.insert(Exchange::USD("2021-11-08".to_string()), dec!(3.9747));
+ exchange_rates.insert(Exchange::USD("2019-12-04".to_string()), dec!(3.8647));
+ exchange_rates.insert(Exchange::USD("2017-04-18".to_string()), dec!(3.98));
+ exchange_rates.insert(Exchange::USD("2019-12-27".to_string()), dec!(3.8266));
+ exchange_rates.insert(Exchange::EUR("2023-04-07".to_string()), dec!(4.6862));
+ exchange_rates.insert(Exchange::USD("2019-12-10".to_string()), dec!(3.8711));
+ exchange_rates.insert(Exchange::EUR("2024-09-03".to_string()), dec!(4.2757));
+ exchange_rates.insert(Exchange::EUR("2024-03-08".to_string()), dec!(4.3079));
+ exchange_rates.insert(Exchange::USD("2025-07-02".to_string()), dec!(3.609));
+ exchange_rates.insert(Exchange::USD("2012-09-06".to_string()), dec!(3.2955));
+ exchange_rates.insert(Exchange::USD("2020-05-21".to_string()), dec!(4.1346));
+ exchange_rates.insert(Exchange::EUR("2025-02-28".to_string()), dec!(4.1575));
+ exchange_rates.insert(Exchange::USD("2020-07-03".to_string()), dec!(3.9764));
+ exchange_rates.insert(Exchange::USD("2021-07-21".to_string()), dec!(3.9035));
+ exchange_rates.insert(Exchange::USD("2013-05-08".to_string()), dec!(3.1609));
+ exchange_rates.insert(Exchange::USD("2017-09-14".to_string()), dec!(3.5984));
+ exchange_rates.insert(Exchange::USD("2024-07-17".to_string()), dec!(3.921));
+ exchange_rates.insert(Exchange::USD("2016-01-04".to_string()), dec!(3.9281));
+ exchange_rates.insert(Exchange::USD("2015-01-30".to_string()), dec!(3.7204));
+ exchange_rates.insert(Exchange::USD("2022-03-01".to_string()), dec!(4.2193));
+ exchange_rates.insert(Exchange::USD("2022-07-20".to_string()), dec!(4.6524));
+ exchange_rates.insert(Exchange::USD("2015-04-16".to_string()), dec!(3.7746));
+ exchange_rates.insert(Exchange::USD("2018-07-19".to_string()), dec!(3.7163));
+ exchange_rates.insert(Exchange::USD("2013-03-13".to_string()), dec!(3.1863));
+ exchange_rates.insert(Exchange::USD("2012-12-11".to_string()), dec!(3.1645));
+ exchange_rates.insert(Exchange::USD("2022-04-04".to_string()), dec!(4.2073));
+ exchange_rates.insert(Exchange::USD("2021-06-23".to_string()), dec!(3.7878));
+ exchange_rates.insert(Exchange::EUR("2025-06-26".to_string()), dec!(4.2479));
+ exchange_rates.insert(Exchange::USD("2014-07-17".to_string()), dec!(3.0579));
+ exchange_rates.insert(Exchange::USD("2014-11-18".to_string()), dec!(3.3706));
+ exchange_rates.insert(Exchange::EUR("2024-04-03".to_string()), dec!(4.2923));
+ exchange_rates.insert(Exchange::USD("2021-10-21".to_string()), dec!(3.9449));
+ exchange_rates.insert(Exchange::USD("2020-07-14".to_string()), dec!(3.957));
+ exchange_rates.insert(Exchange::USD("2020-08-19".to_string()), dec!(3.6732));
+ exchange_rates.insert(Exchange::USD("2015-04-29".to_string()), dec!(3.6396));
+ exchange_rates.insert(Exchange::USD("2013-10-03".to_string()), dec!(3.0951));
+ exchange_rates.insert(Exchange::USD("2013-05-20".to_string()), dec!(3.238));
+ exchange_rates.insert(Exchange::EUR("2024-07-15".to_string()), dec!(4.2499));
+ exchange_rates.insert(Exchange::USD("2022-03-15".to_string()), dec!(4.2992));
+ exchange_rates.insert(Exchange::USD("2018-09-20".to_string()), dec!(3.6702));
+ exchange_rates.insert(Exchange::USD("2014-05-12".to_string()), dec!(3.0362));
+ exchange_rates.insert(Exchange::USD("2025-09-26".to_string()), dec!(3.6528));
+ exchange_rates.insert(Exchange::USD("2023-09-19".to_string()), dec!(4.3472));
+ exchange_rates.insert(Exchange::USD("2016-03-10".to_string()), dec!(3.932));
+ exchange_rates.insert(Exchange::USD("2016-08-04".to_string()), dec!(3.8588));
+ exchange_rates.insert(Exchange::USD("2013-04-19".to_string()), dec!(3.1409));
+ exchange_rates.insert(Exchange::EUR("2023-09-12".to_string()), dec!(4.6836));
+ exchange_rates.insert(Exchange::EUR("2024-10-17".to_string()), dec!(4.3174));
+ exchange_rates.insert(Exchange::USD("2021-12-01".to_string()), dec!(4.1051));
+ exchange_rates.insert(Exchange::USD("2022-08-30".to_string()), dec!(4.721));
+ exchange_rates.insert(Exchange::USD("2016-04-18".to_string()), dec!(3.801));
+ exchange_rates.insert(Exchange::USD("2012-09-24".to_string()), dec!(3.218));
+ exchange_rates.insert(Exchange::USD("2022-07-27".to_string()), dec!(4.7142));
+ exchange_rates.insert(Exchange::USD("2019-10-22".to_string()), dec!(3.8408));
+ exchange_rates.insert(Exchange::USD("2022-11-30".to_string()), dec!(4.5066));
+ exchange_rates.insert(Exchange::USD("2016-10-06".to_string()), dec!(3.8405));
+ exchange_rates.insert(Exchange::USD("2023-08-17".to_string()), dec!(4.1094));
+ exchange_rates.insert(Exchange::USD("2012-12-28".to_string()), dec!(3.0893));
+ exchange_rates.insert(Exchange::USD("2019-07-08".to_string()), dec!(3.7857));
+ exchange_rates.insert(Exchange::USD("2017-10-13".to_string()), dec!(3.601));
+ exchange_rates.insert(Exchange::USD("2022-08-10".to_string()), dec!(4.6112));
+ exchange_rates.insert(Exchange::USD("2018-04-04".to_string()), dec!(3.4224));
+ exchange_rates.insert(Exchange::USD("2024-02-09".to_string()), dec!(4.0096));
+ exchange_rates.insert(Exchange::USD("2014-05-09".to_string()), dec!(3.0247));
+ exchange_rates.insert(Exchange::USD("2019-11-29".to_string()), dec!(3.9288));
+ exchange_rates.insert(Exchange::USD("2019-11-18".to_string()), dec!(3.8767));
+ exchange_rates.insert(Exchange::USD("2017-02-23".to_string()), dec!(4.084));
+ exchange_rates.insert(Exchange::USD("2012-12-21".to_string()), dec!(3.0791));
+ exchange_rates.insert(Exchange::EUR("2023-11-14".to_string()), dec!(4.4163));
+ exchange_rates.insert(Exchange::USD("2025-04-08".to_string()), dec!(3.927));
+ exchange_rates.insert(Exchange::USD("2018-01-26".to_string()), dec!(3.3299));
+ exchange_rates.insert(Exchange::USD("2017-03-03".to_string()), dec!(4.0955));
+ exchange_rates.insert(Exchange::USD("2024-05-22".to_string()), dec!(3.9243));
+ exchange_rates.insert(Exchange::USD("2021-09-27".to_string()), dec!(3.9276));
+ exchange_rates.insert(Exchange::USD("2012-08-06".to_string()), dec!(3.2752));
+ exchange_rates.insert(Exchange::EUR("2023-06-07".to_string()), dec!(4.479));
+ exchange_rates.insert(Exchange::EUR("2024-06-26".to_string()), dec!(4.3087));
+ exchange_rates.insert(Exchange::USD("2015-07-21".to_string()), dec!(3.7875));
+ exchange_rates.insert(Exchange::USD("2017-02-21".to_string()), dec!(4.0942));
+ exchange_rates.insert(Exchange::USD("2012-09-27".to_string()), dec!(3.2236));
+ exchange_rates.insert(Exchange::EUR("2025-07-01".to_string()), dec!(4.2415));
+ exchange_rates.insert(Exchange::EUR("2023-05-09".to_string()), dec!(4.5683));
+ exchange_rates.insert(Exchange::USD("2025-05-12".to_string()), dec!(3.8011));
+ exchange_rates.insert(Exchange::USD("2020-01-23".to_string()), dec!(3.8308));
+ exchange_rates.insert(Exchange::USD("2018-01-12".to_string()), dec!(3.4366));
+ exchange_rates.insert(Exchange::USD("2023-03-07".to_string()), dec!(4.3981));
+ exchange_rates.insert(Exchange::USD("2015-02-05".to_string()), dec!(3.6656));
+ exchange_rates.insert(Exchange::USD("2014-12-09".to_string()), dec!(3.3688));
+ exchange_rates.insert(Exchange::EUR("2024-05-15".to_string()), dec!(4.2635));
+ exchange_rates.insert(Exchange::USD("2015-01-28".to_string()), dec!(3.7276));
+ exchange_rates.insert(Exchange::USD("2022-08-23".to_string()), dec!(4.803));
+ exchange_rates.insert(Exchange::USD("2020-01-27".to_string()), dec!(3.8725));
+ exchange_rates.insert(Exchange::USD("2024-11-29".to_string()), dec!(4.077));
+ exchange_rates.insert(Exchange::USD("2012-02-17".to_string()), dec!(3.179));
+ exchange_rates.insert(Exchange::USD("2016-11-07".to_string()), dec!(3.9132));
+ exchange_rates.insert(Exchange::USD("2022-06-13".to_string()), dec!(4.4209));
+ exchange_rates.insert(Exchange::USD("2022-10-25".to_string()), dec!(4.8499));
+ exchange_rates.insert(Exchange::USD("2020-01-31".to_string()), dec!(3.8999));
+ exchange_rates.insert(Exchange::USD("2017-11-07".to_string()), dec!(3.6652));
+ exchange_rates.insert(Exchange::USD("2012-08-31".to_string()), dec!(3.3353));
+ exchange_rates.insert(Exchange::USD("2023-04-06".to_string()), dec!(4.3033));
+ exchange_rates.insert(Exchange::USD("2023-07-19".to_string()), dec!(3.9612));
+ exchange_rates.insert(Exchange::USD("2023-06-09".to_string()), dec!(4.1545));
+ exchange_rates.insert(Exchange::USD("2017-02-08".to_string()), dec!(4.0521));
+ exchange_rates.insert(Exchange::USD("2018-10-18".to_string()), dec!(3.7302));
+ exchange_rates.insert(Exchange::USD("2018-03-28".to_string()), dec!(3.3956));
+ exchange_rates.insert(Exchange::USD("2017-02-28".to_string()), dec!(4.077));
+ exchange_rates.insert(Exchange::USD("2015-09-14".to_string()), dec!(3.7124));
+ exchange_rates.insert(Exchange::EUR("2025-03-25".to_string()), dec!(4.1664));
+ exchange_rates.insert(Exchange::USD("2015-07-09".to_string()), dec!(3.829));
+ exchange_rates.insert(Exchange::USD("2023-07-11".to_string()), dec!(4.0374));
+ exchange_rates.insert(Exchange::USD("2013-08-23".to_string()), dec!(3.1673));
+ exchange_rates.insert(Exchange::EUR("2024-02-06".to_string()), dec!(4.3435));
+ exchange_rates.insert(Exchange::USD("2017-04-05".to_string()), dec!(3.9783));
+ exchange_rates.insert(Exchange::USD("2022-03-02".to_string()), dec!(4.3302));
+ exchange_rates.insert(Exchange::EUR("2025-05-21".to_string()), dec!(4.2403));
+ exchange_rates.insert(Exchange::USD("2023-01-13".to_string()), dec!(4.3272));
+ exchange_rates.insert(Exchange::USD("2023-05-25".to_string()), dec!(4.1994));
+ exchange_rates.insert(Exchange::USD("2023-12-06".to_string()), dec!(4.0202));
+ exchange_rates.insert(Exchange::EUR("2023-05-30".to_string()), dec!(4.522));
+ exchange_rates.insert(Exchange::USD("2018-09-27".to_string()), dec!(3.6557));
+ exchange_rates.insert(Exchange::USD("2024-10-11".to_string()), dec!(3.9204));
+ exchange_rates.insert(Exchange::USD("2021-03-17".to_string()), dec!(3.8676));
+ exchange_rates.insert(Exchange::USD("2016-11-18".to_string()), dec!(4.1968));
+ exchange_rates.insert(Exchange::USD("2014-05-16".to_string()), dec!(3.0567));
+ exchange_rates.insert(Exchange::USD("2013-12-17".to_string()), dec!(3.036));
+ exchange_rates.insert(Exchange::USD("2021-12-29".to_string()), dec!(4.0779));
+ exchange_rates.insert(Exchange::USD("2020-10-07".to_string()), dec!(3.8126));
+ exchange_rates.insert(Exchange::USD("2025-02-26".to_string()), dec!(3.9434));
+ exchange_rates.insert(Exchange::USD("2024-10-10".to_string()), dec!(3.9355));
+ exchange_rates.insert(Exchange::USD("2025-08-01".to_string()), dec!(3.7536));
+ exchange_rates.insert(Exchange::USD("2023-09-21".to_string()), dec!(4.3365));
+ exchange_rates.insert(Exchange::USD("2019-09-24".to_string()), dec!(3.9838));
+ exchange_rates.insert(Exchange::USD("2016-08-25".to_string()), dec!(3.819));
+ exchange_rates.insert(Exchange::USD("2015-02-02".to_string()), dec!(3.6801));
+ exchange_rates.insert(Exchange::EUR("2024-09-09".to_string()), dec!(4.2818));
+ exchange_rates.insert(Exchange::USD("2025-03-19".to_string()), dec!(3.8473));
+ exchange_rates.insert(Exchange::USD("2018-11-21".to_string()), dec!(3.7829));
+ exchange_rates.insert(Exchange::USD("2017-11-22".to_string()), dec!(3.5881));
+ exchange_rates.insert(Exchange::EUR("2024-07-10".to_string()), dec!(4.2529));
+ exchange_rates.insert(Exchange::EUR("2024-08-20".to_string()), dec!(4.2665));
+ exchange_rates.insert(Exchange::USD("2020-03-09".to_string()), dec!(3.7899));
+ exchange_rates.insert(Exchange::USD("2022-10-04".to_string()), dec!(4.8615));
+ exchange_rates.insert(Exchange::USD("2021-07-07".to_string()), dec!(3.8225));
+ exchange_rates.insert(Exchange::USD("2021-11-30".to_string()), dec!(4.1214));
+ exchange_rates.insert(Exchange::USD("2018-01-22".to_string()), dec!(3.4036));
+ exchange_rates.insert(Exchange::USD("2019-09-11".to_string()), dec!(3.9324));
+ exchange_rates.insert(Exchange::USD("2025-06-20".to_string()), dec!(3.7067));
+ exchange_rates.insert(Exchange::EUR("2024-04-02".to_string()), dec!(4.2934));
+ exchange_rates.insert(Exchange::USD("2024-02-16".to_string()), dec!(4.0325));
+ exchange_rates.insert(Exchange::USD("2024-11-20".to_string()), dec!(4.112));
+ exchange_rates.insert(Exchange::USD("2015-01-21".to_string()), dec!(3.7358));
+ exchange_rates.insert(Exchange::USD("2025-07-03".to_string()), dec!(3.6137));
+ exchange_rates.insert(Exchange::USD("2019-03-12".to_string()), dec!(3.8116));
+ exchange_rates.insert(Exchange::USD("2017-06-29".to_string()), dec!(3.7122));
+ exchange_rates.insert(Exchange::USD("2023-07-10".to_string()), dec!(4.0632));
+ exchange_rates.insert(Exchange::USD("2020-08-27".to_string()), dec!(3.7286));
+ exchange_rates.insert(Exchange::USD("2017-11-21".to_string()), dec!(3.606));
+ exchange_rates.insert(Exchange::USD("2015-05-20".to_string()), dec!(3.6538));
+ exchange_rates.insert(Exchange::USD("2025-03-13".to_string()), dec!(3.8568));
+ exchange_rates.insert(Exchange::USD("2017-07-10".to_string()), dec!(3.716));
+ exchange_rates.insert(Exchange::USD("2016-11-08".to_string()), dec!(3.9169));
+ exchange_rates.insert(Exchange::USD("2017-06-28".to_string()), dec!(3.7249));
+ exchange_rates.insert(Exchange::USD("2023-12-07".to_string()), dec!(4.0199));
+ exchange_rates.insert(Exchange::USD("2015-07-30".to_string()), dec!(3.7754));
+ exchange_rates.insert(Exchange::USD("2014-10-21".to_string()), dec!(3.2987));
+ exchange_rates.insert(Exchange::USD("2013-05-15".to_string()), dec!(3.234));
+ exchange_rates.insert(Exchange::EUR("2025-10-16".to_string()), dec!(4.2517));
+ exchange_rates.insert(Exchange::USD("2023-01-23".to_string()), dec!(4.3242));
+ exchange_rates.insert(Exchange::USD("2021-05-17".to_string()), dec!(3.7288));
+ exchange_rates.insert(Exchange::USD("2015-04-30".to_string()), dec!(3.5987));
+ exchange_rates.insert(Exchange::USD("2022-11-28".to_string()), dec!(4.4827));
+ exchange_rates.insert(Exchange::USD("2014-11-26".to_string()), dec!(3.3546));
+ exchange_rates.insert(Exchange::USD("2018-08-29".to_string()), dec!(3.6747));
+ exchange_rates.insert(Exchange::USD("2024-08-07".to_string()), dec!(3.9526));
+ exchange_rates.insert(Exchange::USD("2024-04-30".to_string()), dec!(4.0341));
+ exchange_rates.insert(Exchange::USD("2020-08-05".to_string()), dec!(3.7143));
+ exchange_rates.insert(Exchange::USD("2013-08-16".to_string()), dec!(3.1665));
+ exchange_rates.insert(Exchange::USD("2019-03-14".to_string()), dec!(3.8018));
+ exchange_rates.insert(Exchange::USD("2014-11-19".to_string()), dec!(3.3655));
+ exchange_rates.insert(Exchange::USD("2023-03-27".to_string()), dec!(4.3518));
+ exchange_rates.insert(Exchange::USD("2020-12-03".to_string()), dec!(3.6981));
+ exchange_rates.insert(Exchange::EUR("2024-02-28".to_string()), dec!(4.3116));
+ exchange_rates.insert(Exchange::USD("2021-10-01".to_string()), dec!(3.9678));
+ exchange_rates.insert(Exchange::USD("2024-01-10".to_string()), dec!(3.9656));
+ exchange_rates.insert(Exchange::USD("2022-10-18".to_string()), dec!(4.8929));
+ exchange_rates.insert(Exchange::USD("2023-08-02".to_string()), dec!(4.0497));
+ exchange_rates.insert(Exchange::USD("2016-12-15".to_string()), dec!(4.2329));
+ exchange_rates.insert(Exchange::USD("2016-05-30".to_string()), dec!(3.947));
+ exchange_rates.insert(Exchange::USD("2016-08-08".to_string()), dec!(3.8706));
+ exchange_rates.insert(Exchange::USD("2014-07-23".to_string()), dec!(3.0707));
+ exchange_rates.insert(Exchange::USD("2023-09-28".to_string()), dec!(4.4062));
+ exchange_rates.insert(Exchange::USD("2019-10-18".to_string()), dec!(3.8503));
+ exchange_rates.insert(Exchange::USD("2015-07-22".to_string()), dec!(3.7629));
+ exchange_rates.insert(Exchange::USD("2013-07-31".to_string()), dec!(3.1929));
+ exchange_rates.insert(Exchange::USD("2022-01-18".to_string()), dec!(3.9734));
+ exchange_rates.insert(Exchange::USD("2018-07-16".to_string()), dec!(3.6828));
+ exchange_rates.insert(Exchange::EUR("2024-12-04".to_string()), dec!(4.2899));
+ exchange_rates.insert(Exchange::USD("2018-10-09".to_string()), dec!(3.7629));
+ exchange_rates.insert(Exchange::EUR("2023-04-20".to_string()), dec!(4.6109));
+ exchange_rates.insert(Exchange::EUR("2023-05-12".to_string()), dec!(4.5444));
+ exchange_rates.insert(Exchange::USD("2024-12-04".to_string()), dec!(4.0845));
+ exchange_rates.insert(Exchange::EUR("2024-09-30".to_string()), dec!(4.2791));
+ exchange_rates.insert(Exchange::EUR("2025-02-25".to_string()), dec!(4.1339));
+ exchange_rates.insert(Exchange::USD("2025-07-30".to_string()), dec!(3.6981));
+ exchange_rates.insert(Exchange::USD("2022-02-17".to_string()), dec!(3.9687));
+ exchange_rates.insert(Exchange::USD("2015-09-25".to_string()), dec!(3.7818));
+ exchange_rates.insert(Exchange::USD("2017-06-30".to_string()), dec!(3.7062));
+ exchange_rates.insert(Exchange::USD("2023-07-04".to_string()), dec!(4.0636));
+ exchange_rates.insert(Exchange::USD("2012-01-05".to_string()), dec!(3.5081));
+ exchange_rates.insert(Exchange::USD("2018-12-14".to_string()), dec!(3.8095));
+ exchange_rates.insert(Exchange::USD("2019-08-21".to_string()), dec!(3.921));
+ exchange_rates.insert(Exchange::USD("2017-07-25".to_string()), dec!(3.6519));
+ exchange_rates.insert(Exchange::USD("2017-03-13".to_string()), dec!(4.0747));
+ exchange_rates.insert(Exchange::EUR("2025-04-14".to_string()), dec!(4.2776));
+ exchange_rates.insert(Exchange::USD("2020-07-16".to_string()), dec!(3.9422));
+ exchange_rates.insert(Exchange::USD("2016-12-29".to_string()), dec!(4.2161));
+ exchange_rates.insert(Exchange::USD("2020-08-10".to_string()), dec!(3.7393));
+ exchange_rates.insert(Exchange::USD("2013-09-16".to_string()), dec!(3.1435));
+ exchange_rates.insert(Exchange::USD("2023-03-21".to_string()), dec!(4.3715));
+ exchange_rates.insert(Exchange::USD("2024-12-12".to_string()), dec!(4.074));
+ exchange_rates.insert(Exchange::USD("2013-10-24".to_string()), dec!(3.0323));
+ exchange_rates.insert(Exchange::USD("2012-08-13".to_string()), dec!(3.3202));
+ exchange_rates.insert(Exchange::EUR("2023-05-16".to_string()), dec!(4.4904));
+ exchange_rates.insert(Exchange::USD("2024-05-21".to_string()), dec!(3.9175));
+ exchange_rates.insert(Exchange::USD("2019-02-19".to_string()), dec!(3.8311));
+ exchange_rates.insert(Exchange::USD("2016-06-23".to_string()), dec!(3.8593));
+ exchange_rates.insert(Exchange::USD("2015-11-19".to_string()), dec!(3.9754));
+ exchange_rates.insert(Exchange::USD("2024-04-23".to_string()), dec!(4.061));
+ exchange_rates.insert(Exchange::USD("2022-02-28".to_string()), dec!(4.1965));
+ exchange_rates.insert(Exchange::EUR("2023-03-24".to_string()), dec!(4.6911));
+ exchange_rates.insert(Exchange::USD("2016-05-23".to_string()), dec!(3.9513));
+ exchange_rates.insert(Exchange::USD("2016-06-21".to_string()), dec!(3.8741));
+ exchange_rates.insert(Exchange::USD("2019-12-24".to_string()), dec!(3.8487));
+ exchange_rates.insert(Exchange::USD("2018-11-12".to_string()), dec!(3.8163));
+ exchange_rates.insert(Exchange::USD("2023-10-03".to_string()), dec!(4.4012));
+ exchange_rates.insert(Exchange::EUR("2023-09-06".to_string()), dec!(4.4974));
+ exchange_rates.insert(Exchange::USD("2012-03-14".to_string()), dec!(3.1699));
+ exchange_rates.insert(Exchange::USD("2015-08-25".to_string()), dec!(3.6613));
+ exchange_rates.insert(Exchange::EUR("2025-09-04".to_string()), dec!(4.2553));
+ exchange_rates.insert(Exchange::USD("2019-06-21".to_string()), dec!(3.7705));
+ exchange_rates.insert(Exchange::USD("2012-11-06".to_string()), dec!(3.2223));
+ exchange_rates.insert(Exchange::USD("2012-10-09".to_string()), dec!(3.1501));
+ exchange_rates.insert(Exchange::EUR("2023-03-09".to_string()), dec!(4.6836));
+ exchange_rates.insert(Exchange::EUR("2023-11-29".to_string()), dec!(4.3327));
+ exchange_rates.insert(Exchange::USD("2018-01-02".to_string()), dec!(3.4546));
+ exchange_rates.insert(Exchange::USD("2015-03-31".to_string()), dec!(3.8125));
+ exchange_rates.insert(Exchange::USD("2023-10-24".to_string()), dec!(4.1884));
+ exchange_rates.insert(Exchange::USD("2022-08-01".to_string()), dec!(4.629));
+ exchange_rates.insert(Exchange::USD("2019-10-15".to_string()), dec!(3.8952));
+ exchange_rates.insert(Exchange::USD("2025-07-17".to_string()), dec!(3.6686));
+ exchange_rates.insert(Exchange::EUR("2024-04-26".to_string()), dec!(4.3225));
+ exchange_rates.insert(Exchange::USD("2014-10-13".to_string()), dec!(3.3062));
+ exchange_rates.insert(Exchange::USD("2012-01-11".to_string()), dec!(3.4919));
+ exchange_rates.insert(Exchange::USD("2018-01-17".to_string()), dec!(3.4109));
+ exchange_rates.insert(Exchange::USD("2013-07-09".to_string()), dec!(3.3588));
+ exchange_rates.insert(Exchange::USD("2025-05-06".to_string()), dec!(3.7789));
+ exchange_rates.insert(Exchange::USD("2021-09-30".to_string()), dec!(3.9925));
+ exchange_rates.insert(Exchange::USD("2015-02-25".to_string()), dec!(3.6649));
+ exchange_rates.insert(Exchange::USD("2025-10-08".to_string()), dec!(3.6619));
+ exchange_rates.insert(Exchange::USD("2021-12-13".to_string()), dec!(4.1003));
+ exchange_rates.insert(Exchange::USD("2020-09-30".to_string()), dec!(3.8658));
+ exchange_rates.insert(Exchange::USD("2022-08-16".to_string()), dec!(4.6282));
+ exchange_rates.insert(Exchange::USD("2017-03-06".to_string()), dec!(4.0663));
+ exchange_rates.insert(Exchange::USD("2016-05-02".to_string()), dec!(3.8195));
+ exchange_rates.insert(Exchange::EUR("2023-02-15".to_string()), dec!(4.7593));
+ exchange_rates.insert(Exchange::USD("2021-12-03".to_string()), dec!(4.0653));
+ exchange_rates.insert(Exchange::USD("2024-04-16".to_string()), dec!(4.0687));
+ exchange_rates.insert(Exchange::USD("2021-11-10".to_string()), dec!(3.9737));
+ exchange_rates.insert(Exchange::USD("2017-01-27".to_string()), dec!(4.0595));
+ exchange_rates.insert(Exchange::USD("2017-04-21".to_string()), dec!(3.9841));
+ exchange_rates.insert(Exchange::USD("2016-07-04".to_string()), dec!(3.9886));
+ exchange_rates.insert(Exchange::EUR("2023-04-03".to_string()), dec!(4.6805));
+ exchange_rates.insert(Exchange::USD("2015-07-03".to_string()), dec!(3.7726));
+ exchange_rates.insert(Exchange::USD("2012-10-17".to_string()), dec!(3.1261));
+ exchange_rates.insert(Exchange::USD("2012-03-07".to_string()), dec!(3.1631));
+ exchange_rates.insert(Exchange::USD("2022-07-21".to_string()), dec!(4.6682));
+ exchange_rates.insert(Exchange::USD("2018-10-11".to_string()), dec!(3.7399));
+ exchange_rates.insert(Exchange::USD("2020-01-16".to_string()), dec!(3.7968));
+ exchange_rates.insert(Exchange::EUR("2025-09-08".to_string()), dec!(4.2484));
+ exchange_rates.insert(Exchange::EUR("2023-11-27".to_string()), dec!(4.3543));
+ exchange_rates.insert(Exchange::USD("2022-06-21".to_string()), dec!(4.3917));
+ exchange_rates.insert(Exchange::EUR("2024-08-14".to_string()), dec!(4.2933));
+ exchange_rates.insert(Exchange::USD("2018-12-20".to_string()), dec!(3.7331));
+ exchange_rates.insert(Exchange::USD("2021-07-15".to_string()), dec!(3.8629));
+ exchange_rates.insert(Exchange::USD("2014-03-18".to_string()), dec!(3.0396));
+ exchange_rates.insert(Exchange::USD("2019-09-09".to_string()), dec!(3.931));
+ exchange_rates.insert(Exchange::EUR("2023-06-05".to_string()), dec!(4.4851));
+ exchange_rates.insert(Exchange::EUR("2024-05-24".to_string()), dec!(4.2624));
+ exchange_rates.insert(Exchange::USD("2012-01-25".to_string()), dec!(3.299));
+ exchange_rates.insert(Exchange::EUR("2025-06-27".to_string()), dec!(4.2362));
+ exchange_rates.insert(Exchange::USD("2013-06-25".to_string()), dec!(3.284));
+ exchange_rates.insert(Exchange::USD("2014-09-15".to_string()), dec!(3.2522));
+ exchange_rates.insert(Exchange::USD("2024-12-19".to_string()), dec!(4.0944));
+ exchange_rates.insert(Exchange::USD("2024-01-17".to_string()), dec!(4.0434));
+ exchange_rates.insert(Exchange::USD("2024-07-22".to_string()), dec!(3.9307));
+ exchange_rates.insert(Exchange::USD("2022-09-28".to_string()), dec!(5.0381));
+ exchange_rates.insert(Exchange::USD("2012-07-06".to_string()), dec!(3.4057));
+ exchange_rates.insert(Exchange::USD("2019-12-20".to_string()), dec!(3.8311));
+ exchange_rates.insert(Exchange::USD("2023-12-01".to_string()), dec!(3.991));
+ exchange_rates.insert(Exchange::EUR("2025-01-20".to_string()), dec!(4.2587));
+ exchange_rates.insert(Exchange::USD("2020-12-28".to_string()), dec!(3.6639));
+ exchange_rates.insert(Exchange::USD("2016-03-25".to_string()), dec!(3.8174));
+ exchange_rates.insert(Exchange::USD("2023-04-28".to_string()), dec!(4.1753));
+ exchange_rates.insert(Exchange::USD("2018-09-18".to_string()), dec!(3.6817));
+ exchange_rates.insert(Exchange::EUR("2023-12-01".to_string()), dec!(4.3494));
+ exchange_rates.insert(Exchange::USD("2022-07-07".to_string()), dec!(4.7029));
+ exchange_rates.insert(Exchange::EUR("2023-08-03".to_string()), dec!(4.4585));
+ exchange_rates.insert(Exchange::EUR("2023-11-06".to_string()), dec!(4.4615));
+ exchange_rates.insert(Exchange::EUR("2023-10-03".to_string()), dec!(4.6147));
+ exchange_rates.insert(Exchange::USD("2014-12-03".to_string()), dec!(3.373));
+ exchange_rates.insert(Exchange::USD("2023-03-28".to_string()), dec!(4.33));
+ exchange_rates.insert(Exchange::USD("2021-05-14".to_string()), dec!(3.7374));
+ exchange_rates.insert(Exchange::USD("2013-07-02".to_string()), dec!(3.3222));
+ exchange_rates.insert(Exchange::USD("2021-06-09".to_string()), dec!(3.6545));
+ exchange_rates.insert(Exchange::USD("2024-04-29".to_string()), dec!(4.0346));
+ exchange_rates.insert(Exchange::EUR("2024-10-18".to_string()), dec!(4.3048));
+ exchange_rates.insert(Exchange::USD("2014-12-22".to_string()), dec!(3.4767));
+ exchange_rates.insert(Exchange::EUR("2023-04-13".to_string()), dec!(4.6511));
+ exchange_rates.insert(Exchange::EUR("2025-01-14".to_string()), dec!(4.2737));
+ exchange_rates.insert(Exchange::EUR("2025-08-13".to_string()), dec!(4.2586));
+ exchange_rates.insert(Exchange::USD("2018-09-03".to_string()), dec!(3.6991));
+ exchange_rates.insert(Exchange::USD("2017-12-11".to_string()), dec!(3.5633));
+ exchange_rates.insert(Exchange::USD("2015-09-17".to_string()), dec!(3.7129));
+ exchange_rates.insert(Exchange::USD("2014-11-13".to_string()), dec!(3.386));
+ exchange_rates.insert(Exchange::USD("2023-03-10".to_string()), dec!(4.4266));
+ exchange_rates.insert(Exchange::USD("2021-03-22".to_string()), dec!(3.8768));
+ exchange_rates.insert(Exchange::USD("2021-06-17".to_string()), dec!(3.7931));
+ exchange_rates.insert(Exchange::USD("2019-08-16".to_string()), dec!(3.9281));
+ exchange_rates.insert(Exchange::USD("2017-05-16".to_string()), dec!(3.7932));
+ exchange_rates.insert(Exchange::USD("2014-05-13".to_string()), dec!(3.0381));
+ exchange_rates.insert(Exchange::USD("2014-11-04".to_string()), dec!(3.3776));
+ exchange_rates.insert(Exchange::USD("2019-04-03".to_string()), dec!(3.8192));
+ exchange_rates.insert(Exchange::USD("2025-07-08".to_string()), dec!(3.6135));
+ exchange_rates.insert(Exchange::USD("2023-12-15".to_string()), dec!(3.9326));
+ exchange_rates.insert(Exchange::USD("2012-02-27".to_string()), dec!(3.1176));
+ exchange_rates.insert(Exchange::USD("2012-11-12".to_string()), dec!(3.2803));
+ exchange_rates.insert(Exchange::EUR("2024-03-18".to_string()), dec!(4.3086));
+ exchange_rates.insert(Exchange::USD("2020-01-20".to_string()), dec!(3.8277));
+ exchange_rates.insert(Exchange::USD("2020-04-09".to_string()), dec!(4.1744));
+ exchange_rates.insert(Exchange::USD("2020-08-18".to_string()), dec!(3.6895));
+ exchange_rates.insert(Exchange::USD("2013-04-05".to_string()), dec!(3.2358));
+ exchange_rates.insert(Exchange::USD("2020-05-07".to_string()), dec!(4.2162));
+ exchange_rates.insert(Exchange::USD("2020-11-05".to_string()), dec!(3.8353));
+ exchange_rates.insert(Exchange::USD("2019-03-21".to_string()), dec!(3.7581));
+ exchange_rates.insert(Exchange::USD("2013-01-17".to_string()), dec!(3.0853));
+ exchange_rates.insert(Exchange::EUR("2024-02-01".to_string()), dec!(4.3247));
+ exchange_rates.insert(Exchange::EUR("2024-04-23".to_string()), dec!(4.3335));
+ exchange_rates.insert(Exchange::USD("2025-08-25".to_string()), dec!(3.6421));
+ exchange_rates.insert(Exchange::USD("2024-01-15".to_string()), dec!(3.9963));
+ exchange_rates.insert(Exchange::USD("2020-04-08".to_string()), dec!(4.1801));
+ exchange_rates.insert(Exchange::USD("2021-12-08".to_string()), dec!(4.071));
+ exchange_rates.insert(Exchange::USD("2024-04-03".to_string()), dec!(3.9843));
+ exchange_rates.insert(Exchange::USD("2020-12-23".to_string()), dec!(3.6919));
+ exchange_rates.insert(Exchange::USD("2021-12-24".to_string()), dec!(4.0785));
+ exchange_rates.insert(Exchange::USD("2016-03-07".to_string()), dec!(3.9515));
+ exchange_rates.insert(Exchange::USD("2025-02-28".to_string()), dec!(3.9993));
+ exchange_rates.insert(Exchange::USD("2025-08-07".to_string()), dec!(3.6477));
+ exchange_rates.insert(Exchange::USD("2016-09-08".to_string()), dec!(3.8255));
+ exchange_rates.insert(Exchange::EUR("2023-04-26".to_string()), dec!(4.5887));
+ exchange_rates.insert(Exchange::EUR("2025-01-30".to_string()), dec!(4.2039));
+ exchange_rates.insert(Exchange::USD("2014-12-29".to_string()), dec!(3.527));
+ exchange_rates.insert(Exchange::EUR("2023-10-30".to_string()), dec!(4.4491));
+ exchange_rates.insert(Exchange::USD("2012-07-17".to_string()), dec!(3.3973));
+ exchange_rates.insert(Exchange::USD("2019-04-23".to_string()), dec!(3.8118));
+ exchange_rates.insert(Exchange::EUR("2024-02-14".to_string()), dec!(4.3435));
+ exchange_rates.insert(Exchange::EUR("2025-03-31".to_string()), dec!(4.1839));
+ exchange_rates.insert(Exchange::USD("2023-05-12".to_string()), dec!(4.1638));
+ exchange_rates.insert(Exchange::USD("2017-11-23".to_string()), dec!(3.5557));
+ exchange_rates.insert(Exchange::USD("2013-11-07".to_string()), dec!(3.0844));
+ exchange_rates.insert(Exchange::USD("2024-02-28".to_string()), dec!(3.9922));
+ exchange_rates.insert(Exchange::USD("2021-01-22".to_string()), dec!(3.7255));
+ exchange_rates.insert(Exchange::EUR("2025-09-10".to_string()), dec!(4.2604));
+ exchange_rates.insert(Exchange::USD("2023-04-04".to_string()), dec!(4.2855));
+ exchange_rates.insert(Exchange::USD("2021-05-20".to_string()), dec!(3.7077));
+ exchange_rates.insert(Exchange::USD("2019-12-13".to_string()), dec!(3.8234));
+ exchange_rates.insert(Exchange::USD("2014-09-17".to_string()), dec!(3.2331));
+ exchange_rates.insert(Exchange::USD("2021-10-26".to_string()), dec!(3.974));
+ exchange_rates.insert(Exchange::USD("2020-06-22".to_string()), dec!(3.9667));
+ exchange_rates.insert(Exchange::USD("2015-04-23".to_string()), dec!(3.7371));
+ exchange_rates.insert(Exchange::USD("2021-02-01".to_string()), dec!(3.7323));
+ exchange_rates.insert(Exchange::USD("2024-02-06".to_string()), dec!(4.0484));
+ exchange_rates.insert(Exchange::USD("2023-07-25".to_string()), dec!(4.008));
+ exchange_rates.insert(Exchange::USD("2022-02-16".to_string()), dec!(3.9478));
+ exchange_rates.insert(Exchange::USD("2022-06-09".to_string()), dec!(4.2764));
+ exchange_rates.insert(Exchange::USD("2021-02-17".to_string()), dec!(3.7287));
+ exchange_rates.insert(Exchange::USD("2018-03-29".to_string()), dec!(3.4201));
+ exchange_rates.insert(Exchange::USD("2018-06-08".to_string()), dec!(3.6479));
+ exchange_rates.insert(Exchange::USD("2018-03-01".to_string()), dec!(3.4356));
+ exchange_rates.insert(Exchange::USD("2013-11-22".to_string()), dec!(3.1077));
+ exchange_rates.insert(Exchange::USD("2012-03-06".to_string()), dec!(3.1557));
+ exchange_rates.insert(Exchange::USD("2020-10-22".to_string()), dec!(3.8734));
+ exchange_rates.insert(Exchange::USD("2021-08-17".to_string()), dec!(3.8797));
+ exchange_rates.insert(Exchange::USD("2025-07-10".to_string()), dec!(3.6209));
+ exchange_rates.insert(Exchange::USD("2021-04-23".to_string()), dec!(3.7855));
+ exchange_rates.insert(Exchange::USD("2022-10-20".to_string()), dec!(4.9024));
+ exchange_rates.insert(Exchange::USD("2025-11-18".to_string()), dec!(3.6525));
+ exchange_rates.insert(Exchange::USD("2017-04-27".to_string()), dec!(3.8776));
+ exchange_rates.insert(Exchange::USD("2022-01-17".to_string()), dec!(3.9567));
+ exchange_rates.insert(Exchange::USD("2015-03-24".to_string()), dec!(3.7453));
+ exchange_rates.insert(Exchange::USD("2015-07-10".to_string()), dec!(3.7709));
+ exchange_rates.insert(Exchange::USD("2013-05-29".to_string()), dec!(3.2831));
+ exchange_rates.insert(Exchange::USD("2012-11-02".to_string()), dec!(3.1965));
+ exchange_rates.insert(Exchange::EUR("2023-04-28".to_string()), dec!(4.5889));
+ exchange_rates.insert(Exchange::EUR("2025-02-11".to_string()), dec!(4.1783));
+ exchange_rates.insert(Exchange::USD("2020-02-20".to_string()), dec!(3.9621));
+ exchange_rates.insert(Exchange::USD("2019-06-07".to_string()), dec!(3.7958));
+ exchange_rates.insert(Exchange::USD("2013-01-28".to_string()), dec!(3.1074));
+ exchange_rates.insert(Exchange::EUR("2025-04-25".to_string()), dec!(4.2688));
+ exchange_rates.insert(Exchange::USD("2024-04-19".to_string()), dec!(4.0688));
+ exchange_rates.insert(Exchange::USD("2020-02-19".to_string()), dec!(3.9556));
+ exchange_rates.insert(Exchange::USD("2014-07-30".to_string()), dec!(3.0978));
+ exchange_rates.insert(Exchange::USD("2012-01-20".to_string()), dec!(3.3537));
+ exchange_rates.insert(Exchange::USD("2025-03-28".to_string()), dec!(3.8817));
+ exchange_rates.insert(Exchange::EUR("2025-11-10".to_string()), dec!(4.2351));
+ exchange_rates.insert(Exchange::USD("2013-09-27".to_string()), dec!(3.1328));
+ exchange_rates.insert(Exchange::USD("2019-03-22".to_string()), dec!(3.7948));
+ exchange_rates.insert(Exchange::EUR("2025-10-31".to_string()), dec!(4.2543));
+ exchange_rates.insert(Exchange::USD("2020-03-27".to_string()), dec!(4.1127));
+ exchange_rates.insert(Exchange::USD("2025-04-22".to_string()), dec!(3.722));
+ exchange_rates.insert(Exchange::EUR("2023-10-04".to_string()), dec!(4.6303));
+ exchange_rates.insert(Exchange::USD("2023-05-29".to_string()), dec!(4.2234));
+ exchange_rates.insert(Exchange::USD("2015-12-31".to_string()), dec!(3.9011));
+ exchange_rates.insert(Exchange::USD("2016-02-05".to_string()), dec!(3.942));
+ exchange_rates.insert(Exchange::USD("2023-06-28".to_string()), dec!(4.0719));
+ exchange_rates.insert(Exchange::USD("2015-09-04".to_string()), dec!(3.7952));
+ exchange_rates.insert(Exchange::USD("2023-09-27".to_string()), dec!(4.3622));
+ exchange_rates.insert(Exchange::EUR("2025-11-28".to_string()), dec!(4.2369));
+ exchange_rates.insert(Exchange::EUR("2024-08-01".to_string()), dec!(4.2924));
+ exchange_rates.insert(Exchange::USD("2025-10-27".to_string()), dec!(3.6395));
+ exchange_rates.insert(Exchange::USD("2012-11-07".to_string()), dec!(3.2031));
+ exchange_rates.insert(Exchange::USD("2013-06-04".to_string()), dec!(3.2524));
+ exchange_rates.insert(Exchange::USD("2023-11-24".to_string()), dec!(4.0103));
+ exchange_rates.insert(Exchange::USD("2013-03-11".to_string()), dec!(3.1828));
+ exchange_rates.insert(Exchange::USD("2017-11-08".to_string()), dec!(3.6595));
+ exchange_rates.insert(Exchange::EUR("2024-11-04".to_string()), dec!(4.3443));
+ exchange_rates.insert(Exchange::USD("2024-06-19".to_string()), dec!(4.0387));
+ exchange_rates.insert(Exchange::USD("2023-08-16".to_string()), dec!(4.0832));
+ exchange_rates.insert(Exchange::USD("2024-12-31".to_string()), dec!(4.1012));
+ exchange_rates.insert(Exchange::USD("2013-01-25".to_string()), dec!(3.1186));
+ exchange_rates.insert(Exchange::USD("2025-12-18".to_string()), dec!(3.5893));
+ exchange_rates.insert(Exchange::USD("2023-09-04".to_string()), dec!(4.1353));
+ exchange_rates.insert(Exchange::USD("2016-07-22".to_string()), dec!(3.9504));
+ exchange_rates.insert(Exchange::USD("2018-05-16".to_string()), dec!(3.6241));
+ exchange_rates.insert(Exchange::USD("2020-09-11".to_string()), dec!(3.7534));
+ exchange_rates.insert(Exchange::USD("2021-05-05".to_string()), dec!(3.8136));
+ exchange_rates.insert(Exchange::USD("2022-10-05".to_string()), dec!(4.838));
+ exchange_rates.insert(Exchange::USD("2012-06-25".to_string()), dec!(3.4105));
+ exchange_rates.insert(Exchange::EUR("2025-09-12".to_string()), dec!(4.2593));
+ exchange_rates.insert(Exchange::USD("2025-05-21".to_string()), dec!(3.7452));
+ exchange_rates.insert(Exchange::USD("2023-12-19".to_string()), dec!(3.9591));
+ exchange_rates.insert(Exchange::USD("2022-03-14".to_string()), dec!(4.3221));
+ exchange_rates.insert(Exchange::USD("2021-12-27".to_string()), dec!(4.0889));
+ exchange_rates.insert(Exchange::USD("2012-07-19".to_string()), dec!(3.39));
+ exchange_rates.insert(Exchange::USD("2014-08-21".to_string()), dec!(3.1569));
+ exchange_rates.insert(Exchange::EUR("2025-08-20".to_string()), dec!(4.2524));
+ exchange_rates.insert(Exchange::EUR("2023-01-13".to_string()), dec!(4.6915));
+ exchange_rates.insert(Exchange::USD("2022-01-13".to_string()), dec!(3.9463));
+ exchange_rates.insert(Exchange::USD("2022-08-19".to_string()), dec!(4.7061));
+ exchange_rates.insert(Exchange::USD("2021-10-12".to_string()), dec!(3.9664));
+ exchange_rates.insert(Exchange::USD("2016-08-01".to_string()), dec!(3.904));
+ exchange_rates.insert(Exchange::USD("2014-06-03".to_string()), dec!(3.0449));
+ exchange_rates.insert(Exchange::USD("2013-02-12".to_string()), dec!(3.1159));
+ exchange_rates.insert(Exchange::USD("2020-07-02".to_string()), dec!(3.9528));
+ exchange_rates.insert(Exchange::EUR("2023-02-24".to_string()), dec!(4.7245));
+ exchange_rates.insert(Exchange::EUR("2023-05-19".to_string()), dec!(4.5367));
+ exchange_rates.insert(Exchange::USD("2018-01-30".to_string()), dec!(3.3442));
+ exchange_rates.insert(Exchange::USD("2023-01-16".to_string()), dec!(4.3436));
+ exchange_rates.insert(Exchange::USD("2020-06-15".to_string()), dec!(3.9413));
+ exchange_rates.insert(Exchange::USD("2023-05-16".to_string()), dec!(4.1228));
+ exchange_rates.insert(Exchange::USD("2017-03-16".to_string()), dec!(4.03));
+ exchange_rates.insert(Exchange::EUR("2024-03-14".to_string()), dec!(4.287));
+ exchange_rates.insert(Exchange::USD("2023-04-03".to_string()), dec!(4.3168));
+ exchange_rates.insert(Exchange::USD("2015-10-14".to_string()), dec!(3.7129));
+ exchange_rates.insert(Exchange::USD("2014-01-23".to_string()), dec!(3.0559));
+ exchange_rates.insert(Exchange::EUR("2025-05-22".to_string()), dec!(4.2447));
+ exchange_rates.insert(Exchange::USD("2017-04-10".to_string()), dec!(3.9956));
+ exchange_rates.insert(Exchange::EUR("2025-01-22".to_string()), dec!(4.2461));
+ exchange_rates.insert(Exchange::USD("2022-02-24".to_string()), dec!(4.1281));
+ exchange_rates.insert(Exchange::USD("2024-07-30".to_string()), dec!(3.9567));
+ exchange_rates.insert(Exchange::USD("2021-01-12".to_string()), dec!(3.7188));
+ exchange_rates.insert(Exchange::USD("2019-01-11".to_string()), dec!(3.7289));
+ exchange_rates.insert(Exchange::USD("2015-08-11".to_string()), dec!(3.8087));
+ exchange_rates.insert(Exchange::EUR("2024-02-13".to_string()), dec!(4.3214));
+ exchange_rates.insert(Exchange::USD("2021-07-16".to_string()), dec!(3.8808));
+ exchange_rates.insert(Exchange::USD("2014-04-30".to_string()), dec!(3.044));
+ exchange_rates.insert(Exchange::USD("2017-06-12".to_string()), dec!(3.735));
+ exchange_rates.insert(Exchange::USD("2019-09-13".to_string()), dec!(3.912));
+ exchange_rates.insert(Exchange::USD("2025-01-03".to_string()), dec!(4.1512));
+ exchange_rates.insert(Exchange::USD("2025-07-24".to_string()), dec!(3.6158));
+ exchange_rates.insert(Exchange::USD("2012-05-30".to_string()), dec!(3.5139));
+ exchange_rates.insert(Exchange::USD("2014-11-14".to_string()), dec!(3.3933));
+ exchange_rates.insert(Exchange::USD("2017-01-23".to_string()), dec!(4.076));
+ exchange_rates.insert(Exchange::USD("2014-09-18".to_string()), dec!(3.249));
+ exchange_rates.insert(Exchange::USD("2013-10-25".to_string()), dec!(3.0326));
+ exchange_rates.insert(Exchange::USD("2017-08-31".to_string()), dec!(3.5822));
+ exchange_rates.insert(Exchange::USD("2023-07-03".to_string()), dec!(4.0714));
+ exchange_rates.insert(Exchange::USD("2020-01-10".to_string()), dec!(3.8272));
+ exchange_rates.insert(Exchange::USD("2016-02-09".to_string()), dec!(3.9771));
+ exchange_rates.insert(Exchange::USD("2022-05-20".to_string()), dec!(4.3832));
+ exchange_rates.insert(Exchange::EUR("2024-05-10".to_string()), dec!(4.2979));
+ exchange_rates.insert(Exchange::USD("2025-03-25".to_string()), dec!(3.8578));
+ exchange_rates.insert(Exchange::USD("2018-02-09".to_string()), dec!(3.4263));
+ exchange_rates.insert(Exchange::EUR("2023-12-14".to_string()), dec!(4.3053));
+ exchange_rates.insert(Exchange::USD("2015-11-13".to_string()), dec!(3.9388));
+ exchange_rates.insert(Exchange::EUR("2025-09-29".to_string()), dec!(4.2688));
+ exchange_rates.insert(Exchange::USD("2017-10-11".to_string()), dec!(3.6219));
+ exchange_rates.insert(Exchange::USD("2016-08-24".to_string()), dec!(3.8174));
+ exchange_rates.insert(Exchange::EUR("2024-07-09".to_string()), dec!(4.2633));
+ exchange_rates.insert(Exchange::USD("2024-09-20".to_string()), dec!(3.8317));
+ exchange_rates.insert(Exchange::USD("2013-11-14".to_string()), dec!(3.115));
+ exchange_rates.insert(Exchange::USD("2023-02-24".to_string()), dec!(4.463));
+ exchange_rates.insert(Exchange::USD("2017-05-30".to_string()), dec!(3.7471));
+ exchange_rates.insert(Exchange::USD("2012-11-15".to_string()), dec!(3.2678));
+ exchange_rates.insert(Exchange::USD("2015-06-18".to_string()), dec!(3.6556));
+ exchange_rates.insert(Exchange::USD("2024-08-23".to_string()), dec!(3.8453));
+ exchange_rates.insert(Exchange::USD("2022-04-13".to_string()), dec!(4.2872));
+ exchange_rates.insert(Exchange::USD("2024-06-20".to_string()), dec!(4.0345));
+ exchange_rates.insert(Exchange::USD("2022-04-12".to_string()), dec!(4.2926));
+ exchange_rates.insert(Exchange::USD("2015-09-07".to_string()), dec!(3.7928));
+ exchange_rates.insert(Exchange::USD("2013-12-11".to_string()), dec!(3.0386));
+ exchange_rates.insert(Exchange::USD("2021-04-02".to_string()), dec!(3.8986));
+ exchange_rates.insert(Exchange::USD("2013-08-12".to_string()), dec!(3.151));
+ exchange_rates.insert(Exchange::USD("2013-10-23".to_string()), dec!(3.0385));
+ exchange_rates.insert(Exchange::USD("2013-03-28".to_string()), dec!(3.2773));
+ exchange_rates.insert(Exchange::EUR("2023-05-10".to_string()), dec!(4.5488));
+ exchange_rates.insert(Exchange::EUR("2024-04-18".to_string()), dec!(4.3309));
+ exchange_rates.insert(Exchange::USD("2020-01-15".to_string()), dec!(3.7992));
+ exchange_rates.insert(Exchange::USD("2017-11-27".to_string()), dec!(3.5276));
+ exchange_rates.insert(Exchange::EUR("2023-07-17".to_string()), dec!(4.452));
+ exchange_rates.insert(Exchange::USD("2022-02-07".to_string()), dec!(3.9872));
+ exchange_rates.insert(Exchange::USD("2014-08-14".to_string()), dec!(3.1285));
+ exchange_rates.insert(Exchange::USD("2013-05-24".to_string()), dec!(3.24));
+ exchange_rates.insert(Exchange::USD("2018-03-19".to_string()), dec!(3.4341));
+ exchange_rates.insert(Exchange::USD("2025-06-11".to_string()), dec!(3.7306));
+ exchange_rates.insert(Exchange::USD("2023-11-09".to_string()), dec!(4.1513));
+ exchange_rates.insert(Exchange::USD("2015-05-19".to_string()), dec!(3.6152));
+ exchange_rates.insert(Exchange::USD("2016-07-12".to_string()), dec!(3.9807));
+ exchange_rates.insert(Exchange::USD("2014-09-16".to_string()), dec!(3.2419));
+ exchange_rates.insert(Exchange::USD("2019-02-26".to_string()), dec!(3.8124));
+ exchange_rates.insert(Exchange::USD("2023-09-08".to_string()), dec!(4.2958));
+ exchange_rates.insert(Exchange::EUR("2025-12-29".to_string()), dec!(4.2274));
+ exchange_rates.insert(Exchange::USD("2013-05-14".to_string()), dec!(3.1998));
+ exchange_rates.insert(Exchange::USD("2013-01-02".to_string()), dec!(3.066));
+ exchange_rates.insert(Exchange::USD("2014-07-07".to_string()), dec!(3.0497));
+ exchange_rates.insert(Exchange::USD("2015-04-02".to_string()), dec!(3.7524));
+ exchange_rates.insert(Exchange::EUR("2023-02-02".to_string()), dec!(4.7079));
+ exchange_rates.insert(Exchange::USD("2015-12-30".to_string()), dec!(3.8801));
+ exchange_rates.insert(Exchange::USD("2022-06-01".to_string()), dec!(4.2817));
+ exchange_rates.insert(Exchange::EUR("2024-08-05".to_string()), dec!(4.3073));
+ exchange_rates.insert(Exchange::USD("2019-02-28".to_string()), dec!(3.7853));
+ exchange_rates.insert(Exchange::USD("2022-06-14".to_string()), dec!(4.4478));
+ exchange_rates.insert(Exchange::USD("2016-09-22".to_string()), dec!(3.8128));
+ exchange_rates.insert(Exchange::USD("2014-04-03".to_string()), dec!(3.033));
+ exchange_rates.insert(Exchange::USD("2018-05-04".to_string()), dec!(3.5754));
+ exchange_rates.insert(Exchange::USD("2024-04-05".to_string()), dec!(3.9571));
+ exchange_rates.insert(Exchange::USD("2020-11-06".to_string()), dec!(3.8194));
+ exchange_rates.insert(Exchange::USD("2019-01-14".to_string()), dec!(3.7458));
+ exchange_rates.insert(Exchange::USD("2022-04-01".to_string()), dec!(4.1978));
+ exchange_rates.insert(Exchange::USD("2020-11-18".to_string()), dec!(3.7621));
+ exchange_rates.insert(Exchange::USD("2018-06-11".to_string()), dec!(3.6247));
+ exchange_rates.insert(Exchange::USD("2022-07-29".to_string()), dec!(4.6365));
+ exchange_rates.insert(Exchange::USD("2021-03-23".to_string()), dec!(3.8746));
+ exchange_rates.insert(Exchange::USD("2022-04-07".to_string()), dec!(4.2727));
+ exchange_rates.insert(Exchange::USD("2018-10-31".to_string()), dec!(3.8203));
+ exchange_rates.insert(Exchange::EUR("2025-10-08".to_string()), dec!(4.2533));
+ exchange_rates.insert(Exchange::EUR("2023-12-12".to_string()), dec!(4.3396));
+ exchange_rates.insert(Exchange::USD("2020-12-29".to_string()), dec!(3.6778));
+ exchange_rates.insert(Exchange::USD("2018-06-04".to_string()), dec!(3.6665));
+ exchange_rates.insert(Exchange::USD("2025-12-16".to_string()), dec!(3.593));
+ exchange_rates.insert(Exchange::USD("2020-03-26".to_string()), dec!(4.1988));
+ exchange_rates.insert(Exchange::USD("2023-08-03".to_string()), dec!(4.081));
+ exchange_rates.insert(Exchange::USD("2019-05-02".to_string()), dec!(3.8177));
+ exchange_rates.insert(Exchange::EUR("2025-04-29".to_string()), dec!(4.2646));
+ exchange_rates.insert(Exchange::USD("2013-08-19".to_string()), dec!(3.1873));
+ exchange_rates.insert(Exchange::USD("2025-05-20".to_string()), dec!(3.7747));
+ exchange_rates.insert(Exchange::USD("2024-09-30".to_string()), dec!(3.8193));
+ exchange_rates.insert(Exchange::USD("2023-03-08".to_string()), dec!(4.4626));
+ exchange_rates.insert(Exchange::USD("2022-01-05".to_string()), dec!(4.0396));
+ exchange_rates.insert(Exchange::USD("2014-02-20".to_string()), dec!(3.049));
+ exchange_rates.insert(Exchange::EUR("2024-08-02".to_string()), dec!(4.2903));
+ exchange_rates.insert(Exchange::USD("2016-05-19".to_string()), dec!(3.9161));
+ exchange_rates.insert(Exchange::EUR("2024-02-08".to_string()), dec!(4.3449));
+ exchange_rates.insert(Exchange::USD("2018-04-10".to_string()), dec!(3.4068));
+ exchange_rates.insert(Exchange::USD("2013-09-06".to_string()), dec!(3.2732));
+ exchange_rates.insert(Exchange::USD("2012-02-03".to_string()), dec!(3.1848));
+ exchange_rates.insert(Exchange::USD("2016-12-20".to_string()), dec!(4.2493));
+ exchange_rates.insert(Exchange::USD("2016-02-23".to_string()), dec!(3.9671));
+ exchange_rates.insert(Exchange::USD("2012-05-18".to_string()), dec!(3.4431));
+ exchange_rates.insert(Exchange::USD("2017-02-13".to_string()), dec!(4.0496));
+ exchange_rates.insert(Exchange::USD("2018-05-07".to_string()), dec!(3.5634));
+ exchange_rates.insert(Exchange::USD("2012-01-04".to_string()), dec!(3.432));
+ exchange_rates.insert(Exchange::USD("2017-09-13".to_string()), dec!(3.5627));
+ exchange_rates.insert(Exchange::USD("2018-07-24".to_string()), dec!(3.702));
+ exchange_rates.insert(Exchange::USD("2023-11-29".to_string()), dec!(3.9478));
+ exchange_rates.insert(Exchange::EUR("2025-11-27".to_string()), dec!(4.227));
+ exchange_rates.insert(Exchange::USD("2012-08-10".to_string()), dec!(3.3195));
+ exchange_rates.insert(Exchange::USD("2020-03-02".to_string()), dec!(3.9023));
+ exchange_rates.insert(Exchange::USD("2014-10-03".to_string()), dec!(3.3079));
+ exchange_rates.insert(Exchange::EUR("2025-11-06".to_string()), dec!(4.2566));
+ exchange_rates.insert(Exchange::USD("2016-03-21".to_string()), dec!(3.7838));
+ exchange_rates.insert(Exchange::USD("2025-08-26".to_string()), dec!(3.6716));
+ exchange_rates.insert(Exchange::USD("2023-09-13".to_string()), dec!(4.3225));
+ exchange_rates.insert(Exchange::USD("2017-02-24".to_string()), dec!(4.0681));
+ exchange_rates.insert(Exchange::USD("2015-02-26".to_string()), dec!(3.6519));
+ exchange_rates.insert(Exchange::USD("2012-11-23".to_string()), dec!(3.1945));
+ exchange_rates.insert(Exchange::EUR("2025-01-08".to_string()), dec!(4.2656));
+ exchange_rates.insert(Exchange::USD("2024-05-29".to_string()), dec!(3.9244));
+ exchange_rates.insert(Exchange::USD("2024-12-17".to_string()), dec!(4.0623));
+ exchange_rates.insert(Exchange::USD("2022-09-30".to_string()), dec!(4.9533));
+ exchange_rates.insert(Exchange::USD("2014-12-15".to_string()), dec!(3.3621));
+ exchange_rates.insert(Exchange::EUR("2023-03-22".to_string()), dec!(4.6888));
+ exchange_rates.insert(Exchange::USD("2017-02-09".to_string()), dec!(4.0332));
+ exchange_rates.insert(Exchange::USD("2020-04-21".to_string()), dec!(4.1779));
+ exchange_rates.insert(Exchange::USD("2016-07-29".to_string()), dec!(3.9364));
+ exchange_rates.insert(Exchange::EUR("2024-07-26".to_string()), dec!(4.2773));
+ exchange_rates.insert(Exchange::USD("2024-02-23".to_string()), dec!(4.005));
+ exchange_rates.insert(Exchange::USD("2020-05-08".to_string()), dec!(4.2065));
+ exchange_rates.insert(Exchange::USD("2024-12-30".to_string()), dec!(4.096));
+ exchange_rates.insert(Exchange::EUR("2025-02-18".to_string()), dec!(4.1574));
+ exchange_rates.insert(Exchange::USD("2017-07-12".to_string()), dec!(3.7034));
+ exchange_rates.insert(Exchange::USD("2025-06-12".to_string()), dec!(3.6929));
+ exchange_rates.insert(Exchange::USD("2024-03-21".to_string()), dec!(3.9431));
+ exchange_rates.insert(Exchange::USD("2021-04-13".to_string()), dec!(3.8342));
+ exchange_rates.insert(Exchange::USD("2016-11-10".to_string()), dec!(3.9856));
+ exchange_rates.insert(Exchange::USD("2019-08-26".to_string()), dec!(3.9335));
+ exchange_rates.insert(Exchange::USD("2013-03-01".to_string()), dec!(3.1769));
+ exchange_rates.insert(Exchange::EUR("2023-08-23".to_string()), dec!(4.4834));
+ exchange_rates.insert(Exchange::EUR("2024-08-19".to_string()), dec!(4.2693));
+ exchange_rates.insert(Exchange::EUR("2025-12-11".to_string()), dec!(4.2284));
+ exchange_rates.insert(Exchange::USD("2022-12-15".to_string()), dec!(4.41));
+ exchange_rates.insert(Exchange::EUR("2024-11-20".to_string()), dec!(4.3404));
+ exchange_rates.insert(Exchange::USD("2020-12-21".to_string()), dec!(3.7082));
+ exchange_rates.insert(Exchange::USD("2016-06-03".to_string()), dec!(3.9384));
+ exchange_rates.insert(Exchange::USD("2015-01-26".to_string()), dec!(3.7601));
+ exchange_rates.insert(Exchange::EUR("2024-09-10".to_string()), dec!(4.2827));
+ exchange_rates.insert(Exchange::USD("2023-02-13".to_string()), dec!(4.4856));
+ exchange_rates.insert(Exchange::USD("2016-08-03".to_string()), dec!(3.8516));
+ exchange_rates.insert(Exchange::USD("2023-03-23".to_string()), dec!(4.3011));
+ exchange_rates.insert(Exchange::EUR("2025-12-30".to_string()), dec!(4.2293));
+ exchange_rates.insert(Exchange::USD("2020-07-27".to_string()), dec!(3.7643));
+ exchange_rates.insert(Exchange::USD("2021-05-19".to_string()), dec!(3.7087));
+ exchange_rates.insert(Exchange::USD("2018-03-16".to_string()), dec!(3.4214));
+ exchange_rates.insert(Exchange::EUR("2024-10-31".to_string()), dec!(4.353));
+ exchange_rates.insert(Exchange::EUR("2025-06-04".to_string()), dec!(4.2778));
+ exchange_rates.insert(Exchange::EUR("2024-09-25".to_string()), dec!(4.2634));
+ exchange_rates.insert(Exchange::EUR("2023-04-27".to_string()), dec!(4.5915));
+ exchange_rates.insert(Exchange::USD("2022-03-04".to_string()), dec!(4.391));
+ exchange_rates.insert(Exchange::USD("2025-07-01".to_string()), dec!(3.593));
+ exchange_rates.insert(Exchange::USD("2023-04-26".to_string()), dec!(4.1557));
+ exchange_rates.insert(Exchange::USD("2025-12-15".to_string()), dec!(3.5928));
+ exchange_rates.insert(Exchange::USD("2018-12-18".to_string()), dec!(3.7668));
+ exchange_rates.insert(Exchange::USD("2025-10-21".to_string()), dec!(3.6479));
+ exchange_rates.insert(Exchange::USD("2020-09-16".to_string()), dec!(3.7526));
+ exchange_rates.insert(Exchange::EUR("2023-09-26".to_string()), dec!(4.6077));
+ exchange_rates.insert(Exchange::USD("2022-09-08".to_string()), dec!(4.7268));
+ exchange_rates.insert(Exchange::USD("2022-03-16".to_string()), dec!(4.2828));
+ exchange_rates.insert(Exchange::USD("2016-07-11".to_string()), dec!(4.006));
+ exchange_rates.insert(Exchange::USD("2017-09-19".to_string()), dec!(3.5821));
+ exchange_rates.insert(Exchange::USD("2022-12-01".to_string()), dec!(4.4911));
+ exchange_rates.insert(Exchange::EUR("2023-12-29".to_string()), dec!(4.348));
+ exchange_rates.insert(Exchange::USD("2018-09-10".to_string()), dec!(3.7283));
+ exchange_rates.insert(Exchange::EUR("2024-06-17".to_string()), dec!(4.3608));
+ exchange_rates.insert(Exchange::USD("2018-05-11".to_string()), dec!(3.5708));
+ exchange_rates.insert(Exchange::USD("2015-01-12".to_string()), dec!(3.6218));
+ exchange_rates.insert(Exchange::USD("2013-03-25".to_string()), dec!(3.195));
+ exchange_rates.insert(Exchange::USD("2014-10-27".to_string()), dec!(3.3288));
+ exchange_rates.insert(Exchange::EUR("2023-06-26".to_string()), dec!(4.4297));
+ exchange_rates.insert(Exchange::USD("2018-02-06".to_string()), dec!(3.3498));
+ exchange_rates.insert(Exchange::USD("2018-08-13".to_string()), dec!(3.7862));
+ exchange_rates.insert(Exchange::USD("2016-08-18".to_string()), dec!(3.7826));
+ exchange_rates.insert(Exchange::USD("2015-01-20".to_string()), dec!(3.7346));
+ exchange_rates.insert(Exchange::EUR("2024-07-08".to_string()), dec!(4.278));
+ exchange_rates.insert(Exchange::USD("2023-01-30".to_string()), dec!(4.3258));
+ exchange_rates.insert(Exchange::EUR("2024-05-21".to_string()), dec!(4.2572));
+ exchange_rates.insert(Exchange::USD("2013-12-12".to_string()), dec!(3.0415));
+ exchange_rates.insert(Exchange::USD("2025-02-18".to_string()), dec!(3.9729));
+ exchange_rates.insert(Exchange::USD("2020-09-03".to_string()), dec!(3.7337));
+ exchange_rates.insert(Exchange::USD("2019-11-08".to_string()), dec!(3.8625));
+ exchange_rates.insert(Exchange::USD("2015-10-29".to_string()), dec!(3.8974));
+ exchange_rates.insert(Exchange::USD("2017-11-03".to_string()), dec!(3.6408));
+ exchange_rates.insert(Exchange::USD("2012-02-09".to_string()), dec!(3.1487));
+ exchange_rates.insert(Exchange::USD("2017-01-02".to_string()), dec!(4.2106));
+ exchange_rates.insert(Exchange::USD("2021-10-19".to_string()), dec!(3.9212));
+ exchange_rates.insert(Exchange::USD("2019-09-06".to_string()), dec!(3.9315));
+ exchange_rates.insert(Exchange::USD("2019-07-15".to_string()), dec!(3.7856));
+ exchange_rates.insert(Exchange::USD("2017-03-31".to_string()), dec!(3.9455));
+ exchange_rates.insert(Exchange::USD("2016-11-21".to_string()), dec!(4.1748));
+ exchange_rates.insert(Exchange::USD("2015-11-30".to_string()), dec!(4.0304));
+ exchange_rates.insert(Exchange::USD("2024-11-07".to_string()), dec!(4.0414));
+ exchange_rates.insert(Exchange::USD("2022-05-09".to_string()), dec!(4.4784));
+ exchange_rates.insert(Exchange::USD("2012-10-30".to_string()), dec!(3.2036));
+ exchange_rates.insert(Exchange::USD("2019-11-22".to_string()), dec!(3.8853));
+ exchange_rates.insert(Exchange::USD("2014-02-24".to_string()), dec!(3.0255));
+ exchange_rates.insert(Exchange::USD("2018-07-25".to_string()), dec!(3.6793));
+ exchange_rates.insert(Exchange::EUR("2025-07-17".to_string()), dec!(4.2559));
+ exchange_rates.insert(Exchange::USD("2017-05-19".to_string()), dec!(3.7735));
+ exchange_rates.insert(Exchange::USD("2015-08-07".to_string()), dec!(3.8326));
+ exchange_rates.insert(Exchange::USD("2025-04-16".to_string()), dec!(3.7851));
+ exchange_rates.insert(Exchange::USD("2021-09-13".to_string()), dec!(3.8495));
+ exchange_rates.insert(Exchange::USD("2016-05-09".to_string()), dec!(3.873));
+ exchange_rates.insert(Exchange::USD("2022-02-02".to_string()), dec!(4.0283));
+ exchange_rates.insert(Exchange::USD("2022-10-26".to_string()), dec!(4.7538));
+ exchange_rates.insert(Exchange::USD("2020-04-01".to_string()), dec!(4.1701));
+ exchange_rates.insert(Exchange::USD("2020-09-08".to_string()), dec!(3.7652));
+ exchange_rates.insert(Exchange::EUR("2023-03-08".to_string()), dec!(4.7018));
+ exchange_rates.insert(Exchange::USD("2019-06-24".to_string()), dec!(3.736));
+ exchange_rates.insert(Exchange::USD("2021-01-21".to_string()), dec!(3.7312));
+ exchange_rates.insert(Exchange::EUR("2023-05-02".to_string()), dec!(4.5892));
+ exchange_rates.insert(Exchange::USD("2018-01-23".to_string()), dec!(3.4084));
+ exchange_rates.insert(Exchange::USD("2019-11-07".to_string()), dec!(3.8502));
+ exchange_rates.insert(Exchange::EUR("2025-02-26".to_string()), dec!(4.1394));
+ exchange_rates.insert(Exchange::USD("2019-08-05".to_string()), dec!(3.8739));
+ exchange_rates.insert(Exchange::USD("2025-03-12".to_string()), dec!(3.8496));
+ exchange_rates.insert(Exchange::USD("2019-05-07".to_string()), dec!(3.8278));
+ exchange_rates.insert(Exchange::USD("2017-05-22".to_string()), dec!(3.7526));
+ exchange_rates.insert(Exchange::USD("2020-03-04".to_string()), dec!(3.8536));
+ exchange_rates.insert(Exchange::USD("2017-04-13".to_string()), dec!(3.9886));
+ exchange_rates.insert(Exchange::USD("2017-01-13".to_string()), dec!(4.1084));
+ exchange_rates.insert(Exchange::USD("2019-07-24".to_string()), dec!(3.8229));
+ exchange_rates.insert(Exchange::USD("2017-10-17".to_string()), dec!(3.5964));
+ exchange_rates.insert(Exchange::USD("2015-12-16".to_string()), dec!(3.9644));
+ exchange_rates.insert(Exchange::EUR("2025-11-04".to_string()), dec!(4.2575));
+ exchange_rates.insert(Exchange::USD("2024-08-16".to_string()), dec!(3.8914));
+ exchange_rates.insert(Exchange::USD("2023-01-26".to_string()), dec!(4.3354));
+ exchange_rates.insert(Exchange::USD("2019-01-07".to_string()), dec!(3.7575));
+ exchange_rates.insert(Exchange::EUR("2023-09-05".to_string()), dec!(4.4764));
+ exchange_rates.insert(Exchange::USD("2022-11-08".to_string()), dec!(4.6893));
+ exchange_rates.insert(Exchange::EUR("2025-04-30".to_string()), dec!(4.2778));
+ exchange_rates.insert(Exchange::USD("2017-10-03".to_string()), dec!(3.6737));
+ exchange_rates.insert(Exchange::USD("2017-12-12".to_string()), dec!(3.5708));
+ exchange_rates.insert(Exchange::USD("2020-08-11".to_string()), dec!(3.739));
+ exchange_rates.insert(Exchange::USD("2023-03-16".to_string()), dec!(4.4248));
+ exchange_rates.insert(Exchange::EUR("2023-06-12".to_string()), dec!(4.4366));
+ exchange_rates.insert(Exchange::USD("2020-09-10".to_string()), dec!(3.761));
+ exchange_rates.insert(Exchange::USD("2017-04-06".to_string()), dec!(3.9792));
+ exchange_rates.insert(Exchange::USD("2013-12-03".to_string()), dec!(3.0973));
+ exchange_rates.insert(Exchange::EUR("2025-06-18".to_string()), dec!(4.2717));
+ exchange_rates.insert(Exchange::EUR("2023-01-03".to_string()), dec!(4.68));
+ exchange_rates.insert(Exchange::USD("2020-08-03".to_string()), dec!(3.7499));
+ exchange_rates.insert(Exchange::USD("2015-09-03".to_string()), dec!(3.7645));
+ exchange_rates.insert(Exchange::USD("2023-07-27".to_string()), dec!(3.9702));
+ exchange_rates.insert(Exchange::USD("2017-05-17".to_string()), dec!(3.7808));
+ exchange_rates.insert(Exchange::USD("2015-06-30".to_string()), dec!(3.7645));
+ exchange_rates.insert(Exchange::USD("2013-09-25".to_string()), dec!(3.1234));
+ exchange_rates.insert(Exchange::USD("2024-10-25".to_string()), dec!(4.0219));
+ exchange_rates.insert(Exchange::USD("2022-09-12".to_string()), dec!(4.6225));
+ exchange_rates.insert(Exchange::USD("2017-08-30".to_string()), dec!(3.5678));
+ exchange_rates.insert(Exchange::USD("2018-04-17".to_string()), dec!(3.3572));
+ exchange_rates.insert(Exchange::USD("2021-02-02".to_string()), dec!(3.7311));
+ exchange_rates.insert(Exchange::USD("2017-12-27".to_string()), dec!(3.5253));
+ exchange_rates.insert(Exchange::USD("2012-03-15".to_string()), dec!(3.1723));
+ exchange_rates.insert(Exchange::USD("2025-05-05".to_string()), dec!(3.7752));
+ exchange_rates.insert(Exchange::USD("2018-05-30".to_string()), dec!(3.72));
+ exchange_rates.insert(Exchange::USD("2019-01-17".to_string()), dec!(3.7615));
+ exchange_rates.insert(Exchange::USD("2023-04-07".to_string()), dec!(4.2932));
+ exchange_rates.insert(Exchange::USD("2025-04-04".to_string()), dec!(3.856));
+ exchange_rates.insert(Exchange::USD("2017-05-15".to_string()), dec!(3.8463));
+ exchange_rates.insert(Exchange::USD("2019-10-28".to_string()), dec!(3.8529));
+ exchange_rates.insert(Exchange::USD("2017-08-03".to_string()), dec!(3.5918));
+ exchange_rates.insert(Exchange::EUR("2023-06-20".to_string()), dec!(4.4386));
+ exchange_rates.insert(Exchange::USD("2013-10-28".to_string()), dec!(3.0271));
+ exchange_rates.insert(Exchange::EUR("2024-04-05".to_string()), dec!(4.2883));
+ exchange_rates.insert(Exchange::USD("2018-06-01".to_string()), dec!(3.6934));
+ exchange_rates.insert(Exchange::USD("2016-01-05".to_string()), dec!(4.0073));
+ exchange_rates.insert(Exchange::EUR("2024-10-04".to_string()), dec!(4.313));
+ exchange_rates.insert(Exchange::USD("2016-07-19".to_string()), dec!(3.9582));
+ exchange_rates.insert(Exchange::USD("2017-11-16".to_string()), dec!(3.5958));
+ exchange_rates.insert(Exchange::USD("2016-12-22".to_string()), dec!(4.2222));
+ exchange_rates.insert(Exchange::EUR("2025-09-11".to_string()), dec!(4.2626));
+ exchange_rates.insert(Exchange::USD("2014-02-17".to_string()), dec!(3.025));
+ exchange_rates.insert(Exchange::USD("2025-11-17".to_string()), dec!(3.64));
+ exchange_rates.insert(Exchange::USD("2015-05-27".to_string()), dec!(3.7906));
+ exchange_rates.insert(Exchange::USD("2015-09-28".to_string()), dec!(3.7861));
+ exchange_rates.insert(Exchange::USD("2013-06-21".to_string()), dec!(3.2743));
+ exchange_rates.insert(Exchange::USD("2012-10-22".to_string()), dec!(3.147));
+ exchange_rates.insert(Exchange::USD("2017-05-10".to_string()), dec!(3.8777));
+ exchange_rates.insert(Exchange::USD("2016-06-08".to_string()), dec!(3.815));
+ exchange_rates.insert(Exchange::USD("2012-11-30".to_string()), dec!(3.1585));
+ exchange_rates.insert(Exchange::USD("2023-06-21".to_string()), dec!(4.0648));
+ exchange_rates.insert(Exchange::USD("2025-01-24".to_string()), dec!(4.0124));
+ exchange_rates.insert(Exchange::USD("2025-07-25".to_string()), dec!(3.6228));
+ exchange_rates.insert(Exchange::USD("2023-01-20".to_string()), dec!(4.352));
+ exchange_rates.insert(Exchange::USD("2021-10-22".to_string()), dec!(3.9576));
+ exchange_rates.insert(Exchange::USD("2022-10-12".to_string()), dec!(5.0014));
+ exchange_rates.insert(Exchange::USD("2025-03-31".to_string()), dec!(3.8643));
+ exchange_rates.insert(Exchange::EUR("2024-10-21".to_string()), dec!(4.3178));
+ exchange_rates.insert(Exchange::USD("2016-09-07".to_string()), dec!(3.8515));
+ exchange_rates.insert(Exchange::USD("2021-12-31".to_string()), dec!(4.06));
+ exchange_rates.insert(Exchange::USD("2021-11-09".to_string()), dec!(3.9622));
+ exchange_rates.insert(Exchange::USD("2020-10-01".to_string()), dec!(3.8513));
+ exchange_rates.insert(Exchange::USD("2014-12-11".to_string()), dec!(3.3611));
+ exchange_rates.insert(Exchange::USD("2012-02-16".to_string()), dec!(3.2502));
+ exchange_rates.insert(Exchange::USD("2013-07-08".to_string()), dec!(3.3576));
+ exchange_rates.insert(Exchange::USD("2012-12-13".to_string()), dec!(3.1333));
+ exchange_rates.insert(Exchange::USD("2012-06-18".to_string()), dec!(3.3741));
+ exchange_rates.insert(Exchange::USD("2013-08-02".to_string()), dec!(3.2201));
+ exchange_rates.insert(Exchange::USD("2012-04-18".to_string()), dec!(3.1902));
+ exchange_rates.insert(Exchange::EUR("2023-09-19".to_string()), dec!(4.6458));
+ exchange_rates.insert(Exchange::USD("2014-03-24".to_string()), dec!(3.0483));
+ exchange_rates.insert(Exchange::USD("2024-05-28".to_string()), dec!(3.9183));
+ exchange_rates.insert(Exchange::USD("2014-05-20".to_string()), dec!(3.062));
+ exchange_rates.insert(Exchange::EUR("2023-11-22".to_string()), dec!(4.3804));
+ exchange_rates.insert(Exchange::USD("2022-04-19".to_string()), dec!(4.2887));
+ exchange_rates.insert(Exchange::EUR("2025-03-21".to_string()), dec!(4.1979));
+ exchange_rates.insert(Exchange::USD("2023-08-18".to_string()), dec!(4.1285));
+ exchange_rates.insert(Exchange::USD("2025-02-24".to_string()), dec!(3.9734));
+ exchange_rates.insert(Exchange::USD("2014-03-10".to_string()), dec!(3.0266));
+ exchange_rates.insert(Exchange::USD("2020-11-19".to_string()), dec!(3.7872));
+ exchange_rates.insert(Exchange::USD("2012-11-16".to_string()), dec!(3.2682));
+ exchange_rates.insert(Exchange::EUR("2023-08-07".to_string()), dec!(4.4279));
+ exchange_rates.insert(Exchange::EUR("2025-12-01".to_string()), dec!(4.2286));
+ exchange_rates.insert(Exchange::USD("2021-04-29".to_string()), dec!(3.7786));
+ exchange_rates.insert(Exchange::USD("2024-01-19".to_string()), dec!(4.0289));
+ exchange_rates.insert(Exchange::EUR("2024-03-28".to_string()), dec!(4.3191));
+ exchange_rates.insert(Exchange::USD("2023-01-04".to_string()), dec!(4.3998));
+ exchange_rates.insert(Exchange::USD("2017-02-15".to_string()), dec!(4.0752));
+ exchange_rates.insert(Exchange::USD("2017-01-26".to_string()), dec!(4.059));
+ exchange_rates.insert(Exchange::EUR("2024-09-23".to_string()), dec!(4.2785));
+ exchange_rates.insert(Exchange::USD("2012-07-05".to_string()), dec!(3.3743));
+ exchange_rates.insert(Exchange::USD("2018-07-17".to_string()), dec!(3.6619));
+ exchange_rates.insert(Exchange::EUR("2025-09-15".to_string()), dec!(4.2476));
+ exchange_rates.insert(Exchange::USD("2023-10-26".to_string()), dec!(4.2395));
+ exchange_rates.insert(Exchange::USD("2014-07-09".to_string()), dec!(3.0322));
+ exchange_rates.insert(Exchange::EUR("2025-05-16".to_string()), dec!(4.2392));
+ exchange_rates.insert(Exchange::USD("2018-11-16".to_string()), dec!(3.7876));
+ exchange_rates.insert(Exchange::USD("2018-01-04".to_string()), dec!(3.4472));
+ exchange_rates.insert(Exchange::USD("2015-05-14".to_string()), dec!(3.5921));
+ exchange_rates.insert(Exchange::EUR("2023-05-04".to_string()), dec!(4.5868));
+ exchange_rates.insert(Exchange::USD("2023-09-20".to_string()), dec!(4.3501));
+ exchange_rates.insert(Exchange::USD("2019-04-17".to_string()), dec!(3.7778));
+ exchange_rates.insert(Exchange::USD("2013-06-13".to_string()), dec!(3.2));
+ exchange_rates.insert(Exchange::USD("2014-12-02".to_string()), dec!(3.3466));
+ exchange_rates.insert(Exchange::EUR("2024-12-27".to_string()), dec!(4.2747));
+ exchange_rates.insert(Exchange::EUR("2023-07-04".to_string()), dec!(4.4273));
+ exchange_rates.insert(Exchange::USD("2014-12-31".to_string()), dec!(3.5072));
+ exchange_rates.insert(Exchange::USD("2015-02-06".to_string()), dec!(3.6395));
+ exchange_rates.insert(Exchange::USD("2016-11-29".to_string()), dec!(4.1827));
+ exchange_rates.insert(Exchange::USD("2014-01-30".to_string()), dec!(3.1166));
+ exchange_rates.insert(Exchange::USD("2017-02-07".to_string()), dec!(4.028));
+ exchange_rates.insert(Exchange::USD("2013-10-04".to_string()), dec!(3.0902));
+ exchange_rates.insert(Exchange::USD("2018-07-31".to_string()), dec!(3.6481));
+ exchange_rates.insert(Exchange::USD("2014-02-28".to_string()), dec!(3.0254));
+ exchange_rates.insert(Exchange::USD("2024-08-28".to_string()), dec!(3.8539));
+ exchange_rates.insert(Exchange::USD("2022-11-14".to_string()), dec!(4.5383));
+ exchange_rates.insert(Exchange::EUR("2025-05-30".to_string()), dec!(4.2507));
+ exchange_rates.insert(Exchange::USD("2025-03-07".to_string()), dec!(3.8448));
+ exchange_rates.insert(Exchange::USD("2025-12-31".to_string()), dec!(3.6016));
+ exchange_rates.insert(Exchange::USD("2024-01-29".to_string()), dec!(4.0326));
+ exchange_rates.insert(Exchange::USD("2024-06-11".to_string()), dec!(4.0443));
+ exchange_rates.insert(Exchange::USD("2020-07-30".to_string()), dec!(3.7549));
+ exchange_rates.insert(Exchange::EUR("2025-10-01".to_string()), dec!(4.2586));
+ exchange_rates.insert(Exchange::USD("2014-02-19".to_string()), dec!(3.0286));
+ exchange_rates.insert(Exchange::USD("2019-06-27".to_string()), dec!(3.7426));
+ exchange_rates.insert(Exchange::USD("2022-01-03".to_string()), dec!(4.0424));
+ exchange_rates.insert(Exchange::USD("2023-10-16".to_string()), dec!(4.2505));
+ exchange_rates.insert(Exchange::USD("2014-05-22".to_string()), dec!(3.0525));
+ exchange_rates.insert(Exchange::USD("2025-04-07".to_string()), dec!(3.9097));
+ exchange_rates.insert(Exchange::USD("2023-08-30".to_string()), dec!(4.1167));
+ exchange_rates.insert(Exchange::USD("2023-11-27".to_string()), dec!(3.9769));
+ exchange_rates.insert(Exchange::USD("2012-08-22".to_string()), dec!(3.2639));
+ exchange_rates.insert(Exchange::USD("2023-01-03".to_string()), dec!(4.4373));
+ exchange_rates.insert(Exchange::USD("2018-04-11".to_string()), dec!(3.3859));
+ exchange_rates.insert(Exchange::USD("2022-08-09".to_string()), dec!(4.5919));
+ exchange_rates.insert(Exchange::USD("2020-09-29".to_string()), dec!(3.9228));
+ exchange_rates.insert(Exchange::USD("2014-06-11".to_string()), dec!(3.0431));
+ exchange_rates.insert(Exchange::USD("2018-03-05".to_string()), dec!(3.3995));
+ exchange_rates.insert(Exchange::USD("2015-09-08".to_string()), dec!(3.7878));
+ exchange_rates.insert(Exchange::USD("2022-06-17".to_string()), dec!(4.463));
+ exchange_rates.insert(Exchange::USD("2022-12-22".to_string()), dec!(4.3726));
+ exchange_rates.insert(Exchange::USD("2019-09-04".to_string()), dec!(3.9414));
+ exchange_rates.insert(Exchange::USD("2016-05-27".to_string()), dec!(3.9393));
+ exchange_rates.insert(Exchange::EUR("2023-08-25".to_string()), dec!(4.4674));
+ exchange_rates.insert(Exchange::USD("2019-07-02".to_string()), dec!(3.7593));
+ exchange_rates.insert(Exchange::USD("2017-03-27".to_string()), dec!(3.9259));
+ exchange_rates.insert(Exchange::USD("2024-03-28".to_string()), dec!(4.0081));
+ exchange_rates.insert(Exchange::USD("2021-01-07".to_string()), dec!(3.6656));
+ exchange_rates.insert(Exchange::EUR("2023-08-18".to_string()), dec!(4.4869));
+ exchange_rates.insert(Exchange::USD("2024-03-06".to_string()), dec!(3.963));
+ exchange_rates.insert(Exchange::USD("2025-04-14".to_string()), dec!(3.7564));
+ exchange_rates.insert(Exchange::USD("2021-10-29".to_string()), dec!(3.9664));
+ exchange_rates.insert(Exchange::USD("2021-10-13".to_string()), dec!(3.9638));
+ exchange_rates.insert(Exchange::USD("2012-04-26".to_string()), dec!(3.1599));
+ exchange_rates.insert(Exchange::USD("2012-10-16".to_string()), dec!(3.1438));
+ exchange_rates.insert(Exchange::USD("2023-08-04".to_string()), dec!(4.062));
+ exchange_rates.insert(Exchange::USD("2018-09-07".to_string()), dec!(3.6995));
+ exchange_rates.insert(Exchange::USD("2013-09-10".to_string()), dec!(3.2181));
+ exchange_rates.insert(Exchange::EUR("2025-12-05".to_string()), dec!(4.2321));
+ exchange_rates.insert(Exchange::USD("2018-07-09".to_string()), dec!(3.685));
+ exchange_rates.insert(Exchange::USD("2022-08-03".to_string()), dec!(4.6164));
+ exchange_rates.insert(Exchange::USD("2015-01-09".to_string()), dec!(3.6252));
+ exchange_rates.insert(Exchange::USD("2024-08-19".to_string()), dec!(3.8682));
+ exchange_rates.insert(Exchange::USD("2015-08-24".to_string()), dec!(3.6971));
+ exchange_rates.insert(Exchange::USD("2021-12-07".to_string()), dec!(4.0788));
+ exchange_rates.insert(Exchange::EUR("2023-06-23".to_string()), dec!(4.4367));
+ exchange_rates.insert(Exchange::EUR("2024-02-22".to_string()), dec!(4.3199));
+ exchange_rates.insert(Exchange::EUR("2023-02-28".to_string()), dec!(4.717));
+ exchange_rates.insert(Exchange::USD("2016-03-17".to_string()), dec!(3.8037));
+ exchange_rates.insert(Exchange::USD("2023-11-30".to_string()), dec!(3.981));
+ exchange_rates.insert(Exchange::EUR("2024-10-24".to_string()), dec!(4.3396));
+ exchange_rates.insert(Exchange::USD("2016-06-15".to_string()), dec!(3.9351));
+ exchange_rates.insert(Exchange::USD("2025-05-29".to_string()), dec!(3.7588));
+ exchange_rates.insert(Exchange::USD("2012-01-30".to_string()), dec!(3.2433));
+ exchange_rates.insert(Exchange::EUR("2024-07-29".to_string()), dec!(4.2847));
+ exchange_rates.insert(Exchange::USD("2025-01-09".to_string()), dec!(4.1523));
+ exchange_rates.insert(Exchange::USD("2020-04-29".to_string()), dec!(4.1807));
+ exchange_rates.insert(Exchange::USD("2019-04-26".to_string()), dec!(3.8508));
+ exchange_rates.insert(Exchange::USD("2013-08-27".to_string()), dec!(3.1849));
+ exchange_rates.insert(Exchange::USD("2022-03-23".to_string()), dec!(4.2772));
+ exchange_rates.insert(Exchange::USD("2014-12-23".to_string()), dec!(3.4937));
+ exchange_rates.insert(Exchange::EUR("2024-10-11".to_string()), dec!(4.2926));
+ exchange_rates.insert(Exchange::USD("2015-03-17".to_string()), dec!(3.9034));
+ exchange_rates.insert(Exchange::EUR("2023-10-02".to_string()), dec!(4.6091));
+ exchange_rates.insert(Exchange::USD("2024-06-25".to_string()), dec!(3.9975));
+ exchange_rates.insert(Exchange::USD("2019-05-17".to_string()), dec!(3.8545));
+ exchange_rates.insert(Exchange::USD("2021-02-26".to_string()), dec!(3.7247));
+ exchange_rates.insert(Exchange::USD("2023-06-22".to_string()), dec!(4.033));
+ exchange_rates.insert(Exchange::EUR("2024-06-05".to_string()), dec!(4.3081));
+ exchange_rates.insert(Exchange::USD("2017-09-08".to_string()), dec!(3.5239));
+ exchange_rates.insert(Exchange::USD("2024-12-09".to_string()), dec!(4.0298));
+ exchange_rates.insert(Exchange::USD("2018-06-20".to_string()), dec!(3.7352));
+ exchange_rates.insert(Exchange::USD("2017-09-27".to_string()), dec!(3.665));
+ exchange_rates.insert(Exchange::USD("2021-10-05".to_string()), dec!(3.9688));
+ exchange_rates.insert(Exchange::USD("2019-01-03".to_string()), dec!(3.7827));
+ exchange_rates.insert(Exchange::USD("2017-07-21".to_string()), dec!(3.632));
+ exchange_rates.insert(Exchange::USD("2025-06-18".to_string()), dec!(3.7137));
+ exchange_rates.insert(Exchange::USD("2017-08-04".to_string()), dec!(3.5702));
+ exchange_rates.insert(Exchange::USD("2014-03-25".to_string()), dec!(3.0342));
+ exchange_rates.insert(Exchange::USD("2014-10-08".to_string()), dec!(3.305));
+ exchange_rates.insert(Exchange::USD("2013-03-14".to_string()), dec!(3.2));
+ exchange_rates.insert(Exchange::USD("2013-04-26".to_string()), dec!(3.1943));
+ exchange_rates.insert(Exchange::USD("2013-09-24".to_string()), dec!(3.1338));
+ exchange_rates.insert(Exchange::USD("2012-08-07".to_string()), dec!(3.2606));
+ exchange_rates.insert(Exchange::USD("2020-02-14".to_string()), dec!(3.9098));
+ exchange_rates.insert(Exchange::USD("2025-05-08".to_string()), dec!(3.784));
+ exchange_rates.insert(Exchange::USD("2015-06-03".to_string()), dec!(3.7108));
+ exchange_rates.insert(Exchange::EUR("2024-09-06".to_string()), dec!(4.279));
+ exchange_rates.insert(Exchange::USD("2014-10-06".to_string()), dec!(3.3343));
+ exchange_rates.insert(Exchange::USD("2012-12-20".to_string()), dec!(3.0769));
+ exchange_rates.insert(Exchange::USD("2020-12-02".to_string()), dec!(3.7038));
+ exchange_rates.insert(Exchange::USD("2017-03-24".to_string()), dec!(3.9481));
+ exchange_rates.insert(Exchange::USD("2016-11-25".to_string()), dec!(4.1628));
+ exchange_rates.insert(Exchange::USD("2025-04-30".to_string()), dec!(3.7617));
+ exchange_rates.insert(Exchange::USD("2021-07-01".to_string()), dec!(3.8149));
+ exchange_rates.insert(Exchange::USD("2012-06-19".to_string()), dec!(3.3916));
+ exchange_rates.insert(Exchange::USD("2023-08-31".to_string()), dec!(4.1074));
+ exchange_rates.insert(Exchange::USD("2017-09-26".to_string()), dec!(3.6234));
+ exchange_rates.insert(Exchange::USD("2014-06-25".to_string()), dec!(3.0451));
+ exchange_rates.insert(Exchange::USD("2012-10-15".to_string()), dec!(3.1565));
+ exchange_rates.insert(Exchange::EUR("2025-04-15".to_string()), dec!(4.2767));
+ exchange_rates.insert(Exchange::USD("2017-06-13".to_string()), dec!(3.7379));
+ exchange_rates.insert(Exchange::USD("2020-02-03".to_string()), dec!(3.8864));
+ exchange_rates.insert(Exchange::USD("2012-07-12".to_string()), dec!(3.4383));
+ exchange_rates.insert(Exchange::USD("2012-12-05".to_string()), dec!(3.1516));
+ exchange_rates.insert(Exchange::EUR("2025-08-06".to_string()), dec!(4.282));
+ exchange_rates.insert(Exchange::USD("2016-05-24".to_string()), dec!(3.9789));
+ exchange_rates.insert(Exchange::USD("2020-11-03".to_string()), dec!(3.9069));
+ exchange_rates.insert(Exchange::USD("2014-07-14".to_string()), dec!(3.0368));
+ exchange_rates.insert(Exchange::EUR("2025-11-14".to_string()), dec!(4.2274));
+ exchange_rates.insert(Exchange::USD("2024-09-26".to_string()), dec!(3.8294));
+ exchange_rates.insert(Exchange::USD("2022-09-20".to_string()), dec!(4.7118));
+ exchange_rates.insert(Exchange::USD("2014-10-01".to_string()), dec!(3.3172));
+ exchange_rates.insert(Exchange::EUR("2023-12-18".to_string()), dec!(4.3269));
+ exchange_rates.insert(Exchange::EUR("2023-12-21".to_string()), dec!(4.3387));
+ exchange_rates.insert(Exchange::USD("2016-03-03".to_string()), dec!(3.9805));
+ exchange_rates.insert(Exchange::USD("2015-06-08".to_string()), dec!(3.7381));
+ exchange_rates.insert(Exchange::USD("2019-10-09".to_string()), dec!(3.9382));
+ exchange_rates.insert(Exchange::USD("2020-06-30".to_string()), dec!(3.9806));
+ exchange_rates.insert(Exchange::EUR("2025-03-26".to_string()), dec!(4.1686));
+ exchange_rates.insert(Exchange::USD("2014-11-10".to_string()), dec!(3.3765));
+ exchange_rates.insert(Exchange::USD("2024-04-18".to_string()), dec!(4.0559));
+ exchange_rates.insert(Exchange::USD("2018-01-31".to_string()), dec!(3.3318));
+ exchange_rates.insert(Exchange::USD("2023-04-05".to_string()), dec!(4.2739));
+ exchange_rates.insert(Exchange::USD("2015-04-20".to_string()), dec!(3.7302));
+ exchange_rates.insert(Exchange::USD("2023-05-02".to_string()), dec!(4.1823));
+ exchange_rates.insert(Exchange::USD("2013-01-22".to_string()), dec!(3.1341));
+ exchange_rates.insert(Exchange::USD("2020-04-14".to_string()), dec!(4.1666));
+ exchange_rates.insert(Exchange::USD("2013-10-21".to_string()), dec!(3.062));
+ exchange_rates.insert(Exchange::EUR("2023-07-20".to_string()), dec!(4.4511));
+ exchange_rates.insert(Exchange::USD("2023-05-18".to_string()), dec!(4.1929));
+ exchange_rates.insert(Exchange::USD("2023-08-29".to_string()), dec!(4.1341));
+ exchange_rates.insert(Exchange::USD("2018-03-30".to_string()), dec!(3.4139));
+ exchange_rates.insert(Exchange::USD("2012-09-18".to_string()), dec!(3.1509));
+ exchange_rates.insert(Exchange::USD("2014-01-07".to_string()), dec!(3.0688));
+ exchange_rates.insert(Exchange::USD("2022-05-31".to_string()), dec!(4.2651));
+ exchange_rates.insert(Exchange::USD("2020-02-10".to_string()), dec!(3.8996));
+ exchange_rates.insert(Exchange::USD("2022-12-19".to_string()), dec!(4.4153));
+ exchange_rates.insert(Exchange::EUR("2023-12-08".to_string()), dec!(4.3303));
+ exchange_rates.insert(Exchange::USD("2022-05-30".to_string()), dec!(4.2617));
+ exchange_rates.insert(Exchange::USD("2021-04-14".to_string()), dec!(3.8065));
+ exchange_rates.insert(Exchange::USD("2018-01-25".to_string()), dec!(3.3376));
+ exchange_rates.insert(Exchange::USD("2012-01-10".to_string()), dec!(3.5083));
+ exchange_rates.insert(Exchange::USD("2018-02-27".to_string()), dec!(3.3816));
+ exchange_rates.insert(Exchange::USD("2016-08-31".to_string()), dec!(3.9082));
+ exchange_rates.insert(Exchange::USD("2015-08-27".to_string()), dec!(3.745));
+ exchange_rates.insert(Exchange::USD("2025-08-19".to_string()), dec!(3.6332));
+ exchange_rates.insert(Exchange::USD("2022-07-28".to_string()), dec!(4.6952));
+ exchange_rates.insert(Exchange::USD("2019-09-02".to_string()), dec!(3.9819));
+ exchange_rates.insert(Exchange::USD("2018-05-25".to_string()), dec!(3.6686));
+ exchange_rates.insert(Exchange::USD("2024-04-08".to_string()), dec!(3.9546));
+ exchange_rates.insert(Exchange::USD("2023-10-31".to_string()), dec!(4.1684));
+ exchange_rates.insert(Exchange::USD("2019-05-13".to_string()), dec!(3.8321));
+ exchange_rates.insert(Exchange::USD("2017-11-30".to_string()), dec!(3.5543));
+ exchange_rates.insert(Exchange::USD("2018-04-27".to_string()), dec!(3.5003));
+ exchange_rates.insert(Exchange::USD("2014-06-16".to_string()), dec!(3.0654));
+ exchange_rates.insert(Exchange::USD("2016-08-02".to_string()), dec!(3.882));
+ exchange_rates.insert(Exchange::USD("2012-07-20".to_string()), dec!(3.3961));
+ exchange_rates.insert(Exchange::USD("2020-03-18".to_string()), dec!(4.0749));
+ exchange_rates.insert(Exchange::USD("2014-08-29".to_string()), dec!(3.1965));
+ exchange_rates.insert(Exchange::USD("2021-10-06".to_string()), dec!(3.9992));
+ exchange_rates.insert(Exchange::USD("2021-11-23".to_string()), dec!(4.1893));
+ exchange_rates.insert(Exchange::EUR("2024-08-12".to_string()), dec!(4.3123));
+ exchange_rates.insert(Exchange::USD("2018-09-28".to_string()), dec!(3.6754));
+ exchange_rates.insert(Exchange::USD("2012-01-19".to_string()), dec!(3.3678));
+ exchange_rates.insert(Exchange::USD("2019-09-12".to_string()), dec!(3.9362));
+ exchange_rates.insert(Exchange::USD("2014-10-14".to_string()), dec!(3.3095));
+ exchange_rates.insert(Exchange::EUR("2025-04-01".to_string()), dec!(4.1818));
+ exchange_rates.insert(Exchange::USD("2018-09-06".to_string()), dec!(3.7143));
+ exchange_rates.insert(Exchange::USD("2020-05-06".to_string()), dec!(4.2022));
+ exchange_rates.insert(Exchange::USD("2022-11-22".to_string()), dec!(4.5844));
+ exchange_rates.insert(Exchange::USD("2012-02-08".to_string()), dec!(3.1461));
+ exchange_rates.insert(Exchange::USD("2013-08-29".to_string()), dec!(3.2269));
+ exchange_rates.insert(Exchange::EUR("2023-12-04".to_string()), dec!(4.3337));
+ exchange_rates.insert(Exchange::USD("2019-04-12".to_string()), dec!(3.7899));
+ exchange_rates.insert(Exchange::EUR("2024-09-27".to_string()), dec!(4.2761));
+ exchange_rates.insert(Exchange::USD("2016-01-29".to_string()), dec!(4.0723));
+ exchange_rates.insert(Exchange::USD("2013-07-30".to_string()), dec!(3.1798));
+ exchange_rates.insert(Exchange::USD("2014-10-24".to_string()), dec!(3.3387));
+ exchange_rates.insert(Exchange::USD("2015-01-07".to_string()), dec!(3.6375));
+ exchange_rates.insert(Exchange::USD("2012-06-20".to_string()), dec!(3.3471));
+ exchange_rates.insert(Exchange::USD("2018-04-03".to_string()), dec!(3.4177));
+ exchange_rates.insert(Exchange::USD("2014-01-15".to_string()), dec!(3.0495));
+ exchange_rates.insert(Exchange::USD("2018-05-14".to_string()), dec!(3.5558));
+ exchange_rates.insert(Exchange::EUR("2025-02-05".to_string()), dec!(4.2059));
+ exchange_rates.insert(Exchange::USD("2023-10-17".to_string()), dec!(4.2131));
+ exchange_rates.insert(Exchange::USD("2021-12-21".to_string()), dec!(4.0937));
+ exchange_rates.insert(Exchange::USD("2020-08-20".to_string()), dec!(3.7164));
+ exchange_rates.insert(Exchange::USD("2022-04-08".to_string()), dec!(4.2703));
+ exchange_rates.insert(Exchange::USD("2017-05-09".to_string()), dec!(3.8741));
+ exchange_rates.insert(Exchange::USD("2016-07-28".to_string()), dec!(3.9389));
+ exchange_rates.insert(Exchange::USD("2013-09-09".to_string()), dec!(3.2357));
+ exchange_rates.insert(Exchange::USD("2024-06-03".to_string()), dec!(3.9501));
+ exchange_rates.insert(Exchange::USD("2025-07-28".to_string()), dec!(3.6446));
+ exchange_rates.insert(Exchange::EUR("2025-08-27".to_string()), dec!(4.2639));
+ exchange_rates.insert(Exchange::USD("2016-07-21".to_string()), dec!(3.9685));
+ exchange_rates.insert(Exchange::USD("2012-04-25".to_string()), dec!(3.1675));
+ exchange_rates.insert(Exchange::USD("2025-11-04".to_string()), dec!(3.7019));
+ exchange_rates.insert(Exchange::USD("2024-07-04".to_string()), dec!(3.9784));
+ exchange_rates.insert(Exchange::EUR("2023-05-22".to_string()), dec!(4.5269));
+ exchange_rates.insert(Exchange::USD("2021-04-09".to_string()), dec!(3.8208));
+ exchange_rates.insert(Exchange::USD("2021-07-22".to_string()), dec!(3.8801));
+ exchange_rates.insert(Exchange::USD("2023-07-12".to_string()), dec!(4.0347));
+ exchange_rates.insert(Exchange::USD("2024-11-06".to_string()), dec!(4.0595));
+ exchange_rates.insert(Exchange::USD("2013-10-30".to_string()), dec!(3.0433));
+ exchange_rates.insert(Exchange::EUR("2023-07-03".to_string()), dec!(4.4321));
+ exchange_rates.insert(Exchange::USD("2018-11-15".to_string()), dec!(3.8074));
+ exchange_rates.insert(Exchange::EUR("2025-04-03".to_string()), dec!(4.1791));
+ exchange_rates.insert(Exchange::USD("2019-02-08".to_string()), dec!(3.804));
+ exchange_rates.insert(Exchange::USD("2025-07-07".to_string()), dec!(3.6269));
+ exchange_rates.insert(Exchange::USD("2016-04-13".to_string()), dec!(3.7771));
+ exchange_rates.insert(Exchange::USD("2015-04-17".to_string()), dec!(3.7277));
+ exchange_rates.insert(Exchange::EUR("2024-09-24".to_string()), dec!(4.2668));
+ exchange_rates.insert(Exchange::USD("2013-10-15".to_string()), dec!(3.0893));
+ exchange_rates.insert(Exchange::USD("2020-02-21".to_string()), dec!(3.9623));
+ exchange_rates.insert(Exchange::USD("2012-02-23".to_string()), dec!(3.138));
+ exchange_rates.insert(Exchange::USD("2019-12-30".to_string()), dec!(3.8027));
+ exchange_rates.insert(Exchange::USD("2013-10-18".to_string()), dec!(3.0506));
+ exchange_rates.insert(Exchange::USD("2014-10-22".to_string()), dec!(3.3275));
+ exchange_rates.insert(Exchange::EUR("2025-01-10".to_string()), dec!(4.2657));
+ exchange_rates.insert(Exchange::USD("2015-02-19".to_string()), dec!(3.6631));
+ exchange_rates.insert(Exchange::USD("2016-01-14".to_string()), dec!(3.999));
+ exchange_rates.insert(Exchange::EUR("2025-06-10".to_string()), dec!(4.2611));
+ exchange_rates.insert(Exchange::USD("2020-06-19".to_string()), dec!(3.9741));
+ exchange_rates.insert(Exchange::USD("2017-02-03".to_string()), dec!(4.0014));
+ exchange_rates.insert(Exchange::USD("2012-12-19".to_string()), dec!(3.069));
+ exchange_rates.insert(Exchange::USD("2014-08-18".to_string()), dec!(3.1342));
+ exchange_rates.insert(Exchange::USD("2023-03-13".to_string()), dec!(4.3906));
+ exchange_rates.insert(Exchange::USD("2015-10-20".to_string()), dec!(3.7385));
+ exchange_rates.insert(Exchange::USD("2016-12-09".to_string()), dec!(4.1772));
+ exchange_rates.insert(Exchange::USD("2025-01-08".to_string()), dec!(4.1335));
+ exchange_rates.insert(Exchange::USD("2022-11-09".to_string()), dec!(4.6817));
+ exchange_rates.insert(Exchange::EUR("2025-12-04".to_string()), dec!(4.2299));
+ exchange_rates.insert(Exchange::USD("2012-07-30".to_string()), dec!(3.378));
+ exchange_rates.insert(Exchange::USD("2013-02-18".to_string()), dec!(3.141));
+ exchange_rates.insert(Exchange::USD("2025-05-14".to_string()), dec!(3.7775));
+ exchange_rates.insert(Exchange::USD("2023-06-30".to_string()), dec!(4.1066));
+ exchange_rates.insert(Exchange::USD("2021-02-19".to_string()), dec!(3.6997));
+ exchange_rates.insert(Exchange::USD("2017-09-06".to_string()), dec!(3.5538));
+ exchange_rates.insert(Exchange::USD("2015-08-12".to_string()), dec!(3.7805));
+ exchange_rates.insert(Exchange::USD("2025-11-20".to_string()), dec!(3.6684));
+ exchange_rates.insert(Exchange::USD("2024-08-22".to_string()), dec!(3.8456));
+ exchange_rates.insert(Exchange::USD("2018-03-13".to_string()), dec!(3.4143));
+ exchange_rates.insert(Exchange::USD("2016-09-27".to_string()), dec!(3.8227));
+ exchange_rates.insert(Exchange::EUR("2023-11-28".to_string()), dec!(4.3542));
+ exchange_rates.insert(Exchange::USD("2025-08-06".to_string()), dec!(3.6994));
+ exchange_rates.insert(Exchange::USD("2021-06-01".to_string()), dec!(3.659));
+ exchange_rates.insert(Exchange::USD("2024-11-28".to_string()), dec!(4.0907));
+ exchange_rates.insert(Exchange::EUR("2024-02-09".to_string()), dec!(4.3167));
+ exchange_rates.insert(Exchange::USD("2024-09-18".to_string()), dec!(3.8358));
+ exchange_rates.insert(Exchange::USD("2019-02-13".to_string()), dec!(3.8261));
+ exchange_rates.insert(Exchange::USD("2021-07-19".to_string()), dec!(3.8968));
+ exchange_rates.insert(Exchange::USD("2025-05-09".to_string()), dec!(3.7681));
+ exchange_rates.insert(Exchange::USD("2023-11-10".to_string()), dec!(4.1423));
+ exchange_rates.insert(Exchange::USD("2024-08-02".to_string()), dec!(3.9672));
+ exchange_rates.insert(Exchange::USD("2015-08-06".to_string()), dec!(3.8385));
+ exchange_rates.insert(Exchange::EUR("2024-11-19".to_string()), dec!(4.3308));
+ exchange_rates.insert(Exchange::USD("2021-01-13".to_string()), dec!(3.7142));
+ exchange_rates.insert(Exchange::USD("2019-09-20".to_string()), dec!(3.9319));
+ exchange_rates.insert(Exchange::USD("2013-10-31".to_string()), dec!(3.0507));
+ exchange_rates.insert(Exchange::USD("2013-04-02".to_string()), dec!(3.2552));
+ exchange_rates.insert(Exchange::USD("2021-03-31".to_string()), dec!(3.9676));
+ exchange_rates.insert(Exchange::USD("2020-11-02".to_string()), dec!(3.9557));
+ exchange_rates.insert(Exchange::EUR("2024-07-04".to_string()), dec!(4.2975));
+ exchange_rates.insert(Exchange::USD("2020-02-25".to_string()), dec!(3.9624));
+ exchange_rates.insert(Exchange::EUR("2024-03-29".to_string()), dec!(4.3009));
+ exchange_rates.insert(Exchange::EUR("2024-10-09".to_string()), dec!(4.3026));
+ exchange_rates.insert(Exchange::USD("2018-01-09".to_string()), dec!(3.4992));
+ exchange_rates.insert(Exchange::USD("2018-09-25".to_string()), dec!(3.6511));
+ exchange_rates.insert(Exchange::USD("2013-01-10".to_string()), dec!(3.1121));
+ exchange_rates.insert(Exchange::EUR("2024-11-26".to_string()), dec!(4.3157));
+ exchange_rates.insert(Exchange::USD("2017-06-07".to_string()), dec!(3.7241));
+ exchange_rates.insert(Exchange::EUR("2024-06-18".to_string()), dec!(4.3468));
+ exchange_rates.insert(Exchange::USD("2025-12-05".to_string()), dec!(3.6313));
+ exchange_rates.insert(Exchange::USD("2017-01-17".to_string()), dec!(4.0989));
+ exchange_rates.insert(Exchange::USD("2018-04-24".to_string()), dec!(3.4401));
+ exchange_rates.insert(Exchange::USD("2012-01-02".to_string()), dec!(3.4454));
+ exchange_rates.insert(Exchange::EUR("2023-03-21".to_string()), dec!(4.6981));
+ exchange_rates.insert(Exchange::EUR("2025-05-06".to_string()), dec!(4.2806));
+ exchange_rates.insert(Exchange::USD("2020-12-09".to_string()), dec!(3.6657));
+ exchange_rates.insert(Exchange::USD("2020-01-28".to_string()), dec!(3.8844));
+ exchange_rates.insert(Exchange::USD("2022-09-27".to_string()), dec!(4.9476));
+ exchange_rates.insert(Exchange::USD("2016-04-27".to_string()), dec!(3.8793));
+ exchange_rates.insert(Exchange::USD("2014-04-15".to_string()), dec!(3.0325));
+ exchange_rates.insert(Exchange::USD("2020-05-04".to_string()), dec!(4.1646));
+ exchange_rates.insert(Exchange::EUR("2024-06-24".to_string()), dec!(4.3198));
+ exchange_rates.insert(Exchange::USD("2024-01-31".to_string()), dec!(4.0135));
+ exchange_rates.insert(Exchange::USD("2014-09-11".to_string()), dec!(3.2435));
+ exchange_rates.insert(Exchange::EUR("2025-05-27".to_string()), dec!(4.2479));
+ exchange_rates.insert(Exchange::USD("2014-12-24".to_string()), dec!(3.529));
+ exchange_rates.insert(Exchange::USD("2012-05-21".to_string()), dec!(3.3928));
+ exchange_rates.insert(Exchange::USD("2019-07-11".to_string()), dec!(3.7859));
+ exchange_rates.insert(Exchange::USD("2023-04-24".to_string()), dec!(4.1905));
+ exchange_rates.insert(Exchange::USD("2023-01-17".to_string()), dec!(4.3398));
+ exchange_rates.insert(Exchange::EUR("2025-07-15".to_string()), dec!(4.2538));
+ exchange_rates.insert(Exchange::USD("2021-12-23".to_string()), dec!(4.095));
+ exchange_rates.insert(Exchange::EUR("2023-06-22".to_string()), dec!(4.4335));
+ exchange_rates.insert(Exchange::USD("2023-09-15".to_string()), dec!(4.3418));
+ exchange_rates.insert(Exchange::EUR("2023-09-20".to_string()), dec!(4.6529));
+ exchange_rates.insert(Exchange::USD("2021-04-30".to_string()), dec!(3.7746));
+ exchange_rates.insert(Exchange::EUR("2024-01-19".to_string()), dec!(4.3846));
+ exchange_rates.insert(Exchange::USD("2020-10-12".to_string()), dec!(3.7927));
+ exchange_rates.insert(Exchange::EUR("2025-03-12".to_string()), dec!(4.2017));
+ exchange_rates.insert(Exchange::USD("2025-03-21".to_string()), dec!(3.8774));
+ exchange_rates.insert(Exchange::USD("2024-04-15".to_string()), dec!(4.0209));
+ exchange_rates.insert(Exchange::USD("2021-04-06".to_string()), dec!(3.8973));
+ exchange_rates.insert(Exchange::USD("2022-06-02".to_string()), dec!(4.2931));
+ exchange_rates.insert(Exchange::USD("2013-09-11".to_string()), dec!(3.1955));
+ exchange_rates.insert(Exchange::USD("2023-12-04".to_string()), dec!(3.985));
+ exchange_rates.insert(Exchange::USD("2017-09-18".to_string()), dec!(3.5881));
+ exchange_rates.insert(Exchange::USD("2023-08-28".to_string()), dec!(4.14));
+ exchange_rates.insert(Exchange::USD("2014-08-04".to_string()), dec!(3.1114));
+ exchange_rates.insert(Exchange::USD("2015-10-12".to_string()), dec!(3.7148));
+ exchange_rates.insert(Exchange::USD("2017-07-19".to_string()), dec!(3.6486));
+ exchange_rates.insert(Exchange::USD("2024-05-16".to_string()), dec!(3.9195));
+ exchange_rates.insert(Exchange::USD("2015-03-25".to_string()), dec!(3.7355));
+ exchange_rates.insert(Exchange::USD("2020-02-26".to_string()), dec!(3.9573));
+ exchange_rates.insert(Exchange::USD("2019-08-13".to_string()), dec!(3.8714));
+ exchange_rates.insert(Exchange::USD("2015-05-22".to_string()), dec!(3.669));
+ exchange_rates.insert(Exchange::USD("2013-06-07".to_string()), dec!(3.2545));
+ exchange_rates.insert(Exchange::USD("2021-02-18".to_string()), dec!(3.7152));
+ exchange_rates.insert(Exchange::EUR("2024-10-03".to_string()), dec!(4.299));
+ exchange_rates.insert(Exchange::USD("2025-12-11".to_string()), dec!(3.6132));
+ exchange_rates.insert(Exchange::EUR("2023-09-01".to_string()), dec!(4.4762));
+ exchange_rates.insert(Exchange::USD("2025-02-14".to_string()), dec!(3.972));
+ exchange_rates.insert(Exchange::USD("2012-04-27".to_string()), dec!(3.1666));
+ exchange_rates.insert(Exchange::EUR("2023-01-18".to_string()), dec!(4.7091));
+ exchange_rates.insert(Exchange::USD("2013-08-20".to_string()), dec!(3.1761));
+ exchange_rates.insert(Exchange::USD("2015-12-03".to_string()), dec!(4.04));
+ exchange_rates.insert(Exchange::USD("2013-12-05".to_string()), dec!(3.087));
+ exchange_rates.insert(Exchange::USD("2021-03-02".to_string()), dec!(3.7765));
+ exchange_rates.insert(Exchange::USD("2016-04-21".to_string()), dec!(3.7981));
+ exchange_rates.insert(Exchange::USD("2025-02-07".to_string()), dec!(4.0321));
+ exchange_rates.insert(Exchange::USD("2024-02-01".to_string()), dec!(4.0047));
+ exchange_rates.insert(Exchange::USD("2013-08-06".to_string()), dec!(3.1744));
+ exchange_rates.insert(Exchange::USD("2020-05-26".to_string()), dec!(4.0885));
+ exchange_rates.insert(Exchange::EUR("2025-02-20".to_string()), dec!(4.1723));
+ exchange_rates.insert(Exchange::USD("2020-06-03".to_string()), dec!(3.9121));
+ exchange_rates.insert(Exchange::USD("2024-05-14".to_string()), dec!(3.9701));
+ exchange_rates.insert(Exchange::USD("2024-06-21".to_string()), dec!(4.0527));
+ exchange_rates.insert(Exchange::USD("2019-09-05".to_string()), dec!(3.933));
+ exchange_rates.insert(Exchange::USD("2017-09-05".to_string()), dec!(3.5642));
+ exchange_rates.insert(Exchange::USD("2015-10-23".to_string()), dec!(3.82));
+ exchange_rates.insert(Exchange::USD("2025-11-03".to_string()), dec!(3.6933));
+ exchange_rates.insert(Exchange::USD("2022-11-03".to_string()), dec!(4.8291));
+ exchange_rates.insert(Exchange::USD("2014-09-10".to_string()), dec!(3.2508));
+ exchange_rates.insert(Exchange::USD("2019-06-04".to_string()), dec!(3.8041));
+ exchange_rates.insert(Exchange::EUR("2025-05-20".to_string()), dec!(4.2497));
+ exchange_rates.insert(Exchange::USD("2025-05-15".to_string()), dec!(3.7804));
+ exchange_rates.insert(Exchange::USD("2022-07-08".to_string()), dec!(4.7417));
+ exchange_rates.insert(Exchange::EUR("2023-10-09".to_string()), dec!(4.5793));
+ exchange_rates.insert(Exchange::USD("2023-11-06".to_string()), dec!(4.1512));
+ exchange_rates.insert(Exchange::USD("2020-04-28".to_string()), dec!(4.184));
+ exchange_rates.insert(Exchange::USD("2023-07-05".to_string()), dec!(4.0869));
+ exchange_rates.insert(Exchange::USD("2014-08-01".to_string()), dec!(3.128));
+ exchange_rates.insert(Exchange::USD("2018-07-13".to_string()), dec!(3.7244));
+ exchange_rates.insert(Exchange::USD("2013-01-24".to_string()), dec!(3.1503));
+ exchange_rates.insert(Exchange::USD("2025-08-05".to_string()), dec!(3.7066));
+ exchange_rates.insert(Exchange::USD("2021-09-29".to_string()), dec!(3.9684));
+ exchange_rates.insert(Exchange::USD("2016-10-21".to_string()), dec!(3.98));
+ exchange_rates.insert(Exchange::USD("2020-04-10".to_string()), dec!(4.1566));
+ exchange_rates.insert(Exchange::USD("2025-09-08".to_string()), dec!(3.6214));
+ exchange_rates.insert(Exchange::USD("2019-04-09".to_string()), dec!(3.8003));
+ exchange_rates.insert(Exchange::USD("2015-10-21".to_string()), dec!(3.7627));
+ exchange_rates.insert(Exchange::EUR("2024-12-11".to_string()), dec!(4.2661));
+ exchange_rates.insert(Exchange::USD("2020-11-27".to_string()), dec!(3.7614));
+ exchange_rates.insert(Exchange::USD("2018-03-06".to_string()), dec!(3.3936));
+ exchange_rates.insert(Exchange::USD("2020-12-17".to_string()), dec!(3.6254));
+ exchange_rates.insert(Exchange::USD("2016-10-18".to_string()), dec!(3.9148));
+ exchange_rates.insert(Exchange::EUR("2023-09-18".to_string()), dec!(4.6377));
+ exchange_rates.insert(Exchange::USD("2013-01-08".to_string()), dec!(3.1457));
+ exchange_rates.insert(Exchange::EUR("2023-01-27".to_string()), dec!(4.7076));
+ exchange_rates.insert(Exchange::USD("2025-05-27".to_string()), dec!(3.743));
+ exchange_rates.insert(Exchange::USD("2022-12-16".to_string()), dec!(4.4227));
+ exchange_rates.insert(Exchange::USD("2018-03-23".to_string()), dec!(3.4319));
+ exchange_rates.insert(Exchange::USD("2018-02-13".to_string()), dec!(3.3916));
+ exchange_rates.insert(Exchange::USD("2024-03-11".to_string()), dec!(3.9262));
+ exchange_rates.insert(Exchange::USD("2022-01-28".to_string()), dec!(4.1048));
+ exchange_rates.insert(Exchange::USD("2016-05-13".to_string()), dec!(3.8775));
+ exchange_rates.insert(Exchange::USD("2020-12-16".to_string()), dec!(3.6334));
+ exchange_rates.insert(Exchange::EUR("2025-05-13".to_string()), dec!(4.2525));
+ exchange_rates.insert(Exchange::USD("2021-05-31".to_string()), dec!(3.6724));
+ exchange_rates.insert(Exchange::USD("2025-04-01".to_string()), dec!(3.8656));
+ exchange_rates.insert(Exchange::USD("2022-07-01".to_string()), dec!(4.5106));
+ exchange_rates.insert(Exchange::USD("2025-01-20".to_string()), dec!(4.1321));
+ exchange_rates.insert(Exchange::USD("2019-09-27".to_string()), dec!(4.0154));
+ exchange_rates.insert(Exchange::EUR("2023-10-06".to_string()), dec!(4.5998));
+ exchange_rates.insert(Exchange::USD("2014-04-25".to_string()), dec!(3.0378));
+ exchange_rates.insert(Exchange::USD("2022-07-12".to_string()), dec!(4.8284));
+ exchange_rates.insert(Exchange::EUR("2024-10-08".to_string()), dec!(4.3203));
+ exchange_rates.insert(Exchange::USD("2016-02-18".to_string()), dec!(3.9416));
+ exchange_rates.insert(Exchange::USD("2016-10-04".to_string()), dec!(3.8472));
+ exchange_rates.insert(Exchange::USD("2016-10-14".to_string()), dec!(3.8965));
+ exchange_rates.insert(Exchange::USD("2015-08-28".to_string()), dec!(3.7493));
+ exchange_rates.insert(Exchange::EUR("2025-08-28".to_string()), dec!(4.2681));
+ exchange_rates.insert(Exchange::USD("2023-05-30".to_string()), dec!(4.2242));
+ exchange_rates.insert(Exchange::USD("2018-06-19".to_string()), dec!(3.7316));
+ exchange_rates.insert(Exchange::USD("2022-12-09".to_string()), dec!(4.4351));
+ exchange_rates.insert(Exchange::USD("2013-11-04".to_string()), dec!(3.0975));
+ exchange_rates.insert(Exchange::EUR("2024-02-16".to_string()), dec!(4.3414));
+ exchange_rates.insert(Exchange::EUR("2024-11-14".to_string()), dec!(4.3365));
+ exchange_rates.insert(Exchange::USD("2025-05-07".to_string()), dec!(3.7642));
+ exchange_rates.insert(Exchange::EUR("2025-07-30".to_string()), dec!(4.2732));
+ exchange_rates.insert(Exchange::USD("2018-02-14".to_string()), dec!(3.3769));
+ exchange_rates.insert(Exchange::USD("2021-08-27".to_string()), dec!(3.8978));
+ exchange_rates.insert(Exchange::USD("2022-05-13".to_string()), dec!(4.4849));
+ exchange_rates.insert(Exchange::USD("2016-10-11".to_string()), dec!(3.8487));
+ exchange_rates.insert(Exchange::USD("2012-05-25".to_string()), dec!(3.4589));
+ exchange_rates.insert(Exchange::USD("2018-10-24".to_string()), dec!(3.7698));
+ exchange_rates.insert(Exchange::USD("2019-10-11".to_string()), dec!(3.9145));
+ exchange_rates.insert(Exchange::USD("2017-11-06".to_string()), dec!(3.6585));
+ exchange_rates.insert(Exchange::USD("2024-08-27".to_string()), dec!(3.8331));
+ exchange_rates.insert(Exchange::USD("2022-10-27".to_string()), dec!(4.7216));
+ exchange_rates.insert(Exchange::USD("2014-06-23".to_string()), dec!(3.0627));
+ exchange_rates.insert(Exchange::USD("2022-09-01".to_string()), dec!(4.6959));
+ exchange_rates.insert(Exchange::USD("2017-07-06".to_string()), dec!(3.7351));
+ exchange_rates.insert(Exchange::USD("2023-10-02".to_string()), dec!(4.3634));
+ exchange_rates.insert(Exchange::USD("2014-08-26".to_string()), dec!(3.1686));
+ exchange_rates.insert(Exchange::USD("2021-08-16".to_string()), dec!(3.873));
+ exchange_rates.insert(Exchange::USD("2018-08-06".to_string()), dec!(3.692));
+ exchange_rates.insert(Exchange::USD("2025-09-19".to_string()), dec!(3.6278));
+ exchange_rates.insert(Exchange::USD("2018-10-08".to_string()), dec!(3.7574));
+ exchange_rates.insert(Exchange::USD("2015-11-03".to_string()), dec!(3.8678));
+ exchange_rates.insert(Exchange::USD("2019-01-18".to_string()), dec!(3.7694));
+ exchange_rates.insert(Exchange::USD("2014-03-28".to_string()), dec!(3.0374));
+ exchange_rates.insert(Exchange::USD("2019-08-02".to_string()), dec!(3.8829));
+ exchange_rates.insert(Exchange::USD("2023-09-22".to_string()), dec!(4.3269));
+ exchange_rates.insert(Exchange::EUR("2023-10-19".to_string()), dec!(4.4529));
+ exchange_rates.insert(Exchange::USD("2018-06-12".to_string()), dec!(3.6271));
+ exchange_rates.insert(Exchange::USD("2021-11-18".to_string()), dec!(4.1114));
+ exchange_rates.insert(Exchange::USD("2015-06-10".to_string()), dec!(3.676));
+ exchange_rates.insert(Exchange::USD("2019-03-06".to_string()), dec!(3.8038));
+ exchange_rates.insert(Exchange::USD("2019-02-12".to_string()), dec!(3.838));
+ exchange_rates.insert(Exchange::USD("2022-09-07".to_string()), dec!(4.7584));
+ exchange_rates.insert(Exchange::USD("2018-02-12".to_string()), dec!(3.4122));
+ exchange_rates.insert(Exchange::USD("2017-04-19".to_string()), dec!(3.9571));
+ exchange_rates.insert(Exchange::USD("2016-04-01".to_string()), dec!(3.7193));
+ exchange_rates.insert(Exchange::USD("2023-06-23".to_string()), dec!(4.0893));
+ exchange_rates.insert(Exchange::USD("2013-09-12".to_string()), dec!(3.1782));
+ exchange_rates.insert(Exchange::EUR("2023-08-02".to_string()), dec!(4.4484));
+ exchange_rates.insert(Exchange::USD("2024-01-11".to_string()), dec!(3.968));
+ exchange_rates.insert(Exchange::EUR("2024-03-12".to_string()), dec!(4.2804));
+ exchange_rates.insert(Exchange::USD("2012-08-23".to_string()), dec!(3.2488));
+ exchange_rates.insert(Exchange::USD("2015-05-05".to_string()), dec!(3.6205));
+ exchange_rates.insert(Exchange::USD("2021-10-14".to_string()), dec!(3.9403));
+ exchange_rates.insert(Exchange::USD("2025-05-30".to_string()), dec!(3.7537));
+ exchange_rates.insert(Exchange::EUR("2024-01-25".to_string()), dec!(4.379));
+ exchange_rates.insert(Exchange::USD("2024-05-13".to_string()), dec!(3.9853));
+ exchange_rates.insert(Exchange::USD("2025-06-13".to_string()), dec!(3.7056));
+ exchange_rates.insert(Exchange::USD("2016-02-02".to_string()), dec!(4.0333));
+ exchange_rates.insert(Exchange::USD("2016-09-06".to_string()), dec!(3.8869));
+ exchange_rates.insert(Exchange::USD("2023-02-03".to_string()), dec!(4.2928));
+ exchange_rates.insert(Exchange::EUR("2024-07-31".to_string()), dec!(4.2953));
+ exchange_rates.insert(Exchange::USD("2019-05-20".to_string()), dec!(3.8543));
+ exchange_rates.insert(Exchange::USD("2019-01-31".to_string()), dec!(3.7271));
+ exchange_rates.insert(Exchange::USD("2017-04-25".to_string()), dec!(3.8873));
+ exchange_rates.insert(Exchange::USD("2020-01-22".to_string()), dec!(3.8202));
+ exchange_rates.insert(Exchange::USD("2025-03-17".to_string()), dec!(3.8329));
+ exchange_rates.insert(Exchange::USD("2023-06-27".to_string()), dec!(4.0481));
+ exchange_rates.insert(Exchange::USD("2016-04-12".to_string()), dec!(3.749));
+ exchange_rates.insert(Exchange::USD("2019-11-13".to_string()), dec!(3.8902));
+ exchange_rates.insert(Exchange::USD("2014-03-14".to_string()), dec!(3.0481));
+ exchange_rates.insert(Exchange::USD("2020-03-05".to_string()), dec!(3.8479));
+ exchange_rates.insert(Exchange::USD("2014-11-28".to_string()), dec!(3.3605));
+ exchange_rates.insert(Exchange::USD("2025-10-30".to_string()), dec!(3.652));
+ exchange_rates.insert(Exchange::USD("2021-12-17".to_string()), dec!(4.0882));
+ exchange_rates.insert(Exchange::USD("2013-09-19".to_string()), dec!(3.0833));
+ exchange_rates.insert(Exchange::USD("2016-02-22".to_string()), dec!(3.9391));
+ exchange_rates.insert(Exchange::EUR("2023-07-13".to_string()), dec!(4.4336));
+ exchange_rates.insert(Exchange::USD("2014-07-21".to_string()), dec!(3.07));
+ exchange_rates.insert(Exchange::USD("2020-03-24".to_string()), dec!(4.2421));
+ exchange_rates.insert(Exchange::EUR("2024-11-12".to_string()), dec!(4.357));
+ exchange_rates.insert(Exchange::USD("2022-11-24".to_string()), dec!(4.5101));
+ exchange_rates.insert(Exchange::USD("2019-01-30".to_string()), dec!(3.7577));
+ exchange_rates.insert(Exchange::USD("2015-12-23".to_string()), dec!(3.8872));
+ exchange_rates.insert(Exchange::USD("2024-12-13".to_string()), dec!(4.0738));
+ exchange_rates.insert(Exchange::EUR("2023-06-29".to_string()), dec!(4.4568));
+ exchange_rates.insert(Exchange::USD("2016-12-08".to_string()), dec!(4.1107));
+ exchange_rates.insert(Exchange::EUR("2025-10-09".to_string()), dec!(4.2569));
+ exchange_rates.insert(Exchange::USD("2025-08-14".to_string()), dec!(3.6542));
+ exchange_rates.insert(Exchange::USD("2021-11-19".to_string()), dec!(4.1457));
+ exchange_rates.insert(Exchange::EUR("2023-05-24".to_string()), dec!(4.4803));
+ exchange_rates.insert(Exchange::USD("2012-11-13".to_string()), dec!(3.2945));
+ exchange_rates.insert(Exchange::USD("2014-10-20".to_string()), dec!(3.3109));
+ exchange_rates.insert(Exchange::USD("2015-11-04".to_string()), dec!(3.8876));
+ exchange_rates.insert(Exchange::EUR("2024-03-19".to_string()), dec!(4.3201));
+ exchange_rates.insert(Exchange::USD("2025-05-26".to_string()), dec!(3.7344));
+ exchange_rates.insert(Exchange::USD("2025-10-09".to_string()), dec!(3.6659));
+ exchange_rates.insert(Exchange::EUR("2025-10-21".to_string()), dec!(4.2392));
+ exchange_rates.insert(Exchange::USD("2018-06-26".to_string()), dec!(3.7151));
+ exchange_rates.insert(Exchange::EUR("2024-09-17".to_string()), dec!(4.2748));
+ exchange_rates.insert(Exchange::USD("2014-06-27".to_string()), dec!(3.0485));
+ exchange_rates.insert(Exchange::USD("2020-10-15".to_string()), dec!(3.8904));
+ exchange_rates.insert(Exchange::USD("2025-09-04".to_string()), dec!(3.6501));
+ exchange_rates.insert(Exchange::USD("2018-01-18".to_string()), dec!(3.4108));
+ exchange_rates.insert(Exchange::USD("2013-03-07".to_string()), dec!(3.1808));
+ exchange_rates.insert(Exchange::USD("2017-06-19".to_string()), dec!(3.7615));
+ exchange_rates.insert(Exchange::USD("2018-12-17".to_string()), dec!(3.7871));
+ exchange_rates.insert(Exchange::USD("2016-08-05".to_string()), dec!(3.8542));
+ exchange_rates.insert(Exchange::USD("2025-08-27".to_string()), dec!(3.6793));
+ exchange_rates.insert(Exchange::USD("2022-12-27".to_string()), dec!(4.3671));
+ exchange_rates.insert(Exchange::USD("2018-03-22".to_string()), dec!(3.4264));
+ exchange_rates.insert(Exchange::EUR("2023-08-22".to_string()), dec!(4.4648));
+ exchange_rates.insert(Exchange::USD("2012-10-25".to_string()), dec!(3.1851));
+ exchange_rates.insert(Exchange::USD("2025-07-11".to_string()), dec!(3.6432));
+ exchange_rates.insert(Exchange::USD("2017-03-02".to_string()), dec!(4.0765));
+ exchange_rates.insert(Exchange::USD("2016-12-23".to_string()), dec!(4.2199));
+ exchange_rates.insert(Exchange::USD("2015-07-13".to_string()), dec!(3.7543));
+ exchange_rates.insert(Exchange::USD("2022-01-11".to_string()), dec!(4.0106));
+ exchange_rates.insert(Exchange::USD("2016-04-25".to_string()), dec!(3.8962));
+ exchange_rates.insert(Exchange::EUR("2024-02-05".to_string()), dec!(4.3278));
+ exchange_rates.insert(Exchange::USD("2025-06-04".to_string()), dec!(3.7525));
+ exchange_rates.insert(Exchange::USD("2020-05-13".to_string()), dec!(4.2111));
+ exchange_rates.insert(Exchange::USD("2019-06-14".to_string()), dec!(3.7727));
+ exchange_rates.insert(Exchange::USD("2014-02-12".to_string()), dec!(3.0552));
+ exchange_rates.insert(Exchange::EUR("2024-09-05".to_string()), dec!(4.2717));
+ exchange_rates.insert(Exchange::USD("2013-04-11".to_string()), dec!(3.1382));
+ exchange_rates.insert(Exchange::USD("2019-11-04".to_string()), dec!(3.8099));
+ exchange_rates.insert(Exchange::USD("2021-01-29".to_string()), dec!(3.746));
+ exchange_rates.insert(Exchange::USD("2017-05-11".to_string()), dec!(3.8744));
+ exchange_rates.insert(Exchange::USD("2025-11-19".to_string()), dec!(3.6656));
+ exchange_rates.insert(Exchange::USD("2021-06-24".to_string()), dec!(3.7986));
+ exchange_rates.insert(Exchange::EUR("2025-06-03".to_string()), dec!(4.2721));
+ exchange_rates.insert(Exchange::USD("2012-04-19".to_string()), dec!(3.1879));
+ exchange_rates.insert(Exchange::USD("2014-06-17".to_string()), dec!(3.0495));
+ exchange_rates.insert(Exchange::EUR("2024-02-19".to_string()), dec!(4.339));
+ exchange_rates.insert(Exchange::USD("2019-11-27".to_string()), dec!(3.9154));
+ exchange_rates.insert(Exchange::USD("2019-04-04".to_string()), dec!(3.8215));
+ exchange_rates.insert(Exchange::USD("2024-11-12".to_string()), dec!(4.1011));
+ exchange_rates.insert(Exchange::USD("2020-10-29".to_string()), dec!(3.9505));
+ exchange_rates.insert(Exchange::USD("2021-06-07".to_string()), dec!(3.6656));
+ exchange_rates.insert(Exchange::USD("2017-11-29".to_string()), dec!(3.5385));
+ exchange_rates.insert(Exchange::USD("2019-06-03".to_string()), dec!(3.8292));
+ exchange_rates.insert(Exchange::USD("2013-01-21".to_string()), dec!(3.1351));
+ exchange_rates.insert(Exchange::EUR("2025-10-29".to_string()), dec!(4.2374));
+ exchange_rates.insert(Exchange::USD("2016-09-13".to_string()), dec!(3.8734));
+ exchange_rates.insert(Exchange::USD("2022-07-25".to_string()), dec!(4.6171));
+ exchange_rates.insert(Exchange::USD("2015-05-12".to_string()), dec!(3.6447));
+ exchange_rates.insert(Exchange::USD("2017-05-18".to_string()), dec!(3.7926));
+ exchange_rates.insert(Exchange::USD("2013-10-11".to_string()), dec!(3.085));
+ exchange_rates.insert(Exchange::USD("2023-04-27".to_string()), dec!(4.1541));
+ exchange_rates.insert(Exchange::USD("2013-03-18".to_string()), dec!(3.2015));
+ exchange_rates.insert(Exchange::USD("2023-03-17".to_string()), dec!(4.4202));
+ exchange_rates.insert(Exchange::USD("2021-01-28".to_string()), dec!(3.7566));
+ exchange_rates.insert(Exchange::USD("2020-02-07".to_string()), dec!(3.8947));
+ exchange_rates.insert(Exchange::USD("2021-03-09".to_string()), dec!(3.8507));
+ exchange_rates.insert(Exchange::USD("2020-09-04".to_string()), dec!(3.7533));
+ exchange_rates.insert(Exchange::EUR("2023-05-11".to_string()), dec!(4.5259));
+ exchange_rates.insert(Exchange::USD("2019-07-31".to_string()), dec!(3.8504));
+ exchange_rates.insert(Exchange::EUR("2024-12-09".to_string()), dec!(4.2581));
+ exchange_rates.insert(Exchange::USD("2014-06-10".to_string()), dec!(3.0303));
+ exchange_rates.insert(Exchange::USD("2014-06-30".to_string()), dec!(3.0473));
+ exchange_rates.insert(Exchange::USD("2023-03-02".to_string()), dec!(4.4002));
+ exchange_rates.insert(Exchange::USD("2020-03-17".to_string()), dec!(4.046));
+ exchange_rates.insert(Exchange::USD("2025-01-21".to_string()), dec!(4.1101));
+ exchange_rates.insert(Exchange::EUR("2023-02-21".to_string()), dec!(4.7469));
+ exchange_rates.insert(Exchange::USD("2023-02-06".to_string()), dec!(4.3833));
+ exchange_rates.insert(Exchange::USD("2022-07-15".to_string()), dec!(4.7966));
+ exchange_rates.insert(Exchange::USD("2024-01-23".to_string()), dec!(4.0133));
+ exchange_rates.insert(Exchange::USD("2020-02-04".to_string()), dec!(3.8773));
+ exchange_rates.insert(Exchange::USD("2016-03-31".to_string()), dec!(3.759));
+ exchange_rates.insert(Exchange::USD("2017-09-21".to_string()), dec!(3.5975));
+ exchange_rates.insert(Exchange::USD("2014-07-04".to_string()), dec!(3.0495));
+ exchange_rates.insert(Exchange::EUR("2023-06-06".to_string()), dec!(4.4902));
+ exchange_rates.insert(Exchange::USD("2017-10-19".to_string()), dec!(3.5896));
+ exchange_rates.insert(Exchange::EUR("2024-01-31".to_string()), dec!(4.3434));
+ exchange_rates.insert(Exchange::USD("2024-01-02".to_string()), dec!(3.9432));
+ exchange_rates.insert(Exchange::USD("2024-02-29".to_string()), dec!(3.9803));
+ exchange_rates.insert(Exchange::USD("2024-07-16".to_string()), dec!(3.9083));
+ exchange_rates.insert(Exchange::USD("2021-02-10".to_string()), dec!(3.6973));
+ exchange_rates.insert(Exchange::USD("2019-03-15".to_string()), dec!(3.8014));
+ exchange_rates.insert(Exchange::USD("2018-06-21".to_string()), dec!(3.7607));
+ exchange_rates.insert(Exchange::USD("2017-01-10".to_string()), dec!(4.127));
+ exchange_rates.insert(Exchange::EUR("2023-12-15".to_string()), dec!(4.3103));
+ exchange_rates.insert(Exchange::EUR("2024-09-18".to_string()), dec!(4.2691));
+ exchange_rates.insert(Exchange::USD("2015-11-17".to_string()), dec!(3.9775));
+ exchange_rates.insert(Exchange::USD("2023-11-16".to_string()), dec!(4.0415));
+ exchange_rates.insert(Exchange::USD("2024-12-16".to_string()), dec!(4.0571));
+ exchange_rates.insert(Exchange::USD("2016-09-12".to_string()), dec!(3.8668));
+ exchange_rates.insert(Exchange::USD("2023-02-17".to_string()), dec!(4.4888));
+ exchange_rates.insert(Exchange::EUR("2025-10-27".to_string()), dec!(4.2353));
+ exchange_rates.insert(Exchange::EUR("2023-09-21".to_string()), dec!(4.621));
+ exchange_rates.insert(Exchange::USD("2021-06-25".to_string()), dec!(3.7749));
+ exchange_rates.insert(Exchange::USD("2024-03-12".to_string()), dec!(3.9162));
+ exchange_rates.insert(Exchange::USD("2024-03-15".to_string()), dec!(3.9392));
+ exchange_rates.insert(Exchange::USD("2023-02-09".to_string()), dec!(4.4003));
+ exchange_rates.insert(Exchange::USD("2023-02-02".to_string()), dec!(4.2803));
+ exchange_rates.insert(Exchange::USD("2023-11-20".to_string()), dec!(3.9938));
+ exchange_rates.insert(Exchange::USD("2018-07-20".to_string()), dec!(3.717));
+ exchange_rates.insert(Exchange::USD("2024-11-04".to_string()), dec!(3.9869));
+ exchange_rates.insert(Exchange::USD("2016-11-04".to_string()), dec!(3.8862));
+ exchange_rates.insert(Exchange::EUR("2023-06-02".to_string()), dec!(4.5148));
+ exchange_rates.insert(Exchange::EUR("2025-10-03".to_string()), dec!(4.2559));
+ exchange_rates.insert(Exchange::USD("2018-09-24".to_string()), dec!(3.662));
+ exchange_rates.insert(Exchange::USD("2014-11-20".to_string()), dec!(3.368));
+ exchange_rates.insert(Exchange::USD("2020-01-30".to_string()), dec!(3.8856));
+ exchange_rates.insert(Exchange::USD("2023-06-13".to_string()), dec!(4.1439));
+ exchange_rates.insert(Exchange::USD("2016-03-16".to_string()), dec!(3.8749));
+ exchange_rates.insert(Exchange::USD("2024-07-01".to_string()), dec!(3.9915));
+ exchange_rates.insert(Exchange::USD("2020-04-27".to_string()), dec!(4.1696));
+ exchange_rates.insert(Exchange::USD("2018-08-27".to_string()), dec!(3.682));
+ exchange_rates.insert(Exchange::EUR("2024-12-02".to_string()), dec!(4.2923));
+ exchange_rates.insert(Exchange::USD("2012-02-10".to_string()), dec!(3.1703));
+ exchange_rates.insert(Exchange::USD("2012-07-04".to_string()), dec!(3.3415));
+ exchange_rates.insert(Exchange::EUR("2025-03-05".to_string()), dec!(4.1545));
+ exchange_rates.insert(Exchange::USD("2020-06-04".to_string()), dec!(3.9573));
+ exchange_rates.insert(Exchange::EUR("2024-04-16".to_string()), dec!(4.3197));
+ exchange_rates.insert(Exchange::USD("2024-10-01".to_string()), dec!(3.859));
+ exchange_rates.insert(Exchange::EUR("2024-10-16".to_string()), dec!(4.2955));
+ exchange_rates.insert(Exchange::USD("2022-09-14".to_string()), dec!(4.7233));
+ exchange_rates.insert(Exchange::USD("2019-10-25".to_string()), dec!(3.8452));
+ exchange_rates.insert(Exchange::USD("2012-11-08".to_string()), dec!(3.2655));
+ exchange_rates.insert(Exchange::EUR("2025-03-17".to_string()), dec!(4.1777));
+ exchange_rates.insert(Exchange::USD("2012-12-04".to_string()), dec!(3.1575));
+ exchange_rates.insert(Exchange::EUR("2023-12-07".to_string()), dec!(4.3334));
+ exchange_rates.insert(Exchange::USD("2013-11-28".to_string()), dec!(3.0872));
+ exchange_rates.insert(Exchange::USD("2013-08-01".to_string()), dec!(3.1961));
+ exchange_rates.insert(Exchange::USD("2022-03-29".to_string()), dec!(4.2917));
+ exchange_rates.insert(Exchange::USD("2024-05-31".to_string()), dec!(3.9389));
+ exchange_rates.insert(Exchange::USD("2024-10-03".to_string()), dec!(3.8951));
+ exchange_rates.insert(Exchange::EUR("2023-03-03".to_string()), dec!(4.7046));
+ exchange_rates.insert(Exchange::USD("2021-12-28".to_string()), dec!(4.062));
+ exchange_rates.insert(Exchange::EUR("2024-04-30".to_string()), dec!(4.3213));
+ exchange_rates.insert(Exchange::USD("2020-10-05".to_string()), dec!(3.8252));
+ exchange_rates.insert(Exchange::USD("2013-08-26".to_string()), dec!(3.1658));
+ exchange_rates.insert(Exchange::EUR("2025-09-30".to_string()), dec!(4.2692));
+ exchange_rates.insert(Exchange::USD("2019-05-15".to_string()), dec!(3.8457));
+ exchange_rates.insert(Exchange::USD("2019-05-27".to_string()), dec!(3.8374));
+ exchange_rates.insert(Exchange::USD("2013-09-17".to_string()), dec!(3.1552));
+ exchange_rates.insert(Exchange::USD("2020-03-19".to_string()), dec!(4.2421));
+ exchange_rates.insert(Exchange::EUR("2024-09-04".to_string()), dec!(4.2815));
+ exchange_rates.insert(Exchange::USD("2025-05-13".to_string()), dec!(3.8266));
+ exchange_rates.insert(Exchange::USD("2021-03-30".to_string()), dec!(3.9604));
+ exchange_rates.insert(Exchange::USD("2017-10-06".to_string()), dec!(3.6799));
+ exchange_rates.insert(Exchange::USD("2012-03-01".to_string()), dec!(3.0887));
+ exchange_rates.insert(Exchange::USD("2023-12-14".to_string()), dec!(3.9484));
+ exchange_rates.insert(Exchange::EUR("2024-10-28".to_string()), dec!(4.3478));
+ exchange_rates.insert(Exchange::USD("2017-07-03".to_string()), dec!(3.7196));
+ exchange_rates.insert(Exchange::USD("2017-11-10".to_string()), dec!(3.6274));
+ exchange_rates.insert(Exchange::USD("2018-11-23".to_string()), dec!(3.7779));
+ exchange_rates.insert(Exchange::EUR("2023-06-15".to_string()), dec!(4.4633));
+ exchange_rates.insert(Exchange::EUR("2025-10-07".to_string()), dec!(4.2559));
+ exchange_rates.insert(Exchange::USD("2025-04-03".to_string()), dec!(3.7968));
+ exchange_rates.insert(Exchange::USD("2021-08-12".to_string()), dec!(3.9074));
+ exchange_rates.insert(Exchange::USD("2021-06-18".to_string()), dec!(3.8198));
+ exchange_rates.insert(Exchange::USD("2023-07-20".to_string()), dec!(3.971));
+ exchange_rates.insert(Exchange::USD("2019-08-28".to_string()), dec!(3.9548));
+ exchange_rates.insert(Exchange::USD("2017-12-07".to_string()), dec!(3.5722));
+ exchange_rates.insert(Exchange::USD("2014-04-22".to_string()), dec!(3.034));
+ exchange_rates.insert(Exchange::USD("2020-03-03".to_string()), dec!(3.8804));
+ exchange_rates.insert(Exchange::USD("2018-05-28".to_string()), dec!(3.6849));
+ exchange_rates.insert(Exchange::USD("2024-11-08".to_string()), dec!(4.0117));
+ exchange_rates.insert(Exchange::USD("2017-01-09".to_string()), dec!(4.1592));
+ exchange_rates.insert(Exchange::USD("2015-10-07".to_string()), dec!(3.7604));
+ exchange_rates.insert(Exchange::USD("2025-10-31".to_string()), dec!(3.6751));
+ exchange_rates.insert(Exchange::USD("2020-04-17".to_string()), dec!(4.1886));
+ exchange_rates.insert(Exchange::USD("2020-11-26".to_string()), dec!(3.7586));
+ exchange_rates.insert(Exchange::USD("2015-12-28".to_string()), dec!(3.8663));
+ exchange_rates.insert(Exchange::EUR("2025-08-07".to_string()), dec!(4.2618));
+ exchange_rates.insert(Exchange::USD("2020-04-20".to_string()), dec!(4.1525));
+ exchange_rates.insert(Exchange::EUR("2025-10-20".to_string()), dec!(4.2396));
+ exchange_rates.insert(Exchange::EUR("2025-11-12".to_string()), dec!(4.2312));
+ exchange_rates.insert(Exchange::USD("2023-08-01".to_string()), dec!(4.0262));
+ exchange_rates.insert(Exchange::USD("2020-07-24".to_string()), dec!(3.8029));
+ exchange_rates.insert(Exchange::USD("2017-03-22".to_string()), dec!(3.9731));
+ exchange_rates.insert(Exchange::USD("2016-11-24".to_string()), dec!(4.188));
+ exchange_rates.insert(Exchange::USD("2014-01-21".to_string()), dec!(3.0763));
+ exchange_rates.insert(Exchange::USD("2020-11-12".to_string()), dec!(3.7995));
+ exchange_rates.insert(Exchange::USD("2016-06-07".to_string()), dec!(3.8298));
+ exchange_rates.insert(Exchange::USD("2015-12-22".to_string()), dec!(3.8787));
+ exchange_rates.insert(Exchange::USD("2012-12-18".to_string()), dec!(3.1044));
+ exchange_rates.insert(Exchange::USD("2020-01-07".to_string()), dec!(3.7861));
+ exchange_rates.insert(Exchange::USD("2022-06-29".to_string()), dec!(4.4533));
+ exchange_rates.insert(Exchange::USD("2017-04-28".to_string()), dec!(3.8696));
+ exchange_rates.insert(Exchange::USD("2019-10-14".to_string()), dec!(3.8958));
+ exchange_rates.insert(Exchange::USD("2019-02-21".to_string()), dec!(3.8247));
+ exchange_rates.insert(Exchange::USD("2025-06-17".to_string()), dec!(3.7005));
+ exchange_rates.insert(Exchange::USD("2019-01-04".to_string()), dec!(3.772));
+ exchange_rates.insert(Exchange::USD("2025-06-10".to_string()), dec!(3.7352));
+ exchange_rates.insert(Exchange::USD("2017-07-28".to_string()), dec!(3.6406));
+ exchange_rates.insert(Exchange::USD("2024-10-17".to_string()), dec!(3.9786));
+ exchange_rates.insert(Exchange::USD("2025-11-25".to_string()), dec!(3.6675));
+ exchange_rates.insert(Exchange::USD("2020-10-27".to_string()), dec!(3.886));
+ exchange_rates.insert(Exchange::USD("2018-09-19".to_string()), dec!(3.6685));
+ exchange_rates.insert(Exchange::USD("2014-02-14".to_string()), dec!(3.0334));
+ exchange_rates.insert(Exchange::USD("2021-10-07".to_string()), dec!(3.9334));
+ exchange_rates.insert(Exchange::USD("2019-04-10".to_string()), dec!(3.8023));
+ exchange_rates.insert(Exchange::USD("2022-10-06".to_string()), dec!(4.8989));
+ exchange_rates.insert(Exchange::EUR("2025-02-03".to_string()), dec!(4.2305));
+ exchange_rates.insert(Exchange::USD("2024-05-27".to_string()), dec!(3.9196));
+ exchange_rates.insert(Exchange::USD("2018-05-08".to_string()), dec!(3.5884));
+ exchange_rates.insert(Exchange::USD("2015-03-11".to_string()), dec!(3.9091));
+ exchange_rates.insert(Exchange::USD("2019-12-23".to_string()), dec!(3.8394));
+ exchange_rates.insert(Exchange::USD("2019-05-06".to_string()), dec!(3.8313));
+ exchange_rates.insert(Exchange::USD("2012-08-03".to_string()), dec!(3.3548));
+ exchange_rates.insert(Exchange::USD("2017-01-19".to_string()), dec!(4.1014));
+ exchange_rates.insert(Exchange::USD("2016-12-21".to_string()), dec!(4.2484));
+ exchange_rates.insert(Exchange::EUR("2023-01-19".to_string()), dec!(4.7053));
+ exchange_rates.insert(Exchange::USD("2016-08-12".to_string()), dec!(3.8219));
+ exchange_rates.insert(Exchange::USD("2023-03-14".to_string()), dec!(4.3793));
+ exchange_rates.insert(Exchange::USD("2016-05-12".to_string()), dec!(3.8811));
+ exchange_rates.insert(Exchange::EUR("2025-11-19".to_string()), dec!(4.2424));
+ exchange_rates.insert(Exchange::EUR("2023-01-25".to_string()), dec!(4.7079));
+ exchange_rates.insert(Exchange::USD("2024-10-08".to_string()), dec!(3.9299));
+ exchange_rates.insert(Exchange::USD("2014-03-31".to_string()), dec!(3.0344));
+ exchange_rates.insert(Exchange::USD("2019-07-17".to_string()), dec!(3.8038));
+ exchange_rates.insert(Exchange::USD("2016-12-19".to_string()), dec!(4.2255));
+ exchange_rates.insert(Exchange::USD("2021-05-21".to_string()), dec!(3.6778));
+ exchange_rates.insert(Exchange::USD("2019-09-18".to_string()), dec!(3.9322));
+ exchange_rates.insert(Exchange::USD("2018-07-30".to_string()), dec!(3.6684));
+ exchange_rates.insert(Exchange::USD("2021-08-11".to_string()), dec!(3.9148));
+ exchange_rates.insert(Exchange::USD("2018-10-30".to_string()), dec!(3.8062));
+ exchange_rates.insert(Exchange::USD("2014-10-28".to_string()), dec!(3.3295));
+ exchange_rates.insert(Exchange::USD("2020-10-21".to_string()), dec!(3.8706));
+ exchange_rates.insert(Exchange::USD("2020-02-27".to_string()), dec!(3.9413));
+ exchange_rates.insert(Exchange::USD("2021-10-15".to_string()), dec!(3.9413));
+ exchange_rates.insert(Exchange::USD("2013-04-22".to_string()), dec!(3.1448));
+ exchange_rates.insert(Exchange::USD("2017-07-14".to_string()), dec!(3.6986));
+ exchange_rates.insert(Exchange::USD("2023-03-01".to_string()), dec!(4.4094));
+ exchange_rates.insert(Exchange::USD("2016-02-08".to_string()), dec!(3.9525));
+ exchange_rates.insert(Exchange::USD("2013-02-14".to_string()), dec!(3.1209));
+ exchange_rates.insert(Exchange::EUR("2024-08-07".to_string()), dec!(4.3158));
+ exchange_rates.insert(Exchange::USD("2021-07-29".to_string()), dec!(3.8617));
+ exchange_rates.insert(Exchange::USD("2016-08-19".to_string()), dec!(3.7905));
+ exchange_rates.insert(Exchange::USD("2013-12-02".to_string()), dec!(3.0965));
+ exchange_rates.insert(Exchange::USD("2022-03-17".to_string()), dec!(4.2403));
+ exchange_rates.insert(Exchange::USD("2015-01-29".to_string()), dec!(3.7418));
+ exchange_rates.insert(Exchange::USD("2024-10-07".to_string()), dec!(3.9368));
+ exchange_rates.insert(Exchange::USD("2025-06-09".to_string()), dec!(3.7427));
+ exchange_rates.insert(Exchange::USD("2012-10-26".to_string()), dec!(3.2119));
+ exchange_rates.insert(Exchange::USD("2016-11-17".to_string()), dec!(4.1375));
+ exchange_rates.insert(Exchange::EUR("2023-03-17".to_string()), dec!(4.7062));
+ exchange_rates.insert(Exchange::USD("2013-10-09".to_string()), dec!(3.1057));
+ exchange_rates.insert(Exchange::USD("2024-01-08".to_string()), dec!(3.9812));
+ exchange_rates.insert(Exchange::EUR("2024-01-05".to_string()), dec!(4.3484));
+ exchange_rates.insert(Exchange::USD("2021-04-07".to_string()), dec!(3.8611));
+ exchange_rates.insert(Exchange::USD("2012-08-20".to_string()), dec!(3.2944));
+ exchange_rates.insert(Exchange::EUR("2025-03-27".to_string()), dec!(4.1913));
+ exchange_rates.insert(Exchange::USD("2018-03-14".to_string()), dec!(3.4055));
+ exchange_rates.insert(Exchange::USD("2013-11-18".to_string()), dec!(3.0953));
+ exchange_rates.insert(Exchange::USD("2015-02-13".to_string()), dec!(3.6552));
+ exchange_rates.insert(Exchange::EUR("2023-02-27".to_string()), dec!(4.7162));
+ exchange_rates.insert(Exchange::USD("2025-08-04".to_string()), dec!(3.6977));
+ exchange_rates.insert(Exchange::EUR("2024-12-03".to_string()), dec!(4.2927));
+ exchange_rates.insert(Exchange::USD("2017-05-26".to_string()), dec!(3.7248));
+ exchange_rates.insert(Exchange::USD("2025-11-24".to_string()), dec!(3.6726));
+ exchange_rates.insert(Exchange::USD("2018-09-21".to_string()), dec!(3.6402));
+ exchange_rates.insert(Exchange::USD("2020-02-05".to_string()), dec!(3.8654));
+ exchange_rates.insert(Exchange::USD("2013-02-06".to_string()), dec!(3.0868));
+ exchange_rates.insert(Exchange::USD("2016-11-16".to_string()), dec!(4.138));
+ exchange_rates.insert(Exchange::USD("2021-05-11".to_string()), dec!(3.7514));
+ exchange_rates.insert(Exchange::USD("2016-04-05".to_string()), dec!(3.7337));
+ exchange_rates.insert(Exchange::USD("2025-09-11".to_string()), dec!(3.6459));
+ exchange_rates.insert(Exchange::USD("2014-03-13".to_string()), dec!(3.0284));
+ exchange_rates.insert(Exchange::EUR("2025-09-19".to_string()), dec!(4.2666));
+ exchange_rates.insert(Exchange::USD("2015-11-06".to_string()), dec!(3.9075));
+ exchange_rates.insert(Exchange::USD("2018-10-05".to_string()), dec!(3.7518));
+ exchange_rates.insert(Exchange::USD("2012-02-28".to_string()), dec!(3.0977));
+ exchange_rates.insert(Exchange::EUR("2024-07-02".to_string()), dec!(4.3286));
+ exchange_rates.insert(Exchange::USD("2022-03-24".to_string()), dec!(4.331));
+ exchange_rates.insert(Exchange::USD("2020-06-24".to_string()), dec!(3.9395));
+ exchange_rates.insert(Exchange::USD("2013-02-08".to_string()), dec!(3.1056));
+ exchange_rates.insert(Exchange::USD("2021-05-24".to_string()), dec!(3.6795));
+ exchange_rates.insert(Exchange::USD("2019-12-19".to_string()), dec!(3.8281));
+ exchange_rates.insert(Exchange::USD("2016-10-07".to_string()), dec!(3.8505));
+ exchange_rates.insert(Exchange::USD("2013-10-08".to_string()), dec!(3.0873));
+ exchange_rates.insert(Exchange::USD("2025-02-12".to_string()), dec!(4.0215));
+ exchange_rates.insert(Exchange::USD("2018-02-02".to_string()), dec!(3.3329));
+ exchange_rates.insert(Exchange::USD("2017-12-13".to_string()), dec!(3.588));
+ exchange_rates.insert(Exchange::USD("2013-05-09".to_string()), dec!(3.1392));
+ exchange_rates.insert(Exchange::EUR("2025-02-06".to_string()), dec!(4.2073));
+ exchange_rates.insert(Exchange::USD("2015-11-09".to_string()), dec!(3.9605));
+ exchange_rates.insert(Exchange::EUR("2024-02-02".to_string()), dec!(4.3173));
+ exchange_rates.insert(Exchange::EUR("2023-11-16".to_string()), dec!(4.3854));
+ exchange_rates.insert(Exchange::USD("2019-07-30".to_string()), dec!(3.8493));
+ exchange_rates.insert(Exchange::USD("2014-01-14".to_string()), dec!(3.04));
+ exchange_rates.insert(Exchange::USD("2017-06-23".to_string()), dec!(3.7824));
+ exchange_rates.insert(Exchange::USD("2019-11-26".to_string()), dec!(3.9039));
+ exchange_rates.insert(Exchange::USD("2015-10-13".to_string()), dec!(3.7199));
+ exchange_rates.insert(Exchange::EUR("2024-08-23".to_string()), dec!(4.2769));
+ exchange_rates.insert(Exchange::USD("2021-03-19".to_string()), dec!(3.8865));
+ exchange_rates.insert(Exchange::EUR("2023-08-21".to_string()), dec!(4.4768));
+ exchange_rates.insert(Exchange::USD("2014-02-04".to_string()), dec!(3.1189));
+ exchange_rates.insert(Exchange::USD("2021-04-22".to_string()), dec!(3.7885));
+ exchange_rates.insert(Exchange::USD("2024-07-31".to_string()), dec!(3.9689));
+ exchange_rates.insert(Exchange::USD("2022-02-23".to_string()), dec!(3.9937));
+ exchange_rates.insert(Exchange::USD("2016-01-11".to_string()), dec!(4.0085));
+ exchange_rates.insert(Exchange::USD("2020-09-02".to_string()), dec!(3.7191));
+ exchange_rates.insert(Exchange::USD("2017-05-24".to_string()), dec!(3.7535));
+ exchange_rates.insert(Exchange::USD("2013-04-30".to_string()), dec!(3.1721));
+ exchange_rates.insert(Exchange::USD("2021-05-18".to_string()), dec!(3.705));
+ exchange_rates.insert(Exchange::USD("2017-06-06".to_string()), dec!(3.725));
+ exchange_rates.insert(Exchange::USD("2018-10-19".to_string()), dec!(3.7601));
+ exchange_rates.insert(Exchange::USD("2024-10-24".to_string()), dec!(4.0168));
+ exchange_rates.insert(Exchange::USD("2020-07-10".to_string()), dec!(3.9646));
+ exchange_rates.insert(Exchange::USD("2017-03-09".to_string()), dec!(4.0864));
+ exchange_rates.insert(Exchange::USD("2020-05-15".to_string()), dec!(4.2135));
+ exchange_rates.insert(Exchange::USD("2017-02-02".to_string()), dec!(3.9835));
+ exchange_rates.insert(Exchange::USD("2021-07-27".to_string()), dec!(3.9017));
+ exchange_rates.insert(Exchange::USD("2014-03-26".to_string()), dec!(3.0318));
+ exchange_rates.insert(Exchange::USD("2022-11-25".to_string()), dec!(4.5111));
+ exchange_rates.insert(Exchange::USD("2015-03-10".to_string()), dec!(3.8345));
+ exchange_rates.insert(Exchange::EUR("2024-08-26".to_string()), dec!(4.2803));
+ exchange_rates.insert(Exchange::EUR("2024-12-16".to_string()), dec!(4.2622));
+ exchange_rates.insert(Exchange::USD("2025-04-09".to_string()), dec!(3.8828));
+ exchange_rates.insert(Exchange::USD("2020-12-10".to_string()), dec!(3.6574));
+ exchange_rates.insert(Exchange::USD("2019-07-04".to_string()), dec!(3.7618));
+ exchange_rates.insert(Exchange::USD("2020-01-09".to_string()), dec!(3.8251));
+ exchange_rates.insert(Exchange::EUR("2024-01-03".to_string()), dec!(4.3646));
+ exchange_rates.insert(Exchange::USD("2022-08-05".to_string()), dec!(4.6024));
+ exchange_rates.insert(Exchange::USD("2019-11-20".to_string()), dec!(3.8792));
+ exchange_rates.insert(Exchange::USD("2023-09-11".to_string()), dec!(4.3077));
+ exchange_rates.insert(Exchange::USD("2019-07-25".to_string()), dec!(3.8199));
+ exchange_rates.insert(Exchange::USD("2016-03-04".to_string()), dec!(3.9545));
+ exchange_rates.insert(Exchange::USD("2015-12-09".to_string()), dec!(3.9705));
+ exchange_rates.insert(Exchange::USD("2014-10-16".to_string()), dec!(3.2985));
+ exchange_rates.insert(Exchange::USD("2016-06-22".to_string()), dec!(3.8945));
+ exchange_rates.insert(Exchange::EUR("2023-01-04".to_string()), dec!(4.6688));
+ exchange_rates.insert(Exchange::EUR("2023-09-22".to_string()), dec!(4.6069));
+ exchange_rates.insert(Exchange::USD("2014-03-27".to_string()), dec!(3.0401));
+ exchange_rates.insert(Exchange::USD("2023-10-13".to_string()), dec!(4.3033));
+ exchange_rates.insert(Exchange::USD("2019-12-31".to_string()), dec!(3.7977));
+ exchange_rates.insert(Exchange::USD("2015-03-16".to_string()), dec!(3.926));
+ exchange_rates.insert(Exchange::USD("2020-12-01".to_string()), dec!(3.7367));
+ exchange_rates.insert(Exchange::USD("2013-05-23".to_string()), dec!(3.2587));
+ exchange_rates.insert(Exchange::EUR("2023-02-10".to_string()), dec!(4.7716));
+ exchange_rates.insert(Exchange::USD("2023-06-01".to_string()), dec!(4.2399));
+ exchange_rates.insert(Exchange::USD("2024-11-26".to_string()), dec!(4.1073));
+ exchange_rates.insert(Exchange::USD("2021-08-30".to_string()), dec!(3.8724));
+ exchange_rates.insert(Exchange::EUR("2024-01-04".to_string()), dec!(4.3525));
+ exchange_rates.insert(Exchange::USD("2024-12-20".to_string()), dec!(4.1002));
+ exchange_rates.insert(Exchange::USD("2014-08-05".to_string()), dec!(3.1121));
+ exchange_rates.insert(Exchange::EUR("2025-07-02".to_string()), dec!(4.25));
+ exchange_rates.insert(Exchange::USD("2015-06-24".to_string()), dec!(3.7103));
+ exchange_rates.insert(Exchange::USD("2013-03-27".to_string()), dec!(3.2635));
+ exchange_rates.insert(Exchange::USD("2013-01-23".to_string()), dec!(3.1195));
+ exchange_rates.insert(Exchange::USD("2023-05-23".to_string()), dec!(4.1634));
+ exchange_rates.insert(Exchange::USD("2018-11-05".to_string()), dec!(3.7907));
+ exchange_rates.insert(Exchange::USD("2016-01-25".to_string()), dec!(4.1346));
+ exchange_rates.insert(Exchange::USD("2013-06-10".to_string()), dec!(3.221));
+ exchange_rates.insert(Exchange::USD("2013-07-18".to_string()), dec!(3.2362));
+ exchange_rates.insert(Exchange::USD("2021-03-12".to_string()), dec!(3.8521));
+ exchange_rates.insert(Exchange::USD("2012-09-12".to_string()), dec!(3.168));
+ exchange_rates.insert(Exchange::USD("2019-10-10".to_string()), dec!(3.9226));
+ exchange_rates.insert(Exchange::USD("2012-11-21".to_string()), dec!(3.2287));
+ exchange_rates.insert(Exchange::USD("2025-02-17".to_string()), dec!(3.9749));
+ exchange_rates.insert(Exchange::USD("2015-09-23".to_string()), dec!(3.7801));
+ exchange_rates.insert(Exchange::EUR("2025-06-30".to_string()), dec!(4.2419));
+ exchange_rates.insert(Exchange::USD("2024-01-18".to_string()), dec!(4.0437));
+ exchange_rates.insert(Exchange::USD("2015-01-27".to_string()), dec!(3.7348));
+ exchange_rates.insert(Exchange::USD("2015-09-11".to_string()), dec!(3.7264));
+ exchange_rates.insert(Exchange::USD("2022-01-12".to_string()), dec!(3.9879));
+ exchange_rates.insert(Exchange::USD("2020-03-06".to_string()), dec!(3.8231));
+ exchange_rates.insert(Exchange::USD("2025-01-13".to_string()), dec!(4.1904));
+ exchange_rates.insert(Exchange::USD("2018-09-05".to_string()), dec!(3.733));
+ exchange_rates.insert(Exchange::USD("2022-07-19".to_string()), dec!(4.6594));
+ exchange_rates.insert(Exchange::USD("2025-11-12".to_string()), dec!(3.657));
+ exchange_rates.insert(Exchange::EUR("2023-07-27".to_string()), dec!(4.4224));
+ exchange_rates.insert(Exchange::USD("2021-04-01".to_string()), dec!(3.9428));
+ exchange_rates.insert(Exchange::EUR("2025-07-14".to_string()), dec!(4.2614));
+ exchange_rates.insert(Exchange::USD("2021-08-24".to_string()), dec!(3.9086));
+ exchange_rates.insert(Exchange::USD("2025-10-06".to_string()), dec!(3.6446));
+ exchange_rates.insert(Exchange::USD("2013-10-16".to_string()), dec!(3.0854));
+ exchange_rates.insert(Exchange::USD("2023-10-27".to_string()), dec!(4.2267));
+ exchange_rates.insert(Exchange::USD("2021-04-16".to_string()), dec!(3.7978));
+ exchange_rates.insert(Exchange::USD("2023-08-08".to_string()), dec!(4.0396));
+ exchange_rates.insert(Exchange::USD("2021-07-09".to_string()), dec!(3.8427));
+ exchange_rates.insert(Exchange::USD("2015-06-16".to_string()), dec!(3.6933));
+ exchange_rates.insert(Exchange::USD("2017-11-02".to_string()), dec!(3.6366));
+ exchange_rates.insert(Exchange::USD("2014-01-27".to_string()), dec!(3.0884));
+ exchange_rates.insert(Exchange::USD("2014-09-30".to_string()), dec!(3.2973));
+ exchange_rates.insert(Exchange::USD("2023-06-19".to_string()), dec!(4.068));
+ exchange_rates.insert(Exchange::USD("2024-12-27".to_string()), dec!(4.1036));
+ exchange_rates.insert(Exchange::USD("2016-05-06".to_string()), dec!(3.8732));
+ exchange_rates.insert(Exchange::USD("2013-07-10".to_string()), dec!(3.3724));
+ exchange_rates.insert(Exchange::USD("2012-07-24".to_string()), dec!(3.4678));
+ exchange_rates.insert(Exchange::USD("2015-06-02".to_string()), dec!(3.7676));
+ exchange_rates.insert(Exchange::USD("2025-09-22".to_string()), dec!(3.6255));
+ exchange_rates.insert(Exchange::USD("2016-10-25".to_string()), dec!(3.9543));
+ exchange_rates.insert(Exchange::USD("2017-12-14".to_string()), dec!(3.5716));
+ exchange_rates.insert(Exchange::USD("2014-11-27".to_string()), dec!(3.3528));
+ exchange_rates.insert(Exchange::USD("2025-09-25".to_string()), dec!(3.6295));
+ exchange_rates.insert(Exchange::USD("2021-11-24".to_string()), dec!(4.1764));
+ exchange_rates.insert(Exchange::EUR("2025-08-04".to_string()), dec!(4.2734));
+ exchange_rates.insert(Exchange::USD("2014-06-05".to_string()), dec!(3.0275));
+ exchange_rates.insert(Exchange::USD("2025-09-01".to_string()), dec!(3.6278));
+ exchange_rates.insert(Exchange::USD("2014-07-16".to_string()), dec!(3.0503));
+ exchange_rates.insert(Exchange::USD("2018-01-10".to_string()), dec!(3.4999));
+ exchange_rates.insert(Exchange::EUR("2025-07-09".to_string()), dec!(4.2399));
+ exchange_rates.insert(Exchange::USD("2020-07-13".to_string()), dec!(3.9564));
+ exchange_rates.insert(Exchange::USD("2018-07-10".to_string()), dec!(3.6973));
+ exchange_rates.insert(Exchange::USD("2015-09-22".to_string()), dec!(3.7438));
+ exchange_rates.insert(Exchange::USD("2013-02-27".to_string()), dec!(3.1841));
+ exchange_rates.insert(Exchange::USD("2022-02-15".to_string()), dec!(3.974));
+ exchange_rates.insert(Exchange::USD("2020-07-06".to_string()), dec!(3.9588));
+ exchange_rates.insert(Exchange::USD("2013-05-06".to_string()), dec!(3.1646));
+ exchange_rates.insert(Exchange::EUR("2023-08-09".to_string()), dec!(4.4586));
+ exchange_rates.insert(Exchange::USD("2020-06-16".to_string()), dec!(3.9058));
+ exchange_rates.insert(Exchange::USD("2012-04-06".to_string()), dec!(3.1814));
+ exchange_rates.insert(Exchange::USD("2018-08-02".to_string()), dec!(3.6783));
+ exchange_rates.insert(Exchange::USD("2016-06-02".to_string()), dec!(3.9204));
+ exchange_rates.insert(Exchange::USD("2019-03-25".to_string()), dec!(3.7966));
+ exchange_rates.insert(Exchange::USD("2017-11-24".to_string()), dec!(3.5486));
+ exchange_rates.insert(Exchange::USD("2019-01-25".to_string()), dec!(3.7893));
+ exchange_rates.insert(Exchange::USD("2014-04-23".to_string()), dec!(3.0273));
+ exchange_rates.insert(Exchange::USD("2012-03-09".to_string()), dec!(3.1126));
+ exchange_rates.insert(Exchange::USD("2017-08-09".to_string()), dec!(3.6342));
+ exchange_rates.insert(Exchange::USD("2015-01-23".to_string()), dec!(3.7687));
+ exchange_rates.insert(Exchange::USD("2018-05-17".to_string()), dec!(3.6283));
+ exchange_rates.insert(Exchange::USD("2015-03-12".to_string()), dec!(3.8928));
+ exchange_rates.insert(Exchange::USD("2025-01-02".to_string()), dec!(4.1219));
+ exchange_rates.insert(Exchange::USD("2013-09-02".to_string()), dec!(3.2164));
+ exchange_rates.insert(Exchange::USD("2012-02-01".to_string()), dec!(3.1913));
+ exchange_rates.insert(Exchange::USD("2023-09-06".to_string()), dec!(4.1895));
+ exchange_rates.insert(Exchange::USD("2024-03-18".to_string()), dec!(3.9528));
+ exchange_rates.insert(Exchange::USD("2022-06-08".to_string()), dec!(4.2904));
+ exchange_rates.insert(Exchange::USD("2017-11-14".to_string()), dec!(3.6126));
+ exchange_rates.insert(Exchange::USD("2012-01-27".to_string()), dec!(3.2163));
+ exchange_rates.insert(Exchange::USD("2018-09-12".to_string()), dec!(3.7198));
+ exchange_rates.insert(Exchange::USD("2020-12-15".to_string()), dec!(3.6554));
+ exchange_rates.insert(Exchange::USD("2017-10-18".to_string()), dec!(3.6006));
+ exchange_rates.insert(Exchange::USD("2025-10-28".to_string()), dec!(3.6327));
+ exchange_rates.insert(Exchange::USD("2018-06-25".to_string()), dec!(3.7087));
+ exchange_rates.insert(Exchange::EUR("2025-12-18".to_string()), dec!(4.2076));
+ exchange_rates.insert(Exchange::USD("2017-10-09".to_string()), dec!(3.6743));
+ exchange_rates.insert(Exchange::USD("2024-07-23".to_string()), dec!(3.9355));
+ exchange_rates.insert(Exchange::USD("2023-02-10".to_string()), dec!(4.4565));
+ exchange_rates.insert(Exchange::USD("2020-07-29".to_string()), dec!(3.761));
+ exchange_rates.insert(Exchange::USD("2013-07-16".to_string()), dec!(3.2735));
+ exchange_rates.insert(Exchange::USD("2012-01-26".to_string()), dec!(3.2233));
+ exchange_rates.insert(Exchange::EUR("2024-09-16".to_string()), dec!(4.2753));
+ exchange_rates.insert(Exchange::USD("2019-03-27".to_string()), dec!(3.8113));
+ exchange_rates.insert(Exchange::USD("2023-04-17".to_string()), dec!(4.2261));
+ exchange_rates.insert(Exchange::USD("2022-08-18".to_string()), dec!(4.6468));
+ exchange_rates.insert(Exchange::USD("2018-11-22".to_string()), dec!(3.7764));
+ exchange_rates.insert(Exchange::USD("2014-03-03".to_string()), dec!(3.0462));
+ exchange_rates.insert(Exchange::USD("2013-12-23".to_string()), dec!(3.0443));
+ exchange_rates.insert(Exchange::EUR("2024-07-03".to_string()), dec!(4.3021));
+ exchange_rates.insert(Exchange::USD("2024-06-26".to_string()), dec!(4.0291));
+ exchange_rates.insert(Exchange::USD("2020-12-14".to_string()), dec!(3.6548));
+ exchange_rates.insert(Exchange::EUR("2025-10-23".to_string()), dec!(4.2347));
+ exchange_rates.insert(Exchange::USD("2014-07-22".to_string()), dec!(3.0748));
+ exchange_rates.insert(Exchange::EUR("2025-05-29".to_string()), dec!(4.2369));
+ exchange_rates.insert(Exchange::USD("2021-04-08".to_string()), dec!(3.8365));
+ exchange_rates.insert(Exchange::USD("2021-01-05".to_string()), dec!(3.7031));
+ exchange_rates.insert(Exchange::USD("2018-02-16".to_string()), dec!(3.3173));
+ exchange_rates.insert(Exchange::USD("2024-05-07".to_string()), dec!(4.0056));
+ exchange_rates.insert(Exchange::USD("2014-03-17".to_string()), dec!(3.043));
+ exchange_rates.insert(Exchange::EUR("2024-05-08".to_string()), dec!(4.3195));
+ exchange_rates.insert(Exchange::USD("2018-10-15".to_string()), dec!(3.7091));
+ exchange_rates.insert(Exchange::USD("2014-12-01".to_string()), dec!(3.3519));
+ exchange_rates.insert(Exchange::USD("2025-09-12".to_string()), dec!(3.635));
+ exchange_rates.insert(Exchange::USD("2012-03-12".to_string()), dec!(3.1285));
+ exchange_rates.insert(Exchange::USD("2020-06-29".to_string()), dec!(3.9656));
+ exchange_rates.insert(Exchange::USD("2016-12-30".to_string()), dec!(4.1793));
+ exchange_rates.insert(Exchange::USD("2016-05-04".to_string()), dec!(3.83));
+ exchange_rates.insert(Exchange::USD("2015-01-05".to_string()), dec!(3.5975));
+ exchange_rates.insert(Exchange::EUR("2025-12-15".to_string()), dec!(4.2192));
+ exchange_rates.insert(Exchange::USD("2015-07-15".to_string()), dec!(3.747));
+ exchange_rates.insert(Exchange::USD("2024-06-07".to_string()), dec!(3.9389));
+ exchange_rates.insert(Exchange::EUR("2023-08-14".to_string()), dec!(4.4361));
+ exchange_rates.insert(Exchange::EUR("2023-09-07".to_string()), dec!(4.594));
+ exchange_rates.insert(Exchange::EUR("2025-01-09".to_string()), dec!(4.2794));
+ exchange_rates.insert(Exchange::USD("2014-03-06".to_string()), dec!(3.0427));
+ exchange_rates.insert(Exchange::USD("2013-04-10".to_string()), dec!(3.1405));
+ exchange_rates.insert(Exchange::USD("2014-12-17".to_string()), dec!(3.3928));
+ exchange_rates.insert(Exchange::USD("2022-06-15".to_string()), dec!(4.4455));
+ exchange_rates.insert(Exchange::EUR("2024-04-10".to_string()), dec!(4.2641));
+ exchange_rates.insert(Exchange::USD("2013-06-06".to_string()), dec!(3.2564));
+ exchange_rates.insert(Exchange::USD("2017-07-24".to_string()), dec!(3.6395));
+ exchange_rates.insert(Exchange::USD("2018-08-14".to_string()), dec!(3.7768));
+ exchange_rates.insert(Exchange::USD("2019-08-30".to_string()), dec!(3.9717));
+ exchange_rates.insert(Exchange::USD("2013-02-20".to_string()), dec!(3.1002));
+ exchange_rates.insert(Exchange::EUR("2023-10-27".to_string()), dec!(4.4642));
+ exchange_rates.insert(Exchange::EUR("2023-11-17".to_string()), dec!(4.3767));
+ exchange_rates.insert(Exchange::USD("2022-04-22".to_string()), dec!(4.2935));
+ exchange_rates.insert(Exchange::USD("2021-03-24".to_string()), dec!(3.9098));
+ exchange_rates.insert(Exchange::USD("2020-04-15".to_string()), dec!(4.1519));
+ exchange_rates.insert(Exchange::USD("2018-08-17".to_string()), dec!(3.7784));
+ exchange_rates.insert(Exchange::USD("2016-04-04".to_string()), dec!(3.7254));
+ exchange_rates.insert(Exchange::USD("2012-06-29".to_string()), dec!(3.3885));
+ exchange_rates.insert(Exchange::USD("2024-08-26".to_string()), dec!(3.8284));
+ exchange_rates.insert(Exchange::USD("2013-10-29".to_string()), dec!(3.0436));
+ exchange_rates.insert(Exchange::EUR("2025-08-18".to_string()), dec!(4.2558));
+ exchange_rates.insert(Exchange::USD("2013-01-18".to_string()), dec!(3.0925));
+ exchange_rates.insert(Exchange::USD("2023-01-12".to_string()), dec!(4.3556));
+ exchange_rates.insert(Exchange::USD("2018-06-13".to_string()), dec!(3.6461));
+ exchange_rates.insert(Exchange::USD("2016-11-22".to_string()), dec!(4.1507));
+ exchange_rates.insert(Exchange::USD("2016-10-13".to_string()), dec!(3.9164));
+ exchange_rates.insert(Exchange::USD("2022-06-10".to_string()), dec!(4.3363));
+ exchange_rates.insert(Exchange::USD("2013-11-29".to_string()), dec!(3.0846));
+ exchange_rates.insert(Exchange::USD("2016-09-21".to_string()), dec!(3.8601));
+ exchange_rates.insert(Exchange::USD("2023-08-25".to_string()), dec!(4.1419));
+ exchange_rates.insert(Exchange::USD("2019-03-19".to_string()), dec!(3.7823));
+ exchange_rates.insert(Exchange::EUR("2024-03-27".to_string()), dec!(4.3153));
+ exchange_rates.insert(Exchange::USD("2017-08-25".to_string()), dec!(3.6112));
+ exchange_rates.insert(Exchange::USD("2016-11-23".to_string()), dec!(4.1588));
+ exchange_rates.insert(Exchange::USD("2017-10-25".to_string()), dec!(3.6006));
+ exchange_rates.insert(Exchange::USD("2016-09-15".to_string()), dec!(3.8587));
+ exchange_rates.insert(Exchange::USD("2023-02-27".to_string()), dec!(4.4697));
+ exchange_rates.insert(Exchange::USD("2022-12-05".to_string()), dec!(4.4415));
+ exchange_rates.insert(Exchange::USD("2018-08-23".to_string()), dec!(3.7069));
+ exchange_rates.insert(Exchange::USD("2013-06-19".to_string()), dec!(3.1777));
+ exchange_rates.insert(Exchange::USD("2015-10-15".to_string()), dec!(3.6948));
+ exchange_rates.insert(Exchange::USD("2025-09-10".to_string()), dec!(3.6414));
+ exchange_rates.insert(Exchange::USD("2014-06-12".to_string()), dec!(3.0374));
+ exchange_rates.insert(Exchange::USD("2019-08-20".to_string()), dec!(3.9408));
+ exchange_rates.insert(Exchange::USD("2015-03-30".to_string()), dec!(3.7685));
+ exchange_rates.insert(Exchange::USD("2025-10-13".to_string()), dec!(3.6763));
+ exchange_rates.insert(Exchange::USD("2019-04-05".to_string()), dec!(3.8215));
+ exchange_rates.insert(Exchange::USD("2013-04-17".to_string()), dec!(3.1159));
+ exchange_rates.insert(Exchange::USD("2012-09-28".to_string()), dec!(3.178));
+ exchange_rates.insert(Exchange::USD("2013-11-05".to_string()), dec!(3.0981));
+ exchange_rates.insert(Exchange::USD("2012-08-30".to_string()), dec!(3.3397));
+ exchange_rates.insert(Exchange::USD("2016-05-10".to_string()), dec!(3.8853));
+ exchange_rates.insert(Exchange::USD("2017-01-24".to_string()), dec!(4.0708));
+ exchange_rates.insert(Exchange::USD("2017-07-20".to_string()), dec!(3.6604));
+ exchange_rates.insert(Exchange::EUR("2024-10-23".to_string()), dec!(4.3344));
+ exchange_rates.insert(Exchange::USD("2024-07-03".to_string()), dec!(3.999));
+ exchange_rates.insert(Exchange::USD("2013-09-13".to_string()), dec!(3.1696));
+ exchange_rates.insert(Exchange::USD("2015-06-19".to_string()), dec!(3.6879));
+ exchange_rates.insert(Exchange::USD("2025-07-31".to_string()), dec!(3.7257));
+ exchange_rates.insert(Exchange::USD("2020-06-05".to_string()), dec!(3.9217));
+ exchange_rates.insert(Exchange::USD("2025-08-28".to_string()), dec!(3.6658));
+ exchange_rates.insert(Exchange::USD("2013-10-14".to_string()), dec!(3.0936));
+ exchange_rates.insert(Exchange::USD("2015-06-23".to_string()), dec!(3.704));
+ exchange_rates.insert(Exchange::USD("2014-03-19".to_string()), dec!(3.0245));
+ exchange_rates.insert(Exchange::USD("2018-01-24".to_string()), dec!(3.375));
+ exchange_rates.insert(Exchange::USD("2018-03-08".to_string()), dec!(3.3935));
+ exchange_rates.insert(Exchange::USD("2017-03-17".to_string()), dec!(3.9917));
+ exchange_rates.insert(Exchange::USD("2013-04-03".to_string()), dec!(3.2693));
+ exchange_rates.insert(Exchange::USD("2025-01-29".to_string()), dec!(4.0443));
+ exchange_rates.insert(Exchange::USD("2013-07-23".to_string()), dec!(3.2001));
+ exchange_rates.insert(Exchange::USD("2015-07-31".to_string()), dec!(3.7929));
+ exchange_rates.insert(Exchange::USD("2013-07-24".to_string()), dec!(3.18));
+ exchange_rates.insert(Exchange::USD("2015-05-04".to_string()), dec!(3.632));
+ exchange_rates.insert(Exchange::EUR("2024-06-13".to_string()), dec!(4.3355));
+ exchange_rates.insert(Exchange::USD("2018-06-18".to_string()), dec!(3.7003));
+ exchange_rates.insert(Exchange::USD("2025-11-14".to_string()), dec!(3.6376));
+ exchange_rates.insert(Exchange::USD("2015-06-09".to_string()), dec!(3.6975));
+ exchange_rates.insert(Exchange::USD("2021-02-23".to_string()), dec!(3.7117));
+ exchange_rates.insert(Exchange::EUR("2023-04-12".to_string()), dec!(4.666));
+ exchange_rates.insert(Exchange::USD("2014-01-31".to_string()), dec!(3.1288));
+ exchange_rates.insert(Exchange::USD("2018-11-02".to_string()), dec!(3.7804));
+ exchange_rates.insert(Exchange::USD("2012-06-15".to_string()), dec!(3.3971));
+ exchange_rates.insert(Exchange::USD("2018-07-04".to_string()), dec!(3.7759));
+ exchange_rates.insert(Exchange::USD("2016-06-30".to_string()), dec!(3.9803));
+ exchange_rates.insert(Exchange::USD("2014-06-09".to_string()), dec!(3.0067));
+ exchange_rates.insert(Exchange::USD("2025-07-21".to_string()), dec!(3.6455));
+ exchange_rates.insert(Exchange::USD("2019-03-05".to_string()), dec!(3.7977));
+ exchange_rates.insert(Exchange::USD("2015-05-21".to_string()), dec!(3.6605));
+ exchange_rates.insert(Exchange::USD("2012-07-13".to_string()), dec!(3.4463));
+ exchange_rates.insert(Exchange::EUR("2023-04-21".to_string()), dec!(4.6039));
+ exchange_rates.insert(Exchange::USD("2015-11-18".to_string()), dec!(3.9802));
+ exchange_rates.insert(Exchange::EUR("2023-09-29".to_string()), dec!(4.6356));
+ exchange_rates.insert(Exchange::USD("2012-02-22".to_string()), dec!(3.1635));
+ exchange_rates.insert(Exchange::USD("2019-02-25".to_string()), dec!(3.8241));
+ exchange_rates.insert(Exchange::USD("2024-09-04".to_string()), dec!(3.8738));
+ exchange_rates.insert(Exchange::USD("2022-07-22".to_string()), dec!(4.692));
+ exchange_rates.insert(Exchange::USD("2021-07-02".to_string()), dec!(3.8263));
+ exchange_rates.insert(Exchange::USD("2023-09-29".to_string()), dec!(4.3697));
+ exchange_rates.insert(Exchange::EUR("2024-12-23".to_string()), dec!(4.2621));
+ exchange_rates.insert(Exchange::USD("2025-06-26".to_string()), dec!(3.6222));
+ exchange_rates.insert(Exchange::USD("2025-04-18".to_string()), dec!(3.7661));
+ exchange_rates.insert(Exchange::USD("2025-05-16".to_string()), dec!(3.7853));
+ exchange_rates.insert(Exchange::USD("2013-05-16".to_string()), dec!(3.2521));
+ exchange_rates.insert(Exchange::USD("2021-07-05".to_string()), dec!(3.7979));
+ exchange_rates.insert(Exchange::USD("2012-03-29".to_string()), dec!(3.1234));
+ exchange_rates.insert(Exchange::USD("2021-05-13".to_string()), dec!(3.7675));
+ exchange_rates.insert(Exchange::USD("2014-09-19".to_string()), dec!(3.2507));
+ exchange_rates.insert(Exchange::USD("2024-08-21".to_string()), dec!(3.8565));
+ exchange_rates.insert(Exchange::USD("2025-04-17".to_string()), dec!(3.7684));
+ exchange_rates.insert(Exchange::EUR("2023-05-26".to_string()), dec!(4.5242));
+ exchange_rates.insert(Exchange::USD("2019-04-02".to_string()), dec!(3.8403));
+ exchange_rates.insert(Exchange::USD("2015-09-21".to_string()), dec!(3.708));
+ exchange_rates.insert(Exchange::USD("2020-09-17".to_string()), dec!(3.7713));
+ exchange_rates.insert(Exchange::USD("2012-03-30".to_string()), dec!(3.1191));
+ exchange_rates.insert(Exchange::USD("2014-09-22".to_string()), dec!(3.257));
+ exchange_rates.insert(Exchange::USD("2017-03-10".to_string()), dec!(4.0761));
+ exchange_rates.insert(Exchange::EUR("2025-07-22".to_string()), dec!(4.2531));
+ exchange_rates.insert(Exchange::USD("2021-06-15".to_string()), dec!(3.7349));
+ exchange_rates.insert(Exchange::USD("2022-03-09".to_string()), dec!(4.4147));
+ exchange_rates.insert(Exchange::USD("2015-04-22".to_string()), dec!(3.7125));
+ exchange_rates.insert(Exchange::USD("2016-06-09".to_string()), dec!(3.8126));
+ exchange_rates.insert(Exchange::USD("2013-07-01".to_string()), dec!(3.321));
+ exchange_rates.insert(Exchange::EUR("2023-09-08".to_string()), dec!(4.6019));
+ exchange_rates.insert(Exchange::USD("2021-12-06".to_string()), dec!(4.0619));
+ exchange_rates.insert(Exchange::USD("2021-01-14".to_string()), dec!(3.7323));
+ exchange_rates.insert(Exchange::USD("2018-01-11".to_string()), dec!(3.495));
+ exchange_rates.insert(Exchange::USD("2023-06-06".to_string()), dec!(4.1964));
+ exchange_rates.insert(Exchange::USD("2020-03-30".to_string()), dec!(4.0933));
+ exchange_rates.insert(Exchange::USD("2018-04-18".to_string()), dec!(3.3721));
+ exchange_rates.insert(Exchange::EUR("2023-06-30".to_string()), dec!(4.4503));
+ exchange_rates.insert(Exchange::EUR("2025-06-23".to_string()), dec!(4.2727));
+ exchange_rates.insert(Exchange::EUR("2023-12-06".to_string()), dec!(4.3382));
+ exchange_rates.insert(Exchange::USD("2024-09-12".to_string()), dec!(3.9025));
+ exchange_rates.insert(Exchange::EUR("2024-01-02".to_string()), dec!(4.3434));
+ exchange_rates.insert(Exchange::USD("2024-01-30".to_string()), dec!(4.0301));
+ exchange_rates.insert(Exchange::USD("2017-09-29".to_string()), dec!(3.6519));
+ exchange_rates.insert(Exchange::USD("2024-08-20".to_string()), dec!(3.8506));
+ exchange_rates.insert(Exchange::USD("2012-04-04".to_string()), dec!(3.1503));
+ exchange_rates.insert(Exchange::USD("2012-04-05".to_string()), dec!(3.1678));
+ exchange_rates.insert(Exchange::USD("2012-08-24".to_string()), dec!(3.268));
+ exchange_rates.insert(Exchange::USD("2012-11-14".to_string()), dec!(3.275));
+ exchange_rates.insert(Exchange::EUR("2024-07-23".to_string()), dec!(4.281));
+ exchange_rates.insert(Exchange::EUR("2025-05-23".to_string()), dec!(4.2541));
+ exchange_rates.insert(Exchange::USD("2013-03-22".to_string()), dec!(3.2361));
+ exchange_rates.insert(Exchange::USD("2016-12-06".to_string()), dec!(4.1825));
+ exchange_rates.insert(Exchange::USD("2013-10-07".to_string()), dec!(3.0976));
+ exchange_rates.insert(Exchange::USD("2012-10-08".to_string()), dec!(3.143));
+ exchange_rates.insert(Exchange::USD("2017-06-01".to_string()), dec!(3.7262));
+ exchange_rates.insert(Exchange::USD("2014-08-28".to_string()), dec!(3.1834));
+ exchange_rates.insert(Exchange::USD("2013-03-06".to_string()), dec!(3.166));
+ exchange_rates.insert(Exchange::EUR("2024-12-13".to_string()), dec!(4.2722));
+ exchange_rates.insert(Exchange::USD("2014-02-03".to_string()), dec!(3.137));
+ exchange_rates.insert(Exchange::USD("2020-06-10".to_string()), dec!(3.918));
+ exchange_rates.insert(Exchange::USD("2023-02-23".to_string()), dec!(4.4873));
+ exchange_rates.insert(Exchange::USD("2019-01-28".to_string()), dec!(3.7592));
+ exchange_rates.insert(Exchange::USD("2016-04-29".to_string()), dec!(3.8738));
+ exchange_rates.insert(Exchange::USD("2016-09-28".to_string()), dec!(3.8264));
+ exchange_rates.insert(Exchange::EUR("2024-10-29".to_string()), dec!(4.3542));
+ exchange_rates.insert(Exchange::USD("2012-05-02".to_string()), dec!(3.1593));
+ exchange_rates.insert(Exchange::EUR("2023-07-14".to_string()), dec!(4.4486));
+ exchange_rates.insert(Exchange::USD("2023-11-17".to_string()), dec!(4.0327));
+ exchange_rates.insert(Exchange::USD("2016-10-20".to_string()), dec!(3.9359));
+ exchange_rates.insert(Exchange::USD("2015-12-01".to_string()), dec!(4.0248));
+ exchange_rates.insert(Exchange::USD("2018-04-09".to_string()), dec!(3.4174));
+ exchange_rates.insert(Exchange::USD("2012-04-12".to_string()), dec!(3.1818));
+ exchange_rates.insert(Exchange::USD("2020-05-28".to_string()), dec!(4.0244));
+ exchange_rates.insert(Exchange::USD("2015-01-19".to_string()), dec!(3.7176));
+ exchange_rates.insert(Exchange::USD("2023-04-12".to_string()), dec!(4.2713));
+ exchange_rates.insert(Exchange::USD("2012-06-11".to_string()), dec!(3.4072));
+ exchange_rates.insert(Exchange::USD("2016-06-17".to_string()), dec!(3.9412));
+ exchange_rates.insert(Exchange::USD("2023-04-13".to_string()), dec!(4.2225));
+ exchange_rates.insert(Exchange::USD("2016-07-15".to_string()), dec!(3.9598));
+ exchange_rates.insert(Exchange::USD("2012-11-27".to_string()), dec!(3.1634));
+ exchange_rates.insert(Exchange::USD("2014-04-09".to_string()), dec!(3.0221));
+ exchange_rates.insert(Exchange::USD("2022-01-19".to_string()), dec!(3.993));
+ exchange_rates.insert(Exchange::USD("2012-04-17".to_string()), dec!(3.1872));
+ exchange_rates.insert(Exchange::USD("2023-11-02".to_string()), dec!(4.1963));
+ exchange_rates.insert(Exchange::USD("2023-11-22".to_string()), dec!(4.018));
+ exchange_rates.insert(Exchange::USD("2015-06-05".to_string()), dec!(3.6949));
+ exchange_rates.insert(Exchange::USD("2024-10-04".to_string()), dec!(3.9118));
+ exchange_rates.insert(Exchange::USD("2012-09-03".to_string()), dec!(3.3398));
+ exchange_rates.insert(Exchange::USD("2012-10-10".to_string()), dec!(3.1695));
+ exchange_rates.insert(Exchange::EUR("2025-03-18".to_string()), dec!(4.1776));
+ exchange_rates.insert(Exchange::USD("2024-10-28".to_string()), dec!(4.0207));
+ exchange_rates.insert(Exchange::USD("2022-04-27".to_string()), dec!(4.4453));
+ exchange_rates.insert(Exchange::USD("2022-08-17".to_string()), dec!(4.6119));
+ exchange_rates.insert(Exchange::USD("2021-01-26".to_string()), dec!(3.7512));
+ exchange_rates.insert(Exchange::USD("2017-03-23".to_string()), dec!(3.9687));
+ exchange_rates.insert(Exchange::USD("2021-12-14".to_string()), dec!(4.1088));
+ exchange_rates.insert(Exchange::USD("2022-09-13".to_string()), dec!(4.6363));
+ exchange_rates.insert(Exchange::USD("2018-10-25".to_string()), dec!(3.7796));
+ exchange_rates.insert(Exchange::EUR("2024-01-12".to_string()), dec!(4.3574));
+ exchange_rates.insert(Exchange::EUR("2024-09-11".to_string()), dec!(4.2864));
+ exchange_rates.insert(Exchange::USD("2022-05-11".to_string()), dec!(4.419));
+ exchange_rates.insert(Exchange::USD("2017-12-19".to_string()), dec!(3.5583));
+ exchange_rates.insert(Exchange::USD("2020-09-07".to_string()), dec!(3.7666));
+ exchange_rates.insert(Exchange::EUR("2023-02-23".to_string()), dec!(4.7525));
+ exchange_rates.insert(Exchange::USD("2015-10-08".to_string()), dec!(3.7543));
+ exchange_rates.insert(Exchange::USD("2012-04-13".to_string()), dec!(3.1765));
+ exchange_rates.insert(Exchange::USD("2013-03-05".to_string()), dec!(3.1665));
+ exchange_rates.insert(Exchange::USD("2018-03-20".to_string()), dec!(3.4296));
+ exchange_rates.insert(Exchange::USD("2018-06-29".to_string()), dec!(3.744));
+ exchange_rates.insert(Exchange::USD("2015-04-28".to_string()), dec!(3.6751));
+ exchange_rates.insert(Exchange::EUR("2024-05-13".to_string()), dec!(4.2977));
+ exchange_rates.insert(Exchange::USD("2020-05-25".to_string()), dec!(4.1428));
+ exchange_rates.insert(Exchange::USD("2019-10-03".to_string()), dec!(3.9652));
+ exchange_rates.insert(Exchange::USD("2024-04-25".to_string()), dec!(4.0276));
+ exchange_rates.insert(Exchange::USD("2013-04-15".to_string()), dec!(3.1502));
+ exchange_rates.insert(Exchange::USD("2016-11-09".to_string()), dec!(3.9305));
+ exchange_rates.insert(Exchange::USD("2024-01-04".to_string()), dec!(3.9684));
+ exchange_rates.insert(Exchange::EUR("2024-10-30".to_string()), dec!(4.335));
+ exchange_rates.insert(Exchange::USD("2016-01-28".to_string()), dec!(4.0872));
+ exchange_rates.insert(Exchange::USD("2014-01-16".to_string()), dec!(3.0566));
+ exchange_rates.insert(Exchange::USD("2015-08-04".to_string()), dec!(3.7792));
+ exchange_rates.insert(Exchange::EUR("2025-11-25".to_string()), dec!(4.2301));
+ exchange_rates.insert(Exchange::USD("2025-07-04".to_string()), dec!(3.6108));
+ exchange_rates.insert(Exchange::USD("2022-03-31".to_string()), dec!(4.1801));
+ exchange_rates.insert(Exchange::USD("2012-09-05".to_string()), dec!(3.3693));
+ exchange_rates.insert(Exchange::USD("2024-08-14".to_string()), dec!(3.8963));
+ exchange_rates.insert(Exchange::USD("2021-01-04".to_string()), dec!(3.6998));
+ exchange_rates.insert(Exchange::USD("2013-02-01".to_string()), dec!(3.0744));
+ exchange_rates.insert(Exchange::USD("2015-07-14".to_string()), dec!(3.7645));
+ exchange_rates.insert(Exchange::EUR("2025-04-08".to_string()), dec!(4.2946));
+ exchange_rates.insert(Exchange::EUR("2023-01-31".to_string()), dec!(4.7089));
+ exchange_rates.insert(Exchange::USD("2019-06-17".to_string()), dec!(3.7989));
+ exchange_rates.insert(Exchange::USD("2024-03-27".to_string()), dec!(3.9857));
+ exchange_rates.insert(Exchange::USD("2018-08-20".to_string()), dec!(3.7695));
+ exchange_rates.insert(Exchange::USD("2014-11-21".to_string()), dec!(3.3827));
+ exchange_rates.insert(Exchange::USD("2022-09-05".to_string()), dec!(4.769));
+ exchange_rates.insert(Exchange::USD("2018-12-12".to_string()), dec!(3.7934));
+ exchange_rates.insert(Exchange::USD("2013-01-11".to_string()), dec!(3.089));
+ exchange_rates.insert(Exchange::EUR("2025-08-26".to_string()), dec!(4.2657));
+ exchange_rates.insert(Exchange::USD("2024-05-02".to_string()), dec!(4.0474));
+ exchange_rates.insert(Exchange::USD("2016-10-31".to_string()), dec!(3.9488));
+ exchange_rates.insert(Exchange::USD("2016-12-01".to_string()), dec!(4.1987));
+ exchange_rates.insert(Exchange::USD("2023-09-01".to_string()), dec!(4.1263));
+ exchange_rates.insert(Exchange::USD("2024-05-09".to_string()), dec!(4.0076));
+ exchange_rates.insert(Exchange::USD("2019-06-18".to_string()), dec!(3.8097));
+ exchange_rates.insert(Exchange::USD("2025-03-06".to_string()), dec!(3.8674));
+ exchange_rates.insert(Exchange::USD("2017-07-31".to_string()), dec!(3.6264));
+ exchange_rates.insert(Exchange::USD("2014-01-28".to_string()), dec!(3.0635));
+ exchange_rates.insert(Exchange::USD("2013-01-04".to_string()), dec!(3.17));
+ exchange_rates.insert(Exchange::EUR("2023-05-08".to_string()), dec!(4.5671));
+ exchange_rates.insert(Exchange::EUR("2024-03-25".to_string()), dec!(4.3091));
+ exchange_rates.insert(Exchange::USD("2019-01-10".to_string()), dec!(3.736));
+ exchange_rates.insert(Exchange::USD("2024-04-10".to_string()), dec!(3.9264));
+ exchange_rates.insert(Exchange::USD("2024-01-12".to_string()), dec!(3.9746));
+ exchange_rates.insert(Exchange::USD("2013-02-26".to_string()), dec!(3.1733));
+ exchange_rates.insert(Exchange::USD("2023-02-15".to_string()), dec!(4.4372));
+ exchange_rates.insert(Exchange::USD("2024-03-14".to_string()), dec!(3.9183));
+ exchange_rates.insert(Exchange::USD("2022-10-14".to_string()), dec!(4.9569));
+ exchange_rates.insert(Exchange::USD("2014-05-06".to_string()), dec!(3.0196));
+ exchange_rates.insert(Exchange::USD("2021-03-15".to_string()), dec!(3.8429));
+ exchange_rates.insert(Exchange::USD("2023-03-30".to_string()), dec!(4.3043));
+ exchange_rates.insert(Exchange::USD("2021-06-22".to_string()), dec!(3.8132));
+ exchange_rates.insert(Exchange::USD("2021-01-25".to_string()), dec!(3.7402));
+ exchange_rates.insert(Exchange::USD("2018-02-28".to_string()), dec!(3.4188));
+ exchange_rates.insert(Exchange::EUR("2024-01-24".to_string()), dec!(4.3755));
+ exchange_rates.insert(Exchange::USD("2024-01-25".to_string()), dec!(4.0189));
+ exchange_rates.insert(Exchange::USD("2014-10-09".to_string()), dec!(3.2776));
+ exchange_rates.insert(Exchange::EUR("2025-02-19".to_string()), dec!(4.1582));
+ exchange_rates.insert(Exchange::USD("2025-03-05".to_string()), dec!(3.8785));
+ exchange_rates.insert(Exchange::USD("2024-04-11".to_string()), dec!(3.9707));
+ exchange_rates.insert(Exchange::USD("2024-07-15".to_string()), dec!(3.896));
+ exchange_rates.insert(Exchange::EUR("2025-12-08".to_string()), dec!(4.2289));
+ exchange_rates.insert(Exchange::USD("2013-08-22".to_string()), dec!(3.1811));
+ exchange_rates.insert(Exchange::EUR("2024-05-02".to_string()), dec!(4.3323));
+ exchange_rates.insert(Exchange::USD("2013-02-11".to_string()), dec!(3.0991));
+ exchange_rates.insert(Exchange::EUR("2025-06-16".to_string()), dec!(4.2612));
+ exchange_rates.insert(Exchange::USD("2017-08-14".to_string()), dec!(3.6278));
+ exchange_rates.insert(Exchange::USD("2025-01-14".to_string()), dec!(4.1658));
+ exchange_rates.insert(Exchange::USD("2012-01-03".to_string()), dec!(3.4277));
+ exchange_rates.insert(Exchange::USD("2016-12-02".to_string()), dec!(4.215));
+ exchange_rates.insert(Exchange::USD("2018-08-31".to_string()), dec!(3.6808));
+ exchange_rates.insert(Exchange::USD("2025-12-03".to_string()), dec!(3.6333));
+ exchange_rates.insert(Exchange::USD("2020-02-12".to_string()), dec!(3.901));
+ exchange_rates.insert(Exchange::USD("2013-02-05".to_string()), dec!(3.0831));
+ exchange_rates.insert(Exchange::USD("2016-03-15".to_string()), dec!(3.8649));
+ exchange_rates.insert(Exchange::USD("2015-09-15".to_string()), dec!(3.7238));
+ exchange_rates.insert(Exchange::USD("2013-06-28".to_string()), dec!(3.3175));
+ exchange_rates.insert(Exchange::USD("2012-08-17".to_string()), dec!(3.2886));
+ exchange_rates.insert(Exchange::USD("2015-07-16".to_string()), dec!(3.7694));
+ exchange_rates.insert(Exchange::USD("2025-10-02".to_string()), dec!(3.621));
+ exchange_rates.insert(Exchange::USD("2014-08-12".to_string()), dec!(3.1465));
+ exchange_rates.insert(Exchange::USD("2012-10-04".to_string()), dec!(3.1646));
+ exchange_rates.insert(Exchange::USD("2016-05-17".to_string()), dec!(3.8508));
+ exchange_rates.insert(Exchange::USD("2018-06-22".to_string()), dec!(3.6977));
+ exchange_rates.insert(Exchange::USD("2022-01-21".to_string()), dec!(3.9953));
+ exchange_rates.insert(Exchange::USD("2019-08-29".to_string()), dec!(3.9586));
+ exchange_rates.insert(Exchange::USD("2021-03-10".to_string()), dec!(3.842));
+ exchange_rates.insert(Exchange::USD("2018-06-07".to_string()), dec!(3.6062));
+ exchange_rates.insert(Exchange::USD("2016-07-25".to_string()), dec!(3.9697));
+ exchange_rates.insert(Exchange::USD("2024-02-02".to_string()), dec!(3.9641));
+ exchange_rates.insert(Exchange::USD("2020-11-04".to_string()), dec!(3.8996));
+ exchange_rates.insert(Exchange::USD("2014-01-09".to_string()), dec!(3.0695));
+ exchange_rates.insert(Exchange::USD("2014-01-17".to_string()), dec!(3.0596));
+ exchange_rates.insert(Exchange::USD("2013-07-15".to_string()), dec!(3.2955));
+ exchange_rates.insert(Exchange::USD("2025-07-15".to_string()), dec!(3.6396));
+ exchange_rates.insert(Exchange::USD("2017-07-04".to_string()), dec!(3.7372));
+ exchange_rates.insert(Exchange::USD("2013-06-27".to_string()), dec!(3.3241));
+ exchange_rates.insert(Exchange::USD("2014-09-12".to_string()), dec!(3.2468));
+ exchange_rates.insert(Exchange::USD("2016-06-01".to_string()), dec!(3.935));
+ exchange_rates.insert(Exchange::USD("2019-06-19".to_string()), dec!(3.8104));
+ exchange_rates.insert(Exchange::EUR("2023-02-08".to_string()), dec!(4.7402));
+ exchange_rates.insert(Exchange::USD("2018-02-20".to_string()), dec!(3.3597));
+ exchange_rates.insert(Exchange::USD("2024-06-17".to_string()), dec!(4.0728));
+ exchange_rates.insert(Exchange::USD("2016-08-09".to_string()), dec!(3.8482));
+ exchange_rates.insert(Exchange::EUR("2025-02-27".to_string()), dec!(4.1371));
+ exchange_rates.insert(Exchange::EUR("2025-07-08".to_string()), dec!(4.2455));
+ exchange_rates.insert(Exchange::EUR("2025-09-02".to_string()), dec!(4.2651));
+ exchange_rates.insert(Exchange::USD("2017-03-20".to_string()), dec!(3.9821));
+ exchange_rates.insert(Exchange::USD("2018-02-15".to_string()), dec!(3.3259));
+ exchange_rates.insert(Exchange::EUR("2023-02-07".to_string()), dec!(4.7476));
+ exchange_rates.insert(Exchange::USD("2021-06-08".to_string()), dec!(3.669));
+ exchange_rates.insert(Exchange::USD("2014-05-02".to_string()), dec!(3.0289));
+ exchange_rates.insert(Exchange::USD("2012-01-23".to_string()), dec!(3.3353));
+ exchange_rates.insert(Exchange::USD("2016-03-29".to_string()), dec!(3.8037));
+ exchange_rates.insert(Exchange::USD("2025-02-27".to_string()), dec!(3.9459));
+ exchange_rates.insert(Exchange::USD("2019-03-11".to_string()), dec!(3.8199));
+ exchange_rates.insert(Exchange::EUR("2023-11-09".to_string()), dec!(4.4413));
+ exchange_rates.insert(Exchange::USD("2025-08-11".to_string()), dec!(3.6495));
+ exchange_rates.insert(Exchange::USD("2023-01-05".to_string()), dec!(4.397));
+ exchange_rates.insert(Exchange::USD("2024-02-05".to_string()), dec!(4.0244));
+ exchange_rates.insert(Exchange::USD("2013-12-06".to_string()), dec!(3.0673));
+ exchange_rates.insert(Exchange::EUR("2023-10-25".to_string()), dec!(4.4758));
+ exchange_rates.insert(Exchange::EUR("2024-02-26".to_string()), dec!(4.3117));
+ exchange_rates.insert(Exchange::USD("2024-11-21".to_string()), dec!(4.1332));
+ exchange_rates.insert(Exchange::USD("2014-12-05".to_string()), dec!(3.3619));
+ exchange_rates.insert(Exchange::USD("2020-02-13".to_string()), dec!(3.9104));
+ exchange_rates.insert(Exchange::USD("2020-10-08".to_string()), dec!(3.8175));
+ exchange_rates.insert(Exchange::USD("2013-01-14".to_string()), dec!(3.0828));
+ exchange_rates.insert(Exchange::USD("2013-12-10".to_string()), dec!(3.0425));
+ exchange_rates.insert(Exchange::USD("2024-12-06".to_string()), dec!(4.0341));
+ exchange_rates.insert(Exchange::USD("2018-04-05".to_string()), dec!(3.4301));
+ exchange_rates.insert(Exchange::USD("2020-06-02".to_string()), dec!(3.9303));
+ exchange_rates.insert(Exchange::EUR("2025-09-23".to_string()), dec!(4.2552));
+ exchange_rates.insert(Exchange::USD("2017-01-11".to_string()), dec!(4.1465));
+ exchange_rates.insert(Exchange::EUR("2025-05-19".to_string()), dec!(4.2785));
+ exchange_rates.insert(Exchange::USD("2022-03-07".to_string()), dec!(4.5722));
+ exchange_rates.insert(Exchange::EUR("2024-07-30".to_string()), dec!(4.2845));
+ exchange_rates.insert(Exchange::EUR("2023-01-02".to_string()), dec!(4.6784));
+ exchange_rates.insert(Exchange::USD("2022-04-29".to_string()), dec!(4.4072));
+ exchange_rates.insert(Exchange::USD("2018-02-22".to_string()), dec!(3.4009));
+ exchange_rates.insert(Exchange::USD("2024-03-19".to_string()), dec!(3.9866));
+ exchange_rates.insert(Exchange::USD("2016-07-18".to_string()), dec!(3.9853));
+ exchange_rates.insert(Exchange::USD("2021-02-05".to_string()), dec!(3.7554));
+ exchange_rates.insert(Exchange::EUR("2023-12-20".to_string()), dec!(4.3341));
+ exchange_rates.insert(Exchange::EUR("2023-08-29".to_string()), dec!(4.469));
+ exchange_rates.insert(Exchange::USD("2023-01-10".to_string()), dec!(4.372));
+ exchange_rates.insert(Exchange::USD("2022-02-10".to_string()), dec!(3.9218));
+ exchange_rates.insert(Exchange::USD("2018-04-06".to_string()), dec!(3.4315));
+ exchange_rates.insert(Exchange::USD("2025-12-08".to_string()), dec!(3.63));
+ exchange_rates.insert(Exchange::USD("2024-11-19".to_string()), dec!(4.1052));
+ exchange_rates.insert(Exchange::USD("2019-08-01".to_string()), dec!(3.886));
+ exchange_rates.insert(Exchange::USD("2024-09-02".to_string()), dec!(3.8684));
+ exchange_rates.insert(Exchange::USD("2016-03-09".to_string()), dec!(3.9395));
+ exchange_rates.insert(Exchange::USD("2023-08-14".to_string()), dec!(4.0525));
+ exchange_rates.insert(Exchange::USD("2020-03-23".to_string()), dec!(4.2654));
+ exchange_rates.insert(Exchange::USD("2018-07-27".to_string()), dec!(3.6937));
+ exchange_rates.insert(Exchange::USD("2012-07-10".to_string()), dec!(3.4145));
+ exchange_rates.insert(Exchange::EUR("2023-05-17".to_string()), dec!(4.4945));
+ exchange_rates.insert(Exchange::USD("2018-12-10".to_string()), dec!(3.76));
+ exchange_rates.insert(Exchange::USD("2017-01-31".to_string()), dec!(4.0446));
+ exchange_rates.insert(Exchange::USD("2012-03-20".to_string()), dec!(3.1288));
+ exchange_rates.insert(Exchange::EUR("2023-07-10".to_string()), dec!(4.4553));
+ exchange_rates.insert(Exchange::USD("2022-06-30".to_string()), dec!(4.4825));
+ exchange_rates.insert(Exchange::USD("2012-11-09".to_string()), dec!(3.2588));
+ exchange_rates.insert(Exchange::USD("2018-02-19".to_string()), dec!(3.3411));
+ exchange_rates.insert(Exchange::USD("2024-10-30".to_string()), dec!(3.9989));
+ exchange_rates.insert(Exchange::USD("2019-02-14".to_string()), dec!(3.8516));
+ exchange_rates.insert(Exchange::USD("2022-01-31".to_string()), dec!(4.1147));
+ exchange_rates.insert(Exchange::USD("2018-07-12".to_string()), dec!(3.7055));
+ exchange_rates.insert(Exchange::USD("2019-08-19".to_string()), dec!(3.9199));
+ exchange_rates.insert(Exchange::USD("2025-09-17".to_string()), dec!(3.5919));
+ exchange_rates.insert(Exchange::USD("2015-06-17".to_string()), dec!(3.6873));
+ exchange_rates.insert(Exchange::USD("2012-06-14".to_string()), dec!(3.442));
+ exchange_rates.insert(Exchange::EUR("2023-08-04".to_string()), dec!(4.4438));
+ exchange_rates.insert(Exchange::USD("2017-04-24".to_string()), dec!(3.906));
+ exchange_rates.insert(Exchange::USD("2020-05-11".to_string()), dec!(4.2126));
+ exchange_rates.insert(Exchange::USD("2022-12-12".to_string()), dec!(4.4424));
+ exchange_rates.insert(Exchange::EUR("2023-10-16".to_string()), dec!(4.4804));
+ exchange_rates.insert(Exchange::USD("2012-01-09".to_string()), dec!(3.515));
+ exchange_rates.insert(Exchange::USD("2025-04-24".to_string()), dec!(3.7599));
+ exchange_rates.insert(Exchange::USD("2023-08-22".to_string()), dec!(4.0924));
+ exchange_rates.insert(Exchange::USD("2017-11-15".to_string()), dec!(3.5886));
+ exchange_rates.insert(Exchange::USD("2018-06-27".to_string()), dec!(3.7351));
+ exchange_rates.insert(Exchange::USD("2015-12-11".to_string()), dec!(3.9718));
+ exchange_rates.insert(Exchange::USD("2013-09-03".to_string()), dec!(3.2433));
+ exchange_rates.insert(Exchange::USD("2017-11-20".to_string()), dec!(3.5909));
+ exchange_rates.insert(Exchange::EUR("2023-11-03".to_string()), dec!(4.4569));
+ exchange_rates.insert(Exchange::EUR("2025-11-20".to_string()), dec!(4.2289));
+ exchange_rates.insert(Exchange::USD("2019-06-28".to_string()), dec!(3.7336));
+ exchange_rates.insert(Exchange::USD("2022-06-22".to_string()), dec!(4.4338));
+ exchange_rates.insert(Exchange::USD("2016-09-29".to_string()), dec!(3.8354));
+ exchange_rates.insert(Exchange::EUR("2025-08-29".to_string()), dec!(4.2684));
+ exchange_rates.insert(Exchange::USD("2025-04-10".to_string()), dec!(3.8637));
+ exchange_rates.insert(Exchange::USD("2018-05-15".to_string()), dec!(3.5931));
+ exchange_rates.insert(Exchange::USD("2018-12-06".to_string()), dec!(3.7844));
+ exchange_rates.insert(Exchange::USD("2017-10-12".to_string()), dec!(3.6));
+ exchange_rates.insert(Exchange::USD("2019-03-18".to_string()), dec!(3.7876));
+ exchange_rates.insert(Exchange::USD("2016-03-11".to_string()), dec!(3.8903));
+ exchange_rates.insert(Exchange::USD("2023-01-18".to_string()), dec!(4.3322));
+ exchange_rates.insert(Exchange::USD("2018-11-27".to_string()), dec!(3.7948));
+ exchange_rates.insert(Exchange::USD("2016-10-10".to_string()), dec!(3.8307));
+ exchange_rates.insert(Exchange::USD("2020-05-22".to_string()), dec!(4.1503));
+ exchange_rates.insert(Exchange::EUR("2024-12-18".to_string()), dec!(4.2628));
+ exchange_rates.insert(Exchange::EUR("2025-02-14".to_string()), dec!(4.1632));
+ exchange_rates.insert(Exchange::USD("2021-10-20".to_string()), dec!(3.9428));
+ exchange_rates.insert(Exchange::USD("2023-07-17".to_string()), dec!(3.9616));
+ exchange_rates.insert(Exchange::USD("2021-05-10".to_string()), dec!(3.7493));
+ exchange_rates.insert(Exchange::EUR("2024-11-15".to_string()), dec!(4.3198));
+ exchange_rates.insert(Exchange::USD("2025-06-02".to_string()), dec!(3.7282));
+ exchange_rates.insert(Exchange::EUR("2025-01-02".to_string()), dec!(4.2668));
+ exchange_rates.insert(Exchange::USD("2013-06-12".to_string()), dec!(3.2002));
+ exchange_rates.insert(Exchange::USD("2020-06-18".to_string()), dec!(3.9589));
+ exchange_rates.insert(Exchange::USD("2017-11-09".to_string()), dec!(3.6466));
+ exchange_rates.insert(Exchange::USD("2013-09-04".to_string()), dec!(3.2387));
+ exchange_rates.insert(Exchange::USD("2023-10-23".to_string()), dec!(4.2022));
+ exchange_rates.insert(Exchange::USD("2024-02-22".to_string()), dec!(3.9804));
+ exchange_rates.insert(Exchange::USD("2018-08-07".to_string()), dec!(3.6722));
+ exchange_rates.insert(Exchange::USD("2016-09-09".to_string()), dec!(3.8385));
+ exchange_rates.insert(Exchange::USD("2025-12-17".to_string()), dec!(3.5976));
+ exchange_rates.insert(Exchange::USD("2018-12-04".to_string()), dec!(3.7516));
+ exchange_rates.insert(Exchange::USD("2018-12-31".to_string()), dec!(3.7597));
+ exchange_rates.insert(Exchange::USD("2019-07-23".to_string()), dec!(3.7997));
+ exchange_rates.insert(Exchange::USD("2012-03-26".to_string()), dec!(3.1348));
+ exchange_rates.insert(Exchange::EUR("2024-06-19".to_string()), dec!(4.3376));
+ exchange_rates.insert(Exchange::USD("2012-10-05".to_string()), dec!(3.1353));
+ exchange_rates.insert(Exchange::USD("2021-08-19".to_string()), dec!(3.9226));
+ exchange_rates.insert(Exchange::EUR("2023-02-14".to_string()), dec!(4.7847));
+ exchange_rates.insert(Exchange::EUR("2024-05-29".to_string()), dec!(4.2529));
+ exchange_rates.insert(Exchange::USD("2024-11-27".to_string()), dec!(4.0974));
+ exchange_rates.insert(Exchange::USD("2017-05-02".to_string()), dec!(3.8675));
+ exchange_rates.insert(Exchange::USD("2024-10-23".to_string()), dec!(4.0176));
+ exchange_rates.insert(Exchange::EUR("2025-04-04".to_string()), dec!(4.2403));
+ exchange_rates.insert(Exchange::USD("2014-07-10".to_string()), dec!(3.0323));
+ exchange_rates.insert(Exchange::USD("2018-11-28".to_string()), dec!(3.8114));
+ exchange_rates.insert(Exchange::USD("2012-10-02".to_string()), dec!(3.1833));
+ exchange_rates.insert(Exchange::USD("2018-07-23".to_string()), dec!(3.6957));
+ exchange_rates.insert(Exchange::USD("2021-09-20".to_string()), dec!(3.9282));
+ exchange_rates.insert(Exchange::EUR("2024-12-20".to_string()), dec!(4.2572));
+ exchange_rates.insert(Exchange::USD("2016-01-21".to_string()), dec!(4.1303));
+ exchange_rates.insert(Exchange::USD("2022-12-23".to_string()), dec!(4.37));
+ exchange_rates.insert(Exchange::USD("2025-07-29".to_string()), dec!(3.6941));
+ exchange_rates.insert(Exchange::USD("2015-07-17".to_string()), dec!(3.7676));
+ exchange_rates.insert(Exchange::USD("2017-09-25".to_string()), dec!(3.5866));
+ exchange_rates.insert(Exchange::EUR("2024-03-26".to_string()), dec!(4.3093));
+ exchange_rates.insert(Exchange::USD("2022-09-06".to_string()), dec!(4.7367));
+ exchange_rates.insert(Exchange::EUR("2024-08-30".to_string()), dec!(4.2798));
+ exchange_rates.insert(Exchange::EUR("2024-02-12".to_string()), dec!(4.328));
+ exchange_rates.insert(Exchange::USD("2022-04-20".to_string()), dec!(4.2708));
+ exchange_rates.insert(Exchange::USD("2024-01-24".to_string()), dec!(4.0131));
+ exchange_rates.insert(Exchange::EUR("2024-06-06".to_string()), dec!(4.2997));
+ exchange_rates.insert(Exchange::EUR("2023-10-26".to_string()), dec!(4.4708));
+ exchange_rates.insert(Exchange::EUR("2025-08-08".to_string()), dec!(4.2566));
+ exchange_rates.insert(Exchange::USD("2015-06-25".to_string()), dec!(3.7305));
+ exchange_rates.insert(Exchange::USD("2017-06-14".to_string()), dec!(3.7497));
+ exchange_rates.insert(Exchange::USD("2022-10-28".to_string()), dec!(4.7477));
+ exchange_rates.insert(Exchange::USD("2022-02-25".to_string()), dec!(4.1683));
+ exchange_rates.insert(Exchange::USD("2018-10-16".to_string()), dec!(3.7036));
+ exchange_rates.insert(Exchange::USD("2023-02-21".to_string()), dec!(4.4524));
+ exchange_rates.insert(Exchange::USD("2014-04-07".to_string()), dec!(3.0446));
+ exchange_rates.insert(Exchange::USD("2014-05-28".to_string()), dec!(3.0598));
+ exchange_rates.insert(Exchange::USD("2013-10-02".to_string()), dec!(3.1212));
+ exchange_rates.insert(Exchange::USD("2023-03-06".to_string()), dec!(4.4289));
+ exchange_rates.insert(Exchange::EUR("2023-04-06".to_string()), dec!(4.6902));
+ exchange_rates.insert(Exchange::USD("2021-10-04".to_string()), dec!(3.9368));
+ exchange_rates.insert(Exchange::USD("2021-09-08".to_string()), dec!(3.8213));
+ exchange_rates.insert(Exchange::USD("2025-08-29".to_string()), dec!(3.6559));
+ exchange_rates.insert(Exchange::USD("2024-04-17".to_string()), dec!(4.0741));
+ exchange_rates.insert(Exchange::USD("2017-07-27".to_string()), dec!(3.6366));
+ exchange_rates.insert(Exchange::USD("2012-03-22".to_string()), dec!(3.168));
+ exchange_rates.insert(Exchange::USD("2020-08-28".to_string()), dec!(3.6983));
+ exchange_rates.insert(Exchange::USD("2018-03-21".to_string()), dec!(3.4544));
+ exchange_rates.insert(Exchange::USD("2013-03-15".to_string()), dec!(3.1868));
+ exchange_rates.insert(Exchange::USD("2019-02-06".to_string()), dec!(3.7706));
+ exchange_rates.insert(Exchange::USD("2022-10-24".to_string()), dec!(4.8669));
+ exchange_rates.insert(Exchange::USD("2023-10-18".to_string()), dec!(4.2035));
+ exchange_rates.insert(Exchange::USD("2023-04-11".to_string()), dec!(4.2917));
+ exchange_rates.insert(Exchange::USD("2023-12-22".to_string()), dec!(3.9338));
+ exchange_rates.insert(Exchange::USD("2014-04-17".to_string()), dec!(3.0317));
+ exchange_rates.insert(Exchange::USD("2025-01-28".to_string()), dec!(4.0337));
+ exchange_rates.insert(Exchange::USD("2025-11-26".to_string()), dec!(3.6578));
+ exchange_rates.insert(Exchange::USD("2012-05-24".to_string()), dec!(3.4779));
+ exchange_rates.insert(Exchange::USD("2022-09-21".to_string()), dec!(4.7919));
+ exchange_rates.insert(Exchange::USD("2013-12-20".to_string()), dec!(3.0525));
+ exchange_rates.insert(Exchange::USD("2017-04-14".to_string()), dec!(3.9911));
+ exchange_rates.insert(Exchange::EUR("2025-11-24".to_string()), dec!(4.2345));
+ exchange_rates.insert(Exchange::EUR("2025-03-04".to_string()), dec!(4.1568));
+ exchange_rates.insert(Exchange::EUR("2023-09-15".to_string()), dec!(4.6307));
+ exchange_rates.insert(Exchange::EUR("2023-11-13".to_string()), dec!(4.4336));
+ exchange_rates.insert(Exchange::USD("2012-12-10".to_string()), dec!(3.1978));
+ exchange_rates.insert(Exchange::USD("2012-12-17".to_string()), dec!(3.1035));
+ exchange_rates.insert(Exchange::EUR("2024-09-19".to_string()), dec!(4.2693));
+ exchange_rates.insert(Exchange::USD("2022-01-10".to_string()), dec!(4.0064));
+ exchange_rates.insert(Exchange::USD("2016-04-14".to_string()), dec!(3.8174));
+ exchange_rates.insert(Exchange::EUR("2024-05-06".to_string()), dec!(4.3294));
+ exchange_rates.insert(Exchange::USD("2012-07-11".to_string()), dec!(3.4007));
+ exchange_rates.insert(Exchange::USD("2019-02-04".to_string()), dec!(3.7408));
+ exchange_rates.insert(Exchange::USD("2015-05-18".to_string()), dec!(3.555));
+ exchange_rates.insert(Exchange::EUR("2023-08-30".to_string()), dec!(4.474));
+ exchange_rates.insert(Exchange::USD("2025-04-29".to_string()), dec!(3.7458));
+ exchange_rates.insert(Exchange::USD("2018-07-26".to_string()), dec!(3.6649));
+ exchange_rates.insert(Exchange::USD("2023-05-31".to_string()), dec!(4.2559));
+ exchange_rates.insert(Exchange::USD("2013-07-03".to_string()), dec!(3.3516));
+ exchange_rates.insert(Exchange::USD("2021-02-24".to_string()), dec!(3.7145));
+ exchange_rates.insert(Exchange::USD("2015-05-28".to_string()), dec!(3.7858));
+ exchange_rates.insert(Exchange::EUR("2024-07-25".to_string()), dec!(4.2971));
+ exchange_rates.insert(Exchange::USD("2024-03-05".to_string()), dec!(3.9838));
+ exchange_rates.insert(Exchange::USD("2018-12-07".to_string()), dec!(3.7694));
+ exchange_rates.insert(Exchange::USD("2024-03-07".to_string()), dec!(3.9485));
+ exchange_rates.insert(Exchange::USD("2019-08-27".to_string()), dec!(3.9309));
+ exchange_rates.insert(Exchange::USD("2018-05-22".to_string()), dec!(3.6252));
+ exchange_rates.insert(Exchange::USD("2015-12-10".to_string()), dec!(3.9601));
+ exchange_rates.insert(Exchange::USD("2014-12-10".to_string()), dec!(3.3572));
+ exchange_rates.insert(Exchange::USD("2013-09-30".to_string()), dec!(3.1227));
+ exchange_rates.insert(Exchange::USD("2021-01-11".to_string()), dec!(3.7271));
+ exchange_rates.insert(Exchange::EUR("2024-06-20".to_string()), dec!(4.3238));
+ exchange_rates.insert(Exchange::USD("2022-11-29".to_string()), dec!(4.5164));
+ exchange_rates.insert(Exchange::USD("2018-12-13".to_string()), dec!(3.7739));
+ exchange_rates.insert(Exchange::USD("2021-08-06".to_string()), dec!(3.8519));
+ exchange_rates.insert(Exchange::USD("2023-12-20".to_string()), dec!(3.9527));
+ exchange_rates.insert(Exchange::USD("2018-05-02".to_string()), dec!(3.5563));
+ exchange_rates.insert(Exchange::USD("2016-07-14".to_string()), dec!(3.9681));
+ exchange_rates.insert(Exchange::USD("2020-09-21".to_string()), dec!(3.7963));
+ exchange_rates.insert(Exchange::USD("2016-01-22".to_string()), dec!(4.1031));
+ exchange_rates.insert(Exchange::USD("2024-08-01".to_string()), dec!(3.9802));
+ exchange_rates.insert(Exchange::USD("2015-12-15".to_string()), dec!(3.9523));
+ exchange_rates.insert(Exchange::EUR("2025-09-03".to_string()), dec!(4.2589));
+ exchange_rates.insert(Exchange::USD("2012-12-03".to_string()), dec!(3.1498));
+ exchange_rates.insert(Exchange::EUR("2025-10-02".to_string()), dec!(4.256));
+ exchange_rates.insert(Exchange::USD("2023-07-28".to_string()), dec!(4.0377));
+ exchange_rates.insert(Exchange::USD("2019-06-05".to_string()), dec!(3.7929));
+ exchange_rates.insert(Exchange::EUR("2024-05-23".to_string()), dec!(4.2699));
+ exchange_rates.insert(Exchange::USD("2025-09-23".to_string()), dec!(3.605));
+ exchange_rates.insert(Exchange::USD("2022-10-21".to_string()), dec!(4.9));
+ exchange_rates.insert(Exchange::USD("2016-10-28".to_string()), dec!(3.9696));
+ exchange_rates.insert(Exchange::USD("2025-10-10".to_string()), dec!(3.6778));
+ exchange_rates.insert(Exchange::USD("2015-02-03".to_string()), dec!(3.6886));
+ exchange_rates.insert(Exchange::EUR("2023-06-27".to_string()), dec!(4.4286));
+ exchange_rates.insert(Exchange::USD("2025-01-30".to_string()), dec!(4.0393));
+ exchange_rates.insert(Exchange::EUR("2025-10-28".to_string()), dec!(4.2345));
+ exchange_rates.insert(Exchange::USD("2019-03-26".to_string()), dec!(3.7969));
+ exchange_rates.insert(Exchange::EUR("2023-04-24".to_string()), dec!(4.6129));
+ exchange_rates.insert(Exchange::USD("2025-02-21".to_string()), dec!(3.9835));
+ exchange_rates.insert(Exchange::EUR("2025-12-16".to_string()), dec!(4.2239));
+ exchange_rates.insert(Exchange::USD("2014-08-25".to_string()), dec!(3.168));
+ exchange_rates.insert(Exchange::USD("2012-08-02".to_string()), dec!(3.3462));
+ exchange_rates.insert(Exchange::USD("2021-06-11".to_string()), dec!(3.6759));
+ exchange_rates.insert(Exchange::EUR("2025-12-22".to_string()), dec!(4.2115));
+ exchange_rates.insert(Exchange::USD("2015-08-31".to_string()), dec!(3.778));
+ exchange_rates.insert(Exchange::USD("2020-07-07".to_string()), dec!(3.9689));
+ exchange_rates.insert(Exchange::USD("2022-12-13".to_string()), dec!(4.4527));
+ exchange_rates.insert(Exchange::USD("2019-03-07".to_string()), dec!(3.8038));
+ exchange_rates.insert(Exchange::EUR("2025-03-20".to_string()), dec!(4.1972));
+ exchange_rates.insert(Exchange::USD("2015-08-20".to_string()), dec!(3.7659));
+ exchange_rates.insert(Exchange::USD("2013-11-21".to_string()), dec!(3.1227));
+ exchange_rates.insert(Exchange::USD("2022-10-11".to_string()), dec!(5.0171));
+ exchange_rates.insert(Exchange::USD("2023-03-09".to_string()), dec!(4.4356));
+ exchange_rates.insert(Exchange::USD("2018-12-11".to_string()), dec!(3.7763));
+ exchange_rates.insert(Exchange::USD("2014-10-31".to_string()), dec!(3.3459));
+ exchange_rates.insert(Exchange::USD("2023-01-09".to_string()), dec!(4.401));
+ exchange_rates.insert(Exchange::USD("2021-07-12".to_string()), dec!(3.8378));
+ exchange_rates.insert(Exchange::USD("2021-01-18".to_string()), dec!(3.7699));
+ exchange_rates.insert(Exchange::EUR("2025-05-26".to_string()), dec!(4.2514));
+ exchange_rates.insert(Exchange::USD("2022-09-02".to_string()), dec!(4.7276));
+ exchange_rates.insert(Exchange::EUR("2023-12-13".to_string()), dec!(4.3309));
+ exchange_rates.insert(Exchange::USD("2025-02-04".to_string()), dec!(4.0864));
+ exchange_rates.insert(Exchange::USD("2019-02-20".to_string()), dec!(3.8221));
+ exchange_rates.insert(Exchange::USD("2016-08-11".to_string()), dec!(3.8297));
+ exchange_rates.insert(Exchange::USD("2020-06-09".to_string()), dec!(3.9453));
+ exchange_rates.insert(Exchange::USD("2012-02-15".to_string()), dec!(3.166));
+ exchange_rates.insert(Exchange::USD("2021-10-08".to_string()), dec!(3.9775));
+ exchange_rates.insert(Exchange::USD("2016-10-26".to_string()), dec!(3.9517));
+ exchange_rates.insert(Exchange::USD("2017-08-17".to_string()), dec!(3.6258));
+ exchange_rates.insert(Exchange::USD("2012-08-14".to_string()), dec!(3.3059));
+ exchange_rates.insert(Exchange::USD("2012-08-08".to_string()), dec!(3.304));
+ exchange_rates.insert(Exchange::USD("2023-09-18".to_string()), dec!(4.3489));
+ exchange_rates.insert(Exchange::USD("2014-09-24".to_string()), dec!(3.2525));
+ exchange_rates.insert(Exchange::USD("2014-07-24".to_string()), dec!(3.0702));
+ exchange_rates.insert(Exchange::USD("2020-10-06".to_string()), dec!(3.818));
+ exchange_rates.insert(Exchange::EUR("2025-03-07".to_string()), dec!(4.176));
+ exchange_rates.insert(Exchange::EUR("2023-09-14".to_string()), dec!(4.6285));
+ exchange_rates.insert(Exchange::EUR("2024-06-27".to_string()), dec!(4.3085));
+ exchange_rates.insert(Exchange::USD("2024-06-04".to_string()), dec!(3.9448));
+ exchange_rates.insert(Exchange::USD("2024-01-26".to_string()), dec!(4.0393));
+ exchange_rates.insert(Exchange::EUR("2025-02-17".to_string()), dec!(4.1635));
+ exchange_rates.insert(Exchange::USD("2012-03-23".to_string()), dec!(3.1417));
+ exchange_rates.insert(Exchange::USD("2017-10-31".to_string()), dec!(3.6529));
+ exchange_rates.insert(Exchange::EUR("2023-03-16".to_string()), dec!(4.6978));
+ exchange_rates.insert(Exchange::USD("2024-04-26".to_string()), dec!(4.0245));
+ exchange_rates.insert(Exchange::USD("2025-08-22".to_string()), dec!(3.6786));
+ exchange_rates.insert(Exchange::USD("2013-10-01".to_string()), dec!(3.117));
+ exchange_rates.insert(Exchange::USD("2014-09-26".to_string()), dec!(3.2776));
+ exchange_rates.insert(Exchange::USD("2024-07-19".to_string()), dec!(3.9461));
+ exchange_rates.insert(Exchange::USD("2016-07-08".to_string()), dec!(4.0001));
+ exchange_rates.insert(Exchange::USD("2017-01-18".to_string()), dec!(4.087));
+ exchange_rates.insert(Exchange::USD("2016-06-27".to_string()), dec!(4.0263));
+ exchange_rates.insert(Exchange::USD("2017-04-04".to_string()), dec!(3.989));
+ exchange_rates.insert(Exchange::USD("2013-04-16".to_string()), dec!(3.1559));
+ exchange_rates.insert(Exchange::USD("2015-10-22".to_string()), dec!(3.7806));
+ exchange_rates.insert(Exchange::USD("2021-07-13".to_string()), dec!(3.8533));
+ exchange_rates.insert(Exchange::USD("2013-12-13".to_string()), dec!(3.0432));
+ exchange_rates.insert(Exchange::USD("2022-03-28".to_string()), dec!(4.2784));
+ exchange_rates.insert(Exchange::EUR("2024-08-22".to_string()), dec!(4.285));
+ exchange_rates.insert(Exchange::EUR("2025-04-28".to_string()), dec!(4.2766));
+ exchange_rates.insert(Exchange::EUR("2024-02-07".to_string()), dec!(4.3466));
+ exchange_rates.insert(Exchange::EUR("2025-02-13".to_string()), dec!(4.1652));
+ exchange_rates.insert(Exchange::USD("2012-12-31".to_string()), dec!(3.0996));
+ exchange_rates.insert(Exchange::USD("2019-08-12".to_string()), dec!(3.8711));
+ exchange_rates.insert(Exchange::USD("2013-06-14".to_string()), dec!(3.1654));
+ exchange_rates.insert(Exchange::USD("2015-04-14".to_string()), dec!(3.8001));
+ exchange_rates.insert(Exchange::EUR("2023-01-12".to_string()), dec!(4.6888));
+ exchange_rates.insert(Exchange::EUR("2023-11-23".to_string()), dec!(4.3658));
+ exchange_rates.insert(Exchange::USD("2020-08-04".to_string()), dec!(3.7364));
+ exchange_rates.insert(Exchange::USD("2025-05-22".to_string()), dec!(3.7559));
+ exchange_rates.insert(Exchange::EUR("2025-09-09".to_string()), dec!(4.254));
+ exchange_rates.insert(Exchange::USD("2018-09-11".to_string()), dec!(3.7087));
+ exchange_rates.insert(Exchange::USD("2014-05-19".to_string()), dec!(3.0558));
+ exchange_rates.insert(Exchange::USD("2022-11-16".to_string()), dec!(4.505));
+ exchange_rates.insert(Exchange::EUR("2023-03-31".to_string()), dec!(4.6755));
+ exchange_rates.insert(Exchange::USD("2025-06-16".to_string()), dec!(3.6804));
+ exchange_rates.insert(Exchange::USD("2020-08-26".to_string()), dec!(3.7269));
+ exchange_rates.insert(Exchange::USD("2019-04-11".to_string()), dec!(3.7964));
+ exchange_rates.insert(Exchange::USD("2018-04-26".to_string()), dec!(3.4827));
+ exchange_rates.insert(Exchange::USD("2018-11-20".to_string()), dec!(3.79));
+ exchange_rates.insert(Exchange::USD("2018-11-13".to_string()), dec!(3.8268));
+ exchange_rates.insert(Exchange::USD("2019-07-10".to_string()), dec!(3.8066));
+ exchange_rates.insert(Exchange::USD("2017-01-25".to_string()), dec!(4.0585));
+ exchange_rates.insert(Exchange::USD("2016-04-07".to_string()), dec!(3.7414));
+ exchange_rates.insert(Exchange::USD("2025-07-23".to_string()), dec!(3.626));
+ exchange_rates.insert(Exchange::USD("2017-12-22".to_string()), dec!(3.5393));
+ exchange_rates.insert(Exchange::EUR("2025-07-24".to_string()), dec!(4.2514));
+ exchange_rates.insert(Exchange::EUR("2023-08-16".to_string()), dec!(4.4621));
+ exchange_rates.insert(Exchange::EUR("2024-02-23".to_string()), dec!(4.3326));
+ exchange_rates.insert(Exchange::USD("2019-07-22".to_string()), dec!(3.7869));
+ exchange_rates.insert(Exchange::USD("2021-09-07".to_string()), dec!(3.8041));
+ exchange_rates.insert(Exchange::USD("2024-11-13".to_string()), dec!(4.0853));
+ exchange_rates.insert(Exchange::USD("2016-12-14".to_string()), dec!(4.1768));
+ exchange_rates.insert(Exchange::USD("2022-05-02".to_string()), dec!(4.4454));
+ exchange_rates.insert(Exchange::USD("2019-08-08".to_string()), dec!(3.8538));
+ exchange_rates.insert(Exchange::USD("2022-02-21".to_string()), dec!(3.9769));
+ exchange_rates.insert(Exchange::EUR("2024-01-09".to_string()), dec!(4.3351));
+ exchange_rates.insert(Exchange::USD("2020-03-31".to_string()), dec!(4.1466));
+ exchange_rates.insert(Exchange::EUR("2024-09-20".to_string()), dec!(4.2779));
+ exchange_rates.insert(Exchange::USD("2018-01-16".to_string()), dec!(3.419));
+ exchange_rates.insert(Exchange::USD("2015-11-23".to_string()), dec!(3.988));
+ exchange_rates.insert(Exchange::USD("2016-08-26".to_string()), dec!(3.8328));
+ exchange_rates.insert(Exchange::USD("2023-07-13".to_string()), dec!(3.9724));
+ exchange_rates.insert(Exchange::USD("2017-08-08".to_string()), dec!(3.6027));
+ exchange_rates.insert(Exchange::USD("2012-02-14".to_string()), dec!(3.1801));
+ exchange_rates.insert(Exchange::USD("2020-02-06".to_string()), dec!(3.8672));
+ exchange_rates.insert(Exchange::USD("2013-11-15".to_string()), dec!(3.1172));
+ exchange_rates.insert(Exchange::USD("2016-02-19".to_string()), dec!(3.9531));
+ exchange_rates.insert(Exchange::USD("2025-11-05".to_string()), dec!(3.7091));
+ exchange_rates.insert(Exchange::USD("2015-04-07".to_string()), dec!(3.7435));
+ exchange_rates.insert(Exchange::USD("2013-02-28".to_string()), dec!(3.1679));
+ exchange_rates.insert(Exchange::USD("2015-10-02".to_string()), dec!(3.8028));
+ exchange_rates.insert(Exchange::USD("2015-12-17".to_string()), dec!(3.9646));
+ exchange_rates.insert(Exchange::USD("2014-11-05".to_string()), dec!(3.3887));
+ exchange_rates.insert(Exchange::USD("2024-06-10".to_string()), dec!(4.0159));
+ exchange_rates.insert(Exchange::EUR("2024-04-17".to_string()), dec!(4.3353));
+ exchange_rates.insert(Exchange::EUR("2024-10-15".to_string()), dec!(4.2913));
+ exchange_rates.insert(Exchange::USD("2014-02-11".to_string()), dec!(3.0581));
+ exchange_rates.insert(Exchange::EUR("2023-02-13".to_string()), dec!(4.7895));
+ exchange_rates.insert(Exchange::USD("2024-10-15".to_string()), dec!(3.9332));
+ exchange_rates.insert(Exchange::USD("2025-07-22".to_string()), dec!(3.6353));
+ exchange_rates.insert(Exchange::USD("2023-12-13".to_string()), dec!(4.0149));
+ exchange_rates.insert(Exchange::USD("2012-01-24".to_string()), dec!(3.297));
+ exchange_rates.insert(Exchange::EUR("2024-10-22".to_string()), dec!(4.3159));
+ exchange_rates.insert(Exchange::USD("2025-11-06".to_string()), dec!(3.6971));
+ exchange_rates.insert(Exchange::USD("2021-07-23".to_string()), dec!(3.8851));
+ exchange_rates.insert(Exchange::USD("2020-03-11".to_string()), dec!(3.8186));
+ exchange_rates.insert(Exchange::EUR("2024-05-07".to_string()), dec!(4.3116));
+ exchange_rates.insert(Exchange::USD("2017-05-31".to_string()), dec!(3.7354));
+ exchange_rates.insert(Exchange::USD("2021-12-20".to_string()), dec!(4.1182));
+ exchange_rates.insert(Exchange::USD("2025-03-14".to_string()), dec!(3.8509));
+ exchange_rates.insert(Exchange::USD("2023-03-24".to_string()), dec!(4.3742));
+ exchange_rates.insert(Exchange::USD("2020-04-03".to_string()), dec!(4.2396));
+ exchange_rates.insert(Exchange::USD("2016-03-14".to_string()), dec!(3.847));
+ exchange_rates.insert(Exchange::USD("2016-05-25".to_string()), dec!(3.9684));
+ exchange_rates.insert(Exchange::USD("2012-04-16".to_string()), dec!(3.2289));
+ exchange_rates.insert(Exchange::USD("2012-08-21".to_string()), dec!(3.279));
+ exchange_rates.insert(Exchange::EUR("2025-07-10".to_string()), dec!(4.2464));
+ exchange_rates.insert(Exchange::USD("2020-10-30".to_string()), dec!(3.9563));
+ exchange_rates.insert(Exchange::USD("2016-12-16".to_string()), dec!(4.2296));
+ exchange_rates.insert(Exchange::USD("2023-08-10".to_string()), dec!(4.0521));
+ exchange_rates.insert(Exchange::USD("2015-05-26".to_string()), dec!(3.7898));
+ exchange_rates.insert(Exchange::USD("2022-11-07".to_string()), dec!(4.6926));
+ exchange_rates.insert(Exchange::USD("2014-11-24".to_string()), dec!(3.3842));
+ exchange_rates.insert(Exchange::EUR("2024-11-27".to_string()), dec!(4.309));
+ exchange_rates.insert(Exchange::USD("2019-05-21".to_string()), dec!(3.8625));
+ exchange_rates.insert(Exchange::USD("2016-01-19".to_string()), dec!(4.0917));
+ exchange_rates.insert(Exchange::USD("2023-12-05".to_string()), dec!(3.991));
+ exchange_rates.insert(Exchange::EUR("2023-05-05".to_string()), dec!(4.5885));
+ exchange_rates.insert(Exchange::EUR("2024-04-09".to_string()), dec!(4.2588));
+ exchange_rates.insert(Exchange::USD("2018-01-19".to_string()), dec!(3.3994));
+ exchange_rates.insert(Exchange::EUR("2025-03-06".to_string()), dec!(4.1766));
+ exchange_rates.insert(Exchange::EUR("2025-10-17".to_string()), dec!(4.2565));
+ exchange_rates.insert(Exchange::EUR("2025-01-27".to_string()), dec!(4.2176));
+ exchange_rates.insert(Exchange::USD("2017-12-04".to_string()), dec!(3.5499));
+ exchange_rates.insert(Exchange::USD("2024-02-07".to_string()), dec!(4.0362));
+ exchange_rates.insert(Exchange::USD("2017-07-11".to_string()), dec!(3.7235));
+ exchange_rates.insert(Exchange::EUR("2024-05-22".to_string()), dec!(4.2575));
+ exchange_rates.insert(Exchange::USD("2022-10-19".to_string()), dec!(4.8892));
+ exchange_rates.insert(Exchange::USD("2020-03-25".to_string()), dec!(4.222));
+ exchange_rates.insert(Exchange::EUR("2024-06-10".to_string()), dec!(4.3197));
+ exchange_rates.insert(Exchange::USD("2022-02-14".to_string()), dec!(4.0439));
+ exchange_rates.insert(Exchange::USD("2022-07-26".to_string()), dec!(4.6222));
+ exchange_rates.insert(Exchange::USD("2020-01-17".to_string()), dec!(3.8053));
+ exchange_rates.insert(Exchange::USD("2015-02-27".to_string()), dec!(3.698));
+ exchange_rates.insert(Exchange::USD("2014-05-08".to_string()), dec!(3.0042));
+ exchange_rates.insert(Exchange::USD("2019-11-19".to_string()), dec!(3.8786));
+ exchange_rates.insert(Exchange::EUR("2024-03-07".to_string()), dec!(4.3045));
+ exchange_rates.insert(Exchange::EUR("2023-02-03".to_string()), dec!(4.692));
+ exchange_rates.insert(Exchange::USD("2016-09-19".to_string()), dec!(3.8586));
+ exchange_rates.insert(Exchange::USD("2019-12-02".to_string()), dec!(3.9047));
+ exchange_rates.insert(Exchange::EUR("2025-04-23".to_string()), dec!(4.2893));
+ exchange_rates.insert(Exchange::USD("2020-01-14".to_string()), dec!(3.8019));
+ exchange_rates.insert(Exchange::USD("2023-06-07".to_string()), dec!(4.1887));
+ exchange_rates.insert(Exchange::USD("2018-07-03".to_string()), dec!(3.7723));
+ exchange_rates.insert(Exchange::USD("2017-09-04".to_string()), dec!(3.5718));
+ exchange_rates.insert(Exchange::USD("2017-10-02".to_string()), dec!(3.6726));
+ exchange_rates.insert(Exchange::USD("2014-09-29".to_string()), dec!(3.3));
+ exchange_rates.insert(Exchange::USD("2015-12-24".to_string()), dec!(3.8695));
+ exchange_rates.insert(Exchange::USD("2023-07-26".to_string()), dec!(3.9949));
+ exchange_rates.insert(Exchange::USD("2023-10-11".to_string()), dec!(4.2589));
+ exchange_rates.insert(Exchange::USD("2014-01-10".to_string()), dec!(3.07));
+ exchange_rates.insert(Exchange::USD("2022-03-08".to_string()), dec!(4.5115));
+ exchange_rates.insert(Exchange::USD("2024-04-24".to_string()), dec!(4.0417));
+ exchange_rates.insert(Exchange::USD("2024-09-27".to_string()), dec!(3.8368));
+ exchange_rates.insert(Exchange::USD("2016-05-20".to_string()), dec!(3.9358));
+ exchange_rates.insert(Exchange::USD("2023-04-19".to_string()), dec!(4.2244));
+ exchange_rates.insert(Exchange::USD("2014-09-03".to_string()), dec!(3.1912));
+ exchange_rates.insert(Exchange::USD("2019-01-15".to_string()), dec!(3.7542));
+ exchange_rates.insert(Exchange::USD("2015-12-08".to_string()), dec!(3.9877));
+ exchange_rates.insert(Exchange::USD("2015-10-26".to_string()), dec!(3.8645));
+ exchange_rates.insert(Exchange::EUR("2023-03-02".to_string()), dec!(4.675));
+ exchange_rates.insert(Exchange::EUR("2023-09-11".to_string()), dec!(4.6209));
+ exchange_rates.insert(Exchange::USD("2023-05-10".to_string()), dec!(4.1532));
+ exchange_rates.insert(Exchange::USD("2017-10-26".to_string()), dec!(3.5939));
+ exchange_rates.insert(Exchange::USD("2013-07-17".to_string()), dec!(3.241));
+ exchange_rates.insert(Exchange::USD("2021-12-09".to_string()), dec!(4.0837));
+ exchange_rates.insert(Exchange::USD("2022-01-04".to_string()), dec!(4.0468));
+ exchange_rates.insert(Exchange::USD("2021-08-05".to_string()), dec!(3.8485));
+ exchange_rates.insert(Exchange::USD("2012-06-26".to_string()), dec!(3.4088));
+ exchange_rates.insert(Exchange::EUR("2025-06-05".to_string()), dec!(4.2791));
+ exchange_rates.insert(Exchange::USD("2023-09-25".to_string()), dec!(4.3188));
+ exchange_rates.insert(Exchange::EUR("2023-06-21".to_string()), dec!(4.4408));
+ exchange_rates.insert(Exchange::USD("2015-02-20".to_string()), dec!(3.6895));
+ exchange_rates.insert(Exchange::USD("2015-03-23".to_string()), dec!(3.818));
+ exchange_rates.insert(Exchange::USD("2023-02-28".to_string()), dec!(4.4475));
+ exchange_rates.insert(Exchange::USD("2025-04-15".to_string()), dec!(3.7692));
+ exchange_rates.insert(Exchange::USD("2017-11-17".to_string()), dec!(3.5965));
+ exchange_rates.insert(Exchange::USD("2015-08-17".to_string()), dec!(3.7613));
+ exchange_rates.insert(Exchange::USD("2020-05-19".to_string()), dec!(4.1645));
+ exchange_rates.insert(Exchange::EUR("2024-03-06".to_string()), dec!(4.3106));
+ exchange_rates.insert(Exchange::USD("2021-12-22".to_string()), dec!(4.0984));
+ exchange_rates.insert(Exchange::USD("2018-02-21".to_string()), dec!(3.3697));
+ exchange_rates.insert(Exchange::USD("2022-02-18".to_string()), dec!(3.9798));
+ exchange_rates.insert(Exchange::USD("2017-02-22".to_string()), dec!(4.0899));
+ exchange_rates.insert(Exchange::EUR("2023-10-10".to_string()), dec!(4.5581));
+ exchange_rates.insert(Exchange::EUR("2025-04-07".to_string()), dec!(4.2975));
+ exchange_rates.insert(Exchange::USD("2022-04-14".to_string()), dec!(4.2581));
+ exchange_rates.insert(Exchange::USD("2014-10-15".to_string()), dec!(3.3262));
+ exchange_rates.insert(Exchange::EUR("2025-03-13".to_string()), dec!(4.196));
+ exchange_rates.insert(Exchange::USD("2013-01-03".to_string()), dec!(3.1005));
+ exchange_rates.insert(Exchange::USD("2019-11-25".to_string()), dec!(3.9036));
+ exchange_rates.insert(Exchange::USD("2021-10-27".to_string()), dec!(3.9815));
+ exchange_rates.insert(Exchange::USD("2022-06-03".to_string()), dec!(4.2689));
+ exchange_rates.insert(Exchange::USD("2014-04-11".to_string()), dec!(3.0086));
+ exchange_rates.insert(Exchange::USD("2013-01-30".to_string()), dec!(3.0938));
+ exchange_rates.insert(Exchange::EUR("2023-01-23".to_string()), dec!(4.7186));
+ exchange_rates.insert(Exchange::EUR("2024-11-25".to_string()), dec!(4.3319));
+ exchange_rates.insert(Exchange::EUR("2024-08-29".to_string()), dec!(4.2862));
+ exchange_rates.insert(Exchange::USD("2013-09-18".to_string()), dec!(3.1689));
+ exchange_rates.insert(Exchange::USD("2021-06-04".to_string()), dec!(3.6931));
+ exchange_rates.insert(Exchange::USD("2018-10-29".to_string()), dec!(3.793));
+ exchange_rates.insert(Exchange::USD("2021-10-25".to_string()), dec!(3.9502));
+ exchange_rates.insert(Exchange::USD("2018-12-05".to_string()), dec!(3.7832));
+ exchange_rates.insert(Exchange::USD("2014-08-27".to_string()), dec!(3.1764));
+ exchange_rates.insert(Exchange::USD("2014-08-11".to_string()), dec!(3.1378));
+ exchange_rates.insert(Exchange::EUR("2024-12-19".to_string()), dec!(4.2633));
+ exchange_rates.insert(Exchange::EUR("2023-10-20".to_string()), dec!(4.4675));
+ exchange_rates.insert(Exchange::USD("2024-11-14".to_string()), dec!(4.122));
+ exchange_rates.insert(Exchange::EUR("2023-01-05".to_string()), dec!(4.6709));
+ exchange_rates.insert(Exchange::EUR("2024-03-04".to_string()), dec!(4.3201));
+ exchange_rates.insert(Exchange::USD("2022-05-19".to_string()), dec!(4.4231));
+ exchange_rates.insert(Exchange::USD("2017-04-03".to_string()), dec!(3.9664));
+ exchange_rates.insert(Exchange::USD("2016-02-17".to_string()), dec!(3.9431));
+ exchange_rates.insert(Exchange::USD("2025-10-14".to_string()), dec!(3.6897));
+ exchange_rates.insert(Exchange::USD("2020-10-09".to_string()), dec!(3.7913));
+ exchange_rates.insert(Exchange::EUR("2023-03-01".to_string()), dec!(4.6925));
+ exchange_rates.insert(Exchange::EUR("2023-06-16".to_string()), dec!(4.4583));
+ exchange_rates.insert(Exchange::USD("2023-03-29".to_string()), dec!(4.3247));
+ exchange_rates.insert(Exchange::USD("2022-05-16".to_string()), dec!(4.4785));
+ exchange_rates.insert(Exchange::USD("2019-03-08".to_string()), dec!(3.8409));
+ exchange_rates.insert(Exchange::USD("2012-01-12".to_string()), dec!(3.4945));
+ exchange_rates.insert(Exchange::USD("2025-07-16".to_string()), dec!(3.6631));
+ exchange_rates.insert(Exchange::USD("2012-02-24".to_string()), dec!(3.1103));
+ exchange_rates.insert(Exchange::EUR("2024-12-30".to_string()), dec!(4.2738));
+ exchange_rates.insert(Exchange::USD("2025-12-02".to_string()), dec!(3.6512));
+ exchange_rates.insert(Exchange::USD("2019-01-29".to_string()), dec!(3.7563));
+ exchange_rates.insert(Exchange::USD("2021-05-04".to_string()), dec!(3.794));
+ exchange_rates.insert(Exchange::EUR("2024-07-18".to_string()), dec!(4.2954));
+ exchange_rates.insert(Exchange::USD("2014-12-30".to_string()), dec!(3.5458));
+ exchange_rates.insert(Exchange::USD("2024-07-24".to_string()), dec!(3.9498));
+ exchange_rates.insert(Exchange::USD("2021-05-28".to_string()), dec!(3.6766));
+ exchange_rates.insert(Exchange::USD("2012-11-22".to_string()), dec!(3.2021));
+ exchange_rates.insert(Exchange::USD("2024-04-22".to_string()), dec!(4.054));
+ exchange_rates.insert(Exchange::USD("2023-03-22".to_string()), dec!(4.3467));
+ exchange_rates.insert(Exchange::USD("2019-01-16".to_string()), dec!(3.7619));
+ exchange_rates.insert(Exchange::USD("2022-09-16".to_string()), dec!(4.7384));
+ exchange_rates.insert(Exchange::USD("2025-02-11".to_string()), dec!(4.0497));
+ exchange_rates.insert(Exchange::USD("2019-08-14".to_string()), dec!(3.889));
+ exchange_rates.insert(Exchange::USD("2025-03-11".to_string()), dec!(3.8481));
+ exchange_rates.insert(Exchange::USD("2017-05-29".to_string()), dec!(3.7371));
+ exchange_rates.insert(Exchange::USD("2016-03-08".to_string()), dec!(3.9333));
+ exchange_rates.insert(Exchange::USD("2013-11-20".to_string()), dec!(3.0947));
+ exchange_rates.insert(Exchange::USD("2013-02-13".to_string()), dec!(3.1012));
+ exchange_rates.insert(Exchange::EUR("2025-09-16".to_string()), dec!(4.2504));
+ exchange_rates.insert(Exchange::USD("2019-03-13".to_string()), dec!(3.8077));
+ exchange_rates.insert(Exchange::USD("2017-03-14".to_string()), dec!(4.0697));
+ exchange_rates.insert(Exchange::USD("2013-04-12".to_string()), dec!(3.1537));
+ exchange_rates.insert(Exchange::USD("2017-09-07".to_string()), dec!(3.5511));
+ exchange_rates.insert(Exchange::USD("2020-09-09".to_string()), dec!(3.7871));
+ exchange_rates.insert(Exchange::USD("2022-08-22".to_string()), dec!(4.7427));
+ exchange_rates.insert(Exchange::USD("2020-08-17".to_string()), dec!(3.7076));
+ exchange_rates.insert(Exchange::USD("2018-08-08".to_string()), dec!(3.6782));
+ exchange_rates.insert(Exchange::USD("2012-10-01".to_string()), dec!(3.1809));
+ exchange_rates.insert(Exchange::EUR("2025-01-07".to_string()), dec!(4.2515));
+ exchange_rates.insert(Exchange::USD("2019-06-26".to_string()), dec!(3.754));
+ exchange_rates.insert(Exchange::EUR("2025-06-20".to_string()), dec!(4.2709));
+ exchange_rates.insert(Exchange::USD("2018-10-12".to_string()), dec!(3.713));
+ exchange_rates.insert(Exchange::USD("2014-05-21".to_string()), dec!(3.054));
+ exchange_rates.insert(Exchange::USD("2019-08-23".to_string()), dec!(3.9371));
+ exchange_rates.insert(Exchange::USD("2015-03-09".to_string()), dec!(3.789));
+ exchange_rates.insert(Exchange::USD("2015-10-01".to_string()), dec!(3.8005));
+ exchange_rates.insert(Exchange::USD("2024-03-08".to_string()), dec!(3.9392));
+ exchange_rates.insert(Exchange::USD("2016-11-15".to_string()), dec!(4.0837));
+ exchange_rates.insert(Exchange::USD("2018-12-27".to_string()), dec!(3.7616));
+ exchange_rates.insert(Exchange::USD("2024-01-05".to_string()), dec!(3.985));
+ exchange_rates.insert(Exchange::EUR("2023-07-26".to_string()), dec!(4.4248));
+ exchange_rates.insert(Exchange::USD("2012-12-12".to_string()), dec!(3.1459));
+ exchange_rates.insert(Exchange::USD("2021-02-25".to_string()), dec!(3.6943));
+ exchange_rates.insert(Exchange::USD("2014-10-02".to_string()), dec!(3.3039));
+ exchange_rates.insert(Exchange::USD("2025-03-20".to_string()), dec!(3.8675));
+ exchange_rates.insert(Exchange::USD("2024-11-22".to_string()), dec!(4.1752));
+ exchange_rates.insert(Exchange::USD("2014-06-04".to_string()), dec!(3.0491));
+ exchange_rates.insert(Exchange::USD("2024-09-24".to_string()), dec!(3.83));
+ exchange_rates.insert(Exchange::USD("2025-05-28".to_string()), dec!(3.7456));
+ exchange_rates.insert(Exchange::USD("2015-10-27".to_string()), dec!(3.8669));
+ exchange_rates.insert(Exchange::USD("2013-08-09".to_string()), dec!(3.1336));
+ exchange_rates.insert(Exchange::EUR("2025-09-05".to_string()), dec!(4.2476));
+ exchange_rates.insert(Exchange::USD("2022-01-25".to_string()), dec!(4.0593));
+ exchange_rates.insert(Exchange::USD("2013-05-10".to_string()), dec!(3.1861));
+ exchange_rates.insert(Exchange::USD("2023-05-15".to_string()), dec!(4.149));
+ exchange_rates.insert(Exchange::USD("2019-01-23".to_string()), dec!(3.7747));
+ exchange_rates.insert(Exchange::USD("2024-11-18".to_string()), dec!(4.0997));
+ exchange_rates.insert(Exchange::USD("2025-09-05".to_string()), dec!(3.6357));
+ exchange_rates.insert(Exchange::USD("2014-09-04".to_string()), dec!(3.1947));
+ exchange_rates.insert(Exchange::USD("2013-05-17".to_string()), dec!(3.252));
+ exchange_rates.insert(Exchange::USD("2012-09-04".to_string()), dec!(3.3281));
+ exchange_rates.insert(Exchange::EUR("2025-05-14".to_string()), dec!(4.2455));
+ exchange_rates.insert(Exchange::USD("2014-05-05".to_string()), dec!(3.031));
+ exchange_rates.insert(Exchange::EUR("2024-04-15".to_string()), dec!(4.2851));
+ exchange_rates.insert(Exchange::USD("2022-08-25".to_string()), dec!(4.7546));
+ exchange_rates.insert(Exchange::USD("2013-03-29".to_string()), dec!(3.259));
+ exchange_rates.insert(Exchange::EUR("2023-03-30".to_string()), dec!(4.6801));
+ exchange_rates.insert(Exchange::USD("2024-06-06".to_string()), dec!(3.953));
+ exchange_rates.insert(Exchange::USD("2025-08-08".to_string()), dec!(3.6577));
+ exchange_rates.insert(Exchange::USD("2021-01-27".to_string()), dec!(3.7507));
+ exchange_rates.insert(Exchange::USD("2022-07-06".to_string()), dec!(4.6796));
+ exchange_rates.insert(Exchange::EUR("2024-03-11".to_string()), dec!(4.2933));
+ exchange_rates.insert(Exchange::EUR("2025-09-17".to_string()), dec!(4.2559));
+ exchange_rates.insert(Exchange::USD("2019-05-09".to_string()), dec!(3.841));
+ exchange_rates.insert(Exchange::USD("2021-11-03".to_string()), dec!(3.9681));
+ exchange_rates.insert(Exchange::USD("2015-12-29".to_string()), dec!(3.8659));
+ exchange_rates.insert(Exchange::USD("2015-07-07".to_string()), dec!(3.8313));
+ exchange_rates.insert(Exchange::EUR("2023-10-23".to_string()), dec!(4.4552));
+ exchange_rates.insert(Exchange::USD("2022-12-07".to_string()), dec!(4.4834));
+ exchange_rates.insert(Exchange::USD("2020-07-31".to_string()), dec!(3.7166));
+ exchange_rates.insert(Exchange::USD("2020-05-27".to_string()), dec!(4.0504));
+ exchange_rates.insert(Exchange::USD("2014-02-26".to_string()), dec!(3.026));
+ exchange_rates.insert(Exchange::USD("2025-10-23".to_string()), dec!(3.6519));
+ exchange_rates.insert(Exchange::USD("2014-01-20".to_string()), dec!(3.068));
+ exchange_rates.insert(Exchange::USD("2024-03-04".to_string()), dec!(3.982));
+ exchange_rates.insert(Exchange::USD("2017-12-28".to_string()), dec!(3.5046));
+ exchange_rates.insert(Exchange::EUR("2023-10-12".to_string()), dec!(4.5329));
+ exchange_rates.insert(Exchange::EUR("2023-12-19".to_string()), dec!(4.3321));
+ exchange_rates.insert(Exchange::USD("2012-05-14".to_string()), dec!(3.3422));
+ exchange_rates.insert(Exchange::USD("2014-06-26".to_string()), dec!(3.0361));
+ exchange_rates.insert(Exchange::USD("2018-04-12".to_string()), dec!(3.3924));
+ exchange_rates.insert(Exchange::USD("2017-02-01".to_string()), dec!(4.0071));
+ exchange_rates.insert(Exchange::USD("2017-08-22".to_string()), dec!(3.6334));
+ exchange_rates.insert(Exchange::USD("2019-10-17".to_string()), dec!(3.8638));
+ exchange_rates.insert(Exchange::EUR("2025-10-22".to_string()), dec!(4.2438));
+ exchange_rates.insert(Exchange::USD("2023-06-16".to_string()), dec!(4.0715));
+ exchange_rates.insert(Exchange::EUR("2025-11-17".to_string()), dec!(4.2231));
+ exchange_rates.insert(Exchange::USD("2025-11-07".to_string()), dec!(3.6818));
+ exchange_rates.insert(Exchange::USD("2019-05-23".to_string()), dec!(3.8696));
+ exchange_rates.insert(Exchange::EUR("2023-07-07".to_string()), dec!(4.4803));
+ exchange_rates.insert(Exchange::EUR("2025-06-12".to_string()), dec!(4.2631));
+ exchange_rates.insert(Exchange::EUR("2024-12-17".to_string()), dec!(4.2599));
+ exchange_rates.insert(Exchange::EUR("2025-08-01".to_string()), dec!(4.2813));
+ exchange_rates.insert(Exchange::USD("2021-12-30".to_string()), dec!(4.0631));
+ exchange_rates.insert(Exchange::USD("2022-12-08".to_string()), dec!(4.476));
+ exchange_rates.insert(Exchange::EUR("2025-04-22".to_string()), dec!(4.2801));
+ exchange_rates.insert(Exchange::USD("2025-09-29".to_string()), dec!(3.6411));
+ exchange_rates.insert(Exchange::USD("2022-05-12".to_string()), dec!(4.4863));
+ exchange_rates.insert(Exchange::EUR("2025-03-03".to_string()), dec!(4.1827));
+ exchange_rates.insert(Exchange::EUR("2023-11-08".to_string()), dec!(4.4584));
+ exchange_rates.insert(Exchange::USD("2020-01-02".to_string()), dec!(3.8));
+ exchange_rates.insert(Exchange::USD("2022-03-21".to_string()), dec!(4.2444));
+ exchange_rates.insert(Exchange::USD("2017-08-16".to_string()), dec!(3.6435));
+ exchange_rates.insert(Exchange::USD("2016-07-26".to_string()), dec!(3.9682));
+ exchange_rates.insert(Exchange::EUR("2024-08-21".to_string()), dec!(4.2879));
+ exchange_rates.insert(Exchange::USD("2024-11-25".to_string()), dec!(4.1297));
+ exchange_rates.insert(Exchange::USD("2020-09-28".to_string()), dec!(3.9083));
+ exchange_rates.insert(Exchange::USD("2024-01-03".to_string()), dec!(3.9909));
+ exchange_rates.insert(Exchange::USD("2014-09-02".to_string()), dec!(3.2112));
+ exchange_rates.insert(Exchange::USD("2024-05-17".to_string()), dec!(3.9363));
+ exchange_rates.insert(Exchange::USD("2025-01-17".to_string()), dec!(4.1462));
+ exchange_rates.insert(Exchange::USD("2022-06-20".to_string()), dec!(4.44));
+ exchange_rates.insert(Exchange::USD("2017-06-21".to_string()), dec!(3.809));
+ exchange_rates.insert(Exchange::USD("2014-09-09".to_string()), dec!(3.2605));
+ exchange_rates.insert(Exchange::EUR("2024-05-31".to_string()), dec!(4.2678));
+ exchange_rates.insert(Exchange::USD("2020-04-06".to_string()), dec!(4.2257));
+ exchange_rates.insert(Exchange::EUR("2025-12-31".to_string()), dec!(4.2267));
+ exchange_rates.insert(Exchange::USD("2025-01-15".to_string()), dec!(4.133));
+ exchange_rates.insert(Exchange::USD("2021-10-18".to_string()), dec!(3.9471));
+ exchange_rates.insert(Exchange::USD("2022-04-26".to_string()), dec!(4.3469));
+ exchange_rates.insert(Exchange::USD("2022-11-02".to_string()), dec!(4.7485));
+ exchange_rates.insert(Exchange::USD("2022-12-14".to_string()), dec!(4.3973));
+ exchange_rates.insert(Exchange::USD("2015-09-10".to_string()), dec!(3.7648));
+ exchange_rates.insert(Exchange::USD("2017-02-27".to_string()), dec!(4.0745));
+ exchange_rates.insert(Exchange::EUR("2023-07-28".to_string()), dec!(4.4257));
+ exchange_rates.insert(Exchange::USD("2016-12-27".to_string()), dec!(4.212));
+ exchange_rates.insert(Exchange::USD("2013-03-12".to_string()), dec!(3.1887));
+ exchange_rates.insert(Exchange::EUR("2024-11-06".to_string()), dec!(4.3662));
+ exchange_rates.insert(Exchange::USD("2021-04-19".to_string()), dec!(3.7816));
+ exchange_rates.insert(Exchange::EUR("2025-03-28".to_string()), dec!(4.1819));
+ exchange_rates.insert(Exchange::USD("2014-04-08".to_string()), dec!(3.0276));
+ exchange_rates.insert(Exchange::USD("2012-11-20".to_string()), dec!(3.2333));
+ exchange_rates.insert(Exchange::USD("2021-07-20".to_string()), dec!(3.9012));
+ exchange_rates.insert(Exchange::USD("2015-07-08".to_string()), dec!(3.8225));
+ exchange_rates.insert(Exchange::USD("2012-05-10".to_string()), dec!(3.2735));
+ exchange_rates.insert(Exchange::USD("2015-07-06".to_string()), dec!(3.796));
+ exchange_rates.insert(Exchange::USD("2015-01-08".to_string()), dec!(3.6482));
+ exchange_rates.insert(Exchange::USD("2024-07-08".to_string()), dec!(3.947));
+ exchange_rates.insert(Exchange::USD("2019-05-29".to_string()), dec!(3.8554));
+ exchange_rates.insert(Exchange::USD("2012-06-28".to_string()), dec!(3.4408));
+ exchange_rates.insert(Exchange::USD("2012-10-24".to_string()), dec!(3.1996));
+ exchange_rates.insert(Exchange::USD("2015-05-29".to_string()), dec!(3.7671));
+ exchange_rates.insert(Exchange::USD("2021-07-06".to_string()), dec!(3.8021));
+ exchange_rates.insert(Exchange::USD("2012-04-20".to_string()), dec!(3.1828));
+ exchange_rates.insert(Exchange::USD("2018-10-10".to_string()), dec!(3.7507));
+ exchange_rates.insert(Exchange::USD("2014-11-12".to_string()), dec!(3.3966));
+ exchange_rates.insert(Exchange::USD("2017-08-02".to_string()), dec!(3.5863));
+ exchange_rates.insert(Exchange::USD("2025-11-27".to_string()), dec!(3.651));
+ exchange_rates.insert(Exchange::USD("2025-11-28".to_string()), dec!(3.6624));
+ exchange_rates.insert(Exchange::USD("2022-10-03".to_string()), dec!(4.9207));
+ exchange_rates.insert(Exchange::USD("2013-03-08".to_string()), dec!(3.169));
+ exchange_rates.insert(Exchange::USD("2014-08-07".to_string()), dec!(3.1397));
+ exchange_rates.insert(Exchange::USD("2023-08-09".to_string()), dec!(4.0592));
+ exchange_rates.insert(Exchange::USD("2024-03-13".to_string()), dec!(3.9269));
+ exchange_rates.insert(Exchange::USD("2021-04-28".to_string()), dec!(3.7939));
+ exchange_rates.insert(Exchange::USD("2023-05-11".to_string()), dec!(4.1414));
+ exchange_rates.insert(Exchange::USD("2020-11-13".to_string()), dec!(3.8015));
+ exchange_rates.insert(Exchange::USD("2012-08-28".to_string()), dec!(3.2685));
+ exchange_rates.insert(Exchange::USD("2012-10-19".to_string()), dec!(3.1499));
+ exchange_rates.insert(Exchange::USD("2016-07-27".to_string()), dec!(3.9739));
+ exchange_rates.insert(Exchange::USD("2013-05-28".to_string()), dec!(3.2465));
+ exchange_rates.insert(Exchange::USD("2012-06-01".to_string()), dec!(3.5777));
+ exchange_rates.insert(Exchange::USD("2014-05-07".to_string()), dec!(3.0187));
+ exchange_rates.insert(Exchange::USD("2019-02-05".to_string()), dec!(3.7542));
+ exchange_rates.insert(Exchange::USD("2019-09-25".to_string()), dec!(3.9856));
+ exchange_rates.insert(Exchange::EUR("2023-09-04".to_string()), dec!(4.4653));
+ exchange_rates.insert(Exchange::USD("2013-01-09".to_string()), dec!(3.1516));
+ exchange_rates.insert(Exchange::EUR("2025-01-16".to_string()), dec!(4.262));
+ exchange_rates.insert(Exchange::USD("2018-04-19".to_string()), dec!(3.3693));
+ exchange_rates.insert(Exchange::USD("2017-04-11".to_string()), dec!(4.0009));
+ exchange_rates.insert(Exchange::USD("2017-08-07".to_string()), dec!(3.5995));
+ exchange_rates.insert(Exchange::USD("2016-10-27".to_string()), dec!(3.976));
+ exchange_rates.insert(Exchange::USD("2021-03-16".to_string()), dec!(3.8519));
+ exchange_rates.insert(Exchange::USD("2016-12-07".to_string()), dec!(4.1268));
+ exchange_rates.insert(Exchange::USD("2021-09-10".to_string()), dec!(3.8402));
+ exchange_rates.insert(Exchange::USD("2015-05-11".to_string()), dec!(3.6489));
+ exchange_rates.insert(Exchange::USD("2019-01-09".to_string()), dec!(3.7509));
+ exchange_rates.insert(Exchange::USD("2021-09-21".to_string()), dec!(3.9337));
+ exchange_rates.insert(Exchange::USD("2020-11-10".to_string()), dec!(3.8168));
+ exchange_rates.insert(Exchange::EUR("2023-10-18".to_string()), dec!(4.4488));
+ exchange_rates.insert(Exchange::EUR("2023-11-24".to_string()), dec!(4.3722));
+ exchange_rates.insert(Exchange::USD("2015-07-02".to_string()), dec!(3.7859));
+ exchange_rates.insert(Exchange::USD("2024-04-04".to_string()), dec!(3.9515));
+ exchange_rates.insert(Exchange::USD("2023-02-22".to_string()), dec!(4.4687));
+ exchange_rates.insert(Exchange::EUR("2024-02-21".to_string()), dec!(4.3163));
+ exchange_rates.insert(Exchange::EUR("2024-06-12".to_string()), dec!(4.3354));
+ exchange_rates.insert(Exchange::EUR("2025-06-17".to_string()), dec!(4.275));
+ exchange_rates.insert(Exchange::USD("2016-08-16".to_string()), dec!(3.7929));
+ exchange_rates.insert(Exchange::USD("2019-06-12".to_string()), dec!(3.763));
+ exchange_rates.insert(Exchange::USD("2020-09-23".to_string()), dec!(3.8399));
+ exchange_rates.insert(Exchange::USD("2012-02-02".to_string()), dec!(3.1955));
+ exchange_rates.insert(Exchange::USD("2022-05-27".to_string()), dec!(4.2966));
+ exchange_rates.insert(Exchange::USD("2013-05-07".to_string()), dec!(3.1767));
+ exchange_rates.insert(Exchange::USD("2016-06-13".to_string()), dec!(3.8943));
+ exchange_rates.insert(Exchange::USD("2023-05-22".to_string()), dec!(4.1881));
+ exchange_rates.insert(Exchange::USD("2024-06-28".to_string()), dec!(4.032));
+ exchange_rates.insert(Exchange::EUR("2025-05-09".to_string()), dec!(4.2414));
+ exchange_rates.insert(Exchange::USD("2015-08-05".to_string()), dec!(3.8359));
+ exchange_rates.insert(Exchange::USD("2024-12-05".to_string()), dec!(4.0554));
+ exchange_rates.insert(Exchange::EUR("2023-06-28".to_string()), dec!(4.46));
+ exchange_rates.insert(Exchange::EUR("2024-03-20".to_string()), dec!(4.3242));
+ exchange_rates.insert(Exchange::USD("2016-03-24".to_string()), dec!(3.824));
+ exchange_rates.insert(Exchange::USD("2023-08-21".to_string()), dec!(4.1124));
+ exchange_rates.insert(Exchange::USD("2012-10-12".to_string()), dec!(3.1577));
+ exchange_rates.insert(Exchange::USD("2017-04-07".to_string()), dec!(3.9755));
+ exchange_rates.insert(Exchange::USD("2015-04-13".to_string()), dec!(3.8088));
+ exchange_rates.insert(Exchange::USD("2012-08-16".to_string()), dec!(3.3253));
+ exchange_rates.insert(Exchange::EUR("2024-04-08".to_string()), dec!(4.2805));
+ exchange_rates.insert(Exchange::USD("2017-09-28".to_string()), dec!(3.6682));
+ exchange_rates.insert(Exchange::EUR("2025-01-21".to_string()), dec!(4.2554));
+ exchange_rates.insert(Exchange::USD("2015-04-09".to_string()), dec!(3.7414));
+ exchange_rates.insert(Exchange::USD("2015-05-07".to_string()), dec!(3.583));
+ exchange_rates.insert(Exchange::USD("2023-10-25".to_string()), dec!(4.2284));
+ exchange_rates.insert(Exchange::USD("2020-07-01".to_string()), dec!(3.9591));
+ exchange_rates.insert(Exchange::USD("2016-08-10".to_string()), dec!(3.825));
+ exchange_rates.insert(Exchange::USD("2022-06-06".to_string()), dec!(4.2675));
+ exchange_rates.insert(Exchange::USD("2016-07-01".to_string()), dec!(3.9548));
+ exchange_rates.insert(Exchange::USD("2013-02-25".to_string()), dec!(3.1412));
+ exchange_rates.insert(Exchange::USD("2020-04-23".to_string()), dec!(4.2093));
+ exchange_rates.insert(Exchange::USD("2021-12-10".to_string()), dec!(4.0887));
+ exchange_rates.insert(Exchange::USD("2021-09-03".to_string()), dec!(3.7998));
+ exchange_rates.insert(Exchange::USD("2025-08-13".to_string()), dec!(3.6353));
+ exchange_rates.insert(Exchange::USD("2020-09-14".to_string()), dec!(3.7522));
+ exchange_rates.insert(Exchange::USD("2016-01-27".to_string()), dec!(4.1144));
+ exchange_rates.insert(Exchange::USD("2019-03-28".to_string()), dec!(3.8202));
+ exchange_rates.insert(Exchange::USD("2016-11-14".to_string()), dec!(4.0805));
+ exchange_rates.insert(Exchange::EUR("2023-05-15".to_string()), dec!(4.5096));
+ exchange_rates.insert(Exchange::EUR("2025-12-19".to_string()), dec!(4.2094));
+ exchange_rates.insert(Exchange::USD("2012-10-03".to_string()), dec!(3.1896));
+ exchange_rates.insert(Exchange::USD("2015-07-29".to_string()), dec!(3.7471));
+ exchange_rates.insert(Exchange::USD("2020-10-02".to_string()), dec!(3.8366));
+ exchange_rates.insert(Exchange::USD("2012-01-17".to_string()), dec!(3.4215));
+ exchange_rates.insert(Exchange::USD("2023-07-31".to_string()), dec!(3.9995));
+ exchange_rates.insert(Exchange::USD("2019-10-02".to_string()), dec!(4.0152));
+ exchange_rates.insert(Exchange::USD("2012-01-13".to_string()), dec!(3.4323));
+ exchange_rates.insert(Exchange::USD("2025-03-03".to_string()), dec!(4.0112));
+ exchange_rates.insert(Exchange::USD("2019-06-25".to_string()), dec!(3.7376));
+ exchange_rates.insert(Exchange::USD("2022-04-21".to_string()), dec!(4.2596));
+ exchange_rates.insert(Exchange::USD("2021-11-25".to_string()), dec!(4.16));
+ exchange_rates.insert(Exchange::USD("2025-06-06".to_string()), dec!(3.7565));
+ exchange_rates.insert(Exchange::USD("2023-11-03".to_string()), dec!(4.1857));
+ exchange_rates.insert(Exchange::USD("2023-06-15".to_string()), dec!(4.1203));
+ exchange_rates.insert(Exchange::USD("2013-06-05".to_string()), dec!(3.2421));
+ exchange_rates.insert(Exchange::USD("2025-08-18".to_string()), dec!(3.6434));
+ exchange_rates.insert(Exchange::USD("2023-12-11".to_string()), dec!(4.0277));
+ exchange_rates.insert(Exchange::USD("2018-03-07".to_string()), dec!(3.3744));
+ exchange_rates.insert(Exchange::USD("2015-10-09".to_string()), dec!(3.7242));
+ exchange_rates.insert(Exchange::USD("2015-12-14".to_string()), dec!(3.9695));
+ exchange_rates.insert(Exchange::USD("2014-03-05".to_string()), dec!(3.0477));
+ exchange_rates.insert(Exchange::USD("2013-07-29".to_string()), dec!(3.1859));
+ exchange_rates.insert(Exchange::USD("2020-04-02".to_string()), dec!(4.1917));
+ exchange_rates.insert(Exchange::USD("2025-07-09".to_string()), dec!(3.6198));
+ exchange_rates.insert(Exchange::USD("2017-07-05".to_string()), dec!(3.7471));
+ exchange_rates.insert(Exchange::USD("2021-01-19".to_string()), dec!(3.7416));
+ exchange_rates.insert(Exchange::USD("2018-11-26".to_string()), dec!(3.7701));
+ exchange_rates.insert(Exchange::USD("2018-12-24".to_string()), dec!(3.7588));
+ exchange_rates.insert(Exchange::USD("2017-12-21".to_string()), dec!(3.5369));
+ exchange_rates.insert(Exchange::EUR("2023-10-05".to_string()), dec!(4.5974));
+ exchange_rates.insert(Exchange::EUR("2025-04-10".to_string()), dec!(4.2644));
+ exchange_rates.insert(Exchange::USD("2019-07-16".to_string()), dec!(3.7867));
+ exchange_rates.insert(Exchange::EUR("2025-06-13".to_string()), dec!(4.272));
+ exchange_rates.insert(Exchange::USD("2018-04-25".to_string()), dec!(3.4548));
+ exchange_rates.insert(Exchange::USD("2023-02-01".to_string()), dec!(4.3254));
+ exchange_rates.insert(Exchange::USD("2021-03-18".to_string()), dec!(3.8705));
+ exchange_rates.insert(Exchange::USD("2021-05-26".to_string()), dec!(3.6691));
+ exchange_rates.insert(Exchange::USD("2015-10-28".to_string()), dec!(3.8826));
+ exchange_rates.insert(Exchange::USD("2023-06-12".to_string()), dec!(4.1169));
+ exchange_rates.insert(Exchange::USD("2022-09-29".to_string()), dec!(5.0328));
+ exchange_rates.insert(Exchange::USD("2014-03-04".to_string()), dec!(3.0489));
+ exchange_rates.insert(Exchange::USD("2017-03-21".to_string()), dec!(3.9502));
+ exchange_rates.insert(Exchange::USD("2015-02-11".to_string()), dec!(3.7094));
+ exchange_rates.insert(Exchange::USD("2013-11-12".to_string()), dec!(3.1448));
+ exchange_rates.insert(Exchange::USD("2023-08-24".to_string()), dec!(4.118));
+ exchange_rates.insert(Exchange::USD("2024-03-29".to_string()), dec!(3.9886));
+ exchange_rates.insert(Exchange::EUR("2023-02-17".to_string()), dec!(4.7747));
+ exchange_rates.insert(Exchange::USD("2024-07-18".to_string()), dec!(3.9296));
+ exchange_rates.insert(Exchange::EUR("2023-05-18".to_string()), dec!(4.5355));
+ exchange_rates.insert(Exchange::USD("2018-08-10".to_string()), dec!(3.7481));
+ exchange_rates.insert(Exchange::USD("2022-02-22".to_string()), dec!(4.012));
+ exchange_rates.insert(Exchange::USD("2012-05-11".to_string()), dec!(3.2765));
+ exchange_rates.insert(Exchange::USD("2020-07-15".to_string()), dec!(3.9117));
+ exchange_rates.insert(Exchange::USD("2014-04-24".to_string()), dec!(3.0285));
+ exchange_rates.insert(Exchange::EUR("2024-10-07".to_string()), dec!(4.3185));
+ exchange_rates.insert(Exchange::USD("2014-04-01".to_string()), dec!(3.0278));
+ exchange_rates.insert(Exchange::EUR("2023-06-13".to_string()), dec!(4.4783));
+ exchange_rates.insert(Exchange::USD("2023-07-14".to_string()), dec!(3.9617));
+ exchange_rates.insert(Exchange::USD("2014-05-26".to_string()), dec!(3.0466));
+ exchange_rates.insert(Exchange::USD("2024-10-18".to_string()), dec!(3.9718));
+ exchange_rates.insert(Exchange::USD("2013-02-07".to_string()), dec!(3.0886));
+ exchange_rates.insert(Exchange::EUR("2024-05-14".to_string()), dec!(4.2812));
+ exchange_rates.insert(Exchange::USD("2016-06-29".to_string()), dec!(3.9905));
+ exchange_rates.insert(Exchange::USD("2013-03-20".to_string()), dec!(3.2169));
+ exchange_rates.insert(Exchange::USD("2020-11-16".to_string()), dec!(3.7782));
+ exchange_rates.insert(Exchange::USD("2025-02-06".to_string()), dec!(4.0613));
+ exchange_rates.insert(Exchange::USD("2012-06-27".to_string()), dec!(3.4015));
+ exchange_rates.insert(Exchange::USD("2021-03-29".to_string()), dec!(3.957));
+ exchange_rates.insert(Exchange::USD("2022-07-18".to_string()), dec!(4.7152));
+ exchange_rates.insert(Exchange::USD("2012-02-20".to_string()), dec!(3.1598));
+ exchange_rates.insert(Exchange::USD("2012-06-12".to_string()), dec!(3.4552));
+ exchange_rates.insert(Exchange::USD("2017-09-01".to_string()), dec!(3.5693));
+ exchange_rates.insert(Exchange::USD("2023-02-08".to_string()), dec!(4.4074));
+ exchange_rates.insert(Exchange::EUR("2024-06-14".to_string()), dec!(4.3581));
+ exchange_rates.insert(Exchange::USD("2020-04-24".to_string()), dec!(4.2142));
+ exchange_rates.insert(Exchange::USD("2021-10-28".to_string()), dec!(3.9938));
+ exchange_rates.insert(Exchange::USD("2018-04-23".to_string()), dec!(3.4156));
+ exchange_rates.insert(Exchange::USD("2013-11-08".to_string()), dec!(3.1133));
+ exchange_rates.insert(Exchange::EUR("2023-03-23".to_string()), dec!(4.6817));
+ exchange_rates.insert(Exchange::USD("2018-08-22".to_string()), dec!(3.7104));
+ exchange_rates.insert(Exchange::USD("2015-06-11".to_string()), dec!(3.6817));
+ exchange_rates.insert(Exchange::EUR("2025-05-05".to_string()), dec!(4.276));
+ exchange_rates.insert(Exchange::USD("2016-06-16".to_string()), dec!(3.9469));
+ exchange_rates.insert(Exchange::EUR("2025-08-22".to_string()), dec!(4.267));
+ exchange_rates.insert(Exchange::USD("2019-05-08".to_string()), dec!(3.8325));
+ exchange_rates.insert(Exchange::USD("2013-07-26".to_string()), dec!(3.1831));
+ exchange_rates.insert(Exchange::EUR("2023-07-24".to_string()), dec!(4.4517));
+ exchange_rates.insert(Exchange::USD("2015-06-22".to_string()), dec!(3.6799));
+ exchange_rates.insert(Exchange::EUR("2025-01-31".to_string()), dec!(4.213));
+ exchange_rates.insert(Exchange::USD("2019-07-12".to_string()), dec!(3.7889));
+ exchange_rates.insert(Exchange::USD("2013-02-22".to_string()), dec!(3.1443));
+ exchange_rates.insert(Exchange::EUR("2023-04-18".to_string()), dec!(4.6286));
+ exchange_rates.insert(Exchange::EUR("2023-10-24".to_string()), dec!(4.4604));
+ exchange_rates.insert(Exchange::USD("2016-02-29".to_string()), dec!(3.9935));
+ exchange_rates.insert(Exchange::USD("2013-12-18".to_string()), dec!(3.0393));
+ exchange_rates.insert(Exchange::USD("2021-04-12".to_string()), dec!(3.8144));
+ exchange_rates.insert(Exchange::USD("2024-06-13".to_string()), dec!(4.0119));
+ exchange_rates.insert(Exchange::USD("2014-11-07".to_string()), dec!(3.4084));
+ exchange_rates.insert(Exchange::USD("2017-04-12".to_string()), dec!(4.0026));
+ exchange_rates.insert(Exchange::USD("2013-07-22".to_string()), dec!(3.2142));
+ exchange_rates.insert(Exchange::EUR("2025-03-14".to_string()), dec!(4.179));
+ exchange_rates.insert(Exchange::USD("2020-02-18".to_string()), dec!(3.9448));
+ exchange_rates.insert(Exchange::USD("2023-05-17".to_string()), dec!(4.1504));
+ exchange_rates.insert(Exchange::USD("2022-02-03".to_string()), dec!(4.0267));
+ exchange_rates.insert(Exchange::USD("2017-05-04".to_string()), dec!(3.863));
+ exchange_rates.insert(Exchange::USD("2022-12-21".to_string()), dec!(4.3947));
+ exchange_rates.insert(Exchange::USD("2015-10-30".to_string()), dec!(3.8748));
+ exchange_rates.insert(Exchange::USD("2022-02-08".to_string()), dec!(3.9693));
+ exchange_rates.insert(Exchange::USD("2015-09-02".to_string()), dec!(3.7626));
+ exchange_rates.insert(Exchange::USD("2013-05-13".to_string()), dec!(3.2051));
+ exchange_rates.insert(Exchange::USD("2019-10-30".to_string()), dec!(3.8388));
+ exchange_rates.insert(Exchange::USD("2024-07-10".to_string()), dec!(3.9324));
+ exchange_rates.insert(Exchange::EUR("2025-05-28".to_string()), dec!(4.2447));
+ exchange_rates.insert(Exchange::USD("2012-12-27".to_string()), dec!(3.0816));
+ exchange_rates.insert(Exchange::USD("2014-09-08".to_string()), dec!(3.2303));
+ exchange_rates.insert(Exchange::USD("2019-04-19".to_string()), dec!(3.8051));
+ exchange_rates.insert(Exchange::USD("2024-03-01".to_string()), dec!(3.9922));
+ exchange_rates.insert(Exchange::USD("2024-10-16".to_string()), dec!(3.9468));
+ exchange_rates.insert(Exchange::EUR("2024-10-25".to_string()), dec!(4.3533));
+ exchange_rates.insert(Exchange::USD("2023-06-29".to_string()), dec!(4.0832));
+ exchange_rates.insert(Exchange::USD("2018-12-28".to_string()), dec!(3.755));
+ exchange_rates.insert(Exchange::USD("2014-05-15".to_string()), dec!(3.0589));
+ exchange_rates.insert(Exchange::USD("2012-12-14".to_string()), dec!(3.1271));
+ exchange_rates.insert(Exchange::USD("2022-12-20".to_string()), dec!(4.4001));
+ exchange_rates.insert(Exchange::USD("2017-06-02".to_string()), dec!(3.7323));
+ exchange_rates.insert(Exchange::EUR("2023-06-09".to_string()), dec!(4.4717));
+ exchange_rates.insert(Exchange::USD("2022-01-07".to_string()), dec!(4.0279));
+ exchange_rates.insert(Exchange::EUR("2024-03-13".to_string()), dec!(4.2896));
+ exchange_rates.insert(Exchange::EUR("2025-02-10".to_string()), dec!(4.1872));
+ exchange_rates.insert(Exchange::USD("2020-08-06".to_string()), dec!(3.724));
+ exchange_rates.insert(Exchange::EUR("2025-05-08".to_string()), dec!(4.2714));
+ exchange_rates.insert(Exchange::USD("2016-05-11".to_string()), dec!(3.8855));
+ exchange_rates.insert(Exchange::USD("2021-02-15".to_string()), dec!(3.6949));
+ exchange_rates.insert(Exchange::EUR("2025-09-18".to_string()), dec!(4.2564));
+ exchange_rates.insert(Exchange::USD("2022-02-11".to_string()), dec!(3.9665));
+ exchange_rates.insert(Exchange::USD("2023-12-27".to_string()), dec!(3.9178));
+ exchange_rates.insert(Exchange::USD("2014-11-17".to_string()), dec!(3.3819));
+ exchange_rates.insert(Exchange::USD("2015-02-16".to_string()), dec!(3.6665));
+ exchange_rates.insert(Exchange::USD("2015-03-19".to_string()), dec!(3.8596));
+ exchange_rates.insert(Exchange::USD("2015-11-26".to_string()), dec!(4.0298));
+ exchange_rates.insert(Exchange::USD("2022-03-18".to_string()), dec!(4.2707));
+ exchange_rates.insert(Exchange::USD("2013-07-04".to_string()), dec!(3.3246));
+ exchange_rates.insert(Exchange::EUR("2023-03-29".to_string()), dec!(4.685));
+ exchange_rates.insert(Exchange::USD("2022-07-11".to_string()), dec!(4.7416));
+ exchange_rates.insert(Exchange::USD("2021-05-07".to_string()), dec!(3.7861));
+ exchange_rates.insert(Exchange::EUR("2023-07-05".to_string()), dec!(4.4498));
+ exchange_rates.insert(Exchange::USD("2012-04-10".to_string()), dec!(3.1904));
+ exchange_rates.insert(Exchange::USD("2014-01-03".to_string()), dec!(3.0517));
+ exchange_rates.insert(Exchange::USD("2021-02-22".to_string()), dec!(3.7135));
+ exchange_rates.insert(Exchange::USD("2015-11-20".to_string()), dec!(3.9706));
+ exchange_rates.insert(Exchange::USD("2022-05-17".to_string()), dec!(4.4379));
+ exchange_rates.insert(Exchange::USD("2015-08-19".to_string()), dec!(3.7718));
+ exchange_rates.insert(Exchange::USD("2019-06-06".to_string()), dec!(3.8065));
+ exchange_rates.insert(Exchange::EUR("2024-02-29".to_string()), dec!(4.319));
+ exchange_rates.insert(Exchange::EUR("2025-08-11".to_string()), dec!(4.2533));
+ exchange_rates.insert(Exchange::USD("2017-10-04".to_string()), dec!(3.6597));
+ exchange_rates.insert(Exchange::USD("2022-09-15".to_string()), dec!(4.7202));
+ exchange_rates.insert(Exchange::USD("2014-10-29".to_string()), dec!(3.3192));
+ exchange_rates.insert(Exchange::USD("2014-07-01".to_string()), dec!(3.0355));
+ exchange_rates.insert(Exchange::USD("2025-11-10".to_string()), dec!(3.661));
+ exchange_rates.insert(Exchange::EUR("2025-01-03".to_string()), dec!(4.2718));
+ exchange_rates.insert(Exchange::EUR("2025-04-17".to_string()), dec!(4.2879));
+ exchange_rates.insert(Exchange::USD("2015-11-24".to_string()), dec!(4.0021));
+ exchange_rates.insert(Exchange::EUR("2025-07-31".to_string()), dec!(4.2661));
+ exchange_rates.insert(Exchange::USD("2014-04-28".to_string()), dec!(3.0368));
+ exchange_rates.insert(Exchange::USD("2012-09-17".to_string()), dec!(3.1207));
+ exchange_rates.insert(Exchange::USD("2017-02-16".to_string()), dec!(4.0567));
+ exchange_rates.insert(Exchange::EUR("2025-08-14".to_string()), dec!(4.2639));
+ exchange_rates.insert(Exchange::USD("2016-10-05".to_string()), dec!(3.8307));
+ exchange_rates.insert(Exchange::USD("2020-06-01".to_string()), dec!(3.968));
+ exchange_rates.insert(Exchange::USD("2024-07-26".to_string()), dec!(3.9415));
+ exchange_rates.insert(Exchange::USD("2019-02-27".to_string()), dec!(3.7886));
+ exchange_rates.insert(Exchange::USD("2016-09-01".to_string()), dec!(3.9116));
+ exchange_rates.insert(Exchange::USD("2016-06-06".to_string()), dec!(3.8602));
+ exchange_rates.insert(Exchange::USD("2014-04-14".to_string()), dec!(3.0288));
+ exchange_rates.insert(Exchange::EUR("2024-08-28".to_string()), dec!(4.2938));
+ exchange_rates.insert(Exchange::USD("2024-08-08".to_string()), dec!(3.952));
+ exchange_rates.insert(Exchange::USD("2025-04-28".to_string()), dec!(3.7701));
+ exchange_rates.insert(Exchange::USD("2024-04-09".to_string()), dec!(3.9223));
+ exchange_rates.insert(Exchange::USD("2016-11-02".to_string()), dec!(3.8954));
+ exchange_rates.insert(Exchange::USD("2014-07-03".to_string()), dec!(3.0418));
+ exchange_rates.insert(Exchange::USD("2023-01-24".to_string()), dec!(4.3341));
+ exchange_rates.insert(Exchange::USD("2015-01-14".to_string()), dec!(3.6525));
+ exchange_rates.insert(Exchange::USD("2023-09-12".to_string()), dec!(4.3711));
+ exchange_rates.insert(Exchange::USD("2016-10-24".to_string()), dec!(3.969));
+ exchange_rates.insert(Exchange::USD("2023-04-21".to_string()), dec!(4.2006));
+ exchange_rates.insert(Exchange::USD("2024-03-20".to_string()), dec!(3.9895));
+ exchange_rates.insert(Exchange::USD("2017-06-09".to_string()), dec!(3.7465));
+ exchange_rates.insert(Exchange::USD("2018-03-26".to_string()), dec!(3.4145));
+ exchange_rates.insert(Exchange::EUR("2024-04-29".to_string()), dec!(4.319));
+ exchange_rates.insert(Exchange::USD("2024-10-09".to_string()), dec!(3.9266));
+ exchange_rates.insert(Exchange::USD("2021-09-17".to_string()), dec!(3.8882));
+ exchange_rates.insert(Exchange::USD("2014-09-25".to_string()), dec!(3.2823));
+ exchange_rates.insert(Exchange::USD("2016-01-26".to_string()), dec!(4.1475));
+ exchange_rates.insert(Exchange::USD("2012-09-14".to_string()), dec!(3.1131));
+ exchange_rates.insert(Exchange::USD("2021-02-16".to_string()), dec!(3.694));
+ exchange_rates.insert(Exchange::USD("2014-04-02".to_string()), dec!(3.0288));
+ exchange_rates.insert(Exchange::USD("2014-12-18".to_string()), dec!(3.4428));
+ exchange_rates.insert(Exchange::USD("2012-06-22".to_string()), dec!(3.4025));
+ exchange_rates.insert(Exchange::USD("2017-10-10".to_string()), dec!(3.6468));
+ exchange_rates.insert(Exchange::EUR("2023-10-13".to_string()), dec!(4.5417));
+ exchange_rates.insert(Exchange::USD("2025-02-20".to_string()), dec!(3.9974));
+ exchange_rates.insert(Exchange::EUR("2025-11-05".to_string()), dec!(4.2597));
+ exchange_rates.insert(Exchange::EUR("2023-03-13".to_string()), dec!(4.6848));
+ exchange_rates.insert(Exchange::USD("2013-10-22".to_string()), dec!(3.0564));
+ exchange_rates.insert(Exchange::USD("2023-11-07".to_string()), dec!(4.1667));
+ exchange_rates.insert(Exchange::USD("2018-11-07".to_string()), dec!(3.7398));
+ exchange_rates.insert(Exchange::USD("2022-12-02".to_string()), dec!(4.4492));
+ exchange_rates.insert(Exchange::USD("2015-01-16".to_string()), dec!(3.7174));
+ exchange_rates.insert(Exchange::USD("2013-11-27".to_string()), dec!(3.0899));
+ exchange_rates.insert(Exchange::USD("2020-03-20".to_string()), dec!(4.24));
+ exchange_rates.insert(Exchange::USD("2018-11-29".to_string()), dec!(3.7728));
+ exchange_rates.insert(Exchange::USD("2019-12-05".to_string()), dec!(3.8566));
+ exchange_rates.insert(Exchange::USD("2017-01-05".to_string()), dec!(4.1667));
+ exchange_rates.insert(Exchange::EUR("2024-06-11".to_string()), dec!(4.3456));
+ exchange_rates.insert(Exchange::USD("2020-01-03".to_string()), dec!(3.8213));
+ exchange_rates.insert(Exchange::USD("2020-10-19".to_string()), dec!(3.8761));
+ exchange_rates.insert(Exchange::EUR("2024-05-09".to_string()), dec!(4.2993));
+ exchange_rates.insert(Exchange::USD("2019-12-09".to_string()), dec!(3.8704));
+ exchange_rates.insert(Exchange::USD("2022-03-30".to_string()), dec!(4.1688));
+ exchange_rates.insert(Exchange::USD("2020-01-08".to_string()), dec!(3.8123));
+ exchange_rates.insert(Exchange::USD("2015-11-25".to_string()), dec!(4.0215));
+ exchange_rates.insert(Exchange::USD("2015-02-23".to_string()), dec!(3.6933));
+ exchange_rates.insert(Exchange::USD("2025-06-24".to_string()), dec!(3.6753));
+ exchange_rates.insert(Exchange::EUR("2025-01-13".to_string()), dec!(4.2715));
+ exchange_rates.insert(Exchange::USD("2023-05-04".to_string()), dec!(4.1547));
+ exchange_rates.insert(Exchange::USD("2024-09-10".to_string()), dec!(3.8798));
+ exchange_rates.insert(Exchange::EUR("2023-01-24".to_string()), dec!(4.7073));
+ exchange_rates.insert(Exchange::USD("2012-09-21".to_string()), dec!(3.1712));
+ exchange_rates.insert(Exchange::USD("2025-11-13".to_string()), dec!(3.6417));
+ exchange_rates.insert(Exchange::USD("2016-02-10".to_string()), dec!(3.9383));
+ exchange_rates.insert(Exchange::USD("2022-05-05".to_string()), dec!(4.4017));
+ exchange_rates.insert(Exchange::USD("2013-05-27".to_string()), dec!(3.2416));
+ exchange_rates.insert(Exchange::EUR("2024-06-21".to_string()), dec!(4.3331));
+ exchange_rates.insert(Exchange::EUR("2025-03-10".to_string()), dec!(4.1857));
+ exchange_rates.insert(Exchange::USD("2017-05-08".to_string()), dec!(3.8391));
+ exchange_rates.insert(Exchange::USD("2014-04-04".to_string()), dec!(3.0397));
+ exchange_rates.insert(Exchange::USD("2015-08-10".to_string()), dec!(3.8246));
+ exchange_rates.insert(Exchange::USD("2020-02-11".to_string()), dec!(3.9041));
+ exchange_rates.insert(Exchange::USD("2020-10-28".to_string()), dec!(3.9313));
+ exchange_rates.insert(Exchange::USD("2014-06-06".to_string()), dec!(3.0222));
+ exchange_rates.insert(Exchange::USD("2022-06-23".to_string()), dec!(4.4881));
+ exchange_rates.insert(Exchange::USD("2021-07-26".to_string()), dec!(3.8915));
+ exchange_rates.insert(Exchange::EUR("2025-01-28".to_string()), dec!(4.2092));
+ exchange_rates.insert(Exchange::USD("2019-11-12".to_string()), dec!(3.878));
+ exchange_rates.insert(Exchange::EUR("2023-04-25".to_string()), dec!(4.598));
+ exchange_rates.insert(Exchange::EUR("2024-11-18".to_string()), dec!(4.332));
+ exchange_rates.insert(Exchange::USD("2023-11-28".to_string()), dec!(3.975));
+ exchange_rates.insert(Exchange::USD("2020-03-16".to_string()), dec!(3.9231));
+ exchange_rates.insert(Exchange::EUR("2024-11-13".to_string()), dec!(4.3416));
+ exchange_rates.insert(Exchange::EUR("2023-08-11".to_string()), dec!(4.4547));
+ exchange_rates.insert(Exchange::USD("2020-08-13".to_string()), dec!(3.7176));
+ exchange_rates.insert(Exchange::USD("2015-11-16".to_string()), dec!(3.9581));
+ exchange_rates.insert(Exchange::EUR("2024-11-29".to_string()), dec!(4.3043));
+ exchange_rates.insert(Exchange::USD("2021-03-26".to_string()), dec!(3.9307));
+ exchange_rates.insert(Exchange::USD("2021-10-11".to_string()), dec!(3.9862));
+ exchange_rates.insert(Exchange::USD("2016-01-20".to_string()), dec!(4.0877));
+ exchange_rates.insert(Exchange::USD("2015-05-06".to_string()), dec!(3.6116));
+ exchange_rates.insert(Exchange::USD("2014-02-13".to_string()), dec!(3.0532));
+ exchange_rates.insert(Exchange::USD("2018-03-02".to_string()), dec!(3.42));
+ exchange_rates.insert(Exchange::USD("2023-05-19".to_string()), dec!(4.2053));
+ exchange_rates.insert(Exchange::USD("2021-08-25".to_string()), dec!(3.8869));
+ exchange_rates.insert(Exchange::EUR("2025-07-18".to_string()), dec!(4.2509));
+ exchange_rates.insert(Exchange::EUR("2024-01-15".to_string()), dec!(4.3748));
+ exchange_rates.insert(Exchange::USD("2024-02-14".to_string()), dec!(4.0593));
+ exchange_rates.insert(Exchange::USD("2022-05-23".to_string()), dec!(4.3369));
+ exchange_rates.insert(Exchange::USD("2012-11-26".to_string()), dec!(3.1744));
+ exchange_rates.insert(Exchange::USD("2017-05-25".to_string()), dec!(3.7177));
+ exchange_rates.insert(Exchange::USD("2017-12-08".to_string()), dec!(3.5808));
+ exchange_rates.insert(Exchange::EUR("2025-12-10".to_string()), dec!(4.2274));
+ exchange_rates.insert(Exchange::USD("2014-11-03".to_string()), dec!(3.3772));
+ exchange_rates.insert(Exchange::USD("2020-06-25".to_string()), dec!(3.9623));
+ exchange_rates.insert(Exchange::USD("2018-11-06".to_string()), dec!(3.7802));
+ exchange_rates.insert(Exchange::USD("2025-07-14".to_string()), dec!(3.6475));
+ exchange_rates.insert(Exchange::USD("2024-10-29".to_string()), dec!(4.0251));
+ exchange_rates.insert(Exchange::USD("2019-04-01".to_string()), dec!(3.8267));
+ exchange_rates.insert(Exchange::USD("2023-08-23".to_string()), dec!(4.1438));
+ exchange_rates.insert(Exchange::USD("2025-09-30".to_string()), dec!(3.6315));
+ exchange_rates.insert(Exchange::USD("2022-12-30".to_string()), dec!(4.4018));
+ exchange_rates.insert(Exchange::EUR("2023-08-17".to_string()), dec!(4.4681));
+ exchange_rates.insert(Exchange::USD("2015-03-27".to_string()), dec!(3.789));
+ exchange_rates.insert(Exchange::USD("2019-04-30".to_string()), dec!(3.8291));
+ exchange_rates.insert(Exchange::USD("2025-01-31".to_string()), dec!(4.0576));
+ exchange_rates.insert(Exchange::USD("2024-02-13".to_string()), dec!(4.0136));
+ exchange_rates.insert(Exchange::USD("2020-09-01".to_string()), dec!(3.6707));
+ exchange_rates.insert(Exchange::USD("2019-09-19".to_string()), dec!(3.9267));
+ exchange_rates.insert(Exchange::USD("2020-01-29".to_string()), dec!(3.8871));
+ exchange_rates.insert(Exchange::USD("2023-07-07".to_string()), dec!(4.1189));
+ exchange_rates.insert(Exchange::USD("2017-10-16".to_string()), dec!(3.6004));
+ exchange_rates.insert(Exchange::USD("2019-04-08".to_string()), dec!(3.8188));
+ exchange_rates.insert(Exchange::EUR("2024-07-17".to_string()), dec!(4.2904));
+ exchange_rates.insert(Exchange::USD("2020-05-20".to_string()), dec!(4.1619));
+ exchange_rates.insert(Exchange::EUR("2023-10-11".to_string()), dec!(4.5183));
+ exchange_rates.insert(Exchange::USD("2018-08-03".to_string()), dec!(3.6926));
+ exchange_rates.insert(Exchange::USD("2019-07-18".to_string()), dec!(3.7933));
+ exchange_rates.insert(Exchange::USD("2024-09-03".to_string()), dec!(3.8701));
+ exchange_rates.insert(Exchange::USD("2016-04-28".to_string()), dec!(3.8695));
+ exchange_rates.insert(Exchange::USD("2022-05-25".to_string()), dec!(4.3069));
+ exchange_rates.insert(Exchange::USD("2021-05-27".to_string()), dec!(3.6929));
+ exchange_rates.insert(Exchange::USD("2023-11-15".to_string()), dec!(4.0453));
+ exchange_rates.insert(Exchange::USD("2019-02-07".to_string()), dec!(3.7919));
+ exchange_rates.insert(Exchange::EUR("2025-07-04".to_string()), dec!(4.2515));
+ exchange_rates.insert(Exchange::USD("2025-06-30".to_string()), dec!(3.6164));
+ exchange_rates.insert(Exchange::USD("2012-02-07".to_string()), dec!(3.1806));
+ exchange_rates.insert(Exchange::USD("2012-03-21".to_string()), dec!(3.1173));
+ exchange_rates.insert(Exchange::USD("2014-07-15".to_string()), dec!(3.0454));
+ exchange_rates.insert(Exchange::USD("2014-01-02".to_string()), dec!(3.0315));
+ exchange_rates.insert(Exchange::USD("2018-11-08".to_string()), dec!(3.7599));
+ exchange_rates.insert(Exchange::USD("2021-03-08".to_string()), dec!(3.8665));
+ exchange_rates.insert(Exchange::USD("2025-05-23".to_string()), dec!(3.7506));
+ exchange_rates.insert(Exchange::USD("2017-06-05".to_string()), dec!(3.7066));
+ exchange_rates.insert(Exchange::USD("2023-12-21".to_string()), dec!(3.9645));
+ exchange_rates.insert(Exchange::USD("2021-11-02".to_string()), dec!(3.9772));
+ exchange_rates.insert(Exchange::USD("2020-11-17".to_string()), dec!(3.7877));
+ exchange_rates.insert(Exchange::USD("2025-09-16".to_string()), dec!(3.6034));
+ exchange_rates.insert(Exchange::USD("2025-08-12".to_string()), dec!(3.6702));
+ exchange_rates.insert(Exchange::USD("2019-07-01".to_string()), dec!(3.743));
+ exchange_rates.insert(Exchange::USD("2018-01-15".to_string()), dec!(3.401));
+ exchange_rates.insert(Exchange::USD("2017-09-22".to_string()), dec!(3.5651));
+ exchange_rates.insert(Exchange::USD("2016-01-12".to_string()), dec!(4.017));
+ exchange_rates.insert(Exchange::USD("2017-03-08".to_string()), dec!(4.0818));
+ exchange_rates.insert(Exchange::USD("2014-08-08".to_string()), dec!(3.1509));
+ exchange_rates.insert(Exchange::USD("2012-04-30".to_string()), dec!(3.1509));
+ exchange_rates.insert(Exchange::EUR("2023-05-29".to_string()), dec!(4.5294));
+ exchange_rates.insert(Exchange::USD("2020-10-26".to_string()), dec!(3.8759));
+ exchange_rates.insert(Exchange::EUR("2024-12-31".to_string()), dec!(4.273));
+ exchange_rates.insert(Exchange::USD("2016-03-18".to_string()), dec!(3.7882));
+ exchange_rates.insert(Exchange::EUR("2025-08-19".to_string()), dec!(4.242));
+ exchange_rates.insert(Exchange::EUR("2024-04-04".to_string()), dec!(4.2921));
+ exchange_rates.insert(Exchange::EUR("2024-12-12".to_string()), dec!(4.2818));
+ exchange_rates.insert(Exchange::USD("2016-07-07".to_string()), dec!(4.0036));
+ exchange_rates.insert(Exchange::USD("2016-02-04".to_string()), dec!(3.9492));
+ exchange_rates.insert(Exchange::EUR("2024-05-27".to_string()), dec!(4.2528));
+ exchange_rates.insert(Exchange::USD("2024-05-20".to_string()), dec!(3.9149));
+ exchange_rates.insert(Exchange::USD("2015-04-01".to_string()), dec!(3.789));
+ exchange_rates.insert(Exchange::USD("2025-12-01".to_string()), dec!(3.6383));
+ exchange_rates.insert(Exchange::EUR("2024-11-07".to_string()), dec!(4.3431));
+ exchange_rates.insert(Exchange::USD("2022-04-28".to_string()), dec!(4.4613));
+ exchange_rates.insert(Exchange::USD("2020-04-30".to_string()), dec!(4.1729));
+ exchange_rates.insert(Exchange::USD("2020-07-09".to_string()), dec!(3.9486));
+ exchange_rates.insert(Exchange::USD("2019-01-08".to_string()), dec!(3.7559));
+ exchange_rates.insert(Exchange::USD("2015-03-05".to_string()), dec!(3.7525));
+ exchange_rates.insert(Exchange::USD("2012-05-16".to_string()), dec!(3.4353));
+ exchange_rates.insert(Exchange::EUR("2025-09-24".to_string()), dec!(4.2676));
+ exchange_rates.insert(Exchange::USD("2014-12-12".to_string()), dec!(3.3639));
+ exchange_rates.insert(Exchange::USD("2021-08-03".to_string()), dec!(3.8315));
+ exchange_rates.insert(Exchange::USD("2022-01-14".to_string()), dec!(3.9597));
+ exchange_rates.insert(Exchange::USD("2016-07-06".to_string()), dec!(4.0225));
+ exchange_rates.insert(Exchange::USD("2015-11-05".to_string()), dec!(3.8925));
+ exchange_rates.insert(Exchange::USD("2014-10-07".to_string()), dec!(3.3106));
+ exchange_rates.insert(Exchange::USD("2014-12-08".to_string()), dec!(3.3978));
+ exchange_rates.insert(Exchange::USD("2023-11-21".to_string()), dec!(3.9882));
+ exchange_rates.insert(Exchange::USD("2017-04-20".to_string()), dec!(3.9588));
+ exchange_rates.insert(Exchange::USD("2020-06-08".to_string()), dec!(3.9197));
+ exchange_rates.insert(Exchange::EUR("2023-05-31".to_string()), dec!(4.5376));
+ exchange_rates.insert(Exchange::USD("2017-12-05".to_string()), dec!(3.5454));
+ exchange_rates.insert(Exchange::EUR("2024-01-22".to_string()), dec!(4.356));
+ exchange_rates.insert(Exchange::USD("2016-06-10".to_string()), dec!(3.8545));
+ exchange_rates.insert(Exchange::USD("2023-10-10".to_string()), dec!(4.2985));
+ exchange_rates.insert(Exchange::USD("2017-06-08".to_string()), dec!(3.74));
+ exchange_rates.insert(Exchange::USD("2017-09-12".to_string()), dec!(3.5552));
+ exchange_rates.insert(Exchange::USD("2023-08-07".to_string()), dec!(4.0347));
+ exchange_rates.insert(Exchange::USD("2016-06-14".to_string()), dec!(3.9483));
+ exchange_rates.insert(Exchange::USD("2022-11-23".to_string()), dec!(4.548));
+ exchange_rates.insert(Exchange::EUR("2023-11-02".to_string()), dec!(4.4582));
+ exchange_rates.insert(Exchange::USD("2016-04-22".to_string()), dec!(3.8399));
+ exchange_rates.insert(Exchange::USD("2021-08-26".to_string()), dec!(3.8912));
+ exchange_rates.insert(Exchange::USD("2020-07-20".to_string()), dec!(3.8997));
+ exchange_rates.insert(Exchange::EUR("2023-08-24".to_string()), dec!(4.473));
+ exchange_rates.insert(Exchange::USD("2019-03-20".to_string()), dec!(3.7767));
+ exchange_rates.insert(Exchange::USD("2016-08-17".to_string()), dec!(3.8075));
+ exchange_rates.insert(Exchange::EUR("2023-01-30".to_string()), dec!(4.716));
+ exchange_rates.insert(Exchange::USD("2020-03-10".to_string()), dec!(3.8058));
+ exchange_rates.insert(Exchange::USD("2023-07-18".to_string()), dec!(3.9451));
+ exchange_rates.insert(Exchange::USD("2017-08-29".to_string()), dec!(3.5372));
+ exchange_rates.insert(Exchange::USD("2018-07-06".to_string()), dec!(3.7222));
+ exchange_rates.insert(Exchange::USD("2018-05-21".to_string()), dec!(3.6615));
+ exchange_rates.insert(Exchange::USD("2015-03-20".to_string()), dec!(3.8645));
+ exchange_rates.insert(Exchange::USD("2014-10-17".to_string()), dec!(3.2964));
+ exchange_rates.insert(Exchange::EUR("2025-05-07".to_string()), dec!(4.2757));
+ exchange_rates.insert(Exchange::EUR("2025-05-12".to_string()), dec!(4.2337));
+ exchange_rates.insert(Exchange::USD("2016-11-28".to_string()), dec!(4.1521));
+ exchange_rates.insert(Exchange::USD("2019-07-09".to_string()), dec!(3.8074));
+ exchange_rates.insert(Exchange::EUR("2025-08-21".to_string()), dec!(4.2521));
+ exchange_rates.insert(Exchange::USD("2019-11-28".to_string()), dec!(3.9252));
+ exchange_rates.insert(Exchange::USD("2021-06-29".to_string()), dec!(3.7914));
+ exchange_rates.insert(Exchange::USD("2020-07-22".to_string()), dec!(3.8534));
+ exchange_rates.insert(Exchange::USD("2025-01-16".to_string()), dec!(4.1433));
+ exchange_rates.insert(Exchange::USD("2013-09-20".to_string()), dec!(3.1152));
+ exchange_rates.insert(Exchange::USD("2019-05-28".to_string()), dec!(3.8386));
+ exchange_rates.insert(Exchange::USD("2017-01-20".to_string()), dec!(4.1005));
+ exchange_rates.insert(Exchange::USD("2021-04-20".to_string()), dec!(3.7737));
+ exchange_rates.insert(Exchange::USD("2018-08-24".to_string()), dec!(3.7014));
+ exchange_rates.insert(Exchange::USD("2025-09-18".to_string()), dec!(3.5986));
+ exchange_rates.insert(Exchange::USD("2013-06-17".to_string()), dec!(3.1719));
+ exchange_rates.insert(Exchange::USD("2020-12-24".to_string()), dec!(3.6981));
+ exchange_rates.insert(Exchange::USD("2019-09-03".to_string()), dec!(3.9882));
+ exchange_rates.insert(Exchange::USD("2018-04-20".to_string()), dec!(3.3881));
+ exchange_rates.insert(Exchange::USD("2017-05-05".to_string()), dec!(3.849));
+ exchange_rates.insert(Exchange::USD("2020-01-24".to_string()), dec!(3.8475));
+ exchange_rates.insert(Exchange::USD("2012-08-09".to_string()), dec!(3.2915));
+ exchange_rates.insert(Exchange::USD("2015-03-04".to_string()), dec!(3.7485));
+ exchange_rates.insert(Exchange::USD("2015-04-03".to_string()), dec!(3.7449));
+ exchange_rates.insert(Exchange::USD("2015-12-02".to_string()), dec!(4.0305));
+ exchange_rates.insert(Exchange::USD("2025-03-10".to_string()), dec!(3.8573));
+ exchange_rates.insert(Exchange::USD("2020-11-20".to_string()), dec!(3.7677));
+ exchange_rates.insert(Exchange::USD("2018-05-24".to_string()), dec!(3.659));
+ exchange_rates.insert(Exchange::EUR("2023-10-17".to_string()), dec!(4.4389));
+ exchange_rates.insert(Exchange::USD("2013-06-20".to_string()), dec!(3.2693));
+ exchange_rates.insert(Exchange::USD("2019-04-16".to_string()), dec!(3.7802));
+ exchange_rates.insert(Exchange::USD("2014-03-21".to_string()), dec!(3.0425));
+ exchange_rates.insert(Exchange::EUR("2023-04-11".to_string()), dec!(4.681));
+ exchange_rates.insert(Exchange::EUR("2024-06-28".to_string()), dec!(4.313));
+ exchange_rates.insert(Exchange::USD("2017-08-28".to_string()), dec!(3.5736));
+ exchange_rates.insert(Exchange::USD("2015-07-01".to_string()), dec!(3.7625));
+ exchange_rates.insert(Exchange::USD("2015-11-27".to_string()), dec!(4.0333));
+ exchange_rates.insert(Exchange::USD("2018-10-02".to_string()), dec!(3.7326));
+ exchange_rates.insert(Exchange::USD("2016-01-13".to_string()), dec!(4.0068));
+ exchange_rates.insert(Exchange::USD("2020-02-28".to_string()), dec!(3.9255));
+ exchange_rates.insert(Exchange::USD("2016-09-26".to_string()), dec!(3.8324));
+ exchange_rates.insert(Exchange::USD("2015-09-30".to_string()), dec!(3.7754));
+ exchange_rates.insert(Exchange::EUR("2025-07-11".to_string()), dec!(4.2563));
+ exchange_rates.insert(Exchange::USD("2023-09-26".to_string()), dec!(4.3485));
+ exchange_rates.insert(Exchange::USD("2015-06-12".to_string()), dec!(3.7094));
+ exchange_rates.insert(Exchange::USD("2019-10-29".to_string()), dec!(3.8598));
+ exchange_rates.insert(Exchange::USD("2018-03-12".to_string()), dec!(3.4066));
+ exchange_rates.insert(Exchange::USD("2016-07-13".to_string()), dec!(3.9809));
+ exchange_rates.insert(Exchange::USD("2012-08-27".to_string()), dec!(3.257));
+ exchange_rates.insert(Exchange::USD("2020-05-14".to_string()), dec!(4.2269));
+ exchange_rates.insert(Exchange::USD("2017-06-22".to_string()), dec!(3.8002));
+ exchange_rates.insert(Exchange::USD("2016-04-20".to_string()), dec!(3.7842));
+ exchange_rates.insert(Exchange::USD("2019-10-08".to_string()), dec!(3.9405));
+ exchange_rates.insert(Exchange::USD("2022-01-27".to_string()), dec!(4.083));
+ exchange_rates.insert(Exchange::USD("2012-09-25".to_string()), dec!(3.2136));
+ exchange_rates.insert(Exchange::USD("2012-05-29".to_string()), dec!(3.4675));
+ exchange_rates.insert(Exchange::USD("2018-12-03".to_string()), dec!(3.7672));
+ exchange_rates.insert(Exchange::USD("2024-04-02".to_string()), dec!(4.0009));
+ exchange_rates.insert(Exchange::USD("2014-02-18".to_string()), dec!(3.03));
+ exchange_rates.insert(Exchange::USD("2019-10-01".to_string()), dec!(4.0147));
+ exchange_rates.insert(Exchange::USD("2016-09-02".to_string()), dec!(3.9164));
+ exchange_rates.insert(Exchange::EUR("2023-01-17".to_string()), dec!(4.6946));
+ exchange_rates.insert(Exchange::EUR("2024-08-27".to_string()), dec!(4.2802));
+ exchange_rates.insert(Exchange::USD("2016-02-15".to_string()), dec!(3.922));
+ exchange_rates.insert(Exchange::USD("2021-08-09".to_string()), dec!(3.8885));
+ exchange_rates.insert(Exchange::USD("2023-12-12".to_string()), dec!(4.0204));
+ exchange_rates.insert(Exchange::EUR("2025-10-24".to_string()), dec!(4.2353));
+ exchange_rates.insert(Exchange::USD("2014-03-07".to_string()), dec!(3.0185));
+ exchange_rates.insert(Exchange::USD("2025-12-04".to_string()), dec!(3.6221));
+ exchange_rates.insert(Exchange::USD("2024-08-30".to_string()), dec!(3.8644));
+ exchange_rates.insert(Exchange::USD("2020-09-15".to_string()), dec!(3.7445));
+ exchange_rates.insert(Exchange::USD("2016-02-01".to_string()), dec!(4.0638));
+ exchange_rates.insert(Exchange::USD("2024-03-25".to_string()), dec!(3.9833));
+ exchange_rates.insert(Exchange::USD("2012-11-19".to_string()), dec!(3.2503));
+ exchange_rates.insert(Exchange::USD("2013-07-11".to_string()), dec!(3.3225));
+ exchange_rates.insert(Exchange::EUR("2024-03-01".to_string()), dec!(4.3176));
+ exchange_rates.insert(Exchange::USD("2018-05-29".to_string()), dec!(3.7299));
+ exchange_rates.insert(Exchange::USD("2016-04-08".to_string()), dec!(3.7701));
+ exchange_rates.insert(Exchange::USD("2018-05-18".to_string()), dec!(3.6385));
+ exchange_rates.insert(Exchange::USD("2016-04-06".to_string()), dec!(3.751));
+ exchange_rates.insert(Exchange::USD("2019-04-29".to_string()), dec!(3.8468));
+ exchange_rates.insert(Exchange::USD("2023-04-25".to_string()), dec!(4.1649));
+ exchange_rates.insert(Exchange::USD("2015-06-26".to_string()), dec!(3.7275));
+ exchange_rates.insert(Exchange::USD("2021-03-11".to_string()), dec!(3.8287));
+ exchange_rates.insert(Exchange::USD("2017-01-03".to_string()), dec!(4.2271));
+ exchange_rates.insert(Exchange::USD("2019-07-19".to_string()), dec!(3.7855));
+ exchange_rates.insert(Exchange::USD("2025-07-18".to_string()), dec!(3.6535));
+ exchange_rates.insert(Exchange::USD("2017-05-23".to_string()), dec!(3.7354));
+ exchange_rates.insert(Exchange::EUR("2024-12-24".to_string()), dec!(4.2739));
+ exchange_rates.insert(Exchange::EUR("2024-06-25".to_string()), dec!(4.2909));
+ exchange_rates.insert(Exchange::USD("2020-06-12".to_string()), dec!(3.9299));
+ exchange_rates.insert(Exchange::USD("2020-08-25".to_string()), dec!(3.7144));
+ exchange_rates.insert(Exchange::EUR("2023-11-07".to_string()), dec!(4.4513));
+ exchange_rates.insert(Exchange::USD("2021-08-10".to_string()), dec!(3.8937));
+ exchange_rates.insert(Exchange::EUR("2024-08-16".to_string()), dec!(4.2732));
+ exchange_rates.insert(Exchange::USD("2025-10-16".to_string()), dec!(3.6467));
+ exchange_rates.insert(Exchange::EUR("2025-02-07".to_string()), dec!(4.1898));
+ exchange_rates.insert(Exchange::USD("2012-06-04".to_string()), dec!(3.5431));
+ exchange_rates.insert(Exchange::USD("2013-06-03".to_string()), dec!(3.2865));
+ exchange_rates.insert(Exchange::USD("2021-06-30".to_string()), dec!(3.8035));
+ exchange_rates.insert(Exchange::USD("2020-12-22".to_string()), dec!(3.6921));
+ exchange_rates.insert(Exchange::USD("2021-02-04".to_string()), dec!(3.7509));
+ exchange_rates.insert(Exchange::USD("2012-01-18".to_string()), dec!(3.4));
+ exchange_rates.insert(Exchange::USD("2023-06-26".to_string()), dec!(4.0669));
+ exchange_rates.insert(Exchange::USD("2013-02-19".to_string()), dec!(3.136));
+ exchange_rates.insert(Exchange::USD("2012-03-02".to_string()), dec!(3.1023));
+ exchange_rates.insert(Exchange::USD("2013-11-19".to_string()), dec!(3.0925));
+ exchange_rates.insert(Exchange::USD("2025-10-22".to_string()), dec!(3.6591));
+ exchange_rates.insert(Exchange::USD("2019-02-22".to_string()), dec!(3.8242));
+ exchange_rates.insert(Exchange::USD("2018-10-22".to_string()), dec!(3.7273));
+ exchange_rates.insert(Exchange::USD("2014-06-13".to_string()), dec!(3.0382));
+ exchange_rates.insert(Exchange::USD("2014-07-02".to_string()), dec!(3.0387));
+ exchange_rates.insert(Exchange::USD("2022-08-31".to_string()), dec!(4.736));
+ exchange_rates.insert(Exchange::USD("2013-09-05".to_string()), dec!(3.2463));
+ exchange_rates.insert(Exchange::USD("2012-04-03".to_string()), dec!(3.099));
+ exchange_rates.insert(Exchange::USD("2025-01-27".to_string()), dec!(4.021));
+ exchange_rates.insert(Exchange::USD("2014-12-19".to_string()), dec!(3.4791));
+ exchange_rates.insert(Exchange::USD("2022-05-04".to_string()), dec!(4.4456));
+ exchange_rates.insert(Exchange::USD("2019-12-17".to_string()), dec!(3.8211));
+ exchange_rates.insert(Exchange::USD("2014-02-21".to_string()), dec!(3.0389));
+ exchange_rates.insert(Exchange::USD("2018-08-21".to_string()), dec!(3.7375));
+ exchange_rates.insert(Exchange::USD("2025-04-02".to_string()), dec!(3.8707));
+ exchange_rates.insert(Exchange::USD("2017-03-07".to_string()), dec!(4.0803));
+ exchange_rates.insert(Exchange::EUR("2023-11-10".to_string()), dec!(4.4227));
+ exchange_rates.insert(Exchange::USD("2024-02-20".to_string()), dec!(3.9994));
+ exchange_rates.insert(Exchange::USD("2013-09-26".to_string()), dec!(3.1277));
+ exchange_rates.insert(Exchange::USD("2013-02-15".to_string()), dec!(3.1398));
+ exchange_rates.insert(Exchange::USD("2022-11-10".to_string()), dec!(4.7328));
+ exchange_rates.insert(Exchange::EUR("2025-07-25".to_string()), dec!(4.2544));
+ exchange_rates.insert(Exchange::USD("2023-12-18".to_string()), dec!(3.9625));
+ exchange_rates.insert(Exchange::USD("2023-10-04".to_string()), dec!(4.4155));
+ exchange_rates.insert(Exchange::USD("2020-12-07".to_string()), dec!(3.7001));
+ exchange_rates.insert(Exchange::USD("2016-02-12".to_string()), dec!(3.9074));
+ exchange_rates.insert(Exchange::EUR("2024-07-16".to_string()), dec!(4.2604));
+ exchange_rates.insert(Exchange::USD("2021-06-02".to_string()), dec!(3.6659));
+ exchange_rates.insert(Exchange::USD("2019-09-23".to_string()), dec!(3.9983));
+ exchange_rates.insert(Exchange::EUR("2025-07-28".to_string()), dec!(4.2565));
+ exchange_rates.insert(Exchange::USD("2021-08-13".to_string()), dec!(3.8934));
+ exchange_rates.insert(Exchange::USD("2018-03-09".to_string()), dec!(3.4132));
+ exchange_rates.insert(Exchange::EUR("2024-04-24".to_string()), dec!(4.3177));
+ exchange_rates.insert(Exchange::USD("2024-09-25".to_string()), dec!(3.8117));
+ exchange_rates.insert(Exchange::USD("2019-08-06".to_string()), dec!(3.8482));
+ exchange_rates.insert(Exchange::USD("2019-11-05".to_string()), dec!(3.8308));
+ exchange_rates.insert(Exchange::USD("2021-05-25".to_string()), dec!(3.6549));
+ exchange_rates.insert(Exchange::USD("2012-03-28".to_string()), dec!(3.11));
+ exchange_rates.insert(Exchange::USD("2018-02-26".to_string()), dec!(3.3799));
+ exchange_rates.insert(Exchange::USD("2012-06-08".to_string()), dec!(3.4566));
+ exchange_rates.insert(Exchange::EUR("2023-04-17".to_string()), dec!(4.6341));
+ exchange_rates.insert(Exchange::USD("2024-02-21".to_string()), dec!(3.9966));
+ exchange_rates.insert(Exchange::EUR("2025-05-02".to_string()), dec!(4.275));
+ exchange_rates.insert(Exchange::USD("2024-10-31".to_string()), dec!(4.0059));
+ exchange_rates.insert(Exchange::EUR("2024-11-08".to_string()), dec!(4.3244));
+ exchange_rates.insert(Exchange::USD("2020-03-12".to_string()), dec!(3.8642));
+ exchange_rates.insert(Exchange::USD("2022-12-28".to_string()), dec!(4.4127));
+ exchange_rates.insert(Exchange::USD("2014-01-22".to_string()), dec!(3.0761));
+ exchange_rates.insert(Exchange::USD("2023-09-07".to_string()), dec!(4.289));
+ exchange_rates.insert(Exchange::USD("2024-12-18".to_string()), dec!(4.0621));
+ exchange_rates.insert(Exchange::USD("2018-01-05".to_string()), dec!(3.4488));
+ exchange_rates.insert(Exchange::USD("2021-05-12".to_string()), dec!(3.7456));
+ exchange_rates.insert(Exchange::USD("2017-01-12".to_string()), dec!(4.1103));
+ exchange_rates.insert(Exchange::USD("2017-02-10".to_string()), dec!(4.0435));
+ exchange_rates.insert(Exchange::USD("2012-02-06".to_string()), dec!(3.2084));
+ exchange_rates.insert(Exchange::USD("2021-03-04".to_string()), dec!(3.7851));
+ exchange_rates.insert(Exchange::USD("2015-02-04".to_string()), dec!(3.644));
+ exchange_rates.insert(Exchange::EUR("2024-03-05".to_string()), dec!(4.3228));
+ exchange_rates.insert(Exchange::USD("2017-06-27".to_string()), dec!(3.7442));
+ exchange_rates.insert(Exchange::USD("2020-12-31".to_string()), dec!(3.7584));
+ exchange_rates.insert(Exchange::USD("2012-07-25".to_string()), dec!(3.4719));
+ exchange_rates.insert(Exchange::USD("2019-11-14".to_string()), dec!(3.9011));
+ exchange_rates.insert(Exchange::USD("2023-02-14".to_string()), dec!(4.4463));
+ exchange_rates.insert(Exchange::USD("2019-10-31".to_string()), dec!(3.8174));
+ exchange_rates.insert(Exchange::USD("2025-12-22".to_string()), dec!(3.5904));
+ exchange_rates.insert(Exchange::USD("2023-02-16".to_string()), dec!(4.4601));
+ exchange_rates.insert(Exchange::USD("2012-02-29".to_string()), dec!(3.073));
+ exchange_rates.insert(Exchange::USD("2020-07-17".to_string()), dec!(3.9263));
+ exchange_rates.insert(Exchange::USD("2019-09-26".to_string()), dec!(4.0092));
+ exchange_rates.insert(Exchange::USD("2015-09-01".to_string()), dec!(3.7503));
+ exchange_rates.insert(Exchange::EUR("2025-01-24".to_string()), dec!(4.21));
+ exchange_rates.insert(Exchange::USD("2017-01-30".to_string()), dec!(4.0472));
+ exchange_rates.insert(Exchange::USD("2017-12-20".to_string()), dec!(3.5459));
+ exchange_rates.insert(Exchange::EUR("2024-11-28".to_string()), dec!(4.3085));
+ exchange_rates.insert(Exchange::USD("2017-10-24".to_string()), dec!(3.6031));
+ exchange_rates.insert(Exchange::USD("2021-09-02".to_string()), dec!(3.8044));
+ exchange_rates.insert(Exchange::USD("2022-06-07".to_string()), dec!(4.2935));
+ exchange_rates.insert(Exchange::USD("2021-03-03".to_string()), dec!(3.7509));
+ exchange_rates.insert(Exchange::USD("2018-04-30".to_string()), dec!(3.4868));
+ exchange_rates.insert(Exchange::EUR("2023-08-10".to_string()), dec!(4.465));
+ exchange_rates.insert(Exchange::USD("2022-09-22".to_string()), dec!(4.8343));
+ exchange_rates.insert(Exchange::USD("2019-12-16".to_string()), dec!(3.8311));
+ exchange_rates.insert(Exchange::USD("2021-11-15".to_string()), dec!(4.0497));
+ exchange_rates.insert(Exchange::USD("2024-05-24".to_string()), dec!(3.9376));
+ exchange_rates.insert(Exchange::USD("2013-06-24".to_string()), dec!(3.3137));
+ exchange_rates.insert(Exchange::USD("2023-07-21".to_string()), dec!(3.999));
+ exchange_rates.insert(Exchange::USD("2021-03-01".to_string()), dec!(3.7572));
+ exchange_rates.insert(Exchange::USD("2021-09-24".to_string()), dec!(3.9268));
+ exchange_rates.insert(Exchange::USD("2014-12-16".to_string()), dec!(3.3522));
+ exchange_rates.insert(Exchange::EUR("2024-11-05".to_string()), dec!(4.3607));
+ exchange_rates.insert(Exchange::USD("2023-10-19".to_string()), dec!(4.2264));
+ exchange_rates.insert(Exchange::EUR("2025-04-02".to_string()), dec!(4.1794));
+ exchange_rates.insert(Exchange::USD("2024-08-29".to_string()), dec!(3.867));
+ exchange_rates.insert(Exchange::USD("2015-02-24".to_string()), dec!(3.6948));
+ exchange_rates.insert(Exchange::USD("2012-07-16".to_string()), dec!(3.4353));
+ exchange_rates.insert(Exchange::USD("2020-09-25".to_string()), dec!(3.9016));
+ exchange_rates.insert(Exchange::USD("2024-09-23".to_string()), dec!(3.8571));
+ exchange_rates.insert(Exchange::USD("2014-08-22".to_string()), dec!(3.152));
+ exchange_rates.insert(Exchange::USD("2025-01-10".to_string()), dec!(4.1415));
+ exchange_rates.insert(Exchange::USD("2012-02-13".to_string()), dec!(3.1643));
+ exchange_rates.insert(Exchange::EUR("2023-08-28".to_string()), dec!(4.4716));
+ exchange_rates.insert(Exchange::USD("2025-02-19".to_string()), dec!(3.9875));
+ exchange_rates.insert(Exchange::USD("2025-10-29".to_string()), dec!(3.6399));
+ exchange_rates.insert(Exchange::EUR("2025-04-18".to_string()), dec!(4.2823));
+ exchange_rates.insert(Exchange::USD("2022-11-04".to_string()), dec!(4.7975));
+ exchange_rates.insert(Exchange::USD("2019-09-30".to_string()), dec!(4));
+ exchange_rates.insert(Exchange::USD("2016-03-23".to_string()), dec!(3.801));
+ exchange_rates.insert(Exchange::USD("2016-11-30".to_string()), dec!(4.1721));
+ exchange_rates.insert(Exchange::EUR("2024-05-28".to_string()), dec!(4.2592));
+ exchange_rates.insert(Exchange::USD("2022-08-02".to_string()), dec!(4.5984));
+ exchange_rates.insert(Exchange::USD("2017-09-11".to_string()), dec!(3.5293));
+ exchange_rates.insert(Exchange::EUR("2024-04-12".to_string()), dec!(4.2666));
+ exchange_rates.insert(Exchange::EUR("2025-02-21".to_string()), dec!(4.1705));
+ exchange_rates.insert(Exchange::USD("2012-12-06".to_string()), dec!(3.1538));
+ exchange_rates.insert(Exchange::USD("2012-10-11".to_string()), dec!(3.1819));
+ exchange_rates.insert(Exchange::USD("2024-03-22".to_string()), dec!(3.9928));
+ exchange_rates.insert(Exchange::USD("2024-06-05".to_string()), dec!(3.9607));
+ exchange_rates.insert(Exchange::USD("2023-05-08".to_string()), dec!(4.1384));
+ exchange_rates.insert(Exchange::EUR("2024-01-08".to_string()), dec!(4.3548));
+ exchange_rates.insert(Exchange::USD("2023-01-27".to_string()), dec!(4.3252));
+ exchange_rates.insert(Exchange::USD("2021-08-18".to_string()), dec!(3.8861));
+ exchange_rates.insert(Exchange::USD("2022-04-05".to_string()), dec!(4.2233));
+ exchange_rates.insert(Exchange::USD("2016-02-11".to_string()), dec!(3.9219));
+ exchange_rates.insert(Exchange::USD("2014-08-19".to_string()), dec!(3.1356));
+ exchange_rates.insert(Exchange::EUR("2024-04-22".to_string()), dec!(4.3203));
+ exchange_rates.insert(Exchange::USD("2016-06-24".to_string()), dec!(3.9994));
+ exchange_rates.insert(Exchange::USD("2013-09-23".to_string()), dec!(3.126));
+ exchange_rates.insert(Exchange::USD("2014-05-30".to_string()), dec!(3.0435));
+ exchange_rates.insert(Exchange::USD("2012-09-26".to_string()), dec!(3.2187));
+ exchange_rates.insert(Exchange::USD("2017-09-15".to_string()), dec!(3.5863));
+ exchange_rates.insert(Exchange::USD("2021-09-16".to_string()), dec!(3.8847));
+ exchange_rates.insert(Exchange::USD("2012-03-13".to_string()), dec!(3.1288));
+ exchange_rates.insert(Exchange::USD("2024-08-06".to_string()), dec!(3.9467));
+ exchange_rates.insert(Exchange::USD("2019-09-16".to_string()), dec!(3.9116));
+ exchange_rates.insert(Exchange::USD("2016-09-16".to_string()), dec!(3.8497));
+ exchange_rates.insert(Exchange::USD("2021-08-23".to_string()), dec!(3.9107));
+ exchange_rates.insert(Exchange::USD("2019-12-03".to_string()), dec!(3.8706));
+ exchange_rates.insert(Exchange::USD("2023-11-14".to_string()), dec!(4.121));
+ exchange_rates.insert(Exchange::EUR("2025-12-09".to_string()), dec!(4.234));
+ exchange_rates.insert(Exchange::USD("2015-02-10".to_string()), dec!(3.722));
+ exchange_rates.insert(Exchange::USD("2021-11-04".to_string()), dec!(3.9807));
+ exchange_rates.insert(Exchange::USD("2015-02-17".to_string()), dec!(3.6788));
+ exchange_rates.insert(Exchange::USD("2025-03-04".to_string()), dec!(3.9543));
+ exchange_rates.insert(Exchange::EUR("2023-08-31".to_string()), dec!(4.4684));
+ exchange_rates.insert(Exchange::EUR("2024-04-25".to_string()), dec!(4.3198));
+ exchange_rates.insert(Exchange::USD("2016-01-08".to_string()), dec!(3.9963));
+ exchange_rates.insert(Exchange::USD("2012-09-13".to_string()), dec!(3.1852));
+ exchange_rates.insert(Exchange::USD("2025-09-09".to_string()), dec!(3.6173));
+ exchange_rates.insert(Exchange::USD("2015-12-04".to_string()), dec!(3.9607));
+ exchange_rates.insert(Exchange::USD("2014-09-05".to_string()), dec!(3.2354));
+ exchange_rates.insert(Exchange::USD("2025-06-25".to_string()), dec!(3.659));
+ exchange_rates.insert(Exchange::USD("2017-02-20".to_string()), dec!(4.0692));
+ exchange_rates.insert(Exchange::EUR("2024-10-01".to_string()), dec!(4.2846));
+ exchange_rates.insert(Exchange::USD("2015-01-02".to_string()), dec!(3.5725));
+ exchange_rates.insert(Exchange::USD("2017-02-17".to_string()), dec!(4.0693));
+ exchange_rates.insert(Exchange::USD("2017-04-26".to_string()), dec!(3.8757));
+ exchange_rates.insert(Exchange::USD("2025-02-25".to_string()), dec!(3.947));
+ exchange_rates.insert(Exchange::USD("2025-05-02".to_string()), dec!(3.7722));
+ exchange_rates.insert(Exchange::USD("2025-03-18".to_string()), dec!(3.8152));
+ exchange_rates.insert(Exchange::EUR("2024-10-14".to_string()), dec!(4.2928));
+ exchange_rates.insert(Exchange::EUR("2025-02-04".to_string()), dec!(4.2249));
+ exchange_rates.insert(Exchange::USD("2018-08-16".to_string()), dec!(3.7871));
+ exchange_rates.insert(Exchange::EUR("2025-12-03".to_string()), dec!(4.2312));
+ exchange_rates.insert(Exchange::USD("2017-08-21".to_string()), dec!(3.6408));
+ exchange_rates.insert(Exchange::USD("2012-04-11".to_string()), dec!(3.2034));
+ exchange_rates.insert(Exchange::USD("2020-04-22".to_string()), dec!(4.1736));
+ exchange_rates.insert(Exchange::USD("2014-02-05".to_string()), dec!(3.0987));
+ exchange_rates.insert(Exchange::USD("2013-12-27".to_string()), dec!(3.0105));
+ exchange_rates.insert(Exchange::USD("2024-09-19".to_string()), dec!(3.8249));
+ exchange_rates.insert(Exchange::USD("2025-06-23".to_string()), dec!(3.7212));
+ exchange_rates.insert(Exchange::USD("2017-08-18".to_string()), dec!(3.6459));
+ exchange_rates.insert(Exchange::USD("2024-02-26".to_string()), dec!(3.9776));
+ exchange_rates.insert(Exchange::USD("2016-02-24".to_string()), dec!(3.9803));
+ exchange_rates.insert(Exchange::USD("2013-03-21".to_string()), dec!(3.2387));
+ exchange_rates.insert(Exchange::USD("2014-02-06".to_string()), dec!(3.095));
+ exchange_rates.insert(Exchange::USD("2018-04-13".to_string()), dec!(3.3862));
+ exchange_rates.insert(Exchange::USD("2012-05-08".to_string()), dec!(3.2238));
+ exchange_rates.insert(Exchange::USD("2025-10-17".to_string()), dec!(3.6388));
+ exchange_rates.insert(Exchange::USD("2015-08-03".to_string()), dec!(3.7705));
+ exchange_rates.insert(Exchange::EUR("2024-07-24".to_string()), dec!(4.2796));
+ exchange_rates.insert(Exchange::USD("2012-07-18".to_string()), dec!(3.395));
+ exchange_rates.insert(Exchange::EUR("2023-03-14".to_string()), dec!(4.6909));
+ exchange_rates.insert(Exchange::USD("2021-11-26".to_string()), dec!(4.1754));
+ exchange_rates.insert(Exchange::USD("2020-05-29".to_string()), dec!(4.0031));
+ exchange_rates.insert(Exchange::USD("2013-06-11".to_string()), dec!(3.2201));
+ exchange_rates.insert(Exchange::USD("2015-07-24".to_string()), dec!(3.7654));
+ exchange_rates.insert(Exchange::USD("2017-07-13".to_string()), dec!(3.7133));
+ exchange_rates.insert(Exchange::USD("2020-08-24".to_string()), dec!(3.7273));
+ exchange_rates.insert(Exchange::USD("2022-03-03".to_string()), dec!(4.3257));
+ exchange_rates.insert(Exchange::USD("2012-09-19".to_string()), dec!(3.1631));
+ exchange_rates.insert(Exchange::USD("2021-02-12".to_string()), dec!(3.7186));
+ exchange_rates.insert(Exchange::USD("2013-11-13".to_string()), dec!(3.1358));
+ exchange_rates.insert(Exchange::USD("2024-09-05".to_string()), dec!(3.8487));
+ exchange_rates.insert(Exchange::EUR("2023-10-31".to_string()), dec!(4.4475));
+ exchange_rates.insert(Exchange::EUR("2024-05-16".to_string()), dec!(4.2617));
+ exchange_rates.insert(Exchange::USD("2019-11-06".to_string()), dec!(3.8497));
+ exchange_rates.insert(Exchange::USD("2021-04-27".to_string()), dec!(3.7826));
+ exchange_rates.insert(Exchange::USD("2020-10-14".to_string()), dec!(3.8301));
+ exchange_rates.insert(Exchange::EUR("2025-10-14".to_string()), dec!(4.2645));
+ exchange_rates.insert(Exchange::USD("2015-06-15".to_string()), dec!(3.6905));
+ exchange_rates.insert(Exchange::USD("2019-10-16".to_string()), dec!(3.8934));
+ exchange_rates.insert(Exchange::USD("2023-09-05".to_string()), dec!(4.1643));
+ exchange_rates.insert(Exchange::USD("2024-07-09".to_string()), dec!(3.9391));
+ exchange_rates.insert(Exchange::USD("2020-09-22".to_string()), dec!(3.8359));
+ exchange_rates.insert(Exchange::USD("2023-11-23".to_string()), dec!(3.9969));
+ exchange_rates.insert(Exchange::USD("2025-03-27".to_string()), dec!(3.8913));
+ exchange_rates.insert(Exchange::USD("2021-11-17".to_string()), dec!(4.1204));
+ exchange_rates.insert(Exchange::USD("2020-04-07".to_string()), dec!(4.1717));
+ exchange_rates.insert(Exchange::EUR("2024-02-15".to_string()), dec!(4.3463));
+ exchange_rates.insert(Exchange::USD("2022-03-11".to_string()), dec!(4.3694));
+ exchange_rates.insert(Exchange::EUR("2024-09-26".to_string()), dec!(4.2665));
+ exchange_rates.insert(Exchange::USD("2015-07-28".to_string()), dec!(3.7303));
+ exchange_rates.insert(Exchange::USD("2014-01-24".to_string()), dec!(3.0727));
+ exchange_rates.insert(Exchange::EUR("2024-07-05".to_string()), dec!(4.2858));
+ exchange_rates.insert(Exchange::USD("2017-12-01".to_string()), dec!(3.5352));
+ exchange_rates.insert(Exchange::USD("2025-10-03".to_string()), dec!(3.6253));
+ exchange_rates.insert(Exchange::USD("2020-07-08".to_string()), dec!(3.9666));
+ exchange_rates.insert(Exchange::USD("2012-08-01".to_string()), dec!(3.342));
+ exchange_rates.insert(Exchange::EUR("2024-01-10".to_string()), dec!(4.3413));
+ exchange_rates.insert(Exchange::EUR("2024-01-11".to_string()), dec!(4.3505));
+ exchange_rates.insert(Exchange::USD("2016-10-17".to_string()), dec!(3.9265));
+ exchange_rates.insert(Exchange::EUR("2025-03-19".to_string()), dec!(4.1945));
+ exchange_rates.insert(Exchange::USD("2014-06-18".to_string()), dec!(3.0589));
+ exchange_rates.insert(Exchange::USD("2024-09-13".to_string()), dec!(3.8659));
+ exchange_rates.insert(Exchange::USD("2022-02-01".to_string()), dec!(4.0689));
+ exchange_rates.insert(Exchange::USD("2012-03-27".to_string()), dec!(3.0939));
+ exchange_rates.insert(Exchange::USD("2019-12-12".to_string()), dec!(3.8505));
+ exchange_rates.insert(Exchange::USD("2015-05-15".to_string()), dec!(3.5719));
+ exchange_rates.insert(Exchange::EUR("2023-07-06".to_string()), dec!(4.4754));
+ exchange_rates.insert(Exchange::USD("2021-11-16".to_string()), dec!(4.1061));
+ exchange_rates.insert(Exchange::USD("2013-11-25".to_string()), dec!(3.1019));
+ exchange_rates.insert(Exchange::USD("2021-09-23".to_string()), dec!(3.9256));
exchange_rates
}
diff --git a/src/pdfparser.rs b/src/pdfparser.rs
index 027a986..a19d65f 100644
--- a/src/pdfparser.rs
+++ b/src/pdfparser.rs
@@ -4,6 +4,7 @@
use pdf::file::File;
use pdf::object::PageRc;
use pdf::primitive::Primitive;
+use rust_decimal::Decimal;
pub use crate::logging::ResultExt;
@@ -34,7 +35,7 @@ enum ParserState {
pub trait Entry {
fn parse(&mut self, pstr: &pdf::primitive::PdfString);
- fn getf32(&self) -> Option {
+ fn get_decimal(&self) -> Option {
None
}
fn geti32(&self) -> Option {
@@ -53,16 +54,16 @@ pub trait Entry {
}
}
-struct F32Entry {
- pub val: f32,
+struct DecimalEntry {
+ pub val: Decimal,
}
-impl Entry for F32Entry {
+impl Entry for DecimalEntry {
fn parse(&mut self, pstr: &pdf::primitive::PdfString) {
let mystr = pstr
.clone()
.into_string()
- .expect(&format!("Error parsing : {:#?} to f32", pstr));
+ .expect(&format!("Error parsing : {:#?} to Decimal", pstr));
// Extracted string should have "," removed and then be parsed
self.val = mystr
.trim()
@@ -70,11 +71,11 @@ impl Entry for F32Entry {
.replace("(", "")
.replace(")", "")
.replace("$", "")
- .parse::()
- .expect(&format!("Error parsing : {} to f32", mystr));
- log::info!("Parsed f32 value: {}", self.val);
+ .parse::()
+ .expect(&format!("Error parsing : {} to Decimal", mystr));
+ log::info!("Parsed Decimal value: {}", self.val);
}
- fn getf32(&self) -> Option {
+ fn get_decimal(&self) -> Option {
Some(self.val)
}
}
@@ -148,8 +149,8 @@ fn create_dividend_parsing_sequence(sequence: &mut std::collections::VecDeque>) {
@@ -161,7 +162,7 @@ fn create_tax_parsing_sequence(sequence: &mut std::collections::VecDeque>) {
@@ -231,9 +232,9 @@ fn create_sold_parsing_sequence(sequence: &mut std::collections::VecDeque>) {
@@ -249,9 +250,9 @@ fn create_sold_2_parsing_sequence(sequence: &mut std::collections::VecDeque>) {
@@ -272,7 +273,7 @@ fn create_trade_parsing_sequence(sequence: &mut std::collections::VecDeque
+ sequence.push_back(Box::new(DecimalEntry { val: Decimal::ZERO })); // ..
sequence.push_back(Box::new(StringEntry {
val: String::new(),
patterns: vec!["Stock".to_owned()],
@@ -289,7 +290,7 @@ fn create_trade_parsing_sequence(sequence: &mut std::collections::VecDeque
+ sequence.push_back(Box::new(DecimalEntry { val: Decimal::ZERO })); // ..
sequence.push_back(Box::new(StringEntry {
val: String::new(),
patterns: vec!["INTEL".to_owned()],
@@ -306,7 +307,7 @@ fn create_trade_parsing_sequence(sequence: &mut std::collections::VecDeque
+ sequence.push_back(Box::new(DecimalEntry { val: Decimal::ZERO })); // ..
sequence.push_back(Box::new(StringEntry {
val: String::new(),
patterns: vec!["FEE".to_owned()],
@@ -315,7 +316,7 @@ fn create_trade_parsing_sequence(sequence: &mut std::collections::VecDeque
+ sequence.push_back(Box::new(DecimalEntry { val: Decimal::ZERO })); // ..
sequence.push_back(Box::new(StringEntry {
val: String::new(),
patterns: vec!["NET".to_owned()],
@@ -328,13 +329,13 @@ fn create_trade_parsing_sequence(sequence: &mut std::collections::VecDeque
+ sequence.push_back(Box::new(DecimalEntry { val: Decimal::ZERO })); // ..
}
fn yield_sold_transaction(
transaction: &mut std::slice::Iter<'_, Box>,
transaction_dates: &mut Vec,
-) -> Option<(String, String, f32, f32, f32, Option)> {
+) -> Option<(String, String, Decimal, Decimal, Decimal, Option)> {
let symbol = transaction
.next()
.unwrap()
@@ -343,17 +344,17 @@ fn yield_sold_transaction(
let quantity = transaction
.next()
.unwrap()
- .getf32()
+ .get_decimal()
.expect_and_log("Processing of Sold transaction went wrong");
let price = transaction
.next()
.unwrap()
- .getf32()
+ .get_decimal()
.expect_and_log("Processing of Sold transaction went wrong");
let amount_sold = transaction
.next()
.unwrap()
- .getf32()
+ .get_decimal()
.expect_and_log("Parsing of Sold transaction went wrong");
// Last transaction date is settlement date
// next to last is trade date
@@ -466,9 +467,9 @@ fn recognize_statement(page: PageRc) -> Result {
}
fn process_transaction(
- interests_transactions: &mut Vec<(String, f32, f32)>,
- div_transactions: &mut Vec<(String, f32, f32, Option)>,
- sold_transactions: &mut Vec<(String, String, f32, f32, f32, Option)>,
+ interests_transactions: &mut Vec<(String, Decimal, Decimal)>,
+ div_transactions: &mut Vec<(String, Decimal, Decimal, Option)>,
+ sold_transactions: &mut Vec<(String, String, Decimal, Decimal, Decimal, Option)>,
actual_string: &pdf::primitive::PdfString,
transaction_dates: &mut Vec,
processed_sequence: &mut Vec>,
@@ -479,7 +480,7 @@ fn process_transaction(
let possible_obj = sequence.pop_front();
match possible_obj {
// Move executed parser objects into Vector
- // attach only i32 and f32 elements to
+ // attach only i32 and Decimal elements to
// processed queue
Some(mut obj) => {
obj.parse(actual_string);
@@ -524,7 +525,7 @@ fn process_transaction(
let tax_us = transaction
.next()
.unwrap()
- .getf32()
+ .get_decimal()
.ok_or("Processing of Tax transaction went wrong")?;
// Here we just go through registered transactions and pick the one where
@@ -532,23 +533,27 @@ fn process_transaction(
// applied
let mut interests_as_div: Vec<(
&mut String,
- &mut f32,
- &mut f32,
+ &mut Decimal,
+ &mut Decimal,
Option,
)> = interests_transactions
.iter_mut()
.map(|x| (&mut x.0, &mut x.1, &mut x.2, None))
.collect();
- let mut div_as_ref: Vec<(&mut String, &mut f32, &mut f32, Option)> =
- div_transactions
- .iter_mut()
- .map(|x| (&mut x.0, &mut x.1, &mut x.2, x.3.clone()))
- .collect();
+ let mut div_as_ref: Vec<(
+ &mut String,
+ &mut Decimal,
+ &mut Decimal,
+ Option,
+ )> = div_transactions
+ .iter_mut()
+ .map(|x| (&mut x.0, &mut x.1, &mut x.2, x.3.clone()))
+ .collect();
let subject_to_tax = div_as_ref
.iter_mut()
.chain(interests_as_div.iter_mut())
- .find(|x| *x.1 > tax_us && *x.2 == 0.0f32)
+ .find(|x| *x.1 > tax_us && *x.2 == Decimal::ZERO)
.ok_or("Error: Unable to find transaction that was taxed")?;
log::info!("Tax: {tax_us} was applied to {subject_to_tax:?}");
*subject_to_tax.2 = tax_us;
@@ -563,7 +568,7 @@ fn process_transaction(
let gross_us = transaction
.next()
.unwrap()
- .getf32()
+ .get_decimal()
.ok_or("Processing of Interests transaction went wrong")?;
interests_transactions.push((
@@ -571,7 +576,7 @@ fn process_transaction(
.pop()
.ok_or("Error: missing transaction dates when parsing")?,
gross_us,
- 0.0, // No tax info yet. It may be added later in Tax section
+ Decimal::ZERO, // No tax info yet. It may be added later in Tax section
));
log::info!("Completed parsing Interests transaction");
}
@@ -584,7 +589,7 @@ fn process_transaction(
let gross_us = transaction
.next()
.unwrap()
- .getf32()
+ .get_decimal()
.ok_or("Processing of Dividend transaction went wrong")?;
div_transactions.push((
@@ -592,7 +597,7 @@ fn process_transaction(
.pop()
.ok_or("Error: missing transaction dates when parsing")?,
gross_us,
- 0.0, // No tax info yet. It will be added later in Tax section
+ Decimal::ZERO, // No tax info yet. It will be added later in Tax section
Some(symbol),
));
log::info!("Completed parsing Dividend transaction");
@@ -692,20 +697,39 @@ fn parse_account_statement<'a, I>(
pages_iter: I,
) -> Result<
(
- Vec<(String, f32, f32)>,
- Vec<(String, f32, f32, Option)>,
- Vec<(String, String, f32, f32, f32, Option)>,
- Vec<(String, String, i32, f32, f32, f32, f32, f32)>,
+ Vec<(String, Decimal, Decimal)>,
+ Vec<(String, Decimal, Decimal, Option)>,
+ Vec<(String, String, Decimal, Decimal, Decimal, Option)>,
+ Vec<(
+ String,
+ String,
+ i32,
+ Decimal,
+ Decimal,
+ Decimal,
+ Decimal,
+ Decimal,
+ )>,
),
String,
>
where
I: Iterator- >,
{
- let mut interests_transactions: Vec<(String, f32, f32)> = vec![];
- let mut div_transactions: Vec<(String, f32, f32, Option)> = vec![];
- let mut sold_transactions: Vec<(String, String, f32, f32, f32, Option)> = vec![];
- let trades: Vec<(String, String, i32, f32, f32, f32, f32, f32)> = vec![];
+ let mut interests_transactions: Vec<(String, Decimal, Decimal)> = vec![];
+ let mut div_transactions: Vec<(String, Decimal, Decimal, Option)> = vec![];
+ let mut sold_transactions: Vec<(String, String, Decimal, Decimal, Decimal, Option)> =
+ vec![];
+ let trades: Vec<(
+ String,
+ String,
+ i32,
+ Decimal,
+ Decimal,
+ Decimal,
+ Decimal,
+ Decimal,
+ )> = vec![];
let mut state = ParserState::SearchingYear;
let mut sequence: std::collections::VecDeque> =
std::collections::VecDeque::new();
@@ -817,10 +841,19 @@ pub fn parse_statement(
pdftoparse: &str,
) -> Result<
(
- Vec<(String, f32, f32)>,
- Vec<(String, f32, f32, Option)>,
- Vec<(String, String, f32, f32, f32, Option)>,
- Vec<(String, String, i32, f32, f32, f32, f32, f32)>,
+ Vec<(String, Decimal, Decimal)>,
+ Vec<(String, Decimal, Decimal, Option)>,
+ Vec<(String, String, Decimal, Decimal, Decimal, Option)>,
+ Vec<(
+ String,
+ String,
+ i32,
+ Decimal,
+ Decimal,
+ Decimal,
+ Decimal,
+ Decimal,
+ )>,
),
String,
> {
@@ -866,6 +899,7 @@ pub fn parse_statement(
#[cfg(test)]
mod tests {
use super::*;
+ use rust_decimal::dec;
#[test]
fn test_parser() -> Result<(), String> {
@@ -879,36 +913,36 @@ mod tests {
let data: Vec = vec![
'2' as u8, '8' as u8, '.' as u8, '2' as u8, '0' as u8, '3' as u8, '5' as u8,
];
- let mut f = F32Entry { val: 0.0 };
+ let mut f = DecimalEntry { val: Decimal::ZERO };
f.parse(&pdf::primitive::PdfString::new(data));
- assert_eq!(f.getf32(), Some(28.2035));
+ assert_eq!(f.get_decimal(), Some(dec!(28.2035)));
// amount
let data: Vec = vec![
'4' as u8, ',' as u8, '8' as u8, '7' as u8, '7' as u8, '.' as u8, '3' as u8, '6' as u8,
];
- let mut f = F32Entry { val: 0.0 };
+ let mut f = DecimalEntry { val: Decimal::ZERO };
f.parse(&pdf::primitive::PdfString::new(data));
- assert_eq!(f.getf32(), Some(4877.36));
+ assert_eq!(f.get_decimal(), Some(dec!(4877.36)));
let data: Vec = vec![
'(' as u8, '5' as u8, '7' as u8, '.' as u8, '9' as u8, '8' as u8, ')' as u8,
];
- let mut f = F32Entry { val: 0.0 };
+ let mut f = DecimalEntry { val: Decimal::ZERO };
f.parse(&pdf::primitive::PdfString::new(data));
- assert_eq!(f.getf32(), Some(57.98));
+ assert_eq!(f.get_decimal(), Some(dec!(57.98)));
let data: Vec = vec!['$' as u8, '1' as u8, '.' as u8, '2' as u8, '2' as u8];
- let mut f = F32Entry { val: 0.0 };
+ let mut f = DecimalEntry { val: Decimal::ZERO };
f.parse(&pdf::primitive::PdfString::new(data));
- assert_eq!(f.getf32(), Some(1.22));
+ assert_eq!(f.get_decimal(), Some(dec!(1.22)));
let data: Vec = vec![
'8' as u8, '2' as u8, '.' as u8, '0' as u8, '0' as u8, '0' as u8,
];
- let mut f = F32Entry { val: 0.0 };
+ let mut f = DecimalEntry { val: Decimal::ZERO };
f.parse(&pdf::primitive::PdfString::new(data));
- assert_eq!(f.getf32(), Some(82.00));
+ assert_eq!(f.get_decimal(), Some(dec!(82.00)));
// company code
let data: Vec = vec!['D' as u8, 'L' as u8, 'B' as u8];
@@ -939,9 +973,9 @@ mod tests {
val: String::new(),
patterns: vec!["INTC".to_owned(), "DLB".to_owned()],
})); // INTC, DLB
- processed_sequence.push(Box::new(F32Entry { val: 42.0 })); //quantity
- processed_sequence.push(Box::new(F32Entry { val: 28.8400 })); // Price
- processed_sequence.push(Box::new(F32Entry { val: 1210.83 })); // Amount Sold
+ processed_sequence.push(Box::new(DecimalEntry { val: dec!(42.0) })); //quantity
+ processed_sequence.push(Box::new(DecimalEntry { val: dec!(28.8400) })); // Price
+ processed_sequence.push(Box::new(DecimalEntry { val: dec!(1210.83) })); // Amount Sold
yield_sold_transaction(&mut processed_sequence.iter(), &mut transaction_dates)
.ok_or("Parsing error".to_string())?;
@@ -960,9 +994,9 @@ mod tests {
val: String::new(),
patterns: vec!["INTC".to_owned(), "DLB".to_owned()],
})); // INTC, DLB
- processed_sequence.push(Box::new(F32Entry { val: 42.0 })); //quantity
- processed_sequence.push(Box::new(F32Entry { val: 28.8400 })); // Price
- processed_sequence.push(Box::new(F32Entry { val: 1210.83 })); // Amount Sold
+ processed_sequence.push(Box::new(DecimalEntry { val: dec!(42.0) })); //quantity
+ processed_sequence.push(Box::new(DecimalEntry { val: dec!(28.8400) })); // Price
+ processed_sequence.push(Box::new(DecimalEntry { val: dec!(1210.83) })); // Amount Sold
yield_sold_transaction(&mut processed_sequence.iter(), &mut transaction_dates)
.ok_or("Parsing error".to_string())?;
@@ -977,9 +1011,9 @@ mod tests {
val: String::new(),
patterns: vec!["INTC".to_owned(), "DLB".to_owned()],
})); // INTC, DLB
- processed_sequence.push(Box::new(F32Entry { val: 42.0 })); //quantity
- processed_sequence.push(Box::new(F32Entry { val: 28.8400 })); // Price
- processed_sequence.push(Box::new(F32Entry { val: 1210.83 })); // Amount Sold
+ processed_sequence.push(Box::new(DecimalEntry { val: dec!(42.0) })); //quantity
+ processed_sequence.push(Box::new(DecimalEntry { val: dec!(28.8400) })); // Price
+ processed_sequence.push(Box::new(DecimalEntry { val: dec!(1210.83) })); // Amount Sold
assert_eq!(
yield_sold_transaction(&mut processed_sequence.iter(), &mut transaction_dates),
@@ -1120,19 +1154,19 @@ mod tests {
assert_eq!(
parse_statement("data/MS_ClientStatements_6557_202312.pdf"),
(Ok((
- vec![("12/1/23".to_owned(), 1.22, 0.00)],
+ vec![("12/1/23".to_owned(), dec!(1.22), dec!(0.00))],
vec![(
"12/1/23".to_owned(),
- 386.50,
- 57.98,
+ dec!(386.50),
+ dec!(57.98),
Some("INTEL CORP".to_string())
),],
vec![(
"12/21/23".to_owned(),
"12/26/23".to_owned(),
- 82.0,
- 46.45,
- 3808.86,
+ dec!(82.0),
+ dec!(46.45),
+ dec!(3808.86),
Some("INTEL CORP".to_string())
)],
vec![]
@@ -1147,7 +1181,7 @@ mod tests {
assert_eq!(
parse_statement("data/example_interests_taxing.pdf"),
(Ok((
- vec![("1/2/24".to_owned(), 0.92, 0.22)],
+ vec![("1/2/24".to_owned(), dec!(0.92), dec!(0.22))],
vec![],
vec![],
vec![]
@@ -1163,28 +1197,28 @@ mod tests {
parse_statement("etrade_data_2024/ClientStatements_010325.pdf"),
(Ok((
vec![
- ("12/2/24".to_owned(), 4.88, 0.00),
- ("10/1/24".to_owned(), 24.91, 0.00),
- ("11/1/24".to_owned(), 25.09, 0.00),
- ("9/3/24".to_owned(), 23.65, 0.00), // Interest rates
- ("8/1/24".to_owned(), 4.34, 0.00),
- ("7/1/24".to_owned(), 3.72, 0.00),
- ("6/3/24".to_owned(), 13.31, 0.00),
- ("5/1/24".to_owned(), 0.62, 0.00),
- ("4/1/24".to_owned(), 1.16, 0.00),
- ("1/2/24".to_owned(), 0.49, 0.00)
+ ("12/2/24".to_owned(), dec!(4.88), dec!(0.00)),
+ ("10/1/24".to_owned(), dec!(24.91), dec!(0.00)),
+ ("11/1/24".to_owned(), dec!(25.09), dec!(0.00)),
+ ("9/3/24".to_owned(), dec!(23.65), dec!(0.00)), // Interest rates
+ ("8/1/24".to_owned(), dec!(4.34), dec!(0.00)),
+ ("7/1/24".to_owned(), dec!(3.72), dec!(0.00)),
+ ("6/3/24".to_owned(), dec!(13.31), dec!(0.00)),
+ ("5/1/24".to_owned(), dec!(0.62), dec!(0.00)),
+ ("4/1/24".to_owned(), dec!(1.16), dec!(0.00)),
+ ("1/2/24".to_owned(), dec!(0.49), dec!(0.00))
],
vec![
(
"6/3/24".to_owned(),
- 57.25,
- 8.59,
+ dec!(57.25),
+ dec!(8.59),
Some("INTEL CORP".to_owned())
), // Dividends date, gross, tax_us
(
"3/1/24".to_owned(),
- 380.25,
- 57.04,
+ dec!(380.25),
+ dec!(57.04),
Some("INTEL CORP".to_owned())
)
],
@@ -1192,233 +1226,233 @@ mod tests {
(
"12/4/24".to_owned(),
"12/5/24".to_owned(),
- 30.0,
- 22.5,
- 674.98,
+ dec!(30.0),
+ dec!(22.5),
+ dec!(674.98),
Some("INTEL CORP".to_string())
),
(
"12/5/24".to_owned(),
"12/6/24".to_owned(),
- 55.0,
- 21.96,
- 1207.76,
+ dec!(55.0),
+ dec!(21.96),
+ dec!(1207.76),
Some("INTEL CORP".to_string())
),
(
"11/1/24".to_owned(),
"11/4/24".to_owned(),
- 15.0,
- 23.32,
- 349.79,
+ dec!(15.0),
+ dec!(23.32),
+ dec!(349.79),
Some("INTEL CORP".to_string())
),
(
"9/3/24".to_owned(),
"9/4/24".to_owned(),
- 17.0,
- 21.53,
- 365.99,
+ dec!(17.0),
+ dec!(21.53),
+ dec!(365.99),
Some("INTEL CORP".to_string())
), // Sold
(
"9/9/24".to_owned(),
"9/10/24".to_owned(),
- 14.0,
- 18.98,
- 265.71,
+ dec!(14.0),
+ dec!(18.98),
+ dec!(265.71),
Some("INTEL CORP".to_string())
),
(
"8/5/24".to_owned(),
"8/6/24".to_owned(),
- 14.0,
- 20.21,
- 282.93,
+ dec!(14.0),
+ dec!(20.21),
+ dec!(282.93),
Some("INTEL CORP".to_string())
),
(
"8/20/24".to_owned(),
"8/21/24".to_owned(),
- 328.0,
- 21.0247,
- 6895.89,
+ dec!(328.0),
+ dec!(21.0247),
+ dec!(6895.89),
Some("INTEL CORP".to_string())
),
(
"7/31/24".to_owned(),
"8/1/24".to_owned(),
- 151.0,
- 30.44,
- 4596.31,
+ dec!(151.0),
+ dec!(30.44),
+ dec!(4596.31),
Some("INTEL CORP".to_string())
),
(
"6/3/24".to_owned(),
"6/4/24".to_owned(),
- 14.0,
- 31.04,
- 434.54,
+ dec!(14.0),
+ dec!(31.04),
+ dec!(434.54),
Some("INTEL CORP".to_string())
),
(
"5/1/24".to_owned(),
"5/3/24".to_owned(),
- 126.0,
- 30.14,
- 3797.6,
+ dec!(126.0),
+ dec!(30.14),
+ dec!(3797.6),
Some("INTEL CORP".to_string())
),
(
"5/1/24".to_owned(),
"5/3/24".to_owned(),
- 124.0,
- 30.14,
- 3737.33,
+ dec!(124.0),
+ dec!(30.14),
+ dec!(3737.33),
Some("INTEL CORP".to_string())
),
(
"5/1/24".to_owned(),
"5/3/24".to_owned(),
- 89.0,
- 30.6116,
- 2724.4,
+ dec!(89.0),
+ dec!(30.6116),
+ dec!(2724.4),
Some("INTEL CORP".to_string())
),
(
"5/2/24".to_owned(),
"5/6/24".to_owned(),
- 182.0,
- 30.56,
- 5561.87,
+ dec!(182.0),
+ dec!(30.56),
+ dec!(5561.87),
Some("INTEL CORP".to_string())
),
(
"5/3/24".to_owned(),
"5/7/24".to_owned(),
- 440.0,
- 30.835,
- 13567.29,
+ dec!(440.0),
+ dec!(30.835),
+ dec!(13567.29),
Some("INTEL CORP".to_string())
),
(
"5/3/24".to_owned(),
"5/7/24".to_owned(),
- 198.0,
- 30.835,
- 6105.28,
+ dec!(198.0),
+ dec!(30.835),
+ dec!(6105.28),
Some("INTEL CORP".to_string())
),
(
"5/3/24".to_owned(),
"5/7/24".to_owned(),
- 146.0,
- 30.8603,
- 4505.56,
+ dec!(146.0),
+ dec!(30.8603),
+ dec!(4505.56),
Some("INTEL CORP".to_string())
),
(
"5/3/24".to_owned(),
"5/7/24".to_owned(),
- 145.0,
- 30.8626,
- 4475.04,
+ dec!(145.0),
+ dec!(30.8626),
+ dec!(4475.04),
Some("INTEL CORP".to_string())
),
(
"5/3/24".to_owned(),
"5/7/24".to_owned(),
- 75.0,
- 30.815,
- 2311.11,
+ dec!(75.0),
+ dec!(30.815),
+ dec!(2311.11),
Some("INTEL CORP".to_string())
),
(
"5/6/24".to_owned(),
"5/8/24".to_owned(),
- 458.0,
- 31.11,
- 14248.26,
+ dec!(458.0),
+ dec!(31.11),
+ dec!(14248.26),
Some("INTEL CORP".to_string())
),
(
"5/31/24".to_owned(),
"6/3/24".to_owned(),
- 18.0,
- 30.22,
- 543.94,
+ dec!(18.0),
+ dec!(30.22),
+ dec!(543.94),
Some("INTEL CORP".to_string())
),
(
"4/3/24".to_owned(),
"4/5/24".to_owned(),
- 31.0,
- 40.625,
- 1259.36,
+ dec!(31.0),
+ dec!(40.625),
+ dec!(1259.36),
Some("INTEL CORP".to_string())
),
(
"4/11/24".to_owned(),
"4/15/24".to_owned(),
- 209.0,
- 37.44,
- 7824.89,
+ dec!(209.0),
+ dec!(37.44),
+ dec!(7824.89),
Some("INTEL CORP".to_string())
),
(
"4/11/24".to_owned(),
"4/15/24".to_owned(),
- 190.0,
- 37.44,
- 7113.54,
+ dec!(190.0),
+ dec!(37.44),
+ dec!(7113.54),
Some("INTEL CORP".to_string())
),
(
"4/16/24".to_owned(),
"4/18/24".to_owned(),
- 310.0,
- 36.27,
- 11243.61,
+ dec!(310.0),
+ dec!(36.27),
+ dec!(11243.61),
Some("INTEL CORP".to_string())
),
(
"4/29/24".to_owned(),
"5/1/24".to_owned(),
- 153.0,
- 31.87,
- 4876.07,
+ dec!(153.0),
+ dec!(31.87),
+ dec!(4876.07),
Some("INTEL CORP".to_string())
),
(
"4/29/24".to_owned(),
"5/1/24".to_owned(),
- 131.0,
- 31.87,
- 4174.93,
+ dec!(131.0),
+ dec!(31.87),
+ dec!(4174.93),
Some("INTEL CORP".to_string())
),
(
"4/29/24".to_owned(),
"5/1/24".to_owned(),
- 87.0,
- 31.87,
- 2772.66,
+ dec!(87.0),
+ dec!(31.87),
+ dec!(2772.66),
Some("INTEL CORP".to_string())
),
(
"3/11/24".to_owned(),
"3/13/24".to_owned(),
- 38.0,
- 43.85,
- 1666.28,
+ dec!(38.0),
+ dec!(43.85),
+ dec!(1666.28),
Some("INTEL CORP".to_string())
),
(
"2/20/24".to_owned(),
"2/22/24".to_owned(),
- 150.0,
- 43.9822,
- 6597.27,
+ dec!(150.0),
+ dec!(43.9822),
+ dec!(6597.27),
Some("INTEL CORP".to_string())
)
],
@@ -1440,17 +1474,17 @@ mod tests {
(
"11/10/23".to_owned(),
"11/14/23".to_owned(),
- 72.0,
- 118.13,
- 8505.29,
+ dec!(72.0),
+ dec!(118.13),
+ dec!(8505.29),
Some("ADVANCED MICRO DEVICES".to_string())
),
(
"11/22/23".to_owned(),
"11/27/23".to_owned(),
- 162.0,
- 122.4511,
- 19836.92,
+ dec!(162.0),
+ dec!(122.4511),
+ dec!(19836.92),
Some("ADVANCED MICRO DEVICES".to_string())
),
],
@@ -1463,8 +1497,8 @@ mod tests {
// parse_statement("data/example3.pdf"),
// (
// vec![
- // ("06/01/21".to_owned(), 0.17, 0.03),
- // ("06/01/21".to_owned(), 45.87, 6.88)
+ // ("06/01/21".to_owned(), dec!(0.17), dec!(0.03)),
+ // ("06/01/21".to_owned(), dec!(45.87), dec!(6.88))
// ],
// vec![],
// vec![]
@@ -1480,10 +1514,10 @@ mod tests {
// "04/11/22".to_owned(),
// "04/13/22".to_owned(),
// 1,
- // 46.92,
- // 46.92,
- // 0.01,
- // 0.01,
+ // dec!(46.92),
+ // dec!(46.92),
+ // dec!(0.01),
+ // dec!(0.01),
// 46.9
// )]
// )
diff --git a/src/pl.rs b/src/pl.rs
index 3fe19d9..11b8ccf 100644
--- a/src/pl.rs
+++ b/src/pl.rs
@@ -2,6 +2,8 @@
// SPDX-License-Identifier: BSD-3-Clause
use chrono::Datelike;
+use rust_decimal::dec;
+use rust_decimal::Decimal;
use serde::{Deserialize, Serialize};
pub struct PL {}
@@ -28,7 +30,7 @@ struct NBPResponse {
pub struct ExchangeRate {
no: String,
effectiveDate: String,
- mid: f32,
+ mid: Decimal,
}
// Function checking if given date is a day when market(NBP) was not working
@@ -63,7 +65,10 @@ fn is_non_working_day(date: &chrono::NaiveDate) -> Result {
// Iterate through dates and find where value is None
// and then try to get for that specific date from cache
fn get_exchange_rates_from_cache(
- dates: &mut std::collections::HashMap>,
+ dates: &mut std::collections::HashMap<
+ etradeTaxReturnHelper::Exchange,
+ Option<(String, Decimal)>,
+ >,
) -> Result {
let mut all_filled = true;
dates.iter_mut().try_for_each(|(exchange, val)| {
@@ -77,7 +82,7 @@ fn get_exchange_rates_from_cache(
etradeTaxReturnHelper::Exchange::USD(date) => ("usd", date),
etradeTaxReturnHelper::Exchange::EUR(date) => ("eur", date),
etradeTaxReturnHelper::Exchange::PLN(_) => {
- *val = Some(("N/A".to_owned(), 1.0));
+ *val = Some(("N/A".to_owned(), Decimal::ONE));
return Ok::<(), String>(());
} // For PLN to PLN follow fast path
};
@@ -125,7 +130,7 @@ fn get_exchange_rates_from_cache(
exchange_rate_date,
exchange_rate
);
- *val = Some((exchange_rate_date, *exchange_rate as f32));
+ *val = Some((exchange_rate_date, *exchange_rate));
} else {
log::info!(
"Not Found cached exchange rate. Date:{} ",
@@ -139,6 +144,18 @@ fn get_exchange_rates_from_cache(
Ok(all_filled)
}
+/// Art. 63 §1a OP: always ceil to 0.01 PLN (groszy).
+/// Applies to the base and tax for art. 30a pkt 1–3 PIT (odsetki).
+fn ceil_to_grosz(val: Decimal) -> Decimal {
+ val.round_dp_with_strategy(2, rust_decimal::RoundingStrategy::ToPositiveInfinity)
+}
+
+/// Art. 63 §1 OP: round half-up to 1 PLN (pełnych złotych).
+/// Applies to the base and tax for art. 30a pkt 4 PIT (dywidendy) and art. 30b PIT (sprzedaż).
+fn round_half_up_to_zloty(val: Decimal) -> Decimal {
+ val.round_dp_with_strategy(0, rust_decimal::RoundingStrategy::MidpointAwayFromZero)
+}
+
impl etradeTaxReturnHelper::Residency for PL {
// We search a exchange rate from a working day preceeding given date (settlement date for
// etrade)
@@ -148,7 +165,7 @@ impl etradeTaxReturnHelper::Residency for PL {
&self,
dates: &mut std::collections::HashMap<
etradeTaxReturnHelper::Exchange,
- Option<(String, f32)>,
+ Option<(String, Decimal)>,
>,
) -> Result<(), String> {
// Try to get exchange rates from cached data (output from program gen_exchange_rates)
@@ -196,7 +213,7 @@ impl etradeTaxReturnHelper::Residency for PL {
etradeTaxReturnHelper::Exchange::USD(date) => ("usd", date),
etradeTaxReturnHelper::Exchange::EUR(date) => ("eur", date),
etradeTaxReturnHelper::Exchange::PLN(_) => {
- *val = Some(("N/A".to_owned(), 1.0));
+ *val = Some(("N/A".to_owned(), Decimal::ONE));
return Ok::<(), String>(());
} // For PLN to PLN follow fast path
};
@@ -241,20 +258,33 @@ impl etradeTaxReturnHelper::Residency for PL {
fn present_result(
&self,
- gross_div: f32,
- tax_div: f32,
- gross_sold: f32,
- cost_sold: f32,
+ gross_interests: Decimal,
+ gross_div: Decimal,
+ tax_div: Decimal,
+ gross_sold: Decimal,
+ cost_sold: Decimal,
) -> (Vec, Option) {
let mut presentation: Vec = vec![];
- let tax_pl = 0.19 * gross_div;
+
+ // Art. 30a ust. 1 pkt 1–3 PIT (odsetki):
+ // Art. 63 §1a OP — podstawa ceiled to grosz; 19% tax also ceiled to grosz.
+ let gross_interests_pln = ceil_to_grosz(gross_interests);
+ let tax_interests_pl = ceil_to_grosz(dec!(0.19) * gross_interests_pln);
+
+ // Art. 30a ust. 1 pkt 4 PIT (dywidendy):
+ // Art. 63 §1 OP — podstawa rounded half-up to full złoty; 19% tax also rounded half-up.
+ let gross_div_pln = round_half_up_to_zloty(gross_div);
+ let tax_div_pl = round_half_up_to_zloty(dec!(0.19) * gross_div_pln);
+
+ let tax_pl = tax_interests_pl + tax_div_pl;
+
presentation.push(format!(
- "(DYWIDENDY) PRZYCHOD Z ZAGRANICY: {:.2} PLN",
- gross_div
+ "(DYWIDENDY+ODSETKI) PRZYCHOD Z ZAGRANICY: {:.2} PLN (w tym: {:.2}zł od odsetek i {:.2}zł od dywidend)",
+ gross_div_pln + gross_interests_pln, gross_interests_pln, gross_div_pln
));
presentation.push(format!(
- "===> (DYWIDENDY) ZRYCZALTOWANY PODATEK: {:.2} PLN",
- tax_pl
+ "===> (DYWIDENDY+ODSETKI) ZRYCZALTOWANY PODATEK: {:.2} PLN (w tym: {:.2}zł od odsetek i {:.2}zł od dywidend)",
+ tax_pl, tax_interests_pl, tax_div_pl
));
presentation.push(format!(
"===> (DYWIDENDY) PODATEK ZAPLACONY ZAGRANICA: {:.2} PLN",
@@ -269,7 +299,7 @@ impl etradeTaxReturnHelper::Residency for PL {
cost_sold
));
if tax_div > tax_pl {
- (presentation,Some(format!("Warning: Tax paid in US({tax_div} PLN) is higher than the tax that you are to pay in Poland({tax_pl} PLN). This either means that there was a problem with declaration of your residency to avoid double taxation or you are having income from countries that are having higher tax at source than the one used in Poland(19%)")))
+ (presentation,Some(format!("Warning: Tax paid in US({tax_div:.2} PLN) is higher than the tax that you are to pay in Poland({tax_pl:.2} PLN). This either means that there was a problem with declaration of your residency to avoid double taxation or you are having income from countries that are having higher tax at source than the one used in Poland(19%)")))
} else {
(presentation, None)
}
@@ -279,24 +309,47 @@ impl etradeTaxReturnHelper::Residency for PL {
#[cfg(test)]
mod tests {
use super::*;
+ use rust_decimal::dec;
+ #[test]
+ fn test_ceil_to_grosz() {
+ // Art. 63 §1a OP: always ceil to 0.01 PLN
+ assert_eq!(ceil_to_grosz(dec!(1.231)), dec!(1.24));
+ assert_eq!(ceil_to_grosz(dec!(1.230)), dec!(1.23));
+ assert_eq!(ceil_to_grosz(dec!(1.001)), dec!(1.01));
+ assert_eq!(ceil_to_grosz(dec!(0.0)), dec!(0.0));
+ // Never rounds down, even for tiny fractions
+ assert_eq!(ceil_to_grosz(dec!(0.441)), dec!(0.45));
+ }
+
+ #[test]
+ fn test_round_half_up_to_zloty() {
+ // Art. 63 §1 OP: round half-up to full PLN
+ assert_eq!(round_half_up_to_zloty(dec!(100.0)), dec!(100));
+ assert_eq!(round_half_up_to_zloty(dec!(100.4)), dec!(100));
+ assert_eq!(round_half_up_to_zloty(dec!(100.5)), dec!(101));
+ assert_eq!(round_half_up_to_zloty(dec!(100.9)), dec!(101));
+ assert_eq!(round_half_up_to_zloty(dec!(0.0)), dec!(0));
+ assert_eq!(round_half_up_to_zloty(dec!(0.49)), dec!(0));
+ assert_eq!(round_half_up_to_zloty(dec!(0.5)), dec!(1));
+ }
#[test]
fn test_present_result_pl() -> Result<(), String> {
let rd: Box = Box::new(PL {});
- let gross_div = 100.0f32;
- let tax_div = 15.0f32;
- let gross_sold = 1000.0f32;
- let cost_sold = 10.0f32;
+ let gross_div = dec!(100.0);
+ let tax_div = dec!(15.0);
+ let gross_sold = dec!(1000.0);
+ let cost_sold = dec!(10.0);
let ref_results: Vec = vec![
- "(DYWIDENDY) PRZYCHOD Z ZAGRANICY: 100.00 PLN".to_string(),
- "===> (DYWIDENDY) ZRYCZALTOWANY PODATEK: 19.00 PLN".to_string(),
+ "(DYWIDENDY+ODSETKI) PRZYCHOD Z ZAGRANICY: 100.00 PLN (w tym: 0.00zł od odsetek i 100.00zł od dywidend)".to_string(),
+ "===> (DYWIDENDY+ODSETKI) ZRYCZALTOWANY PODATEK: 19.00 PLN (w tym: 0.00zł od odsetek i 19.00zł od dywidend)".to_string(),
"===> (DYWIDENDY) PODATEK ZAPLACONY ZAGRANICA: 15.00 PLN".to_string(),
"===> (SPRZEDAZ AKCJI) PRZYCHOD Z ZAGRANICY: 1000.00 PLN".to_string(),
"===> (SPRZEDAZ AKCJI) KOSZT UZYSKANIA PRZYCHODU: 10.00 PLN".to_string(),
];
- let (results, _) = rd.present_result(gross_div, tax_div, gross_sold, cost_sold);
+ let (results, _) = rd.present_result(dec!(0.0), gross_div, tax_div, gross_sold, cost_sold);
results
.iter()
@@ -306,11 +359,50 @@ mod tests {
Ok(())
}
+ // Art. 63 §1a OP: interests base and tax are ceiled to grosz (never rounded down).
+ // gross_interests=0.441 → ceil to 0.45; tax = ceil(0.19 * 0.45) = ceil(0.0855) = 0.09
+ #[test]
+ fn test_present_result_interests_ceil_to_grosz() {
+ let rd: Box = Box::new(PL {});
+ let (results, _) =
+ rd.present_result(dec!(0.441), dec!(0.0), dec!(0.0), dec!(0.0), dec!(0.0));
+ assert_eq!(results[0], "(DYWIDENDY+ODSETKI) PRZYCHOD Z ZAGRANICY: 0.45 PLN (w tym: 0.45zł od odsetek i 0.00zł od dywidend)");
+ assert_eq!(results[1], "===> (DYWIDENDY+ODSETKI) ZRYCZALTOWANY PODATEK: 0.09 PLN (w tym: 0.09zł od odsetek i 0.00zł od dywidend)");
+ }
+
+ // Art. 63 §1 OP: dividends base and tax are rounded half-up to full złoty (not grosz).
+ // gross_div=100.5 → rounds up to 101; tax = round_half_up(0.19 * 101) = round_half_up(19.19) = 19
+ // gross_div=100.4 → rounds down to 100; tax = round_half_up(0.19 * 100) = 19
+ #[test]
+ fn test_present_result_dividends_round_to_zloty() {
+ let rd: Box = Box::new(PL {});
+ let (results_up, _) =
+ rd.present_result(dec!(0.0), dec!(100.5), dec!(0.0), dec!(0.0), dec!(0.0));
+ assert_eq!(results_up[0], "(DYWIDENDY+ODSETKI) PRZYCHOD Z ZAGRANICY: 101.00 PLN (w tym: 0.00zł od odsetek i 101.00zł od dywidend)");
+ assert_eq!(results_up[1], "===> (DYWIDENDY+ODSETKI) ZRYCZALTOWANY PODATEK: 19.00 PLN (w tym: 0.00zł od odsetek i 19.00zł od dywidend)");
+
+ let (results_down, _) =
+ rd.present_result(dec!(0.0), dec!(100.4), dec!(0.0), dec!(0.0), dec!(0.0));
+ assert_eq!(results_down[0], "(DYWIDENDY+ODSETKI) PRZYCHOD Z ZAGRANICY: 100.00 PLN (w tym: 0.00zł od odsetek i 100.00zł od dywidend)");
+ }
+
+ // Both income types combined: interests use §1a (ceil to grosz), dividends use §1 (half-up to złoty).
+ // gross_interests=0.441 → 0.45, tax_interests=0.09
+ // gross_div=100.5 → 101, tax_div=19 → combined: 101.45, tax 19.09
+ #[test]
+ fn test_present_result_combined_rounding() {
+ let rd: Box = Box::new(PL {});
+ let (results, _) =
+ rd.present_result(dec!(0.441), dec!(100.5), dec!(0.0), dec!(0.0), dec!(0.0));
+ assert_eq!(results[0], "(DYWIDENDY+ODSETKI) PRZYCHOD Z ZAGRANICY: 101.45 PLN (w tym: 0.45zł od odsetek i 101.00zł od dywidend)");
+ assert_eq!(results[1], "===> (DYWIDENDY+ODSETKI) ZRYCZALTOWANY PODATEK: 19.09 PLN (w tym: 0.09zł od odsetek i 19.00zł od dywidend)");
+ }
+
#[test]
fn test_get_exchange_rates_pl() -> Result<(), String> {
let mut dates: std::collections::HashMap<
etradeTaxReturnHelper::Exchange,
- Option<(String, f32)>,
+ Option<(String, Decimal)>,
> = std::collections::HashMap::new();
dates.insert(
etradeTaxReturnHelper::Exchange::PLN("07/14/81".to_owned()),
@@ -330,19 +422,19 @@ mod tests {
let mut expected_result: std::collections::HashMap<
etradeTaxReturnHelper::Exchange,
- Option<(String, f32)>,
+ Option<(String, Decimal)>,
> = std::collections::HashMap::new();
expected_result.insert(
etradeTaxReturnHelper::Exchange::PLN("07/14/81".to_owned()),
- Some(("N/A".to_owned(), 1.0)),
+ Some(("N/A".to_owned(), Decimal::ONE)),
);
expected_result.insert(
etradeTaxReturnHelper::Exchange::PLN("08/14/81".to_owned()),
- Some(("N/A".to_owned(), 1.0)),
+ Some(("N/A".to_owned(), Decimal::ONE)),
);
expected_result.insert(
etradeTaxReturnHelper::Exchange::PLN("09/14/81".to_owned()),
- Some(("N/A".to_owned(), 1.0)),
+ Some(("N/A".to_owned(), Decimal::ONE)),
);
assert_eq!(dates, expected_result);
@@ -354,27 +446,28 @@ mod tests {
fn test_present_result_double_taxation_warning_pl() -> Result<(), String> {
let rd: Box = Box::new(PL {});
- let gross_div = 100.0f32;
- let tax_div = 30.0f32;
- let gross_sold = 1000.0f32;
- let cost_sold = 10.0f32;
+ let gross_div = dec!(100.0);
+ let tax_div = dec!(30.0);
+ let gross_sold = dec!(1000.0);
+ let cost_sold = dec!(10.0);
let ref_results: Vec = vec![
- "(DYWIDENDY) PRZYCHOD Z ZAGRANICY: 100.00 PLN".to_string(),
- "===> (DYWIDENDY) ZRYCZALTOWANY PODATEK: 19.00 PLN".to_string(),
+ "(DYWIDENDY+ODSETKI) PRZYCHOD Z ZAGRANICY: 100.00 PLN (w tym: 0.00zł od odsetek i 100.00zł od dywidend)".to_string(),
+ "===> (DYWIDENDY+ODSETKI) ZRYCZALTOWANY PODATEK: 19.00 PLN (w tym: 0.00zł od odsetek i 19.00zł od dywidend)".to_string(),
"===> (DYWIDENDY) PODATEK ZAPLACONY ZAGRANICA: 30.00 PLN".to_string(),
"===> (SPRZEDAZ AKCJI) PRZYCHOD Z ZAGRANICY: 1000.00 PLN".to_string(),
"===> (SPRZEDAZ AKCJI) KOSZT UZYSKANIA PRZYCHODU: 10.00 PLN".to_string(),
];
- let (results, warning) = rd.present_result(gross_div, tax_div, gross_sold, cost_sold);
+ let (results, warning) =
+ rd.present_result(dec!(0.0), gross_div, tax_div, gross_sold, cost_sold);
results
.iter()
.zip(&ref_results)
.for_each(|(a, b)| assert_eq!(a, b));
- let ref_msg = "Warning: Tax paid in US(30 PLN) is higher than the tax that you are to pay in Poland(19 PLN). This either means that there was a problem with declaration of your residency to avoid double taxation or you are having income from countries that are having higher tax at source than the one used in Poland(19%)".to_string();
+ let ref_msg = "Warning: Tax paid in US(30.00 PLN) is higher than the tax that you are to pay in Poland(19.00 PLN). This either means that there was a problem with declaration of your residency to avoid double taxation or you are having income from countries that are having higher tax at source than the one used in Poland(19%)".to_string();
match warning {
Some(msg) => assert_eq!(msg, ref_msg),
@@ -406,18 +499,18 @@ mod tests {
),
(
etradeTaxReturnHelper::Exchange::EUR("02/23/24".to_owned()),
- Some(("2024-02-21".to_string(), 3.994)),
+ Some(("2024-02-21".to_string(), dec!(3.994))),
),
]);
let expected_rates = std::collections::HashMap::from([
(
etradeTaxReturnHelper::Exchange::USD("02/26/24".to_owned()),
- Some(("2024-02-23".to_string(), 4.005)),
+ Some(("2024-02-23".to_string(), dec!(4.005))),
),
(
etradeTaxReturnHelper::Exchange::EUR("02/23/24".to_owned()),
- Some(("2024-02-21".to_string(), 3.994)),
+ Some(("2024-02-21".to_string(), dec!(3.994))),
),
]);
@@ -433,7 +526,7 @@ mod tests {
),
(
etradeTaxReturnHelper::Exchange::EUR("02/23/00".to_owned()),
- Some(("2020-02-21".to_string(), 3.994)),
+ Some(("2020-02-21".to_string(), dec!(3.994))),
),
]);
@@ -455,11 +548,11 @@ mod tests {
let expected_rates = std::collections::HashMap::from([
(
etradeTaxReturnHelper::Exchange::EUR("02/10/23".to_owned()),
- Some(("2023-02-09".to_string(), 4.7363)),
+ Some(("2023-02-09".to_string(), dec!(4.7363))),
),
(
etradeTaxReturnHelper::Exchange::EUR("09/25/23".to_owned()),
- Some(("2023-09-22".to_string(), 4.6069)),
+ Some(("2023-09-22".to_string(), dec!(4.6069))),
),
]);
diff --git a/src/transactions.rs b/src/transactions.rs
index f04e327..508d82f 100644
--- a/src/transactions.rs
+++ b/src/transactions.rs
@@ -4,6 +4,8 @@
use chrono;
use chrono::Datelike;
use polars::prelude::*;
+use rust_decimal::prelude::ToPrimitive;
+use rust_decimal::Decimal;
use std::collections::HashMap;
pub use crate::logging::ResultExt;
@@ -107,9 +109,9 @@ pub fn verify_transactions(
/// transfered on settlement date
pub fn reconstruct_sold_transactions(
- sold_transactions: &Vec<(String, String, f32, f32, f32, Option)>,
- gains_and_losses: &Vec<(String, String, f32, f32, f32)>,
-) -> Result)>, String> {
+ sold_transactions: &Vec<(String, String, Decimal, Decimal, Decimal, Option)>,
+ gains_and_losses: &Vec<(String, String, Decimal, Decimal, Decimal)>,
+) -> Result)>, String> {
// Ok What do I need.
// 1. trade date
// 2. settlement date
@@ -117,8 +119,14 @@ pub fn reconstruct_sold_transactions(
// 4. gross income
// 5. cost cost basis
// 6. company symbol (ticker)
- let mut detailed_sold_transactions: Vec<(String, String, String, f32, f32, Option)> =
- vec![];
+ let mut detailed_sold_transactions: Vec<(
+ String,
+ String,
+ String,
+ Decimal,
+ Decimal,
+ Option,
+ )> = vec![];
if sold_transactions.len() > 0 && gains_and_losses.is_empty() {
return Err("\n\nERROR: Sold transaction detected, but corressponding Gain&Losses document is missing. Please download Gain&Losses XLSX document at:\n
@@ -163,7 +171,7 @@ pub fn reconstruct_sold_transactions(
pub fn create_detailed_revolut_transactions(
transactions: Vec<(String, crate::Currency, crate::Currency, Option)>,
- dates: &std::collections::HashMap>,
+ dates: &std::collections::HashMap>,
) -> Result, &str> {
let mut detailed_transactions: Vec = Vec::new();
@@ -195,8 +203,8 @@ pub fn create_detailed_revolut_transactions(
}
pub fn create_detailed_interests_transactions(
- transactions: Vec<(String, f32, f32)>,
- dates: &std::collections::HashMap>,
+ transactions: Vec<(String, Decimal, Decimal)>,
+ dates: &std::collections::HashMap>,
) -> Result, &str> {
let mut detailed_transactions: Vec = Vec::new();
transactions
@@ -209,8 +217,8 @@ pub fn create_detailed_interests_transactions(
let transaction = Transaction {
transaction_date: transaction_date.clone(),
- gross: crate::Currency::USD(*gross_us as f64),
- tax_paid: crate::Currency::USD(*tax_us as f64),
+ gross: crate::Currency::USD(*gross_us),
+ tax_paid: crate::Currency::USD(*tax_us),
exchange_rate_date,
exchange_rate,
company: None, // No company info when interests are paid on money
@@ -227,8 +235,8 @@ pub fn create_detailed_interests_transactions(
}
pub fn create_detailed_div_transactions(
- transactions: Vec<(String, f32, f32, Option)>,
- dates: &std::collections::HashMap>,
+ transactions: Vec<(String, Decimal, Decimal, Option)>,
+ dates: &std::collections::HashMap>,
) -> Result, &str> {
let mut detailed_transactions: Vec = Vec::new();
transactions
@@ -241,8 +249,8 @@ pub fn create_detailed_div_transactions(
let transaction = Transaction {
transaction_date: transaction_date.clone(),
- gross: crate::Currency::USD(*gross_us as f64),
- tax_paid: crate::Currency::USD(*tax_us as f64),
+ gross: crate::Currency::USD(*gross_us),
+ tax_paid: crate::Currency::USD(*tax_us),
exchange_rate_date,
exchange_rate,
company: company.clone(),
@@ -261,15 +269,15 @@ pub fn create_detailed_div_transactions(
// pub trade_date: String,
// pub settlement_date: String,
// pub acquisition_date: String,
-// pub income_us: f32,
-// pub cost_basis: f32,
+// pub income_us: Decimal,
+// pub cost_basis: Decimal,
// pub exchange_rate_settlement_date: String,
-// pub exchange_rate_settlement: f32,
+// pub exchange_rate_settlement: Decimal,
// pub exchange_rate_acquisition_date: String,
-// pub exchange_rate_acquisition: f32,
+// pub exchange_rate_acquisition: Decimal,
pub fn create_detailed_sold_transactions(
- transactions: Vec<(String, String, String, f32, f32, Option)>,
- dates: &std::collections::HashMap>,
+ transactions: Vec<(String, String, String, Decimal, Decimal, Option)>,
+ dates: &std::collections::HashMap>,
) -> Result, &str> {
let mut detailed_transactions: Vec = Vec::new();
transactions.iter().for_each(
@@ -315,7 +323,7 @@ pub fn create_detailed_revolut_sold_transactions(
crate::Currency,
Option,
)>,
- dates: &std::collections::HashMap>,
+ dates: &std::collections::HashMap>,
) -> Result, &str> {
let mut detailed_transactions: Vec = Vec::new();
transactions.iter().for_each(
@@ -333,8 +341,8 @@ pub fn create_detailed_revolut_sold_transactions(
settlement_date: sold_date.clone(),
trade_date: sold_date.clone(),
acquisition_date: acquired_date.clone(),
- income_us: (gross_income.value() as f32),
- cost_basis: (cost_basis.value() as f32),
+ income_us: gross_income.value(),
+ cost_basis: cost_basis.value(),
exchange_rate_settlement_date,
exchange_rate_settlement,
exchange_rate_acquisition_date,
@@ -362,7 +370,7 @@ pub(crate) fn create_per_company_report(
revolut_sold_transactions: &[SoldTransaction],
) -> Result {
// Key: Company Name , Value : (gross_pl, tax_paid_in_us_pl, cost_pl)
- let mut per_company_data: HashMap