=== Board 9104 (API) - DDS Engine (W) - 2026-08-10 12:36:21 === === Board 9104 (API) - Neural Network Engine (W) - 2026-08-10 12:36:21 === [12:36:21.460] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:36:21.460] Contract: 3N, Declarer: N, Dealer: N [12:36:21.460] Auction: 1N-P-3N-P-P-P [12:36:21.461] Deal: N:... ... ... ... [12:36:21.461] Position W is on defender's side - score table shifted by 0 defense tricks won [12:36:21.461] ****************************** [12:36:21.461] FindMatchingDealsWithPlayInternal Input: [12:36:21.461] Position parameter: W [12:36:21.461] Deal from game: N:... ... ... ... [12:36:21.461] Hand for N: (null) [12:36:21.461] Hand for E: (null) [12:36:21.461] Hand for S: 8732.AQ3.KQJ.AT5 [12:36:21.461] Hand for W: 4.982.T9864.Q943 [12:36:21.461] Cards played: D5, DJ [12:36:21.461] Declarer: N [12:36:21.461] ****************************** [12:36:21.461] [DealFinder] Seed from player W hand: 735073689 [12:36:21.462] [DealFinder] Auction: 1N-P-3N-P-P-P [12:36:21.462] [DealFinder] Reusing process-cached base constraints for auction (stateless-service reuse). [12:36:21.462] [Timing] Pre-computation (constraints): 0ms mem d=0MB (total=1251MB, gc2=19) [12:36:21.462] [DealFinder] Using cardsPlayedCount=2 for visibility calculation [12:36:21.462] [ExtractPartialDeal] Position=W, Declarer=N, CardsPlayed=2 [12:36:21.462] [ExtractPartialDeal] Visible hands: W, S, N [12:36:21.462] [ExtractPartialDeal] Input deal: N:... ... ... ... [12:36:21.462] [ExtractPartialDeal] Extracted hands: [12:36:21.462] N: ... (0 cards) [12:36:21.462] E: ... (0 cards) [12:36:21.462] S: 8732.AQ3.KQJ.AT5 (13 cards) [LOCKED] [12:36:21.463] W: 4.982.T9864.Q943 (13 cards) [LOCKED] [12:36:21.463] [DealFinder] Trump suit from contract '3N': NoTrump [12:36:21.463] [ComputePlayedCards] Declarer=N, Opening leader=E, Trump=NoTrump [12:36:21.463] [ComputePlayedCards] Card 1: D5 played by E [12:36:21.463] [ComputePlayedCards] Card 2: DJ played by S [12:36:21.463] [DealFinder] Added 0 played cards to N (was 0 cards): [12:36:21.463] [DealFinder] Added 1 played cards to E (was 0 cards): D5 [12:36:21.463] [DealFinder] Locked player S has complete 13-card hand, skipping played cards: DJ [12:36:21.463] [DealFinder] Locked player W has complete 13-card hand, skipping played cards: [12:36:21.463] [DecomposePartnership] N: No tightening (CombinedHcpMin=15, CombinedHcpMax=, partner S HCP=16) [12:36:21.463] [DecomposePartnership] E: No tightening (CombinedHcpMin=, CombinedHcpMax=, partner W HCP=2) [12:36:21.463] [DealFinder] Bid verification enabled for: N [12:36:21.463] [DealFinder] Propagated N: HCP[15-17], Suits=S[2-5] H[2-5] D[2-5] C[2-5] (2 iterations) [12:36:21.464] [DealFinder] Propagated E: HCP[5-7], Suits=S[3-6] H[2-5] D[0-3] C[1-4] (2 iterations) [12:36:21.464] [DealFinder] Known cards per player: N=0, E=1, S=13, W=13 [12:36:21.464] [DealFinder] Locked players: S, W [12:36:21.464] [DealFinder] Total known cards: 27, Remaining deck: 25, Cards to deal: 25 [12:36:21.465] [DealFinder] Players needing cards: N:13, E:12 [12:36:21.465] Large number of cards remaining. Using random generation. [12:36:21.465] [DealFinder] Hands to validate (not 13 cards in partial): N, E [12:36:21.465] [VerifyHands] FAIL for N: AKQT9.T764.A.KJ6 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:21.465] [VerifyHands] FAIL for N: AKQJ9.T74.A73.87 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:21.466] [VerifyHands] FAIL for N: KJT6.J65.A72.K86 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:21.466] [VerifyHands] FAIL for N: Q96.KT654.A.K762 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:21.467] [VerifyHands] FAIL for N: KT95.KJT7.3.KJ76 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:22.010] [Timing] Total: 548ms, Generation: 13ms, Verification: 466ms [12:36:22.011] [Timing] Attempts: 646, PassedSimpleCheck: 347, FailedVerification: 297, Found: 50 [12:36:22.023] Search complete. Returning 50 deals. [12:36:22.024] Found 50 sample deals for simulation. [12:36:22.024] Valid deals for DDS: 50 / 50 [12:36:22.024] [SAMPLE-VAL] Validating 50 samples, hidden: N,E, contract: NT [12:36:22.033] [SAMPLE-VAL] Opening lead NN validation (D5): 23/50 samples adjusted [12:36:22.034] [SAMPLE-VAL] Opening lead rule validation (D5): 12/50 samples penalized for convention violation [12:36:22.034] [SAMPLE-VAL] Done. Weight range: 0.025-1.000 [12:36:22.034] After sample validation: 50 deals remaining [12:36:22.034] [PLAY-INFER] No completed tricks -- skipping [12:36:22.034] Using weighted samples: 29/50 have non-uniform weights (range 0.025-1.000) [12:36:22.034] Sample deals (50 total, showing first 20, by weight): [12:36:22.034] [1] (w=1.000) N:AKT65.765.A2.KJ2 QJ9.KJT4.753.876 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.034] [2] (w=1.000) N:AKQJ6.J65.A7.J82 T95.KT74.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.034] [3] (w=1.000) N:K96.KJ64.A7.KJ62 AQJT5.T75.532.87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.034] [4] (w=1.000) N:AQ6.J5.A73.KJ876 KJT95.KT764.52.2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [5] (w=1.000) N:AKQ5.J64.A2.J762 JT96.KT75.753.K8 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [6] (w=1.000) N:KQJ5.KT65.A72.K7 AT96.J74.53.J862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [7] (w=1.000) N:AKJ9.K75.A72.876 QT65.JT64.53.KJ2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [8] (w=1.000) N:AKJ9.KT75.A3.J87 QT65.J64.752.K62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [9] (w=1.000) N:AQJT5.KT4.A3.J82 K96.J765.752.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [10] (w=1.000) N:AQT9.KT64.A7.K76 KJ65.J75.532.J82 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [11] (w=1.000) N:AQJT6.KT6.A7.J82 K95.J754.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [12] (w=1.000) N:KQ96.KJT.A2.K862 AJT5.7654.753.J7 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [13] (w=1.000) N:AQT6.KJ74.A7.K62 KJ95.T65.532.J87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [14] (w=1.000) N:AKQT.JT64.A7.K87 J965.K75.532.J62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [15] (w=1.000) N:AQJT.JT4.A7.KJ72 K965.K765.532.86 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.035] [16] (w=1.000) N:KQJ95.J76.A3.KJ7 AT6.KT54.752.862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.036] [17] (w=1.000) N:KQ65.K754.A72.KJ AJT9.JT6.53.8762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.036] [18] (w=1.000) N:AJT96.KT7.A2.K86 KQ5.J654.753.J72 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.036] [19] (w=1.000) N:KJT6.KJ6.A73.KJ8 AQ95.T754.52.762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.036] [20] (w=1.000) N:AJT.KT65.A3.KJ87 KQ965.J74.752.62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:22.036] ... and 30 more [12:36:22.454] --- IMP Calculation Input (aggregatedScores: card -> bridge scores per sample) --- [12:36:22.454] D4: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:36:22.454] D6: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:36:22.454] DT: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:36:22.454] --- IMP Calculation Input (aggregatedTricks: card -> trick counts per sample) --- [12:36:22.454] D4: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:36:22.454] D6: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:36:22.454] DT: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:36:22.454] --- IMP Calculation Output (card -> average IMP) --- [12:36:22.454] D4: 0.00 [12:36:22.455] D6: 0.00 [12:36:22.455] DT: 0.00 [12:36:22.455] === DDS DETAILED ANALYSIS === [12:36:22.455] Cards analyzed: 3, Samples per card: 50 [12:36:22.455] [12:36:22.455] Card IMPs AvgTricks WinRate DistinctVals TrickCounts (all samples) [12:36:22.455] ----- ------ --------- ------- ----------- -------------------------------- [12:36:22.455] D4 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:36:22.455] D6 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:36:22.455] DT 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:36:22.455] [12:36:22.455] Selected: D4 (IMPs=0.00, avgTricks=1.70) [12:36:22.456] =================== [12:36:22.457] [SD-DEF] single-dummy re-solve: 4 outer world(s) x 4 inner, candidates=[D4,D6,DT] [12:36:23.510] [SD-DEF-DIAG] D4 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:24.601] [SD-DEF-DIAG] D6 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:25.453] [SD-DEF-DIAG] DT declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:25.454] [SD-DEF] D4: 0.00 -> 0.00 IMP [12:36:25.454] [SD-DEF] D6: 0.00 -> 0.00 IMP [12:36:25.454] [SD-DEF] DT: 0.00 -> 0.00 IMP [12:36:25.454] [SD-DEF] After re-solve, best card: D4 (0.00 IMP), 168 node solve(s) [12:36:25.454] [SD-DEF] elapsed=2998ms [12:36:25.454] [TRUMP] Skipped: not a suit contract [12:36:25.454] Selected: D4 (avg 0.00 IMPs, 1.70 tricks) -- 2 tied card(s): D6, DT [12:36:25.454] [stage-timing] ok sample=563ms validate=0ms nn=10ms signal=0ms simgames=1ms dds=3416ms total=3993ms samples=50 cards=2 [12:36:25.454] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:36:25.454] Finding card to play for W: 4.982.T9864.Q943 [12:36:25.454] Relative position: Righty, Contract type: NoTrump [12:36:25.454] Cards in hand mask: 4 [12:36:25.455] Candidate: xD = 79.0 % [12:36:25.455] Candidate: TD = 14.6 % [12:36:25.455] Candidate: 8D = 5.1 % [12:36:25.455] Candidate: 9D = 1.2 % [12:36:25.455] Selected: D4 (79.0 %) === Board 9104 (API) - DDS Engine (W) - 2026-08-10 12:36:47 === === Board 9104 (API) - Neural Network Engine (W) - 2026-08-10 12:36:47 === [12:36:47.488] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:36:47.488] Contract: 3N, Declarer: N, Dealer: N [12:36:47.488] Auction: 1N-P-3N-P-P-P [12:36:47.488] Deal: N:... ... ... ... [12:36:47.488] Position W is on defender's side - score table shifted by 0 defense tricks won [12:36:47.489] ****************************** [12:36:47.489] FindMatchingDealsWithPlayInternal Input: [12:36:47.489] Position parameter: W [12:36:47.489] Deal from game: N:... ... ... ... [12:36:47.489] Hand for N: (null) [12:36:47.489] Hand for E: (null) [12:36:47.489] Hand for S: 8732.AQ3.KQJ.AT5 [12:36:47.489] Hand for W: 4.982.T9864.Q943 [12:36:47.490] Cards played: D5, DJ [12:36:47.490] Declarer: N [12:36:47.490] ****************************** [12:36:47.490] [DealFinder] Seed from player W hand: 735073689 [12:36:47.490] [DealFinder] Auction: 1N-P-3N-P-P-P [12:36:47.490] [DealFinder] Reusing process-cached base constraints for auction (stateless-service reuse). [12:36:47.490] [Timing] Pre-computation (constraints): 0ms mem d=0MB (total=1253MB, gc2=19) [12:36:47.491] [DealFinder] Using cardsPlayedCount=2 for visibility calculation [12:36:47.491] [ExtractPartialDeal] Position=W, Declarer=N, CardsPlayed=2 [12:36:47.491] [ExtractPartialDeal] Visible hands: W, S, N [12:36:47.491] [ExtractPartialDeal] Input deal: N:... ... ... ... [12:36:47.491] [ExtractPartialDeal] Extracted hands: [12:36:47.491] N: ... (0 cards) [12:36:47.491] E: ... (0 cards) [12:36:47.491] S: 8732.AQ3.KQJ.AT5 (13 cards) [LOCKED] [12:36:47.492] W: 4.982.T9864.Q943 (13 cards) [LOCKED] [12:36:47.492] [DealFinder] Trump suit from contract '3N': NoTrump [12:36:47.492] [ComputePlayedCards] Declarer=N, Opening leader=E, Trump=NoTrump [12:36:47.492] [ComputePlayedCards] Card 1: D5 played by E [12:36:47.492] [ComputePlayedCards] Card 2: DJ played by S [12:36:47.492] [DealFinder] Added 0 played cards to N (was 0 cards): [12:36:47.492] [DealFinder] Added 1 played cards to E (was 0 cards): D5 [12:36:47.492] [DealFinder] Locked player S has complete 13-card hand, skipping played cards: DJ [12:36:47.493] [DealFinder] Locked player W has complete 13-card hand, skipping played cards: [12:36:47.493] [DecomposePartnership] N: No tightening (CombinedHcpMin=15, CombinedHcpMax=, partner S HCP=16) [12:36:47.493] [DecomposePartnership] E: No tightening (CombinedHcpMin=, CombinedHcpMax=, partner W HCP=2) [12:36:47.493] [DealFinder] Bid verification enabled for: N [12:36:47.493] [DealFinder] Propagated N: HCP[15-17], Suits=S[2-5] H[2-5] D[2-5] C[2-5] (2 iterations) [12:36:47.493] [DealFinder] Propagated E: HCP[5-7], Suits=S[3-6] H[2-5] D[0-3] C[1-4] (2 iterations) [12:36:47.494] [DealFinder] Known cards per player: N=0, E=1, S=13, W=13 [12:36:47.494] [DealFinder] Locked players: S, W [12:36:47.495] [DealFinder] Total known cards: 27, Remaining deck: 25, Cards to deal: 25 [12:36:47.495] [DealFinder] Players needing cards: N:13, E:12 [12:36:47.495] Large number of cards remaining. Using random generation. [12:36:47.495] [DealFinder] Hands to validate (not 13 cards in partial): N, E [12:36:47.495] [VerifyHands] FAIL for N: AKQT9.T764.A.KJ6 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:47.496] [VerifyHands] FAIL for N: AKQJ9.T74.A73.87 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:47.496] [VerifyHands] FAIL for N: KJT6.J65.A72.K86 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:47.497] [VerifyHands] FAIL for N: Q96.KT654.A.K762 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:47.497] [VerifyHands] FAIL for N: KT95.KJT7.3.KJ76 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:47.721] [VerifyHands] FAIL for N: KJ9.KJT654.A72.7 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:47.722] [VerifyHands] FAIL for N: AQT5.J765.A73.K6 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:47.723] [VerifyHands] FAIL for N: KQJT9.KT75.A7.J2 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:47.785] [VerifyHands] FAIL for N: AQT.T6.A7.KJ8762 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:47.786] [VerifyHands] FAIL for N: K965.K765.A3.KJ2 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:36:48.089] [Timing] Total: 598ms, Generation: 11ms, Verification: 466ms [12:36:48.089] [Timing] Attempts: 646, PassedSimpleCheck: 347, FailedVerification: 297, Found: 50 [12:36:48.101] Search complete. Returning 50 deals. [12:36:48.101] Found 50 sample deals for simulation. [12:36:48.102] Valid deals for DDS: 50 / 50 [12:36:48.102] [SAMPLE-VAL] Validating 50 samples, hidden: N,E, contract: NT [12:36:48.110] [SAMPLE-VAL] Opening lead NN validation (D5): 23/50 samples adjusted [12:36:48.110] [SAMPLE-VAL] Opening lead rule validation (D5): 12/50 samples penalized for convention violation [12:36:48.110] [SAMPLE-VAL] Done. Weight range: 0.025-1.000 [12:36:48.110] After sample validation: 50 deals remaining [12:36:48.110] [PLAY-INFER] No completed tricks -- skipping [12:36:48.111] Using weighted samples: 29/50 have non-uniform weights (range 0.025-1.000) [12:36:48.111] Sample deals (50 total, showing first 20, by weight): [12:36:48.111] [1] (w=1.000) N:AKT65.765.A2.KJ2 QJ9.KJT4.753.876 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.111] [2] (w=1.000) N:AKQJ6.J65.A7.J82 T95.KT74.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.111] [3] (w=1.000) N:K96.KJ64.A7.KJ62 AQJT5.T75.532.87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.111] [4] (w=1.000) N:AQ6.J5.A73.KJ876 KJT95.KT764.52.2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.111] [5] (w=1.000) N:AKQ5.J64.A2.J762 JT96.KT75.753.K8 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.111] [6] (w=1.000) N:KQJ5.KT65.A72.K7 AT96.J74.53.J862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.111] [7] (w=1.000) N:AKJ9.K75.A72.876 QT65.JT64.53.KJ2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.111] [8] (w=1.000) N:AKJ9.KT75.A3.J87 QT65.J64.752.K62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.111] [9] (w=1.000) N:AQJT5.KT4.A3.J82 K96.J765.752.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.111] [10] (w=1.000) N:AQT9.KT64.A7.K76 KJ65.J75.532.J82 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.111] [11] (w=1.000) N:AQJT6.KT6.A7.J82 K95.J754.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.112] [12] (w=1.000) N:KQ96.KJT.A2.K862 AJT5.7654.753.J7 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.112] [13] (w=1.000) N:AQT6.KJ74.A7.K62 KJ95.T65.532.J87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.112] [14] (w=1.000) N:AKQT.JT64.A7.K87 J965.K75.532.J62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.112] [15] (w=1.000) N:AQJT.JT4.A7.KJ72 K965.K765.532.86 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.112] [16] (w=1.000) N:KQJ95.J76.A3.KJ7 AT6.KT54.752.862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.112] [17] (w=1.000) N:KQ65.K754.A72.KJ AJT9.JT6.53.8762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.112] [18] (w=1.000) N:AJT96.KT7.A2.K86 KQ5.J654.753.J72 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.112] [19] (w=1.000) N:KJT6.KJ6.A73.KJ8 AQ95.T754.52.762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.112] [20] (w=1.000) N:AJT.KT65.A3.KJ87 KQ965.J74.752.62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:48.112] ... and 30 more [12:36:48.541] --- IMP Calculation Input (aggregatedScores: card -> bridge scores per sample) --- [12:36:48.541] D4: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:36:48.541] D6: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:36:48.541] DT: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:36:48.542] --- IMP Calculation Input (aggregatedTricks: card -> trick counts per sample) --- [12:36:48.542] D4: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:36:48.542] D6: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:36:48.542] DT: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:36:48.542] --- IMP Calculation Output (card -> average IMP) --- [12:36:48.542] D4: 0.00 [12:36:48.542] D6: 0.00 [12:36:48.542] DT: 0.00 [12:36:48.542] === DDS DETAILED ANALYSIS === [12:36:48.542] Cards analyzed: 3, Samples per card: 50 [12:36:48.542] [12:36:48.543] Card IMPs AvgTricks WinRate DistinctVals TrickCounts (all samples) [12:36:48.543] ----- ------ --------- ------- ----------- -------------------------------- [12:36:48.543] D4 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:36:48.543] D6 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:36:48.543] DT 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:36:48.543] [12:36:48.543] Selected: D4 (IMPs=0.00, avgTricks=1.70) [12:36:48.543] =================== [12:36:48.547] [SD-DEF] single-dummy re-solve: 4 outer world(s) x 4 inner, candidates=[D4,D6,DT] [12:36:50.220] [SD-DEF-DIAG] D4 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:51.557] [SD-DEF-DIAG] D6 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:52.698] [SD-DEF-DIAG] DT declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:52.698] [SD-DEF] D4: 0.00 -> 0.00 IMP [12:36:52.698] [SD-DEF] D6: 0.00 -> 0.00 IMP [12:36:52.698] [SD-DEF] DT: 0.00 -> 0.00 IMP [12:36:52.698] [SD-DEF] After re-solve, best card: D4 (0.00 IMP), 168 node solve(s) [12:36:52.698] [SD-DEF] elapsed=4154ms [12:36:52.698] [TRUMP] Skipped: not a suit contract [12:36:52.698] Selected: D4 (avg 0.00 IMPs, 1.70 tricks) -- 2 tied card(s): D6, DT [12:36:52.698] [stage-timing] ok sample=612ms validate=0ms nn=8ms signal=0ms simgames=1ms dds=4584ms total=5210ms samples=50 cards=2 [12:36:52.698] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:36:52.699] Finding card to play for W: 4.982.T9864.Q943 [12:36:52.699] Relative position: Righty, Contract type: NoTrump [12:36:52.699] Cards in hand mask: 4 [12:36:52.699] Candidate: xD = 79.0 % [12:36:52.699] Candidate: TD = 14.6 % [12:36:52.700] Candidate: 8D = 5.1 % [12:36:52.700] Candidate: 9D = 1.2 % [12:36:52.700] Selected: D4 (79.0 %) === Board 9104 (API) - DDS Engine (W) - 2026-08-10 12:37:06 === === Board 9104 (API) - Neural Network Engine (W) - 2026-08-10 12:37:06 === [12:37:06.023] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:37:06.024] Contract: 3N, Declarer: N, Dealer: N [12:37:06.024] Auction: 1N-P-3N-P-P-P [12:37:06.024] Deal: N:... ... ... ... [12:37:06.024] Position W is on defender's side - score table shifted by 0 defense tricks won [12:37:06.024] ****************************** [12:37:06.024] FindMatchingDealsWithPlayInternal Input: [12:37:06.025] Position parameter: W [12:37:06.025] Deal from game: N:... ... ... ... [12:37:06.025] Hand for N: (null) [12:37:06.025] Hand for E: (null) [12:37:06.025] Hand for S: 8732.AQ3.KQJ.AT5 [12:37:06.025] Hand for W: 4.982.T9864.Q943 [12:37:06.025] Cards played: D5, DJ [12:37:06.026] Declarer: N [12:37:06.026] ****************************** [12:37:06.026] [DealFinder] Seed from player W hand: 735073689 [12:37:06.026] [DealFinder] Auction: 1N-P-3N-P-P-P [12:37:06.026] [DealFinder] Reusing process-cached base constraints for auction (stateless-service reuse). [12:37:06.026] [Timing] Pre-computation (constraints): 0ms mem d=0MB (total=1264MB, gc2=19) [12:37:06.027] [DealFinder] Using cardsPlayedCount=2 for visibility calculation [12:37:06.027] [ExtractPartialDeal] Position=W, Declarer=N, CardsPlayed=2 [12:37:06.027] [ExtractPartialDeal] Visible hands: W, S, N [12:37:06.027] [ExtractPartialDeal] Input deal: N:... ... ... ... [12:37:06.027] [ExtractPartialDeal] Extracted hands: [12:37:06.027] N: ... (0 cards) [12:37:06.027] E: ... (0 cards) [12:37:06.027] S: 8732.AQ3.KQJ.AT5 (13 cards) [LOCKED] [12:37:06.028] W: 4.982.T9864.Q943 (13 cards) [LOCKED] [12:37:06.028] [DealFinder] Trump suit from contract '3N': NoTrump [12:37:06.028] [ComputePlayedCards] Declarer=N, Opening leader=E, Trump=NoTrump [12:37:06.028] [ComputePlayedCards] Card 1: D5 played by E [12:37:06.028] [ComputePlayedCards] Card 2: DJ played by S [12:37:06.028] [DealFinder] Added 0 played cards to N (was 0 cards): [12:37:06.028] [DealFinder] Added 1 played cards to E (was 0 cards): D5 [12:37:06.028] [DealFinder] Locked player S has complete 13-card hand, skipping played cards: DJ [12:37:06.028] [DealFinder] Locked player W has complete 13-card hand, skipping played cards: [12:37:06.028] [DecomposePartnership] N: No tightening (CombinedHcpMin=15, CombinedHcpMax=, partner S HCP=16) [12:37:06.029] [DecomposePartnership] E: No tightening (CombinedHcpMin=, CombinedHcpMax=, partner W HCP=2) [12:37:06.029] [DealFinder] Bid verification enabled for: N [12:37:06.029] [DealFinder] Propagated N: HCP[15-17], Suits=S[2-5] H[2-5] D[2-5] C[2-5] (2 iterations) [12:37:06.029] [DealFinder] Propagated E: HCP[5-7], Suits=S[3-6] H[2-5] D[0-3] C[1-4] (2 iterations) [12:37:06.031] [DealFinder] Known cards per player: N=0, E=1, S=13, W=13 [12:37:06.031] [DealFinder] Locked players: S, W [12:37:06.031] [DealFinder] Total known cards: 27, Remaining deck: 25, Cards to deal: 25 [12:37:06.031] [DealFinder] Players needing cards: N:13, E:12 [12:37:06.031] Large number of cards remaining. Using random generation. [12:37:06.031] [DealFinder] Hands to validate (not 13 cards in partial): N, E [12:37:06.032] [VerifyHands] FAIL for N: AKQT9.T764.A.KJ6 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.033] [VerifyHands] FAIL for N: AKQJ9.T74.A73.87 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.034] [VerifyHands] FAIL for N: KJT6.J65.A72.K86 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.036] [VerifyHands] FAIL for N: Q96.KT654.A.K762 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.037] [VerifyHands] FAIL for N: KT95.KJT7.3.KJ76 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.407] [VerifyHands] FAIL for N: AKQJT6.KJT5.7.J7 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.408] [VerifyHands] FAIL for N: AQJT.J64.3.KJ876 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.409] [VerifyHands] FAIL for N: AKJ.T74.A732.J72 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.410] [VerifyHands] FAIL for N: AKJT5.KJT5.72.76 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.410] [VerifyHands] FAIL for N: AKJ96.KJT5.72.K7 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.441] [VerifyHands] FAIL for N: T96.KJT64.A7.KJ8 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.442] [VerifyHands] FAIL for N: JT95.K75.A.KJ872 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.443] [VerifyHands] FAIL for N: JT6.KT754.A7.K76 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.443] [VerifyHands] FAIL for N: AQJT5.K654.72.J2 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.444] [VerifyHands] FAIL for N: AKQ95.KT6.A3.J72 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.465] [VerifyHands] FAIL for N: AKQJ65.KT7.A73.8 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.499] [VerifyHands] FAIL for N: KQJ95.KJ54.A3.K6 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.500] [VerifyHands] FAIL for N: AQ5.J764.32.KJ76 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.501] [VerifyHands] FAIL for N: AKQJT5.K74.73.J2 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.502] [VerifyHands] FAIL for N: AQ95.KJ64.A.J876 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:06.813] [Timing] Total: 786ms, Generation: 15ms, Verification: 659ms [12:37:06.813] [Timing] Attempts: 646, PassedSimpleCheck: 347, FailedVerification: 297, Found: 50 [12:37:06.862] Search complete. Returning 50 deals. [12:37:06.862] Found 50 sample deals for simulation. [12:37:06.862] Valid deals for DDS: 50 / 50 [12:37:06.862] [SAMPLE-VAL] Validating 50 samples, hidden: N,E, contract: NT [12:37:06.880] [SAMPLE-VAL] Opening lead NN validation (D5): 23/50 samples adjusted [12:37:06.881] [SAMPLE-VAL] Opening lead rule validation (D5): 12/50 samples penalized for convention violation [12:37:06.881] [SAMPLE-VAL] Done. Weight range: 0.025-1.000 [12:37:06.881] After sample validation: 50 deals remaining [12:37:06.881] [PLAY-INFER] No completed tricks -- skipping [12:37:06.881] Using weighted samples: 29/50 have non-uniform weights (range 0.025-1.000) [12:37:06.881] Sample deals (50 total, showing first 20, by weight): [12:37:06.882] [1] (w=1.000) N:AKT65.765.A2.KJ2 QJ9.KJT4.753.876 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.882] [2] (w=1.000) N:AKQJ6.J65.A7.J82 T95.KT74.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.882] [3] (w=1.000) N:K96.KJ64.A7.KJ62 AQJT5.T75.532.87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.882] [4] (w=1.000) N:AQ6.J5.A73.KJ876 KJT95.KT764.52.2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.882] [5] (w=1.000) N:AKQ5.J64.A2.J762 JT96.KT75.753.K8 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.882] [6] (w=1.000) N:KQJ5.KT65.A72.K7 AT96.J74.53.J862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.882] [7] (w=1.000) N:AKJ9.K75.A72.876 QT65.JT64.53.KJ2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.883] [8] (w=1.000) N:AKJ9.KT75.A3.J87 QT65.J64.752.K62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.883] [9] (w=1.000) N:AQJT5.KT4.A3.J82 K96.J765.752.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.883] [10] (w=1.000) N:AQT9.KT64.A7.K76 KJ65.J75.532.J82 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.883] [11] (w=1.000) N:AQJT6.KT6.A7.J82 K95.J754.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.883] [12] (w=1.000) N:KQ96.KJT.A2.K862 AJT5.7654.753.J7 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.883] [13] (w=1.000) N:AQT6.KJ74.A7.K62 KJ95.T65.532.J87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.883] [14] (w=1.000) N:AKQT.JT64.A7.K87 J965.K75.532.J62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.884] [15] (w=1.000) N:AQJT.JT4.A7.KJ72 K965.K765.532.86 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.884] [16] (w=1.000) N:KQJ95.J76.A3.KJ7 AT6.KT54.752.862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.884] [17] (w=1.000) N:KQ65.K754.A72.KJ AJT9.JT6.53.8762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.884] [18] (w=1.000) N:AJT96.KT7.A2.K86 KQ5.J654.753.J72 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.884] [19] (w=1.000) N:KJT6.KJ6.A73.KJ8 AQ95.T754.52.762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.884] [20] (w=1.000) N:AJT.KT65.A3.KJ87 KQ965.J74.752.62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:06.884] ... and 30 more [12:37:07.691] --- IMP Calculation Input (aggregatedScores: card -> bridge scores per sample) --- [12:37:07.692] D4: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:37:07.692] D6: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:37:07.692] DT: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:37:07.692] --- IMP Calculation Input (aggregatedTricks: card -> trick counts per sample) --- [12:37:07.692] D4: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:37:07.693] D6: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:37:07.693] DT: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:37:07.693] --- IMP Calculation Output (card -> average IMP) --- [12:37:07.693] D4: 0.00 [12:37:07.693] D6: 0.00 [12:37:07.693] DT: 0.00 [12:37:07.694] === DDS DETAILED ANALYSIS === [12:37:07.694] Cards analyzed: 3, Samples per card: 50 [12:37:07.694] [12:37:07.694] Card IMPs AvgTricks WinRate DistinctVals TrickCounts (all samples) [12:37:07.694] ----- ------ --------- ------- ----------- -------------------------------- [12:37:07.694] D4 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:37:07.694] D6 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:37:07.695] DT 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:37:07.695] [12:37:07.695] Selected: D4 (IMPs=0.00, avgTricks=1.70) [12:37:07.695] =================== [12:37:07.697] [SD-DEF] single-dummy re-solve: 4 outer world(s) x 4 inner, candidates=[D4,D6,DT] [12:37:09.732] [SD-DEF-DIAG] D4 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:11.662] [SD-DEF-DIAG] D6 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:14.368] [SD-DEF-DIAG] DT declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:14.368] [SD-DEF] D4: 0.00 -> 0.00 IMP [12:37:14.368] [SD-DEF] D6: 0.00 -> 0.00 IMP [12:37:14.368] [SD-DEF] DT: 0.00 -> 0.00 IMP [12:37:14.369] [SD-DEF] After re-solve, best card: D4 (0.00 IMP), 168 node solve(s) [12:37:14.369] [SD-DEF] elapsed=6673ms [12:37:14.369] [TRUMP] Skipped: not a suit contract [12:37:14.369] Selected: D4 (avg 0.00 IMPs, 1.70 tricks) -- 2 tied card(s): D6, DT [12:37:14.369] [stage-timing] ok sample=837ms validate=0ms nn=18ms signal=0ms simgames=3ms dds=7481ms total=8346ms samples=50 cards=2 [12:37:14.369] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:37:14.370] Finding card to play for W: 4.982.T9864.Q943 [12:37:14.370] Relative position: Righty, Contract type: NoTrump [12:37:14.370] Cards in hand mask: 4 [12:37:14.373] Candidate: xD = 79.0 % [12:37:14.373] Candidate: TD = 14.6 % [12:37:14.373] Candidate: 8D = 5.1 % [12:37:14.373] Candidate: 9D = 1.2 % [12:37:14.373] Selected: D4 (79.0 %) === Board 9104 (API) - DDS Engine (W) - 2026-08-10 12:37:22 === === Board 9104 (API) - Neural Network Engine (W) - 2026-08-10 12:37:22 === [12:37:22.560] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:37:22.561] Contract: 3N, Declarer: N, Dealer: N [12:37:22.561] Auction: 1N-P-3N-P-P-P [12:37:22.561] Deal: N:... ... ... ... [12:37:22.561] Position W is on defender's side - score table shifted by 0 defense tricks won [12:37:22.561] ****************************** [12:37:22.561] FindMatchingDealsWithPlayInternal Input: [12:37:22.561] Position parameter: W [12:37:22.561] Deal from game: N:... ... ... ... [12:37:22.561] Hand for N: (null) [12:37:22.562] Hand for E: (null) [12:37:22.562] Hand for S: 8732.AQ3.KQJ.AT5 [12:37:22.562] Hand for W: 4.982.T9864.Q943 [12:37:22.562] Cards played: D5, DJ [12:37:22.562] Declarer: N [12:37:22.562] ****************************** [12:37:22.562] [DealFinder] Seed from player W hand: 735073689 [12:37:22.562] [DealFinder] Auction: 1N-P-3N-P-P-P [12:37:22.563] [DealFinder] Reusing process-cached base constraints for auction (stateless-service reuse). [12:37:22.563] [Timing] Pre-computation (constraints): 0ms mem d=0MB (total=1261MB, gc2=19) [12:37:22.563] [DealFinder] Using cardsPlayedCount=2 for visibility calculation [12:37:22.563] [ExtractPartialDeal] Position=W, Declarer=N, CardsPlayed=2 [12:37:22.563] [ExtractPartialDeal] Visible hands: W, S, N [12:37:22.563] [ExtractPartialDeal] Input deal: N:... ... ... ... [12:37:22.563] [ExtractPartialDeal] Extracted hands: [12:37:22.564] N: ... (0 cards) [12:37:22.564] E: ... (0 cards) [12:37:22.564] S: 8732.AQ3.KQJ.AT5 (13 cards) [LOCKED] [12:37:22.564] W: 4.982.T9864.Q943 (13 cards) [LOCKED] [12:37:22.564] [DealFinder] Trump suit from contract '3N': NoTrump [12:37:22.564] [ComputePlayedCards] Declarer=N, Opening leader=E, Trump=NoTrump [12:37:22.564] [ComputePlayedCards] Card 1: D5 played by E [12:37:22.564] [ComputePlayedCards] Card 2: DJ played by S [12:37:22.564] [DealFinder] Added 0 played cards to N (was 0 cards): [12:37:22.564] [DealFinder] Added 1 played cards to E (was 0 cards): D5 [12:37:22.564] [DealFinder] Locked player S has complete 13-card hand, skipping played cards: DJ [12:37:22.565] [DealFinder] Locked player W has complete 13-card hand, skipping played cards: [12:37:22.565] [DecomposePartnership] N: No tightening (CombinedHcpMin=15, CombinedHcpMax=, partner S HCP=16) [12:37:22.565] [DecomposePartnership] E: No tightening (CombinedHcpMin=, CombinedHcpMax=, partner W HCP=2) [12:37:22.565] [DealFinder] Bid verification enabled for: N [12:37:22.565] [DealFinder] Propagated N: HCP[15-17], Suits=S[2-5] H[2-5] D[2-5] C[2-5] (2 iterations) [12:37:22.565] [DealFinder] Propagated E: HCP[5-7], Suits=S[3-6] H[2-5] D[0-3] C[1-4] (2 iterations) [12:37:22.567] [DealFinder] Known cards per player: N=0, E=1, S=13, W=13 [12:37:22.567] [DealFinder] Locked players: S, W [12:37:22.567] [DealFinder] Total known cards: 27, Remaining deck: 25, Cards to deal: 25 [12:37:22.567] [DealFinder] Players needing cards: N:13, E:12 [12:37:22.567] Large number of cards remaining. Using random generation. [12:37:22.568] [DealFinder] Hands to validate (not 13 cards in partial): N, E [12:37:22.568] [VerifyHands] FAIL for N: AKQT9.T764.A.KJ6 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:22.569] [VerifyHands] FAIL for N: AKQJ9.T74.A73.87 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:22.808] [VerifyHands] FAIL for N: AJ96.KT5.A7.J872 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:22.809] [VerifyHands] FAIL for N: AKQJ5.KT7.A2.J72 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:22.809] [VerifyHands] FAIL for N: AQJ95.JT4.A73.82 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:22.810] [VerifyHands] FAIL for N: AJT5.K7654.A72.K ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:22.811] [VerifyHands] FAIL for N: AQ96.KJ654.2.K86 ((((Balanced OR SemiBalanced) & HCP >= 15 & HCP <= 17 & S <= 4 & H <= 4) OR (Balanced & HCP >= 15 & HCP <= 16 & H = 5) OR (Balanced & HCP >= 15 & HCP <= 16 & S = 5)) & NOT (H >= 8 & HCP >= 5 & HCP <= 1...) [12:37:24.324] [Timing] Total: 1762ms, Generation: 28ms, Verification: 1560ms [12:37:24.325] [Timing] Attempts: 646, PassedSimpleCheck: 347, FailedVerification: 297, Found: 50 [12:37:24.352] Search complete. Returning 50 deals. [12:37:24.353] Found 50 sample deals for simulation. [12:37:24.353] Valid deals for DDS: 50 / 50 [12:37:24.353] [SAMPLE-VAL] Validating 50 samples, hidden: N,E, contract: NT [12:37:24.376] [SAMPLE-VAL] Opening lead NN validation (D5): 23/50 samples adjusted [12:37:24.377] [SAMPLE-VAL] Opening lead rule validation (D5): 12/50 samples penalized for convention violation [12:37:24.377] [SAMPLE-VAL] Done. Weight range: 0.025-1.000 [12:37:24.377] After sample validation: 50 deals remaining [12:37:24.377] [PLAY-INFER] No completed tricks -- skipping [12:37:24.377] Using weighted samples: 29/50 have non-uniform weights (range 0.025-1.000) [12:37:24.377] Sample deals (50 total, showing first 20, by weight): [12:37:24.377] [1] (w=1.000) N:AKT65.765.A2.KJ2 QJ9.KJT4.753.876 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.377] [2] (w=1.000) N:AKQJ6.J65.A7.J82 T95.KT74.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.377] [3] (w=1.000) N:K96.KJ64.A7.KJ62 AQJT5.T75.532.87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.378] [4] (w=1.000) N:AQ6.J5.A73.KJ876 KJT95.KT764.52.2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.378] [5] (w=1.000) N:AKQ5.J64.A2.J762 JT96.KT75.753.K8 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.378] [6] (w=1.000) N:KQJ5.KT65.A72.K7 AT96.J74.53.J862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.378] [7] (w=1.000) N:AKJ9.K75.A72.876 QT65.JT64.53.KJ2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.378] [8] (w=1.000) N:AKJ9.KT75.A3.J87 QT65.J64.752.K62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.378] [9] (w=1.000) N:AQJT5.KT4.A3.J82 K96.J765.752.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.378] [10] (w=1.000) N:AQT9.KT64.A7.K76 KJ65.J75.532.J82 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.378] [11] (w=1.000) N:AQJT6.KT6.A7.J82 K95.J754.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.378] [12] (w=1.000) N:KQ96.KJT.A2.K862 AJT5.7654.753.J7 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.404] [13] (w=1.000) N:AQT6.KJ74.A7.K62 KJ95.T65.532.J87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.404] [14] (w=1.000) N:AKQT.JT64.A7.K87 J965.K75.532.J62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.405] [15] (w=1.000) N:AQJT.JT4.A7.KJ72 K965.K765.532.86 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.405] [16] (w=1.000) N:KQJ95.J76.A3.KJ7 AT6.KT54.752.862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.405] [17] (w=1.000) N:KQ65.K754.A72.KJ AJT9.JT6.53.8762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.405] [18] (w=1.000) N:AJT96.KT7.A2.K86 KQ5.J654.753.J72 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.405] [19] (w=1.000) N:KJT6.KJ6.A73.KJ8 AQ95.T754.52.762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.405] [20] (w=1.000) N:AJT.KT65.A3.KJ87 KQ965.J74.752.62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:24.405] ... and 30 more [12:37:26.509] --- IMP Calculation Input (aggregatedScores: card -> bridge scores per sample) --- [12:37:26.509] D4: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:37:26.509] D6: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:37:26.509] DT: [-490, -460, -460, -490, -490, -460, -430, -460, -460, -460, -460, -430, -460, -490, -490, -490, -460, -460, -460, -490, -490, -460, -460, -430, -520, -460, -460, -490, -460, -490, -490, -460, -490, -460, -460, -460, -460, -490, -460, -490, -460, -490, -490, -430, -490, -460, -460, -460, -460, -460] [12:37:26.509] --- IMP Calculation Input (aggregatedTricks: card -> trick counts per sample) --- [12:37:26.509] D4: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:37:26.510] D6: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:37:26.510] DT: [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 0, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 3, 1, 2, 2, 2, 2, 2] [12:37:26.510] --- IMP Calculation Output (card -> average IMP) --- [12:37:26.510] D4: 0.00 [12:37:26.510] D6: 0.00 [12:37:26.511] DT: 0.00 [12:37:26.511] === DDS DETAILED ANALYSIS === [12:37:26.511] Cards analyzed: 3, Samples per card: 50 [12:37:26.511] [12:37:26.511] Card IMPs AvgTricks WinRate DistinctVals TrickCounts (all samples) [12:37:26.511] ----- ------ --------- ------- ----------- -------------------------------- [12:37:26.511] D4 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:37:26.512] D6 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:37:26.512] DT 0.00 1.70 0 % 4 [1, 2, 2, 1, 1, 2, 3, 2, 2, 2, 2, 3, 2, 1, 1, 1, 2, 2, 2, 1...] [12:37:26.512] [12:37:26.512] Selected: D4 (IMPs=0.00, avgTricks=1.70) [12:37:26.512] =================== [12:37:26.515] [SD-DEF] single-dummy re-solve: 4 outer world(s) x 4 inner, candidates=[D4,D6,DT] [12:37:30.850] [SD-DEF-DIAG] D4 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:33.745] [SD-DEF-DIAG] D6 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:35.460] [SD-DEF-DIAG] DT declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:35.460] [SD-DEF] D4: 0.00 -> 0.00 IMP [12:37:35.460] [SD-DEF] D6: 0.00 -> 0.00 IMP [12:37:35.460] [SD-DEF] DT: 0.00 -> 0.00 IMP [12:37:35.460] [SD-DEF] After re-solve, best card: D4 (0.00 IMP), 168 node solve(s) [12:37:35.461] [SD-DEF] elapsed=8947ms [12:37:35.461] [TRUMP] Skipped: not a suit contract [12:37:35.461] Selected: D4 (avg 0.00 IMPs, 1.70 tricks) -- 2 tied card(s): D6, DT [12:37:35.461] [stage-timing] ok sample=1791ms validate=0ms nn=24ms signal=0ms simgames=4ms dds=11051ms total=12900ms samples=50 cards=2 [12:37:35.461] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:37:35.461] Finding card to play for W: 4.982.T9864.Q943 [12:37:35.462] Relative position: Righty, Contract type: NoTrump [12:37:35.462] Cards in hand mask: 4 [12:37:35.463] Candidate: xD = 79.0 % [12:37:35.463] Candidate: TD = 14.6 % [12:37:35.463] Candidate: 8D = 5.1 % [12:37:35.463] Candidate: 9D = 1.2 % [12:37:35.463] Selected: D4 (79.0 %)