aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-23Merge bitcoin/bitcoin#22858: [0.21] Final changes for 0.21.2v0.21.2fanquake
6c102a696e1f6e3316b2a90c33c5d7875298c875 release: bump RC to 0 (-final) (fanquake) f78570ef87d8dd4864ddfe67439315bd6f374edd doc: mention bech32m/BIP350 in doc/descriptors.md (Pieter Wuille) Pull request description: Backports: * #22837 - doc: mention bech32m/BIP350 in doc/descriptors.md ACKs for top commit: laanwj: ACK 6c102a696e1f6e3316b2a90c33c5d7875298c875 glozow: ACK 6c102a696e1f6e3316b2a90c33c5d7875298c875 looks correct to me jnewbery: ACK 6c102a696e1f6e3316b2a90c33c5d7875298c875 Tree-SHA512: 8cdfee955e1abdbc6900df3d01982cb77ec57ef008b75487ac9a63d571cc21e4ae0f107849aa575d239a8662619553778955ffbebf57201de5afcd34298d57b4
2021-09-23release: bump RC to 0 (-final)fanquake
2021-09-23doc: mention bech32m/BIP350 in doc/descriptors.mdPieter Wuille
Github-Pull: #22837 Rebased-From: d2a09c83554cec864a27e704cf2a0d513691a567
2021-08-28Merge bitcoin/bitcoin#22823: [0.21] Update version and release notes for ↵v0.21.2rc2fanquake
0.21.2rc2 b8f5fb7c6bc2aac3b6313ba796f3ed11101caf65 build: bump version to 0.21.2rc2 (fanquake) 82c5208ddcfc51ffcb8b03b5f750bbcebd994599 doc: update release notes for rc2 (fanquake) Pull request description: Bump version to `0.21.2rc2` and add the new backports to the release notes. ACKs for top commit: MarcoFalke: ACK b8f5fb7c6bc2aac3b6313ba796f3ed11101caf65 hebasto: ACK b8f5fb7c6bc2aac3b6313ba796f3ed11101caf65 Tree-SHA512: 7bcdf6c42ac75fb24df8d6b60bddcac5f14363a3f7dd89a239f798bb14b5c911c2d7535a0372c2998719d33a561d0d28b0b6764aaf1f2ec330d4035ce965997b
2021-08-28build: bump version to 0.21.2rc2fanquake
2021-08-28doc: update release notes for rc2fanquake
2021-08-28Merge bitcoin/bitcoin#22808: [0.21] 0.21.2rc2 backportsfanquake
d9b18c12903e3ed3b06e1452852159e5b713ff28 Fix build with Boost 1.77.0 (Rafael Sadowski) 2d7f2606c193dd14307243816d40180867a0d913 ci: Run fuzzer task for the master branch only (Hennadii Stepanov) Pull request description: Backported: 1) #22730 1) #22713 ACKs for top commit: fanquake: ACK d9b18c12903e3ed3b06e1452852159e5b713ff28 - Checked the backports and tested building this branch with system Boost 1.76.0 and depends Boost 1.77.0. Tree-SHA512: dc3e0a2b3c1e3e80f6570e329a08ebc5103c233c30562f660432891c90bacb4d88d5373e32b9ac34fd143be46b8e63900ce9f52786b04bc799a4d17ba9fd8499
2021-08-28Merge bitcoin/bitcoin#22810: [0.21] qt: Pre-0.21.2rc2 translations updatefanquake
2a7568999cbc7cd09e71c07d0a2871b9a9343ef0 qt: Pre-0.21.2rc2 translations update (Hennadii Stepanov) Pull request description: New translations with insignificant amount of translated strings were ignored: `ach`, `cmn`, `gd`, `ig`, `sc`. ACKs for top commit: fanquake: ACK 2a7568999cbc7cd09e71c07d0a2871b9a9343ef0 - didn't review any specific translations. Tree-SHA512: fab299a7a3691b38f85812e9302ae3a6fda2b7bd95a824aaf5537f1bc066417f912c042fa4366432ed091244f051cc7d4c57161d8da1e4bd6261a85570f8f12e
2021-08-27Fix build with Boost 1.77.0Rafael Sadowski
BOOST_FILESYSTEM_C_STR changed to accept the path as an argument Github-Pull: bitcoin/bitcoin#22713 Rebased-From: acb7aad27ec8a184808aa7905887e3b2c5d54e9c
2021-08-27ci: Run fuzzer task for the master branch onlyHennadii Stepanov
Github-Pull: bitcoin/bitcoin#22730 Rebased-From: 5a9e255e5a324e7aa0b63a9634aa3cfda9a300bd
2021-08-27qt: Pre-0.21.2rc2 translations updateHennadii Stepanov
2021-08-17Merge bitcoin/bitcoin#22721: doc: add inital PR and author list to 0.21.2 ↵W. J. van der Laan
release notes 2873e01c6a257519247267ccbced5973e18ab019 doc: add inital PR and author list to 0.21.2 release notes (fanquake) Pull request description: Any further updates / version number adjustments can be done prior to final. ACKs for top commit: laanwj: ACK 2873e01c6a257519247267ccbced5973e18ab019 Tree-SHA512: 57135f64ccfc41ec63aa265eb25978a2afd68b6b8719e79358c52ec7d2dc0cee04b81f720b827263c381529f457667b0b1a8f7d835118dc56bf2a6aa9d321859
2021-08-17doc: add inital PR and author list to 0.21.2 release notesfanquake
Any further updates / version number adjustments can be done prior to final.
2021-08-11qt: Translations update for 0.21.2rc1v0.21.2rc1W. J. van der Laan
Tree-SHA512: f0a74deb84711645ba112b364fbe958db51992f28d0ec87262dd0a21f1052a270f5fc8c13dfd6dc6f5a8a5580e7f1991b3de2d44e3a44252cd3c315dfc2e00ba
2021-08-11doc: Update manual pages for 0.21.2W. J. van der Laan
Tree-SHA512: 26870ec4b8423879ccdbe0d74670985bf73f4814d32ff5d2c312acdd766e93e07e6a69bfb58b0288be8ba402d283ce493684420b254f8535936cb061ee11c0d2
2021-08-11build: Bump version to 0.21.2rc1W. J. van der Laan
Tree-SHA512: 73d4df24ad516ca54ab23bcbd686223447a208904bb18a7a34400daab6d4b07322a7f244504547c772ede08b9e8606291df9d101236d8fd6debcb43563d069ac
2021-08-06Merge bitcoin/bitcoin#22569: [0.21] Rate limit the processing of rumoured ↵MarcoFalke
addresses 2a5710805195ca54a02aff3540ceaefb9cb3b3e2 Avoid Appveyor compilation failure (Pieter Wuille) a653aacbd66a47edd6d14ddc62fec2d4038456b8 Add logging and addr rate limiting statistics (Pieter Wuille) aaa4833fc9c3d44378e232002f4b9b447a2d18cb Functional tests for addr rate limiting (Pieter Wuille) 8df3e5bd84f2b2b60730034cbd71fe8f3276d434 Randomize the order of addr processing (Pieter Wuille) 83dfe6c65ef6c30ca01348ee5059c3d76e03d1d3 Rate limit the processing of incoming addr messages (Pieter Wuille) Pull request description: Backport of #22387. The rate at which IP addresses are rumoured (through ADDR and ADDRV2 messages) on the network seems to vary from 0 for some non-participating nodes, to 0.005-0.025 addr/s for recent Bitcoin Core nodes. However, the current codebase will happily accept and process an effectively unbounded rate from attackers. There are measures to limit the influence attackers can have on the addrman database (bucket restrictions based on source IPs), but still - there is no need to permit them to feed us addresses at a rate that's orders of magnitude larger than what is common on the network today, especially as it will cause us to spam our peers too. This PR implements a [token bucket](https://en.wikipedia.org/wiki/Token_bucket) based rate limiter, allowing an average of 0.1 addr/s per connection, with bursts up to 1000 addresses at once. Whitelisted peers as well as responses to GETADDR requests are exempt from the limit. New connections start with 1 token, so as to not interfere with the common practice of peers' self-announcement. Due to the lack of the `Peer` struct in 0.21, the relevant fields have been added to `CNodeState` instead, necessitating additional locks, and slightly different structure to avoid too much `cs_main` grabbing. The last test-improving commit has also been dropped, as the code has changed too much. Most of the behavior is still tested however, just not the part that compares with RPC statistics. ACKs for top commit: achow101: ACK 2a5710805195ca54a02aff3540ceaefb9cb3b3e2 GeneFerneau: Approach + code review ACK [2a57108](https://github.com/bitcoin/bitcoin/pull/22569/commits/2a5710805195ca54a02aff3540ceaefb9cb3b3e2) jnewbery: reACK 2a5710805195ca54a02aff3540ceaefb9cb3b3e2 Tree-SHA512: ecf4891ac6173d732aa40b4d05fc0dce94127a613cb9051bf6188a2f95824f8234b17d386dd0b352ddf3d352202cc2ff07915ae35657d8e64907e3f80703d1d9
2021-08-05Avoid Appveyor compilation failurePieter Wuille
2021-08-05Add logging and addr rate limiting statisticsPieter Wuille
Includes logging improvements by Vasil Dimov and John Newbery. Github-Pull: #22387 Rebased-From: f424d601e1b6870e20bc60f5ccba36d2e210377b
2021-08-05Functional tests for addr rate limitingPieter Wuille
Github-Pull: #22387 Rebased-From: b4ece8a1cda69cc268d39d21bba59c51fa2fb9ed
2021-08-05Randomize the order of addr processingPieter Wuille
Github-Pull: #22387 Rebased-From: 5648138f5949013331c017c740646e2f4013bc24
2021-08-05Rate limit the processing of incoming addr messagesPieter Wuille
While limitations on the influence of attackers on addrman already exist (affected buckets are restricted to a subset based on incoming IP / network group), there is no reason to permit them to let them feed us addresses at more than a multiple of the normal network rate. This commit introduces a "token bucket" rate limiter for the processing of addresses in incoming ADDR and ADDRV2 messages. Every connection gets an associated token bucket. Processing an address in an ADDR or ADDRV2 message from non-whitelisted peers consumes a token from the bucket. If the bucket is empty, the address is ignored (it is not forwarded or processed). The token counter increases at a rate of 0.1 tokens per second, and will accrue up to a maximum of 1000 tokens (the maximum we accept in a single ADDR or ADDRV2). When a GETADDR is sent to a peer, it immediately gets 1000 additional tokens, as we actively desire many addresses from such peers (this may temporarily cause the token count to exceed 1000). The rate limit of 0.1 addr/s was chosen based on observation of honest nodes on the network. Activity in general from most nodes is either 0, or up to a maximum around 0.025 addr/s for recent Bitcoin Core nodes. A few (self-identified, through subver) crawler nodes occasionally exceed 0.1 addr/s. Github-Pull: #22387 Rebased-From: 0d64b8f709b4655d8702f810d4876cd8d96ded82
2021-07-30Merge bitcoin/bitcoin#22578: [0.21] Additional backportsMarcoFalke
55e941f5df18ce6d9b1ee8759f1419c5d1f03a8f test: Fix intermittent feature_taproot issue (MarcoFalke) 681f728a35b800d6f1cc359171b6b40de9ddb9a4 ci: Build with --enable-werror by default, and document exceptions (Hennadii Stepanov) 89426c43fb75fabd72e6e16433dab7f8ee9c860c ci: Fix macOS brew install command (Hennadii Stepanov) Pull request description: This backports a few changes to fix CI failures we are seeing with the 0.21 branch. Backports #21663, this might be the easiest way to fix the macOS CI failures we're seeing. i.e in #22569. The underlying issue is that the older CI images are using a version of brew that without running `brew update` first, is trying to download packages like Boost, from bintray (which no-longer works). This also includes #20182, as by fixing macOS failure, via running `brew upgrade`, we end up using a newer version of miniupnpc, which emits a GNU extension related warning, and causes the build to fail, because we use `-Werror`. Backporting #20535 should fix #22581. ACKs for top commit: hebasto: ACK 55e941f5df18ce6d9b1ee8759f1419c5d1f03a8f, I verified changes by backporting locally. Tree-SHA512: 3ab2c5c73c707d0f5b862264f3a0179cdeee30ae55aae872f3c3e0bb81d71a5027c39ba830210c99a21f98cc86c4167c4f215e24d1a8891ec79ce512debf82df
2021-07-30Merge bitcoin/bitcoin#22580: [0.21] Backport: Reset scantxoutset progress ↵fanquake
before inferring descriptors 080b47d9ce6288e1725857b3026291981ef75e34 rpc: reset scantxoutset progress on finish (Pavol Rusnak) Pull request description: Backport of #19362. ACKs for top commit: achow101: Code Review ACK 080b47d9ce6288e1725857b3026291981ef75e34 Tree-SHA512: 1f58965393663bfc0796fc06ef846bc87521d04d79c2a62227acf4d466de649db7d244c8992a32aa1086e6bf0ac92fb8a5aeadf4673441fefa505e40c02d5daf
2021-07-29test: Fix intermittent feature_taproot issueMarcoFalke
Github-Pull: #20535 Rebased-From: fa275e1539941b49fe206ff0bf110e3362bec6bb
2021-07-29ci: Build with --enable-werror by default, and document exceptionsHennadii Stepanov
Github-Pull: #20182 Rebased-From: 2f6fe4e4e9e9e35e713c0a20cf891b023592110a
2021-07-29ci: Fix macOS brew install commandHennadii Stepanov
Details: https://github.com/Homebrew/discussions/discussions/691 Github-Pull: #21663 Rebased-From: b7381552cd4f965c45f1560d9cfc2fb09dbfcc1d
2021-07-29rpc: reset scantxoutset progress on finishPavol Rusnak
Github-Pull: #19362 Rebased-From: 8c4129b4540f4f739413ed9a6fbfc78afc252f42
2021-07-29Merge bitcoin/bitcoin#22427: [0.21] gui: Backports for 0.21.2fanquake
e3f1da4bf3db120cc691a844d612fbc522f11fb9 qt: Draw "eye" sign at the beginning of watch-only addresses (Hennadii Stepanov) 6ca54ce2ae0808513172c4945e38165e766e1381 qt: Do not extend recent transaction width to address/label string (Hennadii Stepanov) f220368220abb11040fa944a853cda3d4f1fe84d qt: Do not use QClipboard::Selection on Windows and macOS. (Hennadii Stepanov) Pull request description: Backports https://github.com/bitcoin-core/gui/pull/277, https://github.com/bitcoin-core/gui/pull/365. ACKs for top commit: fanquake: ACK e3f1da4bf3db120cc691a844d612fbc522f11fb9 jarolrod: ACK e3f1da4bf3db120cc691a844d612fbc522f11fb9 Tree-SHA512: 43cc2ac48f4e5014bfdbe86cc904bb36d2be9fcd257f0fc0800c384bd727bb98466723e450a8909b06708784ad91184be599c49cf60de2e4377202774cb878f6
2021-07-11qt: Draw "eye" sign at the beginning of watch-only addressesHennadii Stepanov
Github-Pull: bitcoin-core/gui#365 Rebased-From: cd46c11577a05f3dc9eac94f27a6985f6ba0509e
2021-07-11qt: Do not extend recent transaction width to address/label stringHennadii Stepanov
Github-Pull: bitcoin-core/gui#365 Rebased-From: 9ea1da6fc91e17bdaa722001b97aadf576f07f65
2021-07-11qt: Do not use QClipboard::Selection on Windows and macOS.Hennadii Stepanov
Windows and macOS do not support the global mouse selection. Github-Pull: bitcoin-core/gui#277 Rebased-From: 7f3a5980c1d54988a707b961fd2ef647cebb4c5b
2021-07-08Merge bitcoin/bitcoin#22366: [0.21] fuzz: add missing ECCVerifyHandle to ↵fanquake
base_encode_decode da816247f0c00e1644f7ebe2b848cfd6a5c7026e util: Properly handle -noincludeconf on command line (MarcoFalke) 513613d8a87337f1d1f639bc9426165c3b6be62e Cleanup -includeconf error message (MarcoFalke) 70eac6fcd02b6c44cb4b1f2fb895eae147e3f490 Fix crash when parsing command line with -noincludeconf=0 (MarcoFalke) c5357fa4151e1ac90427ae0493a7bb3e451f8de5 fuzz: add missing ECCVerifyHandle to base_encode_decode (Andrew Poelstra) Pull request description: Backports #22279, #22002 and #22137 to fix fuzzing issues in the 0.21 branch: https://github.com/bitcoin/bitcoin/runs/2864012729. ACKs for top commit: achow101: ACK da816247f0c00e1644f7ebe2b848cfd6a5c7026e Tree-SHA512: ab8751387e42e03ff43594ae34be8ed0dba903d7da1aaecb9f19c08366570d8995abe89ba0c9bafe37662940f3e83bef1e9e50f330e86114cd6a773becd1fd21
2021-07-01Merge bitcoin/bitcoin#22255: [0.21] wallet: Do not iterate a directory if ↵MarcoFalke
having an error while accessing it 7b0b201d109b6240f114498fc1b94af9cb85f26e wallet: Do not iterate a directory if having an error while accessing it (Hennadii Stepanov) Pull request description: This change prevents infinite looping for, for example, system folders on Windows. Github-Pull: #21907 Rebased-From: 29c9e2c2d2015ade47ed4497926363dea3f9c59b Note: Trivial backport, but in a differently-named function in another file ACKs for top commit: hebasto: ACK 7b0b201d109b6240f114498fc1b94af9cb85f26e, I have reviewed the code and it looks OK, I agree it can be merged. Tree-SHA512: d41ab267250e8bfd9289cacf1fd804cc1a3bb20fc479dc9da5a69ebf26530b552b11b2ee6b11e17a1c146ca792ee65bd64eeb2269fa5e73a70361da8a2a09925
2021-06-30util: Properly handle -noincludeconf on command lineMarcoFalke
This bug was introduced in commit fad0867d6ab9430070aa7d60bf7617a6508e0586. Unit test Co-Authored-By: Russell Yanofsky <russ@yanofsky.org> Github-Pull: #22137 Rebased-From: fa910b47656d0e69cccb1f31804f2b11aa45d053
2021-06-30Cleanup -includeconf error messageMarcoFalke
Remove the erroneous trailing newline '\n'. Also, print only the first value to remove needless redundancy in the error message. Github-Pull: #22002 Rebased-From: fad0867d6ab9430070aa7d60bf7617a6508e0586
2021-06-30Fix crash when parsing command line with -noincludeconf=0MarcoFalke
Github-Pull: #22002 Rebased-From: fa9f711c3746ca3962f15224285a453744cd45b3
2021-06-29fuzz: add missing ECCVerifyHandle to base_encode_decodeAndrew Poelstra
GitHub Pull: #22279 Rebased-From: 906d7913117c8f10934b37afa27ae8ac565da042
2021-06-19Merge bitcoin/bitcoin#22191: [0.21] gitian: Use custom MacOS code signing toolMarcoFalke
0fe60a84ae2f52e87ee07cd0243f09d45b0b15e2 Use latest signapple commit (Andrew Chow) 5313d6aed2d8bd515401b3782c0bc352af423015 gitian: Remove codesign_allocate and pagestuff from MacOS build (Andrew Chow) 27d691b6b5b4a15dc3d1f9dd248a8880ab3ab326 gitian: use signapple to create the MacOS code signature (Andrew Chow) 2f33e339a8903e79bf750367c073056bea4a9788 gitian: use signapple to apply the MacOS code signature (Andrew Chow) 65ce8330427114c2827d00a658d2e5887349c76a gitian: install signapple in gitian-osx-signer.yml (Andrew Chow) Pull request description: Backport of #20880 and #22190 ACKs for top commit: MarcoFalke: cherry-pick-only ACK 0fe60a84ae 🍀 Tree-SHA512: e864048fab02a1857161602dd53abba552ca3f859c133a47a5e62c28d3e4de9cd099bce86123a1b5892042b09f51cc1ddd2ed1b0c71bfba162710eaee3f5bf91
2021-06-15wallet: Do not iterate a directory if having an error while accessing itHennadii Stepanov
This change prevents infinite looping for, for example, system folders on Windows. Github-Pull: #21907 Rebased-From: 29c9e2c2d2015ade47ed4497926363dea3f9c59b
2021-06-08Use latest signapple commitAndrew Chow
Update gitian and guix to use the same latest signapple commit Github-Pull: #22190 Rebased-From: 683d197970a533690ca1bd4d06d021900e87cb8b
2021-06-08gitian: Remove codesign_allocate and pagestuff from MacOS buildAndrew Chow
Github-Pull: #20880 Rebased-From: 2c403279e2f0f7c8c27c56d4e7b0573c59571f0a
2021-06-08gitian: use signapple to create the MacOS code signatureAndrew Chow
Github-Pull: #20880 Rebased-From: f55eed251488d70d5e2e3a2965a4f8ec0c476853
2021-06-08gitian: use signapple to apply the MacOS code signatureAndrew Chow
Github-Pull: #20880 Rebased-From: 95b06d21852b28712db6c710e420a58bdc1a0944
2021-06-08gitian: install signapple in gitian-osx-signer.ymlAndrew Chow
Github-Pull: #20880 Rebased-From: 42bb1ea363286b088257cabccb686ef1887c1d3b
2021-05-31Merge bitcoin/bitcoin#22022: Final backports for 0.21.2rc1fanquake
09620b89f5f78434080196162c75e3e65cc8d47f Update Windows code signing certificate (Andrew Chow) 46320ba72f80dd865b05bbfe2654cde124859881 Remove user input from URI error message (unknown) f2a88986a18f197f6a4690f5dcca248f6b6170e2 p2p, bugfix: use NetPermissions::HasFlag() in CConnman::Bind() (Jon Atack) Pull request description: ACKs for top commit: achow101: ACK 09620b89f5f78434080196162c75e3e65cc8d47f Diffs match. hebasto: ACK 09620b89f5f78434080196162c75e3e65cc8d47f, tested https://github.com/bitcoin-core/gui/pull/280 behavior. fanquake: ACK 09620b89f5f78434080196162c75e3e65cc8d47f Tree-SHA512: 1c4aaec42ea047261b5d30851bca605540eccf572708403335b38016127d3230b5380b3f5ef03921ed62192239b0d3da9787d51f557ed7911bf6bb2a7c172753
2021-05-22Update Windows code signing certificateAndrew Chow
Github-Pull: bitcoin/bitcoin#22017 Rebased-From: 167fb1fc72e309587a8ef1d7844cb51a5483f54f
2021-05-22Remove user input from URI error messageunknown
+ Detailed error messages for invalid address + Used `IsValidDestination` instead of `IsValidDestinationString` + Referred to https://github.com/bitcoin/bitcoin/pull/20832 for solution Github-Pull: bitcoin-core/gui#280 Rebased-From: 3bad0b3fada9ab7c5b03d31dc33d72654c1ba2be
2021-05-22p2p, bugfix: use NetPermissions::HasFlag() in CConnman::Bind()Jon Atack
PF_NOBAN is a multi-flag that includes PF_DOWNLOAD, so the conditional in CConnman::Bind() using a bitwise AND will return the same result for both the "noban" status and the "download" status. Example: `PF_DOWNLOAD` is `0b1000000` `PF_NOBAN` is `0b1010000` This makes a check like `flags & PF_NOBAN` return `true` even if `flags` is equal to `PF_DOWNLOAD`. If `-whitebind=download@1.1.1.1:8765` is specified, then `1.1.1.1:8765` should be added to the list of local addresses. We only want to avoid adding to local addresses (that are advertised) a whitebind that has a `noban@` flag. As a result of a mis-check in `CConnman::Bind()` we would not have added `1.1.1.1:8765` to the local addresses in the example above. Co-authored-by: Vasil Dimov <vd@FreeBSD.org> Github-Pull: bitcoin/bitcoin#21644 Rebased-From: dde69f20a01acca64ac21cb13993c6e4f8709f23
2021-05-13Merge bitcoin/bitcoin#21932: [0.21] depends: update Qt 5.9 source urlW. J. van der Laan
deff4e763e11f92e5cb7732cace7239fead4fba8 depends: update Qt 5.9 source url (Kittywhiskers Van Gogh) Pull request description: ## Expected Behavior Running `make` in the depends directory should result in the successful building of host platform dependencies ## Actual Behavior `make` terminates as `qt.mk` points to (now) outdated URL path for Qt 5.9 sources, returning error 404 ## Remedy Update `qt.mk` to point to updated source location as Qt has relocated them ACKs for top commit: RandyMcMillan: tACK deff4e7 hebasto: ACK deff4e763e11f92e5cb7732cace7239fead4fba8, I have verified the new link, and checked that old one is unavailable: jarolrod: tACK deff4e763e11f92e5cb7732cace7239fead4fba8 Tree-SHA512: d5b11a678c871a87e6884a35641178ee349728ead51da06018953be36aab5a30aef9c80b549da49802e87903eb0b7836cc343301325bd8c505cb4246f6752505