# wet_for_each_image v0.4
# Loops through images matching specific criteria and renders the contained markup
# Robert Wetzlmayr
# http://awasteofwords.com/article/wet_for_each_image-textpattern-image-plugin

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

YTo5OntzOjc6InZlcnNpb24iO3M6MzoiMC40IjtzOjY6ImF1dGhvciI7czoxNjoiUm9iZXJ0
IFdldHpsbWF5ciI7czoxMDoiYXV0aG9yX3VyaSI7czo3NjoiaHR0cDovL2F3YXN0ZW9md29y
ZHMuY29tL2FydGljbGUvd2V0X2Zvcl9lYWNoX2ltYWdlLXRleHRwYXR0ZXJuLWltYWdlLXBs
dWdpbiI7czoxMToiZGVzY3JpcHRpb24iO3M6ODA6Ikxvb3BzIHRocm91Z2ggaW1hZ2VzIG1h
dGNoaW5nIHNwZWNpZmljIGNyaXRlcmlhIGFuZCByZW5kZXJzIHRoZSBjb250YWluZWQgbWFy
a3VwIjtzOjQ6Im5hbWUiO3M6MTg6IndldF9mb3JfZWFjaF9pbWFnZSI7czo0OiJoZWxwIjtz
Ojc4NDU6IgoJPGgzPkxvb3AgdGhyb3VnaCBpbWFnZXMgbWF0Y2hpbmcgc3BlY2lmaWMgY3Jp
dGVyaWEsIHJlbmRlcmluZyB0aGUgY29udGFpbmVkIG1hcmt1cCBmb3IgZWFjaCBmb3VuZCBp
bWFnZTwvaDM+CgoJPHA+PHN0cm9uZz53ZXRfZm9yX2VhY2hfaW1hZ2U8L3N0cm9uZz4gbG9v
cHMgdGhyb3VnaCBpbWFnZXMgbWF0Y2hpbmcgc3BlY2lmaWMgY3JpdGVyaWEgYW5kIHBhcnNl
cyB0aGUgZW5jbG9zZWQgbWFya3VwIHdoaWxlIHBhc3NpbmcgdGhlIGZvdW5kIGltYWdlIGlk
cyBpbnRvIGl0LiBJbWFnZSBpZHMgYXJlIHBhc3NlZCB0byB0aGUgY29udGFpbmVkIHN0YXRl
bWVudHMgYXMgYSByZXBsYWNlbWVudCBmb3IgYSBzcGVjaWFsIHBsYWNlaG9sZGVyIHN0cmlu
ZywgJiM4MjIxO3tpZH0mIzgyMjE7LjxiciAvPgpJdCBjYW4gYmUgdXNlZCBhcyBlaXRoZXIg
YSBzaW5nbGUgb3IgYSBjb250YWluZXIgdGFnLiBJbiBzaW5nbGUgdGFnIHVzYWdlLCA8c3Ry
b25nPndldF9mb3JfZWFjaF9pbWFnZTwvc3Ryb25nPiBlbXBsb3lzIDxjb2RlPiZsdDt0eHA6
aW1hZ2UgLyZndDs8L2NvZGU+IHRvIHJlbmRlciB0aGUgZm91bmQgaW1hZ2VzLjwvcD4KCgk8
aDQ+VXNhZ2U6PC9oND4KCjxjb2RlPiZsdDt0eHA6d2V0X2Zvcl9lYWNoX2ltYWdlIC8mZ3Q7
PC9jb2RlPgoKCTxoND5SZXF1aXJlZCBhdHRyaWJ1dGVzOjwvaDQ+CgoJPHA+Tm9uZS48L3A+
CgoJPGg0Pk9wdGlvbmFsIGF0dHJpYnV0ZXM6PC9oND4KCgk8dGFibGU+CgkJPHRyPgoJCQk8
dGg+YXR0cmlidXRlIDwvdGg+CgkJCTx0aD5kZXNjcmlwdGlvbiA8L3RoPgoJCQk8dGg+ZGVm
YXVsdCA8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IDxzdHJvbmc+Y2F0ZWdvcnk8L3N0
cm9uZz4gPC90ZD4KCQkJPHRkPiBDYXRlZ29yeSBmaWx0ZXIsIGNvbW1hIHNlcGFyYXRlZCBs
aXN0IG9mIGluY2x1ZGVkIGltYWdlIGNhdGVnb3JpZXMuIDwvdGQ+CgkJCTx0ZD4gQ3VycmVu
dCBzaXRlIGNhdGVnb3J5IDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gPHN0cm9uZz5l
eGNsdWRlPC9zdHJvbmc+IDwvdGQ+CgkJCTx0ZD4gQ2F0ZWdvcnkgZmlsdGVyLCBjb21tYSBz
ZXBhcmF0ZWQgbGlzdCBvZiBleGNsdWRlZCBpbWFnZSBjYXRlZ29yaWVzLiA8L3RkPgoJCQk8
dGQ+IE5vbmUgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiA8c3Ryb25nPmxpbWl0PC9z
dHJvbmc+IDwvdGQ+CgkJCTx0ZD4gTGltaXRzIHRoZSBhbW91bnQgb2YgaW1hZ2VzIHByb2Nl
c3NlZC4gPC90ZD4KCQkJPHRkPiBVbmxpbWl0ZWQgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJ
PHRkPiA8c3Ryb25nPm9mZnNldDwvc3Ryb25nPiA8L3RkPgoJCQk8dGQ+IEEgcG9zaXRpdmUg
aW50ZWdlciBudW1iZXIuIFRoZSBpbWFnZSBsaXN0aW5nIHN0YXJ0cyBhdCB0aGlzIG51bWJl
ci4gPC90ZD4KCQkJPHRkPiAwIDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gPHN0cm9u
Zz5zb3J0PC9zdHJvbmc+IDwvdGQ+CgkJCTx0ZD4gRGV0ZXJtaW5lcyBzb3J0IGZpZWxkIGFu
ZCBvcmRlci4gUG9zc2libHkgdmFsdWVzIGFyZSBlLmcuICYjODIyMDtpZCBhc2MmIzgyMjE7
LCAmIzgyMjA7bmFtZSBkZXNjJiM4MjIxOyBvciBhbnkgb3RoZXIgdmFsaWQgU1FMIGNsYXVz
ZSB1c2luZyBvbmUgb2YgdGhlIGltYWdlIHRhYmxlJiM4MjE3O3MgZmllbGQgbmFtZXMuPC90
ZD4KCQkJPHRkPiBOb25lIDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gPHN0cm9uZz50
aHVtYjwvc3Ryb25nPiA8L3RkPgoJCQk8dGQ+IElmIHNldCB0byAmIzgyMjA7MSYjODIyMTss
IHJlc3RyaWN0cyB0aGUgcHJvY2Vzc2VkIGltYWdlIGNvbGxlY3Rpb24gdG8gc29sZWx5IGlt
YWdlcyBhc3NvY2lhdGVkIHdpdGggYSB0aHVtYm5haWwuIDwvdGQ+CgkJCTx0ZD4gRW1wdHkg
PC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiA8c3Ryb25nPmZvcm08L3N0cm9uZz4gPC90
ZD4KCQkJPHRkPiBBIFRleHRwYXR0ZXJuIGZvcm0gd2hpY2ggd2lsbCBiZSB1c2VkIHRvIHJl
bmRlciB0aGUgb3V0cHV0LiBUaGlzIGZvcm0gb3ZlcnJpZGVzIGFueSBtYXJrdXAgZXZlbnR1
YWxseSBjb250YWluZWQgaW5zaWRlIHRoaXMgcGx1Z2luJiM4MjE3O3MgdGFnLjwvdGQ+CgkJ
CTx0ZD4gRW1wdHkgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiA8c3Ryb25nPmJyZWFr
PC9zdHJvbmc+IDwvdGQ+CgkJCTx0ZD4gVGhpcyBzdHJpbmcgd2lsbCBiZSB1c2VkIHRvIHNl
cGFyYXRlIGVhY2ggaW1hZ2UmIzgyMTc7cyBvdXRwdXQuIFNlZSA8YSBocmVmPSJodHRwOi8v
dGV4dHBhdHRlcm4ubmV0L3dpa2kvaW5kZXgucGhwP3RpdGxlPUF0dHJpYnV0ZXNfQ3Jvc3Nf
UmVmZXJlbmNlI2JyZWFrIj5UZXh0Ym9vazwvYT4gZm9yIGZ1cnRoZXIgcmVmZXJlbmNlLiA8
L3RkPgoJCQk8dGQ+IEVtcHR5IDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gPHN0cm9u
Zz5jbGFzczwvc3Ryb25nPiA8L3RkPgoJCQk8dGQ+IDxjb2RlPmNsYXNzPC9jb2RlPiBhdHRy
aWJ1dGUgd2hpY2ggd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSB0byB0aGUgPGNvZGU+d3JhcHRh
ZzwvY29kZT4uIDwvdGQ+CgkJCTx0ZD4gPGNvZGU+d2V0X2Zvcl9lYWNoX2ltYWdlPC9jb2Rl
PiA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IDxzdHJvbmc+bGFiZWw8L3N0cm9uZz4g
PC90ZD4KCQkJPHRkPiBUaGlzIHN0cmluZyB3aWxsIGJlIHByZXBlbmRlZCB0byB0aGUgaW1h
Z2UgbGlzdC4gIFNlZSA8YSBocmVmPSJodHRwOi8vdGV4dHBhdHRlcm4ubmV0L3dpa2kvaW5k
ZXgucGhwP3RpdGxlPUF0dHJpYnV0ZXNfQ3Jvc3NfUmVmZXJlbmNlI2xhYmVsIj5UZXh0Ym9v
azwvYT4gZm9yIGZ1cnRoZXIgcmVmZXJlbmNlLjwvdGQ+CgkJCTx0ZD4gRW1wdHkgPC90ZD4K
CQk8L3RyPgoJCTx0cj4KCQkJPHRkPiA8c3Ryb25nPmxhYmVsdGFnPC9zdHJvbmc+IDwvdGQ+
CgkJCTx0ZD4gKFgpSFRNTCB0YWcgdXNlZCB0byBlbmNsb3NlIHRoZSBsYWJlbC4gU2VlIDxh
IGhyZWY9Imh0dHA6Ly90ZXh0cGF0dGVybi5uZXQvd2lraS9pbmRleC5waHA/dGl0bGU9QXR0
cmlidXRlc19Dcm9zc19SZWZlcmVuY2UjbGFiZWx0YWciPlRleHRib29rPC9hPiBmb3IgZnVy
dGhlciByZWZlcmVuY2UuPC90ZD4KCQkJPHRkPiBFbXB0eSA8L3RkPgoJCTwvdHI+CgkJPHRy
PgoJCQk8dGQ+IDxzdHJvbmc+d3JhcHRhZzwvc3Ryb25nPiA8L3RkPgoJCQk8dGQ+IChYKUhU
TUwgdGFnIHVzZWQgdG8gZW5jbG9zZSB0aGUgaW1hZ2UgbGlzdC4gU2VlIDxhIGhyZWY9Imh0
dHA6Ly90ZXh0cGF0dGVybi5uZXQvd2lraS9pbmRleC5waHA/dGl0bGU9QXR0cmlidXRlc19D
cm9zc19SZWZlcmVuY2Ujd3JhcHRhZyI+VGV4dGJvb2s8L2E+IGZvciBmdXJ0aGVyIHJlZmVy
ZW5jZS48L3RkPgoJCQk8dGQ+IEVtcHR5IDwvdGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPGg0
PlNhbXBsZSB1c2U8L2g0PgoKCTx0YWJsZT4KCQk8dHI+CgkJCTx0aD50YWcgPC90aD4KCQkJ
PHRoPmZ1bmN0aW9uIDwvdGg+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gPGNvZGU+Jmx0O3R4
cDp3ZXRfZm9yX2VhY2hfaW1hZ2UgY2F0ZWdvcnk9ImV2ZW50cyIgLyZndDs8L2NvZGU+IDwv
dGQ+CgkJCTx0ZD4gRGlzcGxheXMgYWxsIGltYWdlcyBjb250YWluZWQgaW4gdGhlICYjODIy
MDtldmVudHMmIzgyMjE7IGNhdGVnb3J5IGJ5IGVtcGxveWluZyA8Y29kZT50eHA6aW1hZ2U8
L2NvZGU+ICYjODIxMTsgdGhlIGRlZmF1bHQgYmVoYXZpb3VyLiA8L3RkPgoJCTwvdHI+CgkJ
PHRyPgoJCQk8dGQ+IDxjb2RlPiZsdDt0eHA6d2V0X2Zvcl9lYWNoX2ltYWdlIGNhdGVnb3J5
PSJldmVudHMsZXhoaWJpdGlvbnMiIHRodW1iPSIxIiZndDsmbHQ7dHhwOnRodW1ibmFpbCBp
ZD0ie2lkfSIgLyZndDsmbHQ7L3R4cDp3ZXRfZm9yX2VhY2hfaW1hZ2UmZ3Q7PC9jb2RlPiA8
L3RkPgoJCQk8dGQ+IERpc3BsYXlzIGFsbCBpbWFnZXMgY29udGFpbmVkIGluIHRoZSAmIzgy
MjA7ZXZlbnRzJiM4MjIxOyBvciAmIzgyMjA7ZXhoaWJpdGlvbnMmIzgyMjE7IGNhdGVnb3J5
IGJ5IHBhc3NpbmcgZWFjaCBpbWFnZSBpbnRvIDxjb2RlPnR4cDp0aHVtYm5haWw8L2NvZGU+
LiA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IDxjb2RlPiZsdDt0eHA6d2V0X2Zvcl9l
YWNoX2ltYWdlIGV4Y2x1ZGU9InByaXZhdGUiJmd0OyZsdDt0eHA6dXBtX2ltYWdlIGltYWdl
X2lkPSJ7aWR9IiB0eXBlPSJwb3B1cCIgLyZndDsmbHQ7L3R4cDp3ZXRfZm9yX2VhY2hfaW1h
Z2UmZ3Q7PC9jb2RlPiA8L3RkPgoJCQk8dGQ+IERpc3BsYXlzIGFsbCBpbWFnZXMgY29udGFp
bmVkIGluIGFsbCBidXQgdGhlICYjODIyMDtwcml2YXRlJiM4MjIxOyBjYXRlZ29yeSBieSBw
YXNzaW5nIGVhY2ggaW1hZ2UgaW50byA8Y29kZT50eHA6dXBtX2ltYWdlPC9jb2RlPiB3b3Jr
ZXIgdGFnLiA8Y29kZT51cG1faW1hZ2U8L2NvZGU+IGFjY2VwdHMgYW4gPGNvZGU+aW1hZ2Vf
aWQ8L2NvZGU+IGF0dHJpYnV0ZSwgc28gd2UgcGFzcyB0aGUgaW1hZ2VzJiM4MjE3OyBpZHMg
dGhlcmUgdXNpbmcgPGNvZGU+e2lkfTwvY29kZT4gYXMgYSAgcGxhY2UgaG9sZGVyLiA8L3Rk
PgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTxoND5MaWNlbmNlPC9oND4KCgk8cD5UaGlzIHBsdWdp
biBpcyByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xp
Y2Vuc2VzL2dwbC50eHQiPkdudSBHZW5lcmFsIFB1YmxpYyBMaWNlbmNlPC9hPi48L3A+CgoK
CiA8aDQ+RmluZCB0aGlzIHVzZWZ1bD88L2g0Pgo8cD5TaG93IHlvdXIgYXBwcmVjaWF0aW9u
IGFuZCBzdXBwb3J0IGZ1dHVyZSBkZXZlbG9wbWVudCBvZiB0aGlzIHBsdWdpbiBieSBhIHNt
YWxsIGRvbmF0aW9uLiBUaGFuayB5b3UhPC9wPjwvZm9ybT4KPGZvcm0gYWN0aW9uPSJodHRw
czovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPgo8aW5w
dXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSJfcy14Y2xpY2siIC8+CjxpbnB1
dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRu
L3gtY2xpY2stYnV0MDQuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJNYWtl
IHBheW1lbnRzIHdpdGggUGF5UGFsIC0gaXQncyBmYXN0LCBmcmVlIGFuZCBzZWN1cmUhIiAv
Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJlbmNyeXB0ZWQiIHZhbHVlPSItLS0tLUJF
R0lOIFBLQ1M3LS0tLS1NSUlIc1FZSktvWklodmNOQVFjRW9JSUhvakNDQjU0Q0FRRXhnZ0V3
TUlJQkxBSUJBRENCbERDQmpqRUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWtOQk1S
WXdGQVlEVlFRSEV3MU5iM1Z1ZEdGcGJpQldhV1YzTVJRd0VnWURWUVFLRXd0UVlYbFFZV3dn
U1c1akxqRVRNQkVHQTFVRUN4UUtiR2wyWlY5alpYSjBjekVSTUE4R0ExVUVBeFFJYkdsMlpW
OWhjR2t4SERBYUJna3Foa2lHOXcwQkNRRVdEWEpsUUhCaGVYQmhiQzVqYjIwQ0FRQXdEUVlK
S29aSWh2Y05BUUVCQlFBRWdZQWhWeVgrUGZVT2NqamRqYUIvazM5WWFoWFhtbHJNMXo4amg1
QWpNYUJIOG9FbTJwaHJsSTluRWllR0xsUmhicC9xNmJkZ1M4UWtlWWVxQ3BnOTJGVTNXZ2wr
OVI3N213OUlUQzFPQkQveGlJZkhHV3dIWTZyYjhubUlkcWJoaEhRTk9YenJTdUUrWXFBZmU1
NjNKWWkzNEVEcjloUExvQ1VHSkY1ZldoK2RXakVMTUFrR0JTc09Bd0lhQlFBd2dnRXRCZ2tx
aGtpRzl3MEJCd0V3RkFZSUtvWklodmNOQXdjRUNCSnRxVGtFMzZQcWdJSUJDTERkdjNlUTZX
cmlaaXBjT2R5SkpJN0t4NzRDOFVjRFBmMDNWbW9FRWU1eURZR2Y1Q3pmbjhzZ2lJUmpGK3N6
amNnTFBqZmtTeHh5NUtjQ2JENlB4M1d3YmNUeEJFanVvbDd6UDRBRnBtalVLNnd5S2NFRDR1
cWdYWlJ1OWVESVM4eHVOcmwxK08zYmNwVWsvTk12SmZwRDB6SkZpWEk0bC81THVGd29ta3l3
ekk4aFdmN2N2SDBjSDUwOUREamx4TEMrSlJ5L2RSSFlwR0xSekJtQk0zS0xIaURqQkQ2QVlC
ZjlPdkk1elRrK1RLT0d3cVNrTjE4SW0wT082SUhhYXNHQjN4dE1ZVHNzU3c2ZVVFbUNYTjdZ
NjlTMVFxV3JaODJCdElHSFdEbzdIbzl4S3hGU0JqMjdaL1NNYnZaNTAwai9sbnYvd0tSOEU0
Y2xucmFQQzhKRHZtVWFJcUhqRXFDQ0E0Y3dnZ09ETUlJQzdLQURBZ0VDQWdFQU1BMEdDU3FH
U0liM0RRRUJCUVVBTUlHT01Rc3dDUVlEVlFRR0V3SlZVekVMTUFrR0ExVUVDQk1DUTBFeEZq
QVVCZ05WQkFjVERVMXZkVzUwWVdsdUlGWnBaWGN4RkRBU0JnTlZCQW9UQzFCaGVWQmhiQ0JK
Ym1NdU1STXdFUVlEVlFRTEZBcHNhWFpsWDJObGNuUnpNUkV3RHdZRFZRUURGQWhzYVhabFgy
RndhVEVjTUJvR0NTcUdTSWIzRFFFSkFSWU5jbVZBY0dGNWNHRnNMbU52YlRBZUZ3MHdOREF5
TVRNeE1ERXpNVFZhRncwek5UQXlNVE14TURFek1UVmFNSUdPTVFzd0NRWURWUVFHRXdKVlV6
RUxNQWtHQTFVRUNCTUNRMEV4RmpBVUJnTlZCQWNURFUxdmRXNTBZV2x1SUZacFpYY3hGREFT
QmdOVkJBb1RDMUJoZVZCaGJDQkpibU11TVJNd0VRWURWUVFMRkFwc2FYWmxYMk5sY25Sek1S
RXdEd1lEVlFRREZBaHNhWFpsWDJGd2FURWNNQm9HQ1NxR1NJYjNEUUVKQVJZTmNtVkFjR0Y1
Y0dGc0xtTnZiVENCbnpBTkJna3Foa2lHOXcwQkFRRUZBQU9CalFBd2dZa0NnWUVBd1VkTzNm
eEV6RXRjbkk3WktaTDQxMlh2WlB1Z29uaTdpN0Q3cHJDZTBBdGFIVGM5N0NZZ203TnNBdEp5
eE5MaXhtaExWOHB5SUVhaUhYV0FoOGZQS1crUjAxNytFbVhycjlFYXF1UG1zVnZUeXdBQUUx
UE1OT0txbzJrbDRHeGl6OXpacUlhak9tMWZaR1djR1MwZjVKUTJrQnFOYnZiZzIvWmErR0ov
cXdVQ0F3RUFBYU9CN2pDQjZ6QWRCZ05WSFE0RUZnUVVscDk4dThadkY3MVpQMUxYQ2h2c0VO
WmtsR3N3Z2JzR0ExVWRJd1NCc3pDQnNJQVVscDk4dThadkY3MVpQMUxYQ2h2c0VOWmtsR3Vo
Z1pTa2daRXdnWTR4Q3pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSUV3SkRRVEVXTUJRR0Ex
VUVCeE1OVFc5MWJuUmhhVzRnVm1sbGR6RVVNQklHQTFVRUNoTUxVR0Y1VUdGc0lFbHVZeTR4
RXpBUkJnTlZCQXNVQ214cGRtVmZZMlZ5ZEhNeEVUQVBCZ05WQkFNVUNHeHBkbVZmWVhCcE1S
d3dHZ1lKS29aSWh2Y05BUWtCRmcxeVpVQndZWGx3WVd3dVkyOXRnZ0VBTUF3R0ExVWRFd1FG
TUFNQkFmOHdEUVlKS29aSWh2Y05BUUVGQlFBRGdZRUFnVjg2VnBxQVd1WHZYNk9ybzRxSjF0
WVZJVDVEZ1dwRTY5MkFnNDIySDd5UklyLzlqL2lLRzRUaGlhL09mbHg0VGRMK0lGSkJBeVBL
OXY2elpOWnRCZ1BCeW5YYjA0OGhzUDE2bDJ2aTBrNVEySktpUERzRWZCaEdJK0hueExYRWFV
V0FjVmZDc1FGdmQyQTFzeFJyNjdpcDV5Mnd3QmVsVWVjUDNBakorWWN4Z2dHYU1JSUJsZ0lC
QVRDQmxEQ0JqakVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFrTkJNUll3RkFZRFZR
UUhFdzFOYjNWdWRHRnBiaUJXYVdWM01SUXdFZ1lEVlFRS0V3dFFZWGxRWVd3Z1NXNWpMakVU
TUJFR0ExVUVDeFFLYkdsMlpWOWpaWEowY3pFUk1BOEdBMVVFQXhRSWJHbDJaVjloY0dreEhE
QWFCZ2txaGtpRzl3MEJDUUVXRFhKbFFIQmhlWEJoYkM1amIyMENBUUF3Q1FZRkt3NERBaG9G
QUtCZE1CZ0dDU3FHU0liM0RRRUpBekVMQmdrcWhraUc5dzBCQndFd0hBWUpLb1pJaHZjTkFR
a0ZNUThYRFRBMU1USXdPREV4TkRVMU5Wb3dJd1lKS29aSWh2Y05BUWtFTVJZRUZBcHZNYzJm
WnVDK1dhTnZrRVM0Yzl2NElEdDdNQTBHQ1NxR1NJYjNEUUVCQVFVQUJJR0FGTUtXeDMvSUc0
TFpON0I0NVJGSzhscXgvN2UxV0NqUWZENTZpdDZLRHVJV2svNmp4dHZRYjFRQjQzREJGY1p2
emlRK2piMjF4OFJCTW5KQldIaUFlR3QvWlphMFBJaFUwNHRUM1ZyZUFpd3ZIQXNvUTlBSjlh
YjROYTRCaDJPWnNWYzdxM3FsTHZYbUFNRm1ORmRZZ0ZPWXdHcXBjeXF5RG5LalpLZmJBVU09
LS0tLS1FTkQgUEtDUzctLS0tLSIvPiI7czo0OiJjb2RlIjtzOjE0ODI6IgpmdW5jdGlvbiB3
ZXRfZm9yX2VhY2hfaW1hZ2UoJGF0dHMsICR0aGluZykKewoJZ2xvYmFsICRwcmV0ZXh0OwoK
CWlmICghZnVuY3Rpb25fZXhpc3RzKCd3ZXRfc3FsYXJyYXlfMicpKQoJewoJCWZ1bmN0aW9u
IHdldF9zcWxhcnJheV8yICgkYSkKCQl7CgkJCSRhID0gZG9fbGlzdCgkYSk7CgkJCSRhID0g
am9pbigiJywnIiwgZG9TbGFzaCgkYSkpOwoJCQlyZXR1cm4gIignJGEnKSI7CgkJfQoJfQoK
CWV4dHJhY3QgKGxBdHRzKGFycmF5KAoJLy8gZmlsdGVyIGNyaXRlcmlhCgkJJ2NhdGVnb3J5
JyA9PiBkb1NsYXNoKCRwcmV0ZXh0WydjJ10pLAoJCSdleGNsdWRlJyA9PiAnJywKCQknbGlt
aXQnID0+ICcnLAoJCSdvZmZzZXQnID0+ICcwJywKCQknc29ydCcgPT4gJycsCgkJJ3RodW1i
JyA9PiAnJywKCS8vIGh0bWwgb3V0cHV0CgkJJ2Zvcm0nICA9PiAnJywKCQknYnJlYWsnICA9
PiAnJywKCQknY2xhc3MnID0+IF9fRlVOQ1RJT05fXywKCQknbGFiZWwnICA9PiAnJywKCQkn
bGFiZWx0YWcnICA9PiAnJywKCQknd3JhcHRhZycgID0+ICcnKSwgJGF0dHMsIDApKTsKCglp
ZiAoIWVtcHR5KCRmb3JtKSkKCXsKCQkkdGhpbmcgPSBmZXRjaF9mb3JtKCRmb3JtKTsKCX0K
CglpZiAoZW1wdHkoJHRoaW5nKSkKCXsKCQkkdGhpbmcgPSAnPHR4cDppbWFnZSBpZD0ie2lk
fSIgLz4nOwoJfQoKCS8vIGJ1aWxkIHF1ZXJ5IGZvciBpbWFnZXMKCSRjbGF1c2UgPSAnMT0x
JzsKCWlmICgnJyAhPSAkY2F0ZWdvcnkpICRjbGF1c2UgLj0gJyBhbmQgY2F0ZWdvcnkgaW4g
JyAuIHdldF9zcWxhcnJheV8yKCRjYXRlZ29yeSk7CglpZiAoJycgIT0gJGV4Y2x1ZGUpICRj
bGF1c2UgLj0gJyBhbmQgY2F0ZWdvcnkgbm90IGluICcgLiB3ZXRfc3FsYXJyYXlfMigkZXhj
bHVkZSk7CglpZiAoaXNfbnVtZXJpYygkdGh1bWIpKSAkY2xhdXNlIC49ICIgYW5kIHRodW1i
bmFpbD0nJHRodW1iJyI7CglpZiAoIWVtcHR5KCRzb3J0KSkgJGNsYXVzZSAuPSAiIG9yZGVy
IGJ5ICRzb3J0IjsKCWlmICghaXNfbnVtZXJpYygkb2Zmc2V0KSkgJG9mZnNldD0gJzAnOwoJ
aWYgKGlzX251bWVyaWMoJGxpbWl0KSkgJGNsYXVzZSAuPSAiIGxpbWl0ICRvZmZzZXQsJGxp
bWl0IjsKCgkkcnMgPSBzYWZlX2NvbHVtbignaWQnLCd0eHBfaW1hZ2UnLCAkY2xhdXNlKTsK
CglpZiAoY291bnQoJHJzKSAhPSAwKQoJewoJCS8vIHBhc3MgZWFjaCBpbWFnZSBpZCB0byAk
dGhpbmcKCQlmb3JlYWNoICgkcnMgYXMgJGlkKQoJCXsKCQkJJG91dFtdID0gcGFyc2Uoc3Ry
X3JlcGxhY2UoJ3tpZH0nLCAkaWQsICR0aGluZykpOwoJCX0KCX0KCWVsc2UKCXsKCQlyZXR1
cm4gJzwhLS0gJy5fX0ZVTkNUSU9OX18uIjogbm8gaXRlbXMgbWF0Y2ggc2VhcmNoIGNyaXRl
cmlhIC0tPiI7Cgl9CgoJaWYgKCRvdXQpCgl7CgkJcmV0dXJuIGRvTGFiZWwoJGxhYmVsLCAk
bGFiZWx0YWcpLmRvV3JhcCgkb3V0LCAkd3JhcHRhZywgJGJyZWFrLCAkY2xhc3MpOwoJfQoJ
cmV0dXJuICcnOwp9CiI7czo4OiJoZWxwX3JhdyI7czozMjExOiIKaDMuIExvb3AgdGhyb3Vn
aCBpbWFnZXMgbWF0Y2hpbmcgc3BlY2lmaWMgY3JpdGVyaWEsIHJlbmRlcmluZyB0aGUgY29u
dGFpbmVkIG1hcmt1cCBmb3IgZWFjaCBmb3VuZCBpbWFnZQoKKndldF9mb3JfZWFjaF9pbWFn
ZSogbG9vcHMgdGhyb3VnaCBpbWFnZXMgbWF0Y2hpbmcgc3BlY2lmaWMgY3JpdGVyaWEgYW5k
IHBhcnNlcyB0aGUgZW5jbG9zZWQgbWFya3VwIHdoaWxlIHBhc3NpbmcgdGhlIGZvdW5kIGlt
YWdlIGlkcyBpbnRvIGl0LiBJbWFnZSBpZHMgYXJlIHBhc3NlZCB0byB0aGUgY29udGFpbmVk
IHN0YXRlbWVudHMgYXMgYSByZXBsYWNlbWVudCBmb3IgYSBzcGVjaWFsIHBsYWNlaG9sZGVy
IHN0cmluZywgIntpZH0iLgpJdCBjYW4gYmUgdXNlZCBhcyBlaXRoZXIgYSBzaW5nbGUgb3Ig
YSBjb250YWluZXIgdGFnLiBJbiBzaW5nbGUgdGFnIHVzYWdlLCAqd2V0X2Zvcl9lYWNoX2lt
YWdlKiBlbXBsb3lzIEA8dHhwOmltYWdlIC8+QCB0byByZW5kZXIgdGhlIGZvdW5kIGltYWdl
cy4KCmg0LiBVc2FnZToKCkA8dHhwOndldF9mb3JfZWFjaF9pbWFnZSAvPkAKCmg0LiBSZXF1
aXJlZCBhdHRyaWJ1dGVzOgoKTm9uZS4KCmg0LiBPcHRpb25hbCBhdHRyaWJ1dGVzOgoKfF8u
IGF0dHJpYnV0ZSB8Xy4gZGVzY3JpcHRpb24gfF8uIGRlZmF1bHQgfAp8ICpjYXRlZ29yeSog
fCBDYXRlZ29yeSBmaWx0ZXIsIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGluY2x1ZGVkIGlt
YWdlIGNhdGVnb3JpZXMuIHwgQ3VycmVudCBzaXRlIGNhdGVnb3J5IHwKfCAqZXhjbHVkZSog
fCBDYXRlZ29yeSBmaWx0ZXIsIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGV4Y2x1ZGVkIGlt
YWdlIGNhdGVnb3JpZXMuIHwgTm9uZSB8CnwgKmxpbWl0KiB8IExpbWl0cyB0aGUgYW1vdW50
IG9mIGltYWdlcyBwcm9jZXNzZWQuIHwgVW5saW1pdGVkIHwKfCAqb2Zmc2V0KiB8IEEgcG9z
aXRpdmUgaW50ZWdlciBudW1iZXIuIFRoZSBpbWFnZSBsaXN0aW5nIHN0YXJ0cyBhdCB0aGlz
IG51bWJlci4gfCAwIHwKfCAqc29ydCogfCBEZXRlcm1pbmVzIHNvcnQgZmllbGQgYW5kIG9y
ZGVyLiBQb3NzaWJseSB2YWx1ZXMgYXJlIGUuZy4gImlkIGFzYyIsICJuYW1lIGRlc2MiIG9y
IGFueSBvdGhlciB2YWxpZCBTUUwgY2xhdXNlIHVzaW5nIG9uZSBvZiB0aGUgaW1hZ2UgdGFi
bGUncyBmaWVsZCBuYW1lcy58IE5vbmUgfAp8ICp0aHVtYiogfCBJZiBzZXQgdG8gIjEiLCBy
ZXN0cmljdHMgdGhlIHByb2Nlc3NlZCBpbWFnZSBjb2xsZWN0aW9uIHRvIHNvbGVseSBpbWFn
ZXMgYXNzb2NpYXRlZCB3aXRoIGEgdGh1bWJuYWlsLiB8IEVtcHR5IHwKfCAqZm9ybSogfCBB
IFRleHRwYXR0ZXJuIGZvcm0gd2hpY2ggd2lsbCBiZSB1c2VkIHRvIHJlbmRlciB0aGUgb3V0
cHV0LiBUaGlzIGZvcm0gb3ZlcnJpZGVzIGFueSBtYXJrdXAgZXZlbnR1YWxseSBjb250YWlu
ZWQgaW5zaWRlIHRoaXMgcGx1Z2luJ3MgdGFnLnwgRW1wdHkgfAp8ICpicmVhayogfCBUaGlz
IHN0cmluZyB3aWxsIGJlIHVzZWQgdG8gc2VwYXJhdGUgZWFjaCBpbWFnZSdzIG91dHB1dC4g
U2VlICJUZXh0Ym9vayI6aHR0cDovL3RleHRwYXR0ZXJuLm5ldC93aWtpL2luZGV4LnBocD90
aXRsZT1BdHRyaWJ1dGVzX0Nyb3NzX1JlZmVyZW5jZSNicmVhayBmb3IgZnVydGhlciByZWZl
cmVuY2UuIHwgRW1wdHkgfAp8ICpjbGFzcyogfCBAY2xhc3NAIGF0dHJpYnV0ZSB3aGljaCB3
aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHRvIHRoZSBAd3JhcHRhZ0AuIHwgQHdldF9mb3JfZWFj
aF9pbWFnZUAgfAp8ICpsYWJlbCogfCBUaGlzIHN0cmluZyB3aWxsIGJlIHByZXBlbmRlZCB0
byB0aGUgaW1hZ2UgbGlzdC4gIFNlZSAiVGV4dGJvb2siOmh0dHA6Ly90ZXh0cGF0dGVybi5u
ZXQvd2lraS9pbmRleC5waHA/dGl0bGU9QXR0cmlidXRlc19Dcm9zc19SZWZlcmVuY2UjbGFi
ZWwgZm9yIGZ1cnRoZXIgcmVmZXJlbmNlLnwgRW1wdHkgfAp8ICpsYWJlbHRhZyogfCAoWClI
VE1MIHRhZyB1c2VkIHRvIGVuY2xvc2UgdGhlIGxhYmVsLiBTZWUgIlRleHRib29rIjpodHRw
Oi8vdGV4dHBhdHRlcm4ubmV0L3dpa2kvaW5kZXgucGhwP3RpdGxlPUF0dHJpYnV0ZXNfQ3Jv
c3NfUmVmZXJlbmNlI2xhYmVsdGFnIGZvciBmdXJ0aGVyIHJlZmVyZW5jZS58IEVtcHR5IHwK
fCAqd3JhcHRhZyogfCAoWClIVE1MIHRhZyB1c2VkIHRvIGVuY2xvc2UgdGhlIGltYWdlIGxp
c3QuIFNlZSAiVGV4dGJvb2siOmh0dHA6Ly90ZXh0cGF0dGVybi5uZXQvd2lraS9pbmRleC5w
aHA/dGl0bGU9QXR0cmlidXRlc19Dcm9zc19SZWZlcmVuY2Ujd3JhcHRhZyBmb3IgZnVydGhl
ciByZWZlcmVuY2UufCBFbXB0eSB8CgpoNC4gU2FtcGxlIHVzZQoKfF8uIHRhZyB8Xy4gZnVu
Y3Rpb24gfAp8IEA8dHhwOndldF9mb3JfZWFjaF9pbWFnZSBjYXRlZ29yeT0iZXZlbnRzIiAv
PkAgfCBEaXNwbGF5cyBhbGwgaW1hZ2VzIGNvbnRhaW5lZCBpbiB0aGUgImV2ZW50cyIgY2F0
ZWdvcnkgYnkgZW1wbG95aW5nIEB0eHA6aW1hZ2VAIC0gdGhlIGRlZmF1bHQgYmVoYXZpb3Vy
LiB8CnwgQDx0eHA6d2V0X2Zvcl9lYWNoX2ltYWdlIGNhdGVnb3J5PSJldmVudHMsZXhoaWJp
dGlvbnMiIHRodW1iPSIxIj48dHhwOnRodW1ibmFpbCBpZD0ie2lkfSIgLz48L3R4cDp3ZXRf
Zm9yX2VhY2hfaW1hZ2U+QCB8IERpc3BsYXlzIGFsbCBpbWFnZXMgY29udGFpbmVkIGluIHRo
ZSAiZXZlbnRzIiBvciAiZXhoaWJpdGlvbnMiIGNhdGVnb3J5IGJ5IHBhc3NpbmcgZWFjaCBp
bWFnZSBpbnRvIEB0eHA6dGh1bWJuYWlsQC4gfAp8IEA8dHhwOndldF9mb3JfZWFjaF9pbWFn
ZSBleGNsdWRlPSJwcml2YXRlIj48dHhwOnVwbV9pbWFnZSBpbWFnZV9pZD0ie2lkfSIgdHlw
ZT0icG9wdXAiIC8+PC90eHA6d2V0X2Zvcl9lYWNoX2ltYWdlPkAgfCBEaXNwbGF5cyBhbGwg
aW1hZ2VzIGNvbnRhaW5lZCBpbiBhbGwgYnV0IHRoZSAicHJpdmF0ZSIgY2F0ZWdvcnkgYnkg
cGFzc2luZyBlYWNoIGltYWdlIGludG8gQHR4cDp1cG1faW1hZ2VAIHdvcmtlciB0YWcuIEB1
cG1faW1hZ2VAIGFjY2VwdHMgYW4gQGltYWdlX2lkQCBhdHRyaWJ1dGUsIHNvIHdlIHBhc3Mg
dGhlIGltYWdlcycgaWRzIHRoZXJlIHVzaW5nIEB7aWR9QCBhcyBhICBwbGFjZSBob2xkZXIu
IHwKCmg0LiBMaWNlbmNlCgpUaGlzIHBsdWdpbiBpcyByZWxlYXNlZCB1bmRlciB0aGUgIkdu
dSBHZW5lcmFsIFB1YmxpYyBMaWNlbmNlIjpodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv
Z3BsLnR4dC4KIjtzOjM6Im1kNSI7czozMjoiYjhjMTE5MjY1NDllNmE2MTdkNTcxZjc5MmRm
MjhjNmYiO30=
