Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
[plugin] [ORPHAN] glx_admin_image_resize
Notice: This thread is archived, this plugin is no longer supported but it can be copied from this page.
**********************************************************
Hi all, after mailing with Johan i took ownership of both plugins developed by him glx_admin_image_resize and glx_gravatar. He currently is out of time to maintain them and I use them, so why not?
At grauhirn.org you find version 2006.1 of the plugin with two small fixes in presentation of the form. Documentation and use of the plugin is still the same as described in this thread.
If you have any thought about new features, gimmicks and addons to the plugin please dont wait with suggestions as I am starting to work on a new version soon. This thread would be a good place ;)
todo:
- handling of gif- and png-graphics
YToxMDp7czo0OiJuYW1lIjtzOjE1OiJnbHhfYWRtaW5faW1hZ2UiO3M6NjoiYXV0aG9yIjtzOjE1OiJkZXIgR3JhdU1laXN0ZXIiO3M6MTA6ImF1dGhvcl91cmkiO3M6NDc6Imh0dHA6Ly9ncmF1aGlybi5vcmcvcGF0dGVybnRleHQvZ2x4X2FkbWluX2ltYWdlIjtzOjc6InZlcnNpb24iO3M6NjoiMjAwNi4xIjtzOjExOiJkZXNjcmlwdGlvbiI7czo0NToiYWR2YW5jZWQgaW1hZ2UgZWRpdGluZyBhbmQgdGh1bWJuYWlsIGNyZWF0aW9uIjtzOjQ6ImhlbHAiO3M6NDkyNDoiPHA+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uZ2hve2JhY2tncm91bmQtY29sb3I6IzIyMjtjb2xvcjojY2NjO2ZvbnQtZmFtaWx5OlZlcmRhbmEsc2Fucy1zZXJpZjtmb250LXNpemU6MC44ZW07cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjE1cHggYXV0bztwYWRkaW5nOjEwcHg7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjc0MHB4O30uZ2hvIHB7cGFkZGluZzo1cHg7YmFja2dyb3VuZC1jb2xvcjojMjgyODI4O2JvcmRlcjoxcHggc29saWQgIzUxNTU1MTt9LmdobyBhOmxpbmssLmdobyBhOnZpc2l0ZWR7Y29sb3I6I2FhMDMwMzt0ZXh0LWRlY29yYXRpb246bm9uZTt9LmdobyBhOmhvdmVyLC5naG8gYTphY3RpdmV7Y29sb3I6I2FhMDMwMzt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO308L3N0eWxlPjxkaXYgY2xhc3M9ImdobyI+PHA+VGhpcyBpcyBhIFRleHRwYXR0ZXJuLXBsdWdpbiBieSA8YSBocmVmPSJodHRwOi8vZ3JhdWhpcm4ub3JnLyI+JiMzNjI2OyYjMzYzNzsmIzM2NDg7JiMzNjA3OyYjMzYzNDsmIzM2MjY7JiMzNjE3OyYjMzYyOTsmIzM1OTE7LiYjMzYyOTsmIzM1OTE7JiMzNTg4OyYjMzY2MDsmIzM1ODU7JiMzNjE5OzwvYT4uIElmIHlvdSBmaW5kIGEgYnVnIG9yIHRoaW5rIHRoZSBkb2N1bWVudGF0aW9uIGNvdWxkIGJlIGEgbGl0dGxlIGJpdCBtb3JlIGluIGRlcHRoIG9yIHVuZGVyc3RhbmRhYmxlLCA8YSBocmVmPSJodHRwOi8vZ3JhdWhpcm4ub3JnL2NvbnRhY3QvIj5wbGVhc2UgZG8gbm90IGhlc2l0YXRlIHRvIGNvbnRhY3QgdGhlIGF1dGhvcjwvYT4uPC9wPjwvZGl2PjwvcD4KCgk8aDI+Z2x4X2FkbWluX2ltYWdlX3Jlc2l6ZTwvaDI+CgoJPHA+UmVzaXplIGltYWdlIGFuZCBjcmVhdGVzIGEgdGh1bWJuYWlsIG9uIHVwbG9hZC4gRGV2ZWxvcGVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9qb2hhbi5nYWxheGVuLm5ldC8iPkpvaGFuIE5pbHNzb248L2E+IGFuZCBtYWludGFpbmVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9ncmF1aGlybi5vcmcvIj5kZXIgR3JhdU1laXN0ZXI8L2E+LjwvcD4KCgk8aDM+U2V0dGluZ3M8L2gzPgoKCTxwPllvdSBjYW4gY2hhbmdlIHRoZSBkZWZpbmVzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHBsdWdpbmNvZGUgdG8gc3VpdCB5b3VyIG5lZWRzLjwvcD4KCgk8aDM+Q1NTPC9oMz4KCgk8cD5UaGlzIHBsdWdpbiBhbHNvIGNyZWF0ZXMgYSBzdHlsZXNoZWV0IG5hbWVkIGdseF9hZG1pbl9pbWFnZV9yZXNpemUsIHRoYXQgY2FuIGJlIGZvdW5kIHVuZGVyIHRoZSBzdHlsZSB0YWIuPC9wPgoKCTxwPkRlZmF1bHQgc3R5bGVzaGVldDwvcD4KCjxwcmU+PGNvZGU+bGFiZWwuaW5saW5lIHsKbWFyZ2luOiA1cHg7Cn0KbGFiZWwuYmxvY2sgewptYXJnaW46IDVweCA1cHggMCAwOwpkaXNwbGF5OiBibG9jazsKfQoucmVzaXplIHsKZmxvYXQ6IGxlZnQ7Cn0KLnJvdGF0ZSB7CmZsb2F0OiByaWdodDsKfQpociB7CmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjREREREREOwpib3JkZXItdG9wOiBub25lOwpib3JkZXItcmlnaHQ6IG5vbmU7CmJvcmRlci1sZWZ0OiBub25lOwpoZWlnaHQ6IDFweDsKY2xlYXI6IGJvdGg7Cn08L2NvZGU+PC9wcmU+CgoJPGgzPlJlcXVpcmVtZW50czwvaDM+CgoJPHVsPgoJCTxsaT5UZXh0cGF0dGVybiA0LjAuMCs8L2xpPgoJCTxsaT5HRCAyLjAuMSBvciBsYXRlcjwvbGk+CgkJPGxpPmFuZCBzb21lIGltYWdlcyAoanBnKSB0byB0ZXN0IGl0IHdpdGg8L2xpPjwvbGk+Cgk8L3VsPgoKCTxoMz5DaGFuZ2Vsb2c8L2gzPgoKCTxwPjIwMDUtMTItMjQgdi4yMDA2LjE8L3A+Cgk8dWw+CgkJPGxpPnJlLXJlbGVhc2UgKHJldmlzZWQgZm9yIFRleHRwYXR0ZXJuIDQuMC4zKTwvbGk+Cgk8L3VsPgoKCTxwPjIwMDUtMTAtMTQgdi40LjAuMjwvcD4KCTx1bD4KCQk8bGk+Rm9ybWZpZWxkcyBvZiBUWFAgd2l0aCBzYW1lIGZ1bmN0aW9uYWxpdHkgd2lsbCBiZSBoaWRkZW48L2xpPgoJCTxsaT5jb25maWd1cmF0aW9uOiB3aWR0aCwgaGVpZ2h0IG9yIGxvbmdlc3Qgc2lkZSB3aWxsIGJlIHNjYWxlZCB0byB4PC9saT4KCTwvdWw+CgoJPHA+MjAwNS0xMC0xNCB2LjQuMC4xPC9wPgoJPHVsPgoJCTxsaT5vcHRpbWl6YXRpb24gb2Ygc3F1YXJlIGNyb3BwaW5nIChjdXR0aW5nIG9ubHkgdGhlIGxvbmdlc3Qgc2lkZSBvZiB0aGUgcGljdHVyZSkgKHRoYW5rcyA8YSBocmVmPSJodHRwOi8vd3d3LmJ1cmllZHNob3ZlbC5jb20iPmhlaWtraTc0PC9hPik8L2xpPgoJPC91bD4KCgk8cD4yMDA1LTA4LTIwIHYuMC41LjFiL3YuMC41LjJiPC9wPgoJPHVsPgoJCTxsaT5GaXhlZCBzb21lIHNtYWxsIGJ1ZyBpbnRyb2R1Y2VkIHdpdGggVGV4dHBhdHRlcm4gNC4wIChnaG8pPC9saT4KCTwvdWw+CgoJPHA+MjAwNS0wNC0wNCB2LjAuNWI8L3A+Cgk8dWw+CgkJPGxpPkNvb2tpZSB0aGF0IHNhdmVzIHRoZSBsYXRlc3QgbGVuZ3RoIGZvciB0aHVtYiBhbmQgbGFyZ2UgaW1hZ2UsIGZyb20gYW4gaWRlYSBieSBncmF1bWVpc3RlcjwvbGk+CgkJPGxpPkNoZWNrYm94IHRoYXQgbWFrZXMgaXQgcG9zc2libGUgdG8gcmVzaXplIGltYWdlIG9uIHVwbG9hZCB3aXRoIGxhdGVzdCBzdG9yZWQgdmFsdWUuPC9saT4KCQk8bGk+SW1hZ2Ugb3B0cyBub3cgYXBwZWFycyBvbiB0aHVtYm5haWwgaW5zZXJ0IGFuZCBpbWFnZSByZXBsYWNlLCB0aGFua3MgWmlRPC9saT4KCQk8bGk+U3VwcG9ydCBmb3IgaW1hZ2Ugcm90YXRlIGZvciBwaHAgNC4zLjAgb3IgbG93ZXIsIHRoYW5rcyBUb2JpYXMgRWluYXJzc29uPC9saT4KCQk8bGk+R0QgdmVyc2lvbiBjaGVjaywgZnVuY3Rpb24gZnJvbSBNRFAgQXV0b21hdGljIFJlc2l6ZSBhbmQgVGh1bWJuYWlsIGZvciB0ZXh0cGF0dGVybiBieSA8YSBocmVmPSJodHRwOi8vd3d3LnB1cmVwaG90b3Nob3AuY29tIj5DYWdlZDwvYT48L2xpPgoJPC91bD4KCgk8cD4yMDA1LTAzLTMwIHYuMC40YjxiciAvPgpaaVEgYWRkZWQgdGhlIGZvbGxvd2luZzwvcD4KCTx1bD4KCQk8bGk+U3VibWl0IGJ1dHRvbiwgbm8gbmVlZCB0byB1cGxvYWQgYW4gaW1hZ2UgdG8gY3JlYXRlIHRodW1ibmFpbCwgc3F1YXJlIHRodW1ibmFpbCBvciB0byByZXNpemUgaW1hZ2UgYW55bW9yZS48L2xpPgoJCTxsaT5DaGVja2JveCwgaWYgeW91IHdhbnQgdG8gcmVzaXplIHRoZSBsYXJnZSBpbWFnZTwvbGk+CgkJPGxpPlF1YWxpdHkgaW5wdXQgZmllbGQgZm9yIHRodW1ibmFpbCBhbmQgbGFyZ2UgaW1hZ2UsIGJ1dCB0aGlzIHR3byBmaWVsZHMgYXJlIGNvbW1lbnRlZCBvdXQgcmlnaHQgbm93LCBwZXJzb25hbGx5IGkgdGhpbmsgaXRzIHRvbyBjbHV0dGVyZWQgdG8gaGF2ZSB0aGVtIHRoZXJlLCBidXQgeW91IGNvdWxkIGNvbW1lbnQgdGhlbSBvdXQgaWYgeW91IHdhbnQgdGhlbSwgdGhlIHZhbHVlcyBieSBkZWZhdWx0IGlzIDkwIGZvciB0aHVtYnMgYW5kIDgwIGZvciBsYXJnZSBpbWFnZXMuPC9saT4KCTwvdWw+CgoJPHA+VGhlIGJlaGF2aW9yIGZvciB0aGUgcGx1Z2luIGhhcyBjaGFuZ2VkIGEgYml0IHNpbmNlIHRoaXMgdmVyc2lvbiwgb24gdXBsb2FkIHRoZSBwbHVnaW4gd2lsbCBvbmx5IGNyZWF0ZXMgYSB0aHVtYm5haWwsIG5vIHJlc2l6ZSBpcyBub3cgZG9uZS4gV2hlbiByZXBsYWNpbmcgYSBpbWFnZSBpdCBvbmx5IHJlcGxhY2UgdGhlIGltYWdlLCBubyByZXNpemUgaXMgZG9uZSBvciB0aHVtYm5haWwgaXMgY3JlYXRlZC48L3A+CgoJPHA+T3RoZXIgdXBkYXRlczwvcD4KCgk8dWw+CgkJPGxpPkltYWdlIHJvdGF0aW5nLCAxODAsIDkwQ1csIDkwQ0NXLCByZXF1aXJlcyBwaHAgNC4zLjAgb3IgZ3JlYXRlcjwvbGk+CgkJPGxpPlBsdWdpbiByZW5hbWVkIHRvIGdseF9hbWluX2ltYWdlIGluc3RlYWQgb2YgZ2x4X2FkbWluX2ltYWdlX3Jlc2l6ZTwvbGk+CgkJPGxpPlN0eWxlc2hlZXQgcmVuYW1lZCB0byBnbHhfaW1hZ2VfYWRtaW4sIGRlbGV0ZSBvbGQgb25lLCBJIGFsc28gYWRkZWQgc29tZSBuZXcgcnVsZXMgdG8gdGhlIHN0eWxlc2hlZXQ8L2xpPgoJPC91bD4KCgk8cD4yMDA1LTAzLTI3IHYuMC4zYjwvcD4KCTx1bD4KCQk8bGk+SXRzIG5vdyBwb3NzaWJsZSB0byBjcmVhdGUgc3F1YXJlZCB0aHVtYm5haWxzPC9saT4KCQk8bGk+QmV0dGVyIGpzIGZvciBvdXRwdXR0aW5nIHRoZSBuZXcgaW5wdXQgZmllbGRzPC9saT4KCQk8bGk+Q2hhbmdlZCB0aGUgb3JkZXIgb2YgdGhlIGlucHV0IGZpZWxkcywgdGhleSBhcmUgbm93IGFib3ZlIHRoZSB1cGxvYWQgZmllbGQ8L2xpPgoJCTxsaT5BIHN0eWxlc2hlZXQgbmFtZWQgZ2x4X2FkbWluX2ltYWdlX3Jlc2l6ZSBpcyBjcmVhdGVkIHVuZGVyIHRoZSBzdHlsZSB0YWIgZm9yIHNvbWUgdmVyeSBiYXNpYyBzdHlsaW5nIHVuZGVyIHRoZSBpbWFnZSBlZGl0IHBhZ2UuPC9saT4KCTwvdWw+CgoJPHA+MjAwNS0wMy0yNSB2LjAuMmI8YnIgLz4KSXQgc3RpbGwgdXNlcyB0aGUgc2FtZSB0ZWNobmljIHRvIG1hbmlwdWxhdGUgdGhlIGltYWdlIGJ1dCBpdCBpcyBub3cgcG9zc2libGUgdG8gKGluIHRoZSBpbWFnZSBlZGl0IHBhZ2UpPC9wPjwvcD4KCgk8dWw+CgkJPGxpPnNwZWNpZnkgdGhlIHZhbHVlcyBmb3IgdGhlIHRodW1iIGFuZCB0aGUgbGFyZ2UgaW1hZ2U8L2xpPgoJCTxsaT5kZWNpZGUgaWYgeW91IHdhbnQgdG8gcmVzaXplIGFuZCBjcmVhdGUgYSB0aHVtYm5haWwgb3Igbm90PC9saT4KCTwvdWw+CgoJPHA+MjAwNS0wMy0yNSB2LjAuMWI8L3A+Cgk8dWw+CgkJPGxpPmluaXRpYWwgcmVsZWFzZTwvbGk+Cgk8L3VsPgoKCTxwPjxkaXYgY2xhc3M9ImdobyI+PHA+cGx1Z2luIGNvbXBpbGVkIGF0OiBUdWUsIDAzIEphbiAyMDA2IDEwOjAyOjQ5ICswMTAwIHwgY3VycmVudCB2ZXJzaW9uIGF0IDxhIGhyZWY9Imh0dHA6Ly9ncmF1aGlybi5vcmcvcGF0dGVybnRleHQvZ2x4X2FkbWluX2ltYWdlIj5odHRwOi8vZ3JhdWhpcm4ub3JnL3BhdHRlcm50ZXh0L2dseF9hZG1pbl9pbWFnZTwvYT48L3A+PC9kaXY+PC9wPiI7czo0OiJjb2RlIjtzOjI0NzYzOiIKLy8gc2V0IHRoaXMgdG8gMCB0byBzaG93IHRoZSBvcmlnaW5hbCB0aHVtYm5haWwtIGFuZCBjdXR0aW5nLWZvcm1zIG9mIHR4cC4KZGVmaW5lKCdISURFVFhQJywgMSk7Ci8vIHNldCB0aGlzIHRvIDEgdG8gZm9yY2Ugb2xkIG1ldGhvZCBvZiBzcXVhcmV0aHVtYnByb2R1Y3Rpb24KZGVmaW5lKCdNRVRIT0QnLCAyKTsKaWYgKEAgdHhwaW50ZXJmYWNlID09ICdhZG1pbicpIHsKICAgIHJlZ2lzdGVyX2NhbGxiYWNrKCJnbHhfYWRtaW5faW1hZ2UiLCAiaW1hZ2UiKTsKICAgIHJlZ2lzdGVyX2NhbGxiYWNrKCJnbHhfaW1hZ2Vfb3B0cyIsICJpbWFnZSIpOwogICAgcmVnaXN0ZXJfY2FsbGJhY2soImdseF9pbWFnZV9lZGl0X29wdHMiLCAiaW1hZ2UiLCAidGh1bWJuYWlsX2luc2VydCIpOwogICAgcmVnaXN0ZXJfY2FsbGJhY2soImdseF9pbWFnZV9lZGl0X29wdHMiLCAiaW1hZ2UiLCAiaW1hZ2VfcmVwbGFjZSIpOwogICAgcmVnaXN0ZXJfY2FsbGJhY2soImdseF9pbWFnZV9lZGl0X29wdHMiLCAiaW1hZ2UiLCAiaW1hZ2VfZWRpdCIpOwp9OwpmdW5jdGlvbiBnbHhfYWRtaW5faW1hZ2UoJGV2ZW50LCAkc3RlcCkgewogICAgJGFjdGlvbiA9IHBzKCJhY3Rpb24iKSA/IHBzKCJhY3Rpb24iKSA6ICJyZXNpemUiOwogICAgc3dpdGNoICgkYWN0aW9uKSB7CiAgICAgICAgY2FzZSAicmVzaXplIjoKICAgICAgICAgICAgZ2x4X2ltYWdlX3Jlc2l6ZSgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJyb3RhdGUiOgogICAgICAgICAgICBnbHhfaW1hZ2Vfcm90YXRlKCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGdseF9pbWFnZV9yZXNpemUoKTsKICAgIH07Cn0KLyoqCiAqIEZ1bmN0aW9uIGZyb20gTURQIEF1dG9tYXRpYyBSZXNpemUgYW5kIFRodW1ibmFpbCBmb3IgdGV4dHBhdHRlcm4KICogQnkgQ2FnZWQ6IDxodHRwOi8vd3d3LnB1cmVwaG90b3Nob3AuY29tPgogKi8KZnVuY3Rpb24gZ2x4X2dldF9nZF92ZXJzaW9uKCkgewogICAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnaW1hZ2VjcmVhdGV0cnVlY29sb3InKSl7CiAgICAgICAgJGZ1bmN0aW9uX2NyZWF0ZSA9ICdpbWFnZWNyZWF0ZSc7CiAgICAgICAgJGZ1bmN0aW9uX2NvcHkgPSAnaW1hZ2Vjb3B5cmVzaXplZCc7CiAgICB9IGVsc2UgewogICAgICAgICRmdW5jdGlvbl9jcmVhdGUgPSAnaW1hZ2VjcmVhdGV0cnVlY29sb3InOwogICAgICAgICRmdW5jdGlvbl9jb3B5ID0gJ2ltYWdlY29weXJlc2FtcGxlZCc7CiAgICB9OwogICAgcmV0dXJuIGFycmF5KCdjb3B5JyA9PiAkZnVuY3Rpb25fY29weSwgJ2NyZWF0ZScgPT4gJGZ1bmN0aW9uX2NyZWF0ZSk7Cn0KLyoqCiAqIFJvdGF0ZSBpbWFnZSBwaHAgNC4zLjAgb3IgbG93ZXIKICogQnkgVG9iaWFzIEVpbmFyc3NvbgogKi8KZnVuY3Rpb24gZ2x4X29sZF9pbWFnZV9yb3RhdGUoJHNyYywgJGFuZ2xlKXsKICAgIC8vIGNoZWNrIGN1cnJlbnQgR0QgdmVyc2lvbgogICAgJGdkID0gZ2x4X2dldF9nZF92ZXJzaW9uKCk7CiAgICAkd2lkdGggPSBpbWFnZXN4KCRzcmMpOwogICAgJGhlaWdodCA9IGltYWdlc3koJHNyYyk7CiAgICBpZigkYW5nbGUgPT0gOTAgfHwgJGFuZ2xlID09IDI3MCl7CiAgICAgICAgJGRzdCA9ICRnZFsnY3JlYXRlJ10oJGhlaWdodCwkd2lkdGgpOwogICAgfSBlbHNlewogICAgICAgICRkc3QgPSAkZ2RbJ2NyZWF0ZSddKCR3aWR0aCwkaGVpZ2h0KTsKICAgIH07CiAgICBmb3IoJHk9MDskeTwkaGVpZ2h0OyR5KyspewogICAgICAgIGZvcigkeD0wOyR4PCR3aWR0aDskeCsrKXsKICAgICAgICAgICAgc3dpdGNoKCRhbmdsZSl7CiAgICAgICAgICAgICAgICBjYXNlIDkwOgogICAgICAgICAgICAgICAgICAgIGltYWdlY29weSgkZHN0LCAkc3JjLCAkaGVpZ2h0LSR5LTEsICR4LCAkeCwgJHksIDEsIDEpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxODA6CiAgICAgICAgICAgICAgICAgICAgaW1hZ2Vjb3B5KCRkc3QsICRzcmMsICR4LCAkeSwgJHdpZHRoLSR4LTEsICRoZWlnaHQtJHktMSwgMSwgMSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDI3MDoKICAgICAgICAgICAgICAgICAgICBpbWFnZWNvcHkoJGRzdCwgJHNyYywgJHksICR3aWR0aC0keC0xLCAkeCwgJHksIDEsIDEpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBpbWFnZWNvcHkoJGRzdCwgJHNyYywgJHgsICR5LCAkeCwgJHksIDEsIDEpOwogICAgICAgICAgICB9OwogICAgICAgIH07CiAgICB9OwogICAgaW1hZ2VkZXN0cm95KCRzcmMpOwogICAgcmV0dXJuKCRkc3QpOwp9Ci8qKgogKiBDaGVjayBpZiB2YWx1ZSBpcyBwcmVjZW50CiAqIEJ5IFppUQogKi8KZnVuY3Rpb24gemlxSXNQZXJjZW50KCR4KSB7CiAgICBpZiAoaXNfbnVtZXJpYygkeCkpIHsKICAgICAgICAkdG1wID0gaW50dmFsKCR4KTsKICAgICAgICBpZiAoJHRtcCA+PSAxMCAmJiAkdG1wIDw9IDEwMCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9OwogICAgfTsKICAgIHJldHVybiBmYWxzZTsKfQpmdW5jdGlvbiBnbHhfaW1hZ2Vfcm90YXRlKCkgewogICAgZ2xvYmFsICRwYXRoX3RvX3NpdGU7CiAgICAkcm90YXRlX3ZhbHVlID0gcHMoInJvdGF0ZVZhbHVlIikgPyBwcygicm90YXRlVmFsdWUiKSA6IDA7CiAgICAkaW1hZ2VfaWQgPSBwcygiaWQiKSA/IHBzKCJpZCIpIDogMDsKICAgICRzb3VyY2UgPSBJTVBBVEguJGltYWdlX2lkLicuanBnJzsKICAgIC8vIGdldCB0aGUgcmlnaHQgZGVncmVlCiAgICAkZGVncmVlcyA9IDA7CiAgICBzd2l0Y2ggKCRyb3RhdGVfdmFsdWUpIHsKICAgICAgICBjYXNlICIxODAiOgogICAgICAgICAgICAkZGVncmVlcyA9IDE4MDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiOTBDVyI6CiAgICAgICAgICAgICRkZWdyZWVzID0gMjcwOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICI5MENDVyI6CiAgICAgICAgICAgICRkZWdyZWVzID0gOTA7CiAgICAgICAgICAgIGJyZWFrOwogICAgfTsKICAgIC8vIHJvdGF0ZSBpbWFnZQogICAgJGltID0gaW1hZ2VjcmVhdGVmcm9tanBlZygkc291cmNlKTsKICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2ltYWdlcm90YXRlJykpIHsKICAgICAgICAkaW0gPSBpbWFnZXJvdGF0ZSgkaW0sICRkZWdyZWVzLCAwKTsKICAgIH0gZWxzZSB7CiAgICAgICAgJGltID0gZ2x4X29sZF9pbWFnZV9yb3RhdGUoJGltLCAkZGVncmVlcyk7CiAgICB9OwogICAgaW1hZ2VqcGVnKCRpbSwgJHNvdXJjZSwgOTUpOwogICAgaW1hZ2VkZXN0cm95KCRpbSk7CiAgICAvLyBnZXQgdGhlIHNpemUgZnJvbSB0aGUgbmV3IGltYWdlLCBhbmQgdXBkYXRlIGRhdGFiYXNlCiAgICAkc2l6ZSA9IGdldGltYWdlc2l6ZSgkc291cmNlKTsKICAgIHNhZmVfdXBkYXRlKCd0eHBfaW1hZ2UnLCAidz0nIi4kc2l6ZVswXS4iJyxoPSciLiRzaXplWzFdLiInIiwgImlkPSckaW1hZ2VfaWQnIik7CiAgICAvLyBzZW5kIHVzZXIgdG8gdGhlIGltYWdlIGVkaXQgdmlldwogICAgaGVhZGVyKCJMb2NhdGlvbjogaW5kZXgucGhwP2V2ZW50PWltYWdlJnN0ZXA9aW1hZ2VfZWRpdCZpZD0iLiRpbWFnZV9pZCk7Cn0KZnVuY3Rpb24gZ2x4X2ltYWdlX3Jlc2l6ZSgpIHsKICAgIGdsb2JhbCAkcGF0aF90b19zaXRlOwogICAgJGRvX3Jlc2l6ZV9sYXJnZSA9IHBzKCJkb1Jlc2l6ZUxhcmdlIikgPyBwcygiZG9SZXNpemVMYXJnZSIpIDogMDsKICAgICRkb19yZXNpemVfdGh1bWIgPSBwcygiZG9SZXNpemVUaHVtYiIpID8gcHMoImRvUmVzaXplVGh1bWIiKSA6IDE7CiAgICAkc3F1YXJlX2ltYWdlID0gcHMoInNxdWFyZSIpID8gcHMoInNxdWFyZSIpIDogMDsKICAgIC8vIGNoZWNrIGZvciBzYXZlZCB2YWx1ZXMKICAgICRsYXJnZVZhbHVlID0gY3MoImdseF9pbWFnZV9sYXJnZSIpID8gY3MoImdseF9pbWFnZV9sYXJnZSIpIDogNTAwOwogICAgJHRodW1iVmFsdWUgPSBjcygiZ2x4X2ltYWdlX3RodW1iIikgPyBjcygiZ2x4X2ltYWdlX3RodW1iIikgOiAxMDA7CiAgICAkbGFyZ2VzdF9zaWRlX2xhcmdlID0gcHMoImxhcmdlU2l6ZSIpID8gcHMoImxhcmdlU2l6ZSIpIDogJGxhcmdlVmFsdWU7CiAgICAkbGFyZ2VzdF9zaWRlX3RodW1iID0gcHMoInRodW1iU2l6ZSIpID8gcHMoInRodW1iU2l6ZSIpIDogJHRodW1iVmFsdWU7CiAgICAkc2lkZV90aHVtYiA9IHBzKCJ0aHVtYlZhbHVlIikgPyBwcygidGh1bWJWYWx1ZSIpIDogJ2xvbmdlc3QnOwogICAgJGltYWdlX2lkID0gcHMoImlkIikgPyBwcygiaWQiKSA6IG15c3FsX2luc2VydF9pZCgpOwogICAgJHF1YWxpdHlfdGh1bWIgPSB6aXFJc1BlcmNlbnQocHMoInRodW1iUXVhIikpID8gaW50dmFsKHBzKCJ0aHVtYlF1YSIpKSA6IDkwOwogICAgJHF1YWxpdHlfbGFyZ2UgPSB6aXFJc1BlcmNlbnQocHMoImxhcmdlUXVhIikpID8gaW50dmFsKHBzKCJsYXJnZVF1YSIpKSA6IDgwOwogICAgLy8gU2F2ZSB2YWx1ZXMgdG8gc29tZSBjb29raWVzCiAgICBzZXRjb29raWUoJ2dseF9pbWFnZV9sYXJnZScsJGxhcmdlc3Rfc2lkZV9sYXJnZSx0aW1lKCkrMzYwMCoyNCozNjUpOwogICAgc2V0Y29va2llKCdnbHhfaW1hZ2VfdGh1bWInLCRsYXJnZXN0X3NpZGVfdGh1bWIsdGltZSgpKzM2MDAqMjQqMzY1KTsKICAgIHNldGNvb2tpZSgnZ2x4X2ltYWdlX3Jlc2l6ZV9sYXJnZScsJGRvX3Jlc2l6ZV9sYXJnZSx0aW1lKCkrMzYwMCoyNCozNjUpOwogICAgc2V0Y29va2llKCdnbHhfaW1hZ2VfcmVzaXplX3RodW1iJywkZG9fcmVzaXplX3RodW1iLHRpbWUoKSszNjAwKjI0KjM2NSk7CiAgICBzZXRjb29raWUoJ2dseF9pbWFnZV9zcXVhcmUnLCRzcXVhcmVfaW1hZ2UsdGltZSgpKzM2MDAqMjQqMzY1KTsKICAgICRzb3VyY2UgPSBJTVBBVEguJGltYWdlX2lkLicuanBnJzsKICAgIGlmIChmaWxlX2V4aXN0cygkc291cmNlKSAmJiAoJGRvX3Jlc2l6ZV90aHVtYiA9PSAxIHx8ICRkb19yZXNpemVfbGFyZ2UgPT0gMSkpIHsKICAgICAgICAvLyBjaGVjayBjdXJyZW50IEdEIHZlcnNpb24KICAgICAgICAkZ2QgPSBnbHhfZ2V0X2dkX3ZlcnNpb24oKTsKICAgICAgICAkc2l6ZSA9IGdldGltYWdlc2l6ZSgkc291cmNlKTsKICAgICAgICAkeCA9ICRzaXplWzBdOwogICAgICAgICR5ID0gJHNpemVbMV07CiAgICAgICAgaWYgKCRzaWRlX3RodW1iID09ICdsb25nZXN0Jyl7CiAgICAgICAgICAgIGlmICgkeCA+ICR5KSB7CiAgICAgICAgICAgICAgICAkbWF4ID0gJHg7CiAgICAgICAgICAgICAgICAkbWluID0gJHk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkbWF4ID0gJHk7CiAgICAgICAgICAgICAgICAkbWluID0gJHg7CiAgICAgICAgICAgIH07CiAgICAgICAgfSBlbHNlaWYgKCRzaWRlX3RodW1iID09ICdoZWlnaHQnKXsKICAgICAgICAgICAgJG1heCA9ICR5OwogICAgICAgICAgICAkbWluID0gJHg7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJG1heCA9ICR4OwogICAgICAgICAgICAkbWluID0gJHk7CiAgICAgICAgfTsKICAgICAgICBpZiAoJGRvX3Jlc2l6ZV90aHVtYiA9PSAxKSB7CiAgICAgICAgICAgIC8vIHRodW1iCiAgICAgICAgICAgICRyYXRlX3RodW1iID0gJG1heCAvICRsYXJnZXN0X3NpZGVfdGh1bWI7CiAgICAgICAgICAgICRmaW5hbF94X3RodW1iID0gJHggLyAkcmF0ZV90aHVtYjsKICAgICAgICAgICAgJGZpbmFsX3lfdGh1bWIgPSAkeSAvICRyYXRlX3RodW1iOwogICAgICAgICAgICAvLyBjcmVhdGUgdGh1bWIKICAgICAgICAgICAgaWYgKCRzcXVhcmVfaW1hZ2UgPT0gMSkgewogICAgICAgICAgICAgICAgJHJlc2l6ZV90aHVtYiA9ICRnZFsnY3JlYXRlJ10oJGxhcmdlc3Rfc2lkZV90aHVtYiwgJGxhcmdlc3Rfc2lkZV90aHVtYik7CiAgICAgICAgICAgICAgICAkaW1fdGh1bWIgPSBpbWFnZWNyZWF0ZWZyb21qcGVnKCRzb3VyY2UpOwogICAgICAgICAgICAgICAgaWYgKE1FVEhPRCA9PSAyKXsKICAgICAgICAgICAgICAgICAgICBpZigkeCA+ICR5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR4MCA9ICgkeCAtICR5KSAvIDI7CiAgICAgICAgICAgICAgICAgICAgICAgICR4MSA9ICR5OwogICAgICAgICAgICAgICAgICAgICAgICAkeTAgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAkeTEgPSAkeTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkeDAgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAkeDEgPSAkeDsKICAgICAgICAgICAgICAgICAgICAgICAgJHkwID0gKCR5IC0gJHgpIC8gMjsKICAgICAgICAgICAgICAgICAgICAgICAgJHkxID0gJHg7CiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAkZ2RbJ2NvcHknXSgkcmVzaXplX3RodW1iLCAkaW1fdGh1bWIsIDAsIDAsJHgwLCR5MCwgJGxhcmdlc3Rfc2lkZV90aHVtYiwgJGxhcmdlc3Rfc2lkZV90aHVtYiwgJHgxLCAkeTEpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkZ2RbJ2NvcHknXSgkcmVzaXplX3RodW1iLCAkaW1fdGh1bWIsIDAsIDAsIDAsIDAsICRsYXJnZXN0X3NpZGVfdGh1bWIsICRsYXJnZXN0X3NpZGVfdGh1bWIsICRsYXJnZXN0X3NpZGVfdGh1bWIgKiAxLjUsICRsYXJnZXN0X3NpZGVfdGh1bWIgKiAxLjUpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICRzb3VyY2VfdGh1bWIgPSBJTVBBVEguJGltYWdlX2lkLid0LmpwZyc7CiAgICAgICAgICAgICAgICBpbWFnZWpwZWcoJHJlc2l6ZV90aHVtYiwgJHNvdXJjZV90aHVtYiwgJHF1YWxpdHlfdGh1bWIpOwogICAgICAgICAgICAgICAgaW1hZ2VkZXN0cm95KCRyZXNpemVfdGh1bWIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHJlc2l6ZV90aHVtYiA9ICRnZFsnY3JlYXRlJ10oJGZpbmFsX3hfdGh1bWIsICRmaW5hbF95X3RodW1iKTsKICAgICAgICAgICAgICAgICRpbV90aHVtYiA9IGltYWdlY3JlYXRlZnJvbWpwZWcoJHNvdXJjZSk7CiAgICAgICAgICAgICAgICAkZ2RbJ2NvcHknXSgkcmVzaXplX3RodW1iLCAkaW1fdGh1bWIsIDAsIDAsIDAsIDAsICRmaW5hbF94X3RodW1iLCAkZmluYWxfeV90aHVtYiwgJHgsICR5KTsKICAgICAgICAgICAgICAgICRzb3VyY2VfdGh1bWIgPSBJTVBBVEguJGltYWdlX2lkLid0LmpwZyc7CiAgICAgICAgICAgICAgICBpbWFnZWpwZWcoJHJlc2l6ZV90aHVtYiwgJHNvdXJjZV90aHVtYiwgJHF1YWxpdHlfdGh1bWIpOwogICAgICAgICAgICAgICAgaW1hZ2VkZXN0cm95KCRyZXNpemVfdGh1bWIpOwogICAgICAgICAgICB9OwogICAgICAgICAgICAkdGh1bWIgPSB0cnVlOwogICAgICAgICAgICBzYWZlX3VwZGF0ZSgndHhwX2ltYWdlJywgInRodW1ibmFpbD0nJHRodW1iJyIsICJpZD0nJGltYWdlX2lkJyIpOwogICAgICAgIH07CiAgICAgICAgaWYgKCRkb19yZXNpemVfbGFyZ2UgPT0gMSkgewogICAgICAgICAgICAvLyBsYXJnZQogICAgICAgICAgICAkcmF0ZV9sYXJnZSA9ICRtYXggLyAkbGFyZ2VzdF9zaWRlX2xhcmdlOwogICAgICAgICAgICAkZmluYWxfeF9sYXJnZSA9ICR4IC8gJHJhdGVfbGFyZ2U7CiAgICAgICAgICAgICRmaW5hbF95X2xhcmdlID0gJHkgLyAkcmF0ZV9sYXJnZTsKICAgICAgICAgICAgLy8gY3JlYXRlIGxhcmdlCiAgICAgICAgICAgIGlmICgkeCA+ICRmaW5hbF94X2xhcmdlKSB7CiAgICAgICAgICAgICAgICAkcmVzaXplX2xhcmdlID0gJGdkWydjcmVhdGUnXSgkZmluYWxfeF9sYXJnZSwgJGZpbmFsX3lfbGFyZ2UpOwogICAgICAgICAgICAgICAgJGltX2xhcmdlID0gaW1hZ2VjcmVhdGVmcm9tanBlZygkc291cmNlKTsKICAgICAgICAgICAgICAgICRnZFsnY29weSddKCRyZXNpemVfbGFyZ2UsICRpbV9sYXJnZSwgMCwgMCwgMCwgMCwgJGZpbmFsX3hfbGFyZ2UsICRmaW5hbF95X2xhcmdlLCAkeCwgJHkpOwogICAgICAgICAgICAgICAgaW1hZ2VqcGVnKCRyZXNpemVfbGFyZ2UsICRzb3VyY2UsICRxdWFsaXR5X2xhcmdlKTsKICAgICAgICAgICAgICAgIGltYWdlZGVzdHJveSgkcmVzaXplX2xhcmdlKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgLy8gZ2V0IHNpemUgZnJvbSBsYXJnZQogICAgICAgICAgICAkc2l6ZSA9IGdldGltYWdlc2l6ZSgkc291cmNlKTsKICAgICAgICAgICAgc2FmZV91cGRhdGUoJ3R4cF9pbWFnZScsICJ3PSciLiRzaXplWzBdLiInLGg9JyIuJHNpemVbMV0uIiciLCAiaWQ9JyRpbWFnZV9pZCciKTsKICAgICAgICB9OwogICAgICAgIC8vIHNlbmQgdXNlciB0byB0aGUgaW1hZ2UgZWRpdCB2aWV3CiAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogaW5kZXgucGhwP2V2ZW50PWltYWdlJnN0ZXA9aW1hZ2VfZWRpdCZpZD0iLiRpbWFnZV9pZCk7CiAgICB9Owp9CmZ1bmN0aW9uIGdseF9pbWFnZV9vcHRzKCRldmVudCwgJHN0ZXApIHsKICAgIGVjaG88PDxFT0YKPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQp3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CgkvLyByZXNpemUgaW1hZ2Ugb24gdXBsb2FkPwoJdmFyIGlucHV0RG9SZXNpemVMYXJnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CglpbnB1dERvUmVzaXplTGFyZ2Uuc2V0QXR0cmlidXRlKCduYW1lJywgJ2RvUmVzaXplTGFyZ2UnKTsKCWlucHV0RG9SZXNpemVMYXJnZS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2RvUmVzaXplTGFyZ2UnKTsKCWlucHV0RG9SZXNpemVMYXJnZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnY2hlY2tib3gnKTsKCWlucHV0RG9SZXNpemVMYXJnZS5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJzEnKTsKCWlucHV0RG9SZXNpemVMYXJnZS5jaGVja2VkID0gZmFsc2U7Cgl2YXIgbGFyZ2VWYWx1ZSA9IGdldENvb2tpZSgnZ2x4X2ltYWdlX2xhcmdlJykgPyAnLCBzdG9yZWQgdmFsdWUgJytnZXRDb29raWUoJ2dseF9pbWFnZV9sYXJnZScpKydweCcgOiAnLCBzdG9yZWQgdmFsdWUgNTAwcHgnOwoJdmFyIGxhYmVsRG9SZXNpemVMYXJnZSA9IGNyZWF0ZUxhYmVsKCdkb1Jlc2l6ZUxhcmdlJywgJ1Jlc2l6ZSBsYXJnZSBpbWFnZScrbGFyZ2VWYWx1ZSwgJ2lubGluZScpOwoJdmFyIHBEb1Jlc2l6ZUxhcmdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwoJcERvUmVzaXplTGFyZ2UuYXBwZW5kQ2hpbGQoaW5wdXREb1Jlc2l6ZUxhcmdlKTsKCXBEb1Jlc2l6ZUxhcmdlLmFwcGVuZENoaWxkKGxhYmVsRG9SZXNpemVMYXJnZSk7CgkvLyBnZXQgdGhlIHVwbG9hZCBmb3JtIGVsZW1lbnQsIHRoZSB0aGlyZCBmb3JtIG9uIHRoZSBwYWdlCgl2YXIgZm9ybVVwbG9hZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmb3JtJykuaXRlbSgyKTsKCWZvcm1VcGxvYWQuYXBwZW5kQ2hpbGQocERvUmVzaXplTGFyZ2UpOwp9CmZ1bmN0aW9uIGNyZWF0ZUxhYmVsKGZvckVsZW1lbnQsIHRleHQsIGVsZW1lbnRDbGFzcykgewoJdmFyIGxhYmVsRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7CglsYWJlbEVsZW1lbnQuc2V0QXR0cmlidXRlKCdmb3InLCBmb3JFbGVtZW50KTsKCWxhYmVsRWxlbWVudC5jbGFzc05hbWUgPSBlbGVtZW50Q2xhc3M7Cgl2YXIgbGFiZWxUZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOwoJbGFiZWxFbGVtZW50LmFwcGVuZENoaWxkKGxhYmVsVGV4dE5vZGUpOwoJcmV0dXJuIGxhYmVsRWxlbWVudDsKfQpmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgewoJdmFyIGRjID0gZG9jdW1lbnQuY29va2llOwoJdmFyIHByZWZpeCA9IG5hbWUgKyAiPSI7Cgl2YXIgYmVnaW4gPSBkYy5pbmRleE9mKCI7ICIgKyBwcmVmaXgpOwoJaWYgKGJlZ2luID09IC0xKSB7CgkJYmVnaW4gPSBkYy5pbmRleE9mKHByZWZpeCk7CgkJaWYgKGJlZ2luICE9IDApIHJldHVybiBudWxsOwoJfSBlbHNlIHsKICAgIAliZWdpbiArPSAyOwogICAgfQogIAl2YXIgZW5kID0gZG9jdW1lbnQuY29va2llLmluZGV4T2YoIjsiLCBiZWdpbik7CglpZiAoZW5kID09IC0xKSB7CgkJZW5kID0gZGMubGVuZ3RoOwoJfQogIAlyZXR1cm4gdW5lc2NhcGUoZGMuc3Vic3RyaW5nKGJlZ2luICsgcHJlZml4Lmxlbmd0aCwgZW5kKSk7Cn0KLS0+Cjwvc2NyaXB0PgpFT0Y7Cn0KZnVuY3Rpb24gZ2x4X2ltYWdlX2VkaXRfb3B0cygkZXZlbnQsICRzdGVwKSB7CgkkaWQgPSBncHMoJ2lkJyk7CglnbG9iYWwgJGltZ19kaXI7CgkkcnMgPSBzYWZlX3JvdygiKiIsICJ0eHBfaW1hZ2UiLCAiaWQ9JyRpZCciKTsKCWlmICgkcnMpIHsKCQlleHRyYWN0KCRycyk7Cgl9IGVsc2UgewoJICAgIHJldHVybjsKCX07CiAgICAvLyBjaGVjayBpZiBnbHhfYWRtaW4gY3NzIGlzIGZvdW5kLCBpZiBub3QgZm91bmQgY3JlYXRlIGl0CiAgICAkcnMgPSBzYWZlX3JvdygibmFtZSIsICJ0eHBfY3NzIiwgIm5hbWU9J2dseF9hZG1pbl9pbWFnZScgbGltaXQgMSIpOwogICAgaWYgKCEkcnMpIHsKICAgICAgICAkY3NzID0gImJHRmlaV3d1YVc1c2FXNWxJSHNOQ2dsdFlYSm5hVzQ2SURWd2VEc0pEUXA5Q1EwS0RRcHNZV0psYkM1aWJHOWpheUI3RFFvSmJXRnlaMmx1T2lBMWNIZ2dOWEI0SURBZ01Ec0pEUW9KWkdsemNHeGhlVG9nWW14dlkyczdEUXA5RFFvTkNpNXlaWE5wZW1VZ2V3MEtDV1pzYjJGME9pQnNaV1owT3cwS2ZRMEtEUW91Y205MFlYUmxJSHNOQ2dsbWJHOWhkRG9nY21sbmFIUTdEUXA5RFFvTkNtaHlJSHNOQ2dsaWIzSmtaWEl0WW05MGRHOXRPaUF4Y0hnZ2MyOXNhV1FnSTBSRVJFUkVSRHNOQ2dsaWIzSmtaWEl0ZEc5d09pQnViMjVsT3cwS0NXSnZjbVJsY2kxeWFXZG9kRG9nYm05dVpUc05DZ2xpYjNKa1pYSXRiR1ZtZERvZ2JtOXVaVHNOQ2dsb1pXbG5hSFE2SURGd2VEc05DZ2xqYkdWaGNqb2dZbTkwYURzTkNuMD0iOwogICAgICAgIHNhZmVfaW5zZXJ0KCJ0eHBfY3NzIiwgIm5hbWU9J2dseF9hZG1pbl9pbWFnZScsIGNzcz0nJGNzcyciKTsKICAgIH07CiAgICBlY2hvPDw8RU9GCjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0Kd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewpFT0Y7CiAgICBpZiAoSElERVRYUCA9PSAxKXsKICAgICAgICBlY2hvICIKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbNl0uc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbN10uc3R5bGUuZGlzcGxheSA9ICdub25lJzsiOwogICAgfTsKICAgIGVjaG8gIgoJLy8gYWRkIHNvbWUgc3R5bGUgdG8gdGhpcyEhISEKCWxvYWRDU1MoJ2Nzcy5waHA/bj1nbHhfYWRtaW5faW1hZ2UnKTsKCS8vYWxlcnQoZ2V0Q29va2llKCdnbHhfaW1hZ2VfbGFyZ2UnKSArIFwiIGFuZCBcIiArIGdldENvb2tpZSgnZ2x4X2ltYWdlX3RodW1iJykpOwoJLy8gY2hlY2tib3ggcmVzaXplIGxhcmdlCgl2YXIgaW5wdXREb1Jlc2l6ZUxhcmdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCWlucHV0RG9SZXNpemVMYXJnZS5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnZG9SZXNpemVMYXJnZScpOwoJaW5wdXREb1Jlc2l6ZUxhcmdlLnNldEF0dHJpYnV0ZSgnaWQnLCAnZG9SZXNpemVMYXJnZScpOwoJaW5wdXREb1Jlc2l6ZUxhcmdlLnNldEF0dHJpYnV0ZSgndHlwZScsICdjaGVja2JveCcpOwoJaW5wdXREb1Jlc2l6ZUxhcmdlLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnMScpOwoJaW5wdXREb1Jlc2l6ZUxhcmdlLmNoZWNrZWQgPSBmYWxzZTsKCXZhciBsYWJlbERvUmVzaXplTGFyZ2UgPSBjcmVhdGVMYWJlbCgnZG9SZXNpemVMYXJnZScsICdSZXNpemUgbGFyZ2UgaW1hZ2UnLCAnaW5saW5lJyk7Cgl2YXIgcERvUmVzaXplTGFyZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7CglwRG9SZXNpemVMYXJnZS5hcHBlbmRDaGlsZChpbnB1dERvUmVzaXplTGFyZ2UpOwoJcERvUmVzaXplTGFyZ2UuYXBwZW5kQ2hpbGQobGFiZWxEb1Jlc2l6ZUxhcmdlKTsKCS8vIGNoZWNrYm94IHJlc2l6ZSB0aHVtYgoJdmFyIGlucHV0RG9SZXNpemVUaHVtYiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CglpbnB1dERvUmVzaXplVGh1bWIuc2V0QXR0cmlidXRlKCduYW1lJywgJ2RvUmVzaXplVGh1bWInKTsKCWlucHV0RG9SZXNpemVUaHVtYi5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2RvUmVzaXplVGh1bWInKTsKCWlucHV0RG9SZXNpemVUaHVtYi5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnY2hlY2tib3gnKTsKCWlucHV0RG9SZXNpemVUaHVtYi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJzEnKTsKCWlucHV0RG9SZXNpemVUaHVtYi5jaGVja2VkID0gdHJ1ZTsKCXZhciBsYWJlbERvUmVzaXplVGh1bWIgPSBjcmVhdGVMYWJlbCgnZG9SZXNpemVUaHVtYicsICdDcmVhdGUgdGh1bWJuYWlsJywgJ2lubGluZScpOwoJdmFyIHBEb1Jlc2l6ZVRodW1iID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwoJcERvUmVzaXplVGh1bWIuYXBwZW5kQ2hpbGQoaW5wdXREb1Jlc2l6ZVRodW1iKTsKCXBEb1Jlc2l6ZVRodW1iLmFwcGVuZENoaWxkKGxhYmVsRG9SZXNpemVUaHVtYik7CgkvLyBjaGVja0JveCBzcWFyZUltYWdlCgl2YXIgaW5wdXRTcXVhcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwoJaW5wdXRTcXVhcmUuc2V0QXR0cmlidXRlKCduYW1lJywgJ3NxdWFyZScpOwoJaW5wdXRTcXVhcmUuc2V0QXR0cmlidXRlKCdpZCcsICdzcXVhcmUnKTsKCWlucHV0U3F1YXJlLnNldEF0dHJpYnV0ZSgndHlwZScsICdjaGVja2JveCcpOwoJaW5wdXRTcXVhcmUuc2V0QXR0cmlidXRlKCd2YWx1ZScsICcxJyk7CglpbnB1dFNxdWFyZS5jaGVja2VkID0gZmFsc2U7Cgl2YXIgbGFiZWxTcXVhcmUgPSBjcmVhdGVMYWJlbCgnc3F1YXJlJywgJ1NxdWFyZSB0aHVtYm5haWwnLCAnaW5saW5lJyk7Cgl2YXIgcFNxdWFyZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKCXBTcXVhcmUuYXBwZW5kQ2hpbGQoaW5wdXRTcXVhcmUpOwoJcFNxdWFyZS5hcHBlbmRDaGlsZChsYWJlbFNxdWFyZSk7CgkvLyBpbnB1dCB0aHVtYlNpemUKCXZhciB0aHVtYlZhbHVlID0gKGdldENvb2tpZSgnZ2x4X2ltYWdlX3RodW1iJykpID8gZ2V0Q29va2llKCdnbHhfaW1hZ2VfdGh1bWInKSA6IDEwMDsKCXZhciBpbnB1dFRodW1iU2l6ZSA9IGNyZWF0ZUlucHV0KCd0aHVtYlNpemUnLCAndGh1bWJTaXplJywgdGh1bWJWYWx1ZSk7Cgl2YXIgbGFiZWxUaHVtYlNpemUgPSBjcmVhdGVMYWJlbCgndGh1bWJTaXplJywgJ1RodW1ic2l6ZSAocHgpJywgJ2Jsb2NrJyk7Cgl2YXIgcFRodW1iID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwoJcFRodW1iLmFwcGVuZENoaWxkKGxhYmVsVGh1bWJTaXplKTsKCXBUaHVtYi5hcHBlbmRDaGlsZChpbnB1dFRodW1iU2l6ZSk7CgkvLyByYWRpbyBidXR0b24gdGh1bWJzaXplLXNpZGVoZWlnaHQKCXZhciBpbnB1dFJhZGlvVGh1bWJIZWlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwoJaW5wdXRSYWRpb1RodW1iSGVpZ2h0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd0aHVtYlZhbHVlJyk7CglpbnB1dFJhZGlvVGh1bWJIZWlnaHQuc2V0QXR0cmlidXRlKCdpZCcsICdyYWRpb1RodW1iJyk7CglpbnB1dFJhZGlvVGh1bWJIZWlnaHQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3JhZGlvJyk7CglpbnB1dFJhZGlvVGh1bWJIZWlnaHQuc2V0QXR0cmlidXRlKCd2YWx1ZScsICdoZWlnaHQnKTsKCWlucHV0UmFkaW9UaHVtYkhlaWdodC5jaGVja2VkID0gZmFsc2U7Cgl2YXIgbGFiZWxSYWRpb1RodW1iSGVpZ2h0ID0gY3JlYXRlTGFiZWwoJ3JhZGlvVGh1bWInLCAnaGVpZ2h0JywgJ2lubGluZScpOwoJdmFyIHBSYWRpb1RodW1iSGVpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwoJcFJhZGlvVGh1bWJIZWlnaHQuYXBwZW5kQ2hpbGQoaW5wdXRSYWRpb1RodW1iSGVpZ2h0KTsKCXBSYWRpb1RodW1iSGVpZ2h0LmFwcGVuZENoaWxkKGxhYmVsUmFkaW9UaHVtYkhlaWdodCk7CgkvLyByYWRpbyBidXR0b24gdGh1bWJzaXplLXNpZGV3aWR0aAoJdmFyIGlucHV0UmFkaW9UaHVtYldpZHRoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCWlucHV0UmFkaW9UaHVtYldpZHRoLnNldEF0dHJpYnV0ZSgnbmFtZScsICd0aHVtYlZhbHVlJyk7CglpbnB1dFJhZGlvVGh1bWJXaWR0aC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3JhZGlvVGh1bWInKTsKCWlucHV0UmFkaW9UaHVtYldpZHRoLnNldEF0dHJpYnV0ZSgndHlwZScsICdyYWRpbycpOwoJaW5wdXRSYWRpb1RodW1iV2lkdGguc2V0QXR0cmlidXRlKCd2YWx1ZScsICd3aWR0aCcpOwoJaW5wdXRSYWRpb1RodW1iV2lkdGguY2hlY2tlZCA9IGZhbHNlOwoJdmFyIGxhYmVsUmFkaW9UaHVtYldpZHRoID0gY3JlYXRlTGFiZWwoJ3JhZGlvVGh1bWInLCAnd2lkdGgnLCAnaW5saW5lJyk7Cgl2YXIgcFJhZGlvVGh1bWJXaWR0aCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKCXBSYWRpb1RodW1iV2lkdGguYXBwZW5kQ2hpbGQoaW5wdXRSYWRpb1RodW1iV2lkdGgpOwoJcFJhZGlvVGh1bWJXaWR0aC5hcHBlbmRDaGlsZChsYWJlbFJhZGlvVGh1bWJXaWR0aCk7CgkvLyByYWRpbyBidXR0b24gdGh1bWJzaXplLXNpZGVsb25nZXN0Cgl2YXIgaW5wdXRSYWRpb1RodW1iTG9uZ2VzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CglpbnB1dFJhZGlvVGh1bWJMb25nZXN0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd0aHVtYlZhbHVlJyk7CglpbnB1dFJhZGlvVGh1bWJMb25nZXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncmFkaW9UaHVtYicpOwoJaW5wdXRSYWRpb1RodW1iTG9uZ2VzdC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAncmFkaW8nKTsKCWlucHV0UmFkaW9UaHVtYkxvbmdlc3Quc2V0QXR0cmlidXRlKCd2YWx1ZScsICdsb25nZXN0Jyk7CglpbnB1dFJhZGlvVGh1bWJMb25nZXN0LmNoZWNrZWQgPSBmYWxzZTsKCXZhciBsYWJlbFJhZGlvVGh1bWJMb25nZXN0ID0gY3JlYXRlTGFiZWwoJ3JhZGlvVGh1bWInLCAnbG9uZ2VzdCBzaWRlJywgJ2lubGluZScpOwoJdmFyIHBSYWRpb1RodW1iTG9uZ2VzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKCXBSYWRpb1RodW1iTG9uZ2VzdC5hcHBlbmRDaGlsZChpbnB1dFJhZGlvVGh1bWJMb25nZXN0KTsKCXBSYWRpb1RodW1iTG9uZ2VzdC5hcHBlbmRDaGlsZChsYWJlbFJhZGlvVGh1bWJMb25nZXN0KTsKCS8vIGlucHV0IGxhcmdlU2l6ZQoJdmFyIGxhcmdlVmFsdWUgPSAoZ2V0Q29va2llKCdnbHhfaW1hZ2VfbGFyZ2UnKSkgPyBnZXRDb29raWUoJ2dseF9pbWFnZV9sYXJnZScpIDogNTAwOwoJdmFyIGlucHV0TGFyZ2VTaXplID0gY3JlYXRlSW5wdXQoJ2xhcmdlU2l6ZScsICdsYXJnZVNpemUnLCBsYXJnZVZhbHVlKTsKCXZhciBsYWJlbExhcmdlU2l6ZSA9IGNyZWF0ZUxhYmVsKCdsYXJnZVNpemUnLCAnTGFyZ2VzaXplIChweCknLCAnYmxvY2snKTsKCXZhciBwTGFyZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7CglwTGFyZ2UuYXBwZW5kQ2hpbGQobGFiZWxMYXJnZVNpemUpOwoJcExhcmdlLmFwcGVuZENoaWxkKGlucHV0TGFyZ2VTaXplKTsKCS8vIGlucHV0IHF1YWxpdHkKCXZhciBpbnB1dFF1YVRodW1iID0gY3JlYXRlSW5wdXQoJ3RodW1iUXVhJywgJ3RodW1iUXVhJywgJzkwJyk7Cgl2YXIgbGFiZWxRdWFUaHVtYiA9IGNyZWF0ZUxhYmVsKCd0aHVtYlF1YScsICdRdWFsaXR5IFRodW1iICgxMC0xMDApJywgJ2Jsb2NrJyk7Cgl2YXIgcFF1YVRodW1iID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwoJcFF1YVRodW1iLmFwcGVuZENoaWxkKGxhYmVsUXVhVGh1bWIpOwoJcFF1YVRodW1iLmFwcGVuZENoaWxkKGlucHV0UXVhVGh1bWIpOwoJLy8gaW5wdXQgcXVhbGl0eQoJdmFyIGlucHV0UXVhTGFyZ2UgPSBjcmVhdGVJbnB1dCgnbGFyZ2VRdWEnLCAnbGFyZ2VRdWEnLCAnODAnKTsKCXZhciBsYWJlbFF1YUxhcmdlID0gY3JlYXRlTGFiZWwoJ2xhcmdlUXVhJywgJ1F1YWxpdHkgTGFyZ2UgSW1hZ2UgKDEwLTEwMCknLCAnYmxvY2snKTsKCXZhciBwUXVhTGFyZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7CglwUXVhTGFyZ2UuYXBwZW5kQ2hpbGQobGFiZWxRdWFMYXJnZSk7CglwUXVhTGFyZ2UuYXBwZW5kQ2hpbGQoaW5wdXRRdWFMYXJnZSk7CgkvLyBhZGQgaGlkZGVuIGZpZWxkcwoJdmFyIGlucHV0SGlkZGVuQWN0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCWlucHV0SGlkZGVuQWN0aW9uLnNldEF0dHJpYnV0ZSgnbmFtZScsICdhY3Rpb24nKTsKCWlucHV0SGlkZGVuQWN0aW9uLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTsKCWlucHV0SGlkZGVuQWN0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAncmVzaXplJyk7Cgl2YXIgaW5wdXRIaWRkZW5TdGVwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCWlucHV0SGlkZGVuU3RlcC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnc3RlcCcpOwoJaW5wdXRIaWRkZW5TdGVwLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTsKCWlucHV0SGlkZGVuU3RlcC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJ2ltYWdlX2VkaXQnKTsKCXZhciBpbnB1dEhpZGRlbklkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCWlucHV0SGlkZGVuSWQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2lkJyk7CglpbnB1dEhpZGRlbklkLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTsKCWlucHV0SGlkZGVuSWQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCdpZCcpLml0ZW0oMCkudmFsdWUpOwoJdmFyIGlucHV0SGlkZGVuRXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwoJaW5wdXRIaWRkZW5FdmVudC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnZXZlbnQnKTsKCWlucHV0SGlkZGVuRXZlbnQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpOwoJaW5wdXRIaWRkZW5FdmVudC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJ2ltYWdlJyk7Cgl2YXIgaW5wdXRIaWRkZW5GcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CglpbnB1dEhpZGRlbkZzLnNldEF0dHJpYnV0ZSgnbmFtZScsICdNQVhfRklMRV9TSVpFJyk7CglpbnB1dEhpZGRlbkZzLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTsKCWlucHV0SGlkZGVuRnMuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCdNQVhfRklMRV9TSVpFJykuaXRlbSgwKS52YWx1ZSk7CgkvL2FkZCBzdWJtaXQKCXZhciBzdWJtaXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwoJc3VibWl0LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnc21hbGxlcmJveCcpOwoJc3VibWl0LnNldEF0dHJpYnV0ZSgndHlwZScsICdzdWJtaXQnKTsKCXN1Ym1pdC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJ1Jlc2l6ZScpOwoJc3VibWl0LnNldEF0dHJpYnV0ZSgnbmFtZScsICdNb2QnKTsKCS8vIGFkZCBmb3JtCgl2YXIgZm9ybVJlc2l6ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKCWZvcm1SZXNpemUuc2V0QXR0cmlidXRlKCdhY3Rpb24nLCAnaW5kZXgucGhwJyk7Cglmb3JtUmVzaXplLnNldEF0dHJpYnV0ZSgnbWV0aG9kJywgJ3Bvc3QnKTsKCS8vYXBwZW5kIGZvcm0KCWZvcm1SZXNpemUuYXBwZW5kQ2hpbGQocExhcmdlKTsKCWZvcm1SZXNpemUuYXBwZW5kQ2hpbGQocFRodW1iKTsKCWZvcm1SZXNpemUuYXBwZW5kQ2hpbGQocFJhZGlvVGh1bWJXaWR0aCk7Cglmb3JtUmVzaXplLmFwcGVuZENoaWxkKHBSYWRpb1RodW1iSGVpZ2h0KTsKCWZvcm1SZXNpemUuYXBwZW5kQ2hpbGQocFJhZGlvVGh1bWJMb25nZXN0KTsKCS8vIHRoaXMgdHdvIGxpbmVzIGFyZSBjb21tZW50ZWQgZm9yIG5vdywgcGVyc29uYWxseSBJIHRoaW5rIGl0IGlzIHRvbyBjbHV0dGVyZWQgd2l0aCB0aGVtIHRoZXJlLgoJLy9mb3JtUmVzaXplLmFwcGVuZENoaWxkKHBRdWFMYXJnZSk7CgkvL2Zvcm1SZXNpemUuYXBwZW5kQ2hpbGQocFF1YVRodW1iKTsKCWZvcm1SZXNpemUuYXBwZW5kQ2hpbGQocERvUmVzaXplTGFyZ2UpOwoJZm9ybVJlc2l6ZS5hcHBlbmRDaGlsZChwRG9SZXNpemVUaHVtYik7Cglmb3JtUmVzaXplLmFwcGVuZENoaWxkKHBTcXVhcmUpOwoJZm9ybVJlc2l6ZS5hcHBlbmRDaGlsZChpbnB1dEhpZGRlbkFjdGlvbik7Cglmb3JtUmVzaXplLmFwcGVuZENoaWxkKGlucHV0SGlkZGVuSWQpOwoJZm9ybVJlc2l6ZS5hcHBlbmRDaGlsZChpbnB1dEhpZGRlbkZzKTsKCWZvcm1SZXNpemUuYXBwZW5kQ2hpbGQoaW5wdXRIaWRkZW5FdmVudCk7Cglmb3JtUmVzaXplLmFwcGVuZENoaWxkKGlucHV0SGlkZGVuU3RlcCk7Cglmb3JtUmVzaXplLmFwcGVuZENoaWxkKHN1Ym1pdCk7CgkvLyBSb3RhdGUgaW1hZ2UKCXZhciBmb3JtUm90YXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOwoJZm9ybVJvdGF0ZS5zZXRBdHRyaWJ1dGUoJ2FjdGlvbicsICdpbmRleC5waHAnKTsKCWZvcm1Sb3RhdGUuc2V0QXR0cmlidXRlKCdtZXRob2QnLCAncG9zdCcpOwoJLy8gcmFkaW8gYnV0dG9uIHJvdGF0ZSAxODAKCXZhciBpbnB1dFJhZGlvMTgwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCWlucHV0UmFkaW8xODAuc2V0QXR0cmlidXRlKCduYW1lJywgJ3JvdGF0ZVZhbHVlJyk7CglpbnB1dFJhZGlvMTgwLnNldEF0dHJpYnV0ZSgnaWQnLCAncmFkaW8xODAnKTsKCWlucHV0UmFkaW8xODAuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3JhZGlvJyk7CglpbnB1dFJhZGlvMTgwLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnMTgwJyk7CglpbnB1dFJhZGlvMTgwLmNoZWNrZWQgPSBmYWxzZTsKCXZhciBsYWJlbFJhZGlvMTgwID0gY3JlYXRlTGFiZWwoJ3JhZGlvMTgwJywgJzE4MCcsICdpbmxpbmUnKTsKCXZhciBwUmFkaW8xODAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7CglwUmFkaW8xODAuYXBwZW5kQ2hpbGQoaW5wdXRSYWRpbzE4MCk7CglwUmFkaW8xODAuYXBwZW5kQ2hpbGQobGFiZWxSYWRpbzE4MCk7CgkvLyByYWRpbyBidXR0b24gcm90YXRlIDkwIENXCgl2YXIgaW5wdXRSYWRpbzkwQ3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwoJaW5wdXRSYWRpbzkwQ3cuc2V0QXR0cmlidXRlKCduYW1lJywgJ3JvdGF0ZVZhbHVlJyk7CglpbnB1dFJhZGlvOTBDdy5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3JhZGlvOTBDdycpOwoJaW5wdXRSYWRpbzkwQ3cuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3JhZGlvJyk7CglpbnB1dFJhZGlvOTBDdy5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJzkwQ1cnKTsKCWlucHV0UmFkaW85MEN3LmNoZWNrZWQgPSBmYWxzZTsKCXZhciBsYWJlbFJhZGlvOTBDdyA9IGNyZWF0ZUxhYmVsKCdyYWRpbzkwQ3cnLCAnOTAgQ1cnLCAnaW5saW5lJyk7Cgl2YXIgcFJhZGlvOTBDdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKCXBSYWRpbzkwQ3cuYXBwZW5kQ2hpbGQoaW5wdXRSYWRpbzkwQ3cpOwoJcFJhZGlvOTBDdy5hcHBlbmRDaGlsZChsYWJlbFJhZGlvOTBDdyk7CgkvLyByYWRpbyBidXR0b24gcm90YXRlIDkwIENDVwoJdmFyIGlucHV0UmFkaW85MENjdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CglpbnB1dFJhZGlvOTBDY3cuc2V0QXR0cmlidXRlKCduYW1lJywgJ3JvdGF0ZVZhbHVlJyk7CglpbnB1dFJhZGlvOTBDY3cuc2V0QXR0cmlidXRlKCdpZCcsICdyYWRpbzkwQ2N3Jyk7CglpbnB1dFJhZGlvOTBDY3cuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3JhZGlvJyk7CglpbnB1dFJhZGlvOTBDY3cuc2V0QXR0cmlidXRlKCd2YWx1ZScsICc5MENDVycpOwoJaW5wdXRSYWRpbzkwQ2N3LmNoZWNrZWQgPSBmYWxzZTsKCXZhciBsYWJlbFJhZGlvOTBDY3cgPSBjcmVhdGVMYWJlbCgncmFkaW85MENjdycsICc5MCBDQ1cnLCAnaW5saW5lJyk7Cgl2YXIgcFJhZGlvOTBDY3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7CglwUmFkaW85MENjdy5hcHBlbmRDaGlsZChpbnB1dFJhZGlvOTBDY3cpOwoJcFJhZGlvOTBDY3cuYXBwZW5kQ2hpbGQobGFiZWxSYWRpbzkwQ2N3KTsKCS8vIHNvbWUgaGlkZGVuIGZpZWxkcwoJdmFyIGlucHV0Um90YXRlSGlkZGVuQWN0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCWlucHV0Um90YXRlSGlkZGVuQWN0aW9uLnNldEF0dHJpYnV0ZSgnbmFtZScsICdhY3Rpb24nKTsKCWlucHV0Um90YXRlSGlkZGVuQWN0aW9uLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTsKCWlucHV0Um90YXRlSGlkZGVuQWN0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAncm90YXRlJyk7Cgl2YXIgaW5wdXRSb3RhdGVIaWRkZW5TdGVwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCWlucHV0Um90YXRlSGlkZGVuU3RlcC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnc3RlcCcpOwoJaW5wdXRSb3RhdGVIaWRkZW5TdGVwLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTsKCWlucHV0Um90YXRlSGlkZGVuU3RlcC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJ2ltYWdlX2VkaXQnKTsKCXZhciBpbnB1dFJvdGF0ZUhpZGRlbklkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCWlucHV0Um90YXRlSGlkZGVuSWQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2lkJyk7CglpbnB1dFJvdGF0ZUhpZGRlbklkLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTsKCWlucHV0Um90YXRlSGlkZGVuSWQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCdpZCcpLml0ZW0oMCkudmFsdWUpOwoJdmFyIGlucHV0Um90YXRlSGlkZGVuRXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwoJaW5wdXRSb3RhdGVIaWRkZW5FdmVudC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnZXZlbnQnKTsKCWlucHV0Um90YXRlSGlkZGVuRXZlbnQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpOwoJaW5wdXRSb3RhdGVIaWRkZW5FdmVudC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJ2ltYWdlJyk7Cgl2YXIgc3VibWl0Um90YXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCXN1Ym1pdFJvdGF0ZS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ3NtYWxsZXJib3gnKTsKCXN1Ym1pdFJvdGF0ZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnc3VibWl0Jyk7CglzdWJtaXRSb3RhdGUuc2V0QXR0cmlidXRlKCd2YWx1ZScsICdSb3RhdGUnKTsKCXN1Ym1pdFJvdGF0ZS5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnTW9kJyk7CgoJdmFyIGltZ1RodW1ibmFpbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwoJaW1nVGh1bWJuYWlsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAndGh1bWJuYWlsJyk7CglpbWdUaHVtYm5haWwuc2V0QXR0cmlidXRlKCdzcmMnLCAnIi5odS4kaW1nX2Rpci4iLyIuJGlkLiJ0Ii4kZXh0LiInKTsKCWltZ1RodW1ibmFpbC5zZXRBdHRyaWJ1dGUoJ2FsdCcsICd0aHVtYm5haWwgb2YgdGhlIHBpY3R1cmUnKTsKCWltZ1RodW1ibmFpbC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjFlbSAwOycpOwoKCS8vIGFwcGVuZCBmb3JtUm90YXRlCglmb3JtUm90YXRlLmFwcGVuZENoaWxkKHBSYWRpbzE4MCk7Cglmb3JtUm90YXRlLmFwcGVuZENoaWxkKHBSYWRpbzkwQ3cpOwoJZm9ybVJvdGF0ZS5hcHBlbmRDaGlsZChwUmFkaW85MENjdyk7Cglmb3JtUm90YXRlLmFwcGVuZENoaWxkKGlucHV0Um90YXRlSGlkZGVuQWN0aW9uKTsKCWZvcm1Sb3RhdGUuYXBwZW5kQ2hpbGQoaW5wdXRSb3RhdGVIaWRkZW5JZCk7Cglmb3JtUm90YXRlLmFwcGVuZENoaWxkKGlucHV0Um90YXRlSGlkZGVuRXZlbnQpOwoJZm9ybVJvdGF0ZS5hcHBlbmRDaGlsZChpbnB1dFJvdGF0ZUhpZGRlblN0ZXApOwoJZm9ybVJvdGF0ZS5hcHBlbmRDaGlsZChzdWJtaXRSb3RhdGUpOwoJZm9ybVJvdGF0ZS5hcHBlbmRDaGlsZChpbWdUaHVtYm5haWwpOwoJLy8gY3JlYXRlIGEgcGxhY2Vob2xkZXJzIGZvciByZXNpemUgYW5kIHJvdGF0ZQoJdmFyIGRpdlJlc2l6ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoJZGl2UmVzaXplLmNsYXNzTmFtZSA9ICdyZXNpemUnOwoJZGl2UmVzaXplLmFwcGVuZENoaWxkKGZvcm1SZXNpemUpOwoJdmFyIGRpdlJvdGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwoJZGl2Um90YXRlLmNsYXNzTmFtZSA9ICdyb3RhdGUnOwoJZGl2Um90YXRlLmFwcGVuZENoaWxkKGZvcm1Sb3RhdGUpOwoJLy8gc2luY2Ugd2UgYXJlIHVzaW5nIGZsb2F0cyBvbiB0aGUgdHdvIGFib3ZlLCB3ZSBuZWVkIHRvIGNsZWFyLi4uCgl2YXIgaHJDbGVhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2hyJyk7CglockNsZWFyLmNsYXNzTmFtZSA9ICdjbGVhcic7CgkvLyBnZXQgdGhlIHVwbG9hZCBmb3JtIGVsZW1lbnQKCXZhciBmb3JtVXBsb2FkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvcm0nKS5pdGVtKDEpOwoJZm9ybVVwbG9hZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkaXZSZXNpemUsIGZvcm1VcGxvYWQpOwoJZm9ybVVwbG9hZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkaXZSb3RhdGUsIGZvcm1VcGxvYWQpOwoJZm9ybVVwbG9hZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShockNsZWFyLCBmb3JtVXBsb2FkKTsKfQpmdW5jdGlvbiBjcmVhdGVJbnB1dChuYW1lLCBpZCwgdmFsdWUpIHsKCXZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCWVsZW1lbnQuc2V0QXR0cmlidXRlKCduYW1lJywgbmFtZSk7CgllbGVtZW50LnNldEF0dHJpYnV0ZSgnaWQnLCBpZCk7CgllbGVtZW50LnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZSk7CgllbGVtZW50LmNsYXNzTmFtZSA9ICdlZGl0JzsKCXJldHVybiBlbGVtZW50Owp9CmZ1bmN0aW9uIGNyZWF0ZUxhYmVsKGZvckVsZW1lbnQsIHRleHQsIGVsZW1lbnRDbGFzcykgewoJdmFyIGxhYmVsRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7CglsYWJlbEVsZW1lbnQuc2V0QXR0cmlidXRlKCdmb3InLCBmb3JFbGVtZW50KTsKCWxhYmVsRWxlbWVudC5jbGFzc05hbWUgPSBlbGVtZW50Q2xhc3M7Cgl2YXIgbGFiZWxUZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpOwoJbGFiZWxFbGVtZW50LmFwcGVuZENoaWxkKGxhYmVsVGV4dE5vZGUpOwoJcmV0dXJuIGxhYmVsRWxlbWVudDsKfQpmdW5jdGlvbiBsb2FkQ1NTKGZpbGVOYW1lKSB7Cgl2YXIgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJykuaXRlbSgwKTsKCXZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7CglzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgZmlsZU5hbWUpOwoJc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZSgncmVsJywgJ3N0eWxlc2hlZXQnKTsKCXN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9jc3MnKTsKCWhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTsKfQovKgogKiBDb29raWUgc3R1ZmYKICoKICogaHR0cDovL3d3dy53ZWJyZWZlcmVuY2UuY29tL2pzL2NvbHVtbjgvaW5kZXguaHRtbAogKgogKi8KZnVuY3Rpb24gc2V0Q29va2llKG5hbWUsIHZhbHVlLCBleHBpcmVzLCBwYXRoLCBkb21haW4sIHNlY3VyZSkgewoJdmFyIGN1ckNvb2tpZSA9IG5hbWUgKyAnPScgKyBlc2NhcGUodmFsdWUpICsKICAgIAkoKGV4cGlyZXMpID8gJzsgZXhwaXJlcz0nICsgZXhwaXJlcy50b0xvY2FsZVN0cmluZygpIDogJycpICsKICAgIAkoKHBhdGgpID8gJzsgcGF0aD0nICsgcGF0aCA6ICcnKSArCiAgICAJKChkb21haW4pID8gJzsgZG9tYWluPScgKyBkb21haW4gOiAnJykgKwogICAgCSgoc2VjdXJlKSA/ICc7IHNlY3VyZScgOiAnJyk7Cglkb2N1bWVudC5jb29raWUgPSBjdXJDb29raWU7Cn0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsKCXZhciBkYyA9IGRvY3VtZW50LmNvb2tpZTsKCXZhciBwcmVmaXggPSBuYW1lICsgJz0nOwoJdmFyIGJlZ2luID0gZGMuaW5kZXhPZignOyAnICsgcHJlZml4KTsKCWlmIChiZWdpbiA9PSAtMSkgewoJCWJlZ2luID0gZGMuaW5kZXhPZihwcmVmaXgpOwoJCWlmIChiZWdpbiAhPSAwKSByZXR1cm4gbnVsbDsKCX0gZWxzZSB7CiAgICAJYmVnaW4gKz0gMjsKICAgIH07CiAgCXZhciBlbmQgPSBkb2N1bWVudC5jb29raWUuaW5kZXhPZignOycsIGJlZ2luKTsKCWlmIChlbmQgPT0gLTEpIHsKCQllbmQgPSBkYy5sZW5ndGg7Cgl9OwogIAlyZXR1cm4gdW5lc2NhcGUoZGMuc3Vic3RyaW5nKGJlZ2luICsgcHJlZml4Lmxlbmd0aCwgZW5kKSk7Cn0KZnVuY3Rpb24gZGVsZXRlQ29va2llKG5hbWUsIHBhdGgsIGRvbWFpbikgewoJaWYgKGdldENvb2tpZShuYW1lKSkgewoJCWRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyAnPScgKwogICAgCQkoKHBhdGgpID8gJzsgcGF0aD0nICsgcGF0aCA6ICcnKSArCiAgICAJCSgoZG9tYWluKSA/ICc7IGRvbWFpbj0nICsgZG9tYWluIDogJycpICsKICAgIAkJJzsgZXhwaXJlcz1UaHUsIDAxLUphbi03MCAwMDowMDowMSBHTVQnOwoJfTsKfQotLT4KPC9zY3JpcHQ+CiI7Cn0KIjtzOjQ6InR5cGUiO3M6MToiMSI7czo1OiJvcmRlciI7czoxOiI1IjtzOjM6Im1kNSI7czozMjoiOGRmMDc3MDAzNjE0Njc2NjYxMzBkYWE5MDgzZjU3NzAiO30=
Last edited by graumeister (2006-08-23 01:16:51)
Samui? Samui! (about the life as farang in thailand)
David’s Neighbour
Offline
Re: [plugin] [ORPHAN] glx_admin_image_resize
hi graumeister,
firstly a big thanks for taking over johan’s wonderful plugins.
A request:)
Johan also wrote another great plugin the <a href=“http://johan.galaxen.net/logg/63/textpattern-plugin-glx_if”>glx_if</a>. Would it be very rude of me to ask if you could take over that one too?
Last edited by colak (2005-08-20 07:47:20)
Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.
Offline
Re: [plugin] [ORPHAN] glx_admin_image_resize
Nice of you to adopt his plugins, I really like and use alot glx_admin_image_resize. Will post here if I think of anything.
regards,
Agust
Offline
#4 2005-08-21 19:05:21
- heikki74
- Member
- From: Finland
- Registered: 2004-08-17
- Posts: 100
Re: [plugin] [ORPHAN] glx_admin_image_resize
Hi graumeister, you still have one place to fix:
// get the upload form element, the second form on the page var formUpload = document.getElementsByTagName(‘form’).item(1);
to:
// get the upload form element, the third form on the page var formUpload = document.getElementsByTagName(‘form’).item(2);
Offline
Re: [plugin] [ORPHAN] glx_admin_image_resize
kiitos heikki, i have fixed it and put version 0.5.2b online at grauhirn.org.
Samui? Samui! (about the life as farang in thailand)
David’s Neighbour
Offline
Re: [plugin] [ORPHAN] glx_admin_image_resize
The .txt file still says it´s # glx_admin_image v0.5.1b. and also the plugin in the list of plugins in textpattern admin. But seems to be the updated plugin working.
Just so u know :)
Thx for your work!
regards,
Agust
Offline
Re: [plugin] [ORPHAN] glx_admin_image_resize
druzli: takk fyrir. its fixed
Samui? Samui! (about the life as farang in thailand)
David’s Neighbour
Offline
Re: [plugin] [ORPHAN] glx_admin_image_resize
Hehe nice icelandic !
Np, anytime
regards,
Agust
Offline
Re: [plugin] [ORPHAN] glx_admin_image_resize
@colak: sorry, I managed it to dont read your reply ;) is there anything which needs to be done with that plugin? because Johan will come back and I dont want take to much work of his shoulders ;)
Samui? Samui! (about the life as farang in thailand)
David’s Neighbour
Offline
#10 2005-08-25 23:48:20
- starzabove
- Member

- Registered: 2004-04-13
- Posts: 76
Re: [plugin] [ORPHAN] glx_admin_image_resize
Thanks so much graumeister! What a community we have here!
I had a client very much befuddled by how the last version was appearing in the top right of the image editing window in 4.0.
90+ Textpattern installs and still going…
Offline
#11 2005-09-20 19:23:52
- andjules
- Member
- From: toronto
- Registered: 2004-10-20
- Posts: 44
Re: [plugin] [ORPHAN] glx_admin_image_resize
yes, I also saw the form postioning glitch. thanks for fixing.
I don’t know if it’s a bug, but i can’t seem to get a resized, square thumbnail – please help – when i click ‘square thumbnail’, no matter what other checkboxes are checked/off, the thumbnail ends up being square (good) but it’s not a ‘thumbnail’ – rather a full resolution crop of the top left of the original image
Offline
#12 2005-09-20 20:42:17
- heikki74
- Member
- From: Finland
- Registered: 2004-08-17
- Posts: 100
Re: [plugin] [ORPHAN] glx_admin_image_resize
I don’t know if it’s a bug, but i can’t seem to get a resized, square thumbnail – please help – when i click ‘square thumbnail’, no matter what other checkboxes are checked/off, the thumbnail ends up being square (good) but it’s not a ‘thumbnail’ – rather a full resolution crop of the top left of the original image
That’s how the plugin is supposed to work. Txp has it’s own thumbnail generator which has square option too.
I did modify the plugin (0.5b) to do square cropping differently. If someone wants to take a look at the modified code I put it temporarily for download. Check out the “glx_image_resize” function and inside that the part about thumbs.
Last edited by heikki74 (2005-09-20 20:44:49)
Offline
#13 2005-09-26 02:46:41
- joana
- Member
- Registered: 2005-09-16
- Posts: 11
Re: [plugin] [ORPHAN] glx_admin_image_resize
> heikki74 wrote:
I did modify the plugin (0.5b) to do square cropping differently. If someone wants to take a look at the modified code I put it temporarily for download. Check out the “glx_image_resize” function and inside that the part about thumbs.
————————————
Wow, that’s great! It’s exactly what I was looking for.
I’m using this plugin with rss_thumbpop, and I don’t if that’s supposed to be like this or not, but my thumbs are not being created automatically! I’m using nhn_import to import multiple images, and when I go to content/images, only one of the images gets a thumbnail. For the others, I have to manually create it. Am I missing something?
Last edited by joana (2005-09-26 02:46:58)
Offline
#14 2005-09-26 10:56:02
- aba
- Plugin Author
- Registered: 2004-04-14
- Posts: 119
Re: [plugin] [ORPHAN] glx_admin_image_resize
> I’m using this plugin with rss_thumbpop, and I don’t if that’s supposed to be like this or not, but my thumbs are not being created automatically! I’m using nhn_import to import multiple images, and when I go to content/images, only one of the images gets a thumbnail. For the others, I have to manually create it. Am I missing something?
nhn_import does not support thumbnailing, I took over the plugin and it now does thumbnailing (as well as some other things).
Check it out <a href=“http://forum.textpattern.com/viewtopic.php?id=11428”>here</a></p>
Offline
#15 2005-09-26 13:44:05
- joana
- Member
- Registered: 2005-09-16
- Posts: 11
Re: [plugin] [ORPHAN] glx_admin_image_resize
————————-
> aba wrote:
nhn_import does not support thumbnailing, I took over the plugin and it now does thumbnailing (as well as some other things).
Check it out <a href=“http://forum.textpattern.com/viewtopic.php?id=11428”>here</a></p>
————————-
<strong>I’d tried this plugin beforing using nhn_import, but I got a bunch of errors:</strong>
Notice: Undefined variable: aba_image_importinfo in /home/biriba/public_html/tomaz/textpattern/lib/txplib_misc.php(429) : eval()’d code on line 66
Notice: Undefined variable: aba_image_importinfo in /home/biriba/public_html/tomaz/textpattern/lib/txplib_misc.php(429) : eval()’d code on line 72
Notice: Undefined variable: newy in /home/biriba/public_html/tomaz/textpattern/lib/txplib_misc.php(429) : eval()’d code on line 461
There was a problem reading image info. Check the image file or the permissionsCould not delete fot28_04.jpg – please delete it yourself to prevent reimporting.
Notice: Undefined index: in /home/biriba/public_html/tomaz/textpattern/lib/txplib_misc.php(429) : eval()’d code on line 267
Warning: Division by zero in /home/biriba/public_html/tomaz/textpattern/lib/txplib_misc.php(429) : eval()’d code on line 467
Warning: getimagesize(/home/biriba/public_html/tomaz/images/653): failed to open stream: No such file or directory in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 92
Warning: Division by zero in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 112
Warning: Division by zero in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 112
Warning: imagecreatetruecolor(): Invalid image dimensions in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 211
Notice: Undefined index: image in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 212
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 212
Warning: imagesx(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 352
Warning: imagesy(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 352
Warning: imagecreatetruecolor(): Invalid image dimensions in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 355
Warning: imagecopy(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 366
Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 367
Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 368
Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 369
Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 370
Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 371
Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 372
Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 373
Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 374
Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 250
Notice: Undefined index: image in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 251
Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/biriba/public_html/tomaz/textpattern/lib/class.thumb.php on line 251
There was a problem reading image info. Check the image file or the permissionsCould not delete fot28_02.jpg – please delete it yourself to prevent reimporting.
Notice: Undefined variable: newy in /home/biriba/public_html/tomaz/textpattern/lib/txplib_misc.php(429) : eval()’d code on line 461
There was a problem reading image info. Check the image file or the permissionsCould not delete fot28_03.jpg – please delete it yourself to prevent reimporting.
aba_import_images imported 3 images
Offline