Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Pages: 1
[Solved] article categories missing
hi
i coded a website for a client and he is doing the updates, so i dont really know whats going on there, but i really dont think, that it was their fault..
cause you cant delete used categories.
strangley a lot of article categories are missing.
in the list on the categories tab and in the pull-down menue in the write tab.
also in the article tab (the article list) you can actually see the category, but when entering edit mode
the category field is blank..
when trying to create such a missing category, txp responds, that this category already exists.
what is it? database problems..?
maybe its causing problems, that i have a lot of categories with exactily the same title (article categories, file categories..?)
couldnt find anything in similar in the forum..
Offline
Re: [Solved] article categories missing
Did you check/correct any issues the database may have using phpMyAdmin or rss_admin_db_manager?
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: [Solved] article categories missing
no, i didnt touch the db yet, cause i just dont know where to check..
shall i install the rss_admin_db_manager..? and look for what..?
sorry, i just have no idea..
Offline
Re: [Solved] article categories missing
Hi
I think Colak asked if you have tried to use the “repair” functionality of phpMyAdmin (or rss_admin_db_manager).
Cheers
Offline
Re: [Solved] article categories missing
like i said, i didnt touch the db, cause i dont know what to look for.
repairing sounds good.
but where..? there is no such button :)
i guess i had to do backups, right? nope, i didnt do that.
but how can a db gets broken..? shall i ask the provider..?
Offline
#6 2009-09-15 13:52:52
- masa
- Member
- From: North Wales, UK
- Registered: 2005-11-25
- Posts: 1,095
Re: [Solved] article categories missing
This once happened to me with an older Textpattern version.
A parent category was accidentally deleted and all the children vanished. Like in your case, when trying to recreate any of the child categories, I got a message that it already exists.
In my case the solution was to find out what the parent category was called and recreate it. After that all was back to normal.
Could that be the problem in your case?
On a side note, this behaviour was fixed in a later version of Textpattern (you can’t delete parents that have children or any categories that are in use), so it might be a good idea to upgrade.
Edit: I now found my old thread describing the problem. I was running 4.0.3 when it happened.
Last edited by masa (2009-09-15 14:22:10)
Offline
Re: [Solved] article categories missing
regarding to this article:
http://forum.textpattern.com/viewtopic.php?pid=183639
the deleting of categories including articles and parent-categories is impossible since 4.07 (hopefully..)
the website is running 4.08
plus all the parent directories are all existing, i guess.
but i found the error.
somehow all the categories are no longer in the right parent category.
its all mixed up, looking very messy.
some categories are displayd as if they are childs of other categories, but they aint.
im now getting the categories back to their original position and for some reason the missing categories are popping up again.
dunno what happend here..
thanks for the attention..
Offline
Re: [Solved] article categories missing
jens31 wrote:
like i said, i didnt touch the db, cause i dont know what to look for.
repairing sounds good.
but where..? there is no such button :)i guess i had to do backups, right? nope, i didnt do that.
but how can a db gets broken..? shall i ask the provider..?
glad you sorted it out. DBs get broken for many reasons, not always the host’s fault. Backing up your db on a regular basis is recommended strongly.
here’s the rss_admin_db_manager plugin for future/current repairs.
YToxMDp7czo0OiJuYW1lIjtzOjIwOiJyc3NfYWRtaW5fZGJfbWFuYWdlciI7czo2OiJhdXRob3IiO3M6OToiUm9iIFNhYmxlIjtzOjEwOiJhdXRob3JfdXJpIjtzOjI3OiJodHRwOi8vd3d3LndpbHNoaXJlb25lLmNvbS8iO3M6NzoidmVyc2lvbiI7czozOiI0LjMiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjI3OiJEYXRhYmFzZSBtYW5hZ2VtZW50IHN5c3RlbS4iO3M6NDoiaGVscCI7czo0Mzg1OiI8cD4KaDEuIFRleHRwYXR0ZXJuIERhdGFiYXNlIE1hbmFnZXI8L3A+CgoJPHA+VGhlIHJzc19hZG1pbl9kYl9tYW5hZ2VyIHBsdWdpbiBhZGRzIDMgbmV3IHRhYnMgdG8geW91ciBUZXh0cGF0dGVybiBhZG1pbiBpbnRlcmZhY2UuICBFYWNoIHRhYiBjb250YWlucyBkaWZmZXJlbnQgZnVuY3Rpb25hbGl0eSB0byBoZWxwIG1hbmFnZTxiciAvPgoKeW91ciA8YSBocmVmPSJodHRwOi8vd3d3Lm15c3FsLmNvbS8iPk15U1FMPC9hPiBkYXRhYmFzZS4gIFlvdSBjYW4gdGhpbmsgb2YgdGhpcyBwbHVnaW4gYXMgYSBsaWdodHdlaWdodCByZXBsYWNlbWVudCBmb3IgPGEgaHJlZj0iaHR0cDovL3d3dy5waHBteWFkbWluLm5ldC9ob21lX3BhZ2UvIj5waHBNeUFkbWluPC9hPi48L3A+CgoJPGgyPkRhdGFiYXNlIEJhY2t1cDwvaDI+CgoJPHA+VGhlIDxzdHJvbmc+REIgQmFja3VwIHRhYjwvc3Ryb25nPiBhbGxvd3MgeW91IHRvIGJhY2t1cCwgZG93bmxvYWQgYW5kIHJlc3RvcmUgdGhlIE15U1FMIGRhdGFiYXNlIHRoYXQgaXMgdXNlZCBmb3IgeW91ciBUZXh0cGF0dGVybiBpbnN0YWxsYXRpb24uPGJyIC8+CgpUaGUgZGF0YWJhc2UgYmFja3VwcyBhbmQgcmVzdG9yZXMgYXJlIHJ1biB1c2luZyBNeVNRTCYjODIxNztzIDxhIGhyZWY9Imh0dHA6Ly9kZXYubXlzcWwuY29tL2RvYy9teXNxbC9lbi9teXNxbGR1bXAuaHRtbCI+bXlzcWxkdW1wPC9hPiBjb21tYW5kLjxiciAvPgoKT24gdGhpcyB0YWIgeW91IGFyZSBhYmxlIHRvOjwvcD4KCgk8dWw+CgkJPGxpPkNyZWF0ZSBhIC5zcWwgYmFja3VwIGZpbGUgb24gd2luZG93cyB3aXRoIHRoZSBhZGRpdGlvbmFsIG9wdGlvbiBvZiBjcmVhdGluZyBhIGd6aXBwZWQgYmFja3VwIG9uICpuaXggb3BlcmF0aW5nIHN5c3RlbXM8L2xpPgoJCTxsaT5WaWV3IGEgbGlzdCBvZiBwcmV2aW91cyBiYWNrdXAgZmlsZXM8L2xpPgoJCTxsaT5SZXN0b3JlIHlvdXIgZGF0YWJhc2UgZnJvbSBvbmUgb2YgdGhlIHByZXZpb3VzIGJhY2t1cHM8L2xpPgoJCTxsaT5Eb3dubG9hZCBhIGJhY2t1cCBmaWxlPC9saT4KCQk8bGk+RGVsZXRlIG9sZCBiYWNrdXBzPC9saT4KCTwvdWw+CgoJPGgyPkJhY2t1cCBQcmVmZXJlbmNlczwvaDI+CgoJPHA+WW91IGhhdmUgdGhlIGFiaWxpdHkgdG8gc2V0IHNldmVyYWwgcHJlZmVyZW5jZXMgcmVsYXRlZCB0byB5b3VyIGRhdGFiYXNlIGJhY2t1cHMuICBZb3UgY2FuIHNldCB0aGVzZSBvcHRpb25zIG9uIHRoZSBiYWNrdXAgdGFiLiAgVGhlIG9wdGlvbnMgaW5jbHVkZTo8L3A+CgoJPHVsPgoJCTxsaT48c3Ryb25nPkxvY2sgVGFibGVzPC9zdHJvbmc+ICYjODIxMTsgWW91ciBob3N0IG1heSBvciBtYXkgbm90IHN1cHBvcnQgdGhpcyBvcHRpb24uICBGb3IgZXhhbXBsZSwgYnkgZGVmYXVsdCwgVGV4dGRyaXZlIGRvZXNuJiM4MjE3O3QgYWxsb3cgdGFibGUgbG9ja2luZy4gIElmIHlvdXIgYmFja3VwIGZhaWxzLCB0cnkgc2V0dGluZyB0aGlzIHRvICYjODIyMDtObyYjODIyMTsuPC9saT4KCQk8bGk+PHN0cm9uZz5EZWJ1ZyBNb2RlPC9zdHJvbmc+ICYjODIxMTsgVHVybmluZyBkZWJ1Z2dpbmcgb24gd2lsbCBlY2hvIHRoZSBjb21tYW5kIGJlaW5nIHJ1biB0byB0aGUgc2NyZWVuLjwvbGk+CgkJPGxpPjxzdHJvbmc+QmFja3VwIFBhdGg8L3N0cm9uZz4gJiM4MjExOyBTZXQgdGhlIGRpcmVjdG9yeSB0aGF0IHlvdXIgYmFja3VwcyB3aWxsIGJlIHNhdmVkIHRvLjwvbGk+CgkJPGxpPjxzdHJvbmc+TXlzcWxkdW1wIFBhdGg8L3N0cm9uZz4gJiM4MjExOyBJdHMgbGlrZWx5IHRoYXQgdGhlIGRlZmF1bHQgd2lsbCB3b3JrIGZvciB5b3UuICBJZiBub3QsIGVudGVyIHRoZSBmdWxsIHBhdGggdGhlIHRoZSBleGVjdXRhYmxlLjwvbGk+CgkJPGxpPjxzdHJvbmc+TXlzcWwgUGF0aDwvc3Ryb25nPiAmIzgyMTE7IEl0cyBsaWtlbHkgdGhhdCB0aGUgZGVmYXVsdCB3aWxsIHdvcmsgZm9yIHlvdS4gIElmIG5vdCwgZW50ZXIgdGhlIGZ1bGwgcGF0aCB0aGUgdGhlIGV4ZWN1dGFibGUuPC9saT4KCTwvdWw+CgoJPGgyPkRhdGFiYXNlIE1hbmFnZXI8L2gyPgoKCTxwPlRoZSA8c3Ryb25nPkRCIE1hbmFnZXIgdGFiPC9zdHJvbmc+IGRpc3BsYXlzIGluZm9ybWF0aW9uIGFib3V0IHlvdXIgTXlTUUwgZGF0YWJhc2UgYW5kIGFsbCBvZiBpdHMgdGFibGVzLiAgQSBkZXRhaWxlZCBsaXN0IGluY2x1ZGVzIHRoZSBuYW1lIG9mIHRoZSB0YWJsZSwgbnVtYmVyIG9mIHJvd3MgYW5kIGZpbGUgc3BhY2UgdXNhZ2UuPGJyIC8+CgpZb3Ugd2lsbCBhbHNvIGJlIGFsZXJ0ZWQgb2YgYW55IG92ZXJoZWFkIG9yIGVycm9ycyB0aGF0IG5lZWQgdG8gYmUgcmVwYWlyZWQuICBUYWJsZXMgY2FuIGJlIHJlcGFpcmVkLCBkcm9wcGVkIG9yIGJhY2tlZCB1cCBmcm9tIHRoaXMgbGlzdGluZy48L3A+CgoJPHVsPgoJCTxsaT5DbGlja2luZyBvbiB0aGUgbmFtZSBvZiB0aGUgdGFibGUgd2lsbCBydW4gYSBzZWxlY3QgKiBbdGFibGUgbmFtZV0gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+PC9zcGFuPiBzdGF0ZW1lbnQgYW5kIHRha2UgeW91IHRvIHRoZSA8c3Ryb25nPlJ1biA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj48L3NwYW4+IHRhYjwvc3Ryb25nPiB0byBkaXNwbGF5IHRoZSByZXN1bHRzLjwvbGk+CgkJPGxpPlJlcGFpciBhIHNpbmdsZSB0YWJsZSBpbiB0aGUgbGlzdGluZyBieSBjbGlja2luZyB0aGUgUmVwYWlyIGxpbmsuPC9saT4KCQk8bGk+UmVwYWlyIGFsbCB0YWJsZXMgaW4gdGhlIGxpc3RpbmcgYnkgY2xpY2tpbmcgdGhlIFJlcGFpciBBbGwgbGluay48L2xpPgoJCTxsaT5CYWNrdXAgYSBzaW5nbGUgdGFibGUgaW4gdGhlIGxpc3RpbmcgYnkgY2xpY2tpbmcgdGhlIEJhY2t1cCBsaW5rLjwvbGk+CgkJPGxpPkRyb3AgYSBzaW5nbGUgdGFibGUgaW4gdGhlIGxpc3RpbmcgYnkgY2xpY2tpbmcgdGhlIERyb3AgbGluay48L2xpPgoJPC91bD4KCgk8aDI+UnVuIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFuPjwvc3Bhbj4gV2luZG93PC9oMj4KCgk8cD5UaGUgPHN0cm9uZz5SdW4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+PC9zcGFuPiB0YWI8L3N0cm9uZz4gYWxsb3dzIGZvciBmcmVlIGZvcm0gZW50cnkgYW5kIGV4ZWN1dGlvbiBvZiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj48L3NwYW4+IHN0YXRlbWVudHMuICBUaGUgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+PC9zcGFuPiB3aW5kb3cgYWNjZXB0czxiciAvPgoKPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5TRUxFQ1Q8L3NwYW4+PC9zcGFuPiwgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5JTlNFUlQ8L3NwYW4+PC9zcGFuPiwgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5VUERBVEU8L3NwYW4+PC9zcGFuPiwgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5DUkVBVEU8L3NwYW4+PC9zcGFuPiwgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5SRVBMQUNFPC9zcGFuPjwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VFJVTkNBVEU8L3NwYW4+PC9zcGFuPiwgYW5kIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+REVMRVRFPC9zcGFuPjwvc3Bhbj4gc3RhdGVtZW50cy4gIElmIGEgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5TRUxFQ1Q8L3NwYW4+PC9zcGFuPiBzdGF0ZW1lbnQgaXMgcnVuLCB0aGUgcmVzdWx0cyB3aWxsIGJlIGRpc3BsYXllZCB0byB5b3UgYmVsb3cgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFuPjwvc3Bhbj4gd2luZG93IGluIGEgdGFibGUuPGJyIC8+CgpUaGUgdGFibGUgbWFya3VwIGFsbG93cyB5b3UgdG8gYWRkIHlvdXIgb3duIHN0eWxlcyBmb3IgY3JlYXRpbmcgYSA8YSBocmVmPSJodHRwOi8vd3d3LmFnYXZlZ3JvdXAuY29tLz9wPTMxIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj48L3NwYW4+IFNjcm9sbGFibGUgVGFibGU8L2E+LjwvcD4KCgk8aDI+TWFqb3IgUmFuc29tIENvbnRyaWJ1dG9yczwvaDI+CgoJPHVsPgoJCTxsaT5KYW4gV2lsbGVtIGRlIEJydWlqbjwvbGk+CgkJPGxpPkhlaWtraSBZbPZuZW48L2xpPgoJCTxsaT5OZXcgU2lnbmFscyBQcmVzczwvbGk+CgkJPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYnVpbGRlcnNjb2xsZWN0aXZlLmNvbS8iPlN0ZXBoZW4gQmF1PC9hPjwvbGk+Cgk8L3VsPiI7czo0OiJjb2RlIjtzOjE4NzMwOiJpZiAoQHR4cGludGVyZmFjZSA9PSAnYWRtaW4nKSB7DQogICAgYWRkX3ByaXZzKCdyc3NfZGJfbWFuJywgJzEnKTsNCiAgICByZWdpc3Rlcl90YWIoImV4dGVuc2lvbnMiLCAicnNzX2RiX21hbiIsICJEQiBNYW5hZ2VyIik7DQogICAgcmVnaXN0ZXJfY2FsbGJhY2soInJzc19kYl9tYW4iLCAicnNzX2RiX21hbiIpOw0KDQogICAgYWRkX3ByaXZzKCdyc3Nfc3FsX3J1bicsICcxJyk7DQogICAgcmVnaXN0ZXJfdGFiKCJleHRlbnNpb25zIiwgInJzc19zcWxfcnVuIiwgIlJ1biBTUUwiKTsNCiAgICByZWdpc3Rlcl9jYWxsYmFjaygicnNzX3NxbF9ydW4iLCAicnNzX3NxbF9ydW4iKTsNCg0KICAgIGFkZF9wcml2cygncnNzX2RiX2JrJywgJzEnKTsNCiAgICByZWdpc3Rlcl90YWIoImV4dGVuc2lvbnMiLCAicnNzX2RiX2JrIiwgIkRCIEJhY2t1cCIpOw0KICAgIHJlZ2lzdGVyX2NhbGxiYWNrKCJyc3NfZGJfYmsiLCAicnNzX2RiX2JrIik7DQp9DQoNCg0KZnVuY3Rpb24gcnNzX2RiX2JrKCRldmVudCwgJHN0ZXApIHsNCiAgZ2xvYmFsICRwcmVmcywgJHJzc19kYmJrX3BhdGgsICRyc3NfZGJia19kdW1wLCAkcnNzX2RiYmtfbXlzcWwsICRyc3NfZGJia19sb2NrLCAkcnNzX2RiYmtfdHhwbG9nLCAkcnNzX2RiYmtfZGVidWcsICREQiwgJGZpbGVfYmFzZV9wYXRoOw0KDQogIGlmICghaXNzZXQoJHJzc19kYmJrX2xvY2spKSB7DQogICAgJHJzc19kYmJrX2xvY2sgPSAiMSI7DQogICAgJHJzID0gc2FmZV9pbnNlcnQoJ3R4cF9wcmVmcycsICJuYW1lPSdyc3NfZGJia19sb2NrJywgdmFsPSckcnNzX2RiYmtfbG9jaycsIHByZWZzX2lkPScxJyIpOw0KICB9DQoNCiAgaWYgKCFpc3NldCgkcnNzX2RiYmtfdHhwbG9nKSkgew0KICAgICRyc3NfZGJia190eHBsb2cgPSAiMSI7DQogICAgJHJzID0gc2FmZV9pbnNlcnQoJ3R4cF9wcmVmcycsICJuYW1lPSdyc3NfZGJia190eHBsb2cnLCB2YWw9JyRyc3NfZGJia190eHBsb2cnLCBwcmVmc19pZD0nMSciKTsNCiAgfQ0KDQogIGlmICghaXNzZXQoJHJzc19kYmJrX2RlYnVnKSkgew0KICAgICRyc3NfZGJia19kZWJ1ZyA9ICIwIjsNCiAgICAkcnMgPSBzYWZlX2luc2VydCgndHhwX3ByZWZzJywgIm5hbWU9J3Jzc19kYmJrX2RlYnVnJywgdmFsPSckcnNzX2RiYmtfZGVidWcnLCBwcmVmc19pZD0nMSciKTsNCiAgfQ0KDQogIGlmICghaXNzZXQoJHJzc19kYmJrX3BhdGgpKSB7DQogICAgJHJzc19kYmJrX3BhdGggPSAkZmlsZV9iYXNlX3BhdGg7DQogICAgJHJzID0gc2FmZV9pbnNlcnQoJ3R4cF9wcmVmcycsICJuYW1lPSdyc3NfZGJia19wYXRoJywgdmFsPSciLmFkZHNsYXNoZXMoJHJzc19kYmJrX3BhdGgpLiInLCBwcmVmc19pZD0nMSciKTsNCiAgfQ0KDQogIGlmICghaXNzZXQoJHJzc19kYmJrX2R1bXApKSB7DQogICAgJHJzc19kYmJrX2R1bXAgPSAibXlzcWxkdW1wIjsNCiAgICAkcnMgPSBzYWZlX2luc2VydCgndHhwX3ByZWZzJywgIm5hbWU9J3Jzc19kYmJrX2R1bXAnLCB2YWw9JyIuYWRkc2xhc2hlcygkcnNzX2RiYmtfZHVtcCkuIicsIHByZWZzX2lkPScxJyIpOw0KICB9DQoNCiAgaWYgKCFpc3NldCgkcnNzX2RiYmtfbXlzcWwpKSB7DQogICAgJHJzc19kYmJrX215c3FsID0gIm15c3FsIjsNCiAgICAkcnMgPSBzYWZlX2luc2VydCgndHhwX3ByZWZzJywgIm5hbWU9J3Jzc19kYmJrX215c3FsJywgdmFsPSciLmFkZHNsYXNoZXMoJHJzc19kYmJrX215c3FsKS4iJywgcHJlZnNfaWQ9JzEnIik7DQogIH0NCg0KICBpbmNsdWRlKHR4cGF0aCAuICcvaW5jbHVkZS90eHBfcHJlZnMucGhwJyk7DQoNCiAgJGJrcGF0aCA9ICRyc3NfZGJia19wYXRoOw0KICAkaXN3aW4gPSBwcmVnX21hdGNoKCcvV2luLycscGhwX3VuYW1lKCkpOw0KICAkbXlzcWxfaHVwID0gJyAtaCcuJERCLT5ob3N0LicgLXUnLiREQi0+dXNlci4nIC1wJy5lc2NhcGVzaGVsbGNtZCgkREItPnBhc3MpOw0KCSR0eHBsb2dwcyA9IHBzKCdyc3NfZGJia190eHBsb2cnKTsNCg0KICBpZiAocHMoInNhdmUiKSkgew0KDQogICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIlByZWZlcmVuY2VzIFNhdmVkIik7DQogICAgICBzYWZlX3VwZGF0ZSgidHhwX3ByZWZzIiwgInZhbCA9ICciLmFkZHNsYXNoZXMocHMoJ3Jzc19kYmJrX3BhdGgnKSkuIiciLCJuYW1lID0gJ3Jzc19kYmJrX3BhdGgnIGFuZCBwcmVmc19pZCA9JzEnIik7DQogICAgICBzYWZlX3VwZGF0ZSgidHhwX3ByZWZzIiwgInZhbCA9ICciLmFkZHNsYXNoZXMocHMoJ3Jzc19kYmJrX2R1bXAnKSkuIiciLCJuYW1lID0gJ3Jzc19kYmJrX2R1bXAnIGFuZCBwcmVmc19pZCA9JzEnIik7DQogICAgICBzYWZlX3VwZGF0ZSgidHhwX3ByZWZzIiwgInZhbCA9ICciLmFkZHNsYXNoZXMocHMoJ3Jzc19kYmJrX215c3FsJykpLiInIiwibmFtZSA9ICdyc3NfZGJia19teXNxbCcgYW5kIHByZWZzX2lkID0nMSciKTsNCiAgICAgIHNhZmVfdXBkYXRlKCJ0eHBfcHJlZnMiLCAidmFsID0gJyIucHMoJ3Jzc19kYmJrX2xvY2snKS4iJyIsIm5hbWUgPSAncnNzX2RiYmtfbG9jaycgYW5kIHByZWZzX2lkID0nMSciKTsNCiAgICAgIGlmIChpc3NldCgkdHhwbG9ncHMpKSBzYWZlX3VwZGF0ZSgidHhwX3ByZWZzIiwgInZhbCA9ICciLnBzKCdyc3NfZGJia190eHBsb2cnKS4iJyIsIm5hbWUgPSAncnNzX2RiYmtfdHhwbG9nJyBhbmQgcHJlZnNfaWQgPScxJyIpOw0KICAgICAgc2FmZV91cGRhdGUoInR4cF9wcmVmcyIsICJ2YWwgPSAnIi5wcygncnNzX2RiYmtfZGVidWcnKS4iJyIsIm5hbWUgPSAncnNzX2RiYmtfZGVidWcnIGFuZCBwcmVmc19pZCA9JzEnIik7DQogICAgICBoZWFkZXIoIkxvY2F0aW9uOiBpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX2JrIik7DQoNCiAgfSAgZWxzZSBpZiAoZ3BzKCJiayIpKSB7DQoNCgkJCSRia190YWJsZSA9IChncHMoImJrX3RhYmxlIikpID8gIiAtLXRhYmxlcyAiLmdwcygiYmtfdGFibGUiKS4iICIgOiAiIjsNCgkJCSR0YWJwYXRoID0gKGdwcygiYmtfdGFibGUiKSkgPyAiLSIuZ3BzKCJia190YWJsZSIpIDogIiI7DQogICAgICAkZ3ppcCA9IGdwcygiZ3ppcCIpOw0KCQkJJGZpbGVuYW1lID0gdGltZSgpLictJy4kREItPmRiLiR0YWJwYXRoOw0KICAgICAgJGJhY2t1cF9wYXRoID0gJGJrcGF0aC4nLycuJGZpbGVuYW1lLicuc3FsJzsNCiAgICAgICRsb2NrID0gKCRyc3NfZGJia19sb2NrKSA/ICIiIDogIiAtLXNraXAtbG9jay10YWJsZXMgLS1za2lwLWFkZC1sb2NrcyAiOw0KICAgICAgZWNobyAkdHhwbG9ncHM7DQogICAgICAkbm9sb2cgPSAoJHJzc19kYmJrX3R4cGxvZykgPyAiIiA6ICIgLS1pZ25vcmUtdGFibGU9Ii4kREItPmRiLiIudHhwX2xvZyAiOw0KICAgICAgJG5vbG9nID0gKGlzc2V0KCRia190YWJsZSkgJiYgZ3BzKCJia190YWJsZSIpID09ICJ0eHBfbG9nIikgPyAiIiA6ICRub2xvZzsNCg0KICAgICAgaWYoJGd6aXApIHsNCiAgICAgICAgJGJhY2t1cF9wYXRoLj0gJy5neic7DQogICAgICAgICRiYWNrdXBfY21kID0gJHJzc19kYmJrX2R1bXAuJG15c3FsX2h1cC4nIC1RIC0tYWRkLWRyb3AtdGFibGUgJy4kbG9jay4kbm9sb2cuJERCLT5kYi4kYmtfdGFibGUuJyB8IGd6aXAgPiAnLiRiYWNrdXBfcGF0aDsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgICRiYWNrdXBfY21kID0gJHJzc19kYmJrX2R1bXAuJG15c3FsX2h1cC4nIC1RIC0tYWRkLWRyb3AtdGFibGUgJy4kbG9jay4kbm9sb2cuJERCLT5kYi4kYmtfdGFibGUuJyA+ICcuJGJhY2t1cF9wYXRoOw0KICAgICAgfQ0KCSAgICAkYmtkZWJ1ZyA9ICgkcnNzX2RiYmtfZGVidWcpID8gJGJhY2t1cF9jbWQgOiAnJzsNCiAgICAgICRlcnJvciA9ICIiOw0KDQogICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydScpKSB7DQogICAgICAgIHBhc3N0aHJ1KCRiYWNrdXBfY21kLCAkZXJyb3IpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgJGR1bXBJdD1wb3BlbigkYmFja3VwX2NtZCwgJ3InKTsNCiAgICAgICAgcGNsb3NlKCRkdW1wSXQpOw0KICAgICAgfQ0KDQogICAgICBpZighaXNfd3JpdGFibGUoJGJrcGF0aCkpIHsNCiAgICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJCQUNLVVAgRkFJTEVEOiBmb2xkZXIgaXMgbm90IHdyaXRhYmxlIik7DQogICAgICB9IGVsc2VpZigkZXJyb3IpIHsNCiAgICAgICAgdW5saW5rKCRiYWNrdXBfcGF0aCk7DQogICAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiQkFDS1VQIEZBSUxFRC4gIEVSUk9SIE5POiAiLiRlcnJvcik7DQogICAgICB9IGVsc2UgaWYoIWlzX2ZpbGUoJGJhY2t1cF9wYXRoKSkgew0KICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIkJBQ0tVUCBGQUlMRUQuICBFUlJPUiBOTzogIi4kZXJyb3IpOw0KICAgICAgfSBlbHNlIGlmKGZpbGVzaXplKCRiYWNrdXBfcGF0aCkgPT0gMCkgew0KICAgICAgICB1bmxpbmsoJGJhY2t1cF9wYXRoKTsNCiAgICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJCQUNLVVAgRkFJTEVELiAgRVJST1IgTk86ICIuJGVycm9yKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiQmFja2VkIFVwOiAiLiREQi0+ZGIuIiB0byAiLiRmaWxlbmFtZSk7DQogICAgICB9DQoNCiAgfSBlbHNlIGlmIChncHMoImRvd25sb2FkIikpIHsNCg0KICAgICRmbiA9IGdwcygiZG93bmxvYWQiKTsNCiAgICAkZmlsZV9wYXRoID0gJGJrcGF0aC4nLycuJGZuOw0KICAgIGhlYWRlcigiUHJhZ21hOiBwdWJsaWMiKTsNCiAgICBoZWFkZXIoIkV4cGlyZXM6IDAiKTsNCiAgICBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG11c3QtcmV2YWxpZGF0ZSwgcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCIpOw0KICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9mb3JjZS1kb3dubG9hZCIpOw0KICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsNCiAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZG93bmxvYWQiKTsNCiAgICBpZiAoc3Vic3RyKCRmbiwgLTIpID09ICJneiIpIGhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi96aXAiKTsNCiAgICBoZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSIuYmFzZW5hbWUoJGZpbGVfcGF0aCkuIjsiKTsNCiAgICBoZWFkZXIoIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJpbmFyeSIpOw0KICAgIGhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIuZmlsZXNpemUoJGZpbGVfcGF0aCkpOw0KICAgIEByZWFkZmlsZSgkZmlsZV9wYXRoKTsNCg0KICB9IGVsc2UgaWYgKGdwcygicmVzdG9yZSIpKSB7DQoNCiAgICBpZihzdHJpc3RyKGdwcygicmVzdG9yZSIpLCAnLmd6JykpIHsNCiAgICAgICRiYWNrdXBfY21kID0gJ2d1bnppcCA8ICcuJGJrcGF0aC4nLycuZ3BzKCJyZXN0b3JlIikuJyB8ICcuJHJzc19kYmJrX215c3FsLiRteXNxbF9odXAuJyAnLiREQi0+ZGI7DQogICAgfSBlbHNlIHsNCiAgICAgICRiYWNrdXBfY21kID0gJHJzc19kYmJrX215c3FsLiRteXNxbF9odXAuJyAnLiREQi0+ZGIuJyA8ICcuJGJrcGF0aC4nLycuZ3BzKCJyZXN0b3JlIik7DQogICAgfQ0KDQogICAgJGJrZGVidWcgPSAoJHJzc19kYmJrX2RlYnVnKSA/ICRiYWNrdXBfY21kIDogJyc7DQogICAgJGVycm9yID0gIiI7DQoNCiAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydScpKSB7DQogICAgICBwYXNzdGhydSgkYmFja3VwX2NtZCwgJGVycm9yKTsNCiAgICB9IGVsc2Ugew0KICAgICAgJGR1bXBJdD1wb3BlbigkYmFja3VwX2NtZCwgJ3InKTsNCiAgICAgIHBjbG9zZSgkZHVtcEl0KTsNCiAgICB9DQoNCiAgICBpZigkZXJyb3IpIHsNCiAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiRkFJTEVEIFRPIFJFU1RPUkU6ICIuJGVycm9yKTsNCiAgICB9IGVsc2Ugew0KICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJSZXN0b3JlZDogIi5ncHMoInJlc3RvcmUiKS4iIHRvICIuJERCLT5kYik7DQogICAgfQ0KDQogIH0gZWxzZSBpZihncHMoImRlbGV0ZSIpKSB7DQoNCiAgICAgIGlmKGlzX2ZpbGUoJGJrcGF0aC4nLycuZ3BzKCJkZWxldGUiKSkpIHsNCiAgICAgICAgaWYoIXVubGluaygkYmtwYXRoLicvJy5ncHMoImRlbGV0ZSIpKSkgew0KICAgICAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiVW5hYmxlIHRvIERlbGV0ZTogIi5ncHMoImRlbGV0ZSIpKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIkRlbGV0ZWQ6ICIuZ3BzKCJkZWxldGUiKSk7DQogICAgICAgIH0NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiVW5hYmxlIHRvIERlbGV0ZTogIi5ncHMoImRlbGV0ZSIpKTsNCiAgICAgIH0NCg0KICB9IGVsc2Ugew0KICAgIHBhZ2V0b3AoIkRCIEJhY2t1cCIpOw0KICB9DQoNCiAgJGd6cCA9ICghJGlzd2luKSA/ICIgfCAiLmhyZWYoJ2d6aXBwZWQgZmlsZScsICJpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX2JrJmFtcDtiaz0kREItPmRiJmFtcDtnemlwPTEiKSA6ICIiOw0KDQogICRzcWx2ZXJzaW9uID0gZ2V0Um93KCJTRUxFQ1QgVkVSU0lPTigpIEFTIHZlcnNpb24iKTsNCiAgJHNxbHYgPSBleHBsb2RlKCItIiwgJHNxbHZlcnNpb25bJ3ZlcnNpb24nXSk7DQogICRhbGxvd25vbG9ncyA9ICgoZmxvYXQpJHNxbHZbMF0gPj0gKGZsb2F0KSI0LjEuOSIpID8gdGRhKGdUeHQoJ0luY2x1ZGUgdHhwX2xvZzonKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiJykudGRhKHllc25vUmFkaW8oInJzc19kYmJrX3R4cGxvZyIsICRyc3NfZGJia190eHBsb2cpLCAnIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpIDogJyc7DQoNCglpZiAoaXNzZXQoJGJrZGVidWcpICYmICRia2RlYnVnKSBlY2hvICc8cCBhbGlnbj0iY2VudGVyIj4nLiRia2RlYnVnLic8L3A+JzsNCg0KICBlY2hvDQogIHN0YXJ0VGFibGUoJ2xpc3QnKS4NCiAgZm9ybSgNCiAgdHIoDQogICAgdGRhKGdUeHQoJ0xvY2sgVGFibGVzOicpLCAnIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSInKS50ZGEoeWVzbm9SYWRpbygicnNzX2RiYmtfbG9jayIsICRyc3NfZGJia19sb2NrKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSInKS4NCiAgICAkYWxsb3dub2xvZ3MuDQogICAgdGRhKGdUeHQoJ0RlYnVnIE1vZGU6JyksICcgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpLnRkYSh5ZXNub1JhZGlvKCJyc3NfZGJia19kZWJ1ZyIsICRyc3NfZGJia19kZWJ1ZyksICcgc3R5bGU9InRleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiJykuDQogICAgdGRhKGZJbnB1dCgic3VibWl0Iiwic2F2ZSIsZ1R4dCgic2F2ZV9idXR0b24iKSwicHVibGlzaCIpLmVJbnB1dCgicnNzX2RiX2JrIikuc0lucHV0KCdzYXZlcHJlZnMnKSwgIiBjb2xzcGFuPVwiMlwiIGNsYXNzPVwibm9saW5lXCIiKQ0KICApLg0KICB0cigNCiAgICB0ZGEoZ1R4dCgnQmFja3VwIFBhdGg6JyksICcgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpLnRkYSh0ZXh0X2lucHV0KCJyc3NfZGJia19wYXRoIiwkcnNzX2RiYmtfcGF0aCwnNTAnKSwgJyBjb2xzcGFuPSIxNSInKQ0KICApLg0KICB0cigNCiAgICB0ZGEoZ1R4dCgnbXlzcWxkdW1wIFBhdGg6JyksICcgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpLnRkYSh0ZXh0X2lucHV0KCJyc3NfZGJia19kdW1wIiwkcnNzX2RiYmtfZHVtcCwnNTAnKSwgJyBjb2xzcGFuPSIxNSInKQ0KICApLg0KICB0cigNCiAgICB0ZGEoZ1R4dCgnbXlzcWwgUGF0aDonKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiJykudGRhKHRleHRfaW5wdXQoInJzc19kYmJrX215c3FsIiwkcnNzX2RiYmtfbXlzcWwsJzUwJyksICcgY29sc3Bhbj0iMTUiJykpDQogICkuZW5kVGFibGUoKS4NCiAgc3RhcnRUYWJsZSgibGlzdCIpLg0KICB0cigNCiAgICB0ZGEoaGVkKCdDcmVhdGUgYSBuZXcgYmFja3VwIG9mIHRoZSAnLiREQi0+ZGIuJyBkYXRhYmFzZScuYnIuDQogICAgaHJlZignLnNxbCBmaWxlJywgImluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO2JrPSREQi0+ZGIiKS4kZ3pwLDMpLCcgY29sc3Bhbj0iNyIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyInKQ0KICAgICkuDQogIHRyKHRkY3MoaGVkKCJQcmV2aW91cyBCYWNrdXAgRmlsZXMiLDEpLDcpKS4NCiAgdHIoDQogICAgaGNlbGwoIk5vLiIpLg0KICAgIGhjZWxsKCJCYWNrdXAgRmlsZSBOYW1lIikuDQogICAgaGNlbGwoIkJhY2t1cCBEYXRlL1RpbWUiKS4NCiAgICBoY2VsbCgiQmFja3VwIEZpbGUgU2l6ZSIpLg0KICAgIGhjZWxsKCIiKS4NCiAgICBoY2VsbCgiIikuDQogICAgaGNlbGwoIiIpDQogICk7DQoNCiAgJHRvdGFsc2l6ZSA9IDA7DQogICRubyA9IDA7DQogIGlmKCFpc19mb2xkZXJfZW1wdHkoJGJrcGF0aCkpIHsNCiAgICBpZiAoJGhhbmRsZSA9IG9wZW5kaXIoJGJrcGF0aCkpIHsNCiAgICAgICRkYXRhYmFzZV9maWxlcyA9IGFycmF5KCk7DQogICAgICB3aGlsZSAoZmFsc2UgIT09ICgkZmlsZSA9IHJlYWRkaXIoJGhhbmRsZSkpKSB7DQogICAgICAgIGlmICgoJGZpbGUgIT0gJy4nICYmICRmaWxlICE9ICcuLicpICYmIChzdWJzdHIoJGZpbGUsIC00KSA9PSAiLnNxbCIgfHwgc3Vic3RyKCRmaWxlLCAtNykgPT0gIi5zcWwuZ3oiKSkgew0KICAgICAgICAgICRkYXRhYmFzZV9maWxlc1tdID0gJGZpbGU7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KICAgICAgZm9yKCRpID0gKHNpemVvZigkZGF0YWJhc2VfZmlsZXMpLTEpOyAkaSA+IC0xOyAkaS0tKSB7DQogICAgICAgICRubysrOw0KICAgICAgICAkc3R5bGUgPSAoJG5vJTIgPT0gMCkgPyAnIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOyInIDogJyc7DQogICAgICAgICRkYXRhYmFzZV90ZXh0ID0gc3Vic3RyKCRkYXRhYmFzZV9maWxlc1skaV0sIDExKTsNCiAgICAgICAgJGRhdGVfdGV4dCA9IHN0cmZ0aW1lKCIlQSwgJUIgJWQsICVZIFslSDolTTolU10iLCBzdWJzdHIoJGRhdGFiYXNlX2ZpbGVzWyRpXSwgMCwgMTApKTsNCiAgICAgICAgJHNpemVfdGV4dCA9IGZpbGVzaXplKCRia3BhdGguJy8nLiRkYXRhYmFzZV9maWxlc1skaV0pOw0KICAgICAgICAkdG90YWxzaXplICs9ICRzaXplX3RleHQ7DQoNCiAgICAgICAgZWNobw0KICAgICAgICB0cigNCiAgICAgICAgICB0ZCgkbm8pLg0KICAgICAgICAgIHRkKCRkYXRhYmFzZV90ZXh0KS4NCiAgICAgICAgICB0ZCgkZGF0ZV90ZXh0KS4NCiAgICAgICAgICB0ZChwcmV0dHlGaWxlU2l6ZSgkc2l6ZV90ZXh0KSkuDQogICAgICAgICAgJzx0ZD48YSBocmVmPSJpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX2JrJmFtcDtkb3dubG9hZD0nLiRkYXRhYmFzZV9maWxlc1skaV0uJyI+RG93bmxvYWQ8L2E+PC90ZD4nLg0KICAgICAgICAgICc8dGQ+PGEgaHJlZj0iaW5kZXgucGhwP2V2ZW50PXJzc19kYl9iayZhbXA7cmVzdG9yZT0nLiRkYXRhYmFzZV9maWxlc1skaV0uJyIgIG9uY2xpY2s9InJldHVybiB2ZXJpZnkoXCcnLmdUeHQoJ2FyZV95b3Vfc3VyZScpLidcJykiPlJlc3RvcmU8L2E+PC90ZD4nLg0KICAgICAgICAgICc8dGQ+PGEgaHJlZj0iaW5kZXgucGhwP2V2ZW50PXJzc19kYl9iayZhbXA7ZGVsZXRlPScuJGRhdGFiYXNlX2ZpbGVzWyRpXS4nIiAgb25jbGljaz0icmV0dXJuIHZlcmlmeShcJycuZ1R4dCgnYXJlX3lvdV9zdXJlJykuJ1wnKSI+RGVsZXRlPC9hPjwvdGQ+JywgJHN0eWxlDQogICAgICAgICk7DQogICAgICB9DQoNCiAgICBlY2hvDQogICAgICB0cigNCiAgICAgICAgdGFnKCRuby4iIEJhY2t1cCBGaWxlKHMpIiwgInRoIiwgJyBjb2xzcGFuPSIzIicpLg0KICAgICAgICB0YWcocHJldHR5RmlsZVNpemUoJHRvdGFsc2l6ZSksICJ0aCIsICcgY29sc3Bhbj0iNCInKQ0KICAgICAgKTsNCg0KICAgIH0gZWxzZSB7DQogICAgICBlY2hvDQogICAgICB0cigNCiAgICAgICAgdGRhKGhlZCgnWW91IGhhdmUgbm8gZGF0YWJhc2UgYmFja3VwcycuYnIuJ0NyZWF0ZSBhIG5ldyBiYWNrdXAgb2YgdGhlICcuJERCLT5kYi4nIGRhdGFiYXNlJy5ici4NCiAgICAgICAgaHJlZignLnNxbCBmaWxlJywgImluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO2JrPSREQi0+ZGIiKS4kZ3pwLDMpLCcgY29sc3Bhbj0iNyIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyInKQ0KICAgICAgICApOw0KICAgIH0NCiAgfSBlbHNlIHsNCiAgICAgIGVjaG8NCiAgICAgIHRyKA0KICAgICAgICB0ZGEoaGVkKCdZb3UgaGF2ZSBubyBkYXRhYmFzZSBiYWNrdXBzJy5ici4nQ3JlYXRlIGEgbmV3IGJhY2t1cCBvZiB0aGUgJy4kREItPmRiLicgZGF0YWJhc2UnLmJyLg0KICAgICAgICBocmVmKCcuc3FsIGZpbGUnLCAiaW5kZXgucGhwP2V2ZW50PXJzc19kYl9iayZhbXA7Yms9JERCLT5kYiIpLiRnenAsMyksJyBjb2xzcGFuPSI3IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IicpDQogICAgICAgICk7DQogIH0NCiAgZWNobyBlbmRUYWJsZSgpOw0KfQ0KDQpmdW5jdGlvbiByc3NfZGJfbWFuKCRldmVudCwgJHN0ZXApIHsNCiAgZ2xvYmFsICREQjsNCg0KICBpZiAoZ3BzKCJvcHRfdGFibGUiKSkgew0KICAgICRxdWVyeSA9ICJPUFRJTUlaRSBUQUJMRSAiLmdwcygib3B0X3RhYmxlIik7DQogICAgc2FmZV9xdWVyeSgkcXVlcnkpOw0KICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiT3B0aW16ZWQ6ICIuZ3BzKCJvcHRfdGFibGUiKSk7DQogIH0gZWxzZSAgaWYgKGdwcygicmVwX3RhYmxlIikpIHsNCiAgICAkcXVlcnkgPSAiUkVQQUlSIFRBQkxFICIuZ3BzKCJyZXBfdGFibGUiKTsNCiAgICBzYWZlX3F1ZXJ5KCRxdWVyeSk7DQogICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJSZXBhaXJlZDogIi5ncHMoInJlcF90YWJsZSIpKTsNCgl9IGVsc2UgCWlmIChncHMoInJlcF9hbGwiKSkgew0KCQkkcXVlcnkgPSAiUkVQQUlSIFRBQkxFICIuZ3BzKCJyZXBfYWxsIik7DQoJCXNhZmVfcXVlcnkoJHF1ZXJ5KTsNCgkJcGFnZXRvcCgiREIgTWFuYWdlciIsICJSZXBhaXJlZCBBbGwgVGFibGVzIik7DQogIH0gZWxzZSAgaWYgKGdwcygiZHJvcF90YWJsZSIpKSB7DQogICAgJHF1ZXJ5ID0gIkRST1AgVEFCTEUgIi5ncHMoImRyb3BfdGFibGUiKTsNCiAgICBzYWZlX3F1ZXJ5KCRxdWVyeSk7DQogICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJEcm9wcGVkOiAiLmdwcygiZHJvcF90YWJsZSIpKTsNCiAgfSBlbHNlIHsNCiAgICBwYWdldG9wKCJEYXRhYmFzZSBNYW5hZ2VyIik7DQogIH0NCg0KCSRzcWx2ZXJzaW9uID0gZ2V0Um93KCJTRUxFQ1QgVkVSU0lPTigpIEFTIHZlcnNpb24iKTsNCgkkaGVhZGF0dHMgPSAnIHN0eWxlPSJjb2xvcjojMDA2OUQxO3BhZGRpbmc6MCAxMHB4IDAgNXB4OyInOw0KDQoJZWNobw0KCXN0YXJ0VGFibGUoJ2RiaW5mbycpLg0KCXRyKA0KCQloY2VsbCgiRGF0YWJhc2UgSG9zdDoiKS4NCgkJdGRhKCREQi0+aG9zdCwgJGhlYWRhdHRzKS4NCgkJaGNlbGwoIkRhdGFiYXNlIE5hbWU6IikuDQoJCXRkYSgkREItPmRiLCAkaGVhZGF0dHMpLg0KCQloY2VsbCgiRGF0YWJhc2UgVXNlcjoiKS4NCgkJdGRhKCREQi0+dXNlciwgJGhlYWRhdHRzKS4NCgkJaGNlbGwoIkRhdGFiYXNlIFZlcnNpb246IikuDQoJCXRkYSgiTXlTUUwgdiIuJHNxbHZlcnNpb25bJ3ZlcnNpb24nXSwgJGhlYWRhdHRzKQ0KCSkuDQoJZW5kVGFibGUoKS5icjsNCg0KCWVjaG8NCglzdGFydFRhYmxlKCdsaXN0JykuDQoJdHIoDQoJCWhjZWxsKCJOby4iKS4NCgkJaGNlbGwoIlRhYmxlcyIpLg0KCQloY2VsbCgiUmVjb3JkcyIpLg0KCQloY2VsbCgiRGF0YSBVc2FnZSIpLg0KCQloY2VsbCgiSW5kZXggVXNhZ2UiKS4NCgkJaGNlbGwoIlRvdGFsIFVzYWdlIikuDQoJCWhjZWxsKCJPdmVyaGVhZCIpLg0KCQkvL2hjZWxsKCJPcHRpbWl6ZSIpLg0KCQloY2VsbCgiRXJyTm8iKS4NCgkJaGNlbGwoIlJlcGFpciIpLg0KCQloY2VsbCgiQmFja3VwIikuDQoJCWhjZWxsKCJEcm9wIikNCgkpOw0KDQoJCWlmKCRzcWx2ZXJzaW9uWyd2ZXJzaW9uJ10gPj0gJzMuMjMnKSB7DQoJCQkkbm8gPSAwOw0KCQkJJHJvd191c2FnZSA9IDA7DQoJCQkkZGF0YV91c2FnZSA9IDA7DQoJCQkkaW5kZXhfdXNhZ2UgPSAgMDsNCgkJCSRvdmVyaGVhZF91c2FnZSA9IDA7DQoJCQkkYWxsdGFicyA9IGFycmF5KCk7DQoNCgkJCSR0YWJsZXNzdGF0dXMgPSBnZXRSb3dzKCJTSE9XIFRBQkxFIFNUQVRVUyIpOw0KCQkJZm9yZWFjaCgkdGFibGVzc3RhdHVzIGFzICAkdGFibGVzdGF0dXMpIHsNCgkJCQlleHRyYWN0KCR0YWJsZXN0YXR1cyk7DQoNCgkJCQkkcSA9ICJTSE9XIEtFWVMgRlJPTSBgIi4kTmFtZS4iYCI7DQoJCQkJc2FmZV9xdWVyeSgkcSk7DQoJCQkJJG15c3FsRXJybm8gPSBteXNxbF9lcnJubygpOw0KCQkJCSRhbGx0YWJzW10gPSAkTmFtZTsNCg0KCQkJCSRjb2xvciA9ICgkbXlzcWxFcnJubyAhPSAwKSA/ICcgc3R5bGU9ImNvbG9yOiNEMTAwMDA7IicgOiAnIHN0eWxlPSJjb2xvcjojNEI5RjAwOyInOw0KCQkJCSRjb2xvcjIgPSAoJERhdGFfZnJlZSA+IDApID8gJyBzdHlsZT0iY29sb3I6I0QxMDAwMDsiJyA6ICcgc3R5bGU9ImNvbG9yOiM0QjlGMDA7Iic7DQoJCQkJJHN0eWxlID0gKCRubyUyID09IDApID8gJyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2VlZTsiJyA6ICcnOw0KDQoJCQkJJG5vKys7DQoJCQkJJHJvd191c2FnZSArPSAkUm93czsNCgkJCQkkZGF0YV91c2FnZSArPSAkRGF0YV9sZW5ndGg7DQoJCQkJJGluZGV4X3VzYWdlICs9ICAkSW5kZXhfbGVuZ3RoOw0KCQkJCSRvdmVyaGVhZF91c2FnZSArPSAkRGF0YV9mcmVlOw0KDQoJCQkJZWNobw0KCQkJCXRyKA0KCQkJCQl0ZCgkbm8pLg0KCQkJCQl0ZChocmVmKCROYW1lLCAiaW5kZXgucGhwP2V2ZW50PXJzc19zcWxfcnVuJmFtcDt0bj0iLiROYW1lKSkuDQoJCQkJCXRkKCIgIi4kUm93cykuDQoJCQkJCXRkKHByZXR0eUZpbGVTaXplKCREYXRhX2xlbmd0aCkpLg0KCQkJCQl0ZChwcmV0dHlGaWxlU2l6ZSgkSW5kZXhfbGVuZ3RoKSkuDQoJCQkJCXRkKHByZXR0eUZpbGVTaXplKCREYXRhX2xlbmd0aCArICRJbmRleF9sZW5ndGgpKS4NCgkJCQkJdGRhKHByZXR0eUZpbGVTaXplKCREYXRhX2ZyZWUpLCAkY29sb3IyKS4NCgkJCQkJdGRhKCIgIi4kbXlzcWxFcnJubywgJGNvbG9yKS4NCgkJCQkJdGQoaHJlZigiUmVwYWlyIiwgImluZGV4LnBocD9ldmVudD1yc3NfZGJfbWFuJmFtcDtyZXBfdGFibGU9Ii4kTmFtZSkpLg0KCQkJCQl0ZChocmVmKCJCYWNrdXAiLCAiaW5kZXgucGhwP2V2ZW50PXJzc19kYl9iayZhbXA7Yms9MSZhbXA7YmtfdGFibGU9Ii4kTmFtZSkuDQoJCQkJCSc8dGQ+PGEgaHJlZj0iaW5kZXgucGhwP2V2ZW50PXJzc19kYl9tYW4mYW1wO2Ryb3BfdGFibGU9Jy4kTmFtZS4nIiAgb25jbGljaz0icmV0dXJuIHZlcmlmeShcJycuZ1R4dCgnYXJlX3lvdV9zdXJlJykuJ1wnKSI+RHJvcDwvYT48L3RkPicpLCAkc3R5bGUNCgkJCQkpOw0KCQkJfQ0KDQoJCQllY2hvDQoJCQl0cigNCgkJCQloY2VsbCgiVG90YWwiKS4NCgkJCQloY2VsbCgkbm8uIiBUYWJsZXMiKS4NCgkJCQloY2VsbChudW1iZXJfZm9ybWF0KCRyb3dfdXNhZ2UpKS4NCgkJCQloY2VsbChwcmV0dHlGaWxlU2l6ZSgkZGF0YV91c2FnZSkpLg0KCQkJCWhjZWxsKHByZXR0eUZpbGVTaXplKCRpbmRleF91c2FnZSkpLg0KCQkJCWhjZWxsKHByZXR0eUZpbGVTaXplKCRkYXRhX3VzYWdlICsgJGluZGV4X3VzYWdlKSkuDQoJCQkJaGNlbGwocHJldHR5RmlsZVNpemUoJG92ZXJoZWFkX3VzYWdlKSkuDQoJCQkJaGNlbGwoKS4NCgkJCQl0ZGEoaHJlZihzdHJvbmcoIlJlcGFpciBBbGwiKSwgImluZGV4LnBocD9ldmVudD1yc3NfZGJfbWFuJmFtcDtyZXBfYWxsPSIuaW1wbG9kZSgiLCIsJGFsbHRhYnMpKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IiBjb2xzcGFuPSIzIicpLCAkc3R5bGUNCgkJCSk7DQoNCgkJfSBlbHNlIHsNCgkJCWVjaG8NCgkJCXRyKA0KCQkJCXRkYSgiQ291bGQgTm90IFNob3cgVGFibGUgU3RhdHVzIEJlY2F1c2UgWW91ciBNWVNRTCBWZXJzaW9uIElzIExvd2VyIFRoYW4gMy4yMy4iLCAnIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiIGNvbHNwYW49MTQiJykNCgkJCSk7DQoJCX0NCg0KZWNobw0KCXRyKA0KCQl0ZGEoaHJlZigiUnVuIFNRTCIsICJpbmRleC5waHA/ZXZlbnQ9cnNzX3NxbF9ydW4iKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IiBjb2xzcGFuPSIxNCInKQ0KCSkuDQoJZW5kVGFibGUoKTsNCn0NCg0KZnVuY3Rpb24gcnNzX3NxbF9ydW4oJGV2ZW50LCAkc3RlcCkgew0KICBwYWdldG9wKCJSdW4gU1FMIFF1ZXJ5Iik7DQogICR0ZXh0PSIiOw0KICAkcnNkW109IiI7DQogICRzcWxfcXVlcnkyPSIiOw0KDQogIGlmIChncHMoInRuIikpIHsNCiAgICAkdHEgPSAic2VsZWN0ICogZnJvbSAiLmdwcygidG4iKTsNCiAgfQ0KDQogIGlmIChncHMoInNxbF9xdWVyeSIpIHx8IGdwcygidG4iKSkgew0KICAgICRzcWxfcXVlcmllczIgPSAoZ3BzKCJzcWxfcXVlcnkiKSkgPyB0cmltKGdwcygic3FsX3F1ZXJ5IikpIDogdHJpbSgkdHEpOw0KICAgICR0b3RhbHF1ZXJ5Y291bnQgPSAwOw0KICAgICRzdWNjZXNzcXVlcnkgPSAwOw0KICAgIGlmKCRzcWxfcXVlcmllczIpIHsNCiAgICAgICRzcWxfcXVlcmllcyA9IGFycmF5KCk7DQogICAgICAkc3FsX3F1ZXJpZXMyID0gZXhwbG9kZSgiXG4iLCAkc3FsX3F1ZXJpZXMyKTsNCiAgICAgIGZvcmVhY2goJHNxbF9xdWVyaWVzMiBhcyAkc3FsX3F1ZXJ5Mikgew0KICAgICAgICAkc3FsX3F1ZXJ5MiA9IHRyaW0oc3RyaXBzbGFzaGVzKCRzcWxfcXVlcnkyKSk7DQogICAgICAgICRzcWxfcXVlcnkyID0gcHJlZ19yZXBsYWNlKCIvW1xyXG5dKy8iLCAnJywgJHNxbF9xdWVyeTIpOw0KICAgICAgICBpZighZW1wdHkoJHNxbF9xdWVyeTIpKSB7DQogICAgICAgICAgJHNxbF9xdWVyaWVzW10gPSAkc3FsX3F1ZXJ5MjsNCiAgICAgICAgfQ0KICAgICAgfQ0KDQogICAgICBmb3JlYWNoKCRzcWxfcXVlcmllcyBhcyAkc3FsX3F1ZXJ5KSB7DQogICAgICAgIGlmIChwcmVnX21hdGNoKCIvXlxccyooaW5zZXJ0fHVwZGF0ZXxyZXBsYWNlfGRlbGV0ZXxjcmVhdGV8dHJ1bmNhdGUpIC9pIiwkc3FsX3F1ZXJ5KSkgew0KICAgICAgICAgICRydW5fcXVlcnkgPSBzYWZlX3F1ZXJ5KCRzcWxfcXVlcnkpOw0KICAgICAgICAgIGlmKCEkcnVuX3F1ZXJ5KSB7DQogICAgICAgICAgICAkdGV4dCAuPSBncmFmKG15c3FsX2Vycm9yKCksICcgc3R5bGU9ImNvbG9yOiNEMTAwMDA7IicpOw0KICAgICAgICAgICAgJHRleHQgLj0gZ3JhZigkc3FsX3F1ZXJ5LCAnIHN0eWxlPSJjb2xvcjojRDEwMDAwOyInKTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgJHN1Y2Nlc3NxdWVyeSsrOw0KICAgICAgICAgICAgJHRleHQgLj0gZ3JhZigkc3FsX3F1ZXJ5LCAnIHN0eWxlPSJjb2xvcjojNEI5RjAwOyInKTsNCiAgICAgICAgICB9DQogICAgICAgICAgJHRvdGFscXVlcnljb3VudCsrOw0KICAgICAgICB9IGVsc2VpZiAocHJlZ19tYXRjaCgiL15cXHMqKHNlbGVjdCkgL2kiLCRzcWxfcXVlcnkpKSB7DQogICAgICAgICAgJHJ1bl9xdWVyeSA9IHNhZmVfcXVlcnkoJHNxbF9xdWVyeSk7DQogICAgICAgICAgaWYoJHJ1bl9xdWVyeSkgJHN1Y2Nlc3NxdWVyeSsrOw0KICAgICAgICAgICAgaWYgKCRydW5fcXVlcnkgJiYgbXlzcWxfbnVtX3Jvd3MoJHJ1bl9xdWVyeSkgPiAwKSB7DQoNCiAgICAgICAgICAgICAgLyogZ2V0IGNvbHVtbiBtZXRhZGF0YSAqLw0KICAgICAgICAgICAgICAkaSA9IDA7DQogICAgICAgICAgICAgICRoZWFkZXJzID0gIiI7DQogICAgICAgICAgICAgIHdoaWxlICgkaSA8IG15c3FsX251bV9maWVsZHMoJHJ1bl9xdWVyeSkpIHsNCiAgICAgICAgICAgICAgICAgJG1ldGEgPSBteXNxbF9mZXRjaF9maWVsZCgkcnVuX3F1ZXJ5LCAkaSk7DQogICAgICAgICAgICAgICAgICRoZWFkZXJzLj1oY2VsbCgkbWV0YS0+bmFtZSk7DQogICAgICAgICAgICAgICAgICRpKys7DQogICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAkcnNkW10gPQ0KICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic2Nyb2xsV3JhcHBlciI+Jy5zdGFydFRhYmxlKCdsaXN0JywgJycsICdzY3JvbGxhYmxlJykuDQogICAgICAgICAgICAgICc8dGhlYWQ+Jy50cigkaGVhZGVycykuJzwvdGhlYWQ+PHRib2R5Pic7DQoNCiAgICAgICAgICAgICAgd2hpbGUgKCRhID0gbXlzcWxfZmV0Y2hfYXNzb2MoJHJ1bl9xdWVyeSkpICRvdXRbXSA9ICRhOw0KICAgICAgICAgICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcnVuX3F1ZXJ5KTsNCg0KICAgICAgICAgICAgICBmb3JlYWNoICgkb3V0IGFzICRiKSB7DQogICAgICAgICAgICAgICAgJGRhdGEgPSAiIjsNCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkYiBhcyAkZikgew0KICAgICAgICAgICAgICAgICAgJGRhdGEuPXRkKCRmKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJHJzZFtdID0gdHIoJGRhdGEpOw0KICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgJHJzZFtdID0gJzwvdGJvZHk+Jy5lbmRUYWJsZSgpLic8L2Rpdj4nLmJyOw0KICAgICAgICAgICAgICAkb3V0ID0gYXJyYXkoKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICR0ZXh0IC49IGdyYWYobXlzcWxfZXJyb3IoKSwgJyBzdHlsZT0iY29sb3I6I0QxMDAwMDsiJyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgJHRleHQgLj0gZ3JhZigkc3FsX3F1ZXJ5LCAnIHN0eWxlPSJjb2xvcjojRDEwMDAwOyInKTsNCiAgICAgICAgICAkdG90YWxxdWVyeWNvdW50Kys7DQogICAgICAgIH0gZWxzZWlmIChwcmVnX21hdGNoKCIvXlxccyooZHJvcHxzaG93fGdyYW50KSAvaSIsJHNxbF9xdWVyeSkpIHsNCiAgICAgICAgICAkdGV4dCAuPSBncmFmKCRzcWxfcXVlcnkuIiAtIFFVRVJZIFRZUEUgTk9UIFNVUFBPUlRFRCIsICcgc3R5bGU9ImNvbG9yOiNEMTAwMDA7IicpOw0KICAgICAgICAgICR0b3RhbHF1ZXJ5Y291bnQrKzsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgJHRleHQgLj0gZ3JhZigkc3VjY2Vzc3F1ZXJ5LiIvIi4kdG90YWxxdWVyeWNvdW50LiIgUXVlcnkocykgRXhlY3V0ZWQgU3VjY2Vzc2Z1bGx5IiwgJyBzdHlsZT0iY29sb3I6IzAwNjlEMTsiJyk7DQogICAgfQ0KICB9DQoNCiAgZWNobw0KICBzdGFydFRhYmxlKCdlZGl0JykuDQogIHRyKA0KICAgIHRkKA0KICAgICAgZm9ybSgNCiAgICAgICAgZ3JhZigiRWFjaCBxdWVyeSBtdXN0IGJlIG9uIGEgc2luZ2xlIGxpbmUuICBZb3UgbWF5IHJ1biBtdWx0aXBsZSBxdWVyaWVzIGF0IG9uY2UgYnkgc3RhcnRpbmcgYSBuZXcgbGluZS4iLmJyLiJTdXBwb3J0ZWQgcXVlcnkgdHlwZXMgaW5jbHVkZSBTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBDUkVBVEUsIFJFUExBQ0UsIGFuZCBERUxFVEUuIikuDQogICAgICAgIGdyYWYoIldBUk5JTkc6IEFsbCBTUUwgcnVuIGluIHRoaXMgd2luZG93IHdpbGwgaW1tZWRpYXRlbHkgYW5kIHBlcm1hbmVudGx5IGNoYW5nZSB5b3VyIGRhdGFiYXNlLiIsICcgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7IicpLg0KICAgICAgICB0ZXh0X2FyZWEoJ3NxbF9xdWVyeScsJzIwMCcsJzU1MCcsJHNxbF9xdWVyeTIpLmJyLg0KICAgICAgICBmSW5wdXQoJ3N1Ym1pdCcsJ3J1bicsZ1R4dCgnUnVuJyksJ3B1Ymxpc2gnKS5ocmVmKCJHbyB0byBEYXRhYmFzZSBNYW5hZ2VyIiwgImluZGV4LnBocD9ldmVudD1yc3NfZGJfbWFuIikuDQogICAgICAgIGVJbnB1dCgncnNzX3NxbF9ydW4nKSwgJycsICcgdmVyaWZ5KFwnJy5nVHh0KCdhcmVfeW91X3N1cmUnKS4nXCcpIicNCiAgICAgICkNCiAgICApDQogICkuDQogIHRyKA0KICAgIHRkKA0KICAgICAgICBncmFmKCR0ZXh0LmJyLmltcGxvZGUoJycsICRyc2QpKQ0KICAgICkNCiAgKS4NCiAgZW5kVGFibGUoKTsNCg0KfQ0KZnVuY3Rpb24gcHJldHR5RmlsZVNpemUgKCRieXRlcykgew0KICBpZiAoJGJ5dGVzIDwgMTAyNCkgew0KICAgICAgcmV0dXJuICIkYnl0ZXMgYnl0ZXMiOw0KICB9IGVsc2UgaWYgKHN0cmxlbigkYnl0ZXMpIDw9IDkgJiYgc3RybGVuKCRieXRlcykgPj0gNykgew0KICAgICAgcmV0dXJuIG51bWJlcl9mb3JtYXQoJGJ5dGVzIC8gMTA0ODU3NiwyKS4iIE1CIjsNCiAgfSBlbHNlaWYgKHN0cmxlbigkYnl0ZXMpID49IDEwKSB7DQogICAgICByZXR1cm4gbnVtYmVyX2Zvcm1hdCgkYnl0ZXMgLyAxMDczNzQxODI0LDIpLiIgR0IiOw0KICB9DQogIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwMjQsMikuIiBLQiI7DQp9DQoNCmZ1bmN0aW9uIGlzX2ZvbGRlcl9lbXB0eSgkZGlyKSB7DQogIGlmIChpc19kaXIoJGRpcikpIHsNCiAgICAkZGw9b3BlbmRpcigkZGlyKTsNCiAgICBpZiAoJGRsKSB7DQogICAgICB3aGlsZSgkbmFtZSA9IHJlYWRkaXIoJGRsKSkgew0KICAgICAgICBpZiAoIWlzX2RpcigiJGRpci8kbmFtZSIpKSB7DQogICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgfQ0KICAgIH0NCiAgICBjbG9zZWRpcigkZGwpOw0KICAgIH0NCiAgICByZXR1cm4gdHJ1ZTsNCiAgfSBlbHNlIHJldHVybiB0cnVlOw0KfQ0KIjtzOjQ6InR5cGUiO3M6MToiMSI7czo1OiJvcmRlciI7czoxOiI1IjtzOjM6Im1kNSI7czozMjoiYmEwNGYzNjA3MjE2NWJlOWZiNjI5NDE5MTIwNTQyODIiO30=
After installation, enable it and then go to extensions>DB manager
Note: Drop means Delete so do not use that one. the tables which are in need of repair will appear as red
Last edited by colak (2009-09-15 16:22:36)
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: [Solved] article categories missing
colak wrote:
DBs get broken for many reasons, not always the host’s fault.
Heh, the usual reason is usage. Like normal HDD file systems, ofcourse also SQL DBs do defragment when removing or inserting a lot of content. Also bad sectors, fails while writing, and others are reality.
Offline
Re: [Solved] article categories missing
it got all the stuff back now, since i rearranged all categories to their parents.
plus the rss db manager tells something about “overhead” which is repairable.
which i do, dunno what happens there :)
at the end of the day i have my backups now and the system is running smooth again.
only bad, that i dunno how this could happen.
thx all!!
Offline
#11 2009-09-15 20:05:32
- els
- Moderator
- From: The Netherlands
- Registered: 2004-06-06
- Posts: 7,458
Re: [Solved] article categories missing
jens31 wrote:
plus the rss db manager tells something about “overhead” which is repairable.
which i do, dunno what happens there :)
Offline
Pages: 1