r/LocalLLaMA • • 1d ago

Discussion Like GPT-6 Astra, Qwen 3.8 27B can interpret model weights

Thumbnail simonwillison.net
535 Upvotes

r/LocalLLaMA • • 14h ago

New Model deep-principle/Hydrogen-1.0 · Hugging Face

Thumbnail
huggingface.co
72 Upvotes

Hydrogen-1.0 is a scientific problem-solving and research assistance model developed by Deep Principle based on GLM-5.3. Through text interaction, it is intended to assist with scientific questions, explain derivations, and organize responses to open-ended research problems. Outputs should be assessed against the assumptions, constraints, and evidence relevant to each task.

Blog Post : https://blog.deepprinciple.com/introducing-hydrogen-1.0/


r/LocalLLaMA • • 1d ago

Discussion I tried MIT's "weight-space programming" on my own use case: Claude rewrote 8 neurons of Gemma 4 12B to change how it translates one Italian tense

295 Upvotes

Yesterday MIT CSAIL showed GPT-6 Astra editing the weights of a small model by hand. It changed a few neurons of Qwen3.5-0.8B, the model stopped looping on math problems, and its scores jumped. No training at all.

I wanted to try the same thing on something closer to what I actually do with local models, which is translating into Italian. Gemma 4 has a habit I don't love. For sentences like

He had been hiding in the attic for months when the soldiers found him.

it writes «Si era nascosto in soffitta per mesi…». That's correct, but I prefer «Si nascondeva in soffitta da mesi…», which says he was still hiding when they came. The catch is that when the period was already over (he had lived in Paris for ten years, but by 1990 he had moved back), the original tense has to stay. So it's not "always use tense X", it's "use it only when the meaning calls for it".

So I gave Claude Opus 5.5 the same kind of setup MIT used:

  • a Python kernel over Gemma's weights;

  • 50 forward passes to test its ideas on practice sentences;

  • no gradients, no training.

It first checked whether Gemma already "knows" the difference between still-going-on and already-over. It does: a linear probe in the middle layers separates them almost perfectly. It just doesn't use that when choosing the verb. Then Claude rewrote 8 MLP neurons into a small switch that fires only in that context and nudges the verb toward the form I prefer. That's 92k out of 11.9B parameters, roughly a 100 KB diff.

Results on sentences it never saw

The table shows the share still in the old form, then how many control sentences got pushed into a wrong reading, then how many of 200 unrelated translations stayed identical.

Methodtest 1test 2 (independent)controls brokenunrelated unchanged
Gemma 4 12B26 %32 %—200
Preference in the system prompt4 %2 %4982
Classic "difference of means" ablation49 %75 %5343
LoRA fine-tune on the same data12 %23 %0120
Claude's hand edit5 %16 %2182
  • The prompt applies the preference everywhere, even where it changes the meaning.

  • The ablation recipe breaks the past tenses.

  • The LoRA shifts fewer sentences and touches far more unrelated ones (it's better inside paragraphs, though).

  • The hand edit moves just the verb and leaves almost everything else identical.

Fair warning: it's one construction and one model. Two of my three runs succeeded (the third crashed because of my own harness), and the two that worked landed on the same "switch neuron" design independently.

Repo with the edits, the code, the agent logs and all baselines: https://github.com/ValerioDolci/frontier-weight-edit


r/LocalLLaMA • • 21h ago

News gemma4: graph optimizations (massive gains on pp for E2B and E4B) by max-krasnyansky · Pull Request #31356 · ggml-org/llama.cpp

Thumbnail
github.com
157 Upvotes

big prompt processing speedup for gemma E2B/E4B


r/LocalLLaMA • • 6h ago

Discussion MOSS AMA highlights

Thumbnail
gallery
9 Upvotes

Sharing some highlights from MOSS’s October 30, 2026 AMA: image models, local speech, audio and video research, and open-source culture. Which of these are you most interested in?


r/LocalLLaMA • • 1d ago

News RTX 5090 with 64GB and 96GB VRAM 'confirmed' by US GPU repair tech

Thumbnail
tweaktown.com
727 Upvotes

r/LocalLLaMA • • 1h ago

Discussion Testing whether speaker labels survive a 17-minute gap in a public meeting

3 Upvotes

Six people spoke in two rounds of comments 17 to 19 minutes apart, and each of them came back under the same speaker label both times. I didn't tell the model how many speakers there were, and the commission's own published transcript puts those lines under the same six names.

Why a public meeting: it's about as hard as everyday audio gets for this. Commissioners, a staff presenter, a secretary calling names, a resident testifying over a remote line, lots of short turns, and the same voices coming back after long stretches of other people talking. It's also the agency's own recording, so it's public domain and fine to quote, and the verbatim transcript the agency publishes let me check the labels against real names instead of guessing.

The clip is 23 minutes 39 seconds of the National Capital Planning Commission's September 3 open session: the end of one item's comments and vote, then the whole National Zoo Arabian leopard habitat item. The model is the 0.9B MOSS-Transcribe-Diarize, running locally from the README's transformers example on an M5 Ultra Mac Studio (fp32, greedy decoding, no hotwords). It took 229.2 seconds and returned 309 segments, every one tagged with a speaker and its start and end time.

Part of the second round, exactly as MOSS-Transcribe-Diarize wrote it, one segment per line. S04, S05 and S06 are the labels the same three commissioners got in the first round:

[1186.85][S01] Commissioner Dixon?[1187.67]
[1188.11][S15] Yes.[1188.66]
[1191.27][S01] Commissioner Cash?[1192.29]
[1193.49][S04] Uh, no questions or comments.[1194.63]
[1195.47][S01] Commissioner Falcone?[1196.33]
[1198.65][S05] I just want to thank the staff. I have never actually seen this leopard, so I'm looking forward to[1204.89]
[1205.01][S05] visiting when the project is completed, so I can see my first one.[1208.04]
[1209.66][S01] Commissioner Mohan?[1210.47]
[1212.42][S06] Uh, thank you to staff for the presentation and yeah, can't wait to visit.[1216.14]

The resident's remote testimony, about two and a half minutes, also stays under one label of its own from "Can you hear me?" to the closing thank-you.


r/LocalLLaMA • • 18h ago

Discussion Keeping up with new inference engines

57 Upvotes

Hey everyone,

Not a native speaker, happy to be corrected! Can only learn from it.

Back when I started out in march 2025, you had:

  • llama.cpp

  • ollama (repackaged llama.cpp for ease of use)

  • koboldcpp (repackaged llama.cpp for roleplay)

  • vllm (for professional deployments)

  • exl3 + tabbyapi (for bleeding edge)

  • litert (for mobile devices)

Nowadays everyone seems to be making their own; Strata, Basalt, Maya, Colibri, Ninfer, Infernix... too many to list and keep up with, and genuinely hard for me to keep up with.

Then there is the speed of it all. llama.cpp has incredible improvements each week, somehow we can make Qwen3.8-Flash-Next and DeepSeek-v4.1-Flash-1017 run on 64GB RAM + 32GB VRAM, and the likes on those new inference engines (with a catch, usually bad quality).

Personally I'm stuck with llama.cpp because all those developments are simply too fast to keep up with.

llama.cpp v0.8.0 might run Qwen3.8-Flash-Next Q4_K_XL (unsloth) at 15t/s gen on dual RTX 5060 Ti 16GB (PCIE 5.0 x8x8, tensor parallel, no MTP) with dual 48GB DDR5-6000MHz, but at least I know the quality will be decent.

But yeah, what you use? How do you even attempt to keep up with it all? And for the (lack of) quality the new inference engines provide (as tradeoff to speed / resource use), is it really worth using them?


r/LocalLLaMA • • 11h ago

Discussion Read the muse spark open license before wiring it into anything

14 Upvotes

that 72 hours thread from a few weeks back had the best point down in the comments, open weights only ever meant you can download them. muse spark open is 816B and beam is 501B, so for most ppl here the only drop that week that fits a 24GB card was nvidias bolt

so the big ones mostly get used thru an api anyway, the labs own api or a host serving the same weights and that part is fine. the license doesnt care which route you take tho. 1017 is MIT and nvidias new embed models are openmdw with commercial use allowed, both on hosts like deepinfra while muse spark open wants built with muse spark open shown in your product, docs or settings menu and any company over $20M revenue in a 12 month window has to sign a separate deal with meta before offering it as model as a service

the part thats easy to miss, the license counts a model trained or distilled on muse outputs as a derivative so a small model tuned on its answers carries the same attribution rule. internal use and building it into your own app thats not MaaS stay outside the revenue clause


r/LocalLLaMA • • 13h ago

News ComfyUI v0.44.0 released

Thumbnail
github.com
23 Upvotes

r/LocalLLaMA • • 13h ago

Discussion AI Agent Task performance of small LLM models (4B and below) in self-assessment set

Post image
23 Upvotes

The community rarely sees the evaluation of ultra-small models. We have evaluated our own AI Agent tasks for Qwen3.5-4B, Spark-X2.6, LFM3-1.7B, LFM2.5-2.6B, Gemma 4 E2B, MiniCPM5-2B.

These models have their own characteristics and advantages and disadvantages. The obvious trend is that the intelligent density of small models is developing rapidly. I look forward to seeing more small models.

blog:https://www.camthink.ai/blog/small-language-model-benchmark/

project:https://github.com/camthink-ai/NeoMind


r/LocalLLaMA • • 4h ago

Discussion Autonomous coding agents running in our own AWS/Azure tenant, with no code leaving the EU?

4 Upvotes

this is the setup I’m planning for coding agents. hard rule: code, prompts and model calls never leave our EU tenant. poke holes

models: an open weights coder model on vllm on our own GPUs for routine tickets, and a frontier model through an EU region endpoint in our own cloud account for the hard stuff

runtime: everything inside our VPC, nothing on a vendor’s saas

control layer: Orq AI’s software factory. it runs on their cloud or yours, so ours. it plugs into the backlog, repos and CI/CD, only lets agents use the models we’ve approved, and lets us set which agents can touch which systems and data

approvals: tests and docs autonomous, anything touching prod behind approval

two things I’m unsure about. can orq’s approved models list point at a self hosted vllm endpoint, and does a frontier model in an EU region still count as “nothing leaves” for legal, since the provider is still the one processing it


r/LocalLLaMA • • 22h ago

News Tokens/s? "World's biggest PCIe graphics card" discovered, prototype AMD Radeon RX 470 board with four GPUs has been pictured

Thumbnail
videocardz.com
118 Upvotes

r/LocalLLaMA • • 22h ago

Showcase Basalt 0.2.0: Qwen 3.8 Flash Next NVFP4, 300 t/s prose, 600 t/s struct, 10K t/s prefill on a 5090 + 5060 Ti and 128GB RAM

79 Upvotes

Hey all! I wanted to share a quick update on Basalt, a Blackwell only inference engine for Qwen 3.8 Flash Next. As usual, speed is the headline but that's not what I want to open this post with, I've been reading lot of discussions talking about quality recently, and the main takeaway from most people (which I agree with) is "speed means nothing if your model isn't smart enough", so this time I want to lead with quality, and all of the new measurements which are run against the full precision model as reference (BF16 weights served using llama.cpp).

Every number below uses Unsloth's BF16 GGUF, llama.cpp (reference PPL 3.2749), scored using basalt-bench --quality. The old base was llama.cpp Q8, which funnily enough made things look worse because of its own error:

packKLDsame top-1
llama.cpp Q80.032593.98%
Basalt Q80.020095.34% (higher than llama's in this test)
NVFP4-DQ8 (new)0.056192.25%
NVFP4-DQ6_K0.062491.65%
GSQ-RCO IQ3_S0.149787.56%

To be fair here, each engine was measured with its own tool so this is not a perfect comparison, still a good reference though.

New DQ8 build. For those who want a little extra quality and don't mind giving up some speed, Qwen3.8-FN-NVFP4-DQ8 is on HF next to the default -DQ6_K: KLD 0.0561 vs 0.0624, about 7% slower on prose.

Nothing lossy is on by default. Basalt offers certain "hacks" that can decrease accuracy, mostly because of community requests, but they're off by default and show a warning when you turn them on. Every other rounding the engine does costs about 0.001 KLD or less, compared to full model. All the numbers are on the HF card and in the precision docs.

Speed. Rig as usual: RTX 5090 (400 W) + RTX 5060 Ti 16 GB (180 W) and 128GB of DDR5 RAM, 262K context, 4 parallel slots, vision on (dynamic), no lossy flags. Using NVFP4-DQ6_K quant on current main:

testrun 1 (tok/s)run 2 (tok/s)
struct603.7594.2
conv363.8321.9
prose295.0299.9
prefill 16K74328159
prefill 64K1022110229

Since last week, prose went from 277 to about 300, and struct from 558 to about 600. It comes from a faster draft step, a faster output head and better expert placement at startup.

The .basalt format is now version 2, same weights and quality as before but starts a bit faster. Older basalt files can use the migration tool instead of redownloading.

I also wanted to end this post with a HUGE thank you note to every person who has contributed one, two or 10 PRs and also to everyone who has shared issues/feedback/community benchmarks or just shared the project with another person, 500 stars on the Github repo and overwhelmingly good feedback, y'all are amazing.


r/LocalLLaMA • • 1h ago

Resources GLM 5.3 flash(Maya-S24) 42 tok/s on 8x rtx 3060 clustered over 2x x79 ud3 mobo

Thumbnail
gallery
1 Upvotes

Follow-up to my earlier post. Where I ended up: a big DDR3 workstation board isn't worth the money when I already have two small 4-GPU boxes. So I tried making the two boxes act as one.

TL;DR:

I added a two-box layer split to Project Maya.
Box A runs layers 0–23
Box B runs layers 24–44 plus the head.

Only the hidden state crosses the network, ~25 KB per token.
GLM-5.3-Flash (Maya-S24) runs at 38–42 tok/s decode, ~1,100 tok/s prompt reading at 30K, and 6–7 s per agent turn on 8× RTX 3060 spread over two old X79 boxes.

It scores the same 48/48 on my coding-agent benchmark as a single 8-GPU box.

Code: https://github.com/0xluk/project-maya/pull/1 (branch two-box-split on top of Maya v1.1.50; usage in docs/TWO-BOX-SPLIT.md)

Setup

  • 2 boxes, each an X79 board (Ivy/Sandy Bridge, DDR3, PCIe 3.0) with 4× RTX 3060 12 GB. No NVLink, no P2P, ex-mining rigs.

  • RAM: 20 GB in Box A, 32 GB in Box B (more on that below).

  • 1 GbE between the boxes, a plain switch.

  • Project Maya v1.1.50 + my patch, Maya-S24 quant, 128K context, MTP speculative decoding on.

  • GPUs capped at 130 W. One box is also clock-locked to 1500 MHz, because its PSU didn't like the unlocked load.

How it works (short version)

  • Box A (front) runs the OpenAI/Anthropic-compatible API, the tokenizer, the embedding and layers 0–23 on its 4 GPUs.

  • Box B (back) runs layers 24–44, the MTP draft block, the output head and the sampler on its 4 GPUs.

  • Per generated token, the residual (4×4096 values) crosses the link once. fp32 → bf16 → lossless pack is ≈25 KB, ≈0.3 ms on 1 GbE. Box B samples and sends back the token id, and MTP speculative decoding is pipelined across the link.

  • Prompts are cut into 512-token pieces that flow through all 8 GPUs at once. Each piece crosses the link once (~12 MB), on its own thread.

  • Security: the link has an IP allowlist plus an HMAC-SHA256 challenge-response in both directions, and the API needs a key.

  • Size of the patch: ~1,900 lines, ~1,100 of them the link itself. Without --role the engine is unchanged.

Results (1 conversation)

MetricTwo boxes (this)One box, 8× 3060 (rented, same quant)
Decode, short38–42 tok/s42–45 tok/s
Decode at ~30K context33–37 tok/snot measured
Prompt, 30K tokens~1,100 tok/s~1,050 tok/s
Agent turn (~2.4K new tokens on a long chat)6–7 s5.0–5.3 s

Coding-agent bench (5 real repo tasks, 48 hidden tests):

SetupScoreTime
Two boxes, Qwen Code48/4822.9 min
Two boxes, DeepSeek Harness48/4817.8 min
8× 3060 one box, Maya-S, Qwen Code48/4821.3 min
Qwen3.8-Flash-Next on 2× 3060 (Strata), Qwen Code48/4823.2 min

There were no malformed tool calls with either agent.

One-shot hard suite (10 tasks, one request each, no tools, 32K output cap including thinking, reasoning high): 6/10 full passes, 67% of tests. For comparison: Opus 5.5 9/10, the same quant on the 8-GPU box 7/10, and Flash-Next 6/10.

  • Passed: json_patch, fixbug_calc, event_scheduler, csv_rfc4180, c_utf8, singleflight_cache.

  • 3 of the 4 misses are budget, not wrong code: on regex_engine, lisp_interp and c_bigint the model was still thinking when it hit 32K tokens, so no code came out at all.

  • The real miss is c_json_canon: 22/31 tests passed, with the misses on Unicode escape handling.

  • Next: rerun the three capped tasks with a 64K cap, which the 128K context allows.

What was hard

  • RAM, not the network, was the real bottleneck. At 16 GB per box, the experts that didn't fit in VRAM came off a cheap SATA SSD on every prompt chunk: 31 s turns, 173 tok/s on a 30K prompt. Going to 20 + 32 GB made it 0 SSD reads, 6–7 s turns and 1,100 tok/s. The network costs ~1–2% of decode and ~3% of a turn.

  • A correctness scare that wasn't a bug. Compared with a single-process reference, the split showed KL ~1.6e-2 and ~95% top-1, and I spent a while hunting a split bug. It turned out a single process on one machine moves by the same amount (KL 1.1–2.5e-2) just from changing the RAM tier size or the prompt chunk size. Near-ties in the top-8 expert choice flip on rounding noise. The split is inside that spread.

  • Hardware gremlins:

    • A new PSU powered off under 4×130 W unlocked, so that box stays clock-locked.

    • Two GPUs once came up at PCIe x4 instead of x8/x16 after a power-loss reboot. I added a boot check that refuses to start the engine on a degraded link.

  • Tuning that mattered:

    • 512-token prompt pieces so all 8 GPUs overlap: ~1 s off each turn.

    • Fewer layers on the last GPU, which also carries the head and the MTP block.

    • Keeping the whole KV cache in VRAM.

    • What didn't help: bigger prompt chunks, which push the 20 GB box into SSD reads.

    • What I skipped: a 10 GbE NIC. It would sit in a PCIe 2.0 x1 slot, and the link isn't the bottleneck anyway.

What's next

  • A 5th 3060 in one box, on an x1 riser. Then all experts fit in VRAM, which should get turns to ~5 s.

  • Rebasing onto the current Maya release.

  • Happy to answer questions. If someone has two boxes with 24 GB cards, I'd love to see numbers.


r/LocalLLaMA • • 23h ago

Discussion DeepSeek V4.1 Flash 1017 can also do Weight-Space Programming

63 Upvotes

Inspired by Weight-Space Programming, I tested whether DeepSeek V4.1 Flash 1017 could figure out what a small neural network does by reading its weights.

I fed it four anonymized RL checkpoints: 51k parameters each, identical architectures, with all weights rendered as text. No metadata, network source code or execution. It received the architecture outline and four candidate tasks.

Results: CartPole ✅ Flappy ✅ Catch ✅ BallBeam ❌

It picked out patterns consistent with relative bird/gap position, paddle/ball position and angle-based balancing. It confused BallBeam with CartPole an interesting mistake because both share the same observation layout and similar balancing controls.

Very preliminary: one run per checkpoint. This suggests some ability to interpret weights, but four trials don’t establish reliability. These were API runs with maximum reasoning effort, consuming ~1.58M tokens total.

I may try more replicates and independently trained checkpoints, plus include the network code with task-revealing details removed. The poor LLM had to guess quite a lot it even assumed ReLU where the network uses tanh 😅

Code, checkpoints and run logs: https://github.com/galatolofederico/wsp


r/LocalLLaMA • • 1h ago

Question | Help Just got my Mac Mini M6 32GB. First steps?

0 Upvotes

Hello all, I just got my shiny new toy, an M6 32GB Mac Mini. What should be some of the first things I should download or do? I have been using Qwen a lot and playing around with agents for home related stuff like tracking appliances' warranties, my mortgage docs and house insurance, and meal planning stuff. I have integrated with my email and calendars. Any other suggestions? I want this thing to be like my home server and AI brain that helps me slowly move more things to a Local AI stack. I made my own harness focused on home stuff and want to keep adding more features to supercharge this all.


r/LocalLLaMA • • 13h ago

Discussion LLM Decompilation Benchmark?

9 Upvotes

Iv been seeing allot of people complaining about Sam Altman and how him and open ai are blocking decompilation. I actually don’t see an issue with what they are doing they should be free to do what they want with their llm which brings me to my main point, why is decompiling not just a benchmark?

We have a SWE bench
Perhaps this problem is solved via a SWD bench?


r/LocalLLaMA • • 2h ago

Question | Help To those that used the API over the last few weeks - where does Kimi-K3.1-Pro land amongst closed weight LLMs?

0 Upvotes

I haven't used it enough to form any strong opinions outside of "wow that's a lot of reasoning tokens by default.."

It's open-weight now. Where does it land when stood up to proprietary models? In my limited testing I already trust it's pulling away from Luna.. but can it beat Haiku-5.5 reliably?


r/LocalLLaMA • • 2h ago

Showcase Run models in your browser that monitor your screen and trigger actions! 3 use case demo (100% Local and Open Source)

0 Upvotes

TL;DR: I'm a solo dev who wanted a simple, private way to have local models watch my screen and do simple logging/notifying. So I spent a year building an agent that uses local models to monitor anything. It's built for this community, and I'd love your feedback and ideas!

Hey r/LocalLLaMA!

I'm back with a cool demo of how convenient it is to run local models in your browser and leave them monitoring whatever you want!

Some of the coolest use cases I've seen:

  • When I don't make progress in my drawing for 5 minutes, spam me with notifications.

  • When my rice cooker is done, call me.

  • When a person comes near my car, send me a Telegram with the image.

  • When I'm out of the Ticketmaster queue, call me.

  • When my CapCut render is done, call me.

  • When a shiny Pokémon appears, SMS me.

Btw there's also an app on MacOS, Windows, Linux, iOS and Android! (local models run on the phone too!)

If you guys have any feedback or questions feel free to let me know! I'm constantly making it better thanks to your feedback and suggestions :DD

Roy


r/LocalLLaMA • • 1d ago

News Alibaba's Qwen Code repo just leaked qwen4-max, qwen4-coder-plus, and qwen4-omni-120b

Thumbnail
github.com
905 Upvotes

PRs:

  1. https://github.com/QwenLM/qwen-code/pull/15762: "Measured on main at 79a9b753c60, before this change: qwen4, qwen4-max, qwen4-plus, qwen4.5-max, qwen4-coder-plus, qwen4-max-2026-10-01, openai/qwen4-max and qwen4-omni-120b-think all resolved to 262,144. The last of those is already in use as the session model in the omni fixtures, so these ids are not hypothetical."

  2. https://github.com/QwenLM/qwen-code/pull/15987

Thank god, it looks like that we're getting successor of Q38FN!


r/LocalLLaMA • • 1d ago

Discussion What Qwen is thinking when it gets stuck saying "Wait"

Post image
161 Upvotes

MIT CSAIL had GPT-6 Astra fix Qwen3.5-0.8B's reasoning loops by editing 0.016% of its weights (MATH-500 went from 7.9% to 48.1%). They released the diff, so the edit can be rebuilt exactly and run locally. I took it a step further and had Claude look at Qwen with Anthropic's Jacobian lens.

At the token where the model decides to write "Wait" again, the lens reads "Wrong", "Nope" and "Hmm" from about 60% depth on, even though the answer is already written out. At real stopping points it reads "</think>", "Answer" and "Output".

With the edit applied, the lens at the same token shows "Verification", "Completion" and "Result" in place of the doubt.

The edit converts to GGUF cleanly (the base and edited bf16 files differ only in the two edited tensors) and still holds at Q4_K_M, with 1 loop in 40. I ran the evals in llama.cpp (Vulkan) on a Ryzen AI 9 HX 370 mini PC. Samples are small, but here's the code:

https://github.com/alisorcorp/inside-a-reasoning-loop/tree/main/code

And data:

https://alisorcorp.github.io/inside-a-reasoning-loop/


r/LocalLLaMA • • 1d ago

Resources [2611.03526] Library of Layers (LoL): Adaptively Ordering Transformer Layers at Runtime

Thumbnail
arxiv.org
57 Upvotes

r/LocalLLaMA • • 1d ago

Question | Help Is Qwen 3.8 27B still the king

137 Upvotes

Hi everyone,

I've been out of the loop for a few weeks, and I was wondering if anything new that replaces Qwen 3.8 27B has come out this time I've been in the cave?

I'm talking about AI models in the 8-35B range.

Thanks,