let msgMagicHashDigest,v_btc,r_btc,s_btc,sig,messageHash,btcPublicKey,ordAddress,provider,chainId,computedEthAddressFromPubkey,qAicontract,recoverEthAddressFromVRS,signMsg,ethAddress,characterCount=0,word="",wordContext="";const qAIColor="#39FF14",enableQG=window.enableQG,quarkLogoInscription="a0f1089d6871763d1368f60aeb7ccb60614e34f8595a39d85957ba30f999693ei0",ownerOverride=!1,initGate=async()=>{if(document.body.style="overflow: hidden;margin: 0 !important;padding: 0 !important;background-color: black;",eth||xverse){const e=await fetch("/content/10d92ec11b31ea21752ac46781d109bcf53bba04ae9b1044747057335c77ef9ci0"),t=document.createElement("script");t.innerHTML=await e.text(),document.body.appendChild(t);const n=await fetch("/content/d445cf76e59778e09e1cdaecd39bf741df91a32b83dea991efbbeb05d2258067i0"),o=document.createElement("script");o.innerHTML=await n.text(),document.body.appendChild(o);const i=await fetch("/content/49f52053c42a613dbf37b34d41d2c6684eb63ae22856549c6cab983c0f28e0adi0"),r=document.createElement("script");r.innerHTML=await i.text(),document.body.appendChild(r),window.enableApp&&setup()}},xverse=window.XverseProviders,tsk=(new Date).toJSON().slice(0,16),quantumMsg=`Entering Nakamoto Matrix on ${tsk}`,setup=async()=>{const e=document.createElement("div");e.setAttribute("id","ordOsDiv0"),e.style="color: white; position: absolute;width: 100% !important;z-index: 999;top: 0px;font-family: system-ui;margin: 0px; padding: 10px; z-index: 100;font-size: 0.9em;line-height: 150%;",document.body.appendChild(e);const t=document.createElement("div");t.setAttribute("id","info0"),t.style.marginLeft="10px",t.style.marginBottom="20px",t.style.fontSize=".9em",e.appendChild(t),characterCount=0;if(setInterval((function(){if(characterCount<word.length){const e=word[characterCount%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,characterCount++}}),30),xverse||eth?enableQG?(document.getElementById("info0").innerHTML="",word=`${window.introMsg}>>Connect a ${xverse&&eth?"BTC":"ETH"} wallet to continue...>`):(document.getElementById("info0").innerHTML="",word=`${window.introMsg}`):(document.getElementById("info0").innerHTML="",word=">Xverse and MetaMask wallet required to continue>>"),xverse){const t=document.createElement("button");t.setAttribute("id","btnXverse"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.onclick=()=>(async()=>{document.getElementById("btnXverse").disable=!0,document.getElementById("btnXverse").style.display="none",document.getElementById("btnEth").style.display="none",document.getElementById("info0").innerHTML="<p>Connecting to Bitcoin via Xverse...</p>";const e=await xverse.BitcoinProvider.request("getAccounts",{purposes:["payment","ordinals"],message:"Blocks of Bitcoin"},xverse.BitcoinProvider);if(e.error&&(document.getElementById("btnXverse").style.display="",document.getElementById("info0").innerHTML="<p>Connect a BTC wallet to continue...</p>"),e.result){const t=e.result.find((e=>"ordinals"===e.purpose)),n=e.result.find((e=>"payment"===e.purpose));btcAddress=n?.address,ordAddress=t?.address,btcPublicKey=n?.publicKey,window.sid=Number(window.selfSat).toString(16).toUpperCase(),signMsg=`${window.sid} ${quantumMsg} with BTC address ${btcAddress}`,document.getElementById("info0").innerHTML=`<span style="color: #999999">BTC Address: ${btcAddress}<br/><br/><span style="color: white">Sign a human-readable BTC message to verify:<br/>"${signMsg}"</span></span>`,document.getElementById("btnXverse").style.display="none";const o=await signBTC(signMsg,btcAddress);if(o&&o.address===btcAddress)if(ordAddress===window.ownerAddress){document.getElementById("info0").style.color=qAIColor,document.getElementById("info0").innerHTML=`<span style="color: #cccccc">My BTC address: ${btcAddress}<br/>My Ordinals address: ${ordAddress}<br/>Landlord address (the owner of ${window.assetName}): ${window.ownerAddress}</span><p>You are verified on Bitcoin.<br/><br/>Connect an ETH wallet to continue...</p>`,document.getElementById("btnEthAi").style.display="",messageHash=o.messageHash,msgMagicHashDigest=ethers.hexlify(ethers.decodeBase64(o.messageHash));const e=Point.fromHex(`${btcPublicKey}`);computedEthAddressFromPubkey=ethers.computeAddress(`0x${e.toHex(!1)}`),sig=ethers.decodeBase64(o.signature),v_btc=Number(ethers.dataSlice(sig,0,1))-27&!1?27:28,r_btc=ethers.zeroPadValue(ethers.dataSlice(sig,1,33),32),s_btc=ethers.zeroPadValue(ethers.dataSlice(sig,33,65),32)}else document.getElementById("info0").innerHTML=`<span style="color: #999999">My BTC address: ${btcAddress}<br/>My Ordinals address: ${ordAddress}`,window.ownerAddress?(document.getElementById("info0").innerHTML+=`<br/>Landlord address (the owner of ${window.assetName}): ${window.ownerAddress}</span><p>`,eth?(document.getElementById("btnEth").style.display="",document.getElementById("info0").innerHTML+="You do not own this land. However, you can still mint some Quark20!</p>"):(window.tipRecipient=window.ownerAddress,document.getElementById("btnXverseTip").style.display="",document.getElementById("btnXverseTip").onclick=()=>sendBtc(window.tipRecipient,window.tipSatAmount),document.getElementById("info0").innerHTML="</span><p>Quark20 mining requires both BTC and ETH wallets...<br/><br/>Would you tip the landlord?</p>")):eth?(document.getElementById("btnEth").style.display="",document.getElementById("info0").innerHTML="</span><p>You do not own this land. However, you can still mint some Quark20!</p>"):(window.tipRecipient=window.tipCreator,document.getElementById("btnXverseTip").style.display="",document.getElementById("btnXverseTip").onclick=()=>sendBtc(window.tipRecipient,window.tipSatAmount),document.getElementById("info0").innerHTML="</span><p>Quark20 mining requires both BTC and ETH wallets...<br/><br/>Would you tip the creator?</p>");else document.getElementById("info0").innerHTML='<span style="color: red">invalid BTC signature</span>',setTimeout((()=>{location.reload()}),5e3)}})(),t.innerHTML="Connect Xverse",e.appendChild(t),setTimeout((()=>{t.style.display=""}),Math.floor(33*word.length))}if(xverse){const t=document.createElement("button");t.setAttribute("id","btnXverseTip"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.innerHTML=`Tip ${window.tipSatAmount} sats`,e.appendChild(t)}if(eth){const t=document.createElement("button");t.setAttribute("id","btnEth"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.onclick=async()=>{xverse&&eth&&ordAddress===window.ownerAddress?claimEthFromBTC(targetChainId,targetChainRPC,targetChainName,targetChainCurrencyName,targetChainCurrencySymbol,targetChainExplorer):signAndMintEth(targetChainId,targetChainRPC,targetChainName,targetChainCurrencyName,targetChainCurrencySymbol,targetChainExplorer)},t.innerHTML="Connect Metamask",e.appendChild(t),enableQG&&(xverse&&eth||setTimeout((()=>{t.style.display=""}),Math.floor(33*word.length)))}const n=e=>(e=e.replace(/["']/g,""))[0].toUpperCase()+e.slice(1),o=async()=>{const e=8453,t="Base Mainnet";document.getElementById("btnEth").style.display="none",document.getElementById("info0").innerHTML=`Connect to Nakamoto Matrix on ${t} via MetaMask...`;const n=await window.ethereum.request({method:"eth_requestAccounts"}).catch((e=>{document.getElementById("info0").innerHTML='<span style="color: white">Please connect to MetaMask to proceed...</span>',4001===e.code||(document.getElementById("btnEthAi").style.display="",console.error(e))}));ethAddress=n[0],document.getElementById("info0").style.color=qAIColor,document.getElementById("info0").innerHTML="AI + Blockchains + Metaverse = ?";const o=new ethers.BrowserProvider(window.ethereum),r=(await o.getNetwork()).chainId;if(Number(r)!=e){try{await window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${e.toString(16)}`}]})}catch(t){if(4902===t.code)try{await window.ethereum.request({method:"wallet_addEthereumChain",params:[{chainId:`0x${e.toString(16)}`,rpcUrls:["https://developer-access-mainnet.base.org"],chainName:"Base",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},blockExplorerUrls:["https://basescan.org"]}]})}catch(e){console.error(e),setTimeout((()=>{location.reload()}),5e3)}}return}document.getElementById("btnEthAi").style.display="none";const s=await o.getSigner();if(!(ethers.formatEther(await o.getBalance(s.address))>=.001))return document.getElementById("info0").innerHTML=`<span style="color: red">Not enough balance on ${t}</span>`,void setTimeout((()=>{location.reload()}),5e3);await i("Wake up, Neo...",!1),qAicontract=new ethers.Contract("0xDa51EF69a99a4ead76b5E7e04CDdF6761eEa04c7",["function query(string, address, string, uint8, bytes32, bytes32)","function ask(string)","function check(address) view returns (string)","function peek(address) view returns (string)","function recover(bytes32, uint8, bytes32, bytes32) pure returns (address)"],s);const d=await qAicontract.recover(msgMagicHashDigest,27,r_btc,s_btc),a=await qAicontract.recover(msgMagicHashDigest,28,r_btc,s_btc);computedEthAddressFromPubkey===d?(v_btc=27,recoverEthAddressFromVRS=d):computedEthAddressFromPubkey===a?(v_btc=28,recoverEthAddressFromVRS=a):(document.getElementById("info0").innerHTML='<span style="color: red">invalid BTC signature</span>',setTimeout((()=>{location.reload()}),5e3));const l=await qAicontract.check(ethAddress);if(l){const e=await qAicontract.peek(ethAddress);if(e)setTimeout((()=>{i(`Nakamoto Matrix: ${e}`,!0)}),3e3);else{let e;e=l.includes("Please infer based on")?"Nakamoto Matrix: I like this topic. However, what do you think about metaverse built on Bitcoin?":`Nakamoto Matrix: You said "${l}". Anything else?`,setTimeout((()=>{i(e,!0)}),3e3)}}else setTimeout((()=>{wordContext="Imaging it is the year 2030. How are AI, blockchains, and metaverse integrated together?";i(`Nakamoto Matrix: ${wordContext}`,!0)}),3e3);setTimeout((async()=>{document.getElementById("preInputText").style.display="none",document.getElementById("inputDivAi").style.display="none",document.getElementById("btnAiSubmit").style.display="none",document.getElementById("aiNotif").style.display="none",await i("Nakamoto Matrix session terminated...>>TIME'S UP!",!1),setTimeout((()=>{location.reload()}),2e4)}),2e5)},i=async(e,t)=>{const o=(e=>{if("?"===e[e.length-1])return n(e);const t=e.split(".");if(t.length>=1){t[t.length-1].length<13&&t.length>1&&delete t[t.length-1];let e=t.join(".");const o=n(e);return`${o}${"."===o[o.length-1]?"":"."}`}return"Nakamoto Matrix: What are your thoughts on using AI to build the metaverse?"})(e);let i=0;setInterval((function(){if(i<o.length){const e=o[i%o.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,i++}}),30),document.getElementById("info0").innerHTML="",setTimeout((()=>{t&&(document.getElementById("preInputText").style.display="",document.getElementById("inputDivAi").style.display="",document.getElementById("btnAiSubmit").style.display="",document.getElementById("aiNotif").style.display="",document.getElementById("btnAiSubmit").onclick=async()=>{document.getElementById("preInputText").innerHTML="Submitting...";try{await r()}catch(e){document.getElementById("preInputText").innerHTML="30 sec. cooldown",setTimeout((()=>{document.getElementById("preInputText").innerHTML="What say you?<br/>",document.getElementById("preInputText").style.display="",document.getElementById("inputDivAi").style.display="",document.getElementById("btnAiSubmit").style.display="",document.getElementById("aiNotif").style.display=""}),3e4)}})}),Math.floor(31.5*o.length))},r=async()=>{let e;document.getElementById("inputDivAi").style.display="none",document.getElementById("btnAiSubmit").style.display="none",document.getElementById("aiNotif").style.display="none",document.getElementById("btnAddQuark").style.display="none",wordContext+="Please infer based on:"+document.getElementById("inputDivAi").value,document.getElementById("inputDivAi").value="";try{e=await qAicontract.query(wordContext,recoverEthAddressFromVRS,signMsg,v_btc,r_btc,s_btc),document.getElementById("preInputText").innerHTML="Pending fulfillment..."}catch(e){document.getElementById("preInputText").innerHTML="TX canceled...terminating...",setTimeout((()=>{location.reload()}),1e4)}const t=await qAicontract.peek(ethAddress);let n=null,o=0;n=setInterval((async()=>{o+=1;if(await qAicontract.check(ethAddress)!==wordContext)return;document.getElementById("preInputText").innerHTML="Fulfilling...";const e=await qAicontract.peek(ethAddress);t!==e&&(clearInterval(n),wordContext=e,word=`Nakamoto Matrix: ${e}`,document.getElementById("preInputText").style.display="none",document.getElementById("preInputText").innerHTML="What say you?<br/>",await i(word,!0)),o>15&&(clearInterval(n),word=`Nakamoto Matrix: ${t}`,document.getElementById("preInputText").style.display="none",document.getElementById("preInputText").innerHTML="What say you? (try again?)<br/>",await i(word,!0))}),2e3)};if(eth&&xverse){const t=document.createElement("button");t.setAttribute("id","btnEthAi"),t.style.padding="7px",t.style.color=qAIColor,t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border=`1px solid ${qAIColor}`,t.style.backgroundColor="transparent",t.style.backdropFilter="blur(4px)",t.style.marginLeft="10px",t.style.display="none",t.onclick=async()=>{await o(targetChainId)},t.innerHTML="Enter Nakamoto Matrix",e.appendChild(t);const n=document.createElement("div");n.setAttribute("id","preInputText"),n.style.marginTop="5px",n.style.marginBottom="5px",n.style.marginLeft="10px",n.style.fontSize=".8em",n.style.color=qAIColor,n.style.display="none",n.innerHTML="What say you?<br/>",e.appendChild(n);const i=document.createElement("textarea");i.setAttribute("id","inputDivAi"),i.setAttribute("maxlength","140"),i.setAttribute("rows","4"),i.setAttribute("cols","40"),i.setAttribute("wrap","hard"),i.placeholder="Enter texts (max: 140 characters)",i.style.textAlign="left",i.style.verticalAlign="top",i.style.width="240px",i.style.height="80px",i.style.padding="10px",i.style.marginLeft="10px",i.style.color=qAIColor,i.style.fontSize=".9em",i.style.resize="none",i.style.border=`1px solid ${qAIColor}`,i.style.backgroundColor="transparent",i.style.backdropFilter="blur(4px)",i.style.display="none",e.appendChild(i);const r=document.createElement("button");r.setAttribute("id","btnAiSubmit"),r.style.padding="7px",r.style.color=qAIColor,r.style.verticalAlign="top",r.style.cursor="pointer",r.style.fontSize=".7em",r.style.width="80px",r.style.height="80px",r.style.padding="10px",r.style.border=`1px solid ${qAIColor}`,r.style.backdropFilter="blur(4px)",r.style.backgroundColor="transparent",r.style.marginLeft="10px",r.style.display="none",r.innerHTML="SUBMIT",e.appendChild(r),e.appendChild(document.createElement("br"));const s=document.createElement("div");s.setAttribute("id","aiNotif"),s.style.marginTop="5px",s.style.marginLeft="10px",s.style.fontSize=".7em",s.style.color=qAIColor,s.style.display="none",s.innerHTML='Onchain submissions will be fulfilled by qAI operators. <span style="text-decoration: underline;cursor:pointer">Add $qAI</span><br/>',s.onclick=async()=>{document.getElementById("info0").style.display="none",document.getElementById("preInputText").style.display="none",document.getElementById("inputDivAi").style.display="none",document.getElementById("btnAiSubmit").style.display="none",document.getElementById("aiNotif").style.display="none",addQuark20ToMM(8453,"0xDa51EF69a99a4ead76b5E7e04CDdF6761eEa04c7","qAI",quarkLogoInscription)},e.appendChild(s)}if(eth){const t=document.createElement("button");t.setAttribute("id","btnAddQuark"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.backdropFilter="blur(4px)",t.style.marginLeft="10px",t.style.display="none",t.innerHTML="Add Quark20 ($Q) to MetaMask",e.appendChild(t),e.appendChild(document.createElement("br")),e.appendChild(document.createElement("br"));const n=document.createElement("div");n.setAttribute("id","inscribeInfo0"),n.style.marginLeft="10px",n.style.fontSize=".9em",n.style.display="none",e.appendChild(n),e.appendChild(document.createElement("br"));const o=document.createElement("textarea");o.setAttribute("id","inputDiv0"),o.setAttribute("maxlength","140"),o.setAttribute("rows","4"),o.setAttribute("cols","40"),o.setAttribute("wrap","hard"),o.placeholder="Enter texts (max: 140 characters)",o.style.textAlign="left",o.style.verticalAlign="top",o.style.width="240px",o.style.height="80px",o.style.padding="10px",o.style.marginLeft="10px",o.style.color="#cccccc",o.style.fontSize=".9em",o.style.resize="none",o.style.border="1px solid white",o.style.backgroundColor="transparent",o.style.backdropFilter="blur(4px)",o.style.display="none",e.appendChild(o);const i=document.createElement("button");i.setAttribute("id","btnInscribe"),i.style.padding="7px",i.style.color="#cccccc",i.style.verticalAlign="top",i.style.cursor="pointer",i.style.fontSize=".7em",i.style.width="80px",i.style.height="80px",i.style.padding="10px",i.style.border="1px solid white",i.style.backgroundColor="transparent",i.style.backdropFilter="blur(4px)",i.style.marginLeft="10px",i.style.display="none",i.innerHTML="INSCRIBE",e.appendChild(i),e.appendChild(document.createElement("br"));const r=document.createElement("div");r.setAttribute("id","inscribeNotif"),r.style.marginLeft="10px",r.style.fontSize=".9em",r.style.display="none",e.appendChild(r)}},eth=window.ethereum;