From cec46d09705863c2c743c4f3ae5fb913040754c4 Mon Sep 17 00:00:00 2001 From: Doan Tran Cong Danh Date: Tue, 22 Oct 2019 09:59:50 +0700 Subject: [PATCH 1/4] nspr: update to 4.23. --- srcpkgs/nspr/template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/srcpkgs/nspr/template b/srcpkgs/nspr/template index a30f39088e1..6827b76f827 100644 --- a/srcpkgs/nspr/template +++ b/srcpkgs/nspr/template @@ -1,16 +1,16 @@ # Template file for 'nspr' pkgname=nspr -version=4.22 +version=4.23 revision=1 build_wrksrc=nspr build_style=gnu-configure makedepends="zlib-devel" short_desc="NetScape Portable Runtime" -maintainer="Orphaned " +maintainer="Doan Tran Cong Danh " license="MPL-2.0" homepage="http://www.mozilla.org/projects/nspr/" distfiles="${MOZILLA_SITE}/nspr/releases/v${version}/src/${pkgname}-${version}.tar.gz" -checksum=c9e4b6cc24856ec93202fe13704b38b38ba219f0f2aeac93090ce2b6c696d430 +checksum=4b9d821037faf5723da901515ed9cac8b23ef1ea3729022259777393453477a4 do_configure() { CFLAGS="$CFLAGS -D_PR_POLL_AVAILABLE -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO -D_PR_INET6_PROBE" From 8772294984d2fff7a8a524ea6b05e9f413b9c98e Mon Sep 17 00:00:00 2001 From: Doan Tran Cong Danh Date: Tue, 22 Oct 2019 09:43:34 +0700 Subject: [PATCH 2/4] nss: update to 3.46.1. While we're at it, also fix a quoting problem if user has changed XBPS_CFLAGS, so that the -O flag isn't the first one, e.g: XBPS_CFLAGS=-march=native -O2 -pipe nspr is updated to 4.23 but nss 3.46.1 only requires 4.22 Release Notes: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_3.46.1_release_notes --- srcpkgs/nss/template | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/srcpkgs/nss/template b/srcpkgs/nss/template index 693e4524e26..e26701eaea6 100644 --- a/srcpkgs/nss/template +++ b/srcpkgs/nss/template @@ -3,17 +3,17 @@ _nsprver=4.22 pkgname=nss -version=3.46 +version=3.46.1 revision=1 hostmakedepends="perl" makedepends="nspr-devel sqlite-devel zlib-devel" depends="nspr>=${_nsprver}" short_desc="Mozilla Network Security Services" -maintainer="Orphaned " +maintainer="Doan Tran Cong Danh " license="MPL-2.0" homepage="https://www.mozilla.org/projects/security/pki/nss" distfiles="${MOZILLA_SITE}/security/nss/releases/NSS_${version//\./_}_RTM/src/nss-${version}.tar.gz" -checksum=6b699649d285602ba258a4b0957cb841eafc94eff5735a9da8da0adbb9a10cef +checksum=3bf7e0ed7db98803f134c527c436cc68415ff17257d34bd75de14e9a09d13651 do_build() { # Respect LDFLAGS @@ -32,7 +32,7 @@ do_build() { cd nss # Build nsinstall for host. - make CC=$BUILD_CC LD=$BUILD_LD CFLAGS=$BUILD_CFLAGS LDFLAGS=$BUILD_LDFLAGS \ + make CC=$BUILD_CC LD=$BUILD_LD CFLAGS="$BUILD_CFLAGS" LDFLAGS="$BUILD_LDFLAGS" \ ${_native_use64} -C coreconf if [ "$CROSS_BUILD" ]; then From 5714a1a41d7caecb1eecc677e78bb3b35f02f680 Mon Sep 17 00:00:00 2001 From: Doan Tran Cong Danh Date: Tue, 22 Oct 2019 08:17:53 +0700 Subject: [PATCH 3/4] firefox: update to 70.0. --- .../patches/initialize_sched_param.patch | 22 ------------------- srcpkgs/firefox/patches/rust-configure.patch | 10 ++++----- srcpkgs/firefox/template | 8 +++---- 3 files changed, 9 insertions(+), 31 deletions(-) delete mode 100644 srcpkgs/firefox/patches/initialize_sched_param.patch diff --git a/srcpkgs/firefox/patches/initialize_sched_param.patch b/srcpkgs/firefox/patches/initialize_sched_param.patch deleted file mode 100644 index ee593c3c217..00000000000 --- a/srcpkgs/firefox/patches/initialize_sched_param.patch +++ /dev/null @@ -1,22 +0,0 @@ -source: https://github.com/padenot/audio_thread_priority/commit/a1443a02667c649cb72873a45b98fffbd2eac5a8 - -commit a1443a02667c649cb72873a45b98fffbd2eac5a8 -Author: Paul Adenot -Date: Mon Aug 19 15:00:39 2019 +0200 - - initialize sched_param using std::mem::zeroed to fix compilation against other libc than glibc - -diff --git a/src/rt_linux.rs b/src/rt_linux.rs -index d8c0114..fbb4fde 100644 ---- third_party/rust/audio_thread_priority/src/rt_linux.rs.orig 2019-09-03 22:57:00.197152845 +0200 -+++ third_party/rust/audio_thread_priority/src/rt_linux.rs 2019-09-03 23:05:42.219159018 +0200 -@@ -93,8 +93,8 @@ pub fn promote_current_thread_to_real_time_internal(audio_buffer_frames: u32, - { - let thread_id = unsafe { libc::syscall(libc::SYS_gettid) }; - let pthread_id = unsafe { libc::pthread_self() }; -+ let mut param = unsafe { std::mem::zeroed::() }; - let mut policy = 0; -- let mut param = libc::sched_param { sched_priority: 0 }; - - if unsafe { libc::pthread_getschedparam(pthread_id, &mut policy, &mut param) } < 0 { - error!("pthread_getschedparam error {}", pthread_id); diff --git a/srcpkgs/firefox/patches/rust-configure.patch b/srcpkgs/firefox/patches/rust-configure.patch index 84077f4fc88..887c102bc55 100644 --- a/srcpkgs/firefox/patches/rust-configure.patch +++ b/srcpkgs/firefox/patches/rust-configure.patch @@ -1,9 +1,9 @@ Mozilla rustc check does not support crossbuild: let's remove it Remove calls to unwrap_rustup, they fail if rustup isn't present ---- build/moz.configure/rust.configure 2019-07-06 03:48:30.000000000 +0200 -+++ build/moz.configure/rust.configure 2019-07-09 22:35:23.326851798 +0200 -@@ -79,9 +79,6 @@ +--- build/moz.configure/rust.configure.orig 2019-10-17 04:19:59.000000000 +0700 ++++ build/moz.configure/rust.configure 2019-10-22 11:48:55.616022140 +0700 +@@ -78,9 +78,6 @@ return unwrap @@ -13,7 +13,7 @@ Remove calls to unwrap_rustup, they fail if rustup isn't present set_config('CARGO', cargo) set_config('RUSTC', rustc) -@@ -294,26 +291,6 @@ +@@ -348,26 +345,6 @@ os.write(in_fd, source) os.close(in_fd) @@ -33,7 +33,7 @@ Remove calls to unwrap_rustup, they fail if rustup isn't present - a rust std library for that target installed. Try: - - rustup target add {} -- '''.format(host_or_target.alias, rustc, rustc_target.alias))) +- '''.format(host_or_target.alias, rustc, rustc_target))) - check_cmd_output(*cmd, onerror=failed) - if not os.path.exists(out_path) or os.path.getsize(out_path) == 0: - failed() diff --git a/srcpkgs/firefox/template b/srcpkgs/firefox/template index 4797caaff0f..fecce28d997 100644 --- a/srcpkgs/firefox/template +++ b/srcpkgs/firefox/template @@ -3,15 +3,15 @@ # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-i18n". # pkgname=firefox -version=69.0.3 -revision=2 +version=70.0 +revision=1 build_helper="rust" short_desc="Mozilla Firefox web browser" maintainer="Johannes " license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later" homepage="https://www.mozilla.org/firefox/" distfiles="${MOZILLA_SITE}/${pkgname}/releases/${version}/source/${pkgname}-${version}.source.tar.xz" -checksum=7527947a876c1734b8b2339f19b8ff8da6f4e4d06351b44940cb48d3509bb891 +checksum=cd9f2902753831c07c4b2ee64f7826f33ca1123add6440dc34abe3ff173a0cc6 lib32disabled=yes @@ -25,7 +25,7 @@ makedepends="nss-devel libjpeg-turbo-devel gtk+-devel gtk+3-devel icu-devel $(vopt_if startup_notification startup-notification-devel) $(vopt_if xscreensaver libXScrnSaver-devel) $(vopt_if sndio sndio-devel)" -depends="nss>=3.37.3 desktop-file-utils hicolor-icon-theme" +depends="nss>=3.46.1 desktop-file-utils hicolor-icon-theme" conflicts="firefox-esr>=0" build_options="alsa dbus pulseaudio startup_notification xscreensaver sndio wayland" From a29526c2aaf5ffe88a2bec0f43bf8bff4c82bf94 Mon Sep 17 00:00:00 2001 From: Doan Tran Cong Danh Date: Tue, 22 Oct 2019 08:18:54 +0700 Subject: [PATCH 4/4] firefox-i18n: update to 70.0. [skip ci] --- srcpkgs/firefox-i18n/template | 188 +++++++++++++++++----------------- 1 file changed, 94 insertions(+), 94 deletions(-) diff --git a/srcpkgs/firefox-i18n/template b/srcpkgs/firefox-i18n/template index 195e6cae79c..50b5679c1bc 100644 --- a/srcpkgs/firefox-i18n/template +++ b/srcpkgs/firefox-i18n/template @@ -1,6 +1,6 @@ # Template file for 'firefox-i18n' pkgname=firefox-i18n -version=69.0.3 +version=70.0 revision=1 build_style=meta short_desc="Firefox language packs" @@ -135,96 +135,96 @@ _pkgtmpl() { } } -checksum="a1fe1121be9101b79f367ac076385eaec6968801a62885f57c384fb09868238f - fd6107cddcda5a0c8c9ba760feab316e77e5a987ef6c7114893321066401c355 - 997c878695570b1fda1a4f746949b8537fda2529e074bab6eca2892a1bc6ea41 - e76232a61add80d0395509bc80e73ff13b9f5b7b6eb7c35146099bf8fe3d4aed - ae5152b4975d22e71f0240deaa2264e82e418639d9efce73d96764c1317d0cd2 - 683b10bb636ec4495aa90b13c6024c750b37078d82a3c63090966d9e4a4ebfb4 - c6555151719e7a2d40b31a8f1c705b3e9c7417b67b38ba032cb8812115cb818b - 82c9285c382fefab9412a1937d7c6b68eb3b567049a93c68905282591a05177e - 1c5c0047b7f082e131fa91448f688a95e593a09abb0c0fa4bcc5cdd9e8cbfd19 - 622681ac66f1ab1a8cf75de45994dcc4f854deacd6e7d58a93b6d44607833671 - 344d583caea6f11baf4344bf9b412eec81d4c624b844b09e744522ebcf06ce7d - 93ebdc5bdb8f051669a2cea3eacaf6ceecb408417fb56e7e018002704690c37d - cfd6c98b5eb20f6761eba4f6b3e7e0c57bae51b9d3e942eb9e240eb457f2b60a - ff34237a75284256d22fd6766c08e0b3a8f9519cc26a1f1ab948981e36d71842 - 908f50093f7fc0a465c321d0333b16c920ea29313d57d8f03183eb90d41da543 - 67124bf73da619463b9e197d821c6644417ab0b5738239ad40f630ef4c4de42c - 3ea3ce70bef4da7dc4738b6beebcc0a081dc5e9aaa2c7183d11706e1d38c379c - 72a8e033cb0a7768513c0895b4c1fbd8438b8e797b67e1be92fb015faed9d6bb - aac8a1726b42f676e173075a57e3b896b0e42f98d51706c7d19bc49ecfb94b66 - f0a2042f866b192564a1a9f429e95cdb5d3a90529158ada032d964a7916a24b8 - 1ab35b85654b496844af2b19a5dfdde90b6e7398cc779708ef8bfcfb47f5d902 - 0fd4b930cfd6ea836483dc34a2773cbb8ef5c07d9b3e844a51f0463f11fd3fa3 - 4c4061e8c8d4235f50be280cac4a9606f13ff9f9e8ae6ad2d3c71b827c91bbff - 70b3e5e09685b4976bfb1bb323e17e6b6ca541446ff76cda71093a9bedac505b - 5c33e76fdf67d4bd93e376d7d56b8bc08991bdc8982d1c993fa9233aa8a35eec - 8a864e2851d8294cc43c5aa728a36fe59ddb55503b733daa183af3846966f7c3 - a42403fb15569298c6fabcfa4dde98abafb67ca589079b4146a8c689799746aa - 6762d666bf678535d09e7947a8f169eb06764a76f5ec4622e16f1f744839b1ab - 6d39d1042f3e3117e7d76732157d9e8cffb581ff487728964ec5f36490914437 - ef5f4aba14c5d579b7df9e09748cc823020ed351edf073b938df302af0c435b9 - 875d3e68b04d6c37078cdae3bbde7d13e329c203db329a18efc32a0ab56e0565 - 049fa451b0440bbc36ff274e070cfb994cced74a82a7a78377ffa980e611932c - 9a51fe45eb40209badbf1568546d4cd3087d585d23792fa13bd46fd5b7236c89 - c573bd3c6865b2d526e6255fd17968cbc59e7282e023b3105d7e77516d4d6d1d - 275d5d91ddda752a0df1949847194fe300a84d818ed39b37d858e633c38e5b86 - 9a4d59c08bb52fd49de47564b1721d12cf49be0078a41eeb0cc65afd26195e49 - 607722efc9d404cc57db7bd979b29c7e030b470c355e55231f8edb070559a83f - 199743ef6027b889779a35e4a347199b5a8e3c18743f94463917a63122d07677 - 86d60cf23dbee0648bcfd3b0c352572bcedfde5cb603c46fdd6b465de956d527 - 358fede8a1d6b036aee92d4b31f21014896b44bb56853fd09a4daf1751ed15bb - ad70709ab6113dc7884d73e3269e47159c4d6a994865ec82b47df906a468bfa6 - a511d123e07ab45720a21d90a37f92eaaedaad1151ee32dc300c68f35c240087 - 766854315527b75e2c24ef6483bb419b01018bac17ffae37791576606644bd7e - b9903d4f2579c958fd990b3f7d5c69fa3c8168c867d35f644ea31996dd449842 - 4214a4e6d73e62461a39a458f054f1445d2a0fc64bf0afe7648c4092f02b7a92 - 6116028a3cd699035d2b032b7ad9778263c1f20db26b4666868582f35b8522e7 - f7f2aecee92bf22392d369aa15c40db71cb3092aa18c7441168280602c43c2a7 - d5ae8eb6911f9d889bbcc0a783d8866842f85c6f9537837f871c999fb4d5300a - ad9b3a26c6f4e3512ec8d89c36383ec6dab0d580d630844a2a0b7ec406459be9 - 9e4b35764a820360b6c707c2d6fc01a67f8f22b61f75d650530f66ee799a6afc - 83e35cb62fcf0e9000694eb73ddf0967bea94bc8df1f3556b71de2e249d7e366 - eeafa09c5d734528c8b3a016342093e6932b30c7015f6bbe279a967c6ff3ac23 - 04b9ea8f6ac1fa3a7abbb68ce9893c20a41faa3e67062a8aad267273184ed501 - a4609bc10e8a05bc0c44c701d72fb3cbc0716b720ef13aa3afa613a666c75235 - d94362ccbd55f969331be79a7779b00ea09cd7adf3f6bd4a71078a0e37595e4b - a2c8e88926785b73adc75d1786e205577312059b60c5cfcc04d44062a3a9b1ba - 25666a742f307bb930d443f36757a868fe8866dbbc888affa6cb49c79457408b - 8b40e2cd7b7ab754d063a6b343fd7b96da883fbd033bcc6c71156c121b2c820d - db2f2f470332d9c3d6c2d451abc61033f81a5fdb8de4c076553eefb3e9d0f3a2 - 54997c0901bc72fad294bfbb521ef61bb3877c8cc4c999b63e58b0009c4bbe6f - 077df50da564d14553ca0da94d9fce354ed7f920fe2d3978034a08a245a3c76c - d177dc3c31aa6c9829f05be1d6aa412f3e3b79ec5b81d873975f922d65a525a5 - 92b72ab62e3edac00eb4bc6c9d781ba727f71b5efacdc9ae1b8ac18f067d40e2 - 1a03b038f900820eeaf32f5f81522a39d8e107fdeb36d57d6f6901d0a21db61a - d6ed8cc3c57b0204e5dd0ecc3012394581d63f519a49b30ae033cf1d8c775bf9 - 0e4b093eafaa5d741879a67840f5b61e181e80afef07f9737b8b737ed9e0928e - f1ae877a59e30efdc902c20f24b22535efeb21f8f85ea93e550d5145d3a79881 - 393ae4c8d8c0e1737d90fad83a0b1afb659f184521c70768ff409aaa21891ad2 - e85e9ee803abb7aa6919a175c329de872966ce3f032819352f67805dba4c5bb3 - d231481d0c23d1a29d8c5ddddd6a2cd05a9260f07ec7052865eccd9531cfbdfe - 5d9ee66ca385b8882a05b6afd8dd0e54ce2ee9bd57d8d9acdc01d97a7a7eec73 - d6c0fa65dd6f26f4f7e714eab60b7c3c4bda67da4ff7fb0eb3da24c3fb38e833 - 5d7b9159b328a6464b7dd432e4bcff5f8158fa9ec0de17380cc7df3a7d3e4748 - 631b04e8f88e7dec679be0c9a83d1048d6992e8e232b619c101447e79f8b6381 - 8b901d290314a450f1e0cb7a49df8072207e4dbafda6bbe36261cd585be118d6 - a6144fc2d415e773fd978addc0dff529dc042ad9b1cb08287c4fb825493ee349 - 6c9fe0338e6b794b2bd5fe0e946c727eadce839059dfbad92f6a935da4e92a3c - bb95b4bfd3f3d9ae2e2dae4ede2c6d4efb8408767265cee824d7c7596618e4f3 - 0b182a245f85ad45231f36b687189db388eb0f4f45a5144ec49c3e0b924ae15d - 9f5cbfb3b161b6ce8b6fdfcb85cf565842071c3128b87d53f256d53d68c5ecb5 - 75c3658dd79a4cb6de64cd71593d67aebdce42cfc2f41fb0a94e66e058d44b70 - 17d6fa57ab9f80e22fbf88acf53144aec14398a3976c6f8cd65bd0f72b3f43c1 - 780237b1113499aae31c0bf3e0abc3a1f0b4e7881077059863c72f2820149d9b - f46cfe546f9b7c1a57e99259fb06346de42735c72c54cb3b93a2dbcd163c2e09 - 2b4c2a589b113355a125b5e989a7b5d040b28d1c75bec6ce46df629a3333805d - 7efdfd487c000610834dce9ce6d89f14223553268d9473da2b73b13ffc8332fc - 0be896cbd211b86157f254b6fc7802b9a8e893732f29a7ca59c6413840ee557c - 67d4686418a92259dc15429d79bb618c75c5e0c74d50665fba5ce886d0159b1b - fafe262a77712f47fc01a568a9a07cf71be2584e2920a6be9a0932727c1094c6 - 6039458f32e426928601b967ef1d16ec17970c900709cbe963127776ad23eb4b - 57c341c30115c29755455b3b481276a18a1304042baeb9c5109620a05014918e - 37cb5e3a4525b71ef292d6708a4c5aff803fcd5642b88f58b572ecb87b283542 - 9a50effad764ab95cef0a56be66d5ad78bf6833038ea0b6e8dbec63513dda124" +checksum="64b48bf93daeeca554fcf602e36a163e169a38532b69dd02636689a5c2a647f1 + 455082ed8bf07b0ec0c7edf62c6d78d0cebb11fc0c7a6b3c7e6b63b934c1bb8e + 7823562cc05f0312b5fd61a29b80b068649a820ad20525cf4cc142262b3643e7 + 691b74c7c21877743e9089a3f9affb2d9926df08105b454d9ebefb00b50fb5d9 + 656341b0107c9fa6c638a372a9259e47c0131f8e440e24ffd1c4a82acdd97e77 + dbde666681f49ced07f95ee9b4b77cac943d77c6d35142b57b5c71813b192917 + b0a90757b960e4351d76d947042797eab803c7639de04dee2e86aaccf8ad6ff8 + 32b823857fcd390c90d220a1078c342bc23b56205bd6419726472a42969a6dd9 + c23a3e13bdb71f0b0faf1106c77db610a1ed7c9debbb47d1aecb84554aae1420 + 9a80f08c9e85edebd9f6528df7629ebd105c11579be90ee52c9dd40b9f670c54 + ba44d089cf30d3c9c6ad7a9301a0c441c29ba237589544ada921f3410b0b8534 + cdae152593e692e9e4ef7c7243c7ff398965ef85adcb6b7a1c31d8f958f0af78 + d9026e6557f26532291df346218e5b4e364ba6388590cebf860b99d574f310d2 + 7fada4fb70b048fac1ad38670f6a20a8866704903cc08156a5791170b9d0a7da + 8b0ce99bf15a4623e53bcd38f009603242439a4f029cb74f64630b4adfb210d5 + 860710e49efb75e17725d19b647e02ddb47c2ae828daf7c8042e71571721fa63 + 17b86818a0b4ac9eb7ba9a30c79239040ecacaee032d6e805ef26da0c1bfa226 + 7b5ee3db8a8b157c0a6209f2f86450e2eb12b319fe4e1b539635330beff1eb08 + 36f5de9484f194e5bae60a1442601e7eac440fdf514c3ad43b50f34095ccb821 + 3b1c5e7a4a180d0dde02168c857d7bb836efdfdc47f5acb7f8923270def4d79c + 492c459919debd1bad90df630f215873201f8e798ab850adbfd81a986fa473b0 + fa8cd6796b5ee4d294394f86b9331695c706631e1e4c475807c16cdaee6499bb + 5586500082fc4731351da55c784a71eada91a8287937db0f8b4e1355025d5896 + c01b87904b798c28748d9ce49bc3259e3a8f33dec2eda85b23caf98bb3dbad25 + 07d473524a8695071940fbb6c231e60d6b6e5d785bd3fedcf665cab9ecd1597a + 995e03110e0e7b9c1b89127d141a07a30b663935bc051ddeed20e8ffdde8f59e + 71524b16379a029309e8a5dcf17304063e181651fbab05b1987d2d050a1306ae + 372269e1a7ebe86f901451aab0d40447aa4c2e99b6d2a5625ea83109383a059d + a949c60bd021861b0cbeaf515e85559795668e146edf1f8cf8e61a61fdc00c77 + bacaf5c9e3f168a33e057408d40807ffff0c51665663c38c5c1a281e25f910db + a6d0e754ee752a5491896ddc95b29f3262d432d5ad25a544dc8c5a5a5a840e3e + f3507eaa6c1168a71cba7479e0026e357c351e577a9979fc697ef33134e5ced8 + a572bab97687df9ec0e27a35e37437b5f32e233906935893677df7fdbdb9cc4a + 5c5200acd9b82404a5f9d0bf0164717f92f7e0fc4a4ad23b6349e7a53db550ae + a57ca0802d350dfcc5ae37b45d0afaa967fa7e01167d749e5c40735efcb39537 + aff65533ba9b6bfbb3d1134f3884fef561d03701a67a1aa6dad84797967dce06 + ca025f3901f4b5c998d33b24729be8c6226c7740c8240520807d00ffd78337af + 1353459dcc1528ac1a1b884647c9eb14d0ad82646a58ff5a79cb0940497394c5 + be780a6f3ac88239e95b34aa05b6ac5d4f12971e4b46c1bec67b0718d086f020 + d06e16174f596541beb122e1812b92a1fb225223a43d45c555e8745eef4923f0 + 64416ce0dcddc89c27ce091520ae063ad406d1246b79890a7160e5dfd36a17fc + 55f4cbdcf74ebaff38a0e1b2e71162dab398b1f8d473f92266956bb2489cdb01 + d796c19cde097a29bc89bb846f1c944e84976769a01d217e53457293404a50d8 + 1ddc4115d24a38dc400cd8d64f2a799a2c158c8ca3b775ad4356e9864b005d27 + f879411069d4f893e6b54998213fc0f9bc22c380636f0271df497651ad1286cb + 8d586c3dd45467468332ef347a001117123841437e32be7ed4f6336a8a22f63b + f9cd6cdd7da32bbda176576856d47227f274e00678c892d46c53ca6f17a44e6b + 4aaef87870e503523ef3e1d6f61f2f9b810e88d4f28e56a3d35476384cadb981 + aef744e8ccb85f03037cd8cfa1ef78cf9041d61fa5573f406420564e6c5b32bf + f85a86043791c83ed84751d5c68dd5cfabddc0fed5c411cec752404b0764675b + e90e86b63bab329bf78e723eec8525aaf6d257dbef2023ddb71b08a082c25fa0 + 54bfa2815b766d8cbc740c26fb6d17a799d71e9b0aa6977589061f4099875696 + 5232ea038a3ed9988a43a95b40f5c44306eb42839acd0bbfe9d6619b6bde08f0 + f3064b0ea11aae7d1d6b6e0b1e07d7975ba96f5ca69b1b6557dd9eef41f9ac3a + 9e04c87811a6ae0d0c5a2b5910fd9c794a237bb15c5118c2127415b3e6ce48e4 + 83690e25efd8fe39fec6ff0451e4a4bb748120caa5d9c14e3aca264633c3565c + 614d93d5e8c678966e04539ce267adbd64517b5e77ec13c6243716d9ec96f24f + 02b2ba8230ed4cf7e8cca7502c57ade9a42c5e86868d2b4c72c5a4274b633d75 + f8d8d58e8947e4ada9e25df89ae741953847b8d45d2fedb61ae40bd213a41248 + 755ec7dac241f6063c64bc9cc03e58972340d5db94c87e8950ec99ce5151a9ac + 995d7b0bd68e278f97cace0cda63c7463999161a7eaae2ee142cb0d14cebb2a4 + 4315030949e73b6deb4ef3bda668b29909b3d8533182806b585858db7f387038 + 950ac4f701fab2c4cf1ea770042dc30b62514c7bd51c57bde04b29a94981b845 + 750d41c749827aea69e41bf1d408a2a766d506f270d185bcbb29a2fad94a197a + cc4b2e2a177335e0ec0b463cb8dc2637246128b43821d9640ca90aa552f60f06 + dec43c89a6460384089473b1dfd2cfa1602b1b948b529575ee2811f001109b4a + cdfb26a6cdf2615702d3c442900a64378e0d2f23b44b6eb50b1cf90aac8ec90a + af872cff76b7d2ccb5826eb1d24adce573a633fe42a0817e8dd17ac1f613fc16 + 20b8e56baccd5ba93153639eda7cb78e77ef3fb2a1d5d01df035e9c4fd934bbd + 1a27bd023b8cc825172f939886d9d28bdd0569f20082daaa680bbead3619f204 + aa20638ec6263add39c33fbd82169e4316bca397b9d9b2237c5571f117548454 + 5d819d12e6b6a38ad4e075a6de4467f774866b1ec5c3853b3473bc74f854216c + 7a8852adeb483a89c8987dcc6f7368248e7b55d22ff4001da07249568adb2b52 + 5dc1492aecca0c27417755c65e78c18293b855653adfe479cf585c9b57a592eb + 4c17f0de6170f0ae7a069465a8ece910408933608ca0d2bf750619a8d4e7cf0f + b2e43bd30de9acaac1e3469655788fcc2c468d7131c06fce0f2825a1c1acb1c9 + 85a183d46bd2b41f2598da3063ce581931f0a5491dbc070337f88d7273c767fe + 8d82292c602c0939675bd2f01db9545ba01e7b15e23a912f10fd4084661b07ba + f8a7eb6131f9fbd414f4fd79c519331549431635f6d9823409ae71ca5a00a538 + 7f59f7c5cb5e26739047615266b6139d824e4a82b265e8a123af8fb0175c4b22 + f6622559cd933104b689563ace3de9a7b8a2638a4f7f0227f036dc9661d91598 + 14711cb93802391877aabf4f8864b32f1d8ced05fc6cea00995d3f41b38669ef + 00d64f5ae72cc150e43dc43952c19a36937d27618a3b6bb94727179a1586fa07 + 07efde1ea3a7b04f5d568a27b0441b1a446db46e0f6fe5a5c4ec6f4a41559840 + 18a8cb04e7c2d5c8df1e8f31a965db747d4f21f9d7d51fe8f30a5a4d88b5661b + b19799107152bc24fafbcba2339ebac19e79edd30151caef9e5443cb424c78b9 + 8ed70655ec4298cfc427c080eb0eda4a762c02e80784232e98691b6d67e03855 + efad4b79d8be7a685cf81fadece49e954fd2306708f49897076a62e4667168e3 + 8a0a4afe2a192d92a41a03e9935b5c666019d0c54a40a14265431b1fa65063e3 + 34e703e1d4045384b861cc6f80493d36597cec714f225e796a40e69926fb4032 + 71443fa9ad014144f42645ff55ffc9e32eed6e32f1c49e2135824ac172b9ac05 + 4b8179f47e2a809784568a3258bd02d51f41d9eebcecdb402d130bfe2f555355 + f0eeccfcad41cbfbbbf9c66c174813b494a85f802f838e43c62c052d22400fa1"