=== Board 9100 (API) - DDS Engine (W) - 2026-08-10 12:36:12 === === Board 9100 (API) - Neural Network Engine (W) - 2026-08-10 12:36:12 === [12:36:12.917] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:36:12.917] Contract: 3N, Declarer: N, Dealer: N [12:36:12.917] Auction: 1N-P-3N-P-P-P [12:36:12.917] Deal: N:... ... ... ... [12:36:12.918] Position W is on defender's side - score table shifted by 0 defense tricks won [12:36:12.919] ****************************** [12:36:12.919] FindMatchingDealsWithPlayInternal Input: [12:36:12.919] Position parameter: W [12:36:12.919] Deal from game: N:... ... ... ... [12:36:12.919] Hand for N: (null) [12:36:12.919] Hand for E: (null) [12:36:12.920] Hand for S: 8732.AQ3.KQJ.AT5 [12:36:12.920] Hand for W: 4.982.T9864.Q943 [12:36:12.920] Cards played: D5, DJ [12:36:12.920] Declarer: N [12:36:12.920] ****************************** [12:36:12.925] [DealFinder] Seed from player W hand: 735073689 [12:36:12.925] [DealFinder] Auction: 1N-P-3N-P-P-P [12:36:12.928] [DealFinder] Explained bid N 1N: "Opening Bid, Balanced, HCP >= 15, HCP <= 16, H = 5, S = 5, (Balanced OR SemiBalanced), HCP <= 17, S <= 4, H <= 4" -> require: (none) [12:36:12.928] [DealFinder] Explained bid E P: "Responses to 1N, True" -> require: (none) [12:36:12.928] [DealFinder] Explained bid S 3N: "Responses to 1N-P, HCP >= 8, C >= 7, NOT (Comb. Pts >= 32, CombinedHcpMin >= 28), D >= 7, HCP >= 10, H < 5, S < 5, HCP <= 10, C >= 6, (IsGoodSuit(C) OR 3 of Top 5 Honors in C), D >= 6, (IsGoodSuit(D) OR 3 of Top 5 Honors in D)" -> require: (none) [12:36:12.928] [DealFinder] Explained bid W P: "Defensive bidding after two bids from opponents, True" -> require: (none) [12:36:12.928] [DealFinder] Explained bid N P: "Passable situations - 2Ma, True" -> require: (none) [12:36:12.928] [DealFinder] Explained bid E P: "Penalty Double Considerations, True" -> require: (none) [12:36:12.935] [DealFinder] N Spades: tightened from [0-13] to [2-5] using HandUnderstanding [12:36:12.935] [DealFinder] N Hearts: tightened from [0-13] to [2-5] using HandUnderstanding [12:36:12.935] [DealFinder] N Diamonds: tightened from [0-13] to [2-5] using HandUnderstanding [12:36:12.935] [DealFinder] N Clubs: tightened from [0-13] to [2-5] using HandUnderstanding [12:36:12.936] [DealFinder] N constraints: HCP[15-17], Suits=S[2-5] H[2-5] D[2-5] C[2-5], Trivial=False [12:36:12.936] [DealFinder] Expression (657 chars): (((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 <= 11 & LoserLevel >= 4 & S <= 4) & NOT (H >= 7 & HCP >= 9 & HCP <= 11 & LoserLevel >= 4 & S <= 4) & NOT (S >= 8 & HCP >= 5 & HCP <= 11 & LoserLevel >= 4 & H <= 4) & NOT (S >= 7 & HCP >= 9 & HCP <= 11 & LoserLevel >= 4 & H <= 4) & NOT (H >= 9 & HCP >= 6 & HCP <= 11 & LoserLevel >= 5 & S <= 4) & NOT (S >= 9 & HCP >= 6 & HCP <= 11 & LoserLevel >= 5 & H <= 4) & NOT (balish & HCP >= 20 & HCP <= 21) & NOT (balish & HCP >= 25 & HCP <= 27 & H <= 4 & S <= 4) & True [12:36:12.936] [Timing] N precompute: 7ms mem d=112KB (total=1247MB) [12:36:12.945] [DealFinder] E constraints: HCP[0-37], Suits=(none), Trivial=False [12:36:12.945] [DealFinder] Expression (916 chars): True & NOT (Rebiddable(C) & C >= 7 & ClubPoints >= 14 & ClubPoints <= 17) & NOT (Rebiddable(D) & D >= 7 & DiamondPoints >= 14 & DiamondPoints <= 17) & NOT (Rebiddable(H) & H >= 7 & HeartPoints >= 14 & HeartPoints <= 17) & NOT (Rebiddable(S) & S >= 7 & SpadePoints >= 14 & SpadePoints <= 17) & NOT (Rebiddable(C) & C >= 7 & HCP <= 10 & LoserLevel >= 4) & NOT (Rebiddable(D) & D >= 7 & HCP <= 10 & LoserLevel >= 4) & NOT (Rebiddable(H) & H >= 7 & HCP <= 10 & LoserLevel >= 4) & NOT (Rebiddable(S) & S >= 7 & HCP <= 10 & LoserLevel >= 4) & NOT (TP >= 10 & LengthLongestSuit >= 6 & Single Suited & HCP >= 10) & NOT (TP >= 10 & LengthLongestSuit >= 7 & HCP >= 10) & NOT (H >= 5 & S >= 5 & HCP >= 10) & NOT (H >= 5 & (C >= 4 OR D >= 4) & LoserLevel >= 2 & TP >= 12 & HCP >= 10) & NOT (S >= 5 & (C >= 4 OR D >= 4) & LoserLevel >= 2 & TP >= 12 & HCP >= 10) & NOT (C >= 5 & D >= 5 & TP >= 15 & HCP >= 10) & True & NOT (False) [12:36:12.946] [Timing] E precompute: 9ms mem d=80KB (total=1247MB) [12:36:12.954] [DealFinder] S constraints: HCP[8-37], Suits=(none), Trivial=False [12:36:12.954] [DealFinder] Expression (860 chars): ((HCP >= 8 & HCP <= 10 & C >= 6 & (IsGoodSuit(C) OR 3 of Top 5 Honors in C)) OR (HCP >= 8 & HCP <= 10 & D >= 6 & (IsGoodSuit(D) OR 3 of Top 5 Honors in D)) OR (HCP >= 10 & H < 5 & S < 5 & NOT (Comb. Pts >= 32 & CombinedHcpMin >= 28)) OR (HCP >= 8 & C >= 7 & NOT (Comb. Pts >= 32 & CombinedHcpMin >= 28)) OR (HCP >= 8 & D >= 7 & NOT (Comb. Pts >= 32 & CombinedHcpMin >= 28))) & NOT (H >= 6 & ((NOT (Comb. Pts >= 32 & CombinedHcpMin >= 28) & Game in H) OR (Comb. Pts >= 32 & CombinedHcpMin >= 28))) & NOT (S >= 6 & ((NOT (Comb. Pts >= 32 & CombinedHcpMin >= 28) & Game in S) OR (Comb. Pts >= 32 & CombinedHcpMin >= 28))) & NOT (HCP >= 10 & S >= 4 & H >= 4 & H Add S >= 9) & NOT (D <= 1 & H = 4 & S = 4 & CombinedHcpMin >= 23 & C >= 4) & NOT (H <= 1 & S = 4 & CombinedHcpMin >= 23 & C >= 3 & D >= 3) & NOT (S <= 1 & H = 4 & CombinedHcpMin >= 23 & C >= 3 & D >= 3) [12:36:12.954] [Timing] S precompute: 8ms mem d=136KB (total=1247MB) [12:36:12.954] [DealFinder] W constraints: HCP[0-37], Suits=(none), Trivial=True [12:36:12.954] [Timing] W precompute: 0ms mem d=40KB (total=1247MB) [12:36:12.955] [Timing] Pre-computation (constraints): 30ms mem d=0MB (total=1247MB, gc2=19) [12:36:12.956] [DealFinder] Using cardsPlayedCount=2 for visibility calculation [12:36:12.956] [ExtractPartialDeal] Position=W, Declarer=N, CardsPlayed=2 [12:36:12.956] [ExtractPartialDeal] Visible hands: W, S, N [12:36:12.956] [ExtractPartialDeal] Input deal: N:... ... ... ... [12:36:12.956] [ExtractPartialDeal] Extracted hands: [12:36:12.956] N: ... (0 cards) [12:36:12.957] E: ... (0 cards) [12:36:12.957] S: 8732.AQ3.KQJ.AT5 (13 cards) [LOCKED] [12:36:12.957] W: 4.982.T9864.Q943 (13 cards) [LOCKED] [12:36:12.957] [DealFinder] Trump suit from contract '3N': NoTrump [12:36:12.957] [ComputePlayedCards] Declarer=N, Opening leader=E, Trump=NoTrump [12:36:12.957] [ComputePlayedCards] Card 1: D5 played by E [12:36:12.957] [ComputePlayedCards] Card 2: DJ played by S [12:36:12.957] [DealFinder] Added 0 played cards to N (was 0 cards): [12:36:12.957] [DealFinder] Added 1 played cards to E (was 0 cards): D5 [12:36:12.957] [DealFinder] Locked player S has complete 13-card hand, skipping played cards: DJ [12:36:12.957] [DealFinder] Locked player W has complete 13-card hand, skipping played cards: [12:36:12.958] [DecomposePartnership] N: No tightening (CombinedHcpMin=15, CombinedHcpMax=, partner S HCP=16) [12:36:12.958] [DecomposePartnership] E: No tightening (CombinedHcpMin=, CombinedHcpMax=, partner W HCP=2) [12:36:12.958] [DealFinder] Bid verification enabled for: N [12:36:12.959] [DealFinder] Propagated N: HCP[15-17], Suits=S[2-5] H[2-5] D[2-5] C[2-5] (2 iterations) [12:36:12.959] [DealFinder] Propagated E: HCP[5-7], Suits=S[3-6] H[2-5] D[0-3] C[1-4] (2 iterations) [12:36:12.961] [DealFinder] Known cards per player: N=0, E=1, S=13, W=13 [12:36:12.961] [DealFinder] Locked players: S, W [12:36:12.961] [DealFinder] Total known cards: 27, Remaining deck: 25, Cards to deal: 25 [12:36:12.962] [DealFinder] Players needing cards: N:13, E:12 [12:36:12.962] Large number of cards remaining. Using random generation. [12:36:12.962] [DealFinder] Hands to validate (not 13 cards in partial): N, E [12:36:12.964] [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:12.966] [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:12.967] [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:12.967] [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:12.968] [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:13.562] [Timing] Total: 636ms, Generation: 12ms, Verification: 515ms [12:36:13.562] [Timing] Attempts: 646, PassedSimpleCheck: 347, FailedVerification: 297, Found: 50 [12:36:13.575] Search complete. Returning 50 deals. [12:36:13.575] Found 50 sample deals for simulation. [12:36:13.576] Valid deals for DDS: 50 / 50 [12:36:13.576] [SAMPLE-VAL] Validating 50 samples, hidden: N,E, contract: NT [12:36:13.587] [SAMPLE-VAL] Opening lead NN validation (D5): 23/50 samples adjusted [12:36:13.593] [SAMPLE-VAL] Opening lead rule validation (D5): 12/50 samples penalized for convention violation [12:36:13.594] [SAMPLE-VAL] Done. Weight range: 0.025-1.000 [12:36:13.594] After sample validation: 50 deals remaining [12:36:13.595] [PLAY-INFER] No completed tricks -- skipping [12:36:13.595] Using weighted samples: 29/50 have non-uniform weights (range 0.025-1.000) [12:36:13.595] Sample deals (50 total, showing first 20, by weight): [12:36:13.595] [1] (w=1.000) N:AKT65.765.A2.KJ2 QJ9.KJT4.753.876 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.595] [2] (w=1.000) N:AKQJ6.J65.A7.J82 T95.KT74.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.595] [3] (w=1.000) N:K96.KJ64.A7.KJ62 AQJT5.T75.532.87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [4] (w=1.000) N:AQ6.J5.A73.KJ876 KJT95.KT764.52.2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [5] (w=1.000) N:AKQ5.J64.A2.J762 JT96.KT75.753.K8 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [6] (w=1.000) N:KQJ5.KT65.A72.K7 AT96.J74.53.J862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [7] (w=1.000) N:AKJ9.K75.A72.876 QT65.JT64.53.KJ2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [8] (w=1.000) N:AKJ9.KT75.A3.J87 QT65.J64.752.K62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [9] (w=1.000) N:AQJT5.KT4.A3.J82 K96.J765.752.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [10] (w=1.000) N:AQT9.KT64.A7.K76 KJ65.J75.532.J82 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [11] (w=1.000) N:AQJT6.KT6.A7.J82 K95.J754.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [12] (w=1.000) N:KQ96.KJT.A2.K862 AJT5.7654.753.J7 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [13] (w=1.000) N:AQT6.KJ74.A7.K62 KJ95.T65.532.J87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [14] (w=1.000) N:AKQT.JT64.A7.K87 J965.K75.532.J62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.596] [15] (w=1.000) N:AQJT.JT4.A7.KJ72 K965.K765.532.86 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.597] [16] (w=1.000) N:KQJ95.J76.A3.KJ7 AT6.KT54.752.862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.597] [17] (w=1.000) N:KQ65.K754.A72.KJ AJT9.JT6.53.8762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.597] [18] (w=1.000) N:AJT96.KT7.A2.K86 KQ5.J654.753.J72 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.597] [19] (w=1.000) N:KJT6.KJ6.A73.KJ8 AQ95.T754.52.762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.597] [20] (w=1.000) N:AJT.KT65.A3.KJ87 KQ965.J74.752.62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:13.597] ... and 30 more [12:36:14.152] --- IMP Calculation Input (aggregatedScores: card -> bridge scores per sample) --- [12:36:14.153] 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:14.153] 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:14.153] 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:14.153] --- IMP Calculation Input (aggregatedTricks: card -> trick counts per sample) --- [12:36:14.153] 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:14.153] 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:14.153] 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:14.154] --- IMP Calculation Output (card -> average IMP) --- [12:36:14.154] D4: 0.00 [12:36:14.154] D6: 0.00 [12:36:14.154] DT: 0.00 [12:36:14.154] === DDS DETAILED ANALYSIS === [12:36:14.155] Cards analyzed: 3, Samples per card: 50 [12:36:14.155] [12:36:14.155] Card IMPs AvgTricks WinRate DistinctVals TrickCounts (all samples) [12:36:14.155] ----- ------ --------- ------- ----------- -------------------------------- [12:36:14.155] 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:14.155] 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:14.155] 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:14.156] [12:36:14.156] Selected: D4 (IMPs=0.00, avgTricks=1.70) [12:36:14.156] =================== [12:36:14.218] [SD-DEF] single-dummy re-solve: 4 outer world(s) x 4 inner, candidates=[D4,D6,DT] [12:36:15.242] [SD-DEF-DIAG] D4 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:16.301] [SD-DEF-DIAG] D6 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:17.192] [SD-DEF-DIAG] DT declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:17.192] [SD-DEF] D4: 0.00 -> 0.00 IMP [12:36:17.192] [SD-DEF] D6: 0.00 -> 0.00 IMP [12:36:17.192] [SD-DEF] DT: 0.00 -> 0.00 IMP [12:36:17.195] [SD-DEF] After re-solve, best card: D4 (0.00 IMP), 168 node solve(s) [12:36:17.195] [SD-DEF] elapsed=3017ms [12:36:17.199] [TRUMP] Skipped: not a suit contract [12:36:17.199] Selected: D4 (avg 0.00 IMPs, 1.70 tricks) -- 2 tied card(s): D6, DT [12:36:17.199] [stage-timing] ok sample=656ms validate=0ms nn=18ms signal=0ms simgames=2ms dds=3601ms total=4283ms samples=50 cards=2 [12:36:17.200] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:36:17.200] Finding card to play for W: 4.982.T9864.Q943 [12:36:17.200] Relative position: Righty, Contract type: NoTrump [12:36:17.200] Cards in hand mask: 4 [12:36:17.244] Candidate: xD = 79.0 % [12:36:17.244] Candidate: TD = 14.6 % [12:36:17.244] Candidate: 8D = 5.1 % [12:36:17.244] Candidate: 9D = 1.2 % [12:36:17.245] Selected: D4 (79.0 %) === Board 9100 (API) - DDS Engine (W) - 2026-08-10 12:36:42 === === Board 9100 (API) - Neural Network Engine (W) - 2026-08-10 12:36:42 === [12:36:42.931] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:36:42.931] Contract: 3N, Declarer: N, Dealer: N [12:36:42.931] Auction: 1N-P-3N-P-P-P [12:36:42.931] Deal: N:... ... ... ... [12:36:42.931] Position W is on defender's side - score table shifted by 0 defense tricks won [12:36:42.931] ****************************** [12:36:42.931] FindMatchingDealsWithPlayInternal Input: [12:36:42.932] Position parameter: W [12:36:42.932] Deal from game: N:... ... ... ... [12:36:42.932] Hand for N: (null) [12:36:42.932] Hand for E: (null) [12:36:42.932] Hand for S: 8732.AQ3.KQJ.AT5 [12:36:42.932] Hand for W: 4.982.T9864.Q943 [12:36:42.932] Cards played: D5, DJ [12:36:42.932] Declarer: N [12:36:42.933] ****************************** [12:36:42.933] [DealFinder] Seed from player W hand: 735073689 [12:36:42.933] [DealFinder] Auction: 1N-P-3N-P-P-P [12:36:42.933] [DealFinder] Reusing process-cached base constraints for auction (stateless-service reuse). [12:36:42.933] [Timing] Pre-computation (constraints): 0ms mem d=0MB (total=1269MB, gc2=19) [12:36:42.933] [DealFinder] Using cardsPlayedCount=2 for visibility calculation [12:36:42.933] [ExtractPartialDeal] Position=W, Declarer=N, CardsPlayed=2 [12:36:42.934] [ExtractPartialDeal] Visible hands: W, S, N [12:36:42.934] [ExtractPartialDeal] Input deal: N:... ... ... ... [12:36:42.934] [ExtractPartialDeal] Extracted hands: [12:36:42.934] N: ... (0 cards) [12:36:42.934] E: ... (0 cards) [12:36:42.934] S: 8732.AQ3.KQJ.AT5 (13 cards) [LOCKED] [12:36:42.934] W: 4.982.T9864.Q943 (13 cards) [LOCKED] [12:36:42.935] [DealFinder] Trump suit from contract '3N': NoTrump [12:36:42.935] [ComputePlayedCards] Declarer=N, Opening leader=E, Trump=NoTrump [12:36:42.935] [ComputePlayedCards] Card 1: D5 played by E [12:36:42.935] [ComputePlayedCards] Card 2: DJ played by S [12:36:42.935] [DealFinder] Added 0 played cards to N (was 0 cards): [12:36:42.935] [DealFinder] Added 1 played cards to E (was 0 cards): D5 [12:36:42.935] [DealFinder] Locked player S has complete 13-card hand, skipping played cards: DJ [12:36:42.935] [DealFinder] Locked player W has complete 13-card hand, skipping played cards: [12:36:42.936] [DecomposePartnership] N: No tightening (CombinedHcpMin=15, CombinedHcpMax=, partner S HCP=16) [12:36:42.936] [DecomposePartnership] E: No tightening (CombinedHcpMin=, CombinedHcpMax=, partner W HCP=2) [12:36:42.936] [DealFinder] Bid verification enabled for: N [12:36:42.936] [DealFinder] Propagated N: HCP[15-17], Suits=S[2-5] H[2-5] D[2-5] C[2-5] (2 iterations) [12:36:42.936] [DealFinder] Propagated E: HCP[5-7], Suits=S[3-6] H[2-5] D[0-3] C[1-4] (2 iterations) [12:36:42.937] [DealFinder] Known cards per player: N=0, E=1, S=13, W=13 [12:36:42.937] [DealFinder] Locked players: S, W [12:36:42.937] [DealFinder] Total known cards: 27, Remaining deck: 25, Cards to deal: 25 [12:36:42.937] [DealFinder] Players needing cards: N:13, E:12 [12:36:42.938] Large number of cards remaining. Using random generation. [12:36:42.938] [DealFinder] Hands to validate (not 13 cards in partial): N, E [12:36:42.938] [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:42.939] [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:42.939] [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:42.940] [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:42.941] [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:43.761] SUITC_CALL_BEGIN: input=' -F1 -u -c100 -ls4 AKQ5 8732 JT964' [12:36:43.834] SUITC_CALL_END: jsonLength=1001 [12:36:43.834] SUITC_JSON_PREVIEW: {"SuitCAnalysis": {"OptimalResults":[ {"Tricks":4,"Percentage":67.8261} ],"Result":3.6783, "OptimumPlays":[ {"OptimumPlayFor": "MAX, N4","Plays":[{"Tricks":4,"Percentage":67.8261},{"Tricks":3,"Percent [12:36:43.959] [Timing] Total: 1026ms, Generation: 22ms, Verification: 887ms [12:36:43.959] [Timing] Attempts: 646, PassedSimpleCheck: 347, FailedVerification: 297, Found: 50 [12:36:43.985] Search complete. Returning 50 deals. [12:36:43.985] Found 50 sample deals for simulation. [12:36:43.985] Valid deals for DDS: 50 / 50 [12:36:43.985] [SAMPLE-VAL] Validating 50 samples, hidden: N,E, contract: NT [12:36:43.997] [SAMPLE-VAL] Opening lead NN validation (D5): 23/50 samples adjusted [12:36:43.998] [SAMPLE-VAL] Opening lead rule validation (D5): 12/50 samples penalized for convention violation [12:36:43.998] [SAMPLE-VAL] Done. Weight range: 0.025-1.000 [12:36:43.998] After sample validation: 50 deals remaining [12:36:43.998] [PLAY-INFER] No completed tricks -- skipping [12:36:43.998] Using weighted samples: 29/50 have non-uniform weights (range 0.025-1.000) [12:36:43.998] Sample deals (50 total, showing first 20, by weight): [12:36:43.999] [1] (w=1.000) N:AKT65.765.A2.KJ2 QJ9.KJT4.753.876 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:43.999] [2] (w=1.000) N:AKQJ6.J65.A7.J82 T95.KT74.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:43.999] [3] (w=1.000) N:K96.KJ64.A7.KJ62 AQJT5.T75.532.87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:43.999] [4] (w=1.000) N:AQ6.J5.A73.KJ876 KJT95.KT764.52.2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:43.999] [5] (w=1.000) N:AKQ5.J64.A2.J762 JT96.KT75.753.K8 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:43.999] [6] (w=1.000) N:KQJ5.KT65.A72.K7 AT96.J74.53.J862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:43.999] [7] (w=1.000) N:AKJ9.K75.A72.876 QT65.JT64.53.KJ2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:43.999] [8] (w=1.000) N:AKJ9.KT75.A3.J87 QT65.J64.752.K62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:43.999] [9] (w=1.000) N:AQJT5.KT4.A3.J82 K96.J765.752.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:43.999] [10] (w=1.000) N:AQT9.KT64.A7.K76 KJ65.J75.532.J82 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] [11] (w=1.000) N:AQJT6.KT6.A7.J82 K95.J754.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] [12] (w=1.000) N:KQ96.KJT.A2.K862 AJT5.7654.753.J7 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] [13] (w=1.000) N:AQT6.KJ74.A7.K62 KJ95.T65.532.J87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] [14] (w=1.000) N:AKQT.JT64.A7.K87 J965.K75.532.J62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] [15] (w=1.000) N:AQJT.JT4.A7.KJ72 K965.K765.532.86 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] [16] (w=1.000) N:KQJ95.J76.A3.KJ7 AT6.KT54.752.862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] [17] (w=1.000) N:KQ65.K754.A72.KJ AJT9.JT6.53.8762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] [18] (w=1.000) N:AJT96.KT7.A2.K86 KQ5.J654.753.J72 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] [19] (w=1.000) N:KJT6.KJ6.A73.KJ8 AQ95.T754.52.762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] [20] (w=1.000) N:AJT.KT65.A3.KJ87 KQ965.J74.752.62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:36:44.000] ... and 30 more [12:36:44.441] --- IMP Calculation Input (aggregatedScores: card -> bridge scores per sample) --- [12:36:44.442] 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:44.442] 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:44.442] 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:44.442] --- IMP Calculation Input (aggregatedTricks: card -> trick counts per sample) --- [12:36:44.442] 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:44.442] 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:44.443] 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:44.443] --- IMP Calculation Output (card -> average IMP) --- [12:36:44.443] D4: 0.00 [12:36:44.443] D6: 0.00 [12:36:44.443] DT: 0.00 [12:36:44.443] === DDS DETAILED ANALYSIS === [12:36:44.443] Cards analyzed: 3, Samples per card: 50 [12:36:44.443] [12:36:44.443] Card IMPs AvgTricks WinRate DistinctVals TrickCounts (all samples) [12:36:44.444] ----- ------ --------- ------- ----------- -------------------------------- [12:36:44.444] 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:44.444] 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:44.444] 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:44.444] [12:36:44.444] Selected: D4 (IMPs=0.00, avgTricks=1.70) [12:36:44.444] =================== [12:36:44.447] [SD-DEF] single-dummy re-solve: 4 outer world(s) x 4 inner, candidates=[D4,D6,DT] [12:36:45.779] [SD-DEF-DIAG] D4 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:46.862] [SD-DEF-DIAG] D6 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:48.022] [SD-DEF-DIAG] DT declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:36:48.022] [SD-DEF] D4: 0.00 -> 0.00 IMP [12:36:48.022] [SD-DEF] D6: 0.00 -> 0.00 IMP [12:36:48.022] [SD-DEF] DT: 0.00 -> 0.00 IMP [12:36:48.022] [SD-DEF] After re-solve, best card: D4 (0.00 IMP), 168 node solve(s) [12:36:48.023] [SD-DEF] elapsed=3578ms [12:36:48.023] [TRUMP] Skipped: not a suit contract [12:36:48.023] Selected: D4 (avg 0.00 IMPs, 1.70 tricks) -- 2 tied card(s): D6, DT [12:36:48.023] [stage-timing] ok sample=1053ms validate=0ms nn=12ms signal=0ms simgames=1ms dds=4020ms total=5091ms samples=50 cards=2 [12:36:48.023] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:36:48.023] Finding card to play for W: 4.982.T9864.Q943 [12:36:48.023] Relative position: Righty, Contract type: NoTrump [12:36:48.023] Cards in hand mask: 4 [12:36:48.024] Candidate: xD = 79.0 % [12:36:48.024] Candidate: TD = 14.6 % [12:36:48.024] Candidate: 8D = 5.1 % [12:36:48.024] Candidate: 9D = 1.2 % [12:36:48.026] Selected: D4 (79.0 %) === Board 9100 (API) - DDS Engine (W) - 2026-08-10 12:37:03 === === Board 9100 (API) - Neural Network Engine (W) - 2026-08-10 12:37:03 === [12:37:03.287] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:37:03.287] Contract: 3N, Declarer: N, Dealer: N [12:37:03.287] Auction: 1N-P-3N-P-P-P [12:37:03.287] Deal: N:... ... ... ... [12:37:03.288] Position W is on defender's side - score table shifted by 0 defense tricks won [12:37:03.288] ****************************** [12:37:03.288] FindMatchingDealsWithPlayInternal Input: [12:37:03.288] Position parameter: W [12:37:03.288] Deal from game: N:... ... ... ... [12:37:03.288] Hand for N: (null) [12:37:03.288] Hand for E: (null) [12:37:03.288] Hand for S: 8732.AQ3.KQJ.AT5 [12:37:03.288] Hand for W: 4.982.T9864.Q943 [12:37:03.288] Cards played: D5, DJ [12:37:03.288] Declarer: N [12:37:03.288] ****************************** [12:37:03.288] [DealFinder] Seed from player W hand: 735073689 [12:37:03.288] [DealFinder] Auction: 1N-P-3N-P-P-P [12:37:03.289] [DealFinder] Reusing process-cached base constraints for auction (stateless-service reuse). [12:37:03.289] [Timing] Pre-computation (constraints): 0ms mem d=0MB (total=1254MB, gc2=19) [12:37:03.289] [DealFinder] Using cardsPlayedCount=2 for visibility calculation [12:37:03.289] [ExtractPartialDeal] Position=W, Declarer=N, CardsPlayed=2 [12:37:03.289] [ExtractPartialDeal] Visible hands: W, S, N [12:37:03.289] [ExtractPartialDeal] Input deal: N:... ... ... ... [12:37:03.289] [ExtractPartialDeal] Extracted hands: [12:37:03.289] N: ... (0 cards) [12:37:03.289] E: ... (0 cards) [12:37:03.289] S: 8732.AQ3.KQJ.AT5 (13 cards) [LOCKED] [12:37:03.289] W: 4.982.T9864.Q943 (13 cards) [LOCKED] [12:37:03.289] [DealFinder] Trump suit from contract '3N': NoTrump [12:37:03.289] [ComputePlayedCards] Declarer=N, Opening leader=E, Trump=NoTrump [12:37:03.290] [ComputePlayedCards] Card 1: D5 played by E [12:37:03.290] [ComputePlayedCards] Card 2: DJ played by S [12:37:03.290] [DealFinder] Added 0 played cards to N (was 0 cards): [12:37:03.290] [DealFinder] Added 1 played cards to E (was 0 cards): D5 [12:37:03.290] [DealFinder] Locked player S has complete 13-card hand, skipping played cards: DJ [12:37:03.290] [DealFinder] Locked player W has complete 13-card hand, skipping played cards: [12:37:03.290] [DecomposePartnership] N: No tightening (CombinedHcpMin=15, CombinedHcpMax=, partner S HCP=16) [12:37:03.290] [DecomposePartnership] E: No tightening (CombinedHcpMin=, CombinedHcpMax=, partner W HCP=2) [12:37:03.290] [DealFinder] Bid verification enabled for: N [12:37:03.290] [DealFinder] Propagated N: HCP[15-17], Suits=S[2-5] H[2-5] D[2-5] C[2-5] (2 iterations) [12:37:03.290] [DealFinder] Propagated E: HCP[5-7], Suits=S[3-6] H[2-5] D[0-3] C[1-4] (2 iterations) [12:37:03.291] [DealFinder] Known cards per player: N=0, E=1, S=13, W=13 [12:37:03.291] [DealFinder] Locked players: S, W [12:37:03.291] [DealFinder] Total known cards: 27, Remaining deck: 25, Cards to deal: 25 [12:37:03.292] [DealFinder] Players needing cards: N:13, E:12 [12:37:03.292] Large number of cards remaining. Using random generation. [12:37:03.292] [DealFinder] Hands to validate (not 13 cards in partial): N, E [12:37:03.292] [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:03.293] [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:03.294] [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:03.294] [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:03.295] [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:03.369] [VerifyHands] FAIL for N: KQT.KT75.A72.J86 ((((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:03.370] [VerifyHands] FAIL for N: AQ65.KJT.73.KJ82 ((((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:03.381] [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:03.382] [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:03.382] [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:03.422] [VerifyHands] FAIL for N: KQJT95.KJT5.A7.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:37:03.426] [VerifyHands] FAIL for N: AKT5.J64.73.K876 ((((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:03.427] [VerifyHands] FAIL for N: AKQT9.K76.3.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:03.427] [VerifyHands] FAIL for N: KQ65.KJ74.A72.62 ((((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:03.441] [VerifyHands] FAIL for N: AKQT.T65.A72.J76 ((((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:03.469] [VerifyHands] FAIL for N: AKJ9.KJT4.A2.K87 ((((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:03.470] [VerifyHands] FAIL for N: AKJ65.JT65.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:03.470] [VerifyHands] FAIL for N: AKQ95.JT75.A.K87 ((((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:03.483] [VerifyHands] FAIL for N: AKQ9.KJ75.7.KJ86 ((((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:03.484] [VerifyHands] FAIL for N: KQJ96.KJ.A732.J8 ((((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:04.298] [Timing] Total: 1009ms, Generation: 30ms, Verification: 840ms [12:37:04.298] [Timing] Attempts: 646, PassedSimpleCheck: 347, FailedVerification: 297, Found: 50 [12:37:04.324] Search complete. Returning 50 deals. [12:37:04.324] Found 50 sample deals for simulation. [12:37:04.325] Valid deals for DDS: 50 / 50 [12:37:04.325] [SAMPLE-VAL] Validating 50 samples, hidden: N,E, contract: NT [12:37:04.356] [SAMPLE-VAL] Opening lead NN validation (D5): 23/50 samples adjusted [12:37:04.361] [SAMPLE-VAL] Opening lead rule validation (D5): 12/50 samples penalized for convention violation [12:37:04.361] [SAMPLE-VAL] Done. Weight range: 0.025-1.000 [12:37:04.361] After sample validation: 50 deals remaining [12:37:04.361] [PLAY-INFER] No completed tricks -- skipping [12:37:04.361] Using weighted samples: 29/50 have non-uniform weights (range 0.025-1.000) [12:37:04.361] Sample deals (50 total, showing first 20, by weight): [12:37:04.362] [1] (w=1.000) N:AKT65.765.A2.KJ2 QJ9.KJT4.753.876 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.362] [2] (w=1.000) N:AKQJ6.J65.A7.J82 T95.KT74.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.362] [3] (w=1.000) N:K96.KJ64.A7.KJ62 AQJT5.T75.532.87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.362] [4] (w=1.000) N:AQ6.J5.A73.KJ876 KJT95.KT764.52.2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.362] [5] (w=1.000) N:AKQ5.J64.A2.J762 JT96.KT75.753.K8 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.363] [6] (w=1.000) N:KQJ5.KT65.A72.K7 AT96.J74.53.J862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.363] [7] (w=1.000) N:AKJ9.K75.A72.876 QT65.JT64.53.KJ2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.363] [8] (w=1.000) N:AKJ9.KT75.A3.J87 QT65.J64.752.K62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.363] [9] (w=1.000) N:AQJT5.KT4.A3.J82 K96.J765.752.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.363] [10] (w=1.000) N:AQT9.KT64.A7.K76 KJ65.J75.532.J82 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.363] [11] (w=1.000) N:AQJT6.KT6.A7.J82 K95.J754.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.364] [12] (w=1.000) N:KQ96.KJT.A2.K862 AJT5.7654.753.J7 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.364] [13] (w=1.000) N:AQT6.KJ74.A7.K62 KJ95.T65.532.J87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.364] [14] (w=1.000) N:AKQT.JT64.A7.K87 J965.K75.532.J62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.364] [15] (w=1.000) N:AQJT.JT4.A7.KJ72 K965.K765.532.86 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.364] [16] (w=1.000) N:KQJ95.J76.A3.KJ7 AT6.KT54.752.862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.364] [17] (w=1.000) N:KQ65.K754.A72.KJ AJT9.JT6.53.8762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.365] [18] (w=1.000) N:AJT96.KT7.A2.K86 KQ5.J654.753.J72 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.365] [19] (w=1.000) N:KJT6.KJ6.A73.KJ8 AQ95.T754.52.762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.365] [20] (w=1.000) N:AJT.KT65.A3.KJ87 KQ965.J74.752.62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:04.365] ... and 30 more [12:37:05.175] --- IMP Calculation Input (aggregatedScores: card -> bridge scores per sample) --- [12:37:05.175] 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:05.175] 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:05.175] 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:05.176] --- IMP Calculation Input (aggregatedTricks: card -> trick counts per sample) --- [12:37:05.176] 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:05.176] 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:05.176] 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:05.176] --- IMP Calculation Output (card -> average IMP) --- [12:37:05.177] D4: 0.00 [12:37:05.177] D6: 0.00 [12:37:05.177] DT: 0.00 [12:37:05.177] === DDS DETAILED ANALYSIS === [12:37:05.178] Cards analyzed: 3, Samples per card: 50 [12:37:05.178] [12:37:05.178] Card IMPs AvgTricks WinRate DistinctVals TrickCounts (all samples) [12:37:05.178] ----- ------ --------- ------- ----------- -------------------------------- [12:37:05.178] 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:05.178] 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:05.179] 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:05.179] [12:37:05.179] Selected: D4 (IMPs=0.00, avgTricks=1.70) [12:37:05.179] =================== [12:37:05.181] [SD-DEF] single-dummy re-solve: 4 outer world(s) x 4 inner, candidates=[D4,D6,DT] [12:37:07.748] [SD-DEF-DIAG] D4 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:09.920] [SD-DEF-DIAG] D6 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:11.916] [SD-DEF-DIAG] DT declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:11.916] [SD-DEF] D4: 0.00 -> 0.00 IMP [12:37:11.916] [SD-DEF] D6: 0.00 -> 0.00 IMP [12:37:11.916] [SD-DEF] DT: 0.00 -> 0.00 IMP [12:37:11.917] [SD-DEF] After re-solve, best card: D4 (0.00 IMP), 168 node solve(s) [12:37:11.917] [SD-DEF] elapsed=6737ms [12:37:11.917] [TRUMP] Skipped: not a suit contract [12:37:11.917] Selected: D4 (avg 0.00 IMPs, 1.70 tricks) -- 2 tied card(s): D6, DT [12:37:11.917] [stage-timing] ok sample=1036ms validate=0ms nn=36ms signal=0ms simgames=4ms dds=7548ms total=8630ms samples=50 cards=2 [12:37:11.918] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:37:11.918] Finding card to play for W: 4.982.T9864.Q943 [12:37:11.918] Relative position: Righty, Contract type: NoTrump [12:37:11.918] Cards in hand mask: 4 [12:37:11.919] Candidate: xD = 79.0 % [12:37:11.920] Candidate: TD = 14.6 % [12:37:11.920] Candidate: 8D = 5.1 % [12:37:11.920] Candidate: 9D = 1.2 % [12:37:11.920] Selected: D4 (79.0 %) === Board 9100 (API) - DDS Engine (W) - 2026-08-10 12:37:22 === === Board 9100 (API) - Neural Network Engine (W) - 2026-08-10 12:37:22 === [12:37:22.323] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:37:22.324] Contract: 3N, Declarer: N, Dealer: N [12:37:22.324] Auction: 1N-P-3N-P-P-P [12:37:22.324] Deal: N:... ... ... ... [12:37:22.324] Position W is on defender's side - score table shifted by 0 defense tricks won [12:37:22.324] ****************************** [12:37:22.324] FindMatchingDealsWithPlayInternal Input: [12:37:22.324] Position parameter: W [12:37:22.324] Deal from game: N:... ... ... ... [12:37:22.324] Hand for N: (null) [12:37:22.324] Hand for E: (null) [12:37:22.324] Hand for S: 8732.AQ3.KQJ.AT5 [12:37:22.325] Hand for W: 4.982.T9864.Q943 [12:37:22.325] Cards played: D5, DJ [12:37:22.325] Declarer: N [12:37:22.325] ****************************** [12:37:22.325] [DealFinder] Seed from player W hand: 735073689 [12:37:22.325] [DealFinder] Auction: 1N-P-3N-P-P-P [12:37:22.325] [DealFinder] Reusing process-cached base constraints for auction (stateless-service reuse). [12:37:22.326] [Timing] Pre-computation (constraints): 0ms mem d=0MB (total=1264MB, gc2=19) [12:37:22.326] [DealFinder] Using cardsPlayedCount=2 for visibility calculation [12:37:22.326] [ExtractPartialDeal] Position=W, Declarer=N, CardsPlayed=2 [12:37:22.326] [ExtractPartialDeal] Visible hands: W, S, N [12:37:22.326] [ExtractPartialDeal] Input deal: N:... ... ... ... [12:37:22.326] [ExtractPartialDeal] Extracted hands: [12:37:22.326] N: ... (0 cards) [12:37:22.326] E: ... (0 cards) [12:37:22.326] S: 8732.AQ3.KQJ.AT5 (13 cards) [LOCKED] [12:37:22.326] W: 4.982.T9864.Q943 (13 cards) [LOCKED] [12:37:22.327] [DealFinder] Trump suit from contract '3N': NoTrump [12:37:22.327] [ComputePlayedCards] Declarer=N, Opening leader=E, Trump=NoTrump [12:37:22.327] [ComputePlayedCards] Card 1: D5 played by E [12:37:22.327] [ComputePlayedCards] Card 2: DJ played by S [12:37:22.327] [DealFinder] Added 0 played cards to N (was 0 cards): [12:37:22.327] [DealFinder] Added 1 played cards to E (was 0 cards): D5 [12:37:22.327] [DealFinder] Locked player S has complete 13-card hand, skipping played cards: DJ [12:37:22.327] [DealFinder] Locked player W has complete 13-card hand, skipping played cards: [12:37:22.327] [DecomposePartnership] N: No tightening (CombinedHcpMin=15, CombinedHcpMax=, partner S HCP=16) [12:37:22.327] [DecomposePartnership] E: No tightening (CombinedHcpMin=, CombinedHcpMax=, partner W HCP=2) [12:37:22.328] [DealFinder] Bid verification enabled for: N [12:37:22.328] [DealFinder] Propagated N: HCP[15-17], Suits=S[2-5] H[2-5] D[2-5] C[2-5] (2 iterations) [12:37:22.328] [DealFinder] Propagated E: HCP[5-7], Suits=S[3-6] H[2-5] D[0-3] C[1-4] (2 iterations) [12:37:22.329] [DealFinder] Known cards per player: N=0, E=1, S=13, W=13 [12:37:22.329] [DealFinder] Locked players: S, W [12:37:22.329] [DealFinder] Total known cards: 27, Remaining deck: 25, Cards to deal: 25 [12:37:22.329] [DealFinder] Players needing cards: N:13, E:12 [12:37:22.329] Large number of cards remaining. Using random generation. [12:37:22.329] [DealFinder] Hands to validate (not 13 cards in partial): N, E [12:37:22.329] [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.330] [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.330] [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:22.331] [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:22.331] [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:22.401] [VerifyHands] FAIL for N: KQT.KT75.A72.J86 ((((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.401] [VerifyHands] FAIL for N: AQ65.KJT.73.KJ82 ((((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.415] [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.415] [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.416] [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.439] [VerifyHands] FAIL for N: AKQT5.KT6.A7.K62 ((((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.440] [VerifyHands] FAIL for N: AQJ96.J5.A72.J86 ((((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.461] [VerifyHands] FAIL for N: KQJT95.KJT5.A7.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:37:22.462] [VerifyHands] FAIL for N: AKT5.J64.73.K876 ((((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.463] [VerifyHands] FAIL for N: AKQT9.K76.3.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:22.527] [VerifyHands] FAIL for N: AKJ9.KJT4.A2.K87 ((((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.530] [VerifyHands] FAIL for N: AKJ65.JT65.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.532] [VerifyHands] FAIL for N: AKQ95.JT75.A.K87 ((((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.568] [VerifyHands] FAIL for N: AKQ9.KJ75.7.KJ86 ((((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: KQJ96.KJ.A732.J8 ((((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.570] [VerifyHands] FAIL for N: KT65.KJ764.A7.K2 ((((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.666] [VerifyHands] FAIL for N: AQ65.654.A3.KJ82 ((((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.679] [VerifyHands] FAIL for N: QJT95.T6.A732.KJ ((((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.680] [VerifyHands] FAIL for N: AKQJT5.K5.A2.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:22.681] [VerifyHands] FAIL for N: AJ965.KJT6.A.K62 ((((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.688] [VerifyHands] FAIL for N: AQJT96.J5.732.K8 ((((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.828] [VerifyHands] FAIL for N: AK9.KJT54.2.KJ82 ((((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.829] [VerifyHands] FAIL for N: AKQ9.J75.32.KJ72 ((((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.830] [VerifyHands] FAIL for N: Q6.KJ74.A72.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:22.830] [VerifyHands] FAIL for N: AQ9.JT75.A32.872 ((((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.831] [VerifyHands] FAIL for N: AQT96.KJT6.7.K62 ((((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:23.770] [Timing] Total: 1444ms, Generation: 18ms, Verification: 1205ms [12:37:23.770] [Timing] Attempts: 646, PassedSimpleCheck: 347, FailedVerification: 297, Found: 50 [12:37:23.851] Search complete. Returning 50 deals. [12:37:23.851] Found 50 sample deals for simulation. [12:37:23.852] Valid deals for DDS: 50 / 50 [12:37:23.852] [SAMPLE-VAL] Validating 50 samples, hidden: N,E, contract: NT [12:37:23.901] [SAMPLE-VAL] Opening lead NN validation (D5): 23/50 samples adjusted [12:37:23.901] [SAMPLE-VAL] Opening lead rule validation (D5): 12/50 samples penalized for convention violation [12:37:23.901] [SAMPLE-VAL] Done. Weight range: 0.025-1.000 [12:37:23.901] After sample validation: 50 deals remaining [12:37:23.902] [PLAY-INFER] No completed tricks -- skipping [12:37:23.902] Using weighted samples: 29/50 have non-uniform weights (range 0.025-1.000) [12:37:23.902] Sample deals (50 total, showing first 20, by weight): [12:37:23.902] [1] (w=1.000) N:AKT65.765.A2.KJ2 QJ9.KJT4.753.876 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.902] [2] (w=1.000) N:AKQJ6.J65.A7.J82 T95.KT74.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.902] [3] (w=1.000) N:K96.KJ64.A7.KJ62 AQJT5.T75.532.87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.902] [4] (w=1.000) N:AQ6.J5.A73.KJ876 KJT95.KT764.52.2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.902] [5] (w=1.000) N:AKQ5.J64.A2.J762 JT96.KT75.753.K8 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.902] [6] (w=1.000) N:KQJ5.KT65.A72.K7 AT96.J74.53.J862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.903] [7] (w=1.000) N:AKJ9.K75.A72.876 QT65.JT64.53.KJ2 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.903] [8] (w=1.000) N:AKJ9.KT75.A3.J87 QT65.J64.752.K62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.903] [9] (w=1.000) N:AQJT5.KT4.A3.J82 K96.J765.752.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.903] [10] (w=1.000) N:AQT9.KT64.A7.K76 KJ65.J75.532.J82 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.903] [11] (w=1.000) N:AQJT6.KT6.A7.J82 K95.J754.532.K76 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.903] [12] (w=1.000) N:KQ96.KJT.A2.K862 AJT5.7654.753.J7 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.903] [13] (w=1.000) N:AQT6.KJ74.A7.K62 KJ95.T65.532.J87 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.903] [14] (w=1.000) N:AKQT.JT64.A7.K87 J965.K75.532.J62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.903] [15] (w=1.000) N:AQJT.JT4.A7.KJ72 K965.K765.532.86 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.903] [16] (w=1.000) N:KQJ95.J76.A3.KJ7 AT6.KT54.752.862 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.904] [17] (w=1.000) N:KQ65.K754.A72.KJ AJT9.JT6.53.8762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.904] [18] (w=1.000) N:AJT96.KT7.A2.K86 KQ5.J654.753.J72 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.904] [19] (w=1.000) N:KJT6.KJ6.A73.KJ8 AQ95.T754.52.762 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.904] [20] (w=1.000) N:AJT.KT65.A3.KJ87 KQ965.J74.752.62 8732.AQ3.KQJ.AT5 4.982.T9864.Q943 [12:37:23.904] ... and 30 more [12:37:25.197] --- IMP Calculation Input (aggregatedScores: card -> bridge scores per sample) --- [12:37:25.197] 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:25.197] 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:25.197] 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:25.197] --- IMP Calculation Input (aggregatedTricks: card -> trick counts per sample) --- [12:37:25.197] 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:25.197] 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:25.197] 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:25.197] --- IMP Calculation Output (card -> average IMP) --- [12:37:25.197] D4: 0.00 [12:37:25.197] D6: 0.00 [12:37:25.197] DT: 0.00 [12:37:25.198] === DDS DETAILED ANALYSIS === [12:37:25.198] Cards analyzed: 3, Samples per card: 50 [12:37:25.198] [12:37:25.198] Card IMPs AvgTricks WinRate DistinctVals TrickCounts (all samples) [12:37:25.198] ----- ------ --------- ------- ----------- -------------------------------- [12:37:25.198] 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:25.198] 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:25.198] 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:25.198] [12:37:25.198] Selected: D4 (IMPs=0.00, avgTricks=1.70) [12:37:25.198] =================== [12:37:25.199] [SD-DEF] single-dummy re-solve: 4 outer world(s) x 4 inner, candidates=[D4,D6,DT] [12:37:31.028] [SD-DEF-DIAG] D4 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:33.812] [SD-DEF-DIAG] D6 declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:35.779] [SD-DEF-DIAG] DT declTricks/outerWorld=[12,11,11,12] avg=11.50 [12:37:35.779] [SD-DEF] D4: 0.00 -> 0.00 IMP [12:37:35.780] [SD-DEF] D6: 0.00 -> 0.00 IMP [12:37:35.780] [SD-DEF] DT: 0.00 -> 0.00 IMP [12:37:35.780] [SD-DEF] After re-solve, best card: D4 (0.00 IMP), 168 node solve(s) [12:37:35.780] [SD-DEF] elapsed=10581ms [12:37:35.780] [TRUMP] Skipped: not a suit contract [12:37:35.780] Selected: D4 (avg 0.00 IMPs, 1.70 tricks) -- 2 tied card(s): D6, DT [12:37:35.780] [stage-timing] ok sample=1527ms validate=0ms nn=49ms signal=0ms simgames=20ms dds=11856ms total=13456ms samples=50 cards=2 [12:37:35.781] === FindBestCardAsync: Position=W, CardsPlayed=2 === [12:37:35.781] Finding card to play for W: 4.982.T9864.Q943 [12:37:35.781] Relative position: Righty, Contract type: NoTrump [12:37:35.781] Cards in hand mask: 4 [12:37:35.782] Candidate: xD = 79.0 % [12:37:35.782] Candidate: TD = 14.6 % [12:37:35.782] Candidate: 8D = 5.1 % [12:37:35.782] Candidate: 9D = 1.2 % [12:37:35.782] Selected: D4 (79.0 %)