Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 2005-08-20 03:40:07

graumeister
Plugin Author
From: Ban Bang Por, Samui, Thailand
Registered: 2005-01-16
Posts: 167
Website

[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

#2 2005-08-20 07:12:45

colak
Admin
From: Cyprus
Registered: 2004-11-20
Posts: 9,394
Website GitHub Mastodon Twitter

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

#3 2005-08-20 07:20:50

druzli
Member
From: Denmark / Iceland
Registered: 2004-06-28
Posts: 60
Website

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

#5 2005-08-22 12:17:21

graumeister
Plugin Author
From: Ban Bang Por, Samui, Thailand
Registered: 2005-01-16
Posts: 167
Website

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

#6 2005-08-22 13:05:13

druzli
Member
From: Denmark / Iceland
Registered: 2004-06-28
Posts: 60
Website

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

#7 2005-08-22 13:13:18

graumeister
Plugin Author
From: Ban Bang Por, Samui, Thailand
Registered: 2005-01-16
Posts: 167
Website

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

#8 2005-08-23 07:47:10

druzli
Member
From: Denmark / Iceland
Registered: 2004-06-28
Posts: 60
Website

Re: [plugin] [ORPHAN] glx_admin_image_resize

Hehe nice icelandic !

Np, anytime


regards,

Agust

Offline

#9 2005-08-23 11:15:05

graumeister
Plugin Author
From: Ban Bang Por, Samui, Thailand
Registered: 2005-01-16
Posts: 167
Website

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

Board footer

Powered by FluxBB