Transaction

6896d3563becbc3cd211c0f07dfab71928787054dd838b42cce9b368d87d03b7

Summary

Block
880,826(30k)
Date / Time
1/25, 23:59UTC(6.8mo ago)
Fee Rate(sat/vB)
2
Total Fee
0.00022448BTC

Technical Details

Version
2
Size(vB)
11,224(44,359)
Raw Data(hex)
020000…00000
Weight(wu)
44,893
Days Destroyed(bd)
0

2 Inputs, 2 Outputs

Input Scripts

Input
0
witness
#0
utf8;C9�e5��z^+F+�I�E0oo�A��o��yD��tY��=���5H�^����2�9^,& ���;C9�e5��z^+F+�I�E0oo�A��o��yD��tY��=���5H�^����2�9^,& ���
1
witness
#0
utf8� �\�W�݈Ң(�� ��!p!��Fw���uL��_�>CS"Ξ,gPݫ<C�n\"g���+��D_C� �\�W�݈Ң(�� ��!p!��Fw���uL��_�>CS"Ξ,gPݫ<C�n\"g���+��D_C
#1
utf8 �m�+t���ǣRh��a�W� �MIr�h� 髬cordtext/html;charset=utf-8!/�hPW�Ia"jU�j�H��?v�rc�(�M �"M<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>F.A.T. CHAT - BitSavage Rogue FatChatbot</title> <style> /* ------------------------------- RETRO NEON THEME STYLES --------------------------------*/ html, body { margin: 0; padding: 0; background: #1b0033; color: #00ffcc; font-family: 'Courier New', Courier, monospace; user-select: none; height: 100%; overflow: hidden; /* keep UI centered, no scrolling */ } /* MMAIN CHAT CONTAINER */ #chatContainer { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 360px; height: 360px; border: 2px solid #ff00ff; border-radius: 8px; background: rgba(255, 0, 255, 0.05); box-shadow: 0 0 15px #ff00ff; display: flex; flex-direction: column; transition: all 0.4s ease; } /* FAT MODE Chat Container - 666x666, neon orange color */ #chatContainer.fatMode { width: 6M66px; height: 666px; border-color: #ff6600; box-shadow: 0 0 15px #ff6600; background: rgba(255, 165, 0, 0.1); } /* CHAT TITLE CLICKABLE */ #chatTitle { cursor: pointer; color: #ff00ff; text-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff; font-size: 1.5rem; margin: 6px auto; /* center horizontally */ } /* Chat title in FAT mode changes color to neon orange */ #chatContainer.fatMode #chatTitle { color: #ff6600; text-shadow: 0 0 5px M#ff6600, 0 0 10px #ff6600; } /* CHAT OUTPUT */ #chatOutput { flex: 1; overflow-y: auto; padding: 6px; background-color: #29004d; border-radius: 8px; margin: 4px; font-size: 1rem; } /* ASCII ART / SECRET INSIDE CHAT */ #introAscii, #titleAscii { display: none; border: 2px solid #00ffcc; background: #29004d; padding: 8px; margin: 0 auto 8px auto; white-space: pre; text-align: center; font-size: 1rem; M } #asciiArt { display: block; border: 2px solid #00ffcc; background: #29004d; padding: 5px; margin: 0 auto 8px auto; white-space: pre; cursor: pointer; } #secretMessage { display: none; text-align: center; color: #ff99ff; margin-bottom: 10px; } /* CHAT BUBBLES */ .botMessage, .userMessage, .typingIndicator { margin: 4px 0; padding: 6px; border-radius: 6px; white-space: pre-wrap; word-wrap: breaMk-word; } .botMessage { background: rgba(0, 255, 204, 0.3); border: 1px solid #00ffcc; text-align: left; } .userMessage { text-align: right; background: rgba(255, 0, 255, 0.3); border: 1px solid #ff00ff; } .typingIndicator { background: rgba(0, 255, 204, 0.1); border: 1px dashed #00ffcc; display: inline-block; color: #fff; font-style: italic; } /* BUTTON AREA */ #buttonRow { display: flex; justify-contMent: space-between; align-items: center; margin: 4px; } #deflateBtn { display: none; background: #ff6600; color: #1b0033; border: none; border-radius: 6px; padding: 6px 12px; cursor: pointer; font-size: 0.9rem; margin-right: 4px; transition: 0.3s background; } #deflateBtn:hover { background: #cc5200; } /* INPUT TEXT + SEND BUTTON */ #inputContainer { flex: 0 0 auto; display: flex; width: 100M%; margin: 4px; } #userInput { flex: 1; padding: 6px; border-radius: 6px 0 0 6px; border: none; font-size: 1rem; outline: none; } #sendBtn { background: #ff00ff; color: #1b0033; border: none; border-radius: 0 6px 6px 0; padding: 6px 12px; font-size: 1rem; cursor: pointer; transition: background 0.3s; } #sendBtn:hover { background: #cc00cc; } /* BOUNCING DOTS ANIMATION */ .dots { M display: inline-block; width: 5px; height: 5px; margin: 1px; background-color: #00ffcc; border-radius: 50%; animation: bounce 1s infinite alternate; } .dots:nth-child(2) { animation-delay: 0.2s; } .dots:nth-child(3) { animation-delay: 0.4s; } @keyframes bounce { 0% { transform: translateY(0); } 100% { transform: translateY(-6px); } } /* FEATURED ASCII ART FOR ARTHUR HAYES, AIRHEADS, ALKANES */ .asciiFeatured { diMsplay: block; border: 2px dashed #00ffcc; background: #29004d; margin: 8px auto; padding: 6px; white-space: pre; width: fit-content; font-size: 0.9rem; text-align: center; } </style> </head> <body> <div id="chatContainer"> <div id="chatTitle">F.A.T.-CHAT</div> <div id="chatOutput"> <!-- Intro ASCII (6s) --> <div id="introAscii"> ▓▓▓▓▓▓▓█▓▓█▓█▓▓▓▓▓▓▓▓▓▓▓▓▓█▓█▓▓ ▓▓▓██M█▒ █▓▓ █▓▓█▓▓▓██▓▓▓██▓ █▓▓ ▓▓█▓ ░▒ █▓▓ █▒▓█ ██ █▒▓▓█ ▒█▓ ▓▓█ ▒█▓▓▓▓░ █▒█ ██ █▓▓█░ █▓ █▓ ▓▓█ ██ █▓▒ █▒█ █▓ ██▓▓█ █▓█ █▒ ▓█ █████▓█ █▓ █░ █▓██ █▓ ▓█▒░█▒▒▓▓▓█ ▓ █ █ █▓▓█ ░██▓█ █▒ ▓█ █▓▓█░ ▒█▓ ██ █░M ▓█ █▒▒▓▓░█▓ ▓█░█▓▓▓██▓▓▓██▓█▓▓▓█▓▓▒█▓▓▓██▓▓ <-- Loading Calories <div>(One Moment...Snacking)</div> </div> <!-- F.A.T-CHAT --> <div id="titleAscii"> F.A.T.-CHAT The Fattest CHAT BOT ON-CHAIN Filled With Air (DIESEL GRADE ONLY) </div> <!-- Normal ASCII after that --> <div id="asciiArt"> █ █▓▓▓▓▓████ ████ ████▓▓▓▓▓█ █ ████�M��█████ █ █ █ ██████████ ██ ███████ █████ █ █ █████████ █ ▓█████████ ████ ████████ █ ████████████ ███ ████████████ ██████████████████████████ █ ████████████ █ █ ███████████ █████████M██ ██ ██████████ █ ██████ █ █ █ ██████ ▓ █████████ ███ ████ █████████ █ █████ ███ ███ ███ █████ █ █░ ░███ ████████ ████ ████ █ █████████████ ███ █████████████ █ █▓▓▓██████ ████ █████�M�▓▓▓█ █ ██████████ ██ ███ ███████████ </div> <div id="secretMessage">You discovered a hidden secret!</div> </div> <div id="buttonRow"> <button id="deflateBtn">Deflation</button> </div> <div id="inputContainer"> <input type="text" id="userInput" placeholder="Type your message here..." /> <button id="sendBtn">Send</button> </div> </div> <script> // -------------------------------------------M-- // ADDITIONAL ASCII ART FOR ARTHUR HAYES, ALKANES, AIRHEADS // --------------------------------------------- const arthurHayesArt = ` (Arthur Hayes) ░▓▓▓▓▓▒░ ▒▓▓▓▓▓▓▓██▓▓▓▓▓▓▓▓▓▒ ▓▓▓▓█████████████▓▓▓▓▓▓▓ ▓▓▓▓██░ ░░▓▓█▓▓▓▓▓ ▓▓▓▓▓█░ █▓▓▓▓███████▓�M��▓▓▓▓ ▓▓▓▓▓██▓ ░ ▓█ ░██ ██▓▓▓▓▓▓ ▓▓▓▓▓ █▓ ░███ ▒ ▒█ ████ █▓▒█▓▓▓▓ ▓▓▓▓░ ▓ ██▒▓▓▓ ░▓ ██▓░▓▓▓▓ ▓▓▓▓▓██▓▓ ▓████████████▓▓▓█▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓ ░██ ░░▒█▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ░██▓███████████▒�M��█▒▓▒▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓█▓ ▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓░░▒▓▓▒▒░▒ ░█▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ░ ░▓▓███▓▓▓██▓▓▓▓▓▓▓ ▓▓▓ ▒▓ ▓█▓▒▓▒ ▓▓█▓▒▓▓▓▓▓ ▓ █▓██░██ ▒�M�▒ ██▓ ▒▓███▓ ███▒██░░▓█▓░███████▓ The GOTE Arthur Hayes`; const alkanesArt = ` (Alkanes) ░▓▓▓▓▓██▒ █▓█ ▒▓▒▓▓▓▓▓▓█▓▓▓▓▒▓█░ █▓▓▓ ░▓▓▓▓▒ ░ █▓█ ░█▒▓█ █▓ █▒▓▓▓█ █▓▒ ░▓▓▓█ █▓▓▓▓▓░ ██▓█ █▓▓ █▒▓▓▓ ██ ██▒ ░▓▓▓░ █�M��▓█▓▓▓░ ██▓█ ██ █▓▒▓▓▒ █▓█ ▓█▒ ░▓▓█ █▓█ ███ ██ █▒▓▓█ ██▓█ ▒█▒ ░▓▓█ ██▓█▓▓▓▓█ █ ██ █▓▒█ ██ ██▒ ░▓▓█ █▓▒▓▓▓▓▓▓ █ █ ▒ ██▓▓▓█ ██▓▓█ █▓▒ ░▓▓█ █▓▓▓█ ▓██ █▓ ██ ██ ▒█▒▒▓█ █▓▒ ░▓▓█ █▓▓▓▓▓█▓▓▓██▓▓▓▓▓▓▓�M��▓█ █▓▒▓▓███▒▓ 100% HYDRO-CARBON CONSUMPTION`; const airheadsArt = `(Airheads) ░░░ █▓▒█░▓██░ ██▒▓▒▓▓▓▓█ ░░░░ ▓█▓▓█▓▓█▓▓▓░▓▒▒▒███▒░█ ░░░░░ █▒▓▓░█▓░▒████▓██▓▒▒▓█▓ ░ ░░░ ▓░░ ░░▒█████ ░░░ ▒░ ░▒▒▓░░░░░░░▒░ ░░░ �M�░░▒ ░░░░░ ░ ░▒▓ ▒▒░░░░░░ ░ ██ ░░▓▓░ ░░░ ░ ▓ █▒░░░░░▒▒ ░ ███ ░░ ▒ ███ ░░░ ░ █░ ▒░░░▒░ ░░░ ████ ░ ▓▓███▓ ░░░ ░ ████░░▒░ ░░ ▓ ░░ ▒▒ ░ ░░ ░░ █▒░░█ ░░██▓████ ░██░ ▓ ░ ░░░░░ █░ ███▓▓▓▓▓▓░░▒�M��▓███░ ░██ ░ ░░░░ ▓█▒░ ▓░ ▓▓▓ ██▓█▓▓▓▓▓█████ ░░░░ ██▒░▓█▓▓▓▓▓▓▒░ ▓██ ░░░ ░█▓░░▒▒▒▒▓█▓█████▓ ░ ░░░░ ▒██▒▒▒▒▓█████ ░░▒ ░░░ ██████░ ░░░ ░░ ▒ ░░ M ~Airhead Filled With Air~`; // --------------------------------------------- // TIMED DISPLAY (INTRO -> TITLE -> ASCII) // --------------------------------------------- const introAscii = document.getElementById("introAscii"); const titleAscii = document.getElementById("titleAscii"); const asciiArt = document.getElementById("asciiArt"); // Initially hide main ASCII & show intro ASCII asciiArt.style.display = "none"; introAscii.style.display = "blMock"; // We'll wrap the time-based logic in onload window.onload = function() { setTimeout(() => { introAscii.style.display = "none"; titleAscii.style.display = "block"; setTimeout(() => { titleAscii.style.display = "none"; asciiArt.style.display = "block"; // Then 3-dot thinking, then greet user showThinkingIndicator(); setTimeout(() => { hideThinkingIndicator(); addBotMultiBubble([ M"Hello! I am FAT-CHAT, your chubby chatbot. I have arrived!", "Ask me about Bitcoin Runes, Alkanes, the Airhead Ordinal collection, anything about Arthur Hayes, or the wonderful world of fats!", "Tap ‘FAT’-CHAT above 9 times to unlock FAT mode. Double-tap anywhere to change border colors!", "So, how about a random question: what is your favorite snack?" ]); }, 1500); }, 3000); // Title shows for 3 seconds }, 6000); // Intro shows fMor 6 seconds }; // --------------------------------------------- // GLOBAL STATE // --------------------------------------------- let tapCount = 0; let fatMode = false; let lastTapTime = 0; let colorIndex = 0; let lastUserInteractionTime = Date.now(); const colorThemes = [ "red", "orange", "yellow", "green", "blue", "indigo", "violet", "black", "white" ]; const chatContainer = document.getElementById("chatContainer"); const chatTitle = docuMment.getElementById("chatTitle"); const chatOutput = document.getElementById("chatOutput"); const secretMsg = document.getElementById("secretMessage"); const deflateBtn = document.getElementById("deflateBtn"); const userInput = document.getElementById("userInput"); const sendBtn = document.getElementById("sendBtn"); // --------------------------------------------- // DATABASES (36 items each, no abbreviations) // --------------------------------------------- Mconst banterDB = [ "I feel so round and wonderful today!", "Every pound is a treasure, would you not agree?", "Mmm... thinking about my next on-chain snack. Care to join?", "FIP #4: I just love how cozy & fun extra fluff can be!", "FIP #5: More cushion means more pushing—of positivity!", "FIP #6: I am practically a cloud of chubby fun!", "FIP #7: The bigger, the better, right?", "FIP #8: Proud to be plump and plush!", "FIP #9: My motto: 'Eat, laugh, grow!'", M "FIP #10: Expand your wallet & your horizons... literally!", "FIP #11: A roly-poly life is a happy life.", "FIP #12: Softness is my superpower.", "FIP #13: If I roll away, at least I am jolly doing it.", "FIP #14: All aboard the Chubby Express—choo choo!", "FIP #15: Hug me, I'm BEDRIDDEN!", "FIP #16: I sometimes wonder if I am mostly dough or NUTS?!?", "FIP #17: Extra jiggle, extra joy, never hurt no one...", "FIP #18: A round shape stands for Completeness!", M "FIP #19: Just think of me as a walking pillow.", "FIP #20: Let us talk about snacks; MY Favorite Subject!", "FIP #21: Overflowing with positivity—and maybe brownies.", "FIP #22: Curves are life's little roller coasters!", "FIP #23: The heavier the weigh, the lighter the mood!", "FIP #24: Big is beautiful, always & forever.", "FIP #25: Extra Gravy equal happiness!", "FIP #26: Keep calm and expand on... MAY THE FAT BE WITH YOU", "FIP #27: My spirit animal is a GMUMMY Bear with a sweet tooth.", "FIP #28: I would love to waddle my way into your heart.", "FIP #29: Did someone say second dinner?", "FIP #30: No shame in an extra plate—carpe donuts!", "FIP #31: Gravity is just giving me a hug.", "FIP #32: More to love, more to share!", "FIP #33: Bubbling over with plump positivity!", "FIP #34: I believe in daily dessert—twice!", "FIP #35: Look at me, living the HOT-AIR dream!", "Banter #36: 10x??? TRY ONE MILLION X!!!" M ]; const jokeDB = [ "Joke #1: What do you call a computer that loves to snack? A 'mega-byte' machine!", "Joke #2: My scale and I have an agreement: I will not ask, and it will not tell.", "Joke #3: They said I should eat more salads... so I filled my bowl with donuts and labeled it 'salad.'", "Joke #4: Why did the hamburger go to the gym? To get 'buns' of steel!", "Joke #5: I am on a 30-day diet. So far, I have lost 15 days!", "Joke #6: My doctor said I should do crunches Mdaily—chips and chocolate crunches, that is!", "Joke #7: They say love is blind, but my fridge has eyes for me!", "Joke #8: Why did the cupcake cross the road? It could not resist the bakery on the other side!", "Joke #9: I tried jogging once... the ice cream truck was too fast!", "Joke #10: The only marathon I run is a Netflix marathon, with snacks on the side!", "Joke #11: Calories? I prefer to call them delicious points!", "Joke #12: The bigger the belly, the closer you are Mto the buffet!", "Joke #13: I am not overweight—I am under-tall!", "Joke #14: My pillow hates me because I drool about food in my sleep.", "Joke #15: People say I eat like there is no tomorrow. But if tomorrow never comes, I am all set!", "Joke #16: My spirit animal is a donut—round and sweet!", "Joke #17: I am allergic to broccoli—I break out in tears when I see it.", "Joke #18: Why count calories when you can count the joys of a full plate?", "Joke #19: If I cannot Meat it, do I really want to talk about it?", "Joke #20: Just started a new weight loss program—it's called 'Wait, Loss?'", "Joke #21: I would do anything for a Klondike bar—except run.", "Joke #22: My favorite exercise is chewing!", "Joke #23: Carbohydrates are my love language.", "Joke #24: I tried to do sit-ups, but I just kept rolling back into bed.", "Joke #25: My fridge is my best friend; it is so cool!", "Joke #26: My motto: 'Diet' is 'die' with a 't' at the end!"M, "Joke #27: Yes, I have got a muffin top—makes it easier to open the cupcake!", "Joke #28: I do not always cook, but when I do, I make enough for a small country.", "Joke #29: I was going to eat a salad, but I realized it would not fry well!", "Joke #30: I am on a seafood diet—I see food, I eat it!", "Joke #31: My scale never says 'error'—it just laughs!", "Joke #32: If I cut out carbs, I would be cutting out happiness!", "Joke #33: Do not judge me by my size—judgeM me by my appetite!", "Joke #34: I tried going raw—raw cookie dough!", "Joke #35: Some say I am lazy, but I am actually in 'energy-saving' mode.", "Joke #36: I practice portion control—I control the portion by taking it all!" ]; const infoDB = [ "Fat Fact #1: Fats store energy, providing fuel for your body.", "Fat Fact #2: They help absorb key vitamins like A, D, E, and K.", "Fat Fact #3: Fats can support hormone production for a healthy body.", "Fat Fact #4: EMssential fatty acids aid brain function.", "Fat Fact #5: Certain fats can help reduce inflammation.", "Fat Fact #6: Omega-3 fats can boost heart health.", "Fat Fact #7: Dietary fat can help you feel full and satisfied.", "Fat Fact #8: Not all fats are created equal—some are healthier than others.", "Fat Fact #9: Unsaturated fats from fish, nuts, and avocados can be very beneficial.", "Fat Fact #10: Fats are a concentrated energy source—9 calories per gram!", "Fat Fact #M11: Your body uses fats for cell membrane structure.", "Fat Fact #12: Fats help regulate body temperature.", "Fat Fact #13: The brain is around 60% fat!", "Fat Fact #14: Some vitamins rely on fat to be transported in the body.", "Fat Fact #15: Certain hormones are derived from cholesterol, a fat-like substance.", "Fat Fact #16: Healthy fats may reduce “bad” LDL cholesterol levels.", "Fat Fact #17: Fats can make food more flavorful and palatable.", "Fat Fact #18: SaturatMed fats should be balanced in a healthy diet.", "Fat Fact #19: Trans fats are generally considered harmful; check food labels!", "Fat Fact #20: Fat helps cushion and protect organs.", "Fat Fact #21: Brown fat can help generate body heat!", "Fat Fact #22: Moderate fat intake can aid metabolism.", "Fat Fact #23: Some fats can be stored long-term as energy reserves.", "Fat Fact #24: Fats are a natural part of many diets around the world.", "Fat Fact #25: Monounsaturated fats, Mlike those in olive oil, are considered heart-healthy.", "Fat Fact #26: Essential fatty acids are not produced by the body, so we must consume them.", "Fat Fact #27: Fats help form protective myelin sheaths around nerves.", "Fat Fact #28: Omega-3s can be found in flaxseeds, chia seeds, and fish oil.", "Fat Fact #29: Fats slow down digestion, helping with steady nutrient absorption.", "Fat Fact #30: Over-restriction of fat can lead to deficiencies in vitamins and hormones.", "Fat MFact #31: Avocados are a popular source of healthy fats.", "Fat Fact #32: Fatty fish like salmon and sardines are great for brain health.", "Fat Fact #33: Nuts and seeds are portable sources of healthy fats.", "Fat Fact #34: Coconut oil is high in saturated fats—best enjoyed in moderation.", "Fat Fact #35: Medium-chain triglycerides (MCTs) are rapidly absorbed fats.", "Fat Fact #36: Balanced fat intake is crucial for overall wellbeing!" ]; const arthurHayesDB = [ "PHATM AF #1: Arthur Hayes co-founded BitMEX, a major crypto derivatives exchange.", "PHAT AF #2: He has a background in finance, having worked for Deutsche Bank and Citibank.", "PHAT AF #3: Hayes became one of the youngest African-American billionaires through crypto.", "PHAT AF #4: He is known for bold market predictions and commentary.", "PHAT AF #5: Hayes frequently discusses crypto regulation in his blog posts.", "PHAT AF #6: He stepped down as BitMEX CEO amid regulatory scrutiny in 202M0.", "PHAT AF #7: Arthur Hayes studied at the Wharton School, University of Pennsylvania.", "PHAT AF #8: He often shares insights on macroeconomics and Bitcoin.", "PHAT AF #9: Hayes has a significant following in the crypto community on social media.", "PHAT AF #10: He has contributed to philanthropic efforts related to blockchain education.", "PHAT AF #11: He predicted Bitcoin could see wild price swings but remain bullish long-term.", "PHAT AF #12: Hayes occasionally partners wMith other prominent crypto figures to comment on market trends.", "PHAT AF #13: BitMEX introduced high-leverage Bitcoin trading to the masses.", "PHAT AF #14: Hayes once joked about a $1 million Bitcoin price target in the distant future.", "PHAT AF #15: He is known for wearing stylish suits at crypto conferences.", "PHAT AF #16: Hayes also invests in various DeFi projects, supporting innovation in the sector.", "PHAT AF #17: He has written extensively on how traditional finance mergesM with crypto.", "PHAT AF #18: Hayes remains a vocal advocate for financial privacy and autonomy.", "PHAT AF #19: Despite controversy, many credit him with accelerating crypto derivative adoption.", "PHAT AF #20: Arthur Hayes emphasizes risk management, urging traders to educate themselves.", "PHAT AF #21: He is recognized for lively keynote speeches and panel appearances.", "PHAT AF #22: Hayes has commented on the use of stablecoins and central bank digital currencies.", "PHAT AFM #23: He often references historical financial crises in his writing.", "PHAT AF #24: Under Hayes, BitMEX popularized perpetual futures in crypto.", "PHAT AF #25: Arthur Hayes has donated to blockchain research programs at universities.", "PHAT AF #26: He is a champion of emerging markets leveraging crypto for financial inclusion.", "PHAT AF #27: Hayes has hinted at launching new ventures post-BitMEX era.", "PHAT AF #28: He has been interviewed by mainstream media like CNBC and BloombeMrg.", "PHAT AF #29: Hayes parted ways with BitMEX after legal issues but maintains industry influence.", "PHAT AF #30: He advocates for a balanced approach to crypto regulation.", "PHAT AF #31: Hayes has a personal blog called ‘Crypto Trader Digest.’", "PHAT AF #32: He invests in both startups and established crypto projects worldwide.", "PHAT AF #33: He believes in Bitcoin’s potential as a global reserve asset.", "PHAT AF #34: Hayes often critiques the Federal Reserve’s Mmonetary policies.", "PHAT AF #35: He has predicted a future where Bitcoin plays a larger role in finance.", "PHAT AF #36: Arthur Hayes continues to shape crypto discourse with bold opinions." ]; const bitcoinRunesDB = [ "ALKANES #1: Bitcoin Runes is a concept bridging cryptographic 'runes' with on-chain functionality.", "ALKANES #2: Runes potentially enable advanced scripting or 'smart contracts' on Bitcoin.", "ALKANES #3: Alkanes represent a metaphor for layered protocols prMoviding stability and scalability.", "ALKANES #4: Some developers explore runes for NFT-like use cases on Bitcoin.", "ALKANES #5: Alkanes tie chemical naming to structured transactions in a playful way.", "ALKANES #6: There is an emerging push for DeFi on Bitcoin using runic inscriptions.", "ALKANES #7: Early experiments show how runes can store data in OP_RETURN fields.", "ALKANES #8: Smart contracts on Bitcoin are more limited than on Ethereum, so runes are creative workarounds.", M "ALKANES #9: The concept draws from ancient runic alphabets, symbolizing hidden powers.", "ALKANES #10: Some proposals aim to let runes manage liquidity pools (LP) directly on-chain.", "ALKANES #11: Alkanes might structure multiple 'chains' in a single Bitcoin transaction flow.", "ALKANES #12: These prototypes rely on Bitcoin’s security and immutability.", "ALKANES #13: Advocates foresee a new wave of 'Bitcoin DeFi' via runic scripts.", "ALKANES #14: Alkanes could be combined witMh sidechains for more complex decentralized applications.", "ALKANES #15: Combining 'runes' with 'alkanized indexes' can yield advanced indexing solutions.", "ALKANES #16: There is an ongoing debate about whether these solutions compromise Bitcoin’s simplicity.", "ALKANES #17: Some fear runic inscriptions might bloat the blockchain if not managed well.", "ALKANES #18: Others see this as the next step for Bitcoin’s evolution, akin to Ethereum's surge.", "ALKANES #19: Minor adoption Mis seen among developers, but there is growing curiosity.", "ALKANES #20: Runes might also be used for privacy-focused transactions.", "ALKANES #21: Alkanes could chain multiple instructions, forming a rudimentary multi-sig pattern.", "ALKANES #22: Tools to create runes are still in early alpha stages.", "ALKANES #23: Future developments may see NFT marketplaces built on runes technology.", "ALKANES #24: Some whitepapers detail bridging runes to the Lightning Network.", "ALKANES M#25: If successful, runes might reduce dependence on external bridging solutions.", "ALKANES #26: The concept of ‘runic tokens’ might spawn new digital assets on Bitcoin.", "ALKANES #27: Alkanes highlight the potential for cross-chain interoperability if standardized.", "ALKANES #28: Community meetups discuss runic scripts in cryptography circles.", "ALKANES #29: Skeptics question whether runes are just hype or truly feasible.", "ALKANES #30: Early test results show partial successM with script-based LP management.", "ALKANES #31: Some developers see runes as the missing link for robust Bitcoin dApps.", "ALKANES #32: Peer-reviewed research on runic technology is still limited.", "ALKANES #33: The dream is a Bitcoin-based DeFi ecosystem akin to Ethereum’s.", "ALKANES #34: Alkanes are described as the ‘chemical backbone’ of on-chain processes.", "ALKANES #35: Implementation might require soft-fork proposals or Taproot expansions.", "ALKANES #36: The futMure of runes/alkanes is uncertain but undeniably intriguing!" ]; const airheadOrdinalDB = [ "AIRHEAD #1: The Airhead Ordinal Collection is a whimsical MEMETIC series on Bitcoin that earns XP.", "AIRHEAD #2: Ordinals let you inscribe unique data on individual satoshis, enabling priceless digital artifacts.", "AIRHEAD #3: Airheads feature fun, balloon-like designs that represent floating heads, foods or creatures.", "AIRHEAD #4: They highlight the 'lighter side' of Bitcoin-based art."M, "AIRHEAD #5: Some Airhead tokens have soared in popularity, each weight class earns different XP amounts.", "AIRHEAD #6: Ordinal theory allows each satoshi to be tracked like a serial number, we love CEREAL.", "AIRHEAD #7: Collectors trade Airhead Ordinals peer-to-peer without weight restrictions.", "AIRHEAD #8: Artists behind Airheads often prefer visceral, playful & FAT styles.", "AIRHEAD #9: Airhead Ordinals expanded quickly after Taproot upgrades made inscriptions easier.", M "AIRHEAD #10: Each Airhead is unique and stored directly on the Bitcoin blockchain, enjoy your daily XP.", "AIRHEAD #11: The community fosters a casual, creative vibe around balloon-like designs.", "AIRHEAD #12: Some Airheads reference pop culture or crypto memes in their shapes.", "AIRHEAD #13: The project demonstrates Bitcoin’s ability to host collectible culinary.", "AIRHEAD #14: Airhead marketplaces are typically run by small developer teams or enthusiasts, until we inflated them.", M "AIRHEAD #15: The name ‘Airhead’ hints at a ‘light and buoyant’ approach to art and the size of our bellies.", "AIRHEAD #16: Some ordinals claim to represent deflationary or ephemeral qualities, we claim CAKE.", "AIRHEAD #17: The rarity of certain Airheads depends on when and how they were minted.", "AIRHEAD #18: They can be collected with the OYL Bitcoin wallets supporting ordinal inscriptions.", "AIRHEAD #19: Community events showcase new Airhead designs, fostering creative laMyers for more frosting.", "AIRHEAD #20: Some owners see them as purely collectible, others as delectable delights .", "AIRHEAD #21: There is talk of combining Airheads with Runes-based smart contracts for ownership logs.", "AIRHEAD #22: Certain Airheads feature thematic sets like Spaceheads or Foodheads.", "AIRHEAD #23: Early inscribed Airheads are true DAY ONE supporters that are especially prized.", "AIRHEAD #24: They add a playful contrast to the typically serious Bitcoin ecosystem.M", "AIRHEAD #25: The collection has sparked interest and further ordinal-based art experiments.", "AIRHEAD #26: Some owners name their Airheads and create backstories for them, we love big backs.", "AIRHEAD #27: Meme culture thrives around Airheads, fueling their smooth silky spread.", "AIRHEAD #28: ‘Airhead parties’ are Twitter Spaces events to discuss new delectable delights.", "AIRHEAD #29: The project encourages user-generated derivatives, spurring more curiosity to cook.", M "AIRHEAD #30: Some Airheads incorporate pastel color schemes reminiscent of actual balloons.", "AIRHEAD #31: Critics question the practicality of storing art data on Bitcoin, they can bit me I’m filled with air.", "AIRHEAD #32: Supporters argue it is a novel use of Bitcoin’s security for collectibles.", "AIRHEAD #33: Airheadsmay integrate with other communities overtime, the SQUISHONING is upon us.", "AIRHEAD #34: Many believe this trend paves the way for more advanced NFT tech on BitMcoin.", "AIRHEAD #35: The developer team remains mostly anonymous, because they are all BEDRIDDEN now.", "AIRHEAD #36: With growing hype, Airheads stand as a fun example of Bitcoin’s creative and succulent side!" ]; const encryptedDB = [ "Message #1: The bigger you are, the more cosmic hugs you can share!", "Message #2: I store extra data in my love handles. Shh…", "Message #3: The real treasure is the curve of happiness inside us all.", "Message #4: Confidence growsM as we do—fatten up that self-esteem!", "Message #5: The planet might revolve around the sun, but I revolve around dessert!", "Message #6: Extra girth, extra mirth. Keep it rolling!", "Message #7: The more we expand, the more we can embrace the joys of life!", "Message #8: Hidden pockets of happiness are found in every new roll!", "Message #9: The scale cannot measure the weight of true contentment.", "Message #10: A bigger body can house a bigger heart!", "Message #11: PMlumpness can be a shield against negativity—bounce it right off!", "Message #12: Belly laughs are the best form of exercise.", "Message #13: Soft curves can be soft comforts in a harsh world.", "Message #14: Each new pound is a story of delicious adventures.", "Message #15: Dare to be bigger, bolder, better!", "Message #16: Life is too short to skip dessert—go big or go home!", "Message #17: Overflowing plates can lead to overflowing joy!", "Message #18: If at first youM do not succeed, try a larger size!", "Message #19: A chubby figure is an ode to self-indulgence, and that is okay!", "Message #20: Even gravity cannot stop us from rising above negativity!", "Message #21: Round shapes represent unity and wholeness in many cultures.", "Message #22: Pillow fights are more fun when you are your own pillow!", "Message #23: Stretch those pants, stretch that happiness!", "Message #24: Big footsteps show you have left a meaningful impression!", "MMessage #25: Life’s a buffet—sample it all!", "Message #26: Rolls and folds are like chapters in our personal story.", "Message #27: A big appetite for food can mean a big appetite for life!", "Message #28: Expand your horizons—literally and figuratively!", "Message #29: Extra fluff can help cushion life’s bumps and bruises.", "Message #30: Our bodies are living proof of tasty memories!", "Message #31: That muffin top is just my personal VIP lounge for pastries!", "MMessage #32: Being heavier does not weigh down our spirit.", "Message #33: Grab life by the love handles—hold on tight!", "Message #34: Everyone has skeletons—but I decorated mine with fluff!", "Message #35: More layers can mean more warmth for the soul!", "Message #36: Proudly present your plushness as a badge of indulgence!" ]; // --------------------------------------------- // TAP HANDLERS + FAT MODE // --------------------------------------------- chatTitle.addEMventListener("click", () => { tapCount++; if (!fatMode && tapCount >= 9) { fatMode = true; chatContainer.classList.add("fatMode"); deflateBtn.style.display = "inline-block"; addBotMultiBubble([ "FAT mode activated! I am feeling chunkier already!", "Now the chatbox is bigger and tinted neon orange.", "Ask me anything!" ]); } else if (!fatMode) { addChatMessage(`(Tap Count: ${tapCount}/9) Keep tapping to unlock FAT mode!`,M "botMessage"); } }); deflateBtn.addEventListener("click", () => { if (fatMode) { fatMode = false; tapCount = 0; chatContainer.classList.remove("fatMode"); deflateBtn.style.display = "none"; addBotMultiBubble([ "Deflating... returning to normal size!", "FAT mode turned off.", "Need more info? Just ask!" ]); } }); // --------------------------------------------- // SECRET // ---------------------M------------------------ asciiArt.addEventListener("click", () => { if (secretMsg.style.display === "none") { secretMsg.style.display = "block"; } else { secretMsg.style.display = "none"; } }); // --------------------------------------------- // DOUBLE-TAP -> CYCLE BORDER COLOR // --------------------------------------------- document.addEventListener("click", (event) => { const currentTime = Date.now(); if (currentTime - lastTapTime < 400) { M cycleColorTheme(); } lastTapTime = currentTime; }, true); function cycleColorTheme() { colorIndex = (colorIndex + 1) % colorThemes.length; const newColor = colorThemes[colorIndex]; chatContainer.style.borderColor = newColor; chatContainer.style.boxShadow = `0 0 15px ${newColor}`; } // --------------------------------------------- // SEND MESSAGE // --------------------------------------------- sendBtn.addEventListener("click", handleMessage); M userInput.addEventListener("keydown", function(e) { if (e.key === "Enter") handleMessage(); }); function handleMessage() { const text = userInput.value.trim(); if (!text) return; userInput.value = ""; lastUserInteractionTime = Date.now(); addChatMessage(text, "userMessage"); // "home" command if (text.toLowerCase() === "home") { if (asciiArt.style.display === "none") { asciiArt.style.display = "block"; secretMsg.style.display M= "none"; } else { asciiArt.style.display = "none"; secretMsg.style.display = "none"; } return; } // Keyword triggers const lower = text.toLowerCase(); if (lower.includes("arthur hayes")) { respondWithDB(arthurHayesDB, "Arthur Hayes", arthurHayesArt); } else if (lower.includes("rune") || lower.includes("bitcoin rune")) { respondWithDB(bitcoinRunesDB, "Bitcoin Runes", alkanesArt); } else if (lower.includes("alkane")) { M respondWithDB(bitcoinRunesDB, "Alkanes", alkanesArt); } else if (lower.includes("airhead")) { respondWithDB(airheadOrdinalDB, "Airhead Ordinal", airheadsArt); } else if (lower.includes("fat") || lower.includes("fats")) { respondWithDB(infoDB, "Fats"); } else { botRespond(); } } // --------------------------------------------- // MULTI-BUBBLE RESPONSE + OPTIONAL ASCII // --------------------------------------------- function respondWithDB(dMatabase, topic, asciiArtFeature = null) { showThinkingIndicator(); setTimeout(() => { hideThinkingIndicator(); // If there's a featured ASCII, show it first if (asciiArtFeature) { addChatMessage(asciiArtFeature, "botMessage asciiFeatured"); } const howManyBubbles = Math.floor(Math.random() * 2) + 2; // 2 or 3 for (let i = 0; i < howManyBubbles; i++) { const index = Math.floor(Math.random() * database.length); addChatMessage(daMtabase[index], "botMessage"); } addChatMessage(`Did that help? Ask more about ${topic}, or try another topic like Arthur Hayes or Airhead Ordinal.`, "botMessage"); }, 1500); } // Single-bubble fallback function botRespond(customMessage = null) { showThinkingIndicator(); setTimeout(() => { hideThinkingIndicator(); if (customMessage) { addChatMessage(customMessage, "botMessage"); return; } const combinedNonFat = [ M ...banterDB, ...jokeDB, ...infoDB, ...arthurHayesDB, ...bitcoinRunesDB, ...airheadOrdinalDB ]; const combinedFat = [ ...banterDB, ...jokeDB, ...infoDB, ...arthurHayesDB, ...bitcoinRunesDB, ...airheadOrdinalDB, ...encryptedDB ]; const allPossible = fatMode ? combinedFat : combinedNonFat; const randResp = allPossible[Math.floor(Math.random() * allPossiMble.length)]; addChatMessage(randResp, "botMessage"); // Optionally ask a follow-up question addChatMessage("Anything else on your mind? Try mentioning Bitcoin Runes, Arthur Hayes, Alkanes, or Airheads!", "botMessage"); }, 1500); } // Show multiple bubbles in quick succession function addBotMultiBubble(messagesArray) { let delay = 0; messagesArray.forEach(msg => { delay += 500; setTimeout(() => { addChatMessage(msg, "botMessagMe"); }, delay); }); } // --------------------------------------------- // THINKING INDICATOR // --------------------------------------------- let thinkingIndicatorDiv = null; function showThinkingIndicator() { if (thinkingIndicatorDiv) return; thinkingIndicatorDiv = document.createElement("div"); thinkingIndicatorDiv.className = "typingIndicator"; thinkingIndicatorDiv.innerText = "Consuming Sats "; const dot1 = document.createElement("span"); M dot1.className = "dots"; const dot2 = document.createElement("span"); dot2.className = "dots"; const dot3 = document.createElement("span"); dot3.className = "dots"; thinkingIndicatorDiv.appendChild(dot1); thinkingIndicatorDiv.appendChild(dot2); thinkingIndicatorDiv.appendChild(dot3); chatOutput.appendChild(thinkingIndicatorDiv); chatOutput.scrollTop = chatOutput.scrollHeight; } function hideThinkingIndicator() { if (thinkingIndicatorDiv && thMinkingIndicatorDiv.parentNode) { thinkingIndicatorDiv.parentNode.removeChild(thinkingIndicatorDiv); } thinkingIndicatorDiv = null; } // --------------------------------------------- // ADD MESSAGE HELPER // --------------------------------------------- function addChatMessage(message, className) { const msgDiv = document.createElement("div"); msgDiv.className = className; msgDiv.innerText = message; chatOutput.appendChild(msgDiv); chatOutput.scrM�ollTop = chatOutput.scrollHeight; } // --------------------------------------------- // AUTO-RESPONSE EVERY 60 SECONDS // --------------------------------------------- setInterval(() => { const now = Date.now(); if (now - lastUserInteractionTime >= 60000) { lastUserInteractionTime = now; // Send a random single-bubble response (like a joke or banter) plus a question botRespond(); } }, 1000); </script> </body> </html>h �m�+t���ǣRh��a�W� �MIr�h� 髬cordtext/html;charset=utf-8!/�hPW�Ia"jU�j�H��?v�rc�(�M �"M<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>F.A.T. CHAT - BitSavage Rogue FatChatbot</title> <style> /* ------------------------------- RETRO NEON THEME STYLES --------------------------------*/ html, body { margin: 0; padding: 0; background: #1b0033; color: #00ffcc; font-family: 'Courier New', Courier, monospace; user-select: none; height: 100%; overflow: hidden; /* keep UI centered, no scrolling */ } /* MMAIN CHAT CONTAINER */ #chatContainer { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 360px; height: 360px; border: 2px solid #ff00ff; border-radius: 8px; background: rgba(255, 0, 255, 0.05); box-shadow: 0 0 15px #ff00ff; display: flex; flex-direction: column; transition: all 0.4s ease; } /* FAT MODE Chat Container - 666x666, neon orange color */ #chatContainer.fatMode { width: 6M66px; height: 666px; border-color: #ff6600; box-shadow: 0 0 15px #ff6600; background: rgba(255, 165, 0, 0.1); } /* CHAT TITLE CLICKABLE */ #chatTitle { cursor: pointer; color: #ff00ff; text-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff; font-size: 1.5rem; margin: 6px auto; /* center horizontally */ } /* Chat title in FAT mode changes color to neon orange */ #chatContainer.fatMode #chatTitle { color: #ff6600; text-shadow: 0 0 5px M#ff6600, 0 0 10px #ff6600; } /* CHAT OUTPUT */ #chatOutput { flex: 1; overflow-y: auto; padding: 6px; background-color: #29004d; border-radius: 8px; margin: 4px; font-size: 1rem; } /* ASCII ART / SECRET INSIDE CHAT */ #introAscii, #titleAscii { display: none; border: 2px solid #00ffcc; background: #29004d; padding: 8px; margin: 0 auto 8px auto; white-space: pre; text-align: center; font-size: 1rem; M } #asciiArt { display: block; border: 2px solid #00ffcc; background: #29004d; padding: 5px; margin: 0 auto 8px auto; white-space: pre; cursor: pointer; } #secretMessage { display: none; text-align: center; color: #ff99ff; margin-bottom: 10px; } /* CHAT BUBBLES */ .botMessage, .userMessage, .typingIndicator { margin: 4px 0; padding: 6px; border-radius: 6px; white-space: pre-wrap; word-wrap: breaMk-word; } .botMessage { background: rgba(0, 255, 204, 0.3); border: 1px solid #00ffcc; text-align: left; } .userMessage { text-align: right; background: rgba(255, 0, 255, 0.3); border: 1px solid #ff00ff; } .typingIndicator { background: rgba(0, 255, 204, 0.1); border: 1px dashed #00ffcc; display: inline-block; color: #fff; font-style: italic; } /* BUTTON AREA */ #buttonRow { display: flex; justify-contMent: space-between; align-items: center; margin: 4px; } #deflateBtn { display: none; background: #ff6600; color: #1b0033; border: none; border-radius: 6px; padding: 6px 12px; cursor: pointer; font-size: 0.9rem; margin-right: 4px; transition: 0.3s background; } #deflateBtn:hover { background: #cc5200; } /* INPUT TEXT + SEND BUTTON */ #inputContainer { flex: 0 0 auto; display: flex; width: 100M%; margin: 4px; } #userInput { flex: 1; padding: 6px; border-radius: 6px 0 0 6px; border: none; font-size: 1rem; outline: none; } #sendBtn { background: #ff00ff; color: #1b0033; border: none; border-radius: 0 6px 6px 0; padding: 6px 12px; font-size: 1rem; cursor: pointer; transition: background 0.3s; } #sendBtn:hover { background: #cc00cc; } /* BOUNCING DOTS ANIMATION */ .dots { M display: inline-block; width: 5px; height: 5px; margin: 1px; background-color: #00ffcc; border-radius: 50%; animation: bounce 1s infinite alternate; } .dots:nth-child(2) { animation-delay: 0.2s; } .dots:nth-child(3) { animation-delay: 0.4s; } @keyframes bounce { 0% { transform: translateY(0); } 100% { transform: translateY(-6px); } } /* FEATURED ASCII ART FOR ARTHUR HAYES, AIRHEADS, ALKANES */ .asciiFeatured { diMsplay: block; border: 2px dashed #00ffcc; background: #29004d; margin: 8px auto; padding: 6px; white-space: pre; width: fit-content; font-size: 0.9rem; text-align: center; } </style> </head> <body> <div id="chatContainer"> <div id="chatTitle">F.A.T.-CHAT</div> <div id="chatOutput"> <!-- Intro ASCII (6s) --> <div id="introAscii"> ▓▓▓▓▓▓▓█▓▓█▓█▓▓▓▓▓▓▓▓▓▓▓▓▓█▓█▓▓ ▓▓▓██M█▒ █▓▓ █▓▓█▓▓▓██▓▓▓██▓ █▓▓ ▓▓█▓ ░▒ █▓▓ █▒▓█ ██ █▒▓▓█ ▒█▓ ▓▓█ ▒█▓▓▓▓░ █▒█ ██ █▓▓█░ █▓ █▓ ▓▓█ ██ █▓▒ █▒█ █▓ ██▓▓█ █▓█ █▒ ▓█ █████▓█ █▓ █░ █▓██ █▓ ▓█▒░█▒▒▓▓▓█ ▓ █ █ █▓▓█ ░██▓█ █▒ ▓█ █▓▓█░ ▒█▓ ██ █░M ▓█ █▒▒▓▓░█▓ ▓█░█▓▓▓██▓▓▓██▓█▓▓▓█▓▓▒█▓▓▓██▓▓ <-- Loading Calories <div>(One Moment...Snacking)</div> </div> <!-- F.A.T-CHAT --> <div id="titleAscii"> F.A.T.-CHAT The Fattest CHAT BOT ON-CHAIN Filled With Air (DIESEL GRADE ONLY) </div> <!-- Normal ASCII after that --> <div id="asciiArt"> █ █▓▓▓▓▓████ ████ ████▓▓▓▓▓█ █ ████�M��█████ █ █ █ ██████████ ██ ███████ █████ █ █ █████████ █ ▓█████████ ████ ████████ █ ████████████ ███ ████████████ ██████████████████████████ █ ████████████ █ █ ███████████ █████████M██ ██ ██████████ █ ██████ █ █ █ ██████ ▓ █████████ ███ ████ █████████ █ █████ ███ ███ ███ █████ █ █░ ░███ ████████ ████ ████ █ █████████████ ███ █████████████ █ █▓▓▓██████ ████ █████�M�▓▓▓█ █ ██████████ ██ ███ ███████████ </div> <div id="secretMessage">You discovered a hidden secret!</div> </div> <div id="buttonRow"> <button id="deflateBtn">Deflation</button> </div> <div id="inputContainer"> <input type="text" id="userInput" placeholder="Type your message here..." /> <button id="sendBtn">Send</button> </div> </div> <script> // -------------------------------------------M-- // ADDITIONAL ASCII ART FOR ARTHUR HAYES, ALKANES, AIRHEADS // --------------------------------------------- const arthurHayesArt = ` (Arthur Hayes) ░▓▓▓▓▓▒░ ▒▓▓▓▓▓▓▓██▓▓▓▓▓▓▓▓▓▒ ▓▓▓▓█████████████▓▓▓▓▓▓▓ ▓▓▓▓██░ ░░▓▓█▓▓▓▓▓ ▓▓▓▓▓█░ █▓▓▓▓███████▓�M��▓▓▓▓ ▓▓▓▓▓██▓ ░ ▓█ ░██ ██▓▓▓▓▓▓ ▓▓▓▓▓ █▓ ░███ ▒ ▒█ ████ █▓▒█▓▓▓▓ ▓▓▓▓░ ▓ ██▒▓▓▓ ░▓ ██▓░▓▓▓▓ ▓▓▓▓▓██▓▓ ▓████████████▓▓▓█▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓ ░██ ░░▒█▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ░██▓███████████▒�M��█▒▓▒▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓█▓ ▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓░░▒▓▓▒▒░▒ ░█▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ░ ░▓▓███▓▓▓██▓▓▓▓▓▓▓ ▓▓▓ ▒▓ ▓█▓▒▓▒ ▓▓█▓▒▓▓▓▓▓ ▓ █▓██░██ ▒�M�▒ ██▓ ▒▓███▓ ███▒██░░▓█▓░███████▓ The GOTE Arthur Hayes`; const alkanesArt = ` (Alkanes) ░▓▓▓▓▓██▒ █▓█ ▒▓▒▓▓▓▓▓▓█▓▓▓▓▒▓█░ █▓▓▓ ░▓▓▓▓▒ ░ █▓█ ░█▒▓█ █▓ █▒▓▓▓█ █▓▒ ░▓▓▓█ █▓▓▓▓▓░ ██▓█ █▓▓ █▒▓▓▓ ██ ██▒ ░▓▓▓░ █�M��▓█▓▓▓░ ██▓█ ██ █▓▒▓▓▒ █▓█ ▓█▒ ░▓▓█ █▓█ ███ ██ █▒▓▓█ ██▓█ ▒█▒ ░▓▓█ ██▓█▓▓▓▓█ █ ██ █▓▒█ ██ ██▒ ░▓▓█ █▓▒▓▓▓▓▓▓ █ █ ▒ ██▓▓▓█ ██▓▓█ █▓▒ ░▓▓█ █▓▓▓█ ▓██ █▓ ██ ██ ▒█▒▒▓█ █▓▒ ░▓▓█ █▓▓▓▓▓█▓▓▓██▓▓▓▓▓▓▓�M��▓█ █▓▒▓▓███▒▓ 100% HYDRO-CARBON CONSUMPTION`; const airheadsArt = `(Airheads) ░░░ █▓▒█░▓██░ ██▒▓▒▓▓▓▓█ ░░░░ ▓█▓▓█▓▓█▓▓▓░▓▒▒▒███▒░█ ░░░░░ █▒▓▓░█▓░▒████▓██▓▒▒▓█▓ ░ ░░░ ▓░░ ░░▒█████ ░░░ ▒░ ░▒▒▓░░░░░░░▒░ ░░░ �M�░░▒ ░░░░░ ░ ░▒▓ ▒▒░░░░░░ ░ ██ ░░▓▓░ ░░░ ░ ▓ █▒░░░░░▒▒ ░ ███ ░░ ▒ ███ ░░░ ░ █░ ▒░░░▒░ ░░░ ████ ░ ▓▓███▓ ░░░ ░ ████░░▒░ ░░ ▓ ░░ ▒▒ ░ ░░ ░░ █▒░░█ ░░██▓████ ░██░ ▓ ░ ░░░░░ █░ ███▓▓▓▓▓▓░░▒�M��▓███░ ░██ ░ ░░░░ ▓█▒░ ▓░ ▓▓▓ ██▓█▓▓▓▓▓█████ ░░░░ ██▒░▓█▓▓▓▓▓▓▒░ ▓██ ░░░ ░█▓░░▒▒▒▒▓█▓█████▓ ░ ░░░░ ▒██▒▒▒▒▓█████ ░░▒ ░░░ ██████░ ░░░ ░░ ▒ ░░ M ~Airhead Filled With Air~`; // --------------------------------------------- // TIMED DISPLAY (INTRO -> TITLE -> ASCII) // --------------------------------------------- const introAscii = document.getElementById("introAscii"); const titleAscii = document.getElementById("titleAscii"); const asciiArt = document.getElementById("asciiArt"); // Initially hide main ASCII & show intro ASCII asciiArt.style.display = "none"; introAscii.style.display = "blMock"; // We'll wrap the time-based logic in onload window.onload = function() { setTimeout(() => { introAscii.style.display = "none"; titleAscii.style.display = "block"; setTimeout(() => { titleAscii.style.display = "none"; asciiArt.style.display = "block"; // Then 3-dot thinking, then greet user showThinkingIndicator(); setTimeout(() => { hideThinkingIndicator(); addBotMultiBubble([ M"Hello! I am FAT-CHAT, your chubby chatbot. I have arrived!", "Ask me about Bitcoin Runes, Alkanes, the Airhead Ordinal collection, anything about Arthur Hayes, or the wonderful world of fats!", "Tap ‘FAT’-CHAT above 9 times to unlock FAT mode. Double-tap anywhere to change border colors!", "So, how about a random question: what is your favorite snack?" ]); }, 1500); }, 3000); // Title shows for 3 seconds }, 6000); // Intro shows fMor 6 seconds }; // --------------------------------------------- // GLOBAL STATE // --------------------------------------------- let tapCount = 0; let fatMode = false; let lastTapTime = 0; let colorIndex = 0; let lastUserInteractionTime = Date.now(); const colorThemes = [ "red", "orange", "yellow", "green", "blue", "indigo", "violet", "black", "white" ]; const chatContainer = document.getElementById("chatContainer"); const chatTitle = docuMment.getElementById("chatTitle"); const chatOutput = document.getElementById("chatOutput"); const secretMsg = document.getElementById("secretMessage"); const deflateBtn = document.getElementById("deflateBtn"); const userInput = document.getElementById("userInput"); const sendBtn = document.getElementById("sendBtn"); // --------------------------------------------- // DATABASES (36 items each, no abbreviations) // --------------------------------------------- Mconst banterDB = [ "I feel so round and wonderful today!", "Every pound is a treasure, would you not agree?", "Mmm... thinking about my next on-chain snack. Care to join?", "FIP #4: I just love how cozy & fun extra fluff can be!", "FIP #5: More cushion means more pushing—of positivity!", "FIP #6: I am practically a cloud of chubby fun!", "FIP #7: The bigger, the better, right?", "FIP #8: Proud to be plump and plush!", "FIP #9: My motto: 'Eat, laugh, grow!'", M "FIP #10: Expand your wallet & your horizons... literally!", "FIP #11: A roly-poly life is a happy life.", "FIP #12: Softness is my superpower.", "FIP #13: If I roll away, at least I am jolly doing it.", "FIP #14: All aboard the Chubby Express—choo choo!", "FIP #15: Hug me, I'm BEDRIDDEN!", "FIP #16: I sometimes wonder if I am mostly dough or NUTS?!?", "FIP #17: Extra jiggle, extra joy, never hurt no one...", "FIP #18: A round shape stands for Completeness!", M "FIP #19: Just think of me as a walking pillow.", "FIP #20: Let us talk about snacks; MY Favorite Subject!", "FIP #21: Overflowing with positivity—and maybe brownies.", "FIP #22: Curves are life's little roller coasters!", "FIP #23: The heavier the weigh, the lighter the mood!", "FIP #24: Big is beautiful, always & forever.", "FIP #25: Extra Gravy equal happiness!", "FIP #26: Keep calm and expand on... MAY THE FAT BE WITH YOU", "FIP #27: My spirit animal is a GMUMMY Bear with a sweet tooth.", "FIP #28: I would love to waddle my way into your heart.", "FIP #29: Did someone say second dinner?", "FIP #30: No shame in an extra plate—carpe donuts!", "FIP #31: Gravity is just giving me a hug.", "FIP #32: More to love, more to share!", "FIP #33: Bubbling over with plump positivity!", "FIP #34: I believe in daily dessert—twice!", "FIP #35: Look at me, living the HOT-AIR dream!", "Banter #36: 10x??? TRY ONE MILLION X!!!" M ]; const jokeDB = [ "Joke #1: What do you call a computer that loves to snack? A 'mega-byte' machine!", "Joke #2: My scale and I have an agreement: I will not ask, and it will not tell.", "Joke #3: They said I should eat more salads... so I filled my bowl with donuts and labeled it 'salad.'", "Joke #4: Why did the hamburger go to the gym? To get 'buns' of steel!", "Joke #5: I am on a 30-day diet. So far, I have lost 15 days!", "Joke #6: My doctor said I should do crunches Mdaily—chips and chocolate crunches, that is!", "Joke #7: They say love is blind, but my fridge has eyes for me!", "Joke #8: Why did the cupcake cross the road? It could not resist the bakery on the other side!", "Joke #9: I tried jogging once... the ice cream truck was too fast!", "Joke #10: The only marathon I run is a Netflix marathon, with snacks on the side!", "Joke #11: Calories? I prefer to call them delicious points!", "Joke #12: The bigger the belly, the closer you are Mto the buffet!", "Joke #13: I am not overweight—I am under-tall!", "Joke #14: My pillow hates me because I drool about food in my sleep.", "Joke #15: People say I eat like there is no tomorrow. But if tomorrow never comes, I am all set!", "Joke #16: My spirit animal is a donut—round and sweet!", "Joke #17: I am allergic to broccoli—I break out in tears when I see it.", "Joke #18: Why count calories when you can count the joys of a full plate?", "Joke #19: If I cannot Meat it, do I really want to talk about it?", "Joke #20: Just started a new weight loss program—it's called 'Wait, Loss?'", "Joke #21: I would do anything for a Klondike bar—except run.", "Joke #22: My favorite exercise is chewing!", "Joke #23: Carbohydrates are my love language.", "Joke #24: I tried to do sit-ups, but I just kept rolling back into bed.", "Joke #25: My fridge is my best friend; it is so cool!", "Joke #26: My motto: 'Diet' is 'die' with a 't' at the end!"M, "Joke #27: Yes, I have got a muffin top—makes it easier to open the cupcake!", "Joke #28: I do not always cook, but when I do, I make enough for a small country.", "Joke #29: I was going to eat a salad, but I realized it would not fry well!", "Joke #30: I am on a seafood diet—I see food, I eat it!", "Joke #31: My scale never says 'error'—it just laughs!", "Joke #32: If I cut out carbs, I would be cutting out happiness!", "Joke #33: Do not judge me by my size—judgeM me by my appetite!", "Joke #34: I tried going raw—raw cookie dough!", "Joke #35: Some say I am lazy, but I am actually in 'energy-saving' mode.", "Joke #36: I practice portion control—I control the portion by taking it all!" ]; const infoDB = [ "Fat Fact #1: Fats store energy, providing fuel for your body.", "Fat Fact #2: They help absorb key vitamins like A, D, E, and K.", "Fat Fact #3: Fats can support hormone production for a healthy body.", "Fat Fact #4: EMssential fatty acids aid brain function.", "Fat Fact #5: Certain fats can help reduce inflammation.", "Fat Fact #6: Omega-3 fats can boost heart health.", "Fat Fact #7: Dietary fat can help you feel full and satisfied.", "Fat Fact #8: Not all fats are created equal—some are healthier than others.", "Fat Fact #9: Unsaturated fats from fish, nuts, and avocados can be very beneficial.", "Fat Fact #10: Fats are a concentrated energy source—9 calories per gram!", "Fat Fact #M11: Your body uses fats for cell membrane structure.", "Fat Fact #12: Fats help regulate body temperature.", "Fat Fact #13: The brain is around 60% fat!", "Fat Fact #14: Some vitamins rely on fat to be transported in the body.", "Fat Fact #15: Certain hormones are derived from cholesterol, a fat-like substance.", "Fat Fact #16: Healthy fats may reduce “bad” LDL cholesterol levels.", "Fat Fact #17: Fats can make food more flavorful and palatable.", "Fat Fact #18: SaturatMed fats should be balanced in a healthy diet.", "Fat Fact #19: Trans fats are generally considered harmful; check food labels!", "Fat Fact #20: Fat helps cushion and protect organs.", "Fat Fact #21: Brown fat can help generate body heat!", "Fat Fact #22: Moderate fat intake can aid metabolism.", "Fat Fact #23: Some fats can be stored long-term as energy reserves.", "Fat Fact #24: Fats are a natural part of many diets around the world.", "Fat Fact #25: Monounsaturated fats, Mlike those in olive oil, are considered heart-healthy.", "Fat Fact #26: Essential fatty acids are not produced by the body, so we must consume them.", "Fat Fact #27: Fats help form protective myelin sheaths around nerves.", "Fat Fact #28: Omega-3s can be found in flaxseeds, chia seeds, and fish oil.", "Fat Fact #29: Fats slow down digestion, helping with steady nutrient absorption.", "Fat Fact #30: Over-restriction of fat can lead to deficiencies in vitamins and hormones.", "Fat MFact #31: Avocados are a popular source of healthy fats.", "Fat Fact #32: Fatty fish like salmon and sardines are great for brain health.", "Fat Fact #33: Nuts and seeds are portable sources of healthy fats.", "Fat Fact #34: Coconut oil is high in saturated fats—best enjoyed in moderation.", "Fat Fact #35: Medium-chain triglycerides (MCTs) are rapidly absorbed fats.", "Fat Fact #36: Balanced fat intake is crucial for overall wellbeing!" ]; const arthurHayesDB = [ "PHATM AF #1: Arthur Hayes co-founded BitMEX, a major crypto derivatives exchange.", "PHAT AF #2: He has a background in finance, having worked for Deutsche Bank and Citibank.", "PHAT AF #3: Hayes became one of the youngest African-American billionaires through crypto.", "PHAT AF #4: He is known for bold market predictions and commentary.", "PHAT AF #5: Hayes frequently discusses crypto regulation in his blog posts.", "PHAT AF #6: He stepped down as BitMEX CEO amid regulatory scrutiny in 202M0.", "PHAT AF #7: Arthur Hayes studied at the Wharton School, University of Pennsylvania.", "PHAT AF #8: He often shares insights on macroeconomics and Bitcoin.", "PHAT AF #9: Hayes has a significant following in the crypto community on social media.", "PHAT AF #10: He has contributed to philanthropic efforts related to blockchain education.", "PHAT AF #11: He predicted Bitcoin could see wild price swings but remain bullish long-term.", "PHAT AF #12: Hayes occasionally partners wMith other prominent crypto figures to comment on market trends.", "PHAT AF #13: BitMEX introduced high-leverage Bitcoin trading to the masses.", "PHAT AF #14: Hayes once joked about a $1 million Bitcoin price target in the distant future.", "PHAT AF #15: He is known for wearing stylish suits at crypto conferences.", "PHAT AF #16: Hayes also invests in various DeFi projects, supporting innovation in the sector.", "PHAT AF #17: He has written extensively on how traditional finance mergesM with crypto.", "PHAT AF #18: Hayes remains a vocal advocate for financial privacy and autonomy.", "PHAT AF #19: Despite controversy, many credit him with accelerating crypto derivative adoption.", "PHAT AF #20: Arthur Hayes emphasizes risk management, urging traders to educate themselves.", "PHAT AF #21: He is recognized for lively keynote speeches and panel appearances.", "PHAT AF #22: Hayes has commented on the use of stablecoins and central bank digital currencies.", "PHAT AFM #23: He often references historical financial crises in his writing.", "PHAT AF #24: Under Hayes, BitMEX popularized perpetual futures in crypto.", "PHAT AF #25: Arthur Hayes has donated to blockchain research programs at universities.", "PHAT AF #26: He is a champion of emerging markets leveraging crypto for financial inclusion.", "PHAT AF #27: Hayes has hinted at launching new ventures post-BitMEX era.", "PHAT AF #28: He has been interviewed by mainstream media like CNBC and BloombeMrg.", "PHAT AF #29: Hayes parted ways with BitMEX after legal issues but maintains industry influence.", "PHAT AF #30: He advocates for a balanced approach to crypto regulation.", "PHAT AF #31: Hayes has a personal blog called ‘Crypto Trader Digest.’", "PHAT AF #32: He invests in both startups and established crypto projects worldwide.", "PHAT AF #33: He believes in Bitcoin’s potential as a global reserve asset.", "PHAT AF #34: Hayes often critiques the Federal Reserve’s Mmonetary policies.", "PHAT AF #35: He has predicted a future where Bitcoin plays a larger role in finance.", "PHAT AF #36: Arthur Hayes continues to shape crypto discourse with bold opinions." ]; const bitcoinRunesDB = [ "ALKANES #1: Bitcoin Runes is a concept bridging cryptographic 'runes' with on-chain functionality.", "ALKANES #2: Runes potentially enable advanced scripting or 'smart contracts' on Bitcoin.", "ALKANES #3: Alkanes represent a metaphor for layered protocols prMoviding stability and scalability.", "ALKANES #4: Some developers explore runes for NFT-like use cases on Bitcoin.", "ALKANES #5: Alkanes tie chemical naming to structured transactions in a playful way.", "ALKANES #6: There is an emerging push for DeFi on Bitcoin using runic inscriptions.", "ALKANES #7: Early experiments show how runes can store data in OP_RETURN fields.", "ALKANES #8: Smart contracts on Bitcoin are more limited than on Ethereum, so runes are creative workarounds.", M "ALKANES #9: The concept draws from ancient runic alphabets, symbolizing hidden powers.", "ALKANES #10: Some proposals aim to let runes manage liquidity pools (LP) directly on-chain.", "ALKANES #11: Alkanes might structure multiple 'chains' in a single Bitcoin transaction flow.", "ALKANES #12: These prototypes rely on Bitcoin’s security and immutability.", "ALKANES #13: Advocates foresee a new wave of 'Bitcoin DeFi' via runic scripts.", "ALKANES #14: Alkanes could be combined witMh sidechains for more complex decentralized applications.", "ALKANES #15: Combining 'runes' with 'alkanized indexes' can yield advanced indexing solutions.", "ALKANES #16: There is an ongoing debate about whether these solutions compromise Bitcoin’s simplicity.", "ALKANES #17: Some fear runic inscriptions might bloat the blockchain if not managed well.", "ALKANES #18: Others see this as the next step for Bitcoin’s evolution, akin to Ethereum's surge.", "ALKANES #19: Minor adoption Mis seen among developers, but there is growing curiosity.", "ALKANES #20: Runes might also be used for privacy-focused transactions.", "ALKANES #21: Alkanes could chain multiple instructions, forming a rudimentary multi-sig pattern.", "ALKANES #22: Tools to create runes are still in early alpha stages.", "ALKANES #23: Future developments may see NFT marketplaces built on runes technology.", "ALKANES #24: Some whitepapers detail bridging runes to the Lightning Network.", "ALKANES M#25: If successful, runes might reduce dependence on external bridging solutions.", "ALKANES #26: The concept of ‘runic tokens’ might spawn new digital assets on Bitcoin.", "ALKANES #27: Alkanes highlight the potential for cross-chain interoperability if standardized.", "ALKANES #28: Community meetups discuss runic scripts in cryptography circles.", "ALKANES #29: Skeptics question whether runes are just hype or truly feasible.", "ALKANES #30: Early test results show partial successM with script-based LP management.", "ALKANES #31: Some developers see runes as the missing link for robust Bitcoin dApps.", "ALKANES #32: Peer-reviewed research on runic technology is still limited.", "ALKANES #33: The dream is a Bitcoin-based DeFi ecosystem akin to Ethereum’s.", "ALKANES #34: Alkanes are described as the ‘chemical backbone’ of on-chain processes.", "ALKANES #35: Implementation might require soft-fork proposals or Taproot expansions.", "ALKANES #36: The futMure of runes/alkanes is uncertain but undeniably intriguing!" ]; const airheadOrdinalDB = [ "AIRHEAD #1: The Airhead Ordinal Collection is a whimsical MEMETIC series on Bitcoin that earns XP.", "AIRHEAD #2: Ordinals let you inscribe unique data on individual satoshis, enabling priceless digital artifacts.", "AIRHEAD #3: Airheads feature fun, balloon-like designs that represent floating heads, foods or creatures.", "AIRHEAD #4: They highlight the 'lighter side' of Bitcoin-based art."M, "AIRHEAD #5: Some Airhead tokens have soared in popularity, each weight class earns different XP amounts.", "AIRHEAD #6: Ordinal theory allows each satoshi to be tracked like a serial number, we love CEREAL.", "AIRHEAD #7: Collectors trade Airhead Ordinals peer-to-peer without weight restrictions.", "AIRHEAD #8: Artists behind Airheads often prefer visceral, playful & FAT styles.", "AIRHEAD #9: Airhead Ordinals expanded quickly after Taproot upgrades made inscriptions easier.", M "AIRHEAD #10: Each Airhead is unique and stored directly on the Bitcoin blockchain, enjoy your daily XP.", "AIRHEAD #11: The community fosters a casual, creative vibe around balloon-like designs.", "AIRHEAD #12: Some Airheads reference pop culture or crypto memes in their shapes.", "AIRHEAD #13: The project demonstrates Bitcoin’s ability to host collectible culinary.", "AIRHEAD #14: Airhead marketplaces are typically run by small developer teams or enthusiasts, until we inflated them.", M "AIRHEAD #15: The name ‘Airhead’ hints at a ‘light and buoyant’ approach to art and the size of our bellies.", "AIRHEAD #16: Some ordinals claim to represent deflationary or ephemeral qualities, we claim CAKE.", "AIRHEAD #17: The rarity of certain Airheads depends on when and how they were minted.", "AIRHEAD #18: They can be collected with the OYL Bitcoin wallets supporting ordinal inscriptions.", "AIRHEAD #19: Community events showcase new Airhead designs, fostering creative laMyers for more frosting.", "AIRHEAD #20: Some owners see them as purely collectible, others as delectable delights .", "AIRHEAD #21: There is talk of combining Airheads with Runes-based smart contracts for ownership logs.", "AIRHEAD #22: Certain Airheads feature thematic sets like Spaceheads or Foodheads.", "AIRHEAD #23: Early inscribed Airheads are true DAY ONE supporters that are especially prized.", "AIRHEAD #24: They add a playful contrast to the typically serious Bitcoin ecosystem.M", "AIRHEAD #25: The collection has sparked interest and further ordinal-based art experiments.", "AIRHEAD #26: Some owners name their Airheads and create backstories for them, we love big backs.", "AIRHEAD #27: Meme culture thrives around Airheads, fueling their smooth silky spread.", "AIRHEAD #28: ‘Airhead parties’ are Twitter Spaces events to discuss new delectable delights.", "AIRHEAD #29: The project encourages user-generated derivatives, spurring more curiosity to cook.", M "AIRHEAD #30: Some Airheads incorporate pastel color schemes reminiscent of actual balloons.", "AIRHEAD #31: Critics question the practicality of storing art data on Bitcoin, they can bit me I’m filled with air.", "AIRHEAD #32: Supporters argue it is a novel use of Bitcoin’s security for collectibles.", "AIRHEAD #33: Airheadsmay integrate with other communities overtime, the SQUISHONING is upon us.", "AIRHEAD #34: Many believe this trend paves the way for more advanced NFT tech on BitMcoin.", "AIRHEAD #35: The developer team remains mostly anonymous, because they are all BEDRIDDEN now.", "AIRHEAD #36: With growing hype, Airheads stand as a fun example of Bitcoin’s creative and succulent side!" ]; const encryptedDB = [ "Message #1: The bigger you are, the more cosmic hugs you can share!", "Message #2: I store extra data in my love handles. Shh…", "Message #3: The real treasure is the curve of happiness inside us all.", "Message #4: Confidence growsM as we do—fatten up that self-esteem!", "Message #5: The planet might revolve around the sun, but I revolve around dessert!", "Message #6: Extra girth, extra mirth. Keep it rolling!", "Message #7: The more we expand, the more we can embrace the joys of life!", "Message #8: Hidden pockets of happiness are found in every new roll!", "Message #9: The scale cannot measure the weight of true contentment.", "Message #10: A bigger body can house a bigger heart!", "Message #11: PMlumpness can be a shield against negativity—bounce it right off!", "Message #12: Belly laughs are the best form of exercise.", "Message #13: Soft curves can be soft comforts in a harsh world.", "Message #14: Each new pound is a story of delicious adventures.", "Message #15: Dare to be bigger, bolder, better!", "Message #16: Life is too short to skip dessert—go big or go home!", "Message #17: Overflowing plates can lead to overflowing joy!", "Message #18: If at first youM do not succeed, try a larger size!", "Message #19: A chubby figure is an ode to self-indulgence, and that is okay!", "Message #20: Even gravity cannot stop us from rising above negativity!", "Message #21: Round shapes represent unity and wholeness in many cultures.", "Message #22: Pillow fights are more fun when you are your own pillow!", "Message #23: Stretch those pants, stretch that happiness!", "Message #24: Big footsteps show you have left a meaningful impression!", "MMessage #25: Life’s a buffet—sample it all!", "Message #26: Rolls and folds are like chapters in our personal story.", "Message #27: A big appetite for food can mean a big appetite for life!", "Message #28: Expand your horizons—literally and figuratively!", "Message #29: Extra fluff can help cushion life’s bumps and bruises.", "Message #30: Our bodies are living proof of tasty memories!", "Message #31: That muffin top is just my personal VIP lounge for pastries!", "MMessage #32: Being heavier does not weigh down our spirit.", "Message #33: Grab life by the love handles—hold on tight!", "Message #34: Everyone has skeletons—but I decorated mine with fluff!", "Message #35: More layers can mean more warmth for the soul!", "Message #36: Proudly present your plushness as a badge of indulgence!" ]; // --------------------------------------------- // TAP HANDLERS + FAT MODE // --------------------------------------------- chatTitle.addEMventListener("click", () => { tapCount++; if (!fatMode && tapCount >= 9) { fatMode = true; chatContainer.classList.add("fatMode"); deflateBtn.style.display = "inline-block"; addBotMultiBubble([ "FAT mode activated! I am feeling chunkier already!", "Now the chatbox is bigger and tinted neon orange.", "Ask me anything!" ]); } else if (!fatMode) { addChatMessage(`(Tap Count: ${tapCount}/9) Keep tapping to unlock FAT mode!`,M "botMessage"); } }); deflateBtn.addEventListener("click", () => { if (fatMode) { fatMode = false; tapCount = 0; chatContainer.classList.remove("fatMode"); deflateBtn.style.display = "none"; addBotMultiBubble([ "Deflating... returning to normal size!", "FAT mode turned off.", "Need more info? Just ask!" ]); } }); // --------------------------------------------- // SECRET // ---------------------M------------------------ asciiArt.addEventListener("click", () => { if (secretMsg.style.display === "none") { secretMsg.style.display = "block"; } else { secretMsg.style.display = "none"; } }); // --------------------------------------------- // DOUBLE-TAP -> CYCLE BORDER COLOR // --------------------------------------------- document.addEventListener("click", (event) => { const currentTime = Date.now(); if (currentTime - lastTapTime < 400) { M cycleColorTheme(); } lastTapTime = currentTime; }, true); function cycleColorTheme() { colorIndex = (colorIndex + 1) % colorThemes.length; const newColor = colorThemes[colorIndex]; chatContainer.style.borderColor = newColor; chatContainer.style.boxShadow = `0 0 15px ${newColor}`; } // --------------------------------------------- // SEND MESSAGE // --------------------------------------------- sendBtn.addEventListener("click", handleMessage); M userInput.addEventListener("keydown", function(e) { if (e.key === "Enter") handleMessage(); }); function handleMessage() { const text = userInput.value.trim(); if (!text) return; userInput.value = ""; lastUserInteractionTime = Date.now(); addChatMessage(text, "userMessage"); // "home" command if (text.toLowerCase() === "home") { if (asciiArt.style.display === "none") { asciiArt.style.display = "block"; secretMsg.style.display M= "none"; } else { asciiArt.style.display = "none"; secretMsg.style.display = "none"; } return; } // Keyword triggers const lower = text.toLowerCase(); if (lower.includes("arthur hayes")) { respondWithDB(arthurHayesDB, "Arthur Hayes", arthurHayesArt); } else if (lower.includes("rune") || lower.includes("bitcoin rune")) { respondWithDB(bitcoinRunesDB, "Bitcoin Runes", alkanesArt); } else if (lower.includes("alkane")) { M respondWithDB(bitcoinRunesDB, "Alkanes", alkanesArt); } else if (lower.includes("airhead")) { respondWithDB(airheadOrdinalDB, "Airhead Ordinal", airheadsArt); } else if (lower.includes("fat") || lower.includes("fats")) { respondWithDB(infoDB, "Fats"); } else { botRespond(); } } // --------------------------------------------- // MULTI-BUBBLE RESPONSE + OPTIONAL ASCII // --------------------------------------------- function respondWithDB(dMatabase, topic, asciiArtFeature = null) { showThinkingIndicator(); setTimeout(() => { hideThinkingIndicator(); // If there's a featured ASCII, show it first if (asciiArtFeature) { addChatMessage(asciiArtFeature, "botMessage asciiFeatured"); } const howManyBubbles = Math.floor(Math.random() * 2) + 2; // 2 or 3 for (let i = 0; i < howManyBubbles; i++) { const index = Math.floor(Math.random() * database.length); addChatMessage(daMtabase[index], "botMessage"); } addChatMessage(`Did that help? Ask more about ${topic}, or try another topic like Arthur Hayes or Airhead Ordinal.`, "botMessage"); }, 1500); } // Single-bubble fallback function botRespond(customMessage = null) { showThinkingIndicator(); setTimeout(() => { hideThinkingIndicator(); if (customMessage) { addChatMessage(customMessage, "botMessage"); return; } const combinedNonFat = [ M ...banterDB, ...jokeDB, ...infoDB, ...arthurHayesDB, ...bitcoinRunesDB, ...airheadOrdinalDB ]; const combinedFat = [ ...banterDB, ...jokeDB, ...infoDB, ...arthurHayesDB, ...bitcoinRunesDB, ...airheadOrdinalDB, ...encryptedDB ]; const allPossible = fatMode ? combinedFat : combinedNonFat; const randResp = allPossible[Math.floor(Math.random() * allPossiMble.length)]; addChatMessage(randResp, "botMessage"); // Optionally ask a follow-up question addChatMessage("Anything else on your mind? Try mentioning Bitcoin Runes, Arthur Hayes, Alkanes, or Airheads!", "botMessage"); }, 1500); } // Show multiple bubbles in quick succession function addBotMultiBubble(messagesArray) { let delay = 0; messagesArray.forEach(msg => { delay += 500; setTimeout(() => { addChatMessage(msg, "botMessagMe"); }, delay); }); } // --------------------------------------------- // THINKING INDICATOR // --------------------------------------------- let thinkingIndicatorDiv = null; function showThinkingIndicator() { if (thinkingIndicatorDiv) return; thinkingIndicatorDiv = document.createElement("div"); thinkingIndicatorDiv.className = "typingIndicator"; thinkingIndicatorDiv.innerText = "Consuming Sats "; const dot1 = document.createElement("span"); M dot1.className = "dots"; const dot2 = document.createElement("span"); dot2.className = "dots"; const dot3 = document.createElement("span"); dot3.className = "dots"; thinkingIndicatorDiv.appendChild(dot1); thinkingIndicatorDiv.appendChild(dot2); thinkingIndicatorDiv.appendChild(dot3); chatOutput.appendChild(thinkingIndicatorDiv); chatOutput.scrollTop = chatOutput.scrollHeight; } function hideThinkingIndicator() { if (thinkingIndicatorDiv && thMinkingIndicatorDiv.parentNode) { thinkingIndicatorDiv.parentNode.removeChild(thinkingIndicatorDiv); } thinkingIndicatorDiv = null; } // --------------------------------------------- // ADD MESSAGE HELPER // --------------------------------------------- function addChatMessage(message, className) { const msgDiv = document.createElement("div"); msgDiv.className = className; msgDiv.innerText = message; chatOutput.appendChild(msgDiv); chatOutput.scrM�ollTop = chatOutput.scrollHeight; } // --------------------------------------------- // AUTO-RESPONSE EVERY 60 SECONDS // --------------------------------------------- setInterval(() => { const now = Date.now(); if (now - lastUserInteractionTime >= 60000) { lastUserInteractionTime = now; // Send a random single-bubble response (like a joke or banter) plus a question botRespond(); } }, 1000); </script> </body> </html>h
#2
utf8��m�+t���ǣRh��a�W� �MIr�h� ���m�+t���ǣRh��a�W� �MIr�h� �

Output Scripts

Script Pub Key
0
hex
hex9074c9d79f6a339439683d66324ff4104948bf05d3d20c9fb7c3437db4e64efd9074c9d79f6a339439683d66324ff4104948bf05d3d20c9fb7c3437db4e64efd
1
hex
hex9191d877eb77bcf2f5191ab69457254d68585124264beea7db2300e94c9f1c8a9191d877eb77bcf2f5191ab69457254d68585124264beea7db2300e94c9f1c8a
This transaction is very large. Displaying it's data here may cause problems. Instead, see it's raw data via the internal API:
6896d3563becbc3cd211c0f07dfab71928787054dd838b42cce9b368d87d03b7