@algorithm.ts/gomoku
Version:
A algorithm based on minimax search and alpha-beta prune to solve gomoku game.
401 lines (309 loc) • 19.4 kB
Markdown
# Change Log
All notable changes to this project will be documented in this file. See
[Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [3.1.1](https://github.com/guanghechen/algorithm.ts/compare/@algorithm.ts/gomoku@3.1.0...@algorithm.ts/gomoku@3.1.1) (2023-06-10)
### Performance Improvements
- 🎨 use looser type IReadonlyCollection
([152a57c](https://github.com/guanghechen/algorithm.ts/commit/152a57c53b025258164c2987ad35bc2552cb249b))
- ⬆️ upgrade dependencies
([c555512](https://github.com/guanghechen/algorithm.ts/commit/c55551269eda0f98e75fca3fb862ce122b1a4889))
# 3.1.0 (2023-05-13)
### Performance Improvements
- ⬆️ upgrade dependencies
([1ebc2c1](https://github.com/guanghechen/algorithm.ts/commit/1ebc2c167dcc4024d9552aacf5838e1ffc73e58f))
# 3.0.0 (2023-04-02)
### Performance Improvements
- 🔧 add missing devDependencies
([69f6da4](https://github.com/guanghechen/algorithm.ts/commit/69f6da43cf1ecebac9f6bf8a7d8ffaced7f9de4c))
- 🔧 don't pack src/ folder into tarball file
([2dc61ad](https://github.com/guanghechen/algorithm.ts/commit/2dc61ad8c031cfc1ecf4f63c405d3e23eff1d9c9))
- 🔖 publish v3.0.0
([9bb1f35](https://github.com/guanghechen/algorithm.ts/commit/9bb1f3515444890907c8e811b989f17073f39591))
- ⬆️ upgrade devDependencies
([e88a181](https://github.com/guanghechen/algorithm.ts/commit/e88a181201ea675715be11d165b0c49c0f9224b8))
# 3.0.0-alpha.8 (2023-03-11)
### Performance Improvements
- 🔖 publish v3.0.0-alpha.8
([104385f](https://github.com/guanghechen/algorithm.ts/commit/104385f40c0be99b843e3342e85b618761047b69))
- 🔧 update package entry
([fd4445a](https://github.com/guanghechen/algorithm.ts/commit/fd4445a0197b21b1d6cc157c543c1f59116c2cc5))
- ⬆️ upgrade devDependencies
([4aac0d0](https://github.com/guanghechen/algorithm.ts/commit/4aac0d0267b4050689e95902d081302131417ec5))
# 3.0.0-alpha.7 (2023-01-09)
### Performance Improvements
- 🔖 publish v3.0.0-alpha.7
([336c4da](https://github.com/guanghechen/algorithm.ts/commit/336c4da3b92a49804c60d0a6dfb783b14712ce0a))
# 3.0.0-alpha.6 (2023-01-07)
### Performance Improvements
- 🔖 publish v3.0.0-alpha.6
([1758289](https://github.com/guanghechen/algorithm.ts/commit/1758289e40e4d8786800b21aeed3525a572e89fe))
- 🔧 set engine node>=16.0.0
([76e08d7](https://github.com/guanghechen/algorithm.ts/commit/76e08d7a410d437f83a84002c97892204c1fd5ca))
# 3.0.0-alpha.5 (2023-01-07)
### Performance Improvements
- 🔖 publish v3.0.0-alpha.5
([6c10d3c](https://github.com/guanghechen/algorithm.ts/commit/6c10d3c77bf342c7284a27e0fe07ce26fbdba05b))
- 🔧 set engine node>=16.15.1
([464c990](https://github.com/guanghechen/algorithm.ts/commit/464c99062aeec99258c1a1e475570b549f63addb))
# 3.0.0-alpha.4 (2023-01-07)
### Performance Improvements
- 🔖 publish v3.0.0-alpha.4
([969d685](https://github.com/guanghechen/algorithm.ts/commit/969d68502c3c35690ed7aee86dde2fe60cddddfc))
- 🔧 update npm entries
([950e3ec](https://github.com/guanghechen/algorithm.ts/commit/950e3ec1d0c9ec3a53de613b9048b3442697404d))
# 3.0.0-alpha.3 (2023-01-04)
### Performance Improvements
- 🔖 publish v3.0.0-alpha.3
([d50b472](https://github.com/guanghechen/algorithm.ts/commit/d50b4725bde1b43474f490a29672db5aa1482ae3))
- 🔧 support dual esm/commonjs packages
([0f91fbf](https://github.com/guanghechen/algorithm.ts/commit/0f91fbf7c22d7778175ee833afdcf05df5dd34ba))
# 3.0.0-alpha.2 (2023-01-02)
### Performance Improvements
- ✅ fix test timeout
([bea9acf](https://github.com/guanghechen/algorithm.ts/commit/bea9acfc5cf28c09cf4416b49e5dd88d6cd99b8d))
- 🔖 publish v3.0.0-alpha.2
([3d718fb](https://github.com/guanghechen/algorithm.ts/commit/3d718fba94605e2fd60a3056b502e2e1376ca0ed))
- ⬆️ upgrade dependencies
([2672a11](https://github.com/guanghechen/algorithm.ts/commit/2672a119246358d4589ae36bcabd044d395b6136))
# 3.0.0-alpha.1 (2022-11-13)
### Performance Improvements
- 🔖 publish v3.0.0-alpha.1
([8f9a0d0](https://github.com/guanghechen/algorithm.ts/commit/8f9a0d0dfee15efc08c4165848123b118c13ce81))
- ✅ update test snapshots due to the upgrade of jest
([56015d1](https://github.com/guanghechen/algorithm.ts/commit/56015d13f204dc7f3e6b23ff860ea2bb19784aab))
# 3.0.0-alpha.0 (2022-09-12)
### Features
- ✨ refactor gomoku
([3f14d1e](https://github.com/guanghechen/algorithm.ts/commit/3f14d1e5fbbd07b58ae0a58acc645c9c1f84dc0f))
### Performance Improvements
- fix package names
([f647d76](https://github.com/guanghechen/algorithm.ts/commit/f647d76ebf0606a773624c9d0121151d6e75ddd3))
- 🔖 publish v3.0.0-alpha.0
([7562a90](https://github.com/guanghechen/algorithm.ts/commit/7562a908843d63b6b1bf92e7aa2104e7b294eaa0))
## 2.0.14 (2022-08-27)
### Performance Improvements
- 🔖 publish v2.0.14
([53a2462](https://github.com/guanghechen/algorithm.ts/commit/53a24624195c9f09422c9769c552f9066bc22c70))
- 🔧 update build configs
([266538b](https://github.com/guanghechen/algorithm.ts/commit/266538bb6736e85c2439b706f11865425b570563))
- 📝 update repo link
([f0210ca](https://github.com/guanghechen/algorithm.ts/commit/f0210ca93780ed4109c90d4d337604a6b998b01b))
## 2.0.13 (2022-06-26)
### Performance Improvements
- 🎨 refactor algorithm
([339864e](https://github.com/guanghechen/algorithm.ts/commit/339864ed68b97d5cb3aa954dc1c4644812ac0891))
- 🔖 publish v2.0.13
([ebd6447](https://github.com/guanghechen/algorithm.ts/commit/ebd6447586d9958adaff5218e91768eda82b5bec))
## 2.0.12 (2022-06-07)
### Performance Improvements
- ⚡️ optimize gomoku
([2c839a4](https://github.com/guanghechen/algorithm.ts/commit/2c839a484f5be43bcf2c7b3ebcc1c29191ad0905))
- 🔖 publish v2.0.12
([cfc415a](https://github.com/guanghechen/algorithm.ts/commit/cfc415a6e56d76dcf795421d92dd81ac2a39a5fc))
## 2.0.11 (2022-04-19)
### Performance Improvements
- 🔖 publish v2.0.11
([42feafd](https://github.com/guanghechen/algorithm.ts/commit/42feafd0303f51767aa7e498f6de84d9478c1dca))
## 2.0.10 (2022-04-12)
### Performance Improvements
- ⚡️ maintain candidates in priority-queue cross state changes
([595490b](https://github.com/guanghechen/algorithm.ts/commit/595490b16d5df845f5d2e4afa7614d3db4871992))
- ⚡️ optimize unnecessary operations on maintaining candidates
([db9374f](https://github.com/guanghechen/algorithm.ts/commit/db9374f52e3cd6d95a81e29e10733d600773b6fe))
- 🔖 publish v2.0.10
([65694a5](https://github.com/guanghechen/algorithm.ts/commit/65694a5108c220d1edff9be57a12bf8c8403e14d))
## 2.0.9 (2022-04-10)
### Bug Fixes
- 🐛 fix unreasonable scoreMap
([475cc20](https://github.com/guanghechen/algorithm.ts/commit/475cc208ee144d90cc1acaa6901c7d2d4ed78ffe))
### Performance Improvements
- 🚨 fix lint warnings
([e478cc1](https://github.com/guanghechen/algorithm.ts/commit/e478cc19dc3390070101a0f321bfa744ffb6a81a))
- 🎨 tweak constants
([8ffd74a](https://github.com/guanghechen/algorithm.ts/commit/8ffd74a9ddc79356ca957cf4be9cd5b241883e9f))
- ✅ update tests
([062fa3d](https://github.com/guanghechen/algorithm.ts/commit/062fa3d24fc652a6b9e09a7ed97bbcac91884313))
- 🔖 publish v2.0.9
([1bdac64](https://github.com/guanghechen/algorithm.ts/commit/1bdac6453d21e3cfeca2e65413e01aa720a34d38))
## 2.0.8 (2022-04-10)
### Performance Improvements
- ⚡️ improve performance
([2bcb90a](https://github.com/guanghechen/algorithm.ts/commit/2bcb90ac5e63de80ffd3cebb5a49d6a70adb34b4))
- 🎨 refactor code -- separate minimax-searcher for different layers
([4ba6af6](https://github.com/guanghechen/algorithm.ts/commit/4ba6af64e2960c529ca0cb51f236810ad9330c38))
- 🎨 refactor codes
([3d8fa39](https://github.com/guanghechen/algorithm.ts/commit/3d8fa390cf06cc6c02dae546fba3a2434f71db92))
- 🔥 remove unused codes
([7dadeca](https://github.com/guanghechen/algorithm.ts/commit/7dadeca0f58363ec5f915a6f612e5b237958888b))
- ✅ update tests
([aa2c739](https://github.com/guanghechen/algorithm.ts/commit/aa2c7393306df404a6b72515ef9fa9d0a2d457bb))
- ✅ update tests
([963bea8](https://github.com/guanghechen/algorithm.ts/commit/963bea8e8a362dac50ce7ba29873eac6d9bd0644))
- 🔖 publish v2.0.8
([7d92191](https://github.com/guanghechen/algorithm.ts/commit/7d921919d03570e772a847763100eb1a58d10d2d))
## 2.0.8-alpha.0 (2022-04-05)
### Performance Improvements
- ⚡️ hierarchical search
([9db8961](https://github.com/guanghechen/algorithm.ts/commit/9db8961369928c6c22fd4654bdcd5d69cb8f49d4))
- ⚡️ improve: detect must-drop position
([3bfbb9e](https://github.com/guanghechen/algorithm.ts/commit/3bfbb9e5c887905ed2a1ede7855d9fc476bc87db))
- ⚡️ maintain mustDropPos to get the top priority candidate faster
([86113e8](https://github.com/guanghechen/algorithm.ts/commit/86113e8a1c52b3003a28080d2eb85659246069ee))
- 🎨 rename type fields
([8a6adad](https://github.com/guanghechen/algorithm.ts/commit/8a6adad500505a3ef6cc0c19f652aab282fb223c))
- ⚡️ tweak search thresholds
([2f03fe1](https://github.com/guanghechen/algorithm.ts/commit/2f03fe14297a54234330da436d101a36642ca10c))
- ⚡️ tweak search thresholds
([a266744](https://github.com/guanghechen/algorithm.ts/commit/a266744f9ab7ab5ce9017ed65e682be11e288ca2))
- ⚡️ use priority_queue to improve GomokuState.expand
([a360ccf](https://github.com/guanghechen/algorithm.ts/commit/a360ccf8cc2c81f4b21e4da5056a9419dc9633e7))
- ⚡️ use topCandidate in searchDeepSpace
([11abb27](https://github.com/guanghechen/algorithm.ts/commit/11abb27468638549be5891577279bb900c184acb))
- 🔖 publish v2.0.8-alpha.0
([24a301c](https://github.com/guanghechen/algorithm.ts/commit/24a301c145ad9f6c0e50494de39456c42bb02f29))
## 2.0.7 (2022-04-03)
### Performance Improvements
- add POSSIBILITY_SEARCH_EQUIV_CANDIDATE
([88ea7ec](https://github.com/guanghechen/algorithm.ts/commit/88ea7ecd4c2e6fd3ae5eb52df78a6de6b9dd711a))
- ⚡️ tweak scoreMap
([af85d27](https://github.com/guanghechen/algorithm.ts/commit/af85d27bf4fcc935810ad80c969b8795ddab087c))
- ⚡️ improve with priority-queue
([8cfe922](https://github.com/guanghechen/algorithm.ts/commit/8cfe92262a6bafca9811e8aac519427325eda5ec))
- 🔖 publish v2.0.7
([814bc48](https://github.com/guanghechen/algorithm.ts/commit/814bc48415c5bbea555e0807b8a862cf348df5c1))
- 🔥 remove unused codes
([36ce18f](https://github.com/guanghechen/algorithm.ts/commit/36ce18f416f01468ed7c171a17e8bdfdf142835e))
- tweak algorithm
([fd90575](https://github.com/guanghechen/algorithm.ts/commit/fd9057574c51ab2c9aa82274c032d749753e7ddf))
## 2.0.7-alpha.1 (2022-04-03)
### Bug Fixes
- 🐛 tweak initial constants
([a69f372](https://github.com/guanghechen/algorithm.ts/commit/a69f37202943db235c77cabcba05c9f80c9d8dd5))
### Performance Improvements
- 🎨 add GomokuCountMap
([9e326dd](https://github.com/guanghechen/algorithm.ts/commit/9e326dd0cb6f7272810f950ff41f0ef2bfc7433d))
- ⚡️ cache candidate score per position and direction
([41bbb77](https://github.com/guanghechen/algorithm.ts/commit/41bbb774787e1664dc6137c95672ff743d710bb6))
- 🎨 refactor algorithm
([e79b67f](https://github.com/guanghechen/algorithm.ts/commit/e79b67f58cb28d1df7979d0874a10570da503c27))
- 🎨 refactor codes
([0099728](https://github.com/guanghechen/algorithm.ts/commit/0099728355348226b20ce49ff7ee17897f12e28a))
- 🎨 refactor codes
([93f2517](https://github.com/guanghechen/algorithm.ts/commit/93f25177c9b9861f66cf0fe64bc948fbdd3a6a63))
- 🔖 publish v2.0.7-alpha.1
([fd487f4](https://github.com/guanghechen/algorithm.ts/commit/fd487f425bd3b8273a414ead8b697010fe1a3a83))
## 2.0.7-alpha.0 (2022-03-27)
### Bug Fixes
- 🐛 add the center pos as initial candidate
([496ceb5](https://github.com/guanghechen/algorithm.ts/commit/496ceb52518896c2b3ea686fb95715b0cdcc140a))
- 🐛 fix incorrectly result in '\_reAppriseCandidates'
([0e7e820](https://github.com/guanghechen/algorithm.ts/commit/0e7e8205641068918e53ddd8659642765d4230dd))
- 🐛 avoid to parse a invalid pos id
([c19a328](https://github.com/guanghechen/algorithm.ts/commit/c19a32884c884de5eec2b953caa754f9a145f9f6))
### Performance Improvements
- 🎨 default search neighbors within 2-steps as candidates
([8a9512e](https://github.com/guanghechen/algorithm.ts/commit/8a9512e3b27f60e01cf1581ba58989ae94aa242d))
- 🎨 refactor score func
([c8976b3](https://github.com/guanghechen/algorithm.ts/commit/c8976b3161c9d7553231df9153773babef05bdda))
- ⚡️ revert state cache
([54c7363](https://github.com/guanghechen/algorithm.ts/commit/54c73632acdf7e7c057e02c5976dde6f7b172056))
- ⚡️ tweak score map
([52c48b1](https://github.com/guanghechen/algorithm.ts/commit/52c48b18be4e7d6fad7f7543bdf34c7c62911e63))
- ⚡️ tweak score map
([2dae96c](https://github.com/guanghechen/algorithm.ts/commit/2dae96cb64dc341f144456d3606cbc4e241c42be))
- ✅ update snapshots
([2dfd446](https://github.com/guanghechen/algorithm.ts/commit/2dfd44692a05dfa8e733ea8026420d130d475ea1))
- ✅ update tests
([a967c8b](https://github.com/guanghechen/algorithm.ts/commit/a967c8b2394674b2b2653792696dec8e49c1bbb6))
- 🎨 move board from GomokuState to GomokuContext
([40810bb](https://github.com/guanghechen/algorithm.ts/commit/40810bb88d1c965a022e3b3a91a9a6cca0d5d535))
- 🎨 move placedCount from GomokuState to GomokuContext
([69f7648](https://github.com/guanghechen/algorithm.ts/commit/69f76481b63c00abbc9797dd4f0ab69c644a4b47))
- ⚡️ only re-calc related candidate scores
([f7d3b43](https://github.com/guanghechen/algorithm.ts/commit/f7d3b436c64bb59e3cb69ee440d4b57e63b11521))
- 🔖 publish v2.0.7-alpha.0
([8a89b2b](https://github.com/guanghechen/algorithm.ts/commit/8a89b2b68855a8eee6b244188792bd294e56045f))
- 🔥 remove dead codes
([1f3772f](https://github.com/guanghechen/algorithm.ts/commit/1f3772f20e21759625c0a53b62b10958b6aa693c))
- 🔥 remove unused vars
([670d209](https://github.com/guanghechen/algorithm.ts/commit/670d20930e890786868d962e615d39310e8ec20a))
## 2.0.6 (2022-03-26)
### Performance Improvements
- ⚡️ avoid division and modulo operations
([754b580](https://github.com/guanghechen/algorithm.ts/commit/754b5806b877355c4366641eae44e9affd02288a))
- ⚡️ avoid encode/decode coordinates
([56fa8cf](https://github.com/guanghechen/algorithm.ts/commit/56fa8cfe99ebccca18db3c6d9640a5ee8bc6739f))
- ⚡️ avoid encode/decode coordinates
([cf0926e](https://github.com/guanghechen/algorithm.ts/commit/cf0926ed5bd715542663623e00f8e4f2f99fafbd))
- ⚡️ avoid unnecessary check
([278d041](https://github.com/guanghechen/algorithm.ts/commit/278d041169b00843a6ce3f6bba0ceb17793bd7da))
- ⚡️ tweak score map
([49f13d4](https://github.com/guanghechen/algorithm.ts/commit/49f13d46b0ee0e375a1980c55a214e58386d682a))
- ⚡️ use 'context.safeMove()' and 'context.fastMove()' instead of 'context.move()'
([616f8a6](https://github.com/guanghechen/algorithm.ts/commit/616f8a6f4b4df356e988e1d78ef1a32d9902e648))
- 🔖 publish v2.0.6
([27a96ca](https://github.com/guanghechen/algorithm.ts/commit/27a96ca7e37b440880b5fd3be8bd1bd08939104e))
- 🎨 rename NEXT_MOVER_BUFFER_FAC to NEXT_MOVER_MAX_BUFFER
([ed0de20](https://github.com/guanghechen/algorithm.ts/commit/ed0de206d7641050f9da06c6a62c06c5f1974555))
## 2.0.5 (2022-03-23)
### Performance Improvements
- 🎨 detected max-possible size for gap shapes
([697b131](https://github.com/guanghechen/algorithm.ts/commit/697b1317a6d17f898a0a71169e711fbecc183365))
- 🎨 refactor updateRelatedConShapeCountMap to make it more readable
([45c6128](https://github.com/guanghechen/algorithm.ts/commit/45c612850c374b41ade745608be2c5b9b7318400))
- ✅ udpate tests
([1bfebee](https://github.com/guanghechen/algorithm.ts/commit/1bfebeead8fb981ec34562239f1ae045c2c7b38d))
- 🎨 prefer iterator instead of high-level func
([8270395](https://github.com/guanghechen/algorithm.ts/commit/8270395f67d222df5e498093c933629aaf33cc04))
- 🔖 publish v2.0.5
([b6f49a9](https://github.com/guanghechen/algorithm.ts/commit/b6f49a92024b9062f89a47277f692069e3abd9ec))
- ✅ update tests
([5d6b494](https://github.com/guanghechen/algorithm.ts/commit/5d6b494987e44ca2dcd85323ae7bf5ea91478045))
## 2.0.4 (2022-03-20)
### Bug Fixes
- fix logic error
([e1aa811](https://github.com/guanghechen/algorithm.ts/commit/e1aa811c21e7de53cc0549a4a35f3bc0f395a210))
- 🐛 fix logic error
([8e9ac56](https://github.com/guanghechen/algorithm.ts/commit/8e9ac567e5bba3dfdfda285ced42ea78d956aa2d))
- 🐛 fix logic error in score func
([2c9fde2](https://github.com/guanghechen/algorithm.ts/commit/2c9fde278311e8985cda0cc2ab88688c2f12f738))
- 🐛 init continuouslyShapeCountMap when GomokuCountMap.init is called
([6dfa81e](https://github.com/guanghechen/algorithm.ts/commit/6dfa81e84798684953da9fdac89375a5c31c81e3))
- 🐛 tweak score
([e9229ad](https://github.com/guanghechen/algorithm.ts/commit/e9229ad761bcc98432b950e0765b37f71d28508a))
- 🐛 tweak score
([7befcaa](https://github.com/guanghechen/algorithm.ts/commit/7befcaab1c28b373530fd50e5b93840862e574f1))
### Features
- ✨ add GomokuStateCompressor
([ad419ad](https://github.com/guanghechen/algorithm.ts/commit/ad419adb2e8223699c8b02fb7b711f66065ef813))
- maintain gapShapeCountMap
([6b60cde](https://github.com/guanghechen/algorithm.ts/commit/6b60cde9de7069101b453b07367d8e4e0bf45901))
- ✨ implement [@algorithm](https://github.com/algorithm).ts/gomoku
([a961f2c](https://github.com/guanghechen/algorithm.ts/commit/a961f2c465f358269becfdce8087b8f3c6bb9e8b))
### Performance Improvements
- 🎨 detect max-possible size
([ddbc92b](https://github.com/guanghechen/algorithm.ts/commit/ddbc92b3b3b4380f4e6b8296acad019b512e7381))
- ⚡️ cache intermediate search states to improve performance
([b82504a](https://github.com/guanghechen/algorithm.ts/commit/b82504a9457311053252aafc965e18bedef50ddf))
- 🎨 detect COMPRESS_MOVE_BIT_BASE automaticly
([1752cca](https://github.com/guanghechen/algorithm.ts/commit/1752ccad21427c50d230a72a9325eb3b8b514afc))
- ⚡️ improve algorithm
([c31b64b](https://github.com/guanghechen/algorithm.ts/commit/c31b64bc9d1098e040040dbba49884844e0131fd))
- ⚡️ next mover should take a advantage factor
([af99efd](https://github.com/guanghechen/algorithm.ts/commit/af99efda2b1d58d37f50e61f7e8458770ebbcf9c))
- 🎨 refactor codes
([40569ae](https://github.com/guanghechen/algorithm.ts/commit/40569ae6674a5e22451476a5096b9b158987ed0b))
- 🎨 refactor interface of alphaBeta
([f88940d](https://github.com/guanghechen/algorithm.ts/commit/f88940d42c094156a58d60d360b3b0d64adb1e4a))
- 🔥 remove dead codes
([d5d779e](https://github.com/guanghechen/algorithm.ts/commit/d5d779ec86041c555bbf99d3103de1d1e281160e))
- ⚡️ tweak scoreMap
([a5ced54](https://github.com/guanghechen/algorithm.ts/commit/a5ced54d9613c86bcd4d7a1a3ac7909b8fff1c60))
- ✅ update tests
([40ed757](https://github.com/guanghechen/algorithm.ts/commit/40ed757ea6dff8193ec8f05893169cf196a68b48))
- 🔖 publish v2.0.4
([1f37699](https://github.com/guanghechen/algorithm.ts/commit/1f37699b24bbf498fa820a44056c5f7b291308ee))
- 🎨 update randomMove to perform a reasonable move & update tests
([116b563](https://github.com/guanghechen/algorithm.ts/commit/116b563ff537ad8365195980bff6cc2c86dd661b))
- ✅ update tests
([d78bfdb](https://github.com/guanghechen/algorithm.ts/commit/d78bfdbfdae75c45bf2a2bf3c1c77658db867e9c))