Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#13 2018-03-16 19:24:22

etc
Developer
Registered: 2010-11-11
Posts: 5,028
Website GitHub

Re: Making your plugins 4.7-aware

IIRC, prefs_id field has been removed at some point (may be even in 4.6).

Offline

#14 2018-03-16 19:43:02

uli
Moderator
From: Cologne
Registered: 2006-08-15
Posts: 4,303

Re: Making your plugins 4.7-aware

Thanks, Oleg. I’ve removed all n instances of the code in question and all errors are gone now. Yet, the plugin still isn’t working (doesn’t write altered prefs to the DB). Will have to wait until it gets a final repair.


In bad weather I never leave home without wet_plugout, smd_where_used and adi_form_links

Offline

#15 2018-03-16 23:15:16

etc
Developer
Registered: 2010-11-11
Posts: 5,028
Website GitHub

Re: Making your plugins 4.7-aware

uli wrote #310035:

I’ve removed all n instances of the code in question and all errors are gone now. Yet, the plugin still isn’t working (doesn’t write altered prefs to the DB). Will have to wait until it gets a final repair.

Weird, I don’t see in the code what (after prefs_id is removed) could be wrong.

Offline

#16 2018-03-16 23:38:44

uli
Moderator
From: Cologne
Registered: 2006-08-15
Posts: 4,303

Re: Making your plugins 4.7-aware

etc wrote #310046:

Weird, I don’t see in the code what (after prefs_id is removed) could be wrong.

I appreciate very much that you looked into the code.

When you try to change e.g. the paths to mysql/mysqldump, do they get stored in your installation? Mine are “reset” on saving.


In bad weather I never leave home without wet_plugout, smd_where_used and adi_form_links

Offline

#17 2018-03-17 06:24:52

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

Re: Making your plugins 4.7-aware

uli wrote #310047:

I appreciate very much that you looked into the code.

When you try to change e.g. the paths to mysql/mysqldump, do they get stored in your installation? Mine are “reset” on saving.

^^ bug confirmed. Also the “save” button in the “DB Backup” page reads save_button.


Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.

Offline

#18 2018-03-17 08:44:22

etc
Developer
Registered: 2010-11-11
Posts: 5,028
Website GitHub

Re: Making your plugins 4.7-aware

This works on 4.7 for me:

# Name: rss_admin_db_manager v4.4.1 
# Type: Admin/Public plugin
# Database management system.
# Author: Rob Sable
# URL: http://www.wilshireone.com/
# Recommended load order: 5

# .....................................................................
# This is a plugin for Textpattern CMS - http://textpattern.com/
# To install: textpattern > admin > plugins
# Paste the following text into the 'Install plugin' box:
# .....................................................................

YToxMTp7czo0OiJuYW1lIjtzOjIwOiJyc3NfYWRtaW5fZGJfbWFuYWdlciI7czo2OiJhdXRo
b3IiO3M6OToiUm9iIFNhYmxlIjtzOjEwOiJhdXRob3JfdXJpIjtzOjI3OiJodHRwOi8vd3d3
LndpbHNoaXJlb25lLmNvbS8iO3M6NzoidmVyc2lvbiI7czo1OiI0LjQuMSI7czoxMToiZGVz
Y3JpcHRpb24iO3M6Mjc6IkRhdGFiYXNlIG1hbmFnZW1lbnQgc3lzdGVtLiI7czo0OiJjb2Rl
IjtzOjE5NDQ5OiJpZiAoQHR4cGludGVyZmFjZSA9PSAnYWRtaW4nKSB7DQogICAgYWRkX3By
aXZzKCdyc3NfZGJfbWFuJywgJzEnKTsNCiAgICByZWdpc3Rlcl90YWIoImV4dGVuc2lvbnMi
LCAicnNzX2RiX21hbiIsICJEQiBNYW5hZ2VyIik7DQogICAgcmVnaXN0ZXJfY2FsbGJhY2so
InJzc19kYl9tYW4iLCAicnNzX2RiX21hbiIpOw0KDQogICAgYWRkX3ByaXZzKCdyc3Nfc3Fs
X3J1bicsICcxJyk7DQogICAgcmVnaXN0ZXJfdGFiKCJleHRlbnNpb25zIiwgInJzc19zcWxf
cnVuIiwgIlJ1biBTUUwiKTsNCiAgICByZWdpc3Rlcl9jYWxsYmFjaygicnNzX3NxbF9ydW4i
LCAicnNzX3NxbF9ydW4iKTsNCg0KICAgIGFkZF9wcml2cygncnNzX2RiX2JrJywgJzEnKTsN
CiAgICByZWdpc3Rlcl90YWIoImV4dGVuc2lvbnMiLCAicnNzX2RiX2JrIiwgIkRCIEJhY2t1
cCIpOw0KICAgIHJlZ2lzdGVyX2NhbGxiYWNrKCJyc3NfZGJfYmsiLCAicnNzX2RiX2JrIik7
DQp9DQoNCmZ1bmN0aW9uIHJzc19kYl9iaygkZXZlbnQsICRzdGVwKSB7DQogIGdsb2JhbCAk
cHJlZnMsICRyc3NfZGJia19wYXRoLCAkcnNzX2RiYmtfZHVtcCwgJHJzc19kYmJrX215c3Fs
LCAkcnNzX2RiYmtfbG9jaywgJHJzc19kYmJrX3R4cGxvZywgJHJzc19kYmJrX2RlYnVnLCAk
REIsICRmaWxlX2Jhc2VfcGF0aDsNCg0KICBpZiAoIWlzc2V0KCRyc3NfZGJia19sb2NrKSkg
ew0KICAgICRyc3NfZGJia19sb2NrID0gIjEiOw0KICAgICRycyA9IHNhZmVfaW5zZXJ0KCd0
eHBfcHJlZnMnLCAibmFtZT0ncnNzX2RiYmtfbG9jaycsIHZhbD0nJHJzc19kYmJrX2xvY2sn
Iik7DQogIH0NCg0KICBpZiAoIWlzc2V0KCRyc3NfZGJia190eHBsb2cpKSB7DQogICAgJHJz
c19kYmJrX3R4cGxvZyA9ICIxIjsNCiAgICAkcnMgPSBzYWZlX2luc2VydCgndHhwX3ByZWZz
JywgIm5hbWU9J3Jzc19kYmJrX3R4cGxvZycsIHZhbD0nJHJzc19kYmJrX3R4cGxvZyciKTsN
CiAgfQ0KDQogIGlmICghaXNzZXQoJHJzc19kYmJrX2RlYnVnKSkgew0KICAgICRyc3NfZGJi
a19kZWJ1ZyA9ICIwIjsNCiAgICAkcnMgPSBzYWZlX2luc2VydCgndHhwX3ByZWZzJywgIm5h
bWU9J3Jzc19kYmJrX2RlYnVnJywgdmFsPSckcnNzX2RiYmtfZGVidWcnIik7DQogIH0NCg0K
ICBpZiAoIWlzc2V0KCRyc3NfZGJia19wYXRoKSkgew0KICAgICRyc3NfZGJia19wYXRoID0g
JGZpbGVfYmFzZV9wYXRoOw0KICAgICRycyA9IHNhZmVfaW5zZXJ0KCd0eHBfcHJlZnMnLCAi
bmFtZT0ncnNzX2RiYmtfcGF0aCcsIHZhbD0nIi5hZGRzbGFzaGVzKCRyc3NfZGJia19wYXRo
KS4iJyIpOw0KICB9DQoNCiAgaWYgKCFpc3NldCgkcnNzX2RiYmtfZHVtcCkpIHsNCiAgICAk
cnNzX2RiYmtfZHVtcCA9ICJteXNxbGR1bXAiOw0KICAgICRycyA9IHNhZmVfaW5zZXJ0KCd0
eHBfcHJlZnMnLCAibmFtZT0ncnNzX2RiYmtfZHVtcCcsIHZhbD0nIi5hZGRzbGFzaGVzKCRy
c3NfZGJia19kdW1wKS4iJyIpOw0KICB9DQoNCiAgaWYgKCFpc3NldCgkcnNzX2RiYmtfbXlz
cWwpKSB7DQogICAgJHJzc19kYmJrX215c3FsID0gIm15c3FsIjsNCiAgICAkcnMgPSBzYWZl
X2luc2VydCgndHhwX3ByZWZzJywgIm5hbWU9J3Jzc19kYmJrX215c3FsJywgdmFsPSciLmFk
ZHNsYXNoZXMoJHJzc19kYmJrX215c3FsKS4iJyIpOw0KICB9DQoNCiAgaW5jbHVkZSh0eHBh
dGggLiAnL2luY2x1ZGUvdHhwX3ByZWZzLnBocCcpOw0KDQogICRia3BhdGggPSAkcnNzX2Ri
YmtfcGF0aDsNCiAgJGlzd2luID0gcHJlZ19tYXRjaCgnL1dpbi8nLHBocF91bmFtZSgpKTsN
CiAgJG15c3FsX2h1cCA9ICcgLWgnLiREQi0+aG9zdC4nIC11Jy4kREItPnVzZXIuJyAtcCcu
ZXNjYXBlc2hlbGxjbWQoJERCLT5wYXNzKTsNCiAgICAkdHhwbG9ncHMgPSBwcygncnNzX2Ri
YmtfdHhwbG9nJyk7DQoNCiAgaWYgKHBzKCJzYXZlIikpIHsNCg0KICAgICAgcGFnZXRvcCgi
REIgTWFuYWdlciIsICJQcmVmZXJlbmNlcyBTYXZlZCIpOw0KICAgICAgc2FmZV91cGRhdGUo
InR4cF9wcmVmcyIsICJ2YWwgPSAnIi5hZGRzbGFzaGVzKHBzKCdyc3NfZGJia19wYXRoJykp
LiInIiwibmFtZSA9ICdyc3NfZGJia19wYXRoJyIpOw0KICAgICAgc2FmZV91cGRhdGUoInR4
cF9wcmVmcyIsICJ2YWwgPSAnIi5hZGRzbGFzaGVzKHBzKCdyc3NfZGJia19kdW1wJykpLiIn
IiwibmFtZSA9ICdyc3NfZGJia19kdW1wJyIpOw0KICAgICAgc2FmZV91cGRhdGUoInR4cF9w
cmVmcyIsICJ2YWwgPSAnIi5hZGRzbGFzaGVzKHBzKCdyc3NfZGJia19teXNxbCcpKS4iJyIs
Im5hbWUgPSAncnNzX2RiYmtfbXlzcWwnIik7DQogICAgICBzYWZlX3VwZGF0ZSgidHhwX3By
ZWZzIiwgInZhbCA9ICciLnBzKCdyc3NfZGJia19sb2NrJykuIiciLCJuYW1lID0gJ3Jzc19k
YmJrX2xvY2snIik7DQogICAgICBpZiAoaXNzZXQoJHR4cGxvZ3BzKSkgc2FmZV91cGRhdGUo
InR4cF9wcmVmcyIsICJ2YWwgPSAnIi5wcygncnNzX2RiYmtfdHhwbG9nJykuIiciLCJuYW1l
ID0gJ3Jzc19kYmJrX3R4cGxvZyciKTsNCiAgICAgIHNhZmVfdXBkYXRlKCJ0eHBfcHJlZnMi
LCAidmFsID0gJyIucHMoJ3Jzc19kYmJrX2RlYnVnJykuIiciLCJuYW1lID0gJ3Jzc19kYmJr
X2RlYnVnJyIpOw0KICAgICAgaGVhZGVyKCJMb2NhdGlvbjogaW5kZXgucGhwP2V2ZW50PXJz
c19kYl9iayIpOw0KDQogIH0gIGVsc2UgaWYgKGdwcygiYmsiKSkgew0KDQogICAgICAgICAg
ICAkYmtfdGFibGUgPSAoZ3BzKCJia190YWJsZSIpKSA/ICIgLS10YWJsZXMgIi5ncHMoImJr
X3RhYmxlIikuIiAiIDogIiI7DQogICAgICAgICAgICAkdGFicGF0aCA9IChncHMoImJrX3Rh
YmxlIikpID8gIi0iLmdwcygiYmtfdGFibGUiKSA6ICIiOw0KICAgICAgJGd6aXAgPSBncHMo
Imd6aXAiKTsNCiAgICAgICAgICAgICRmaWxlbmFtZSA9IHRpbWUoKS4nLScuJERCLT5kYi4k
dGFicGF0aDsNCiAgICAgICRiYWNrdXBfcGF0aCA9ICRia3BhdGguJy8nLiRmaWxlbmFtZS4n
LnNxbCc7DQogICAgICAkbG9jayA9ICgkcnNzX2RiYmtfbG9jaykgPyAiIiA6ICIgLS1za2lw
LWxvY2stdGFibGVzIC0tc2tpcC1hZGQtbG9ja3MgIjsNCiAgICAgIGVjaG8gJHR4cGxvZ3Bz
Ow0KICAgICAgJG5vbG9nID0gKCRyc3NfZGJia190eHBsb2cpID8gIiIgOiAiIC0taWdub3Jl
LXRhYmxlPSIuJERCLT5kYi4iLnR4cF9sb2cgIjsNCiAgICAgICRub2xvZyA9IChpc3NldCgk
YmtfdGFibGUpICYmIGdwcygiYmtfdGFibGUiKSA9PSAidHhwX2xvZyIpID8gIiIgOiAkbm9s
b2c7DQoNCiAgICAgIGlmKCRnemlwKSB7DQogICAgICAgICRiYWNrdXBfcGF0aC49ICcuZ3on
Ow0KICAgICAgICAkYmFja3VwX2NtZCA9ICRyc3NfZGJia19kdW1wLiRteXNxbF9odXAuJyAt
USAtLWFkZC1kcm9wLXRhYmxlICcuJGxvY2suJG5vbG9nLiREQi0+ZGIuJGJrX3RhYmxlLicg
fCBnemlwID4gJy4kYmFja3VwX3BhdGg7DQogICAgICB9IGVsc2Ugew0KICAgICAgICAkYmFj
a3VwX2NtZCA9ICRyc3NfZGJia19kdW1wLiRteXNxbF9odXAuJyAtUSAtLWFkZC1kcm9wLXRh
YmxlICcuJGxvY2suJG5vbG9nLiREQi0+ZGIuJGJrX3RhYmxlLicgPiAnLiRiYWNrdXBfcGF0
aDsNCiAgICAgIH0NCiAgICAgICAgJGJrZGVidWcgPSAoJHJzc19kYmJrX2RlYnVnKSA/ICRi
YWNrdXBfY21kIDogJyc7DQogICAgICAkZXJyb3IgPSAiIjsNCg0KICAgICAgaWYgKGZ1bmN0
aW9uX2V4aXN0cygncGFzc3RocnUnKSkgew0KICAgICAgICBwYXNzdGhydSgkYmFja3VwX2Nt
ZCwgJGVycm9yKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgICRkdW1wSXQ9cG9wZW4oJGJh
Y2t1cF9jbWQsICdyJyk7DQogICAgICAgIHBjbG9zZSgkZHVtcEl0KTsNCiAgICAgIH0NCg0K
ICAgICAgaWYoIWlzX3dyaXRhYmxlKCRia3BhdGgpKSB7DQogICAgICAgIHBhZ2V0b3AoIkRC
IE1hbmFnZXIiLCAiQkFDS1VQIEZBSUxFRDogZm9sZGVyIGlzIG5vdCB3cml0YWJsZSIpOw0K
ICAgICAgfSBlbHNlaWYoJGVycm9yKSB7DQogICAgICAgIHVubGluaygkYmFja3VwX3BhdGgp
Ow0KICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIkJBQ0tVUCBGQUlMRUQuICBFUlJP
UiBOTzogIi4kZXJyb3IpOw0KICAgICAgfSBlbHNlIGlmKCFpc19maWxlKCRiYWNrdXBfcGF0
aCkpIHsNCiAgICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJCQUNLVVAgRkFJTEVELiAg
RVJST1IgTk86ICIuJGVycm9yKTsNCiAgICAgIH0gZWxzZSBpZihmaWxlc2l6ZSgkYmFja3Vw
X3BhdGgpID09IDApIHsNCiAgICAgICAgdW5saW5rKCRiYWNrdXBfcGF0aCk7DQogICAgICAg
IHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiQkFDS1VQIEZBSUxFRC4gIEVSUk9SIE5POiAiLiRl
cnJvcik7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwg
IkJhY2tlZCBVcDogIi4kREItPmRiLiIgdG8gIi4kZmlsZW5hbWUpOw0KICAgICAgfQ0KDQog
IH0gZWxzZSBpZiAoZ3BzKCJkb3dubG9hZCIpKSB7DQoNCiAgICAkZm4gPSBncHMoImRvd25s
b2FkIik7DQogICAgJGZpbGVfcGF0aCA9ICRia3BhdGguJy8nLiRmbjsNCiAgICBoZWFkZXIo
IlByYWdtYTogcHVibGljIik7DQogICAgaGVhZGVyKCJFeHBpcmVzOiAwIik7DQogICAgaGVh
ZGVyKCJDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJl
LWNoZWNrPTAiKTsNCiAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZm9y
Y2UtZG93bmxvYWQiKTsNCiAgICBoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24v
b2N0ZXQtc3RyZWFtIik7DQogICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u
L2Rvd25sb2FkIik7DQogICAgaWYgKHN1YnN0cigkZm4sIC0yKSA9PSAiZ3oiKSBoZWFkZXIo
IkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vemlwIik7DQogICAgaGVhZGVyKCJDb250ZW50
LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iLmJhc2VuYW1lKCRmaWxlX3Bh
dGgpLiI7Iik7DQogICAgaGVhZGVyKCJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiaW5h
cnkiKTsNCiAgICBoZWFkZXIoIkNvbnRlbnQtTGVuZ3RoOiAiLmZpbGVzaXplKCRmaWxlX3Bh
dGgpKTsNCiAgICBAcmVhZGZpbGUoJGZpbGVfcGF0aCk7DQoNCiAgfSBlbHNlIGlmIChncHMo
InJlc3RvcmUiKSkgew0KDQogICAgaWYoc3RyaXN0cihncHMoInJlc3RvcmUiKSwgJy5neicp
KSB7DQogICAgICAkYmFja3VwX2NtZCA9ICdndW56aXAgPCAnLiRia3BhdGguJy8nLmdwcygi
cmVzdG9yZSIpLicgfCAnLiRyc3NfZGJia19teXNxbC4kbXlzcWxfaHVwLicgJy4kREItPmRi
Ow0KICAgIH0gZWxzZSB7DQogICAgICAkYmFja3VwX2NtZCA9ICRyc3NfZGJia19teXNxbC4k
bXlzcWxfaHVwLicgJy4kREItPmRiLicgPCAnLiRia3BhdGguJy8nLmdwcygicmVzdG9yZSIp
Ow0KICAgIH0NCg0KICAgICRia2RlYnVnID0gKCRyc3NfZGJia19kZWJ1ZykgPyAkYmFja3Vw
X2NtZCA6ICcnOw0KICAgICRlcnJvciA9ICIiOw0KDQogICAgaWYgKGZ1bmN0aW9uX2V4aXN0
cygncGFzc3RocnUnKSkgew0KICAgICAgcGFzc3RocnUoJGJhY2t1cF9jbWQsICRlcnJvcik7
DQogICAgfSBlbHNlIHsNCiAgICAgICRkdW1wSXQ9cG9wZW4oJGJhY2t1cF9jbWQsICdyJyk7
DQogICAgICBwY2xvc2UoJGR1bXBJdCk7DQogICAgfQ0KDQogICAgaWYoJGVycm9yKSB7DQog
ICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIkZBSUxFRCBUTyBSRVNUT1JFOiAiLiRlcnJv
cik7DQogICAgfSBlbHNlIHsNCiAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiUmVzdG9y
ZWQ6ICIuZ3BzKCJyZXN0b3JlIikuIiB0byAiLiREQi0+ZGIpOw0KICAgIH0NCg0KICB9IGVs
c2UgaWYoZ3BzKCJkZWxldGUiKSkgew0KDQogICAgICBpZihpc19maWxlKCRia3BhdGguJy8n
LmdwcygiZGVsZXRlIikpKSB7DQogICAgICAgIGlmKCF1bmxpbmsoJGJrcGF0aC4nLycuZ3Bz
KCJkZWxldGUiKSkpIHsNCiAgICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIlVuYWJs
ZSB0byBEZWxldGU6ICIuZ3BzKCJkZWxldGUiKSk7DQogICAgICAgIH0gZWxzZSB7DQogICAg
ICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJEZWxldGVkOiAiLmdwcygiZGVsZXRlIikp
Ow0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICBwYWdldG9wKCJEQiBNYW5h
Z2VyIiwgIlVuYWJsZSB0byBEZWxldGU6ICIuZ3BzKCJkZWxldGUiKSk7DQogICAgICB9DQoN
CiAgfSBlbHNlIHsNCiAgICBwYWdldG9wKCJEQiBCYWNrdXAiKTsNCiAgfQ0KDQogICRnenAg
PSAoISRpc3dpbikgPyAiIHwgIi5ocmVmKCdnemlwcGVkIGZpbGUnLCAiaW5kZXgucGhwP2V2
ZW50PXJzc19kYl9iayZhbXA7Yms9JERCLT5kYiZhbXA7Z3ppcD0xIikgOiAiIjsNCg0KICAk
c3FsdmVyc2lvbiA9IGdldFJvdygiU0VMRUNUIFZFUlNJT04oKSBBUyB2ZXJzaW9uIik7DQog
ICRzcWx2ID0gZXhwbG9kZSgiLSIsICRzcWx2ZXJzaW9uWyd2ZXJzaW9uJ10pOw0KICAkYWxs
b3dub2xvZ3MgPSAoKGZsb2F0KSRzcWx2WzBdID49IChmbG9hdCkiNC4xLjkiKSA/IHRkYShn
VHh0KCdJbmNsdWRlIHR4cF9sb2c6JyksICcgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7dmVy
dGljYWwtYWxpZ246bWlkZGxlIicpLnRkYSh5ZXNub1JhZGlvKCJyc3NfZGJia190eHBsb2ci
LCAkcnNzX2RiYmtfdHhwbG9nKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2Fs
LWFsaWduOm1pZGRsZSInKSA6ICcnOw0KDQogICAgaWYgKGlzc2V0KCRia2RlYnVnKSAmJiAk
YmtkZWJ1ZykgZWNobyAnPHAgYWxpZ249ImNlbnRlciI+Jy4kYmtkZWJ1Zy4nPC9wPic7DQoN
CiAgZWNobw0KICBzdGFydFRhYmxlKCdsaXN0JykuDQogIGZvcm0oDQogIHRyKA0KICAgIHRk
YShnVHh0KCdMb2NrIFRhYmxlczonKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDt2ZXJ0
aWNhbC1hbGlnbjptaWRkbGUiJykudGRhKHllc25vUmFkaW8oInJzc19kYmJrX2xvY2siLCAk
cnNzX2RiYmtfbG9jayksICcgc3R5bGU9InRleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGln
bjptaWRkbGUiJykuDQogICAgJGFsbG93bm9sb2dzLg0KICAgIHRkYShnVHh0KCdEZWJ1ZyBN
b2RlOicpLCAnIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRs
ZSInKS50ZGEoeWVzbm9SYWRpbygicnNzX2RiYmtfZGVidWciLCAkcnNzX2RiYmtfZGVidWcp
LCAnIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpLg0K
ICAgIHRkYShmSW5wdXQoInN1Ym1pdCIsInNhdmUiLGdUeHQoInNhdmUiKSwicHVibGlzaCIp
LmVJbnB1dCgicnNzX2RiX2JrIikuc0lucHV0KCdzYXZlcHJlZnMnKSwgIiBjb2xzcGFuPVwi
MlwiIGNsYXNzPVwibm9saW5lXCIiKQ0KICApLg0KICB0cigNCiAgICB0ZGEoZ1R4dCgnQmFj
a3VwIFBhdGg6JyksICcgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7dmVydGljYWwtYWxpZ246
bWlkZGxlIicpLnRkYSh0ZXh0X2lucHV0KCJyc3NfZGJia19wYXRoIiwkcnNzX2RiYmtfcGF0
aCwnNTAnKSwgJyBjb2xzcGFuPSIxNSInKQ0KICApLg0KICB0cigNCiAgICB0ZGEoZ1R4dCgn
bXlzcWxkdW1wIFBhdGg6JyksICcgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7dmVydGljYWwt
YWxpZ246bWlkZGxlIicpLnRkYSh0ZXh0X2lucHV0KCJyc3NfZGJia19kdW1wIiwkcnNzX2Ri
YmtfZHVtcCwnNTAnKSwgJyBjb2xzcGFuPSIxNSInKQ0KICApLg0KICB0cigNCiAgICB0ZGEo
Z1R4dCgnbXlzcWwgUGF0aDonKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNh
bC1hbGlnbjptaWRkbGUiJykudGRhKHRleHRfaW5wdXQoInJzc19kYmJrX215c3FsIiwkcnNz
X2RiYmtfbXlzcWwsJzUwJyksICcgY29sc3Bhbj0iMTUiJykpDQogICkuZW5kVGFibGUoKS4N
CiAgc3RhcnRUYWJsZSgibGlzdCIpLg0KICB0cigNCiAgICB0ZGEoaGVkKCdDcmVhdGUgYSBu
ZXcgYmFja3VwIG9mIHRoZSAnLiREQi0+ZGIuJyBkYXRhYmFzZScuYnIuDQogICAgaHJlZign
LnNxbCBmaWxlJywgImluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO2JrPSREQi0+ZGIi
KS4kZ3pwLDMpLCcgY29sc3Bhbj0iNyIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyInKQ0K
ICAgICkuDQogIHRyKHRkY3MoaGVkKCJQcmV2aW91cyBCYWNrdXAgRmlsZXMiLDEpLDcpKS4N
CiAgdHIoDQogICAgaGNlbGwoIk5vLiIpLg0KICAgIGhjZWxsKCJCYWNrdXAgRmlsZSBOYW1l
IikuDQogICAgaGNlbGwoIkJhY2t1cCBEYXRlL1RpbWUiKS4NCiAgICBoY2VsbCgiQmFja3Vw
IEZpbGUgU2l6ZSIpLg0KICAgIGhjZWxsKCIiKS4NCiAgICBoY2VsbCgiIikuDQogICAgaGNl
bGwoIiIpDQogICk7DQoNCiAgJHRvdGFsc2l6ZSA9IDA7DQogICRubyA9IDA7DQogIGlmKCFp
c19mb2xkZXJfZW1wdHkoJGJrcGF0aCkpIHsNCiAgICBpZiAoJGhhbmRsZSA9IG9wZW5kaXIo
JGJrcGF0aCkpIHsNCiAgICAgICRkYXRhYmFzZV9maWxlcyA9IGFycmF5KCk7DQogICAgICB3
aGlsZSAoZmFsc2UgIT09ICgkZmlsZSA9IHJlYWRkaXIoJGhhbmRsZSkpKSB7DQogICAgICAg
IGlmICgoJGZpbGUgIT0gJy4nICYmICRmaWxlICE9ICcuLicpICYmIChzdWJzdHIoJGZpbGUs
IC00KSA9PSAiLnNxbCIgfHwgc3Vic3RyKCRmaWxlLCAtNykgPT0gIi5zcWwuZ3oiKSkgew0K
ICAgICAgICAgICRkYXRhYmFzZV9maWxlc1tdID0gJGZpbGU7DQogICAgICAgIH0NCiAgICAg
IH0NCiAgICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KICAgICAgZm9yKCRpID0gKHNpemVvZigk
ZGF0YWJhc2VfZmlsZXMpLTEpOyAkaSA+IC0xOyAkaS0tKSB7DQogICAgICAgICRubysrOw0K
ICAgICAgICAkc3R5bGUgPSAoJG5vJTIgPT0gMCkgPyAnIHN0eWxlPSJiYWNrZ3JvdW5kLWNv
bG9yOiAjZWVlOyInIDogJyc7DQogICAgICAgICRkYXRhYmFzZV90ZXh0ID0gc3Vic3RyKCRk
YXRhYmFzZV9maWxlc1skaV0sIDExKTsNCiAgICAgICAgJGRhdGVfdGV4dCA9IHN0cmZ0aW1l
KCIlQSwgJUIgJWQsICVZIFslSDolTTolU10iLCBzdWJzdHIoJGRhdGFiYXNlX2ZpbGVzWyRp
XSwgMCwgMTApKTsNCiAgICAgICAgJHNpemVfdGV4dCA9IGZpbGVzaXplKCRia3BhdGguJy8n
LiRkYXRhYmFzZV9maWxlc1skaV0pOw0KICAgICAgICAkdG90YWxzaXplICs9ICRzaXplX3Rl
eHQ7DQoNCiAgICAgICAgZWNobw0KICAgICAgICB0cigNCiAgICAgICAgICB0ZCgkbm8pLg0K
ICAgICAgICAgIHRkKCRkYXRhYmFzZV90ZXh0KS4NCiAgICAgICAgICB0ZCgkZGF0ZV90ZXh0
KS4NCiAgICAgICAgICB0ZChwcmV0dHlGaWxlU2l6ZSgkc2l6ZV90ZXh0KSkuDQogICAgICAg
ICAgJzx0ZD48YSBocmVmPSJpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX2JrJmFtcDtkb3dubG9h
ZD0nLiRkYXRhYmFzZV9maWxlc1skaV0uJyI+RG93bmxvYWQ8L2E+PC90ZD4nLg0KICAgICAg
ICAgICc8dGQ+PGEgaHJlZj0iaW5kZXgucGhwP2V2ZW50PXJzc19kYl9iayZhbXA7cmVzdG9y
ZT0nLiRkYXRhYmFzZV9maWxlc1skaV0uJyIgIG9uY2xpY2s9InJldHVybiB2ZXJpZnkoXCcn
LmdUeHQoJ2FyZV95b3Vfc3VyZScpLidcJykiPlJlc3RvcmU8L2E+PC90ZD4nLg0KICAgICAg
ICAgICc8dGQ+PGEgaHJlZj0iaW5kZXgucGhwP2V2ZW50PXJzc19kYl9iayZhbXA7ZGVsZXRl
PScuJGRhdGFiYXNlX2ZpbGVzWyRpXS4nIiAgb25jbGljaz0icmV0dXJuIHZlcmlmeShcJycu
Z1R4dCgnYXJlX3lvdV9zdXJlJykuJ1wnKSI+RGVsZXRlPC9hPjwvdGQ+JywgJHN0eWxlDQog
ICAgICAgICk7DQogICAgICB9DQoNCiAgICBlY2hvDQogICAgICB0cigNCiAgICAgICAgdGFn
KCRuby4iIEJhY2t1cCBGaWxlKHMpIiwgInRoIiwgJyBjb2xzcGFuPSIzIicpLg0KICAgICAg
ICB0YWcocHJldHR5RmlsZVNpemUoJHRvdGFsc2l6ZSksICJ0aCIsICcgY29sc3Bhbj0iNCIn
KQ0KICAgICAgKTsNCg0KICAgIH0gZWxzZSB7DQogICAgICBlY2hvDQogICAgICB0cigNCiAg
ICAgICAgdGRhKGhlZCgnWW91IGhhdmUgbm8gZGF0YWJhc2UgYmFja3VwcycuYnIuJ0NyZWF0
ZSBhIG5ldyBiYWNrdXAgb2YgdGhlICcuJERCLT5kYi4nIGRhdGFiYXNlJy5ici4NCiAgICAg
ICAgaHJlZignLnNxbCBmaWxlJywgImluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO2Jr
PSREQi0+ZGIiKS4kZ3pwLDMpLCcgY29sc3Bhbj0iNyIgc3R5bGU9InRleHQtYWxpZ246Y2Vu
dGVyOyInKQ0KICAgICAgICApOw0KICAgIH0NCiAgfSBlbHNlIHsNCiAgICAgIGVjaG8NCiAg
ICAgIHRyKA0KICAgICAgICB0ZGEoaGVkKCdZb3UgaGF2ZSBubyBkYXRhYmFzZSBiYWNrdXBz
Jy5ici4nQ3JlYXRlIGEgbmV3IGJhY2t1cCBvZiB0aGUgJy4kREItPmRiLicgZGF0YWJhc2Un
LmJyLg0KICAgICAgICBocmVmKCcuc3FsIGZpbGUnLCAiaW5kZXgucGhwP2V2ZW50PXJzc19k
Yl9iayZhbXA7Yms9JERCLT5kYiIpLiRnenAsMyksJyBjb2xzcGFuPSI3IiBzdHlsZT0idGV4
dC1hbGlnbjpjZW50ZXI7IicpDQogICAgICAgICk7DQogIH0NCiAgZWNobyBlbmRUYWJsZSgp
Ow0KfQ0KDQpmdW5jdGlvbiByc3NfZGJfbWFuKCRldmVudCwgJHN0ZXApIHsNCiAgZ2xvYmFs
ICREQjsNCg0KICBpZiAoZ3BzKCJvcHRfdGFibGUiKSkgew0KICAgICRxdWVyeSA9ICJPUFRJ
TUlaRSBUQUJMRSAiLmdwcygib3B0X3RhYmxlIik7DQogICAgc2FmZV9xdWVyeSgkcXVlcnkp
Ow0KICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiT3B0aW16ZWQ6ICIuZ3BzKCJvcHRfdGFi
bGUiKSk7DQogIH0gZWxzZSAgaWYgKGdwcygicmVwX3RhYmxlIikpIHsNCiAgICAkcXVlcnkg
PSAiUkVQQUlSIFRBQkxFICIuZ3BzKCJyZXBfdGFibGUiKTsNCiAgICBzYWZlX3F1ZXJ5KCRx
dWVyeSk7DQogICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJSZXBhaXJlZDogIi5ncHMoInJl
cF90YWJsZSIpKTsNCiAgICB9IGVsc2UgIGlmIChncHMoInJlcF9hbGwiKSkgew0KICAgICAg
ICAkcXVlcnkgPSAiUkVQQUlSIFRBQkxFICIuZ3BzKCJyZXBfYWxsIik7DQogICAgICAgIHNh
ZmVfcXVlcnkoJHF1ZXJ5KTsNCiAgICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJSZXBh
aXJlZCBBbGwgVGFibGVzIik7DQogIH0gZWxzZSAgaWYgKGdwcygiZHJvcF90YWJsZSIpKSB7
DQogICAgJHF1ZXJ5ID0gIkRST1AgVEFCTEUgIi5ncHMoImRyb3BfdGFibGUiKTsNCiAgICBz
YWZlX3F1ZXJ5KCRxdWVyeSk7DQogICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJEcm9wcGVk
OiAiLmdwcygiZHJvcF90YWJsZSIpKTsNCiAgfSBlbHNlIHsNCiAgICBwYWdldG9wKCJEYXRh
YmFzZSBNYW5hZ2VyIik7DQogIH0NCg0KICAgICRzcWx2ZXJzaW9uID0gZ2V0Um93KCJTRUxF
Q1QgVkVSU0lPTigpIEFTIHZlcnNpb24iKTsNCiAgICAkaGVhZGF0dHMgPSAnIHN0eWxlPSJj
b2xvcjojMDA2OUQxO3BhZGRpbmc6MCAxMHB4IDAgNXB4OyInOw0KDQogICAgZWNobw0KICAg
IHN0YXJ0VGFibGUoJ2RiaW5mbycpLg0KICAgIHRyKA0KICAgICAgICBoY2VsbCgiRGF0YWJh
c2UgSG9zdDoiKS4NCiAgICAgICAgdGRhKCREQi0+aG9zdCwgJGhlYWRhdHRzKS4NCiAgICAg
ICAgaGNlbGwoIkRhdGFiYXNlIE5hbWU6IikuDQogICAgICAgIHRkYSgkREItPmRiLCAkaGVh
ZGF0dHMpLg0KICAgICAgICBoY2VsbCgiRGF0YWJhc2UgVXNlcjoiKS4NCiAgICAgICAgdGRh
KCREQi0+dXNlciwgJGhlYWRhdHRzKS4NCiAgICAgICAgaGNlbGwoIkRhdGFiYXNlIFZlcnNp
b246IikuDQogICAgICAgIHRkYSgiTXlTUUwgdiIuJHNxbHZlcnNpb25bJ3ZlcnNpb24nXSwg
JGhlYWRhdHRzKQ0KICAgICkuDQogICAgZW5kVGFibGUoKS5icjsNCg0KICAgIGVjaG8NCiAg
ICBzdGFydFRhYmxlKCdsaXN0JykuDQogICAgdHIoDQogICAgICAgIGhjZWxsKCJOby4iKS4N
CiAgICAgICAgaGNlbGwoIlRhYmxlcyIpLg0KICAgICAgICBoY2VsbCgiUmVjb3JkcyIpLg0K
ICAgICAgICBoY2VsbCgiRGF0YSBVc2FnZSIpLg0KICAgICAgICBoY2VsbCgiSW5kZXggVXNh
Z2UiKS4NCiAgICAgICAgaGNlbGwoIlRvdGFsIFVzYWdlIikuDQogICAgICAgIGhjZWxsKCJP
dmVyaGVhZCIpLg0KICAgICAgICAvL2hjZWxsKCJPcHRpbWl6ZSIpLg0KICAgICAgICBoY2Vs
bCgiRXJyTm8iKS4NCiAgICAgICAgaGNlbGwoIlJlcGFpciIpLg0KICAgICAgICBoY2VsbCgi
QmFja3VwIikuDQogICAgICAgIGhjZWxsKCJEcm9wIikNCiAgICApOw0KDQogICAgICAgIGlm
KHZlcnNpb25fY29tcGFyZSgkc3FsdmVyc2lvblsndmVyc2lvbiddLCAnMy4yMycsICc+PScp
KSB7DQogICAgICAgICAgICAkbm8gPSAwOw0KICAgICAgICAgICAgJHJvd191c2FnZSA9IDA7
DQogICAgICAgICAgICAkZGF0YV91c2FnZSA9IDA7DQogICAgICAgICAgICAkaW5kZXhfdXNh
Z2UgPSAgMDsNCiAgICAgICAgICAgICRvdmVyaGVhZF91c2FnZSA9IDA7DQogICAgICAgICAg
ICAkYWxsdGFicyA9IGFycmF5KCk7DQoNCiAgICAgICAgICAgICR0YWJsZXNzdGF0dXMgPSBn
ZXRSb3dzKCJTSE9XIFRBQkxFIFNUQVRVUyIpOw0KICAgICAgICAgICAgZm9yZWFjaCgkdGFi
bGVzc3RhdHVzIGFzICAkdGFibGVzdGF0dXMpIHsNCiAgICAgICAgICAgICAgICBleHRyYWN0
KCR0YWJsZXN0YXR1cyk7DQoNCiAgICAgICAgICAgICAgICAkcSA9ICJTSE9XIEtFWVMgRlJP
TSBgIi4kTmFtZS4iYCI7DQogICAgICAgICAgICAgICAgc2FmZV9xdWVyeSgkcSk7DQogICAg
ICAgICAgICAgICAgJG15c3FsRXJybm8gPSBteXNxbGlfZXJybm8oJERCLT5saW5rKTsNCiAg
ICAgICAgICAgICAgICAkYWxsdGFic1tdID0gJE5hbWU7DQoNCiAgICAgICAgICAgICAgICAk
Y29sb3IgPSAoJG15c3FsRXJybm8gIT0gMCkgPyAnIHN0eWxlPSJjb2xvcjojRDEwMDAwOyIn
IDogJyBzdHlsZT0iY29sb3I6IzRCOUYwMDsiJzsNCiAgICAgICAgICAgICAgICAkY29sb3Iy
ID0gKCREYXRhX2ZyZWUgPiAwKSA/ICcgc3R5bGU9ImNvbG9yOiNEMTAwMDA7IicgOiAnIHN0
eWxlPSJjb2xvcjojNEI5RjAwOyInOw0KICAgICAgICAgICAgICAgICRzdHlsZSA9ICgkbm8l
MiA9PSAwKSA/ICcgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlZWU7IicgOiAnJzsNCg0K
ICAgICAgICAgICAgICAgICRubysrOw0KICAgICAgICAgICAgICAgICRyb3dfdXNhZ2UgKz0g
JFJvd3M7DQogICAgICAgICAgICAgICAgJGRhdGFfdXNhZ2UgKz0gJERhdGFfbGVuZ3RoOw0K
ICAgICAgICAgICAgICAgICRpbmRleF91c2FnZSArPSAgJEluZGV4X2xlbmd0aDsNCiAgICAg
ICAgICAgICAgICAkb3ZlcmhlYWRfdXNhZ2UgKz0gJERhdGFfZnJlZTsNCg0KICAgICAgICAg
ICAgICAgIGVjaG8NCiAgICAgICAgICAgICAgICB0cigNCiAgICAgICAgICAgICAgICAgICAg
dGQoJG5vKS4NCiAgICAgICAgICAgICAgICAgICAgdGQoaHJlZigkTmFtZSwgImluZGV4LnBo
cD9ldmVudD1yc3Nfc3FsX3J1biZhbXA7dG49Ii4kTmFtZSkpLg0KICAgICAgICAgICAgICAg
ICAgICB0ZCgiICIuJFJvd3MpLg0KICAgICAgICAgICAgICAgICAgICB0ZChwcmV0dHlGaWxl
U2l6ZSgkRGF0YV9sZW5ndGgpKS4NCiAgICAgICAgICAgICAgICAgICAgdGQocHJldHR5Rmls
ZVNpemUoJEluZGV4X2xlbmd0aCkpLg0KICAgICAgICAgICAgICAgICAgICB0ZChwcmV0dHlG
aWxlU2l6ZSgkRGF0YV9sZW5ndGggKyAkSW5kZXhfbGVuZ3RoKSkuDQogICAgICAgICAgICAg
ICAgICAgIHRkYShwcmV0dHlGaWxlU2l6ZSgkRGF0YV9mcmVlKSwgJGNvbG9yMikuDQogICAg
ICAgICAgICAgICAgICAgIHRkYSgiICIuJG15c3FsRXJybm8sICRjb2xvcikuDQogICAgICAg
ICAgICAgICAgICAgIHRkKGhyZWYoIlJlcGFpciIsICJpbmRleC5waHA/ZXZlbnQ9cnNzX2Ri
X21hbiZhbXA7cmVwX3RhYmxlPSIuJE5hbWUpKS4NCiAgICAgICAgICAgICAgICAgICAgdGQo
aHJlZigiQmFja3VwIiwgImluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO2JrPTEmYW1w
O2JrX3RhYmxlPSIuJE5hbWUpLg0KICAgICAgICAgICAgICAgICAgICAnPHRkPjxhIGhyZWY9
ImluZGV4LnBocD9ldmVudD1yc3NfZGJfbWFuJmFtcDtkcm9wX3RhYmxlPScuJE5hbWUuJyIg
IG9uY2xpY2s9InJldHVybiB2ZXJpZnkoXCcnLmdUeHQoJ2FyZV95b3Vfc3VyZScpLidcJyki
PkRyb3A8L2E+PC90ZD4nKSwgJHN0eWxlDQogICAgICAgICAgICAgICAgKTsNCiAgICAgICAg
ICAgIH0NCg0KICAgICAgICAgICAgZWNobw0KICAgICAgICAgICAgdHIoDQogICAgICAgICAg
ICAgICAgaGNlbGwoIlRvdGFsIikuDQogICAgICAgICAgICAgICAgaGNlbGwoJG5vLiIgVGFi
bGVzIikuDQogICAgICAgICAgICAgICAgaGNlbGwobnVtYmVyX2Zvcm1hdCgkcm93X3VzYWdl
KSkuDQogICAgICAgICAgICAgICAgaGNlbGwocHJldHR5RmlsZVNpemUoJGRhdGFfdXNhZ2Up
KS4NCiAgICAgICAgICAgICAgICBoY2VsbChwcmV0dHlGaWxlU2l6ZSgkaW5kZXhfdXNhZ2Up
KS4NCiAgICAgICAgICAgICAgICBoY2VsbChwcmV0dHlGaWxlU2l6ZSgkZGF0YV91c2FnZSAr
ICRpbmRleF91c2FnZSkpLg0KICAgICAgICAgICAgICAgIGhjZWxsKHByZXR0eUZpbGVTaXpl
KCRvdmVyaGVhZF91c2FnZSkpLg0KICAgICAgICAgICAgICAgIGhjZWxsKCkuDQogICAgICAg
ICAgICAgICAgdGRhKGhyZWYoc3Ryb25nKCJSZXBhaXIgQWxsIiksICJpbmRleC5waHA/ZXZl
bnQ9cnNzX2RiX21hbiZhbXA7cmVwX2FsbD0iLmltcGxvZGUoIiwiLCRhbGx0YWJzKSksICcg
c3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyIgY29sc3Bhbj0iMyInKSwgJHN0eWxlDQogICAg
ICAgICAgICApOw0KDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBlY2hvDQogICAg
ICAgICAgICB0cigNCiAgICAgICAgICAgICAgICB0ZGEoIkNvdWxkIE5vdCBTaG93IFRhYmxl
IFN0YXR1cyBCZWNhdXNlIFlvdXIgTVlTUUwgVmVyc2lvbiBJcyBMb3dlciBUaGFuIDMuMjMu
IiwgJyBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IiBjb2xzcGFuPTE0IicpDQogICAgICAg
ICAgICApOw0KICAgICAgICB9DQoNCmVjaG8NCiAgICB0cigNCiAgICAgICAgdGRhKGhyZWYo
IlJ1biBTUUwiLCAiaW5kZXgucGhwP2V2ZW50PXJzc19zcWxfcnVuIiksICcgc3R5bGU9InRl
eHQtYWxpZ246Y2VudGVyOyIgY29sc3Bhbj0iMTQiJykNCiAgICApLg0KICAgIGVuZFRhYmxl
KCk7DQp9DQoNCmZ1bmN0aW9uIHJzc19zcWxfcnVuKCRldmVudCwgJHN0ZXApIHsNCiAgZ2xv
YmFsICREQjsNCiAgcGFnZXRvcCgiUnVuIFNRTCBRdWVyeSIpOw0KICAkdGV4dD0iIjsNCiAg
JHJzZFtdPSIiOw0KICAkc3FsX3F1ZXJ5Mj0iIjsNCg0KICBpZiAoZ3BzKCJ0biIpKSB7DQog
ICAgJHRxID0gInNlbGVjdCAqIGZyb20gIi5ncHMoInRuIik7DQogIH0NCg0KICBpZiAoZ3Bz
KCJzcWxfcXVlcnkiKSB8fCBncHMoInRuIikpIHsNCiAgICAkc3FsX3F1ZXJpZXMyID0gKGdw
cygic3FsX3F1ZXJ5IikpID8gdHJpbShncHMoInNxbF9xdWVyeSIpKSA6IHRyaW0oJHRxKTsN
CiAgICAkdG90YWxxdWVyeWNvdW50ID0gMDsNCiAgICAkc3VjY2Vzc3F1ZXJ5ID0gMDsNCiAg
ICBpZigkc3FsX3F1ZXJpZXMyKSB7DQogICAgICAkc3FsX3F1ZXJpZXMgPSBhcnJheSgpOw0K
ICAgICAgJHNxbF9xdWVyaWVzMiA9IGV4cGxvZGUoIlxuIiwgJHNxbF9xdWVyaWVzMik7DQog
ICAgICBmb3JlYWNoKCRzcWxfcXVlcmllczIgYXMgJHNxbF9xdWVyeTIpIHsNCiAgICAgICAg
JHNxbF9xdWVyeTIgPSB0cmltKHN0cmlwc2xhc2hlcygkc3FsX3F1ZXJ5MikpOw0KICAgICAg
ICAkc3FsX3F1ZXJ5MiA9IHByZWdfcmVwbGFjZSgiL1tcclxuXSsvIiwgJycsICRzcWxfcXVl
cnkyKTsNCiAgICAgICAgaWYoIWVtcHR5KCRzcWxfcXVlcnkyKSkgew0KICAgICAgICAgICRz
cWxfcXVlcmllc1tdID0gJHNxbF9xdWVyeTI7DQogICAgICAgIH0NCiAgICAgIH0NCg0KICAg
ICAgZm9yZWFjaCgkc3FsX3F1ZXJpZXMgYXMgJHNxbF9xdWVyeSkgew0KICAgICAgICBpZiAo
cHJlZ19tYXRjaCgiL15cXHMqKGluc2VydHx1cGRhdGV8cmVwbGFjZXxkZWxldGV8Y3JlYXRl
fHRydW5jYXRlKSAvaSIsJHNxbF9xdWVyeSkpIHsNCiAgICAgICAgICAkcnVuX3F1ZXJ5ID0g
c2FmZV9xdWVyeSgkc3FsX3F1ZXJ5KTsNCiAgICAgICAgICBpZighJHJ1bl9xdWVyeSkgew0K
ICAgICAgICAgICAgJHRleHQgLj0gZ3JhZihteXNxbGlfZXJyb3IoJERCLT5saW5rKSwgJyBz
dHlsZT0iY29sb3I6I0QxMDAwMDsiJyk7DQogICAgICAgICAgICAkdGV4dCAuPSBncmFmKCRz
cWxfcXVlcnksICcgc3R5bGU9ImNvbG9yOiNEMTAwMDA7IicpOw0KICAgICAgICAgIH0gZWxz
ZSB7DQogICAgICAgICAgICAkc3VjY2Vzc3F1ZXJ5Kys7DQogICAgICAgICAgICAkdGV4dCAu
PSBncmFmKCRzcWxfcXVlcnksICcgc3R5bGU9ImNvbG9yOiM0QjlGMDA7IicpOw0KICAgICAg
ICAgIH0NCiAgICAgICAgICAkdG90YWxxdWVyeWNvdW50Kys7DQogICAgICAgIH0gZWxzZWlm
IChwcmVnX21hdGNoKCIvXlxccyooc2VsZWN0KSAvaSIsJHNxbF9xdWVyeSkpIHsNCiAgICAg
ICAgICAkcnVuX3F1ZXJ5ID0gc2FmZV9xdWVyeSgkc3FsX3F1ZXJ5KTsNCiAgICAgICAgICBp
ZigkcnVuX3F1ZXJ5KSAkc3VjY2Vzc3F1ZXJ5Kys7DQogICAgICAgICAgICBpZiAoJHJ1bl9x
dWVyeSAmJiBteXNxbGlfbnVtX3Jvd3MoJHJ1bl9xdWVyeSkgPiAwKSB7DQoNCiAgICAgICAg
ICAgICAgLyogZ2V0IGNvbHVtbiBtZXRhZGF0YSAqLw0KICAgICAgICAgICAgICAkaSA9IDA7
DQogICAgICAgICAgICAgICRoZWFkZXJzID0gIiI7DQogICAgICAgICAgICAgIHdoaWxlICgk
aSA8IG15c3FsaV9udW1fZmllbGRzKCRydW5fcXVlcnkpKSB7DQogICAgICAgICAgICAgICAg
ICRtZXRhID0gbXlzcWxpX2ZldGNoX2ZpZWxkKCRydW5fcXVlcnkpOw0KICAgICAgICAgICAg
ICAgICAkaGVhZGVycy49aGNlbGwoJG1ldGEtPm5hbWUpOw0KICAgICAgICAgICAgICAgICAk
aSsrOw0KICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgJHJzZFtdID0NCiAgICAg
ICAgICAgICAgJzxkaXYgY2xhc3M9InNjcm9sbFdyYXBwZXIiPicuc3RhcnRUYWJsZSgnbGlz
dCcsICcnLCAnc2Nyb2xsYWJsZScpLg0KICAgICAgICAgICAgICAnPHRoZWFkPicudHIoJGhl
YWRlcnMpLic8L3RoZWFkPjx0Ym9keT4nOw0KDQogICAgICAgICAgICAgIHdoaWxlICgkYSA9
IG15c3FsaV9mZXRjaF9hc3NvYygkcnVuX3F1ZXJ5KSkgJG91dFtdID0gJGE7DQogICAgICAg
ICAgICAgIG15c3FsaV9mcmVlX3Jlc3VsdCgkcnVuX3F1ZXJ5KTsNCg0KICAgICAgICAgICAg
ICBmb3JlYWNoICgkb3V0IGFzICRiKSB7DQogICAgICAgICAgICAgICAgJGRhdGEgPSAiIjsN
CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkYiBhcyAkZikgew0KICAgICAgICAgICAgICAg
ICAgJGRhdGEuPXRkKCRmKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg
JHJzZFtdID0gdHIoJGRhdGEpOw0KICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAg
JHJzZFtdID0gJzwvdGJvZHk+Jy5lbmRUYWJsZSgpLic8L2Rpdj4nLmJyOw0KICAgICAgICAg
ICAgICAkb3V0ID0gYXJyYXkoKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAg
ICAgICR0ZXh0IC49IGdyYWYobXlzcWxpX2Vycm9yKCREQi0+bGluayksICcgc3R5bGU9ImNv
bG9yOiNEMTAwMDA7IicpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICR0ZXh0IC49IGdy
YWYoJHNxbF9xdWVyeSwgJyBzdHlsZT0iY29sb3I6I0QxMDAwMDsiJyk7DQogICAgICAgICAg
JHRvdGFscXVlcnljb3VudCsrOw0KICAgICAgICB9IGVsc2VpZiAocHJlZ19tYXRjaCgiL15c
XHMqKGRyb3B8c2hvd3xncmFudCkgL2kiLCRzcWxfcXVlcnkpKSB7DQogICAgICAgICAgJHRl
eHQgLj0gZ3JhZigkc3FsX3F1ZXJ5LiIgLSBRVUVSWSBUWVBFIE5PVCBTVVBQT1JURUQiLCAn
IHN0eWxlPSJjb2xvcjojRDEwMDAwOyInKTsNCiAgICAgICAgICAkdG90YWxxdWVyeWNvdW50
Kys7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgICR0ZXh0IC49IGdyYWYoJHN1Y2Nlc3Nx
dWVyeS4iLyIuJHRvdGFscXVlcnljb3VudC4iIFF1ZXJ5KHMpIEV4ZWN1dGVkIFN1Y2Nlc3Nm
dWxseSIsICcgc3R5bGU9ImNvbG9yOiMwMDY5RDE7IicpOw0KICAgIH0NCiAgfQ0KDQogIGVj
aG8NCiAgc3RhcnRUYWJsZSgnZWRpdCcpLg0KICB0cigNCiAgICB0ZCgNCiAgICAgIGZvcm0o
DQogICAgICAgIGdyYWYoIkVhY2ggcXVlcnkgbXVzdCBiZSBvbiBhIHNpbmdsZSBsaW5lLiAg
WW91IG1heSBydW4gbXVsdGlwbGUgcXVlcmllcyBhdCBvbmNlIGJ5IHN0YXJ0aW5nIGEgbmV3
IGxpbmUuIi5ici4iU3VwcG9ydGVkIHF1ZXJ5IHR5cGVzIGluY2x1ZGUgU0VMRUNULCBJTlNF
UlQsIFVQREFURSwgQ1JFQVRFLCBSRVBMQUNFLCBhbmQgREVMRVRFLiIpLg0KICAgICAgICBn
cmFmKCJXQVJOSU5HOiBBbGwgU1FMIHJ1biBpbiB0aGlzIHdpbmRvdyB3aWxsIGltbWVkaWF0
ZWx5IGFuZCBwZXJtYW5lbnRseSBjaGFuZ2UgeW91ciBkYXRhYmFzZS4iLCAnIHN0eWxlPSJm
b250LXdlaWdodDpib2xkOyInKS4NCiAgICAgICAgdGV4dF9hcmVhKCdzcWxfcXVlcnknLCcy
MDAnLCc1NTAnLCRzcWxfcXVlcnkyKS5ici4NCiAgICAgICAgZklucHV0KCdzdWJtaXQnLCdy
dW4nLGdUeHQoJ1J1bicpLCdwdWJsaXNoJykuaHJlZigiR28gdG8gRGF0YWJhc2UgTWFuYWdl
ciIsICJpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX21hbiIpLg0KICAgICAgICBlSW5wdXQoJ3Jz
c19zcWxfcnVuJyksICcnLCAnIHZlcmlmeShcJycuZ1R4dCgnYXJlX3lvdV9zdXJlJykuJ1wn
KSInDQogICAgICApDQogICAgKQ0KICApLg0KICB0cigNCiAgICB0ZCgNCiAgICAgICAgZ3Jh
ZigkdGV4dC5ici5pbXBsb2RlKCcnLCAkcnNkKSkNCiAgICApDQogICkuDQogIGVuZFRhYmxl
KCk7DQoNCn0NCmZ1bmN0aW9uIHByZXR0eUZpbGVTaXplICgkYnl0ZXMpIHsNCiAgaWYgKCRi
eXRlcyA8IDEwMjQpIHsNCiAgICAgIHJldHVybiAiJGJ5dGVzIGJ5dGVzIjsNCiAgfSBlbHNl
IGlmIChzdHJsZW4oJGJ5dGVzKSA8PSA5ICYmIHN0cmxlbigkYnl0ZXMpID49IDcpIHsNCiAg
ICAgIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwNDg1NzYsMikuIiBNQiI7DQog
IH0gZWxzZWlmIChzdHJsZW4oJGJ5dGVzKSA+PSAxMCkgew0KICAgICAgcmV0dXJuIG51bWJl
cl9mb3JtYXQoJGJ5dGVzIC8gMTA3Mzc0MTgyNCwyKS4iIEdCIjsNCiAgfQ0KICByZXR1cm4g
bnVtYmVyX2Zvcm1hdCgkYnl0ZXMgLyAxMDI0LDIpLiIgS0IiOw0KfQ0KDQpmdW5jdGlvbiBp
c19mb2xkZXJfZW1wdHkoJGRpcikgew0KICBpZiAoaXNfZGlyKCRkaXIpKSB7DQogICAgJGRs
PW9wZW5kaXIoJGRpcik7DQogICAgaWYgKCRkbCkgew0KICAgICAgd2hpbGUoJG5hbWUgPSBy
ZWFkZGlyKCRkbCkpIHsNCiAgICAgICAgaWYgKCFpc19kaXIoIiRkaXIvJG5hbWUiKSkgew0K
ICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAg
ICB9DQogICAgY2xvc2VkaXIoJGRsKTsNCiAgICB9DQogICAgcmV0dXJuIHRydWU7DQogIH0g
ZWxzZSByZXR1cm4gdHJ1ZTsNCn0iO3M6NDoidHlwZSI7czoxOiIxIjtzOjU6Im9yZGVyIjtz
OjE6IjUiO3M6NToiZmxhZ3MiO3M6MToiMCI7czo0OiJoZWxwIjtzOjUxOTA6IjxwPjxiciAv
PgpoMS4gVGV4dHBhdHRlcm4gRGF0YWJhc2UgTWFuYWdlcjwvcD4KCjxwPgk8cD5UaGUgcnNz
X2FkbWluX2RiX21hbmFnZXIgcGx1Z2luIGFkZHMgMyBuZXcgdGFicyB0byB5b3VyIFRleHRw
YXR0ZXJuIGFkbWluIGludGVyZmFjZS4gIEVhY2ggdGFiIGNvbnRhaW5zIGRpZmZlcmVudCBm
dW5jdGlvbmFsaXR5IHRvIGhlbHAgbWFuYWdlPGJyIC8+CjwvcD4KCjxwPnlvdXIgPGEgaHJl
Zj0iaHR0cDovL3d3dy5teXNxbC5jb20vIj5NeVNRTDwvYT4gZGF0YWJhc2UuICBZb3UgY2Fu
IHRoaW5rIG9mIHRoaXMgcGx1Z2luIGFzIGEgbGlnaHR3ZWlnaHQgcmVwbGFjZW1lbnQgZm9y
IDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwbXlhZG1pbi5uZXQvaG9tZV9wYWdlLyI+cGhwTXlB
ZG1pbjwvYT4uPC9wPjwvcD4KCgk8aDI+RGF0YWJhc2UgQmFja3VwPC9oMj4KCjxwPgk8cD5U
aGUgPHN0cm9uZz5EQiBCYWNrdXAgdGFiPC9zdHJvbmc+IGFsbG93cyB5b3UgdG8gYmFja3Vw
LCBkb3dubG9hZCBhbmQgcmVzdG9yZSB0aGUgTXlTUUwgZGF0YWJhc2UgdGhhdCBpcyB1c2Vk
IGZvciB5b3VyIFRleHRwYXR0ZXJuIGluc3RhbGxhdGlvbi48YnIgLz4KPC9wPgoKPHA+VGhl
IGRhdGFiYXNlIGJhY2t1cHMgYW5kIHJlc3RvcmVzIGFyZSBydW4gdXNpbmcgTXlTUUwmIzgy
MTc7cyA8YSBocmVmPSJodHRwOi8vZGV2Lm15c3FsLmNvbS9kb2MvbXlzcWwvZW4vbXlzcWxk
dW1wLmh0bWwiPm15c3FsZHVtcDwvYT4gY29tbWFuZC48YnIgLz4KPC9wPgoKPHA+T24gdGhp
cyB0YWIgeW91IGFyZSBhYmxlIHRvOjwvcD48L3A+CgoJPHVsPgoJCTxsaT5DcmVhdGUgYSAu
c3FsIGJhY2t1cCBmaWxlIG9uIHdpbmRvd3Mgd2l0aCB0aGUgYWRkaXRpb25hbCBvcHRpb24g
b2YgY3JlYXRpbmcgYSBnemlwcGVkIGJhY2t1cCBvbiAqbml4IG9wZXJhdGluZyBzeXN0ZW1z
PC9saT4KCQk8bGk+VmlldyBhIGxpc3Qgb2YgcHJldmlvdXMgYmFja3VwIGZpbGVzPC9saT4K
CQk8bGk+UmVzdG9yZSB5b3VyIGRhdGFiYXNlIGZyb20gb25lIG9mIHRoZSBwcmV2aW91cyBi
YWNrdXBzPC9saT4KCQk8bGk+RG93bmxvYWQgYSBiYWNrdXAgZmlsZTwvbGk+CgkJPGxpPkRl
bGV0ZSBvbGQgYmFja3VwczwvbGk+Cgk8L3VsPgoKCTxoMj5CYWNrdXAgUHJlZmVyZW5jZXM8
L2gyPgoKCTxwPllvdSBoYXZlIHRoZSBhYmlsaXR5IHRvIHNldCBzZXZlcmFsIHByZWZlcmVu
Y2VzIHJlbGF0ZWQgdG8geW91ciBkYXRhYmFzZSBiYWNrdXBzLiAgWW91IGNhbiBzZXQgdGhl
c2Ugb3B0aW9ucyBvbiB0aGUgYmFja3VwIHRhYi4gIFRoZSBvcHRpb25zIGluY2x1ZGU6PC9w
PgoKCTx1bD4KCQk8bGk+PHN0cm9uZz5Mb2NrIFRhYmxlczwvc3Ryb25nPiAmIzgyMTE7IFlv
dXIgaG9zdCBtYXkgb3IgbWF5IG5vdCBzdXBwb3J0IHRoaXMgb3B0aW9uLiAgRm9yIGV4YW1w
bGUsIGJ5IGRlZmF1bHQsIFRleHRkcml2ZSBkb2VzbiYjODIxNzt0IGFsbG93IHRhYmxlIGxv
Y2tpbmcuICBJZiB5b3VyIGJhY2t1cCBmYWlscywgdHJ5IHNldHRpbmcgdGhpcyB0byAmIzgy
MjA7Tm8mIzgyMjE7LjwvbGk+CgkJPGxpPjxzdHJvbmc+RGVidWcgTW9kZTwvc3Ryb25nPiAm
IzgyMTE7IFR1cm5pbmcgZGVidWdnaW5nIG9uIHdpbGwgZWNobyB0aGUgY29tbWFuZCBiZWlu
ZyBydW4gdG8gdGhlIHNjcmVlbi48L2xpPgoJCTxsaT48c3Ryb25nPkJhY2t1cCBQYXRoPC9z
dHJvbmc+ICYjODIxMTsgU2V0IHRoZSBkaXJlY3RvcnkgdGhhdCB5b3VyIGJhY2t1cHMgd2ls
bCBiZSBzYXZlZCB0by48L2xpPgoJCTxsaT48c3Ryb25nPk15c3FsZHVtcCBQYXRoPC9zdHJv
bmc+ICYjODIxMTsgSXRzIGxpa2VseSB0aGF0IHRoZSBkZWZhdWx0IHdpbGwgd29yayBmb3Ig
eW91LiAgSWYgbm90LCBlbnRlciB0aGUgZnVsbCBwYXRoIHRoZSB0aGUgZXhlY3V0YWJsZS48
L2xpPgoJCTxsaT48c3Ryb25nPk15c3FsIFBhdGg8L3N0cm9uZz4gJiM4MjExOyBJdHMgbGlr
ZWx5IHRoYXQgdGhlIGRlZmF1bHQgd2lsbCB3b3JrIGZvciB5b3UuICBJZiBub3QsIGVudGVy
IHRoZSBmdWxsIHBhdGggdGhlIHRoZSBleGVjdXRhYmxlLjwvbGk+Cgk8L3VsPgoKCTxoMj5E
YXRhYmFzZSBNYW5hZ2VyPC9oMj4KCjxwPgk8cD5UaGUgPHN0cm9uZz5EQiBNYW5hZ2VyIHRh
Yjwvc3Ryb25nPiBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIE15U1FMIGRhdGFi
YXNlIGFuZCBhbGwgb2YgaXRzIHRhYmxlcy4gIEEgZGV0YWlsZWQgbGlzdCBpbmNsdWRlcyB0
aGUgbmFtZSBvZiB0aGUgdGFibGUsIG51bWJlciBvZiByb3dzIGFuZCBmaWxlIHNwYWNlIHVz
YWdlLjxiciAvPgo8L3A+Cgo8cD5Zb3Ugd2lsbCBhbHNvIGJlIGFsZXJ0ZWQgb2YgYW55IG92
ZXJoZWFkIG9yIGVycm9ycyB0aGF0IG5lZWQgdG8gYmUgcmVwYWlyZWQuICBUYWJsZXMgY2Fu
IGJlIHJlcGFpcmVkLCBkcm9wcGVkIG9yIGJhY2tlZCB1cCBmcm9tIHRoaXMgbGlzdGluZy48
L3A+PC9wPgoKCTx1bD4KCQk8bGk+Q2xpY2tpbmcgb24gdGhlIG5hbWUgb2YgdGhlIHRhYmxl
IHdpbGwgcnVuIGEgc2VsZWN0ICogW3RhYmxlIG5hbWVdIDxzcGFuIGNsYXNzPSJjYXBzIj48
c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBz
Ij5TUUw8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+IHN0YXRlbWVudCBhbmQgdGFrZSB5
b3UgdG8gdGhlIDxzdHJvbmc+UnVuIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0i
Y2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+
PC9zcGFuPjwvc3Bhbj48L3NwYW4+IHRhYjwvc3Ryb25nPiB0byBkaXNwbGF5IHRoZSByZXN1
bHRzLjwvbGk+CgkJPGxpPlJlcGFpciBhIHNpbmdsZSB0YWJsZSBpbiB0aGUgbGlzdGluZyBi
eSBjbGlja2luZyB0aGUgUmVwYWlyIGxpbmsuPC9saT4KCQk8bGk+UmVwYWlyIGFsbCB0YWJs
ZXMgaW4gdGhlIGxpc3RpbmcgYnkgY2xpY2tpbmcgdGhlIFJlcGFpciBBbGwgbGluay48L2xp
PgoJCTxsaT5CYWNrdXAgYSBzaW5nbGUgdGFibGUgaW4gdGhlIGxpc3RpbmcgYnkgY2xpY2tp
bmcgdGhlIEJhY2t1cCBsaW5rLjwvbGk+CgkJPGxpPkRyb3AgYSBzaW5nbGUgdGFibGUgaW4g
dGhlIGxpc3RpbmcgYnkgY2xpY2tpbmcgdGhlIERyb3AgbGluay48L2xpPgoJPC91bD4KCgk8
aDI+UnVuIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xh
c3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+PC9zcGFuPjwvc3Bhbj48
L3NwYW4+IFdpbmRvdzwvaDI+Cgo8cD4JPHA+VGhlIDxzdHJvbmc+UnVuIDxzcGFuIGNsYXNz
PSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNs
YXNzPSJjYXBzIj5TUUw8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+IHRhYjwvc3Ryb25n
PiBhbGxvd3MgZm9yIGZyZWUgZm9ybSBlbnRyeSBhbmQgZXhlY3V0aW9uIG9mIDxzcGFuIGNs
YXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFu
IGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+IHN0YXRlbWVu
dHMuICBUaGUgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBj
bGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj48L3NwYW4+PC9zcGFu
Pjwvc3Bhbj4gd2luZG93IGFjY2VwdHM8YnIgLz4KPC9wPgoKPHA+PHNwYW4gY2xhc3M9ImNh
cHMiPjxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9
ImNhcHMiPlNFTEVDVDwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4sIDxzcGFuIGNsYXNz
PSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNs
YXNzPSJjYXBzIj5JTlNFUlQ8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+LCA8c3BhbiBj
bGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj48c3Bh
biBjbGFzcz0iY2FwcyI+VVBEQVRFPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPiwgPHNw
YW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+
PHNwYW4gY2xhc3M9ImNhcHMiPkNSRUFURTwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4s
IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNh
cHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5SRVBMQUNFPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9z
cGFuPiwgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFz
cz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlRSVU5DQVRFPC9zcGFuPjwvc3Bhbj48L3Nw
YW4+PC9zcGFuPiwgYW5kIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+
PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5ERUxFVEU8L3NwYW4+PC9z
cGFuPjwvc3Bhbj48L3NwYW4+IHN0YXRlbWVudHMuICBJZiBhIDxzcGFuIGNsYXNzPSJjYXBz
Ij48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJj
YXBzIj5TRUxFQ1Q8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+IHN0YXRlbWVudCBpcyBy
dW4sIHRoZSByZXN1bHRzIHdpbGwgYmUgZGlzcGxheWVkIHRvIHlvdSBiZWxvdyB0aGUgPHNw
YW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+
PHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4gd2lu
ZG93IGluIGEgdGFibGUuPGJyIC8+CjwvcD4KCjxwPlRoZSB0YWJsZSBtYXJrdXAgYWxsb3dz
IHlvdSB0byBhZGQgeW91ciBvd24gc3R5bGVzIGZvciBjcmVhdGluZyBhIDxhIGhyZWY9Imh0
dHA6Ly93d3cuYWdhdmVncm91cC5jb20vP3A9MzEiPjxzcGFuIGNsYXNzPSJjYXBzIj48c3Bh
biBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5D
U1M8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+IFNjcm9sbGFibGUgVGFibGU8L2E+Ljwv
cD48L3A+CgoJPGgyPk1ham9yIFJhbnNvbSBDb250cmlidXRvcnM8L2gyPgoKCTxwPgk8dWw+
CgkJPGxpPkphbiBXaWxsZW0gZGUgQnJ1aWpuPC9saT4KCQk8bGk+SGVpa2tpIFlsPC9wPiI7
czozOiJtZDUiO3M6MzI6IjZlOTdjZDNmNzRhNGExOTMwODJmNzU4Y2YxMzY2MGU3Ijt9

Offline

#19 2018-03-17 08:54:11

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

Re: Making your plugins 4.7-aware

etc wrote #310057:

This works on 4.7 for me:

# Name: rss_admin_db_manager v4.4.1...

Confirmed. It works for me too now. Thanks so much Oleg.


Yiannis
——————————
NeMe | hblack.art | EMAP | A Sea change | Toolkit of Care
I do my best editing after I click on the submit button.

Offline

#20 2018-03-17 12:40:12

uli
Moderator
From: Cologne
Registered: 2006-08-15
Posts: 4,303

Re: Making your plugins 4.7-aware

Yay, prefs are saved, and the backups are correctly created, not just pseudo ones in 20b-sizes. Thank you very much, Oleg, for fixing this super-important plugin! :))

I noticed one thing, though, and I can’t tell if I had that already. On the Diagnostics panel, and only there, when Debug mode is on I get an error, twice:

Notice "Undefined index: success"
in /Users/Uli/Sites/txp470-dev/textpattern/include/txp_diag.php at line 173.

textpattern/include/txp_diag.php:173 adminErrorHandler()
textpattern/include/txp_diag.php:499 diag_msg_wrap()
textpattern/include/txp_diag.php:66 doDiagnostics()
textpattern/index.php:252 include()

Do you guys get this, too, with rss_admin_db_manager installed?


In bad weather I never leave home without wet_plugout, smd_where_used and adi_form_links

Offline

#21 2018-03-17 13:34:51

etc
Developer
Registered: 2010-11-11
Posts: 5,028
Website GitHub

Re: Making your plugins 4.7-aware

Uli, are you sure you have the latest greatest dev? We had this error in the first beta, but it should be patched now.

Offline

#22 2018-03-17 14:22:28

uli
Moderator
From: Cologne
Registered: 2006-08-15
Posts: 4,303

Re: Making your plugins 4.7-aware

etc wrote #310076:

Uli, are you sure you have the latest greatest dev? We had this error in the first beta, but it should be patched now.

I just downloaded and installed the beta yesterday. Now with the latest nightly the errors are gone. Thanks!


In bad weather I never leave home without wet_plugout, smd_where_used and adi_form_links

Offline

#23 2018-07-13 07:48:17

NicolasGraph
Plugin Author
From: France
Registered: 2008-07-24
Posts: 860
Website

Re: Making your plugins 4.7-aware

Hi, I’m wondering if there is a kind a good practice or convention for naming plugin related global attributes? I know the txp- prefix is reserved but how should we avoid clashes between two plugins with same global attribute names?
Thanks.

Last edited by NicolasGraph (2018-07-13 07:51:43)


Nicolas
Follow me on Twitter and GitHub!
Multiple edits are usually to correct my frenglish…

Offline

#24 2018-07-13 08:28:05

etc
Developer
Registered: 2010-11-11
Posts: 5,028
Website GitHub

Re: Making your plugins 4.7-aware

NicolasGraph wrote #313010:

Hi, I’m wondering if there is a kind a good practice or convention for naming plugin related global attributes? I know the txp- prefix is reserved but how should we avoid clashes between two plugins with same global attribute names?

I guess the same convention applies that for the tags: you should prefix them, but you don’t have to. The parser does not care, fwiw.

Offline

Board footer

Powered by FluxBB