UNPKG

openchemlib

Version:
21 lines (20 loc) 1.18 MB
var Ir=class{copyMolecule(ft){let kt=ft.getIDCodeAndCoordinates();navigator.clipboard.writeText(`${kt.idCode} ${kt.coordinates}`)}pasteMolecule(){return null}};var Tu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ee=new Uint8Array(256);for(let d=0;d<Tu.length;d++)Ee[Tu.charCodeAt(d)]=d;function hu(d){let ft=d.length*.75,kt=d.length,mt,qt=0,d1,It,D1,at;d.at(-1)==="="&&(ft--,d.at(-2)==="="&&ft--);let L1=new ArrayBuffer(ft),s1=new Uint8Array(L1);for(mt=0;mt<kt;mt+=4)d1=Ee[d.charCodeAt(mt)],It=Ee[d.charCodeAt(mt+1)],D1=Ee[d.charCodeAt(mt+2)],at=Ee[d.charCodeAt(mt+3)],s1[qt++]=d1<<2|It>>4,s1[qt++]=(It&15)<<4|D1>>2,s1[qt++]=(D1&3)<<6|at&63;return L1}function Nr(d){return d.toString(16).padStart(2,"0")}var _A=globalThis.devicePixelRatio||1;var $n=class{constructor(ft){this.ctx=ft,this.ctx.textAlign="left",this.ctx.textBaseline="top",this.currentFontSize=12,this.currentFont="12px sans-serif",this.ctx.font=this.currentFont,this.currentColor="#000000",this.currentLineWidth=1,this.canvasCache=new Map}clearRect(ft,kt,mt,qt){this.ctx.clearRect(ft,kt,mt,qt)}getBackgroundRGB(){return 16777215}getForegroundRGB(){return 0}getSelectionBackgroundRGB(){return 12310268}getLineWidth(){return this.currentLineWidth}setRGB(ft){let kt=ft>>>16&255,mt=ft>>>8&255,qt=ft>>>0&255;this.currentColor=`#${Nr(kt)}${Nr(mt)}${Nr(qt)}`,this.ctx.fillStyle=this.currentColor,this.ctx.strokeStyle=this.currentColor}setFont(ft,kt,mt){this.currentFontSize=ft,this.currentFont=`${kt?"bold":""} ${mt?"italic":""} ${ft}px sans-serif`,this.ctx.font=this.currentFont}getFontSize(){return this.currentFontSize}getBounds(ft){let kt=this.ctx.measureText(ft);return{x:kt.actualBoundingBoxLeft,y:kt.actualBoundingBoxAscent,width:kt.actualBoundingBoxRight,height:kt.actualBoundingBoxAscent}}drawString(ft,kt,mt){this.ctx.fillText(mt,ft,kt)}drawCenteredString(ft,kt,mt){this.ctx.textAlign="center",this.ctx.textBaseline="middle",this.ctx.fillText(mt,ft,kt),this.ctx.textAlign="left",this.ctx.textBaseline="top"}setLineWidth(ft){this.currentLineWidth=ft,this.ctx.lineWidth=ft}fillRectangle(ft,kt,mt,qt){this.ctx.fillRect(ft,kt,mt,qt)}fillCircle(ft,kt,mt){let qt=mt/2;this.ctx.beginPath(),this.ctx.arc(ft+qt,kt+qt,qt,0,2*Math.PI),this.ctx.fill()}drawLine(ft,kt,mt,qt){this.ctx.beginPath(),this.ctx.moveTo(ft,kt),this.ctx.lineTo(mt,qt),this.ctx.stroke()}drawPolygon(ft){this.ctx.beginPath(),this.ctx.moveTo(ft.getX(0),ft.getY(0));for(let kt=1;kt<ft.getSize();kt++)this.ctx.lineTo(ft.getX(kt),ft.getY(kt));this.ctx.stroke()}drawRectangle(ft,kt,mt,qt){this.ctx.strokeRect(ft,kt,mt,qt)}fillPolygon(ft){this.ctx.beginPath(),this.ctx.moveTo(ft.getX(0),ft.getY(0));for(let kt=1;kt<ft.getSize();kt++)this.ctx.lineTo(ft.getX(kt),ft.getY(kt));this.ctx.fill()}drawImage(ft,kt,mt,qt,d1,It,D1,at,L1){if(arguments.length!==9)throw new Error(`drawImage call with ${arguments.length} arguments unimplemented`);let s1=this.canvasCache.get(ft);if(!s1){s1=document.createElement("canvas");let m1=ft.imageData;s1.width=m1.width,s1.height=m1.height;let Q1=s1.getContext("2d");Q1.globalAlpha=0,Q1.putImageData(m1,0,0),this.canvasCache.set(ft,s1)}this.ctx.drawImage(s1,kt,mt,qt,d1,It,D1,at,L1)}isDarkBackground(){return!1}};var Gr=class{constructor(ft,kt){this.canvasElement=ft,this.changeListener=kt,this.drawContext=new $n(this.canvasElement.getContext("2d"))}getBackgroundRGB(){return 16777215}getCanvasWidth(){return this.canvasElement.width}getCanvasHeight(){return this.canvasElement.height}getDrawContext(){return this.drawContext}onChange(ft,kt){this.changeListener?.({what:ft,isUserEvent:kt})}getClipboardHandler(){return new Ir}};var u2=` /* We can customize editor styles here. */ `,M8;function cu(){if(M8)return M8;let d=new CSSStyleSheet;return d.replaceSync(u2),M8=d,d}function S8(d,ft,kt){let mt=-1;function qt(It,D1,at=0){D1.button>0||ft.fireMouseEvent(It,D1.button+1,at,Math.round(D1.offsetX*_A),Math.round(D1.offsetY*_A),D1.shiftKey,D1.ctrlKey,D1.altKey,D1.button===2)}d.addEventListener("pointerdown",It=>{mt===-1&&(mt=It.pointerId,qt(kt.MOUSE_EVENT_PRESSED,It))});function d1(It){mt===It.pointerId&&(mt=-1,qt(kt.MOUSE_EVENT_RELEASED,It))}return document.addEventListener("pointerup",d1),d.addEventListener("click",It=>{qt(kt.MOUSE_EVENT_CLICKED,It,It.detail)}),d.addEventListener("pointerenter",It=>{qt(kt.MOUSE_EVENT_ENTERED,It)}),d.addEventListener("pointerleave",It=>{qt(kt.MOUSE_EVENT_EXITED,It)}),d.addEventListener("pointermove",It=>{mt!==-1?mt===It.pointerId&&qt(kt.MOUSE_EVENT_DRAGGED,It):qt(kt.MOUSE_EVENT_MOVED,It)}),()=>{document.removeEventListener("pointerup",d1)}}function bu(d,ft,kt,mt,qt){let d1=typeof navigator<"u"&&navigator.platform==="MacIntel",It=at=>d1&&at.metaKey||!d1&&at.ctrlKey;function D1(at,L1){let s1=o2(L1,mt);s1!==null&&kt.fireKeyEvent(at,s1,L1.altKey,L1.ctrlKey,L1.shiftKey,It(L1))}return ft.addEventListener("keydown",at=>{It(at)&&at.key==="c"||It(at)&&at.key==="v"||D1(mt.KEY_EVENT_PRESSED,at)}),ft.addEventListener("keyup",at=>{D1(mt.KEY_EVENT_RELEASED,at)}),d.addEventListener("paste",at=>{let L1=at.clipboardData.getData("text"),s1=qt.fromText(L1);s1&&s1.getAllAtoms()>0&&kt.addPastedOrDropped(s1)}),()=>{}}function o2(d,ft){switch(d.key){case"Control":return ft.KEY_CTRL;case"Alt":return ft.KEY_ALT;case"Shift":return ft.KEY_SHIFT;case"Delete":case"Backspace":return ft.KEY_DELETE;case"F1":return ft.KEY_HELP;case"Escape":return ft.KEY_ESCAPE;case"Enter":return ft.KEY_ENTER;default:return d.key.length===1?d.key.codePointAt(0):null}}var Kr=class{constructor(ft){this.canvasElement=ft,this.drawContext=new $n(this.canvasElement.getContext("2d"))}setDimensions(ft,kt){this.canvasElement.width=ft,this.canvasElement.style.width=`${ft/_A}px`,this.canvasElement.height=kt,this.canvasElement.style.height=`${kt/_A}px`}getDrawContext(){return this.drawContext}getBackgroundRGB(){return 16777215}getForegroundRGB(){return 0}};var wu={"chain.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAB2UlEQVR4XmNgGJmAkYGJgQULZGXAhCygIGICQg4GdjTIARRDh5xAEQwNKYzXeK4xY1Oez3SNfz8TmoYUxq+6m9bfqLjDI4tmfhzLff9VR17FoWhwZXpkOm2v1C+79+cbD4gga8lneuhrfdv6/+ItSBpSGB+bTDos9IfzP9N/k3cX6+7wwByWz/TWR/E1w/+kO+8j4BpSGL9rz9wh+Efs14TF3heY/tu/vlF2hxtkSxzLY2/FVyz/om69jT0G8kM6QyNDM9MT41nbZX9y/J/ct1/4iU7aIYb/9q8uVx0UbmF64mV7i/1/0s0HSVM5dRgYrjB84/8U+bh80iH+34z/17Xc51ZhUGX8qpkK1GL6+krltyClVyz/c+69C57CwQsK1v+Sl9rdvgr8Z/7P9WvKxNs8fsD44ABqeWLkdYHhv9sL8e+s/xJuv4k4yajEAI6H/+6llxn+g6DUh75gSXhgugEdmXIUJB5150HSFA59oHKIBteGSyBhpv+q9wsVQaZDICdDKuNnneRjCY9exU3l5AUrh2gQelAQ/8Tgve2Tb25NjIgYBkmnMl5Sumi+hQmiGKqhgaGB57Pts4Bfek0sjkjmIxQhs8BpiZFBh0EPCLGlTnQxcGod8gAAp9es6fCW8G8AAAAASUVORK5CYII=)","eraser.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAC1UlEQVR4XnWU309SYRjHn8OYTTM3zTmjC8NFFBR10dJu27wx11VX/QNdeGebTsvua93mRbUmLhURzYgKRZRJUJLibLPpRDCZC3/b1AMc4Tw97+EAR2e8FzD4fr7v53nPOQDCDkT/s2KAKiwROOXvFP8JLnDDGHhgArzgg28wCQGYgiDMw6E+1pY2rsECLEIIIrAC1O2CV/AWzPAOLGCFQbDDJ/hC+CQktU5bXWJoMGlaVv0iPAy/GeCmeBf0QB/YYECKO6kkzAl6Z/+t+BmsSJotgmmN4lFYZcA4tfdQez+1D8Fnio+S1oHe5TAcFuJHVBNit4nGLYrHGOCBbin+ntodMEzxKMkMWy8LpfgSEUN4niC7TTBtqzYYMCG3Z9xHadgD/bC1hi+U4uw1TkhFsqs3adpngJdGHSAZB8VHYAZ4vdt+RSjED3KcvYWYWMJuFY0E+MjdQe5MZgYE7YhFL8soCJzDU1iKwdcE+HOjBoG/NNJbq5DJI40EPNiIPCLgO/Wzk4lS3D2kPyaTQe5hETZsLDfxRRQLkLuLDjJd7u8wJs/mRs22J7CR4re3Qq3xIpENPUUHG+biuqX2UVsVX41epTp9ZjINm0ttqTIEZECQboK0ztd/Ya951t+nRi2GFYgksxluSlO7BMTYLVblMVcmOOTEZ9N+i4YvkREmAySz2JaNE4CqtM5jvrZHcbbE5lmLU8NrJTEmc3drsT1VlmmXdsCbgTdSu7wKUi2zPqsaq7GWZCjeJBZnwxlAN9dRyecBtsvzH/4+DV+MNdsLT4/GJSU0jHde3T2KtMxYnA8X5tvT5cp2eehDLnVxrPPoLgWpx4Hd+8Lp/Zx7boYoe/g40eDtViIF6Se+xPX8qPl96DqECImrRMOY2fg3e1atwd16UX1cR75wEXr4VmGdxL52atbpX2HnxfTenfiJcelKr9CjvQp/IMWJ57AO62ndOKk7890/iSWBU4XaZc0AAAAASUVORK5CYII=)","fist.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAABj0lEQVR4Xu2S3yuDYRTHz7IZsfdCUrYLG4VCpJV6d0mS/A1zg79ArRArP4q5s4ulVousFCn/gX/g5WK7wkZMzIXMxjZ793XeMdn7vpM/wDn1PD1P53PO95znIfq3rwmYyU5tZPr7PJYoTjGaZ8xB1t+xZQqyP60iAEeWsThFGKpqbiE9CRECrnCHLnTAj17QbLV4E3mFXALbcOAGSXRiClnMgZLkZR/QYg0UEpDBDuxI4IHzT6OADdRiEK2gE12gBWmWE8Yj7weQIGOT650zaoiqAVtjDx2KeEWR8xZ4lUt+jEWkWJxJBYgkWa7NLy5WXWl5FilzhfoKwEAzzkwYI3DhTQUoVYpYR10FYCTPaDbJ2heQUwGfR0kFELmt6Utu9Jmz6dmFpmmR7v141w1XBiCBNFNacyKmCxT59kgHGBIQ4g7UkpRzESuwaCoQ+YZxqwGUGaUwrvvStqazLeRLj/bTZUTQB5rQfg1jjac9e8qAzFgZKbDMALpj1Kz3Z0WKjiGIfex++x6H98PgK4d/APiDpdwStyBoAAAAAElFTkSuQmCC)","hand.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAB50lEQVR4Xq2TwUsUcRzF3yy52TboHiKVLBCElb1479g5kgKPCkKs4ME6eAiiP0GELileStew6NLJq5Sihw6BG2VlECymB2PVXd10Zl7vN+OuOjNLl35fZhiY+fzee9/vb4D/tAow9fafu90BsqrvnXzNBwSTTBAZ2I3BkSbeYBMzLHNRn9/nEFHCvYZAutDHDfb5wDvanOVnoozBhkBzIUeHOQEHfO8DW0QV0xjC3VjoUh2onAC/ZPAme4giemMQo+BKoaeusCmdSa41MmYL8HxLgUKe27q/UKLzSSxcwUOMwk7VgTKX6sBz7oeA61hJHSUP8ST1raZQA7Z8hb0QkO1WE+d5lZdlx+UbTsjSR95i0bc0E7GUzfIHdziouRqFPzwU5ii4IzOP+SFiqe3i8jyP1A1bgKPyVGa5/M2S7iaDdWZ8KUwNe1Uus923FHx8ujwZPA9YGO48+CK/Ywp4un8N8SIZgG78fCTvFV1n9w+ePe6GFMzMJ7u4zuOInQDYYaKcDB3Ba63FGQWPLk8mt2MAWKv96kk0sKM2TBFfkQ4fvkx6fyHSH9NalwO0PkXPaktirt8rhRpqelblbV6IASzkmivP9NrEdE9AM/FXbCPG4v+6p+3VcZ2ql5zTZSqv+XcQ6+gKgL8a/RiIJPdySgAAAABJRU5ErkJggg==)","handPlus.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACAUlEQVR4Xq2Tz0sUcRjGn1lytW2wPUQamSAIK3vp7kk6i1LgMUGIFTqUBw9BiPsPhNAlpUtuKhpdOnVUKqlDh6CNsh+CsJQdjC13ddOZeXq+M7uTzu7SpXmZLwvzfr7P8/5Y4D89eZh48s/bhoC04nMXH/EmwThjRAp2c/B6C7vZwhRLXFP6NY4RRVxpCiTzw/zCYR94RpsP+Z4oYbQp0JbP0GFGwB6f+8A2UcF9jOFyQ+hkCJSrwDcZ7GcfUcDFBohRcKXQFyp8lc4s3zYzZgvwfEuBwgK/65xXRccrsXAGE7gBOxECJb4IgQfcjQAX8DJxEN/HVOJTTaEGbPsKvyJAuldNXOZZnpIdl485I0tveIkF31KuzlI6zU3ucFRzNQq/uS/MUeGOzNzm6zpLHa3ryzxQN2wBjsIT4JE6f7Co09RgHRlfAnPjXoXr7PQtmdSsNqn2eDJ4HLAw3rX3QX4nVaC534sA0bYCvdi6Je9lveb+mkLw2+PPiIKZ+WwPN3ioj9MyczQMsMNYKR5ZwfOnCzkVTq7KTpYDgrKCp5XuyGw9AOvViHoSmPhryaS7nCM+IhldvlRy92nYmaBLQWtdXqX1rn5X22OLI16xihhjBjA9q3CQJxoAFjJt5Xv6bBLdKmgmvsIOYrLxv+5uZ+WOtmqJi3pNLGj+54gN9ATAH0reBFwT+FQbAAAAAElFTkSuQmCC)","invisible.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACjUlEQVR4XnWTS09TURSF178wMUExvhIfiY+0Q6MThwwEHYk6MODAqHHgzD9gHDgWYhQBAUWMqY/SogSkCGJJNAiFUiyV2qqURkFa7cPvnJZiBXMH7Tl3rbXX2ntf5bWgyH+emPI8v8reAn8nj3r0Qr3qU78GNKghDWtEfk3ot2LKKq6AphTUjGYF26ObuqU7alabOvRQj/VEz6APKS23jvI/rY/6AD2ksCH0AG9Sq9r1QJ0W/hyREFbcOqQNcqiL/3FuIpozhJeot6J+H/VHegrci60lSA7t0VVtlRNqTvPAY4bQqxYL70LdxSsvd2l164B2qVHLVN4L0U2VhL4aQl9RveDdS9gl4IcBNWpRUShNUJxUT3OG0E/UTo4u4N0a1U9SHdRu3QOQIOw8N+0Yc/A2ZwgDeHfh3ZgZpbBH+zDTAPy7Jok6qU/K0Jht2k91CL5SVD9aHh1BvYHiCxYe1nV9w9h5bVcdk4DwGn3TmYg1Y9Rb8P2FQYVQbOM+qjPaDDwMguMw3j00Mst0narUDaUgBICPI5VgAhe5rUVguZBhhMaGOEzrrU6pQpfpdoqeB8k2hvoF7UB9mhxmsyD4WYIs0c/ifEKnoVxSEsptQke5rdQ5vGdRt4SYXTEf2lWq1l1s1GojlDiAgpmTLN4KHEKegw+NKvsco8oglApd0XtoOzEzhZmCuq2QJ7RRX3lqmO84xjaxGltUj/dVcJEwhuIqwVRptsZMZwL/wG2FPIHryijVVBnUNdJlS1ZKlmJEzkApr1JDj5KsyeJaQsR+fDlW8G/KCWyl1tgpziEIxczwVcnYcT6p5LpwO7gZ5jzH7mT0hmbW0+IO/UBixXX5L4RZlmpOn8u6vT7Y3P4BKLGmkBK1qvgAAAAASUVORK5CYII=)","lasso.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAADg0lEQVR4Xk2UXWxTZRjHn7XYfWhh4DKlIFLRdlucImbGr2gEwYwsAjGRXXihRlTOFrOoF0RcdWwhEVnQdgOmbgzoliEhAZJlvZwdMQg6No/U2IYOWVrK1q1d19q1Pef8fU7bsy3/nIvznv/ved/n47xEZKDivNpK8RoE6XC4J9gX7A/2hXukwxCwta1UcxhUu4PcLFHnqZnaf+/E0FhTqDpiiaqqjjSFhsbvnZja76kRdarLQRzbTSjAuozgczaHVoJYhShX1krlSmH2bSWaQz5nRsA6MJQDrHMtx0Y3y4QS7Eo0eTpG3K5rP7tdHSNNnl2JNQxtlo+NzrXAmgXEDcnWA/5ihbAtOeyKtKf3wmIvs6+2l8GS3hv51u3aliQUKwf8yVZxA2GNIvSIBCNaJmPt/jrR6KZfyL6omQdQF2tvmTTyPt2iIhDq/f1mth/1LtjCVTa9QAIN8dEl8tK8mgJBj6oF21GvEWb4+wlft08Sds+FHbPmDl2A/mOl2Ran7SQylkV0MIcdu+cI7J3utUb0aL2q1DZSlDiRvObpKdpCZymVf1dqW6/qYY1QsM8SXYULw3jcq8XLWlSghOrJpYUwXxpeDUuUZn6smNWheUx6l7uxGD8HrKXz9A2doQidJnnPoWt6VEQItm4/4aX0LSd2wLCEqMB6+otmqYt8K1LVd3+oTRA6/yXUTXe+mCHsjE048QbWw8R6EHoNAMlGbA+d/PSOAZXKZC9tKbr19m+DFZztc/E/B2/3jp//x5logyC/8oyBd9DBIjeODj4/X8hTcO4PZZ/a6RKpYfBKWb6CuTQ+i41elD5A5cLHga7jPjOvWDIDv6e/EE25WXo49N0mPmF21OR3wm/FTahMf3/dNtLoe4GPa1LeC9y4xGUxacNnvHnykfTG+IWxJzOlyhnPzHH7bUJRvgINiSuu+CE8i2Jw8NwORq/jidRDktMz4COU46twnVyEx+brwxfFQDc+weu4P0drQFHq/Z+uP73UZq7vh8FAV6oeL2OTZl4OFMCUaZw4NXDjyNTBWENylaLDwXFpH+5Tm5mku4sN1XZQFwrkR+OvyjvxpvT5kTuEHcmpDh5i/qIQ/1l5LQd4RifUOS1A1XTnRq76r5dhzRlTPBxx7vlSDstmiA0r8NGXUcLZm6jJARkGZvnJAtqtod4JmhJbT/9tiZ4bS9QsX83dGv8DIrFVpnd+f4UAAAAASUVORK5CYII=)","lassoPlus.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAADiklEQVR4XlVUbWxTVRh+12K3oYWBy9SCSAHbbXGRaGb8SoygmJFFICayH/5AIyrdYhb1BxFXHWswQRa03WVM3RzYjaEhYcZl/Tk6QhB0bN62xjV0yNJStm7tutbetvfex3N7e3XmyUnuOXme9+O8zz1EZKDyIhwVeBE28VisLzIQGYwMxPrEY7Bhh6NCYxgUuou8DLwuUD936G736GRrtC5uSSioi7dGR6fuds8dCtTzOoXlIhbbSyjBhrwt6G6LrgExlKJKfkiskksLuzVoiwbdeRs2gIlUgXWp/eTEdomwGnvSrYGuca/n2g9eT9d4a2BPej0TbZdOTiy1w1oQ8JsyHYdD5TJhZ2bME+/M7YfFWelc56yEJbc//oXXszNDKJcPhzId/CbCetnWxxOMaJ9NdoYaeaOXLpHg8HOCw0lOWrgPjcnO9lkjy9PLyzZCU2jQzOgnpgV7rNaut5GNRsnPEXzcstICQY9awX5i2ggzQoOEzzpnCXuXYq5Fc5cuTH8z5IoCnkRVooM55tq7RGDc+X5rXI+Oq3JDCyVILhTj54bPEYbPKV+CoyAhuaHjqh7WOEUGLIm1uDCGbdOFeEoxK+Hjilvz8Ng6WBK08E31og5tk+IBNg3GFBw+zlfMoHwJjrMUpzMk7Tt6TY/qOMHeGyI8l7vpxi4YtOBq0xvJR4vUQ8FV2bo7XzekCdxfhMZ57tk8YXdyxo1XsBEmhvv93ZoAJBnxcvT0B7cNqJFn++mJspuv/zJSzcb2VOr3kVv9Uz/+6U47BI/vZ+FzlkEHi9QyMfL0cilzwfnf5IPKpFeLzSOXK4s3qDb8YXLiovg2aoT3wj2ngmZ2YskP/Zr7mDepXnow+uVWVmHBatIbsddSJtTkvrpuH28JPsPKNclvhm8Ms2sxaeYz+k8/nNucujD5WL5CPhtYOOW8RSgr3kBz+rIndRRPohwsuJrBOO16NPuA6A4MBQlV+DTWKJVhy3JT7CIf7sX7eAn3qmpNUJZ969vrj7PGNRjwTiTck23C89iqkVcKSmDKt8x8N3Tj+NyRZHNmrazDkSnxIO5RhpmhO/9G0jIoByXSI6kXpN14Vfzo+G3CrsxcFzOx4iJif1YRKwXMozNssZi189xmdutXfoJVJWaZOVJs5v/18H+/rcK7nyQI3/tRrwryTLDIVkGgvRrKm6AhvePMH5bE+cl0/cpT9dX4B08ibwJFFp9KAAAAAElFTkSuQmCC)","pointingHand.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADe0lEQVR4Xq2V+yvrYRzHnWwuaaUst9mY21iyHcVySghxJJLLDy7L2Y9S4geHThx+5ISc0vCDf0AS6fj1rPxkRJ2dJjvtjNolt1y+NMY+5/N5yonZbIunvm179nyf1/N+fy5PSMgLo6OjwxAWFgaxsbHQ2NhonJiYELy0Pqj/CgoKPqSmpjoGBgZgfHwciouLna2tre+D2uSlxXK5XJ2UlMTt7e2B2WyGjIwMiImJ+fhmADy9OjMzk7PZbHB0dAT4HXp6en6+GSA5OVktk8k4u90Ox8fHTEF3d/fvNwNIpVKm4AFACgYHB//Mzc0pUZ3o1SBPgEKhgKysLFd5ebkdlekTExMLUKUU56VVVVVhQQM9AdnZ2dDe3g5bW1tQU1MDKSkpNrTtr0qlsvT3939/NSA9PR2mp6fh7u4OhoaGWG2gXdDZ2Qnx8fFWBH3CR4P1IvMFe4feqoqKir7k5OQoSQEF2Wq1siwiwMzMDLjdbhgeHoa8vDw4OztjiiIiIqCyshLq6uoA39mRSCSKZ5DQ0FAxnuQXeutG+Yb8/Hwt1gIDHB4eMsDs7Czc399TsAFPCxzHwe7uLojFYlhdXQWDwQBKpZLDfdTeVMhra2vBaDRCV1cX2zAtLQ0IcHp6yuYWFxeZRfPz89DX18cAVIgYbNje3oaTkxPAJODwsN4BLS0tTPbGxgagTBCJRECFdnt7C+fn53B9fc0UXF1dweXlJbhcLnA4HAxmsVhYvVRUVHA8Hu85IDIyUl5SUgImk4mduKmp6T+ANiXvHz+Ag+ZJEYHpkxTgHt4VCIVCCTY009TUFNzc3MDk5CTlPRwcHLCN/A2CE6C0tNQ7IDw8nI8Z8LWhoeGWFGxubkJvby+THSyAz+d7jUEIpp46ISGB0+l0zHeKh9PpDAhACimd0QUuKirKO4BSC3uOTqPRwMXFBQvig/+BWER9C+8RLjo62jcAPayhvqPX6xmAgkf++hu0huKF2cdhivsGjIyMCAsLC81jY2PMHgIEMgiwvr4OcXFxHNaCbwDZ1NbW9q2srAz29/fZ6QOB0LrR0VHAdPd/ZwgEAhF6uaPVap/EwbMOHpTRPGUbKgfsBv5vPawJXn19/WfsR04qPMoozzg8hlEirK2tMUBzc3Pg93Zubq6uurqa9aCVlZUnz/LyMvu9tLQECwsLgPVD1f/Ds8n9AyubuM4FiwqZAAAAAElFTkSuQmCC)","rect.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACc0lEQVR4Xo2UT0hUURTGf7uipMy8GbUwigx0WbiwpCgQKmgl1CYj3Plahtg/eguFUIoamNxUCEFCGlIgEhSORmQRNeVMSkhpWcSU1KSOQ9i8vvfmpiMZOB8Xzjv3fPPd8+dertPHQICX/OAVnTRTz1GOaNXL7pQvSdTG9KHwCVJMyzlMFw1UsJFC8lmtVSi7Qr4u7SUVk1KsmCkyZtJETchUmTKh3NSYk6ZBq0a276nSXtRMGc+kfMIkiRY3shQkWiZ9wjjxMN5SEAuPQ5qegBALe07a+eiMCj9lxZ0ZJ+N483A9oQf6qbWED6rITW4IcQGaGJuT/Y0f7rm1cJliS+jnLjNkAviEDXTwVbZ/2gwjobLESKgY6iiwhI5gyw/N/T2zKtljF0CN6p39SAZbCVyhTpwVLKOUM8wGmn4lEy35yGH+Jp1TKF9nrRp3mzbOMcp9m0MhtLPrvwRDr/6/mwda6cZ4ON24Hd5z1RISfGNIAdmDnWabtHtlzxLjtY1pgucM2o8rPOUhj+UZY0qDWGEJad5y0ca8mO90LLyKA+yjkirN6QWeaO0kwjvucZw8m0MwGinLzmelUi1nP3vYQrUCH3GNY5Qp+UpbpelcQjNnWcchVWRQhc2jiPWsYTl7aZRetvTBtP5VaJW7la0c5g4npFbCbk5xSzlNKPGRUKk6vYCwScIH2ax2lagH1VJ6wxdbNVUumKUFhGFNaMxiyEk4v3Jn1VmE4LluBK804W/5zdDA/+OxCtk58dzeNjcS7vYJ/v1bzGMJnm7rPDLmkzlvdph2E5/zRs13M2BS/p3OvhoLkVSBi7jE5zn/VPCy+K/GH86K+gV5WsL6AAAAAElFTkSuQmCC)","rectPlus.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACi0lEQVR4Xo2UT0hUQRzHP6c2KmrTnYoKjCAP+45FB0uKAqECT0FdMsKbr2OIUdE76EUpamHzUmoEGWmIgUnQn9UOWURp7ksJKSuLeCW1qesStq/fvB11lzr4vgzM/Ob3md+b3/xmuEYfA4Fe8ZMhOmmklmMclVYr/U6xpRg0Pn2I+yRpZsQ4Shd1lLGJCGHWSItIv0xsXTKXEp+0+AqZJqum1KCKqQpliXaqKnVK1Umrkr62VMjcoJpWvkprYAqvyUksRV7TlAYmcOP4S1EyPgEZegMgGfftjP3JHhf9kp5rz9pZ21+U44t6oZ9qA3yUjNygReSKoIEPC2H/oN19pxouUWKAfrqZJRtIAxvp4Jv09d9mGYtZ3lisBGooMkBHMKVd5QsRlSbfcxMl99tFUCX5zg1SwZSHI6qJ4q+wNHWGuSCmzqTXFEYMan7TeYlyBSi2ItymjXOMc9/sIQLt7C4AMiE36ka7K/HDlUXR1uh0qIcH9JCpd+OZ+u3wnisG8PjOCEOydr6S1hxJXhufBnjBsBlc5hkPeRS6bt2zbuUiWK1WJpThLReMz8vFk07GV3OQ/ZRTIXWqN11t7SLBO+5yglVmD0FppA0dZqWkcScH2MtmAVqsJ1zlOJZUbbnJ0kw+0MhZ1lEpGRnGCS2zVGgDa1nOPup5ahYNqnU+QrOYm9nGEe5wUqKVsofT3JRdTspZjMWictIFwBYJfIitcsClFHNYIr3hq7iapAW1VACMSoUmjUZsz/6dX6t2rvgKAN9xEvhRT0/oZaXg/7EYIFcnvvO4zUnEezSg79//LAbw5bYuKqs+q/Nqh2pX7oJ1UP1QAyqt73Tu1ShUShK8not8WbBPBy+LfjX+AjC0Avv8MQHTAAAAAElFTkSuQmCC)","zoom.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACiUlEQVR4XpVTTUgUYRh+nJWCxUsNevBiYGm7UjAnFyoI9ORKSxt4a71Ei9I10EPg0VO7hOE1ikQSofXiYv6QRX9bkTAjbbM/B2mz8id3Z2f/ZvbtndR0NYn9XuYbPuZ55n3f730efMQCZjCLOX4/xyJe4BXe4C3e4QNi0JDCBu8JRPkURxIMm8BjjOMJJvEUU8jadUn36D79Zs5X8JhSyb6AX/iBzxxfLMIMwx/gIcYwXRMTNa86Mhrp23QXOwx3sW9zNKKOaF5NzAlrnCWBFXAx43jE8PeC0b4U9KstJmh/tJh+dSlotJeEDYZ/Bea5GAtudoZDkm5jcCP1poejd+XhaG+6kc82kvRwiDpLwha+A1RX8K4OaDfCU038UTQGk/GA2qO4lDbFpfbEA4NJ0QA1UThktOeFDBPOLd+/qF9PtOZBDi30LNU91FBfgz+rvmaoIdUVmnZo4CxLQU3cYsLJ7G1HebvqC7nIhHJ6G7y7mmsNKTQtGjbyq5p3Dnzv2au31i24QK35cEhpriQAzbUp92AS1GKqI7odL5F1jM9bzV7KzoyVLvfbDhKAoYZ4wGp/NFKU8Br6scS9VrM7Fw8a56/8A271ovb0pkF9m2UPy2AWGd/k4sYdpal/7+fH4cTxvaPsGo6C3EXysWYWQafIR2cqSnFyV237CM6ADOowyM8Si+xkkCsztB2RIYZCFT2QB1mYVdwSSSza/N85nD1qDl27cyA76EQ1k6bqtESiRagrXFsdyBxQq+ySnfIhtbJ6gHX2bBprQvmAHwKH/GDBmRCDyibP4Od/HLcNZ0KcCSnkmLQsKEd4mmvfgTMhybGCb0zI4RPb1bSbUtnDUvHz4yGJ7BUWx2+5Iu7Rc33AhQAAAABJRU5ErkJggg==)"};var H8=Object.create(null),gu=3/4,zr=class{constructor(ft){this.HOTSPOT_32=ft.HOTSPOT_32,this.IMAGE_NAME_32=ft.IMAGE_NAME_32,this.cPointerCursor=ft.cPointerCursor,this.cTextCursor=ft.cTextCursor}getCursor(ft){if(H8[ft])return H8[ft];if(this.IMAGE_NAME_32[ft])return this.buildCursor(ft);switch(ft){case this.cPointerCursor:return"default";case this.cTextCursor:return"text";default:throw new Error(`Unknown cursor: ${ft}`)}}buildCursor(ft){let kt=this.IMAGE_NAME_32[ft],qt=`${wu[kt]} ${this.HOTSPOT_32[ft*2]*gu} ${this.HOTSPOT_32[ft*2+1]*gu}, default`;return H8[ft]=qt,qt}};var Jr=class{constructor(ft,kt){this.title=ft,this.rootElement=kt,this.elements=[],this.dialogElement=null}setLayout(ft,kt){this.hLayout=Bu(ft),this.vLayout=`${Bu(kt)} auto`}add(ft,kt,mt,qt,d1){this.elements.push({component:ft,x:kt,y:mt,x2:qt,y2:d1})}createTextField(ft,kt){return new O8(ft,kt)}createLabel(ft){return new E8(ft)}createComboBox(){return new x8}createCheckBox(ft){return new q8(ft)}setEventConsumer(ft){this.consumer=ft}showMessage(ft){window.alert(ft)}showDialog(ft){let kt=document.createElement("dialog"),mt=this.rootElement.getBoundingClientRect();Object.assign(kt.style,{position:"absolute",marginBlock:0,left:`${mt.left}px`,right:`${document.body.parentElement.clientWidth-mt.right}px`,top:`${this.rootElement.offsetTop+30}px`}),this.dialogElement=kt,this.rootElement.getRootNode().append(kt);let qt=document.createElement("form");qt.style.display="grid",qt.style.gridTemplateColumns=this.hLayout,qt.style.gridTemplateRows=this.vLayout,qt.addEventListener("submit",at=>{at.preventDefault(),this.consumer.fireOk(),ft()}),kt.append(qt);for(let{component:at,x:L1,y:s1,x2:m1,y2:Q1}of this.elements){let J1=document.createElement("div");m1===void 0?(J1.style.gridColumn=`${L1+1} / ${L1+2}`,J1.style.gridRow=`${s1+1} / ${s1+2}`):(J1.style.gridColumn=`${L1+1} / ${m1+2}`,J1.style.gridRow=`${s1+1} / ${Q1+2}`),J1.append(at.getElement()),qt.append(J1)}let d1=document.createElement("div");Object.assign(d1.style,{display:"flex",flexDirection:"row-reverse",gap:"15px",gridColumn:"1 / -1",gridRow:"-1"}),qt.append(d1);let It=document.createElement("button");It.type="submit",It.textContent="OK",d1.append(It);let D1=document.createElement("button");D1.type="button",D1.textContent="Cancel",D1.addEventListener("click",()=>{this.consumer.fireCancel(),ft()}),d1.append(D1),kt.showModal(),kt.addEventListener("cancel",()=>{this.consumer.fireCancel(),ft()})}disposeDialog(){this.dialogElement!==null&&(this.dialogElement.remove(),this.dialogElement=null)}},an=class{setEventHandler(ft){this.eventHandler=ft}fireEvent(ft,kt){this.eventHandler(ft,kt)}},E8=class extends an{constructor(ft){super(),this.element=document.createElement("label"),this.setText(ft)}setText(ft){this.element.textContent=ft}getElement(){return this.element}},O8=class extends an{constructor(){super(),this.element=document.createElement("input"),this.element.type="text"}setText(ft){this.element.value=ft}getText(){return this.element.value}getElement(){return this.element}},x8=class extends an{constructor(){super(),this.element=document.createElement("select"),this.element.addEventListener("change",()=>{this.fireEvent(2,this.element.selectedIndex)})}setEnabled(ft){this.element.disabled=!ft}addItem(ft){let kt=document.createElement("option");kt.textContent=ft,this.element.append(kt)}getSelectedIndex(){return this.element.selectedIndex}setSelectedIndex(ft){this.element.selectedIndex=ft}setSelectedItem(ft){let kt=this.element.options;for(let mt=0;mt<kt.length;mt++)kt[mt].textContent===ft&&(this.element.selectedIndex=mt)}getSelectedItem(){return this.element.options[this.element.selectedIndex].textContent}removeAllItems(){this.element.innerHTML=""}setEditable(){}getElement(){return this.element}},q8=class extends an{constructor(ft){super();let kt=document.createElement("label"),mt=document.createElement("input");mt.type="checkbox",mt.addEventListener("change",()=>{this.fireEvent(3,mt.checked?1:0)}),kt.append(mt),kt.append(ft),this.element=kt,this.checkBox=mt}setEnabled(ft){this.checkBox.disabled=!ft}isSelected(){return this.checkBox.checked}setSelected(ft){this.checkBox.checked=ft}getElement(){return this.element}};function Bu(d){return d.map(ft=>ft>0?`${ft}px`:"auto").join(" ")}var Oe=class{constructor(ft){this.imageData=ft,this.dataView=new DataView(ft.data.buffer)}getWidth(){return this.imageData.width}getHeight(){return this.imageData.height}getRGB(ft,kt){let mt=this.dataView.getInt32((kt*this.imageData.width+ft)*4,!1);return(mt&255)<<24|mt>>>8}setRGB(ft,kt,mt){let qt=mt>>>24&255,d1=mt<<8|qt;this.dataView.setInt32((kt*this.imageData.width+ft)*4,d1,!1)}toDataURL(){let ft=document.createElement("canvas"),kt=ft.getContext("2d");return ft.width=this.imageData.width,ft.height=this.imageData.height,kt.putImageData(this.imageData,0,0),ft.toDataURL("image/png")}};var Zr=class{constructor(ft,kt,mt){this.canvasElement=ft,this.dialogRoot=kt,this.JavaEditorArea=mt}register(ft){this.javaUiHelper=ft,this.cursorManager=new zr(this.JavaEditorArea,ft)}grabFocus(){this.canvasElement.focus({preventScroll:!0})}setCursor(ft){this.canvasElement.style.cursor=this.cursorManager.getCursor(ft)}showHelpDialog(){}createImage(ft,kt){let mt=new ImageData(ft,kt);return new Oe(mt)}createImageFromBase64(ft,kt,mt){mt=mt.replaceAll(/%\d+%/g,D1=>"A".repeat(Number(D1.slice(1,-1))));let qt=hu(mt),d1=new Uint8ClampedArray(qt),It=new ImageData(d1,ft,kt);return new Oe(It)}createDialog(ft){return new Jr(ft,this.dialogRoot)}runLater(ft){typeof requestAnimationFrame=="function"?requestAnimationFrame(ft):typeof setImmediate=="function"?setImmediate(ft):setTimeout(ft,0)}};function ku(d,ft,kt,mt,qt,d1,It,D1){let{readOnly:at=!1,initialMode:L1="molecule",initialFragment:s1=!1}=ft,m1=document.createElement("div");m1.dataset.openchemlibCanvasEditor="true",Object.assign(m1.style,{width:"100%",height:"100%",display:"flex",flexDirection:"row",alignItems:"start",backgroundColor:"white",touchAction:"none",userSelect:"none",webkitUserSelect:"none"});let Q1=m1.attachShadow({mode:"open"});Q1.adoptedStyleSheets=[cu()];let J1=null;at||(J1=document.createElement("canvas"),Q1.append(J1));let o0=document.createElement("div");Object.assign(o0.style,{width:"100%",height:"100%"}),Q1.append(o0);let $1=document.createElement("canvas");$1.tabIndex=0,Object.assign($1.style,{outline:"none"}),o0.append($1),d.append(m1);let H0=new d1(new Zr($1,o0,mt)),Ot=new mt(Q2(L1,mt),new Gr($1,kt),H0);if(s1)if(L1==="molecule"){let n1=new It(0,0);n1.setFragment(!0),Ot.setMolecule(n1)}else{let n1=D1.create();n1.setFragment(!0),Ot.setReaction(n1)}H0.setEditorArea(Ot);let HA=at?null:new qt(Ot,new Kr(J1),H0);function PA(n1){$1.style.width=`${n1.width}px`,$1.width=Math.floor(n1.width*_A),$1.style.height=`${n1.height}px`,$1.height=Math.floor(n1.height*_A),n1.width>0&&n1.height>0&&Ot.repaint()}let xe=o0.getBoundingClientRect();PA(xe);let C1=new ResizeObserver(([n1])=>{PA(n1.contentRect)});C1.observe(o0);let m0=null,Rn=null,yt=null;at||(m0=S8($1,Ot,mt),Rn=bu(o0,$1,Ot,mt,It),yt=S8(J1,HA,mt));function H1(){m1.remove(),C1.disconnect(),m0?.(),Rn?.(),yt?.()}return{editorArea:Ot,toolbar:HA,uiHelper:H0,destroy:H1}}function Q2(d,ft){switch(d){case"molecule":return 0;case"reaction":return ft.MODE_REACTION|ft.MODE_MULTIPLE_FRAGMENTS;default:throw new Error(`Invalid initial mode: ${d}`)}}function du(d,ft,kt,mt,qt){class d1{#t;#A;#r;#e;#f;#P;constructor(D1,at={}){let{editorArea:L1,toolbar:s1,uiHelper:m1,destroy:Q1}=ku(D1,at,J1=>this.#i(J1),d,ft,kt,mt,qt);this.#t=L1,this.#A=s1,this.#r=m1,this.#e=null,this.#f={[d.EDITOR_EVENT_MOLECULE_CHANGED]:"molecule",[d.EDITOR_EVENT_SELECTION_CHANGED]:"selection",[d.EDITOR_EVENT_HIGHLIGHT_ATOM_CHANGED]:"highlight-atom",[d.EDITOR_EVENT_HIGHLIGHT_BOND_CHANGED]:"highlight-bond"},this.#P=Q1}getMode(){return this.#n(),this.#t.getMode()&d.MODE_REACTION!==0?"reaction":"molecule"}setMolecule(D1){this.#n(),this.#t.setMolecule(D1)}getMolecule(){return this.#n(),this.#t.getMolecule()}setReaction(D1){this.#n(),this.#t.setReaction(D1)}getReaction(){return this.#n(),this.#t.getReaction()}setOnChangeListener(D1){this.#n(),this.#e=D1}removeOnChangeListener(){this.#n(),this.#e=null}clearAll(){this.#n(),this.#t.clearAll()}destroy(){this.#n(),this.#P(),this.#t=null,this.#A=null,this.#r=null,this.#e=null,this.#P=null}get isDestroyed(){return!this.#t}moleculeChanged(){this.#n(),this.#t.moleculeChanged()}#n(){if(this.isDestroyed)throw new Error("CanvasEditor has been destroyed")}#i(D1){if(!this.#e)return;let{what:at,isUserEvent:L1}=D1;this.#e({type:this.#f[at],isUserEvent:L1})}}return d1}function mu(d,ft,kt,mt){class qt extends HTMLElement{static MODE=Object.freeze(Object.create({MOLECULE:"molecule",REACTION:"reaction"}));static observedAttributes=Object.freeze(["idcode","fragment","mode","readonly"]);#t={idcode:"",fragment:!1,mode:qt.MODE_MOLECULE,readonly:!1};get idcode(){return this.#t.idcode}set idcode(It){this.#t.idcode=String(It),this.setAttribute("idcode",this.#t.idcode)}get fragment(){return this.#t.fragment}set fragment(It){this.#t.fragment=!!It,this.#t.fragment?this.setAttribute("fragment",""):this.removeAttribute("fragment")}get mode(){return this.#t.mode}set mode(It){this.#t.mode=String(It),this.setAttribute("mode",this.#t.mode)}get readonly(){return this.#t.readonly}set readonly(It){this.#t.readonly=!!It,this.#t.readonly?this.setAttribute("readonly",""):this.removeAttribute("readonly")}setMolecule(It){this.fragment=It.isFragment(),this.idcode=`${It.getIDCode()} ${It.getIDCoordinates()}`,this.#A.setMolecule(It)}getMolecule(){return this.#A.getMolecule()}setReaction(It){this.fragment=It.isFragment(),this.idcode=mt.encode(It,{keepAbsoluteCoordinates:!0,mode:mt.INCLUDE_MAPPING|mt.INCLUDE_COORDS|mt.RETAIN_REACTANT_AND_PRODUCT_ORDER})??"",this.#A.setReaction(It)}getReaction(){return this.#A.getReaction()}clearAll(){this.#A.clearAll(),this.idcode=""}moleculeChanged(){this.#A.moleculeChanged()}#A;#r(){this.#A||(this.#A=new d(this,{readOnly:this.readonly,initialMode:this.mode}),this.#A.setOnChangeListener(this.#Q),requestIdleCallback(()=>this.#e()))}#e(){switch(this.mode){case qt.MODE.MOLECULE:return this.#P();case qt.MODE.REACTION:return this.#n();default:throw new Error(`Mode ${this.mode} is not supported`)}}#f(It){let D1=It.indexOf(" ");if(D1===-1)return ft.fromIDCode(It);let at=It.slice(0,D1),L1=It.slice(D1+1);return ft.fromIDCode(at,L1)}#P(){let It=this.#f(this.idcode);It.setFragment(this.fragment),this.#A.setMolecule(It)}#n(){let It=mt.decode(this.idcode,{ensureCoordinates:!0})??kt.create();It.setFragment(this.fragment),this.#A.setReaction(It)}#i=!1;#o(It){this.#i=!0;try{It()}finally{this.#i=!1}}#Q=It=>{let D1=this.idcode,at=this.fragment;this.#o(()=>{if(It.type==="molecule")switch(this.mode){case qt.MODE.MOLECULE:{let s1=this.getMolecule();this.idcode=`${s1.getIDCode()} ${s1.getIDCoordinates()}`,this.fragment=s1.isFragment();break}case qt.MODE.REACTION:{let s1=this.getReaction();this.idcode=mt.encode(s1,{keepAbsoluteCoordinates:!0,mode:mt.INCLUDE_MAPPING|mt.INCLUDE_COORDS|mt.RETAIN_REACTANT_AND_PRODUCT_ORDER}),this.fragment=s1.isFragment();break}default:throw new Error(`Unsupported mode ${this.mode}`)}});let L1=new CustomEvent("change",{detail:It,bubbles:!0});if(this.dispatchEvent(L1),It.mode==="molecule"){if(this.idcode!==D1){let s1=new CustomEvent("idcode-changed",{detail:this.idcode,bubbles:!0});this.dispatchEvent(s1)}if(this.fragment!==at){let s1=new CustomEvent("fragment-changed",{detail:this.fragment,bubbles:!0});this.dispatchEvent(s1)}}};#D(){this.#A&&(this.#A.destroy(),this.#A=void 0)}#u(){this.#D(),this.#r()}connectedCallback(){this.#t={idcode:this.getAttribute("idcode")||"",fragment:this.hasAttribute("fragment"),mode:this.getAttribute("mode")||qt.MODE.MOLECULE,readonly:this.hasAttribute("readonly")},this.#r()}disconnectedCallback(){this.#D()}adoptedCallback(){this.connectedCallback()}attributeChangedCallback(It,D1,at){if(!this.#A||this.#i)return;(()=>{switch(It){case"idcode":return this.#t.idcode=String(at),()=>this.#e();case"fragment":return this.#t.fragment=at!==null,()=>this.#e();case"mode":return this.#t.mode=String(at),()=>this.#u();case"readonly":return this.#t.readonly=at!==null,()=>this.#u();default:throw new Error("unsupported attribute change")}})()()}}return qt}function V8(d){let{GenericEditorArea:ft,GenericEditorToolbar:kt,GenericUIHelper:mt,Molecule:qt,Reaction:d1,ReactionEncoder:It}=d,D1=du(ft,kt,mt,qt,d1);function at(){let L1=customElements.get("openchemlib-editor");if(L1)return L1;let s1=mu(D1,qt,d1,It);customElements.define("openchemlib-editor",s1);let m1=document.createElement("style");return m1.id="openchemlib-editor-default-style",m1.innerHTML=` /* dynamicaly added from openchemlib registerCustomElement with low priority */ openchemlib-editor:defined { display: block; height: 400px; width: 600px; } `,document.head.prepend(m1),s1}d.CanvasEditor=D1,d.registerCustomElement=at,delete d.GenericEditorArea,delete d.GenericEditorToolbar,delete d.GenericUIHelper}function Fu(d){d.prototype.getNextCustomAtomLabel=function(kt){let mt=kt||"1",qt=new Set;for(let It=0;It<this.getAllAtoms();It++){let D1=this.getAtomCustomLabel(It);D1&&qt.add(D1)}let d1=0;for(;qt.has(mt)&&d1++<100;)mt=l2(mt);return mt}}function l2(d){let ft=d.match(/(\d+)/);if(ft){let mt=Number.parseInt(ft[1],10);return d.replace(/(\d+)/,(mt+1).toString())}let kt=d.match(/([a-yA-Y])([^a-zA-Z]*)$/);if(kt){let mt=kt[1],qt=String.fromCodePoint(mt.codePointAt(0)+1);return qt==="Z"||qt==="z"?"1":d.replace(/([a-yA-Y])([^a-zA-Z]*)$/,`${qt}$2`)}return"1"}function Yr(d,ft){switch(ft){case"superscript":for(let kt=0;kt<d.getAllAtoms();kt++){let mt=d.getAtomCustomLabel(kt);mt&&!mt.startsWith("]")&&d.setAtomCustomLabel(kt,`]${mt}`)}break;case"normal":for(let kt=0;kt<d.getAllAtoms();kt++){let mt=d.getAtomCustomLabel(kt);mt?.startsWith("]")&&d.setAtomCustomLabel(kt,mt.slice(1))}break;case"auto":for(let kt=0;kt<d.getAllAtoms();kt++){let mt=d.getAtomCustomLabel(kt);mt&&(d.getAtomLabel(kt)==="C"?mt.startsWith("]")&&d.setAtomCustomLabel(kt,mt.slice(1)):mt.startsWith("]")||d.setAtomCustomLabel(kt,`]${mt}`))}break;case void 0:break;default:break}}function vu(d){let ft=d.fromMolfile;d.fromMolfile=function(mt,qt={}){let{customLabelPosition:d1}=qt,It=ft.call(this,mt),D1=mt.includes(`\r `)?`\r `:` `,at=mt.split(D1);if(at.length<4||!at[3].includes("V2000"))return It;let L1=at.slice(4+It.getAllAtoms()+It.getAllBonds());for(let s1=0;s1<L1.length;s1++){let m1=L1[s1];if(m1.startsWith("A ")){let Q1=Number(m1.slice(3)),J1=L1[s1+1]?.trim();s1++,!Number.isNaN(Q1)&&Q1<=It.getAllAtoms()&&J1&&!It.getAtomCustomLabel(Q1-1)&&It.setAtomCustomLabel(Q1-1,J1)}if(m1.startsWith("V ")){let Q1=m1.split(" ").filter(Boolean);if(Q1.length>=3){let J1=Number(Q1[1]),o0=Q1.slice(2).join(" ");!Number.isNaN(J1)&&J1<=It.getAllAtoms()&&!It.getAtomCustomLabel(J1-1)&&It.setAtomCustomLabel(J1-1,o0)}}if(m1.startsWith("M ZZC")){let Q1=Number(m1.slice(7,10).trim()),J1=m1.slice(10).trim();Q1&&J1&&It.setAtomCustomLabel(Q1-1,J1)}}return Yr(It,d1),It}}var U2=["M STY","M SLB","M SAL","M SDT","M SDD","M SED"];function ju(d){let ft=d.prototype.toMolfile;d.prototype.toMolfile=function(mt={}){let qt=this.getCompactCopy(),{includeCustomAtomLabelsAsALines:d1=!1,includeCustomAtomLabelsAsVLines:It=!1,customLabelPosition:D1,removeCustomAtomLabels:at=!1}=mt;Yr(qt,D1);let L1=ft.call(qt);if(!d1&&!It&&!at)return L1;let s1=L1.includes(`\r `)?`\r `:` `,m1=L1.split(s1);if(at&&(m1=m1.filter(o0=>!U2.some($1=>o0.startsWith($1)))),m1.length<4||!m1[3].includes("V2000"))return L1;let Q1=[];for(let o0=0;o0<qt.getAllAtoms();o0++){let $1=qt.getAtomCustomLabel(o0);if($1){let H0=String(o0+1).padStart(3," ");d1&&Q1.push(`A ${H0}`,$1),It&&Q1.push(`V ${H0} ${$1}`)}}let J1=m1.findIndex(o0=>o0.startsWith("M END"));return J1===-1?L1:(m1.splice(J1,0,...Q1),m1.join(s1))}}function pu(d){let ft=d.prototype.toRxn,kt=d.prototype.toRxnV3;d.prototype.toRxn=function(qt={}){return Ru(this,ft,qt)},d.prototype.toRxnV3=function(qt={}){return Ru(this,kt,qt)}}function Ru(d,ft,kt){let{programName:mt="",keepIdCode:qt=!1}=kt,d1=ft.call(d,mt);return qt?d1:d1.replace(/^OCL_RXN_V1.0:.*$/m,"")}function Cu(d){let{ConformerGenerator:ft,ForceFieldMMFF94:kt,Molecule:mt,Reaction:qt}=d;ft.prototype.molecules=function*(){let L1;for(;(L1=this.getNextConformerAsMolecule())!==null;)yield L1};let d1={maxIts:4e3,gradTol:1e-4,funcTol:1e-6},It=kt.prototype._minimise;delete kt.prototype._minimise,kt.prototype.minimise=function(L1){return L1={...d1,...L1},It.call(this,L1.maxIts,L1.gradTol,L1.funcTol)},vu(mt),ju(mt),pu(qt,mt),Fu(mt);function D1(at){if(!at)return null;if(at.includes("V2000")||at.includes("V3000"))return mt.fromMolfile(at);try{return mt.fromSmiles(at)}catch{}try{return mt.fromIDCode(at)}catch{}return null}mt.fromText=function(L1){let s1=D1(L1);return s1&&s1.getAllAtoms()>0?s1:null},mt.prototype.getOCL=function(){return d}}function jn(){}function L2(d){let ft=d.document,kt={},mt={userAgent:"webkit"},qt=jn;qt.__moduleStartupDone=jn;let d1=jn,It,D1;var at="object",L1="anonymous",s1="fnStack",m1=` `,Q1={4:1,9:1,5:1,8:1},J1="Unknown",o0="boolean",$1="number",H0="string",Ot=2147483647,HA='For input string: "',PA="null",xe="__noinit__",C1={4:1,5:1,8:1},m0={4:1,19:1,33:1,27:1},Rn=" (copy)",yt={4:1,9:1,14:1,5:1,11:1,8:1,13:1},H1=65536,n1=65535,Z0=1e4,te="fromIndex: ",I8=" > toIndex: ",Xr=", toIndex: ",N8=", length: ",_r="Index: ",Wr=", Size: ",jt={15:1,4:1,5:1},fn={4:1},H={7:1,4:1,5:1},WA=16777215,Y0=65280,Dn=.30000001192092896,EA=545460846592,lA=4294967296,OA=8589934592,xA=17179869184,qA=34359738368,VA=68719476736,IA=137438953472,un=274877906944,Tt={12:1,4:1,5:1},i0=536870912,$r=2.617993878,ar=3.665191429,N1=6.283185307179586,t1=3.141592653589793,F0=1.5707963267948966,N0=16384,qe=-8355712,Z1=4096,Ae={l:0,m:0,h:1},ne={l:0,m:0,h:2},ee={l:0,m:0,h:4},X0=1920,f0=1024,mA=234881024,re=167772160,on=100663296,Qn=201326592,$A=114688,aA=4063232,Pe=3801088,pn=3538944,Cn=3014656,ie=3145728,j0=2097152,tn=393216,iA=917504,ln=1966080,Un=0xf8000000000,Ve=0xf0000000000,Ie=0xe8000000000,Ne=0xd8000000000,Ge=0xb8000000000,tP=0xe0000000000,AP=0xc0000000000,fe=8796093022208,Mn=549755813888,Ke=1649267441664,ze=3848290697216,De=8246337208320,nP=0xc8000000000,eP=9345848836096,rP=0x98000000000,FA=29360128,NA=268435456,U0=8192,B1=2048,UA=32768,ue=-1.5707963267948966,LA=130560,oe=6291456,PP=-2.0943951023931953,c0=1.0471975511965976,Sn=.5235987755982988,l1=786432,sA=524288,yA=262144,G0=-16777216,fA=-65536,Je=-32768,iP='<DrawingObject type="',Ze="></DrawingObject>",Yt={4:1,5:1,16:1},e0={4:1,5:1},fP="unsupported atomicNo:",G8=2.8415926535897933,E1={28:1,4:1,9:1,5:1,8:1},Hn={4:1,5:1,11:1,8:1},Y={10:1,4:1,5:1},b0={4:1,9:1,5:1,8:1,30:1},r0=131072,Ye=196608,Xe={l:6,m:0,h:4},TA=1048576,hA=3221225472,DP={l:0,m:0,h:3},Ln=8388608,uP={l:0,m:0,h:120},_e={36:1,43:1,38:1},y0={4:1,9:1,5:1,11:1,8:1},K8={36:1,43:1,95:1,38:1,83:1},We={4:1,5:1,36:1,43:1,95:1,20:1,38:1,83:1,126:1},L0=17976931348623157e292,oP=-17976931348623157e292,GA={87:1,73:1,74:1,4:1,9:1,5:1,8:1},p1="??",cA={58:1,4:1,9:1,5:1,8:1},bA=2013265920,v0=32505856,E0=31744,$e=122880,En={128:1,4:1,9:1,5:1,11:1,8:1},Qe=33554432,O0=67108864,ae=-131073,tr=-33554433,Ar=-33292289,QP=-3.141592653589793,W1=4194303,x0=3072,w0={46:1,4:1,5:1},lP=.7853981633974483,z8=3.061592653589793,q0=1073741824,J8=541165879296,xt={17:1,4:1,5:1,8:1},nr=281.17,er=289.19,rr=294.21,Pr="0.0000",ir="NOSEARCH_OCL_CUSTOM_LABEL",vA="M END",On="ATOMS",e1=-2147483648,le="$$$$",Ue="M V30 ",Z8="M V30 COUNTS ",Y8="M V30 MDLV30/STEREL",X8="M V30 MDLV30/STERAC",UP="M V30 END CTAB",_8=34028234663852886e22,LP={l:2,m:0,h:4},_0=4194304,sP={l:4179966,m:4063288,h:7},W8={l:4194302,m:4193343,h:127},Y1='" ',yP='stroke="',fr='stroke-width="',Dr='" />',$8='class="event" ',a8='opacity="0" />',W0=16711680,ti="' position:",Ai="'. Position:",ni=1099511627776,ei=2199023255552,ri=4398046511104,TP="', position:",Pi="Assignment of aromatic double bonds failed",Le=2147483646,ii={102:1,4:1},hP="Members of ESR groups must only be stereo centers with known configuration.",cP="Over- or under-specified stereo feature or more than one racemic type bond",bP="Ambiguous configuration at stereo center because of 2 parallel bonds",fi={114:1,88:1,26:1,4:1},ur=1e5,se=1.399999976158142,xn=3.1415927410125732,wP=1.5707963705062866,Di=.029999999329447746,ui=6.2831854820251465,oi=1.9106119871139526,Qi=2.2639999389648438,gP=2.16759991645813,li=2.0662999153137207,Ui=2.3561999797821045,Li=2.2844998836517334,si=1.9106120066311025,yi=2.094395160675049,ye=.6000000238418579,or=1.7999999523162842,BP=.05000000074505806,P0={4:1,9:1,5:1,8:1,37:1},Qr=.2617993950843811,qn=2.0943951023931953,Te=1.2000000476837158,kP=1.4299999475479126,lr=1.659999966621399,dP=1.4600000381469727,mP=1.899999976158142,Ti=1.8200000524520874,hi=2.4600000381469727,ci=2.4200000762939453,Ur=2.450000047683716,FP=2.440000057220459,bi=2.4000000953674316,vP=2.319999933242798,jP=2.2899999618530273,wi=1.8600000143051147,gi=2.5299999713897705,Bi=2.490000009536743,ki=2.4700000286102295,di=2.880000114440918,mi=2.9200000762939453,Fi=2.869999885559082,RP=2.8299999237060547,vi=2.7899999618530273,ji=2.809999942779541,Ri=2.799999952316284,pi=3.049999952316284,pP=.3199999928474426,Ci=1.3300000429153442,he=.8500000238418579,Mi=1.600000023841858,Si=1.3899999856948853,CP=1.159999966621399,Hi=1.1100000143051147,Ei=1.0700000524520874,Oi=1.9600000381469727,xi=1.7100000381469727,MP=1.3600000143051147,qi=1.340000033378601,Vi=1.2200000286102295,Ii=1.2400000095367432,Lr=1.2100000381469727,Ni=2.0999999046325684,SP=1.850000023841858,HP=1.6299999952316284,Gi=1.4700000286102295,Ki=1.2799999713897705,zi=1.440000057220459,Ji=1.7599999904632568,Zi=1.7300000190734863,Yi=1.7200000286102295,sr=1.6799999475479126,Xi=1.690000057220459,_i=1.6699999570846558,EP=1.649999976158142,ce=1.7000000476837158,Wi=1.6200000047683716,$i=1.3700000047683716,ai=1.2899999618530273,t9=1.4500000476837158,A9=1.5700000524520874,OP=-.5235987755982988,be=-1.0471975511965976,n9=-.7853981633974483,e9=.017453292519943295,r9=.17453292519943295,we=1e-4,sn={149:1},yn=57.29577951308232,P9=.021922173386725217,ge=1e-8,DA=2.5120960256267386,Be=1e-5,yr="MMFF94s+",i9="nonbonded cutoff",f9="dielectric constant",D9="dielectric model",u9="angle bend",o9="bond stretch",Q9="electrostatic",l9="out of plane",U9="stretch bend",L9="torsion angle",s9="van der waals",y9=.07000000000000006,T9=.1200000000000001,h9=-7.840000000000001,Tr="OCL_RXN_V1.0:",c9="$RXN V3000",b9="'$MOL' tag not found",w9="'M END' not found",g9="M V30 BEGIN REACTANT",B9=` Actelion Java MolfileCreator 2.0 0 0 0 0 0 0 0 V3000 `,k9="M V30 BEGIN PRODUCT",d9=2475109711874,m9=2475109711875,F9=2887426572290,v9=2887426572291,j9=2887627898882,R9=2887627898883,p9=2887627997186,C9=3437182386178,M9=3437182386179,S9=3437383712770,H9=3437383811074,E9=3437652148226,O9=3437652377602,x9=4674132967426,q9=4674334294018,V9=4674334392322,I9=4674602729474,N9=4674602958850,G9=5086449827842,K9=5086449827848,z9=5086651154434,J9=5086651252738,Z9=5086651252743,Y9=5086919589890,X9=5086919688194,_9=5636406968322,W9=5636407066626,$9=5636675502082,a9={l:589826,m:590112,h:4},tf={l:589827,m:590112,h:4},Af={l:589826,m:590160,h:4},nf={l:589827,m:590160,h:4},ef={l:688130,m:590160,h:4},rf={l:589826,m:590224,h:4},Pf={l:589827,m:590224,h:4},ff={l:819203,m:590224,h:4},Df={l:589826,m:590368,h:4},uf={l:688130,m:590368,h:4},of={l:819202,m:590368,h:4},Qf={l:819208,m:590368,h:4},lf={l:589826,m:590416,h:4},Uf={l:589832,m:590416,h:4},Lf={l:688130,m:590416,h:4},sf={l:819202,m:590416,h:4},yf={l:589826,m:598304,h:4},Tf={l:589827,m:598304,h:4},hf={l:688130,m:598304,h:4},cf={l:1114114,m:598304,h:4},bf={l:1212418,m:598304,h:4},wf={l:589826,m:598308,h:4},gf={l:589826,m:688416,h:4},Bf={l:589826,m:688464,h:4},kf={l:589826,m:688720,h:4},df={l:688130,m:688720,h:4},mf={l:589826,m:590112,h:288},Ff={l:589826,m:590112,h:336},vf={l:589826,m:688416,h:336},jf={l:589826,m:688464,h:336},Rf={l:688130,m:688464,h:336},pf={l:589826,m:590112,h:400},Cf={l:589826,m:688416,h:400},Mf={l:589826,m:688464,h:400},Sf={l:688130,m:688464,h:400},Hf={l:589826,m:819488,h:400},Ef={l:589826,m:819536,h:400},Of={l:589826,m:819600,h:400},xf={l:688130,m:819600,h:400},qf={l:819202,m:819600,h:400},Vf={l:589831,m:688416,h:592},If={l:589831,m:688464,h:592},Nf={l:688135,m:688464,h:592},Gf={l:589831,m:819536,h:592},Kf={l:688135,m:819536,h:592},zf={l:688135,m:819600,h:592},Jf={l:589832,m:1212704,h:592},Zf={l:589832,m:1212752,h:592},Yf={l:688136,m:1212752,h:592},Xf={l:589831,m:688464,h:656},_f={l:589826,m:590112,h:8480},Wf={l:589826,m:688416,h:8480},$f={l:589826,m:688464,h:8480},af={l:688130,m:688464,h:8480},tD={l:819202,m:819600,h:8480},AD={l:688135,m:1212752,h:8480},nD={l:589832,m:1213008,h:8480},eD={l:688136,m:1213008,h:8480},rD={l:589826,m:590112,h:8484},PD={l:589826,m:590160,h:8484},iD={l:688130,m:598304,h:8484},fD=.6262000203132629,DD=-1.3825000524520874,hr=.33169999718666077,uD=-1.4915000200271606,oD=.3540000021457672,QD=.38179999589920044,lD=-.6019999980926514,UD=.07999999821186066,LD=-.7379999756813049,sD="Atom-types are 64-bit numbers describing atoms and their near surrounding.",xP="Recognized atom types and their contributions are:",yD="Druglikeness predictor not properly initialized.",TD=3.009999990463257,hD=-.17000000178813934,cD=-.1809999942779541,bD=-.2029999941587448,ke=2147483648,wD="ene-Metathesis",gD="Halogenation ring closure",BD=" (rootPairSets:",qP=-1e10,cr={204:1,4:1,9:1,5:1,8:1,30:1},br=-99999,wA="any",kD="is not in a ring",VP="Excluded atoms:",wr="exactly 1",gr="exactly 2",IP="less than 3",dD="less than 4",Br="at least 1",NP="at least 2",GP="at least 3",mD="at least 4",KP="1 or 2",FD="less than 2",vD="Allowed atoms:",Tn={138:1},jD="Atom Properties",kr=-8346432,RD="/html/editor/editor.html",pD="Structure Editor Help",dr="Dummy look and feel",Vn="Substance Graphite",In="Radiance Graphite",Nn="Radiance Night",CD=.6499999761581421,MD=.3499999940395355,zP="editorButtons.png",SD="esrButtons.png",hn=.800000011920929,JP=-1774190527,ZP=-1438646166,Gn=-1433403286,mr=-1431655766,Fr=-1448432982,jA=1073741866,cn=1073741930,YP="MMFF94",XP="MMFF94s",HD="/resources/forcefield/mmff94/94s/outofplane.csv",Kn="undefined",_P={172:1,4:1,5:1,8:1},ED=.08726646502812703,OD="overlapping",WP=.003921568859368563,p0=1048575,$0=17592186044416,bn=1e9,zn=-17592186044416,g0=5.56,D0=11.12,RA=13.34,wn=14.44,de=.3010299956639812,xD="BigInteger divide by zero",P1=4294967295,qD={l:0,m:0,h:524288},vr={32:1,115:1},$P={107:1,110:1},Jn={36:1,43:1,38:1,85:1},jr=16777619,VD={36:1,38:1,85:1},Rr="delete",pr=15525485,ID=5960464477539063e-23,aP=16777216,Cr={4:1,32:1,56:1,80:1},t8="Invalid UTF8 sequence",A8=.20000000298023224,ND=" distance:",GD={4:1,5:1,11:1,8:1,463:1},KD="gGP`@dfyjidNcGI[WQCP`<",Zn={49:1},Q={},h={},h1={},Kt={},w={},uA={},n={},s={},q={},Xt={},X={},gA={},Z={},rt={},r1={},A1={},et={},tt={},a={},M={},ht={},F1={},m={},W={},C={},x1={},Ut={},R1={},B0={},Ct={},p={},O1={},Q0={},l0={},K0={},Ft={},_t={},_={},$={},L,me,Mr,Su=-1;Q.zfb=function(){};function Hu(f,t){typeof window===at&&typeof window.$gwt===at&&(window.$gwt[f]=t)}function Eu(f,t,A,e){Q.mgb();var r=Mr;It=t,D1=A,Su=e;function P(){for(var i=0;i<r.length;i++)r[i]()}if(f)try{Au(P)()}catch(i){f(t,i)}else Au(P)()}Q.mgb=function(){Mr==null&&(Mr=[])};function Ou(){Q.mgb();for(var f=Mr,t=0;t<arguments.length;t++)f.push(arguments[t])}Q.kgb=function(){};function Yn(){}function Xn(f){return Array.isArray(f)&&f.yd===Yn?h.Uc(f):f.toString()}function V1(f,t){var A=d;if(f==="")return A;var e=f.split(".");if(!(e[0]in A)&&A.execScript&&A.execScript("var "+e[0]),t){var r=t.prototype.wd;r.e=t}for(var P;e.length&&(P=e.shift());)A=A[P]=A[P]||!e.length&&t||{};return A}Q.xgb=function(t){function A(){}return A.prototype=t||{},new A},Q.wgb=function(t){return t instanceof Array?t[0]:null};function T0(f,t,A){var e=function(){return f.apply(e,arguments)};return t.apply(e,A),e}function i1(){}function a0(f,t){for(var A in t)t[A].configurable=!0;Object.defineProperties(f,t)}function I(f,t,A){var e=me,r=e[f],P=Q.wgb(r);r&&!P?L=r:(L=Q.rgb(t),L.xd=A,!t&&(L.yd=Yn),e[f]=L);for(var i=3;i<arguments.length;++i)arguments[i].prototype=L;P&&(L.wd=P)}Q.rgb=function(t){var A=t&&t.prototype;return!A&&(A=me[t]),Q.xgb(A)},Q.qgb=function(){},d.goog=d.goog||{},d.goog.global=d.goog.global||d,me={},h.Jc=function(t,A){return j1(t)===j1(A)},h.Kc=function(t){return t.wd},h.Lc=function(t){return w.AAb(t)};function zD(){}h.Oc=function(t,A){return pA(t)?h.ckb(t,A):gn(t)?h.Uib(t,A):Fe(t)?h.Mhb(t,A):e8(t)?t.mb(A):n8(t)?h.Jc(t,A):h1.l5(t,A)},h.Qc=function(t){return pA(t)?h.gkb():gn(t)?h.Vib():Fe(t)?h.Nhb():e8(t)?t.wd:n8(t)?h.Kc(t):h1.m5(t)},h.Sc=function(t){return pA(t)?h.hkb(t):gn(t)?h.Wib(t):Fe(t)?h.Ohb(t):e8(t)?t.ob():n8(t)?h.Lc(t):h1.n5(t)},h.Uc=function(t){var A;return h.oib(h.Qc(t))+"@"+(A=w.UAb(w.TAb(h.Sc(t))),A.toString(16))},I(1,null,{},zD),L.mb=function(t){return h.Jc(this,t)},L.nb=function(){return h.Kc(this)},L.ob=function(){return h.Lc(this)},L.pb=function(){var t;return h.oib(h.Qc(this))+"@"+(t=w.UAb(w.TAb(h.Sc(this))),t.toString(16))},L.equals=function(f){return this.mb(f)},L.hashCode=function(){return this.ob()},L.toString=function(){return this.pb()},h1.l5=function(t,A){return h1.r5(t)?h1.o5(t,A):j1(t)===j1(A)},h1.m5=function(t){return t.wd||Array.isArray(t)&&v(Q.Tbb,1)||Q.Tbb},h1.n5=function(t){return h1.s5(t)?h1.p5(t):w.AAb(t)},h1.o5=function(t,A){return t.equals(A)},h1.p5=function(t){return t.hashCode()},h1.q5=function(){return[]},h1.r5=function(t){return!!t&&!!t.equals},h1.s5=function(t){return!!t&&!!t.hashCode},h1.t5=function(t){return t.toString?t.toString():"[JavaScriptObject]"},Kt.Z5=function(){Kt.Z5=i1;var t,A;A=!Kt.g6(),t=new Kt.p6,Kt.Y5=A?new Kt.h6:t},Kt.$5=function(t){Kt.Z5(),Kt.Y5.Nc(t)},Kt._5=function(t){Kt.Z5();var A;return A=Kt.Y5.Oc(t),Kt.a6(A)},Kt.a6=function(t){var A,e,r,P;for(A="$5",e="ZB",P=d.Math.min(t.length,5),r=P-1;r>=0;r--)if(h.ckb(t[r].d,A)||h.ckb(t[r].d,e)){t.length>=r+1&&w.UAb(t).splice(0,r+1);break}return t},Kt.b6=function(t){var A=/function(?:\s+([\w$]+))?\s*\(/,e=A.exec(t);return e&&e[1]||L1},Kt.c6=function(t){return Kt.Z5(),t&&t[s1]?t[s1]:[]},Kt.d6=function(t){return Kt.Z5(),t.name||(t.name=Kt.b6(t.toString()))},Kt.e6=function(t){return Kt.Z5(),parseInt(t)||-1},Kt.f6=function(t){Kt.Z5();var A=t.backingJsObject;if(A&&A.stack){var e=A.stack,r=A+m1;return e.substring(0,r.length)==r&&(e=e.substring(r.length)),e.split(m1)}return[]},Kt.g6=function(){return Error.stackTraceLimit>0?(d.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error},I(447,1,{}),Kt.h6=function(){},I(312,447,{},Kt.h6),L.Nc=function(t){var A={},e=[];t[s1]=e;for(var r=arguments.callee.caller;r;){var P=Kt.d6(r);e.push(P);var i=":"+P,D=A[i];if(D){var u,o;for(u=0,o=D.length;u<o;u++)if(D[u]===r)return}(D||(A[i]=[])).push(r),r=r.caller}},L.Oc=function(t){var A,e,r,P;for(r=Kt.c6(t),e=h1.z5(r),P=B(Q.Mcb,Q1,90,e,0,1),A=0;A<e;A++)P[A]=new h.Sjb(h1.y5(r,A),null,-1);return P},Kt.k6=function(t,A){var e,r,P,i,D,u,o,l,U;return l="",w.UAb(A).length==0?t.Pc(J1,L1,-1,-1):(U=h.ukb(A),h.ckb(w.UAb(U).substr(0,3),"at ")&&(U=(w.PAb(3,w.UAb(U).length+1),w.UAb(U).substr(3))),U=Kt.l6(U),D=w.UAb(U).indexOf("("),D==-1?(D=w.UAb(U).indexOf("@"),D==-1?(l=U,U=""):(l=h.ukb((w.PAb(D+1,w.UAb(U).length+1),w.UAb(U).substr(D+1))),U=h.ukb((w.OAb(0,D,w.UAb(U).length),w.UAb(U).substr(0,D))))):(e=w.UAb(U).indexOf(")",D),l=(w.OAb(D+1,e,w.UAb(U).length),w.UAb(U).substr(D+1,e-(D+1))),U=h.ukb((w.OAb(0,D,w.UAb(U).length),w.UAb(U).substr(0,D)))),D=h.jkb(U,X1(46)),D!=-1&&(U=(w.PAb(D+1,w.UAb(U).length+1),w.UAb(U).substr(D+1))),(w.UAb(U).length==0||h.ckb(U,"Anonymous function"))&&(U=L1),u=h.mkb(l,X1(58)),P=h.nkb(l,X1(58),u-1),o=-1,r=-1,i=J1,u!=-1&&P!=-1&&(i=(w.OAb(0,P,w.UAb(l).length),w.UAb(l).substr(0,P)),o=Kt.e6((w.OAb(P+1,u,w.UAb(l).length),w.UAb(l).substr(P+1,u-(P+1)))),r=Kt.e6((w.PAb(u+1,w.UAb(l).length+1),w.UAb(l).substr(u+1)))),t.Pc(i,U,o,r))},Kt.l6=function(t){return t.replace(/\[.*?\]/g,"")},I(448,447,{}),L.Nc=function(t){},L.Pc=function(t,A,e,r){return new h.Sjb(A,t+"@"+r,e<0?-1:e)},L.Oc=function(t){var A,e,r,P,i,D;if(P=Kt.f6(t),i=B(Q.Mcb,Q1,90,0,0,1),A=0,r=h1.z5(P),r==0)return i;for(D=Kt.k6(this,h1.y5(P,0)),h.ckb(D.d,L1)||(i[A++]=D),e=1;e<r;e++)i[A++]=Kt.k6(this,h1.y5(P,e));return i}