const init=()=>{window.currentRange=1e3,window.digitalElements={},window.digitalElements.found={};const e="ontouchstart"in window||navigator.msMaxTouchPoints;document.body.style="margin: 20px;overflow: x-hidden; background-color: #333333; color: white;font-family: system-ui;";const t=document.createElement("div");t.setAttribute("id","titleDiv0"),t.innerHTML=`<a href="${serverUrl}/content/fa1277e5a4090fa72b2d2caacc0def9e4cb9651a6d38099e65364b02cea514f8i0" style="font-size: 1.2em; color: orange; text-decoration: none">Digital Elements on Bitmap 🟧</a><br/><span style="font-size: 0.9em">Bitmap Sat Fusion Node 🔥⚛️ v0.1 <span style="font-size: 0.8em">(w. free onchain decentralized indexing)</span><br/>Define/Scan/Download Bitmap Digital Elements Data</span><br/><br/>`,document.body.appendChild(t);const n=document.createElement("input");n.setAttribute("id","inputDiv0"),n.placeholder="Enter Element Name",n.style.textAlign="center",n.style.width="180px",n.style.height="35px",n.style.padding="10px",n.style.color="#cccccc",n.style.fontSize="1em",n.style.border="2px solid white",n.style.backgroundColor="transparent",document.body.appendChild(n);const i=document.createElement("input");i.setAttribute("id","inputDiv1"),i.placeholder="Enter Pattern",i.type="number",i.style.marginLeft="10px",i.style.textAlign="center",i.style.width="150px",i.style.height="35px",i.style.padding="10px",i.style.color="#cccccc",i.style.fontSize="1em",i.style.border="2px solid white",i.style.backgroundColor="transparent",i.style.marginRight="10px",document.body.appendChild(i),document.body.addEventListener("keydown",(function(e){13==e.keyCode&&checkElements()}));const o=document.createElement("button");o.setAttribute("id","btnDiv0"),o.style.padding="7px",o.style.color="#cccccc",o.style.cursor="pointer",o.style.fontSize=".9em",o.style.border="1px solid white",o.style.backgroundColor="transparent",o.style.marginRight="10px",o.onclick=()=>checkElements(),o.innerHTML="SCAN",document.body.appendChild(o);const l=document.createElement("button");l.setAttribute("id","btnDiv1"),l.style.padding="7px",l.style.color="#cccccc",l.style.cursor="pointer",l.style.fontSize=".9em",l.style.border="1px solid white",l.style.backgroundColor="transparent",l.style.marginRight="10px",l.style.display="none",l.onclick=()=>{if(1e3===window.currentRange)window.currentRange=5e3,document.getElementById("info0").innerHTML="Scanning locally (Proof of Work)... The speed of scanning varies based on your device.";else{if(!(window.currentRange<=95e3))return void(document.getElementById("info0").innerHTML="Can only scan up to 100k for now (need more quotes)");window.currentRange+=5e3;const e=['"an onchain big bang🔥 from bitmap sats occurred quietly"','"Centralized" on the most valuable, secured, decentralized network','"if anyone tries to resist or throw mud 🤎 on any pioneer vision..."','"Art on BITCOIN? Art OFF BITCOIN?"','"onchain indexing: Bad Idea!"','"there is no (onchain) pioneer vision here"','"Leveraging Bitcoin\'s Data Layer (offchain!?)"','"free (onchain) knockoff*"','"DMT was a private conversation between me and..."',"\"I had the idea for 'atoms'...on 2022-5-1 I renamed the 'bitcoin-atoms' repo to 'ord'.\"",'"When OP_CAT is enabled on BTC, we will have a native BTC metaverse economy #bitmap"','"can u access the [redacted] data from inside a sandboxed inscription?"','"no block data involved" (except everything is onchain)','"I should have known that everyone would immediately start using JSON-based provenance 😭"','"Bitcoin, Ordinals and Runes *is* the MMORPG."',"\"If you don't believe me or don't get it, I don't have time to try to convince you, sorry.\"","I'm trash and I'm safe from centralization.","#bitmap #bitcoin #metaverse"];document.getElementById("info0").innerHTML=e[Math.floor(Math.random()*e.length)]}checkElements()},l.innerHTML="SCAN NEXT 5K Bitmaps",document.body.appendChild(l);const a=document.createElement("span");a.setAttribute("id","info0"),a.style.marginLeft="10px",a.style.fontSize=".9em",document.body.appendChild(a),document.getElementById("info0").innerHTML="try 'cat20' and '6540', or just hit 'SCAN'";const d=document.createElement("hr");document.body.appendChild(d);const s=document.createElement("div");if(s.setAttribute("id","elementsDiv0"),s.innerHTML=`<div>Digital Elements are fused 🔥 from the Bitmap universe of Satoshi numbers, where the first 840k Bitmap sats were inscribed as BitmapOCI (onchain index).<br/>Multiple Digital Elements ⚛️ can be found on a single Bitmap. Check a specific Bitmap via <a href="${serverUrl}/content/fa1277e5a4090fa72b2d2caacc0def9e4cb9651a6d38099e65364b02cea514f8i0" style="color: white; text-decoration: underline">Inscription 75526396</a><br/>This is a client-side decentralized (onchain) indexing node 🌐 that runs from an BTC inscription on your web browser client.<br/>Feel free to download your custom indexing results and keep building on Bitmap 🧡<br/>More features & utilities coming soon in future node upgrades 💜🐈</div>`,e){const e=document.createElement("hr");document.body.appendChild(e)}s.style.fontSize=".8em",document.body.appendChild(s);const r=document.createElement("div");r.setAttribute("id","bitmapFieldDiv0"),document.body.appendChild(r),document.getElementById("bitmapFieldDiv0").style.wordWrap="break-word";const c=document.createElement("div");c.setAttribute("id","bitFieldDiv0"),c.style.fontSize="0.8em",document.body.appendChild(c),document.getElementById("bitFieldDiv0").style.wordWrap="break-word";const m=document.createElement("button");m.setAttribute("id","btnDownloadDiv0"),m.style.padding="7px",m.style.color="#cccccc",m.style.cursor="pointer",m.style.fontSize=".9em",m.style.border="1px solid white",m.style.backgroundColor="transparent",m.style.marginTop="10px",m.style.marginRight="10px",m.onclick=()=>downloadJson(),m.style.display="none",m.innerHTML="DOWNLOAD .json",document.body.appendChild(m)},checkDigitalElements=async(e,t,n)=>{if(console.log("Digital Elements on Bitmap with an onchain index made of Bitmap sats powered by decentralized indexing from your web browser 🟧"),console.log("inspired by digital matter theory, onchain provenance, and decentralized indexing"),console.log("built by runeape.sats 🟪🐈"),isNaN(n)||n>1e5)return void console.log("invalid range");const i=await fetch("https://ordiscan.com/r/blockheight").then((e=>e.text())),o=860832,l=2016,a=i>=o?Math.floor((i-o)/l)+1:0,d=Math.floor(e/21e4),s=69+a,r=l-(i-o)%l-1;console.log("latestBlockHeight",i,"shift in",r,"blocks","max_field",s);const c={...t};if(e=Number(e),Number(e)>84e4||isNaN(e)){const e="only valid for blockHeight ≤ 840000";return console.log(e),{}}void 0===e&&(e=0);const{bitmapSat:m,bitfield:u}=await bitdex.getBitmapSatWifData(Number(e));let g=u;for(let e=0;e<s-4*d;e++)g+=u;digitalElements.sat=m,digitalElements.blockHeight=e,digitalElements.latestBlockHeight=i,digitalElements.nextShift=r,digitalElements.elements=c,digitalElements.max_field=s,digitalElements.bitfield=u,digitalElements.availableBitfield=g,digitalElements.epoch=d,digitalElements.difficultyAdjustment=l,digitalElements.activationBlockHeight=o;const b=Math.ceil(g.length/1e5);digitalElements.sum={};const y=e%1e5;document.getElementById("bitFieldDiv0").innerHTML='<br/><b style="color:orange">Digital Elements found on:</b><br/>';const p=e=>{let t="";for(const[n,i]of Object.entries(e))t+=`<b>${n}</b> x ${i}, `;return t.substring(0,t.length-2)};for(let t=y;t<n;t++){const i=g.substring(t*b,(t+1)*b);if(digitalElements.found[t]){if(t>=1e3||n>5e3)continue}else digitalElements.found[t]={};for(const[n,o]of Object.entries(c))try{const e=(h=o,i.split(`${h}`).length-1);e>0&&(digitalElements.found[t][n]=e,digitalElements.sum[n]||(digitalElements.sum[n]=0),digitalElements.sum[n]+=e)}catch(e){}Object.keys(digitalElements.found[t]).length>0&&(document.getElementById("bitFieldDiv0").innerHTML+=`${t}.bitmap: ${p(digitalElements.found[t])}<br/>`)}var h;document.getElementById("btnDiv1").style.display="",window.currentRange>=1e3&&(document.getElementById("btnDiv0").style.display="none",document.getElementById("inputDiv0").style.display="none",document.getElementById("inputDiv1").style.display="none",document.getElementById("btnDownloadDiv0").style.display=""),document.getElementById("info0").innerHTML=""},finalizeObj=async e=>{for(const t in e)0===Object.keys(e[t]).length||void 0===e[t]?delete e[t]:e[t].sat=await getBitmapSat(Number(t));return e},downloadJson=async()=>{const e={};e.found=await finalizeObj(digitalElements.found),e.sum=digitalElements.sum;const t=JSON.stringify(e,void 0,4),n=document.createElement("a"),i=new Blob([t],{type:"text/plain"}),o=URL.createObjectURL(i);n.setAttribute("href",o),n.setAttribute("download",`bitmapDE${window.currentRange}.json`),n.click()},checkElements=async()=>{document.getElementById("btnDownloadDiv0").style.display="none";const e=document.getElementById("inputDiv0").value.replace(/[^a-z0-9]/gi,""),t=document.getElementById("inputDiv1").value;if(console.log(e,t),t.length<2&&t.length>0)return e.length<1?void(document.getElementById("info0").innerHTML="need a name for the pattern"):void(document.getElementById("info0").innerHTML="invalid pattern");window.elementalPatterns={alpha:"10000",omega:"99999",1024:"1024",1337:"1337",6942:"6942",666:"0666",420:"0420",78:"00078",9:"00009",286:"0286",bitcoin:"210000"},e&&t&&(elementalPatterns[e]=t),document.getElementById("elementsDiv0").innerHTML=`<br/><b style="color:orange">Scanning Digital Elements up to ${currentRange}.bitmap... be patient 🧡</b><br/>`,document.getElementById("bitFieldDiv0").innerHTML="",console.log("currentRange",currentRange),await checkDigitalElements(0,elementalPatterns,currentRange);let n=digitalElements.latestBlockHeight?`Current block height: <b>${digitalElements.latestBlockHeight}</b><br/>Digital Elements shift in <b>${digitalElements.nextShift}</b> blocks on Block <b>${Number(digitalElements.latestBlockHeight)+Number(digitalElements.nextShift+1)}</b><br/><br/><b style="color:orange">Total Digital Elements found in ${currentRange} Bitmaps:</b><br/>`:"";for(const[t,i]of Object.entries(elementalPatterns))try{n+=`<span style="color: white}">Element ${t} <span style="font-size: 0.85em">("${i}")</span>: <b >${digitalElements.sum[t]?digitalElements.sum[t]:0}</b></span><br/>`}catch(e){}document.getElementById("elementsDiv0").innerHTML=n};