{"id":1013,"date":"2012-10-19T10:52:13","date_gmt":"2012-10-19T08:52:13","guid":{"rendered":"http:\/\/hasselba.ch\/blog\/?p=1013"},"modified":"2012-10-19T10:54:18","modified_gmt":"2012-10-19T08:54:18","slug":"quick-n-dirty-non-closable-dialog-for-extlib","status":"publish","type":"post","link":"https:\/\/hasselba.ch\/blog\/?p=1013","title":{"rendered":"Quick-n-Dirty: Non Closable Dialog for ExtLib"},"content":{"rendered":"<p>I have created a dirty hack for dialogs which prevents users to close the dialog by pressing the escape key or the close button. In my first approach\u00a0 (<a title=\"stackoverflow.com: Non closable dialogbox from Extension Library\" href=\"http:\/\/stackoverflow.com\/questions\/12920381\/non-closable-dialogbox-from-extension-library\" target=\"_blank\">StackOverflow.com<\/a>)the hack has overwritten all dialogs for the whole XPage. This version allows to enable \/ disable it per dialog.<\/p>\n<p>To use this hack you have to add the CSJS library to your XPage and call the dialog with an additional parameter &#8218;<em>nonclosable<\/em>&#8218;:<\/p>\n<pre>XSP.openDialog(\"#{id:dialogNonClosable}\", {'nonClosable': true } );<\/pre>\n<p>The hack was tested with IE 9 and FF 16, ExtLib 8.5.3.20120605-0921. Here is the CSJS library you have to attach to your XPage:<\/p>\n<pre>\/**\r\n\u00a0* ExtLib Dialog Hack to enable NonClosable Dialogs\r\n\u00a0* \r\n\u00a0* This function overrides the exsiting openDialog method of the XSP object. It\r\n\u00a0* adds a new option named 'nonclosable'\r\n\u00a0* \r\n\u00a0* To open a non closable dialog, you have to use it like this\r\n\u00a0* \r\n\u00a0* XSP.dialog('#{id:dialog}', {'nonclosable': true } );\r\n\u00a0* \r\n\u00a0* @category CSJS\r\n\u00a0* @category ExtLib\r\n\u00a0* @author Sven Hasselbach\r\n\u00a0*\/\r\n\r\nfunction injectExtLibHack() {\r\n\u00a0\u00a0 \u00a0XSP.openDialog = function xe_od(dialogId, options, params) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dojo.addOnLoad( function() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var created = false;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var dlg = dijit.byId(dialogId);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (!dlg) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var type = XSP._dialog_type;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0try {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (options['nonClosable'])\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0type = XSP._dialog_type_nonClosable;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0} catch (e) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0options = dojo.mixin( {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dojoType : type || \"extlib.dijit.Dialog\"\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}, options);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dojo.parser.instantiate( [ dojo.byId(dialogId) ], options);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dlg = dijit.byId(dialogId);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0created = true;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0} else {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (dlg.keepComponents) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dlg.show();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var onComplete = function() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dlg.show();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var axOptions = {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0params : dojo.mixin( {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$$showdialog : true,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$$created : created\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}, params),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0onComplete : onComplete,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0formId : dialogId\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dlg.attr(\"content\", \"&lt;div id='\" + dialogId + \":_content'&gt;&lt;\/div&gt;\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0XSP.partialRefreshGet(dialogId + \":_content\", axOptions);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (dojo.isIE &lt; 8) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dojo.query(\".lotusDialogBorder\").style(\"width\", \"500px\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0});\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0dojo.provide(\"extlib.dijit.OneUIDialogNonCloseableDialog\");\r\n\u00a0\u00a0 \u00a0dojo.require(\"extlib.dijit.Dialog\");\r\n\u00a0\u00a0 \u00a0dojo.declare(\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \"extlib.dijit.OneUIDialogNonCloseableDialog\",\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 extlib.dijit.Dialog,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 baseClass: \"\",\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 templateString: dojo.cache(\"extlib.dijit\", \"templates\/OneUIDialog.html\"),\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 disableCloseButton: true,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 _onKey: function(evt){\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if(this.disableCloseButton &amp;&amp;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 evt.charOrCode == dojo.keys.ESCAPE) return;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 this.inherited(arguments);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 },\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 _updateCloseButtonState: function(){\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dojo.style(this.closeButtonNode,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"display\",this.disableCloseButton ? \"none\" : \"block\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 },\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 postCreate: function(){\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 this.inherited(arguments);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 this._updateCloseButtonState();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dojo.query('form', dojo.body())[0].appendChild(this.domNode);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 },\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 _setup: function() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 this.inherited(arguments);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if (this.domNode.parentNode.nodeName.toLowerCase() == 'body')\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dojo.query('form', dojo.body())[0].appendChild(this.domNode);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0 \u00a0);\r\n\r\n\u00a0\u00a0 \u00a0\/\/ This is used by the picker dialog to grab the correct UI\r\n\u00a0\u00a0 \u00a0XSP._dialog_type_nonClosable=\"extlib.dijit.OneUIDialogNonCloseableDialog\";\r\n\r\n}\r\n\r\nXSP.addOnLoad( injectExtLibHack );<\/pre>\n<p>And here is an example XPage which demonstrates how to use the hack:<\/p>\n<pre>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;xp:view xmlns:xp=\"http:\/\/www.ibm.com\/xsp\/core\"\r\n\u00a0\u00a0 \u00a0xmlns:xe=\"http:\/\/www.ibm.com\/xsp\/coreex\"&gt;\r\n\u00a0\u00a0 \u00a0&lt;xp:this.resources&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:script src=\"\/dialogHack.js\" clientSide=\"true\"&gt;&lt;\/xp:script&gt;\r\n\u00a0\u00a0 \u00a0&lt;\/xp:this.resources&gt;\r\n\r\n\u00a0\u00a0 \u00a0&lt;xp:button value=\"Show Dialog Closable\" id=\"button1\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:eventHandler event=\"onclick\" submit=\"false\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:this.script&gt;&lt;![CDATA[\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0XSP.openDialog(\"#{id:dialogClosable}\");]]&gt;&lt;\/xp:this.script&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xp:eventHandler&gt;\r\n\u00a0\u00a0 \u00a0&lt;\/xp:button&gt;\r\n\u00a0\u00a0 \u00a0&lt;xp:button value=\"Show Dialog Non Closable\" id=\"button2\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:eventHandler event=\"onclick\" submit=\"false\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:this.script&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;![CDATA[\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0XSP.openDialog(\"#{id:dialogNonClosable}\", {'nonClosable': true } );\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0]]&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xp:this.script&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xp:eventHandler&gt;\r\n\u00a0\u00a0 \u00a0&lt;\/xp:button&gt;\r\n\r\n\u00a0\u00a0 \u00a0&lt;xe:dialog id=\"dialogClosable\" title=\"This is a closable dialog\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xe:dialogContent&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0You can close me via Escape or the close button.\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xe:dialogContent&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xe:dialogButtonBar&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:button value=\"Ok\" id=\"button3\"\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0styleClass=\"lotusFormButton\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:eventHandler event=\"onclick\" submit=\"false\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:this.script&gt;&lt;![CDATA[XSP.closeDialog('#{id:dialogClosable}')]]&gt;&lt;\/xp:this.script&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xp:eventHandler&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xp:button&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xe:dialogButtonBar&gt;\r\n\u00a0\u00a0 \u00a0&lt;\/xe:dialog&gt;\r\n\r\n\u00a0\u00a0 \u00a0&lt;xe:dialog id=\"dialogNonClosable\" title=\"This is a non-closable dialog\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xe:dialogContent&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Try to close me via Escape or the close button ;-)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xe:dialogContent&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xe:dialogButtonBar&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:button value=\"Ok\" id=\"button4\"\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0styleClass=\"lotusFormButton\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:eventHandler event=\"onclick\" submit=\"false\"&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;xp:this.script&gt;&lt;![CDATA[XSP.closeDialog('#{id:dialogNonClosable}')]]&gt;&lt;\/xp:this.script&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xp:eventHandler&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xp:button&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;\/xe:dialogButtonBar&gt;\r\n\u00a0\u00a0 \u00a0&lt;\/xe:dialog&gt;\r\n\r\n&lt;\/xp:view&gt;<\/pre>\n<p>This is the &#8222;standard&#8220; ExtLib dialog:<\/p>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfAAAADOCAIAAABOycfYAAAeJklEQVR4nO2da1sT18KG81v8CfYv5ELECy6tx+2romLdFd096MYtVktPWkur2yoKg+1bD7XWmCAHLRQRdAORUwgEEg5JCOR8JiSQ0Op++36YzGSSzEwmGpgwPvf1fIDJzJq11qy5s7ImomyRlwgAAIA8g8vYsowSDwMAAMgbeOQuY1U5feQCRQgAAICo0EJOl3uq0JkqpyU+TxEEAAAgKrSQabkztZ4QOtPm5FsBKfFAIBAIBPx+v4\/CCwAAYBWh9ev3+0knk3InXc10uoxpc3pWTqqc1LfH43G73S6Xy+VyOQEAAKw6pIHdbrfH4yEVz9Q6OVVPCJ1pc1LlBAAAgDyG1DrT6TJ6ek7b3Ov1ut1ugiD+AgAAkJcQBOF2u71eL+30uNDJ6Tk9N3e73Q6HA0IHAIC8hSAIh8PhdrvpefrCwoKMnp4Hg0Gfz+fxeBwOh9VqJQji\/wAAAOQlBEFYrVaHw+HxeHw+XzAYDIVCskgkQk\/PvV6v0+m02WwzMzMQOgAA5C0EQczMzNhsNqfTSS+8yOjVc3KxxW63z87OGo1GCB0AAPIWgiCMRuPs7KzdbicXXhJCDwaDXq\/X5XJZrVaz2Tw5OQmhAwBA3kIQxOTkpNlstlqtLpfL6\/UGg0FZOBwm11vI1XNyeq7X6wmC+C8AAIC8hCAIvV5PTtLJlfRAIJAkdLvdbrFYpqamdDodhA4AAHkLQRA6nW5qaspisdjt9rjQySeifr\/f7XbbbDaz2TwxMTEyMgKhAwBA3kIQxMjIyMTEhNlsttlsbrfb7\/cnhO5yuWw2m8lkMhgMWq0WQgcAgLyFIAitVmswGEwmk81mc7lccaGT30Ann4iaTCa9Xj88PEwQxCsAAAB5CUEQw8PDer3eZDKRz0V9Pl9C6E6nc25uzmg0jo+PazQaCB0AAPIWgiA0Gs34+LjRaJybm3M6nZxCHxoagtABACBvIQhiaGgIQgcAgDVP1kJ\/CQAAIC+B0AEAIDeEw+EXL14olUpFLlAqlb29vaFQSHgFIHQAAMgNw8PDo6Ojr169ysnfwn316tXY2NjAwIDwCkDoAACQG1Qq1cuXL3P4t1noMgWStdD\/BAAAwIZCocj5vxVSKBTCKwChAwBAblAoFDn\/4gqEDgAAIqBQKHK+jLNmhN5y7axcAO+Wnp3788\/Rh3XUhoOjmUrOamchzGla3qWq06KZy0WRq8PoQaoj6h7mpCfelCx7cvXqX3c6fqqDp+voyp4tjVf27LWWbAvM+SAE+c\/aE\/ofuaO5RrDQ\/\/hjtKE2cXtkKjmrnYUwN9RMa6h5aC4XRa4OCSHWNuSkJ96ULHty9epfmxB6LV3ZhNBrmrMtMOeDEOQ\/WclX+JuE8ApA6IKA0HMFhA4kTFbyXYkyxRR6CrTfSYOngNvjtYDQhcIm9DcCI\/YthEe+k5OTXV1dw8PDzI1zc3NdXV09PT1LS0uvUWY6a1To0cF25YeHdm+QywsKN+05dKJj2MS9M01U291y+uihLSWbyNeKN2\/9sPJCty7zjJtLQy6T9tr507u2bSmQy+Vy+Yai4r2HPrzb0h0V1mTTcMfpo4eKizaQRW8q2XL0489S2sKDyzT4beWHVHMKtmzbc6HmjikQYfYEtxAjL1oVJ6mzkzVXtg+m1zwSMN2pubB3x1aylgWFm3btPXTt9mN\/2p7RiEt549s9VG\/I5Rt27j106YbSFUmUmtyTM13KG2W7txVQ1\/GxWpdcJGf9mW0vKNy059DRH+53RP4QBFnP3ZuLyYZ\/WPntoMmV1QxdyIXjEXokYFXcuHRo784NiXH47aDJxVbZSMd9gu6ivx\/\/atDkoktmvVOAiCgUihgHnZ2dNTU1d+7cGR0dXVxcjMViFovl8ePHNTU1P\/zww\/z8PNeBKyv05RWjueYMNUzPzKa9OpK4Pfb\/dPffRfIkCgq3N\/YZ2XY+MBLfttRU+\/kGOQspx7Iym6SheO2MfU27itiL\/LSmcSlTe9UNtUWsBwuoz\/LysrqhrqSwIP3wkm3laouP7okD1PbahhH62KWw8etjpawnP3zy8mw4UXefRV2+rYRtT\/nh07U+Rn2WwsZPD27PuCejJ4uPnzia1oCif999wug69vprnv6yna3tpce+NoYzdDxrPTcU7TpIufvA6Vq6smeojWdqmrO9cGyDcHl5ednY96h0M0sBBYUll5Pavry87Ks7W57SzqLNh3+9\/W\/yZ9Y7BYgIj9CHhobu3LlTU1NTX18\/NTU1MzPT0tJC\/trS0rKwsMAjdOEVWItCZ2fPx5eCLDvH76WgQ11aWCCXyzeWlHXojEvLy2H\/XM3pw+ROJbtO8huUTejB70+QTtx4+W6HP7y0vBx+dr+GulNLHnTzFbkUHjsWv6vfvdM+sLS8PGd4dpi6z8tO1\/JraXaohdVoJPs+vkQJlFWIwfqz7\/P05Ptn6+mefHDpJLmx8tKvTn94eXlJ9\/wBdeqC739V01X6\/cfz5Nb9H1eb\/OGlsP\/B92eoKibeBRk9yU5B4faWIfr6s9TfZ+ktK9nIdfixr27xdt3Sra+O8Z4\/g9CFXzhWoQcdA++z2ZyiqL5pIL1LUygsLCR\/gNDzDYVCEeWG\/F88axjU1tY2NzfzHBKNRqUv9KLNpb+0qsPLy07jwClqtlVQ+N4oy87xe2kk8Sm1csIfJnejLS+Xb7zVpuepG5vQade8q+yZoHakLS8\/+tUtngKHG2oL0hTw8PvTwm7Upf\/97AjV6u13WtXh5WW\/Y+LiiTI5ZyUTQjR2P6Cn3KXHvlAb5paXl+cM6i8Sc3b63Yg22sYr9\/9D15O2\/K4j511UD1F7Jty9FNbsTzs7U+gFhVuu3W\/3h5fC\/rlfar6gPcfoOpb602cv2lzWOjBBvjff+fZU\/E2msFTtoN+PUmFccfmW3f9oH5hYSu26DEIXfuFYhU5XXi4v+qLmlzl\/eHk5rG79hZ6zM+YWxpO7SqiWxge83zFx6eRh2vIQer6hUCiWuFlYWDAYDFcZ\/P7778FgkOeQpaWllRU61+eCN6eJIXRL2qta1XX6lqu+9YzePvSghr5ttCw7xzeOt96kJ3UFhZuOfFT1S2OrYdYhsG6WwSZa6E2DZO3GjybmiQU7DxypufFLr8bA+cEpM4sPLp3i6QEGiVN\/Wd9Gb7WNtZVu3l11saZTraOqoaWFeF0V75571ccpd\/zTsLCYOP2C4Z+UQY5+eTMWi8VizvNHdtLdvmXngeqaG53qER\/jKB4WfH370s7O6Mmkysdiiz9S71Jb9lSaOetvrtyzhdxS82CIcTi9vaC+aZSrSqNN9fSHBuo6km0fOUJ16YHK69RmC0PoTdwNZb9w6YMwFps8vr2Y3PTP6nvMTjR03aPeZTfebB2PxWJzw4+2UVuuq\/oY+05XUJcp0zgBqw2\/0JeWlkwmE1PoHR0d\/PuTQhdegbUo9KRbke22Ydm4uKA7xvZRd8vOAzW3mh2ZDMUm9MWbX7J8eN9QtKXyfI1mWuBbxYJO3Xn7Rs2pj8rpR7UZb1TGrb6l4YWZe8cYmxDnqg7Gjz5efS9lb9r12w5WzcVisViM9VN\/QeGmf1R+3TlkTD+fzz7d2nj\/4rlPD+3ZwXy8wCb01MqzvTen1z+xhQse+dJjjPGeEed6ZbxgYULPfOHSByHjwhXf65pMLjDh+qrrj2JJ7z37h5LHZ8P3lemnA\/mAQqFY5MZkMjU1NV1h8PPPPw8MDPAcsri4KHmhJ41vgUKPxWLTL1oOcjzfK9lW3jvj5akbm9BjiwvTFz48yLrKWVBYUqfq5W3uQsutS9vYn6lmuFFZK8NBuhD5Zp1sl8D70\/kT7LWUb\/i8tom+Eo7p3k\/+vpdrXZ9N6KmVZ7tqKyX09B6mX8okdKEXLr05vBcu9VysYzhjK4C4KBSKCAdGo7G5ufnKlSvXrl1ra2t78uTJnTt3rly5cvPmTY1GEwqFuA6UvNCTxrdwocdisVhsob+zseqj8uK0G\/LIZz\/yzNJ5bsVZQ3\/txSryO3BMNpYcGeGe+D\/\/+SLtvg1FxeUffXLjturHb08KuVF5J3oppAsxsYoiZIZO4rMbbtdUk1+eS2ZH25gtlrxcI5cXbNtd9uXFmtbOBt4ll9TKZzlDjy9NZMWj61Xxc28\/ntJx9Wffi5+bV+jCL1z6IHROPKEWsLKaoe\/ptgeYu2KGnrfwCP3JkydXrlypq6t7+PBhIBCIRCL9\/f03b968cuUKQRA+n08cofM\/kH0Tmq5SQt93Zibt1WHG7TGcaTvXzgxC+qHeu\/WJqRbrSWlmBhhCH2Df0W7R\/\/bw7od7Kdly7xmNzlYd3EruVHbye3soIqQHGIy8Rz3Z+7K+lbF9ouJ\/dpR\/VHX\/t067N0T2BEOI8Z64+eVRckvJrhN66tTRaDQS0p9grKGznthrt3T+pqz6IPG5hCx2pJGg16YV3Xpqd5azM3pSfqL6XuL00Qi9hr71YNUsZwkTtPiSDxcEo54liv9MMdqetIZObZ45s48S+tWmaDSa1YVjG4Rj9MOPlMrrO5lr6GPRaHRW0xI\/k7zg8r0eRlUTlynTOAGrjUKhWOCgs7Ozrq6uoaEhFAqRW0Kh0ODgYF1d3U8\/\/eT1erkO5P\/mTApvi9Bpi5WeuOxnO+nOI+cc3HVLF\/oY9ZS1oLC0x+Zn23Nnu4GryIQpLv7cTW2MXK8sE3ajJtxXULj99uPeUDQa8lpuV\/+L9uy5H9rJnkhXqv732\/TDhH1HP+\/VW6LRqEXf+\/lRej4dl53D0L4zeQvdwYxp8hizw4u3H59g6Qp2ocvlRZ9fvWvxhiIhb0P9ObpWFRcVaSdieUOSy4u+u\/XYG4pEQt7Ht76jDt\/RqrNxdZzf1kN\/y6Vk6+HHffpIatv5hZ7FhWMdmbfP\/SOl7dFoqPfx3X2Jb7lUUB09VZH4lsu+u497Q9Go167\/jvGFHAg93+AReiAQ8Hg8Pp+PuTEYDHo8Hh6bQ+jsG2cGmqlvTxd9d6vF7g1Fo5Hpke5\/xb\/1WHDuhzaeurHN0GeqqG9Mlp34btRij0ajXvs0bdW\/HTnH6ZWo4xy17rH94L\/6puwpRmNqkaM+zTzfQy\/a\/H5f\/D2GRYjRqOd65WGuY+Vy+bEvb1KTRz9x5n26nt0j05FoNOS1t1D2LNp8bDQUiTLe3uTyou9utYaiUYv++Ue7t9Bl0vpLFjoLBYV7n5k99JVMr79N1\/Y37rYzKs9KpOHyad7z8ws9iwvHOjI95t7DvN9Dv9k6Stf1GWN5h0nie+gQep6hUChCuQZCZ9\/Yq6pl\/aeVcrn8cOV1T5QP1iUXj7m3fCv7U9aizYd7zXxFjrbeSq\/MhiJ6aX9Pt83PczhPcwoKt9\/tGKJ7gk3o0Uho+jxjTso8uvzMdXvSOsz0Z+\/tYm1jQeH2h+ppakfbhaN70ncpKop7\/nj1vfSefC+t5ILCklpVL6OV7PXnavuu9z6bDmVYhuFoe1Fl5QnyJ16hZ3HhuEbstLp5H8e\/FL2ueJ5ce5a33pKt5ZcuVMR7EELPMxQKxXyuWVmhZ\/zW5GvTePUTaph+Yk57VaO8Rt8emkzbuXa2TfZdrKrYQT3A3FBUvLfsg1sNT+cz1c3c30hrqLE\/UbvwvO0+cbEs8RW9DVt37D1\/9daUJ2ORS4NPHnxQtpv6ax67q76rn\/JYzr0fnwB+QfyWsQTbZF\/1qQ8Sf8tl665T564OTdqY3UML8ZpSk3z0fM\/jXyvKy+i\/5VJWXnG\/rS\/Mcp753+\/Vl5ft2UT9A1G2Ey2F52eIc6e2UX9c5WB5xf22vpHffiKNvrHkiHY+nNyTBwbnbfeJ6j1btxTEDzn1++BU8qk560+2fWv8UhZs2bqnmrhvm2erPgvuB0Q1+RybrOqDJ4P0mDlQeY3azfwJJfRPrjbSBwu8cFyDcGlpad4z8ytj2BRv3lFRdbEvuT8ZnX+N7KINRcXHq65NeebpO2XrgU8twhoMVocVErrwCuSR0AEAQviJeorAeO8BeYFCoQjmGggdAAmQ+HxQUPi3lvhnl\/mex7foxyeVl1Ui1xEko1AoArkGQgdAAvgun2D9i5g0JfefT4pdSZCEUqn0er3+3OH1epVKpfAKZC10\/n+lCgDIFaa+R6yPT8lZ+5krqgWxawhS6OnpGRgYIL+e+OZ4PB6NRvP8+XPhFYDQAchf3Nbx+m8\/3btjG\/VEWr6pZHNZ+anGrkHYPA8JBoP9\/f0qlUqRC1QqlVqt9vv9wisAoQMAgESA0AEAQCJkLXSuvyADAABAXCB0AACQCBA6AABIBAgdAAAkQtZCDwMAAMhLIHQAAJAIEDoAAEgECB0AACRC1kLn+a+SAAAAiAiEDgAAEgFCBwAAiQChAwCARMha6Dn\/P60BAADkBAgdAAAkQtZCHwIAAJCXZC30vwAAAOQlEDoAAEgECB0AACQChA4AABIBQgcAAIkAoQMAgESA0AEAQCJA6AAAIBEgdAAAkAgQOgAASAQIHQAAJAKEDgAAEgFCBwAAiQChAwCARIDQAQBAIkDoAAAgESB0AACQCBA6AABIBAgdAAAkAoQOAAASAUIHAACJAKEDAIBEgNABAEAiQOgAACARIHQAAJAIEDoAAEgECB0AACQChA6kj9lsFrsKqwGzmW9Jk0EKYgndXF+8bt26io6kjR0V6dvykY6KdcX1a+x+yarOHRXr0lkDF4YNc30x3fKOihw3Y+VGQrZVZTaT+TN4uxBxhp6q746KdWtkGK5FoWdFzsUnIhA6eIsQdcmFqfAknZPz93Xr1jEVnzzEuQY8fShzRDPKY7yJdFSsK67voF\/iuAVYCmTexqxV5djKtTnp9eL6+opERTsYPwsrJKVjqF8ZdWbvDZ4y2PuDvcFZdzvzPJn6h3Mfc30x3W8cNYh3wrqKetYrLuDUqzkSUqtK9xLrXcBsZn1yk7nOJWzwg7WGyGvolMZT5xfMu596QYjQ6a2c8zLG5wJSlvFXOD4fcBVI\/shRVeYJEz8nzZvYJ1HMhShm7RJ7CygkrbkVHcw6c\/UGZxGcryR+fv1uZ\/SggKZxjg1zfTGXlFKrxHbFhZx6dUcCZy9x3QVcM3S+uynT4AdrD9EfinZUrFtXXJwywJkyYSopk9CFfE5l0VC2BVK3MVdVBRWVejC1jUUA3CWzFcLcKamxAubzjK2psPUZbyFc+3B\/hBDUP6xjg2eRgXvJhWNksZ96lUcCVy9lK\/Q3uZvAGkR0oadND1LNQ4\/OzEOQd+2QKSmhQueePVE1Yq9q4kMuXWLy8gPHB92k8zFLT\/9ozV0I+12bUtf03mAtIB2OpmXX7amLD8X1ZkFN4+1wngrzC13IqVd7JHD0UtZCf4O7CaxF8kDoKTdj7oXekbS2ms0M\/XVv4+QTpy0q8XZFJqEL+Wgc3z1ljp9YBWDrDZbjM5whQ9N4up1D6BmbtnJCz3Tq1R4JEDp4LfJP6DlfcmGZm67wkkta84rrzYLumUxCF3zjdVTEH48xF7HZ1PO6Qs\/cNIHdnlXTeJdcXlvoWS4ZsTUy5yMBSy7gtcg\/ofM\/+IpvZz49ZJI8wNMFEv+4y\/J4MKPaGNWkXSXgUVjy88xkRafN0zIKXUghzIYmNS9tZpbUG+yt5u4PZm2z7vakRX7WB5vsTeMbG68vdEGnXt2RwN9LLHfB6zwUhdClRx4K\/S+OL1r9xViQJb9xxTYEWRYtmeu4zIUIYWOapUCmatmryjhj6qcPzlXTv4QIXUAhjL1YV7I4eoMJs\/qpDWFvWrbdXpG4kikLApmaxtrhPEJnvrfxXHEBp17NkUCWTH+tUMBdwHwLT347Z60YZ1ekLtKANUUeCB28XWA2CMBKAaGDVQZCB2ClgNDBKgOhA7BSQOgAACARIHQAAJAIEDoAAEgECB0AACQChA4AABIBQgcAAIkAoQMAgESA0AEAQCJA6AAAIBEgdAAAkAgQOgAASAQIHQAAJAKEDgAAEgFCBwAAiQChAwCARIDQAQBAIkDoAAAgESB0AACQCBA6AABIBAgdAAAkAoQOAAASAUIHAACJAKEDAIBEgNABAEAiQOgAACARIHQAAJAIWQtdAQAAIC\/JWuhefxBBEATJw0DoCIIgEgmEjiAIIpFA6AiCIBIJhI4gCCKRQOgIgiASCYSOIAgikUDoCIIgEgmEjiAIIpFA6AiCIBIJhI4gCCKRQOgIgiASCYSOIAgikUDoCIIgEoloQrc73Wq1WqlUrvKfl1Qqld3dPTaHS\/SuRxAEyW1EE\/rQ0NDo6OirV69W+Q\/Av3r1amxsrK+vT\/SuRxAEyW1EE7pKpXr58uX\/icHLly9VKpXoXY8gCJLbiCZ0hULxX\/FQKBSidz2CIEhuA6EjCIJIJGIK\/ZV4QOgIgkgvYgr9pXhA6AiCSC8QOoIgiEQiptD\/FA8IHUEQ6UVMof8hHhA6giDSyxoRur76HRnNO9V6+oWmAykbIHQEQd7WiCn0ZYE07pfJZO98M07+Nv7NOzKZbH8j22uCgdARBJFexBR6TBAP98tksvXfjCW2jH2zXiaT7X\/I\/qogIHQEQaSXvBc6m7EZRk+8\/HC\/jNY8hI4gyFsYMYUeFYDuAunu5K2kxi\/oEj\/pLqyPbxEEhI4giPQiptCXBDD69XqZTFbakLy1oVQmk63\/epT6qbR0ffpOfEDoCIJIL\/kudIa7WS3fUJr49ksWRofQEQSRXsQU+qIgVHGjJ7bEfa6iX5WVqtL34gVCRxBEehFT6BGBKPfJZDLZPiX528j59YzflPtkMtn68yPMnwQAoSMIIr2sBaHTFo\/DtDZD48mmh9ARBHnbIqbQw+IBoSMIIr2IKfQF8YDQEQSRXiB0BEEQiURMoYfEA0JHEER6EVPo8+IBoSMIIr1A6AiCIBKJmEIPigeEjiCI9CKm0APiAaEjCCK9QOgIgiASiWhCVyqVXq\/XLwZer1epVIre9QiCILmNaELv7u4ZGBjweDy+1cXj8Wg0mmfPnove9QiCILmNaEJ3ujx9fX0qlUqxuqhUKrVa7XC6Re96BEGQ3EY0oSMIgiC5DYSOIAgikUDoCIIgEgmEjiAIIpFA6AiCIBIJhI4gCCKRQOgIgiASCYSOIAgikUDoCIIgEgmEjiAIIpFkIXSNRgOhIwiC5G0IgtBoNJxCd7lcVqvVZDLp9frh4WEIHUEQJG9DEMTw8LBerzeZTFar1eVyxYU+Pz\/v9\/tdLpfNZjOZTAaDQavVQugIgiB5G4IgtFqtwWAwmUw2m83lcvn9\/oTQ3W63zWYzm80TExMjIyMQOoIgSN6GIIiRkZGJiQmz2Wyz2dxut9\/vl4XD4fn5+UAg4PF47Ha7xWKZmprS6XQEAACAPEan001NTVksFrvd7vF4AoFAktAdDsfs7KzRaNTr9Vqttr+\/v6enp6urq729vbW19dGjR83NzU1NTY2NjQ8BAACsMI2NjU1NTc3NzY8ePWptbW1vb+\/q6urp6env79dqtXq93mg0zs7OOhyOhNBDoVAwGPR6veRzUbPZPDk5OTY2ptFo+vr6enp6nj179vTp0\/b29ra2ttbW1t8AAACsCq2trW1tbe3t7U+fPn327FlPT09fX59GoxkbG5ucnDSbzeQTUa\/XGwwG40Kfn5\/3+Xxut9tut5OTdIPBoNPpNBpNf3+\/Wq3u7u5+\/vx5V1dXZ2fnUwAAAKtCZ2dnV1fX8+fPu7u71Wp1f3+\/RqPR6XQGg4Gcntvtdrfb7fP55ufnZZFIhHwuGggEvF6v0+m02WwzMzPT09Ok07Va7dDQUH9\/\/4sXL9RqdW9vb29vbw8AAIAVhvStWq1+8eJFf3\/\/0NCQVqslbT49PT0zM2Oz2ZxOp9frDQQCcaHTqy7kf6zscDisVqvFYjEajRMTE3q9XqfTjYyMaLVajUYzRDEIAABgxaBlq9FotFrtyMiITqfT6\/UTExNGo9FisVitVnL13OfzBYPBUCgUFzo9SScXXhwOh81ms1gsZrN5enp6cnLSYDDo9frx8fHx8fExAAAAqwJpXb1ebzAYJicnp6enzWazxWKx2WwOh4NcbCGn5wsLC7JIJEJP0umFF7fb7XQ67Xa71WqdnZ2dmZkxm80mk8loNE4DAABYRYxGo8lkMpvNMzMzs7OzVqvVbrc7nU63200vtoRCoXA4LFtcXKQn6bTTfT4frXWHw2G32202m9VqnZubm5ubmwUAALAqkNa1Wq02m81utzscDlrl9Nw8FAotLCwkhJ7i9GAwSGvd4\/G43W6Xy+VyuZwAAABWHdLAbrfb4\/HQKg8Gg0ybRyIR2eLiItPp5NoLU+uBQMDv9\/sovAAAAFYRWr9+v590Mq1ycqWFtHkkEvl\/HJvLu+pdwRgAAAAASUVORK5CYII=\" alt=\"\" \/><\/p>\n<p>And this is the &#8222;non-closable&#8220; version:<\/p>\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgUAAADjCAIAAACafPDsAAAfOUlEQVR4nO2deVsT1+LHeS19Ce1byBMQH3ikbtSLomK9bm21FqvWXm29Wqviz15ROthFbd0QULReqBe3IhGUsAQSliSEZLITQggQ4nJvfn+czMkkmZkMELPx\/TzfP2Qyc+bMmTPnM2cmYN4MAAAAMDOTl+4KAAAAyAjgAwAAADMz8AEAAAACfAAAAGBmBj4AAABAgA8AAADMzMAHAAAACPABAACAmRn4AAAAAAE+AAAAMDMDHwAAACDABwAAAGZm4AMAAACEefhgGgAAQIaROh\/E7NgPAAAgY0iuG0R9EO+AKQ4fAACAtEIH5Hg3JNkHfBNQB0xyeAEAAKQVOiBTN\/CtkDQf8GVAREQcMDExMTEx4fF4xjncAAAAUggdfj0eDxmTiRvIWL1IJcT6gMqAzgmICcjo73K5nE6nw+FwOBx2AAAAKYeMwE6n0+VyEUPwrUAmCgtTgoAP+DKgJnA6nXa73WazWa1WlmUtFovZbDabzWMAAABSAhl1LRYLy7JWq9Vms9ntdqfTSa0Qo4RF+YBODqgMiAkYAAAAGQyxAlXCwqYIsT4gkwM6M3A6nTabjWGYEAAAgIyEYRibzeZ0OuksYWFTBAEf+Hw+r9c7Pj7ucrlsNpvFYoEPAAAgY2EYxmKx2Gw2l8s1Pj7u9XrpFGGBPiCTCzo5cLvddrudZdnR0VGGYf4HAAAgI2EYZnR0lGVZu91OnxpNTU3N95FRlA\/omwPypMhqtY6Njen1evgAAAAyFoZh9Hr92NiY1WolT434bxEW5QOv1+t2ux0Oh8ViMRqNQ0ND8AEAAGQsDMMMDQ0ZjUaLxeJwONxu98IeGcX6gDwsIm8OyORAq9UyDPNfAAAAGQnDMFqtlkwRyFsE8sgoaT6wWq0mk2l4eFij0cAHAACQsTAMo9FohoeHTSaT1WpNjg\/Iy2SPx+N0OlmWNRqNg4ODvb298AEAAGQsDMP09vYODg4ajUaWZZ1Op8fjoa+UF+sDh8PBsqzBYNDpdD09PfABAABkLAzD9PT06HQ6g8HAsqzD4UiOD8hvHpCXyQaDQavVdnd3MwzzFgAAQEbCMEx3d7dWqzUYDOSVMvkthOT4wG63m81mvV4\/MDCgVqvhAwAAyFgYhlGr1QMDA3q93mw22+32d+WDrq4u+AAAADIWhmG6urrgAwAAWOqk2gdvAAAAZCTwAQAAgDdv4AMAAAAE+AAAAMCbN\/ABAAAAQqp98BoAAEBGAh8AAAB4\/TqrfXDv\/NcKGXxY\/rX59eu+2z9yCzb3JSp5XivLway+9yFXnXtqczKKBK9fvzZ\/XR5u16\/P30t3ZQh9m7mu8+PtxB1tPisvCnqxkMvh9evXi2y9pF8jIBNItQ9eJY+71bJ98OpVX2NNpPsmKnleK8vB3HWX+uBulzkZRYJXr17xRrTqu+muDCEyxNc0Ju5o81l5UdCLhVwOr169WmTrJf0aAZkAfCAAfJAlwAdygQ+AHLLYBzEI9fgI6L65CHwgF+mrYwHggspJlqYPAi8f1H+2ZV2+QqEsWF62ZW9rt0F8ZUqgp+3ewZ1bSoqXk8+KVqz87MCJNk3i60tsfuAw9Jw\/frB0VYlSoVAoFPmFReu3fHb1XltA3iEbulsP7txSVJhPil5eXLJzz5GYYxGEttXmgzXTEwbm+MG1K4pIBbZ9\/o3gEXnsQz9VHSkLV1VZsqr04HHGMDEds1rNwc10gHYYXp468BlpruXFJXuP\/Esz5pF3ZK9evXrF31yhUJasKjtR\/Vv0HiV8MP28uW4f1zikYesfvIxv2OkJw2\/VJ9avWUkaUVmwvHT9lvNX7sdXNDDtqL94imsBhUKRv3b9ljMX6x3T\/FKjhvjuRw2kmykU+WvXb7sSe2ZFfcA\/dmXB8rItO3+62Rrb1qJMt95kKtatUioUyoLlFTsPtnYb5jU\/kNOvJHwwPWGpu3hmy\/q1+ZHL5NRLg0OoqpErUaHIX7dlb2u3gXexwDSpJtU+CL4z7lYf4nr8obG4T3sj3Xfjr1f\/r1ARhbJg9Z0OvdDKm3rDy2abar7JVwgQs60gY1E+CNdO39FUWihc5D+q78wmOl5VY02h4MYy6sNrq4\/LV8QWoyxYfa8rqgk77\/9aUqCM25Uiv7D0+kM1f82ag5vIR+Xbd8RvUrhi2wubN9GRkaP7sVhoj8WrdqhM47RdD3Ej2qHqu3TbWb\/+u13lgm2zdd\/ZMX+kacdNqh2rioXWVGw9WDPOq8+sX\/+PzatlrNm7iVv+yd69cSdIuf\/UNcGVaxp76VL1w2urhY69fNd3en\/CfjFec3Br7F4Liis2\/438m3d1CLeezH4ldI0Eg8GgvuOP+B5F6nD26n+iay9wTSkLVl+69St3sUSVDFLAEvSBMGV7zngFVg73SK9NVV6gVCgUy4orWjX62WDQ7zFXcxdecek+6QFYyAfeH\/aSMWvZ2autHv9sMOh\/crOau5KKb7VJFTnr798Vvuo+\/O3Bi9lg0Kx7spW7DisO1kgPG7StxNj5z8u8yt8THJ7oBcyXB\/WBGMd\/bpWsWuI9bthzhhtSBUc0b+3X2yQqsO3rWnqib53ZRxYeOHPD7vEHg7Oap7e4XSt\/uKGiVfrz5+Nk6cY9Jw0e\/6zfc+uHQ1wVI47nD\/EiFNY2vYhfmfpg3NReUbxMbONd\/7wsfWZpPcWQ9oH8fiXoA6\/txTYhGQgde7C\/5bKIeOi5hw9SzVL0QeGK8mvNKn8waNe\/2M\/d9CkLPu4TWDncI+mSD8sPDHr8ZDUqCYVi2eUWrUTdhHxAx4IP658NcitSSUSNyPF0N9Yo4y7R2z8clGgBwbZSKBQl6z558GJwNjiredpYxo1EvBIiVVIWlJy\/+cDjn531ex7cPE9v\/8v3\/kBHWL4Pynd9q9KZg0F\/251aehO+6WCNZNWCweDsL0e2c3tc\/Vuzyh8MemyDVXsruDJoGwqMaPq2W8WxFQiadapvIzMG6lq6+bJ\/3fyLNiOVROn2447wMrpmZOif9as3ciXy7u75Pij8tvqa2eOPaS5esQI+oHsvXFHR\/GKQ3Hn8dmp\/2FEF5SqpCZZ+X2kxt3m4k\/M3VyTygfx+JegDWnl67MGgX9V8jc4YeHdOAv3K7zH\/fuYr3owBPkg1S9EHJ688pcvV9dXxnS++r2tbLtN7NmXB8u17jlxrahk022XWTcgH2p2R20Bl6abt1RevqboH\/QtvgNn6M\/slWoAPzwdrWgasdPmNU3tjSvDanpVxlTxz9S9+IX9dPcONMqWtQ+EhjvpgWfH2vsjDDe+ZPeFiZPgg0jJHL7bQpdaBlvIV645UVT9W9XOtJDCi0UMoLv1ikPd0ZdY\/+AU3VnKudRzfXkp7RcnaTSerLz5W9XkSP5MJBoNBv6dzA7etoA+2H\/mFX1DLxaPcJxvV4V3E+2D04PoSsqS6nv8gji5X1jb1BUWw9PyxKlzesprGDt4n1qNb18T1DeHnRXEI9yshHwzvXV1EFn1x6gb\/2Acf3+AkTe+c+j7mBBm994gn4IPUk2ofzL0zmng+MMV92tNwgetkHza9NAkt39QjvnBmSrNLaCJcsnZT9eW7tqkZ6bqZXjZRH3B7n7l0dFd8gfmFJQeOV6tHbPIOekqjenTlYvX+3TvoW26xFhBsq2XFOweEltMS+ppquUG\/rM06wS9kwtpGVVHb1EcWXjgQHuLWbj9u561Ml286cCGuTSIcqm4yd9NBraTxuVHyOEy8Ea1pbm5ubs58eHN4689PXo9Z+\/rJz8lHqzYfNs\/Nzc3NCT5dURYs\/+TAd4+69PH7G7eONN+5WXXsH1vK1vAffF9oiPQdOsRX3+rib2t83lgS2wciK3Ml9CR63ESPVABev93YFd0nha6O+NajJO5X8dcI78QVXX88FF3g0OecKg5f+CN65diz3HWrOqZkkDKWoA+iLhWZPpibmxt5fm+zyLvH4lU72kfdEnUT8sHczNTIic82Cz7tVRYU\/9jQLnm4U\/cun1kl\/Dp6Hj6IWTN+uWBT0HaKG84Exn2x5WI+EGwrEeJHNIkxTvCo3b8e3yvciIr8b2qaaEexjbR\/9ff1Yo\/mBX3AWxhzvCnwQezJoh8l8oHcfhW\/L8kTF7sviZUluxx4tyxBH0R1Mvk+mJubm5ub6nx05\/DuHUVxF8z2Iz9LzBEkev+YrrOm6vC6FUUxBS4r3t4rPu14+nsVHZvyC4t27P7q4pWGn0\/tk2gBOW0Vv3yg+RL3VGt+84MF+0DyNjO2XeNGNPvx7WvJEjnzA8K4VXel+iT5gmY0a1r62bm5uZkpHX3WpFAoV62rOFpV3fyokT4vEvRB1e9t\/L3Pc36w7FIzf+YmC4nJ3B8XDsedcQEfyO9X8deIffA\/a0VPnMT8IHZlzA\/SCHwwLx9QpnTq9msXI3dS0kOwnHte25iu+c61z9Zzl4nU3XHkqUjFvn\/Rp1XSLcBHvg94F7my6ven\/EJ4Y8fa\/wyGHw7J94E4kSfLR2tbeMuHKv+2Zsfuw3XNj2zjU3Nzc4Ij2qWjO8mS4tIvdDyh8sf0nUcvCe543Dr2qLnhMG\/SRoZp3jj74a02Hbe64FQgsnD97ir+nLGlNvz+QFnwcZ9oCZFx84uT1xM8hYyDN8gqz97gzy9Z\/vsDcR\/Mo18JXSMD9MVPTOV1j6\/T9wec5yJnubKqjreuu2r3+riSQYpItQ8C74ymc1yv3XBoNO7Tbl737U60PH4hHWXK9571CO107fZjNvG6jb7g+eDFaCAQ6Ofuu5UF5c9Yj9Caax\/oxIocPbQhvFbV723cwukLByokWkBOWwktt53Y+TduICupvtHi9k1P+9wtN6p53y+KtAl\/3OfvUWy5ENM\/875fdOV+uy8Q8LlNV05+SYfpYz89iGmHQ+eayMbaP6\/Q9zwbdn7TrjUFAgGTtv2bnfRuvrjur+FAIGDTPVgbvYSjm3eT3h\/g9Yei1Z8P0nMQOVOKCw3dcdsqFArlrkPVWqs7EPA9bbwo1Fzdm+JKoD1NoSg8ffk+ae37l09zB7WmWcOKN91wJee8\/MLS3+63+wIBt1VbfWhX5PtFkTMb33rz6FeCF86VY5\/Qyn9z7qrJ7QsEfO33r26IfL+okmtoz1ne94tIv4o5yzGXKkgB8IEsH4y+uMt9Lb3w9OV7VrcvEJge6W37Mvx1VeWxn1ok6hbvg0Bg9DD3VdeKvaf7TNZAIOC2jtDr4aPtx8Sve9sx7qnI6s1fdgxbp33uxtpjdBzkD1vzaivB5SOq25K\/f\/BRC2+ESoYP+K0tQOGKbR1hgwr4IBBwXTgQ+wtZfHYdvTQdXtPDHNpGm7Gtd2Q6EPC5rfe4wbdwxa4+33SAJ2+FovD05WZfIGDSPt29roSWyRs9uxO9ACi+\/kgbvzL1Aatp+Uj82HmVF6at7pzoLy8oFIoEPphHvxK8cFzG9q2Sv39wqbmPVlX76Lrg67iCgoL4kkFqgA9k+SAQCLQ31Aj+xqxCodh64IJLsm5CPgi4jO07Vgq\/oC5csbXdKFVkX\/Pl+MrkF9LXGmVtrEdi83n5IBAIdPzxi9jvJze0afklJ8UHAfHWVhasvtraxa0l6IPAtG\/keGQ2ELX1jkMXrL5p\/ppHPi4VWlOhLFh9WzXCrcie2FkWv0phYXjs\/fzkdW5NOsQXVXxcFncA+Udq7vAGdAEfSBx76cdHRnzSOggEAq5fju6O21j56YEvib4kfTCPfiV2QY2o7m4Q+f3kC3VPo2s\/ffvc1zE7yy8sPXf2n4IlgxSQah\/MvjPunPtKEe7xXxnjPlXXn6edTJ1oudjK7FBH1eHKNdy73\/zCovUVn15ufDiZqG7GzjvUB3c6I7XzT7I3maqKyJcX81euWX\/83OVhV8IiZ1\/+59anFeu4PxGz7vDp2mGX6di28P3dt8y\/JbYVayuJNnSx2trTh8tWcn+\/aGXZ4dO18fU8Hxn3z8tZLgE71HFy\/6eRv1+0snT\/sXNdQyxvFeNX3Ij21bk70VtPPrt\/o3JHBf37RRU7Km+2dPgF9jP55\/XaHRVly7lfSxba0ax\/cpQ5tn8V9weFNu+ovNnS0fvvX4kQlhVv75kkZavprxne6Rz683oNd3Lz11V8GlcBurLifD2\/o4WPfWW4pylLVpadZG6yk0LVF8DfWsdsDr8ez19XseOnulY91wN5Z1a49WT2K7FrZHZ2dtI1eoPXq4tWrKk8XNUR3Z60qh0t1\/9etob8JbGte452DLG0ZGXBlh55BwySRe74AACQAzz46ZjEjR14p8AHAIA0QKeMCkXxxaZn\/tnZ2Vm\/tuP+Zu5xU\/m+czInRCBZwAcAgDRw83SlQgrl2evP0l3HJUeqfSC\/RABADuM2v9jD+45WDFsPnHeku4ZLEPgAAJAevE7jdeZ0RdlH9Bf+ue9otHrTXbelCXwAAABgZgY+AAAAQIAPAAAAzMyk3gfTAAAAMhL4AAAAwPQ0fAAAAIAAHwAAAJieTr0P\/AAAADIS+AAAAIDfDx8AAAAgpNoHUwAAADIS+AAAAMDUFHwAAACAAB8AAACYmkq9D3wAAAAyEvgAAACAz5d6H3QBAADISFLtgxAAAICMBD4AAAAQCsEHAAAACPABAACAUAg+AAAAQIAPAAAAhELwAQAAAAJ8AAAAIBSCDwAAABDgAwAAAKEQfAAAAIAAHwAAAAiF4AMAAAAE+AAAAEAoBB8AAAAgwAcAAABCIfgAAAAAAT4AAAAQCsEHAAAACPABAACAUAg+AAAAQIAPAAAAhELwAQAAAAJ8AAAAIBSCDwAAABDgAwAAAKEQfAAAAIAAH4RCoZDRaEx3FUBKWSJnnH+YS+SQwWLIVh8Ya4veE6KydSElFdUu8lJprVx8GalmXnVurUxKY2cE\/DPeWpnkw3h3PWG+VeUfZlI6uTTZeAmAWLLVBxEW29WXrA\/mRdLHzTQCH7wbjLVFuX0RLAFyzwfG2qKi2lpyO1tUVBR1DRlri6IvKd40I7yct0Ssc9NVIivwRwHhEkTKTbQ7cnS13N15ZWvkTj1yIAkKiRlIuB95dY6ebQkNOlKDUYIDFjlc3o5aK98rqm2lH\/H3I+N0CK8T1Q2EaxBuhPcqa+my+Zwa4WN8Zz0htqq0laJPTfgn\/mHWyuvkMWdBtBISY37O3xblPDnpA15njrpY4nQQu72xtihqlBLq3bTEmNtM8k+REvjViPw7qurCt3DkyiWrExPEbiqjkKhGoD\/QOsd9LDDyi\/tA+NDEWklwR\/wD47egjEMTPWXR3SBuE36V6PYxmyfadWp7gmgrCfogFN+xE3VysaaYDxBClpObPuD9zLtaBHXAXz92BaFBUHhg5K4DsRIEt4pdKFS\/uIs39t9yCuGvFDVky5hN8JbGIjQcSRYito74BEZW+wieMoknJOLPi\/iuTLjrFPcEsVaarw9EW0ysnHkBIWQ3uekD0RFCoIfzto\/tzAJjivi9W1GtUaKEyAw9arYSR2zZUfvjlx7\/XEC8EOGLPqau\/BF\/PvMDsUMTHRbidxRTk\/DWsg5NssElKiztAzm7TnVPEGmleftAtGJJ8YFEs4MsIPd9wC0Q66mp8UFkPXqxy3rHJ8cHcm7IwqvHzDAijzDei3psMC8fyD80sR2J+yDhob07HyTadap7Qob5IMph0a+yMEHIXpaAD8iSWrHxISXPiwT3KOcWLJEPZN\/HtXJvI\/kP8IVGroX6IPGhie5I5vMisR3OZzbIr2T8rkWfFwmR4p6QHc+LMD\/IbpaCD7h7GeF+uuD3yfw90aFOxlvE6FfB0SN83P4S+kBOIcKNwPNBVN2kHzjFIXxoQq0kuqNWiZe6iQ5N6n3ywn0ga9ep7QnSrRReTJpV0geS75Px\/mCJsyR8EH0JCBXwXswVJfIYPhSzSty9tngJIo\/n+dNuof0l9oGMQoQbIVIar24xz5T4KwsQGeeFnxzELhPZUWvle+9VVnKfxT3NkH8+eKtI3ajyzrjEIChj16nsCaRk+n3QqFVaI23XGjlufseW0cll+SDBeA8dZDnZ7wM5YBab0SzwXhSkAWNtpfiADx1kO0vCB0b84mRGAx9kDVI6wGWW\/eS6D8jMGN00o4EPcgDMDXKBXPcBAAAAecAHAAAAQiH4AAAAAAE+AAAAEArBBwAAAAjwAQAAgFAIPgAAAECADwAAAIRC8AEAAAACfAAAACAUgg8AAAAQ4AMAAAChEHwAAACAAB8AAAAIheADAAAABPgAAABAKAQfAAAAIMAHAAAAQiH4AAAAAAE+AAAAEArBBwAAAAjwAQAAgFAIPgAAAECADwAAAIRC8AEAAAACfAAAACAUSr0P6gAAAGQkqfaB2+NFEARBMjDwAYIgCOJ1wwcIgiAICXyAIAiCeN3wAYIgCEICHyAIgiBeN3yAIAiCkMAHCIIgiNcNHyAIgiAk8AGCIAjidcMHCIIgCAl8gCAIgnjd8AGCIAhCAh8gCIIgXnf2+sBqd6pUqvr6+hT\/Pdj6+vq2tmeszZH2M4cgCJLcZKsPurq6+vr63r59m+L\/L+Lt27f9\/f0dHR1pP3MIgiDJTbb6oKGh4c2bN\/9LB2\/evGloaEj7mUMQBElustUHdXV1\/00fdXV1aT9zCIIgyQ18AB8gCIJ43Vntg7fpAz5AECT3ksU+eJM+4AMEQXIv8AF8gCAI4nVntQ9epw\/4AEGQ3EsW++BV+oAPEATJvSwNH2hPfpBH+eCkln7QtClmAXyAIMhSTRb7ICiTOxvz8vI++H6A\/DTw\/Qd5eXkb7wh9Jhv4AEGQ3EsW+2BOFrc35uXlvf99f2RJ\/\/fv5+Xlbbwt\/Kks4AMEQXIvue4DoQGfJ4TIx7c35lFLwAcIgizBZLEPAjLQnCBDf\/RSYoETmsi\/NCfeDy+RBXyAIEjuJYt9MCuDvu\/ez8vLK2+MXtpYnpeX9\/53fdy\/ysvfj19JCvgAQZDcS477gDf0C0qisTzyvaN5CAE+QBAk95LFPpBXsYawECJLwjpooJ\/mlTfEryUJfIAgSO4li30wLZP6DXl5eXkb6slPvcff5\/1UvyEvL+\/94738f8kAPkAQJPeyBHxAJRCGP+jzLBAtCvgAQZClliz2gT99wAcIguRestgHU+kDPkAQJPcCH8AHCIIgXndW+8CXPuADBEFyL1nsg8n0AR8gCJJ7gQ\/gAwRBEK87q33gTR\/wAYIguZcs9sFE+oAPEATJvcAH8AGCIIjXnb0+qK+vd7vdnnTgdrvr6+vTfuYQBEGSm2z1QVvbsxcvXrhcrvHU4nK51Gr1kydP037mEARBkpts9YHd4ero6GhoaKhLLQ0NDSqVymZ3pv3MIQiCJDfZ6gMEQRAkuYEPEARBEK8bPkAQBEFI4AMEQRDE64YPEARBEBL4AEEQBPG64QMEQRCEBD5AEARBvG74AEEQBCGBDxAEQRCvO5U+UKvV8AGCIEjGhmEYtVr9rnzgcDgsFovBYNBqtd3d3fABgiBIxoZhmO7ubq1WazAYLBaLw+FIjg8mJyc9Ho\/D4WBZ1mAw6HS6np4e+ABBECRjwzBMT0+PTqczGAwsyzocDo\/HMzk5mRwfOJ1OlmWNRuPg4GBvby98gCAIkrFhGKa3t3dwcNBoNLIs63Q6k+ADv98\/OTk5MTHhcrmsVqvJZBoeHtZoNPABgiBIxoZhGI1GMzw8bDKZrFary+WamJiYnJz0+\/3J8YHNZhsbG9Pr9VqtlgEAAJDBaLVavV4\/NjZms9mS5gOfz+f1et1uN3mlbDQah4aG+vv71Wp1R0fHs2fPnjx58vDhwwcPHrS0tDQ3N\/8bAABASmhubm5paXnw4MHDhw+fPHny7Nmzjo4OtVrd398\/NDRkNBrJy2S32+31en0+XxJ8MDk5OT4+7nQ6rVYrmSLodDqNRqNWqzs7O1UqVVtb29OnTx8\/fvzo0aOHAAAAUsKjR48eP3789OnTtrY2lUrV2dmpVqs1Go1OpyOTA6vV6nQ6x8fHJycnF+sD+kp5YmLC7Xbb7XaWZUdHR0dGRogSenp6urq6Ojs7nz9\/rlKp2tvb29vbnwEAAHjHkPFWpVI9f\/68s7Ozq6urp6eHyGBkZGR0dJRlWbvd7na7ycMi8jJ5gT6YiX5kRP4PepvNZrFYTCaTXq8fHBzUarUajaa3t7enp0etVndxvAQAAPDOoIOtWq3u6enp7e3VaDRarXZwcFCv15tMJovFQt4ckN88WMDkQNgHdIpAnhrZbDaWZU0mk9FoHBkZGRoa0ul0Wq12YGBgYGCgHwAAQEogo65Wq9XpdENDQyMjI0aj0WQysSxrs9nIkyI6OUiCD\/hvEchTI6fTabfbrVarxWIZGxsbHR01Go0Gg0Gv148AAABIIXq93mAwGI3G0dHRsbExi8VitVrtdrvT6aRPiujkYFE+4E8RqBLGx8epFWw2m9VqZVnWYrGYzWaz2TwGAAAgJZBR12KxsCxrtVptNhs1AZ0Z+Hy+hU0OhH0QowSv10ut4HK5nE6nw+FwOBx2AAAAKYeMwE6n0+VyURN4vd4YGSTBB3wlkAdHfCtMTEx4PJ5xDjcAAIAUQodfj8dDxmRqAvKYaMEyEPZBjBKmpqboXIHgBQAAkFbogEzmBGRasBgZiPqAKoFagYqBuAEAAEAaoQMyHaLpoL0wGUj5IMYKMW4AAACQdmKG6AWbQJYPJNwAAAAg7SzSAQv0AQAAgBwGPgAAADAzAx8AAAAg\/D\/3qB1lvY5MRwAAAABJRU5ErkJggg==\" alt=\"\" \/><\/p>\n<p>P.S.\u00a0Keep in mind that this article has been posted in the \u201cQuick-n-<strong>Dirty<\/strong>\u201d category.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have created a dirty hack for dialogs which prevents users to close the dialog by pressing the escape key or the close button. In my first approach\u00a0 (StackOverflow.com)the hack has overwritten all dialogs for the whole XPage. This version &hellip; <a href=\"https:\/\/hasselba.ch\/blog\/?p=1013\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[75,36,9,24],"tags":[33,8,7,37,91,4,32,3,85],"class_list":["post-1013","post","type-post","status-publish","format-standard","hentry","category-dojo","category-extlib","category-javascript","category-xsp","tag-8-5-3","tag-dojo","tag-domino","tag-extension-library","tag-extlib","tag-js","tag-tipp","tag-xpages","tag-xsp"],"_links":{"self":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1013"}],"version-history":[{"count":5,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1013\/revisions"}],"predecessor-version":[{"id":1018,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1013\/revisions\/1018"}],"wp:attachment":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}