# Name: smd_at_work v0.22 # Type: Admin/Public plugin # Switchable site maintenance mode # Author: Stef Dawson / Dale Chapman # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern CMS - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMjp7czo0OiJuYW1lIjtzOjExOiJzbWRfYXRfd29yayI7czo2OiJhdXRob3IiO3M6MjY6 IlN0ZWYgRGF3c29uIC8gRGFsZSBDaGFwbWFuIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJo dHRwOi8vc3RlZmRhd3Nvbi5jb20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC4yMiI7czoxMToi ZGVzY3JpcHRpb24iO3M6MzI6IlN3aXRjaGFibGUgc2l0ZSBtYWludGVuYW5jZSBtb2RlIjtz OjQ6ImNvZGUiO3M6NTE5MDoiLyoqCiAqIHNtZF9hdF93b3JrOiBhIFRleHRwYXR0ZXJuIENN UyBwbHVnaW4gZm9yIGluZm9ybWluZyB2aXNpdG9ycyBvZiBzaXRlIG1haW50ZW5hbmNlLgog KgogKiBAYXV0aG9yIFN0ZWYgRGF3c29uCiAqIEBzZWUgaHR0cDovL3N0ZWZkYXdzb24uY29t LwogKi8KaWYgKHR4cGludGVyZmFjZSA9PT0gJ2FkbWluJykgewogICAgZ2xvYmFsICR0ZXh0 cGFjazsKCiAgICBhZGRfcHJpdnMoJ3ByZWZzLnNtZF9hdF93b3JrJywgJzEnKTsKICAgIGFk ZF9wcml2cygncGx1Z2luX3ByZWZzLnNtZF9hdF93b3JrJywgJzEnKTsKICAgIHJlZ2lzdGVy X2NhbGxiYWNrKCdzbWRfYXRfd29ya193ZWxjb21lJywgJ3BsdWdpbl9saWZlY3ljbGUuc21k X2F0X3dvcmsnKTsKICAgIHJlZ2lzdGVyX2NhbGxiYWNrKCdzbWRfYXRfd29ya19iYW5uZXIn LCAnYWRtaW5fc2lkZScsICdmb290ZXInKTsKICAgIHJlZ2lzdGVyX2NhbGxiYWNrKCdzbWRf YXRfd29ya19pbnN0YWxsJywgJ3ByZWZzJywgbnVsbCwgMSk7CiAgICByZWdpc3Rlcl9jYWxs YmFjaygnc21kX2F0X3dvcmtfb3B0aW9ucycsICdwbHVnaW5fcHJlZnMuc21kX2F0X3dvcmsn LCBudWxsLCAxKTsKCiAgICAvLyBJZiBsb2FkZWQgZnJvbSBjYWNoZSwgd2UgY2FuIGFjY2Vz cyB0aGUgVGV4dHBhY2sgZnJvbSB0aGUgZ2xvYmFsIHNjb3BlCiAgICAvLyB0byBhdXRvLWlu c3RhbGwgaXQgbGF0ZXIuCiAgICBpZiAoaXNzZXQoJHBsdWdpbikpIHsKICAgICAgICAkdGV4 dHBhY2sgPSAkcGx1Z2luWyd0ZXh0cGFjayddOwogICAgfQp9IGVsc2VpZiAodHhwaW50ZXJm YWNlID09PSAncHVibGljJykgewogICAgcmVnaXN0ZXJfY2FsbGJhY2soJ3NtZF9hdF93b3Jr X2luaXQnLCAncHJldGV4dCcpOwoKICAgIGlmIChjbGFzc19leGlzdHMoJ1xUZXh0cGF0dGVy blxUYWdcUmVnaXN0cnknKSkgewogICAgICAgIFR4cDo6Z2V0KCdcVGV4dHBhdHRlcm5cVGFn XFJlZ2lzdHJ5JykKICAgICAgICAgICAgLT5yZWdpc3Rlcignc21kX2F0X3dvcmtfc3RhdHVz JykKICAgICAgICAgICAgLT5yZWdpc3Rlcignc21kX2lmX2F0X3dvcmsnKTsKICAgIH0KfQoK LyoqCiAqIEhhbmRsZXIgZm9yIHBsdWdpbiBsaWZlY3ljbGUgZXZlbnRzLgogKgogKiBAcGFy YW0gc3RyaW5nICRldnQgVGV4dHBhdHRlcm4gYWN0aW9uIGV2ZW50CiAqIEBwYXJhbSBzdHJp bmcgJHN0cCBUZXh0cGF0dGVybiBhY3Rpb24gc3RlcAogKi8KZnVuY3Rpb24gc21kX2F0X3dv cmtfd2VsY29tZSgkZXZ0LCAkc3RwKQp7CiAgICBzd2l0Y2ggKCRzdHApIHsKICAgICAgICBj YXNlICdpbnN0YWxsZWQnOgogICAgICAgIGNhc2UgJ2VuYWJsZWQnOgogICAgICAgICAgICBz bWRfYXRfd29ya19pbnN0YWxsKCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2Ug J2RlbGV0ZWQnOgogICAgICAgICAgICByZW1vdmVfcHJlZihudWxsLCAnc21kX2F0X3dvcmsn KTsKICAgICAgICAgICAgc2FmZV9kZWxldGUoJ3R4cF9sYW5nJywgIm5hbWUgTElLRSAnc21k XF9hdFxfd29yayUnIik7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQp9CgovKioKICogRGlz cGxheSBhIGJhbm5lciB0byBpbmZvcm0gYWRtaW5zIHRoYXQgdGhlIHNpdGUgaXMgaW4gbWFp bnRlbmFuY2UgbW9kZS4KICoKICogQHBhcmFtIHN0cmluZyAkZXZ0IFRleHRwYXR0ZXJuIGFj dGlvbiBldmVudAogKiBAcGFyYW0gc3RyaW5nICRzdHAgVGV4dHBhdHRlcm4gYWN0aW9uIHN0 ZXAKICovCmZ1bmN0aW9uIHNtZF9hdF93b3JrX2Jhbm5lcigkZXZ0LCAkc3RwLCAkZGF0YSkK ewogICAgZ2xvYmFsICRldmVudCwgJHN0ZXA7CgogICAgLy8gRm9yY2UgREIgbG9va3VwIG9m IHByZWYgdG8gYXZvaWQgc3RhbGUgbWVzc2FnZSBvbiBwcmVmcyBzY3JlZW4uCiAgICAkZm9y Y2UgPSAoJGV2ZW50ID09PSAncHJlZnMnICYmICgkc3RlcCA9PT0gJ3ByZWZzX3NhdmUnKSkg PyB0cnVlIDogZmFsc2U7CiAgICAkbGluayA9IHNtZF9hdF93b3JrX3ByZWZzX2xpbmsoKTsK CiAgICBpZiAoZ2V0X3ByZWYoJ3NtZF9hdF93b3JrX2VuYWJsZWQnLCBudWxsLCAkZm9yY2Up ID09ICcxJykgewogICAgICAgICRkYXRhID0gJzxwIGNsYXNzPSJ3YXJuaW5nIiBzdHlsZT0i ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4nIC4gZ1R4dCgnc21kX2F0X3dvcmtfYWRtaW5fbWVz c2FnZScsIGFycmF5KCd7dXJsfScgPT4gJGxpbmspKSAuICc8L3A+JyAubi4gJGRhdGE7CiAg ICB9CgogICAgcmV0dXJuICRkYXRhOwp9CgovKioKICogSW5zdGFsbCB0aGUgcHJlZnMgaWYg bmVjZXNzYXJ5LgogKgogKiBUaGlzIGlzIGEgc2VwYXJhdGUgZnVuY3Rpb24gc28gaXQgY2Fu IGJlIHVzZWQgYXMgYSBkaXJlY3QgY2FsbGJhY2suCiAqIFdoZW4gb3BlcmF0aW5nIHVuZGVy IGEgcGx1Z2luIGNhY2hlIGVudmlyb25tZW50LCB0aGUgaW5zdGFsbCBsaWZlY3ljbGUKICog ZXZlbnQgaXMgbmV2ZXIgZmlyZWQuIE5laXRoZXIgaXMgdGhlIFRleHRwYWNrIGluc3RhbGxh dGlvbiBwcm9jZXNzLCBzbwogKiB0aGlzIGlzIGEgZmFsbGJhY2suCiAqCiAqIFRoZSBsaWZl Y3ljbGUgY2FsbGJhY2sgcmVtYWlucyBmb3IgZGVsZXRpb24gcHVycG9zZXMgdW5kZXIgYSBy ZWd1bGFyIGluc3RhbGxhdGlvbiwKICogc2luY2UgdGhlIHBsdWdpbiBjYW5ub3QgZGV0ZWN0 IHRoaXMgaW4gYSBjYWNoZSBlbnZpcm9ubWVudC4KICoKICogQHNlZSBzbWRfYXRfd29ya193 ZWxjb21lKCkKICovCmZ1bmN0aW9uIHNtZF9hdF93b3JrX2luc3RhbGwoKQp7CiAgICBnbG9i YWwgJHRleHRwYWNrLCAkdGV4dGFycmF5OwoKICAgIGlmIChnZXRfcHJlZignc21kX2F0X3dv cmtfZW5hYmxlZCcsIG51bGwpID09PSBudWxsKSB7CiAgICAgICAgc2V0X3ByZWYoJ3NtZF9h dF93b3JrX2VuYWJsZWQnLCAwLCAnc21kX2F0X3dvcmsnLCBQUkVGX1BMVUdJTiwgJ3llc25v cmFkaW8nLCAxMCk7CiAgICB9CgogICAgaWYgKGdldF9wcmVmKCdzbWRfYXRfd29ya19tZXNz YWdlJywgbnVsbCkgPT09IG51bGwpIHsKICAgICAgICBzZXRfcHJlZignc21kX2F0X3dvcmtf bWVzc2FnZScsICdTaXRlIG1haW50ZW5hbmNlIGluIHByb2dyZXNzLiBQbGVhc2UgY2hlY2sg YmFjayBsYXRlci4nLCAnc21kX2F0X3dvcmsnLCBQUkVGX1BMVUdJTiwgJ3RleHRfaW5wdXQn LCAyMCk7CiAgICB9CgogICAgaWYgKCFpc3NldCgkdGV4dGFycmF5WydzbWRfYXRfd29yaydd KSAmJiAkdGV4dHBhY2sgIT09IG51bGwpIHsKICAgICAgICBpbnN0YWxsX3RleHRwYWNrKCR0 ZXh0cGFjayk7CgogICAgICAgIC8vIFJlZnJlc2ggdGhlIGxhbmd1YWdlIHN0cmluZ3Mgc28g dGhleSBhcmUgaW1tZWRpYXRlbHkgYXZhaWxhYmxlLgogICAgICAgICR0ZXh0YXJyYXkgPSBs b2FkX2xhbmcoTEFORyk7CiAgICB9Cn0KCi8qKgogKiBKdW1wIHRvIHRoZSBwcmVmcyBwYW5l bC4KICovCmZ1bmN0aW9uIHNtZF9hdF93b3JrX29wdGlvbnMoKQp7CiAgICAkbGluayA9IHNt ZF9hdF93b3JrX3ByZWZzX2xpbmsoKTsKCiAgICBoZWFkZXIoJ0xvY2F0aW9uOiAnIC4gJGxp bmspOwp9CgovKioKICogRmV0Y2ggdGhlIGFkbWluLXNpZGUgcHJlZnMgcGFuZWwgbGluay4K ICovCmZ1bmN0aW9uIHNtZF9hdF93b3JrX3ByZWZzX2xpbmsoKQp7CiAgICByZXR1cm4gJz9l dmVudD1wcmVmcyNwcmVmc19ncm91cF9zbWRfYXRfd29yayc7Cn0KCi8qKgogKiBQdWJsaWMt c2lkZSBpbml0aWFsaXNhdGlvbi4KICoKICogT25seSBzZXRzIHVwIHRoZSBjYWxsYmFjayBp ZjoKICogIDEuIFRoZSBwbHVnaW4ncyB0b2dnbGUgcHJlZiBpcyBvbi4KICogIDIuIFRoZSB2 aXNpdG9yIGlzIG5vdCBsb2dnZWQgaW50byB0aGUgYWRtaW4gc2lkZS4KICogIDMuIHRoZSBV UkwgcGFyYW0gdHhwY2xlYW50ZXN0IGlzIG1pc3NpbmcuCiAqCiAqIEBzZWUgc21kX2F0X3dv cmsoKQogKi8KZnVuY3Rpb24gc21kX2F0X3dvcmtfaW5pdCgpCnsKICAgIGlmIChnZXRfcHJl Zignc21kX2F0X3dvcmtfZW5hYmxlZCcpID09ICcxJykgewogICAgICAgIGlmICh0eHBpbnRl cmZhY2UgPT09ICdwdWJsaWMnIGFuZCAhZ3BzKCd0eHBjbGVhbnRlc3QnKSBhbmQgIWlzX2xv Z2dlZF9pbigpKSB7CiAgICAgICAgICAgICRfR0VUID0gJF9QT1NUID0gJF9SRVFVRVNUID0g YXJyYXkoKTsKICAgICAgICAgICAgcmVnaXN0ZXJfY2FsbGJhY2soJ3NtZF9hdF93b3JrJywg J3ByZXRleHRfZW5kJyk7CiAgICAgICAgfQogICAgfQp9CgovKioKICogVGhyb3cgYW4gSFRU UCA1MDMgZXJyb3IuCiAqLwpmdW5jdGlvbiBzbWRfYXRfd29yaygpCnsKICAgIHR4cF9kaWUo Z2V0X3ByZWYoJ3NtZF9hdF93b3JrX21lc3NhZ2UnLCAnU2l0ZSBtYWludGVuYW5jZSBpbiBw cm9ncmVzcy4gUGxlYXNlIGNoZWNrIGJhY2sgbGF0ZXIuJyksIDUwMyk7Cn0KCi8qKgogKiBQ dWJsaWMgY29uZGl0aW9uYWwgdGFnIHRvIGRldGVybWluZSBpZiBtYWludGVuYW5jZSBtb2Rl IGlzIGFjdGl2ZS4KICoKICogTm90IHNvIG11Y2ggdXNlIG9uIHRoZSBhY3R1YWwgcHVibGlj IHNpdGUsIGJ1dCBoYW5keSBmb3IgYWRtaW4tc2lkZQogKiBkYXNoYm9hcmRzLgogKi8KZnVu Y3Rpb24gc21kX2lmX2F0X3dvcmsoJGF0dHMgPSBhcnJheSgpLCAkdGhpbmcgPSBudWxsKQp7 CiAgICByZXR1cm4gcGFyc2UoRXZhbEVsc2UoJHRoaW5nLCAoZ2V0X3ByZWYoJ3NtZF9hdF93 b3JrX2VuYWJsZWQnLCBudWxsLCB0cnVlKSA9PSAnMScpKSk7Cn0KCi8qKgogKiBQdWJsaWMg dGFnIHRvIHNldCB0aGUgbWFpbnRlbmFuY2Ugc3RhdHVzLgogKgogKiBPbmx5IGxvZ2dlZC1p biB1c2VycyBtYXkgc2V0IHRoaXMuIEl0IGlzIHVwIHRvIGFwcGxpY2F0aW9uCiAqIGxvZ2lj IGlmIHRoaXMgaXMgcmVzdHJpY3RlZCBhbnkgZnVydGhlci4KICovCmZ1bmN0aW9uIHNtZF9h dF93b3JrX3N0YXR1cygkYXR0cyA9IGFycmF5KCksICR0aGluZyA9IG51bGwpCnsKICAgIGV4 dHJhY3QobEF0dHMoYXJyYXkoCiAgICAgICAgJ3N0YXR1cycgPT4gbnVsbCwKICAgICksICRh dHRzKSk7CgogICAgLy8gTnVsbCBzdGF0dXMgdG9nZ2xlcyB0aGUgc3RhdGUuCiAgICBpZiAo JHN0YXR1cyA9PT0gbnVsbCkgewogICAgICAgICRzdGF0dXMgPSAhZ2V0X3ByZWYoJ3NtZF9h dF93b3JrX2VuYWJsZWQnLCBudWxsLCB0cnVlKTsKICAgIH0KCiAgICBpZiAoaXNfbG9nZ2Vk X2luKCkpIHsKICAgICAgICBzZXRfcHJlZignc21kX2F0X3dvcmtfZW5hYmxlZCcsICgoJHN0 YXR1cykgPyAxIDogMCkpOwogICAgfQp9IjtzOjQ6InR5cGUiO3M6MToiMSI7czo1OiJvcmRl ciI7czoxOiI1IjtzOjU6ImZsYWdzIjtzOjE6IjMiO3M6NDoiaGVscCI7czoyODQ2OiI8aDE+ c21kX2F0X3dvcms8L2gxPgoKPHA+VGVsbCB2aXNpdG9ycyB5b3VyIFRleHRwYXR0ZXJuIHdl YnNpdGUgaXMgdW5kZXJnb2luZyBtYWludGVuYW5jZSB3aXRoIHRoZSBmbGljayBvZiBhIHN3 aXRjaC48L3A+Cgo8b2w+Cgk8bGk+SW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4gW1Jl cXVpcmVzIFRleHRwYXR0ZXJuIDQuNi4wK10uPC9saT4KCTxsaT5WaXNpdCB0aGUgPGk+QWRt aW4gJmd0OyBQcmVmczwvaT4gcGFuZWwuPC9saT4KCTxsaT5TZXQgPGk+TWFpbnRlbmFuY2Ug bW9kZSBlbmFibGVkPC9pPiBvbiBvciBvZmYgYXMgZGVzaXJlZCBhbmQgc2V0IHRoZSBvcHRp b25hbCBtZXNzYWdlIHRvIGRpc3BsYXkuPC9saT4KPC9vbD4KCjxwPldpdGggdGhlIHN3aXRj aCBvbiwgYW55b25lIG5vdCBsb2dnZWQgaW50byB0aGUgYWRtaW4gc2lkZSB3aWxsIHNlZSBh IDUwMyBlcnJvciBzdGF0dXMgYW5kIHlvdXIgZ2l2ZW4gbWVzc2FnZS4gSWYgeW91IHNldCB1 cCBhbiA8Y29kZT5lcnJvcl81MDM8L2NvZGU+IFBhZ2UgdGVtcGxhdGUsIHRoYXQgd2lsbCBi ZSBkZWxpdmVyZWQgaW5zdGVhZC48L3A+Cgo8cD5XaGVuIG1haW50ZW5hbmNlIG1vZGUgaXMg b24sIGEgbWVzc2FnZSBpcyBkaXNwbGF5ZWQgaW4gdGhlIGxvd2VyLWxlZnQgaGFuZCBjb3Ju ZXIgb2YgYWxsIGFkbWluLXNpZGUgcGFuZWxzIHRvIHJlbWluZCB5b3Ugb2YgdGhlIGZhY3Qs IHdpdGggYSBsaW5rIHRvIHRoZSBwcmVmZXJlbmNlcyBwYW5lbCBzbyB5b3UgY2FuIGVhc2ls eSB0dXJuIGl0IG9mZi48L3A+Cgo8aDI+UHVibGljIHRhZ3M8L2gyPgoKPHA+VGhlcmUgYXJl IHR3byBwdWJsaWMgdGFncyBhdmFpbGFibGUuIE9uZSB0byBkZXRlcm1pbmUgdGhlIGN1cnJl bnQgc3RhdGUgb2YgbWFpbnRlbmFuY2UgbW9kZSwgYW5kIHRoZSBvdGhlciB0byBzZXQgaXQg b24vb2ZmLiBUaGVzZSBhcmUgb2YgbGltaXRlZCB1c2UgaW4gbGl2ZSB0ZW1wbGF0ZXMsIGJ1 dCBjYW4gYmUgdmVyeSBoZWxwZnVsIG9uIGFkbWluLXNpZGUgZGFzaGJvYXJkcyB0byBhbGxv dyBzaG9ydGN1dHMgZm9yIHNldHRpbmcgdGhlIG1haW50ZW5hbmNlIHN0YXRlIG9mIHRoZSBz aXRlLjwvcD4KCjxoMz48Y29kZT4mbHQ7dHhwOnNtZF9pZl9hdF93b3JrJmd0OzwvY29kZT48 L2gzPgoKPHA+Q29uZGl0aW9uYWwgdGFnLCB3aXRoIG5vIGF0dHJpYnV0ZXMsIHRoYXQgZXhl Y3V0ZXMgdGhlIGNvbnRhaW5lZCBjb250ZW50IGlmIHRoZSBzaXRlIGlzIGluIG1haW50ZW5h bmNlIG1vZGUuIFN1cHBvcnRzIDxjb2RlPiZsdDt0eHA6ZWxzZSAvJmd0OzwvY29kZT4uPC9w PgoKPGgzPjxjb2RlPiZsdDt0eHA6c21kX2F0X3dvcmtfc3RhdHVzJmd0OzwvY29kZT48L2gz PgoKPHA+U2V0IHRoZSBzaXRlIG1haW50ZW5hbmNlIHN0YXRlLiBBdHRyaWJ1dGU6PC9wPgoK PGg0Pjxjb2RlPnN0YXR1czwvY29kZT48L2g0PgoKPHA+VmFsdWVzOjwvcD4KCjx1bD4KCTxs aT5vbWl0dGVkOiB0b2dnbGUgc3RhdHVzPC9saT4KCTxsaT4wOiBzZXQgbWFpbnRlbmFuY2Ug bW9kZSBvZmY8L2xpPgoJPGxpPjE6IHNldCBtYWludGVuYW5jZSBtb2RlIG9uPC9saT4KPC91 bD4KCjxwPk5vdGUgdGhhdCB0aGUgcGx1Z2luIG9ubHkgY2hlY2tzIHRvIHNlZSBpZiB0aGUg dGFnIGlzIHVzZWQgYnkgYW55IGxvZ2dlZC1pbiB1c2VyLiBJZiB5b3Ugd2lzaCB0byBleGFj dCBmaW5lci1ncmFpbmVkIGNvbnRyb2wsIHlvdSBtdXN0IGRvIHNvIGluIHlvdXIgUGFnZSB0 ZW1wbGF0ZS48L3A+Cgo8aDI+RXhhbXBsZSAxOiB0b2dnbGUgdGhlIHNpdGUgc3RhdGUgb24g Y2xpY2sgb2YgYSBsaW5rPC9oMj4KCjxwcmU+PGNvZGU+Jmx0O3R4cDphZGlfZ3BzIG5hbWU9 JnF1b3Q7bWFpbnRlbmFuY2UmcXVvdDsgcXVpZXQ9JnF1b3Q7MSZxdW90OyAvJmd0OwoKJmx0 O3R4cDppZl92YXJpYWJsZSBuYW1lPSZxdW90O21haW50ZW5hbmNlJnF1b3Q7IHZhbHVlPSZx dW90OyZxdW90OyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAgICZsdDt0eHA6c21kX2F0X3dv cmtfc3RhdHVzIC8mZ3Q7CiZsdDsvdHhwOmlmX3ZhcmlhYmxlJmd0OwoKJmx0O3R4cDpzbWRf aWZfYXRfd29yayZndDsKICAgTWFpbnRlbmFuY2UgTW9kZSBpcyBvbi4gJmx0O2EgaHJlZj0m cXVvdDs/ZXZlbnQ9ZGFzaGJvYXJkJmFtcDttYWludGVuYW5jZT0xJnF1b3Q7Jmd0O01ha2Ug c2l0ZSBsaXZlJmx0Oy9hJmd0Oy4KJmx0O3R4cDplbHNlIC8mZ3Q7CiAgIFdlYnNpdGUgaXMg bGl2ZS4gJmx0O2EgaHJlZj0mcXVvdDs/ZXZlbnQ9ZGFzaGJvYXJkJmFtcDttYWludGVuYW5j ZT0xJnF1b3Q7Jmd0O1B1dCBpdCBpbiBNYWludGVuYW5jZSBNb2RlJmx0Oy9hJmd0Oy4KJmx0 Oy90eHA6c21kX2lmX2F0X3dvcmsmZ3Q7PC9jb2RlPjwvcHJlPgoKPGgyPkF1dGhvci9jcmVk aXRzPC9oMj4KCjxwPkNvYmJsZWQgdG9nZXRoZXIgYnkgPGEgaHJlZj0iaHR0cDovL3N0ZWZk YXdzb24uY29tL3N3Ij5TdGVmIERhd3NvbjwvYT4sIHRoaXMgcGx1Z2luIGlzIGEgY29tcGxl dGUgcmlwIG9mIHRoZSBleGNlbGxlbnQgcnZtX21haW50ZW5hbmNlIHBsdWdpbiwgYnV0IHdp dGggdGhlIGFiaWxpdHkgdG8gY29udHJvbCB0aGluZ3MgdmlhIGEgcHJlZmVyZW5jZSBpbnN0 ZWFkIG9mIHVzaW5nIHRoZSBwbHVnaW4mIzgyMTc7cyBlbmFibGVkL2Rpc2FibGVkIHN0YXRl LiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBtYW5hZ2UgeW91ciBzaXRlJiM4MjE3O3Mgc3Rh dHVzIGluIGEgZGlzay1iYXNlZCBwbHVnaW4gY2FjaGUgZW52aXJvbm1lbnQgd2hlcmUgcGx1 Z2lucyBhcmUgJiM4MjIwO2Fsd2F5cyBvbiYjODIyMTsuIFRoYW5rcyB0byBSdXVkIHZhbiBN ZWxpY2sgZm9yIHRoZSBvcmlnaW5hbCBwbHVnaW4uPC9wPiI7czozOiJtZDUiO3M6MzI6IjM4 MGM2NGY3NGY1MmQyOTA4MTg2MTQ5OWZhMzcxYTE3IjtzOjg6InRleHRwYWNrIjtzOjIxNjoi I0BzbWRfYXRfd29yawpzbWRfYXRfd29yayA9PiBNYWludGVuYW5jZSBtb2RlCnNtZF9hdF93 b3JrX2FkbWluX21lc3NhZ2UgPT4gV2Vic2l0ZSBpcyBpbiA8YSBocmVmPSJ7dXJsfSI+TWFp bnRlbmFuY2UgTW9kZTwvYT4Kc21kX2F0X3dvcmtfZW5hYmxlZCA9PiBNYWludGVuYW5jZSBt b2RlIGVuYWJsZWQKc21kX2F0X3dvcmtfbWVzc2FnZSA9PiBNYWludGVuYW5jZSBtZXNzYWdl Ijt9