NiBuZXcgY29tbWl0cyBpbiBnYWxheHktY2VudHJhbDoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9n
YWxheHkvZ2FsYXh5LWNlbnRyYWwvY29tbWl0cy8yYTgyYTdiYzkxZTcvCkNoYW5nZXNldDogICAy
YTgyYTdiYzkxZTcKQnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGRhbm5v
bgpEYXRlOiAgICAgICAgMjAxNS0wMi0yMyAxNjoyODowNyswMDowMApTdW1tYXJ5OiAgICAgQ2xv
bmUgLmdpdGlnbm9yZQpBZmZlY3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDk4ZWNkMzA1ZTNkM2Yw
MmFmNzhjOWY2MTI5N2Y4Mjk5OTY2YTUxODcgLXIgMmE4MmE3YmM5MWU3ZWYxYmFhZjI4MjA9Cjg5
MjNlOGIzZmRjZTNmZGJiIC5naXRpZ25vcmUKLS0tIC9kZXYvbnVsbAorKysgYi8uZ2l0aWdub3Jl
CkBAIC0wLDAgKzEsMTE4IEBACisuaGcqCisjIERvd25sb2FkZWQgYW5kIGxvY2FsbHkgYnVpbHQg
ZWdncworZWdncworc2NyaXB0cy9zY3JhbWJsZS9idWlsZAorc2NyaXB0cy9zY3JhbWJsZS9saWIK
K3NjcmlwdHMvc2NyYW1ibGUvYXJjaGl2ZXMKKworIyBQeXRob24gdmlydHVhbGVudgorLnZlbnYK
KworIyBEYXRhYmFzZSBzdHVmZgorZGF0YWJhc2UvYmVha2VyX3Nlc3Npb25zCitkYXRhYmFzZS9j
aXRhdGlvbnMKK2RhdGFiYXNlL2NvbW11bml0eV9maWxlcworZGF0YWJhc2UvY29tcGlsZWRfdGVt
cGxhdGVzCitkYXRhYmFzZS9maWxlcworZGF0YWJhc2Uvam9iX3dvcmtpbmdfZGlyZWN0b3J5Citk
YXRhYmFzZS9wYnMKK2RhdGFiYXNlL3RtcAorZGF0YWJhc2UvKi5zcWxpdGUKK2RhdGFiYXNlL29w
ZW5pZF9jb25zdW1lcl9jYWNoZQorCisjIFB5dGhvbiBieXRlY29kZQorKi5weWMKKworIyBHYWxh
eHkgUnVudGltZSBGaWxlcworKi5sb2NrCisqLmxvZworKi5waWQKKworIyBUb29sIFNoZWQgUnVu
dGltZSBGaWxlcwordG9vbF9zaGVkX3dlYmFwcC5sb2NrCit0b29sX3NoZWRfd2ViYXBwLmxvZwor
dG9vbF9zaGVkX3dlYmFwcC5waWQKK2hnd2ViLmNvbmZpZyoKK2xpYi90b29sX3NoZWQvc2NyaXB0
cy9ib290c3RyYXBfdG9vbF9zaGVkL3VzZXJfaW5mby54bWwKKworIyBSZXBvcnRzIFJ1bnRpbWUg
RmlsZXMKK3JlcG9ydHNfd2ViYXBwLmxvY2sKK3JlcG9ydHNfd2ViYXBwLmxvZworcmVwb3J0c193
ZWJhcHAucGlkCisKKyMgQ29uZmlnIGZpbGVzCit1bml2ZXJzZV93c2dpLmluaQorcmVwb3J0c193
c2dpLmluaQordG9vbF9zaGVkX3dzZ2kuaW5pCisKKyMgQ29uZmlnIGZpbGVzLgorZGF0YXR5cGVz
X2NvbmYueG1sCit0b29sX2NvbmYueG1sCitleHRlcm5hbF9zZXJ2aWNlX3R5cGVzX2NvbmYueG1s
CittaWdyYXRlZF90b29sc19jb25mLnhtbAorc2hlZF90b29sX2NvbmYueG1sCit0b29sX2RhdGFf
dGFibGVfY29uZi54bWwKK3Rvb2xfc2hlZHNfY29uZi54bWwKK2ludGVncmF0ZWRfdG9vbF9wYW5l
bC54bWwKK29wZW5pZF9jb25mLnhtbAorc2hlZF90b29sX2RhdGFfdGFibGVfY29uZi54bWwKK2pv
Yl9jb25mLnhtbAorZGF0YV9tYW5hZ2VyX2NvbmYueG1sCitzaGVkX2RhdGFfbWFuYWdlcl9jb25m
LnhtbAorb2JqZWN0X3N0b3JlX2NvbmYueG1sCitqb2JfbWV0cmljc19jb25mLnhtbAord29ya2Zs
b3dfc2NoZWR1bGVyc19jb25mLnhtbAorY29uZmlnLyoKK3N0YXRpYy93ZWxjb21lLmh0bWwuKgor
c3RhdGljL3dlbGNvbWUuaHRtbAorCisjIFRvb2wgZGF0YS4KK3Rvb2wtZGF0YS9hbm5vdGF0aW9u
X3Byb2ZpbGVyX29wdGlvbnMueG1sCit0b29sLWRhdGEvYW5ub3RhdGlvbl9wcm9maWxlcl92YWxp
ZF9idWlsZHMudHh0Cit0b29sLWRhdGEvZ2F0a19hbm5vdGF0aW9ucy50eHQKK3Rvb2wtZGF0YS9n
ZC5yZXN0cmljdGlvbl9lbnp5bWVzLnR4dAordG9vbC1kYXRhL2dkLnNwZWNpZXMudHh0Cit0b29s
LWRhdGEvc2hhcmVkL2lndi9pZ3ZfYnVpbGRfc2l0ZXMudHh0Cit0b29sLWRhdGEvc2hhcmVkL3J2
aWV3ZXIvcnZpZXdlcl9idWlsZF9zaXRlcy50eHQKK3Rvb2wtZGF0YS9zaGFyZWQvbmNiaS9idWls
ZHMudHh0Cit0b29sLWRhdGEvc2hhcmVkL3Vjc2MvYnVpbGRzLnR4dAordG9vbC1kYXRhL3NoYXJl
ZC9lbnNlbWJsL2J1aWxkcy50eHQKK3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9wdWJsaWNidWlsZHMu
dHh0Cit0b29sLWRhdGEvc2hhcmVkL3Vjc2MvdWNzY19idWlsZF9zaXRlcy50eHQKK3Rvb2wtZGF0
YS8qLmxvYwordG9vbC1kYXRhL2dlbm9tZS8qCisKKyMgVGVzdCBvdXRwdXQKK3Rlc3QtZGF0YS1j
YWNoZQorcnVuX2Z1bmN0aW9uYWxfdGVzdHMuaHRtbAordGVzdC90b29sX3NoZWQvdG1wLyoKKy5j
b3ZlcmFnZQoraHRtbGNvdgorcnVuX3VuaXRfdGVzdHMuaHRtbAordGVzdC91bml0LyoqLmxvZwor
CisjIFByb2plY3QgZmlsZXMKKyoua3BmCisKKyMgQ2hyb20gbGVuIGZpbGVzCisqLmxlbgorCisj
IEphcnMKK3Rvb2wtZGF0YS9zaGFyZWQvamFycy8KKworIyBDU1MgYnVpbGQgYXJ0aWZhY3RzLgor
c3ByaXRlLSoubGVzcworCisjIExvY2FsIG5vZGVfbW9kdWxlcyBhbmQgYm93ZXJfY29tcG9uZW50
cyBkaXJlY3Rvcmllcworbm9kZV9tb2R1bGVzCitib3dlcl9jb21wb25lbnRzCisKKyMgRG9jdW1l
bnRhdGlvbiBidWlsZCBmaWxlcy4KK2RvYy9idWlsZAorCisjIE1pc2MKKyoub3JpZworLkRTX1N0
b3JlCisqLnJlagorKn4KKwoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5LWNl
bnRyYWwvY29tbWl0cy80ZDg4M2RhMjE4MTEvCkNoYW5nZXNldDogICA0ZDg4M2RhMjE4MTEKQnJh
bmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGd1ZXJsZXIKRGF0ZTogICAgICAg
IDIwMTUtMDItMjMgMTc6NTA6MjcrMDA6MDAKU3VtbWFyeTogICAgIFNlbGVjdDIgZml4CkFmZmVj
dGVkICM6ICAyMSBmaWxlcwoKZGlmZiAtciAyYTgyYTdiYzkxZTdlZjFiYWFmMjgyMDg5MjNlOGIz
ZmRjZTNmZGJiIC1yIDRkODgzZGEyMTgxMTlmOGFkOTIzMmI2PQoxMWJjZjBiZGY4NmNlNzZjOSBj
bGllbnQvZ2FsYXh5L3NjcmlwdHMvbGlicy9qcXVlcnkvc2VsZWN0Mi5qcwotLS0gYS9jbGllbnQv
Z2FsYXh5L3NjcmlwdHMvbGlicy9qcXVlcnkvc2VsZWN0Mi5qcworKysgYi9jbGllbnQvZ2FsYXh5
L3NjcmlwdHMvbGlicy9qcXVlcnkvc2VsZWN0Mi5qcwpAQCAtMSw3ICsxLDcgQEAKIC8qCiBDb3B5
cmlnaHQgMjAxMiBJZ29yIFZheW5iZXJnCj0yMAotVmVyc2lvbjogMy40LjMgVGltZXN0YW1wOiBU
dWUgU2VwIDE3IDA2OjQ3OjE0IFBEVCAyMDEzCitWZXJzaW9uOiAzLjUuMSBUaW1lc3RhbXA6IFR1
ZSBKdWwgMjIgMTg6NTg6NTYgRURUIDIwMTQKPTIwCiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2Vk
IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiQXBhYz0KaGUgTGlj
ZW5zZSIpIG9yIHRoZSBHTlUKIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyICh0aGUg
IkdQTCBMaWNlbnNlIikuIFlvdSBtYXkgY2hvb3NlIGVpdGhlPQpyIGxpY2Vuc2UgdG8gZ292ZXJu
IHlvdXIKQEAgLTE0LDcgKzE0LDcgQEAKICAgICBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv
Z3BsLTIuMC5odG1sCj0yMAogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFn
cmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSBkaXN0cmk9CmJ1dGVkIHVuZGVyIHRoZQotQXBh
Y2hlIExpY2Vuc2Ugb3IgdGhlIEdQTCBMaWNlc25zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMg
SVMiIEJBU0lTLCBXSVQ9CkhPVVQgV0FSUkFOVElFUyBPUgorQXBhY2hlIExpY2Vuc2Ugb3IgdGhl
IEdQTCBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIFdJVEg9Ck9V
VCBXQVJSQU5USUVTIE9SCiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBv
ciBpbXBsaWVkLiBTZWUgdGhlIEFwYWNoZSBMaWNlbnNlID0KYW5kIHRoZSBHUEwgTGljZW5zZSBm
b3IKIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0
YXRpb25zIHVuZGVyIHRoZSBBcGFjPQpoZSBMaWNlbnNlIGFuZCB0aGUgR1BMIExpY2Vuc2UuCiAq
LwpAQCAtOTgsMjQgKzk4LDI4IEBACiAgICAgfSwKICAgICBNRUFTVVJFX1NDUk9MTEJBUl9URU1Q
TEFURSA9M0QgIjxkaXYgY2xhc3M9M0Qnc2VsZWN0Mi1tZWFzdXJlLXNjcm9sbGJhPQpyJz48L2Rp
dj4iLAo9MjAKLSAgICBESUFDUklUSUNTID0zRCB7Ilx1MjRCNiI6IkEiLCJcdUZGMjEiOiJBIiwi
XHUwMEMwIjoiQSIsIlx1MDBDMSI6IkEiLCJcPQp1MDBDMiI6IkEiLCJcdTFFQTYiOiJBIiwiXHUx
RUE0IjoiQSIsIlx1MUVBQSI6IkEiLCJcdTFFQTgiOiJBIiwiXHUwMEMzIjoiQSI9CiwiXHUwMTAw
IjoiQSIsIlx1MDEwMiI6IkEiLCJcdTFFQjAiOiJBIiwiXHUxRUFFIjoiQSIsIlx1MUVCNCI6IkEi
LCJcdTFFQjIiOj0KIkEiLCJcdTAyMjYiOiJBIiwiXHUwMUUwIjoiQSIsIlx1MDBDNCI6IkEiLCJc
dTAxREUiOiJBIiwiXHUxRUEyIjoiQSIsIlx1MDBDPQo1IjoiQSIsIlx1MDFGQSI6IkEiLCJcdTAx
Q0QiOiJBIiwiXHUwMjAwIjoiQSIsIlx1MDIwMiI6IkEiLCJcdTFFQTAiOiJBIiwiXHU9CjFFQUMi
OiJBIiwiXHUxRUI2IjoiQSIsIlx1MUUwMCI6IkEiLCJcdTAxMDQiOiJBIiwiXHUwMjNBIjoiQSIs
Ilx1MkM2RiI6IkEiLD0KIlx1QTczMiI6IkFBIiwiXHUwMEM2IjoiQUUiLCJcdTAxRkMiOiJBRSIs
Ilx1MDFFMiI6IkFFIiwiXHVBNzM0IjoiQU8iLCJcdUE3PQozNiI6IkFVIiwiXHVBNzM4IjoiQVYi
LCJcdUE3M0EiOiJBViIsIlx1QTczQyI6IkFZIiwiXHUyNEI3IjoiQiIsIlx1RkYyMiI6IkI9CiIs
Ilx1MUUwMiI6IkIiLCJcdTFFMDQiOiJCIiwiXHUxRTA2IjoiQiIsIlx1MDI0MyI6IkIiLCJcdTAx
ODIiOiJCIiwiXHUwMTgxIj0KOiJCIiwiXHUyNEI4IjoiQyIsIlx1RkYyMyI6IkMiLCJcdTAxMDYi
OiJDIiwiXHUwMTA4IjoiQyIsIlx1MDEwQSI6IkMiLCJcdTAxPQowQyI6IkMiLCJcdTAwQzciOiJD
IiwiXHUxRTA4IjoiQyIsIlx1MDE4NyI6IkMiLCJcdTAyM0IiOiJDIiwiXHVBNzNFIjoiQyIsIlw9
CnUyNEI5IjoiRCIsIlx1RkYyNCI6IkQiLCJcdTFFMEEiOiJEIiwiXHUwMTBFIjoiRCIsIlx1MUUw
QyI6IkQiLCJcdTFFMTAiOiJEIj0KLCJcdTFFMTIiOiJEIiwiXHUxRTBFIjoiRCIsIlx1MDExMCI6
IkQiLCJcdTAxOEIiOiJEIiwiXHUwMThBIjoiRCIsIlx1MDE4OSI6PQoiRCIsIlx1QTc3OSI6IkQi
LCJcdTAxRjEiOiJEWiIsIlx1MDFDNCI6IkRaIiwiXHUwMUYyIjoiRHoiLCJcdTAxQzUiOiJEeiIs
Ilw9CnUyNEJBIjoiRSIsIlx1RkYyNSI6IkUiLCJcdTAwQzgiOiJFIiwiXHUwMEM5IjoiRSIsIlx1
MDBDQSI6IkUiLCJcdTFFQzAiOiJFIj0KLCJcdTFFQkUiOiJFIiwiXHUxRUM0IjoiRSIsIlx1MUVD
MiI6IkUiLCJcdTFFQkMiOiJFIiwiXHUwMTEyIjoiRSIsIlx1MUUxNCI6PQoiRSIsIlx1MUUxNiI6
IkUiLCJcdTAxMTQiOiJFIiwiXHUwMTE2IjoiRSIsIlx1MDBDQiI6IkUiLCJcdTFFQkEiOiJFIiwi
XHUwMTE9CkEiOiJFIiwiXHUwMjA0IjoiRSIsIlx1MDIwNiI6IkUiLCJcdTFFQjgiOiJFIiwiXHUx
RUM2IjoiRSIsIlx1MDIyOCI6IkUiLCJcdT0KMUUxQyI6IkUiLCJcdTAxMTgiOiJFIiwiXHUxRTE4
IjoiRSIsIlx1MUUxQSI6IkUiLCJcdTAxOTAiOiJFIiwiXHUwMThFIjoiRSIsPQoiXHUyNEJCIjoi
RiIsIlx1RkYyNiI6IkYiLCJcdTFFMUUiOiJGIiwiXHUwMTkxIjoiRiIsIlx1QTc3QiI6IkYiLCJc
dTI0QkMiOiI9CkciLCJcdUZGMjciOiJHIiwiXHUwMUY0IjoiRyIsIlx1MDExQyI6IkciLCJcdTFF
MjAiOiJHIiwiXHUwMTFFIjoiRyIsIlx1MDEyMD0KIjoiRyIsIlx1MDFFNiI6IkciLCJcdTAxMjIi
OiJHIiwiXHUwMUU0IjoiRyIsIlx1MDE5MyI6IkciLCJcdUE3QTAiOiJHIiwiXHVBPQo3N0QiOiJH
IiwiXHVBNzdFIjoiRyIsIlx1MjRCRCI6IkgiLCJcdUZGMjgiOiJIIiwiXHUwMTI0IjoiSCIsIlx1
MUUyMiI6IkgiLCI9Clx1MUUyNiI6IkgiLCJcdTAyMUUiOiJIIiwiXHUxRTI0IjoiSCIsIlx1MUUy
OCI6IkgiLCJcdTFFMkEiOiJIIiwiXHUwMTI2IjoiSD0KIiwiXHUyQzY3IjoiSCIsIlx1MkM3NSI6
IkgiLCJcdUE3OEQiOiJIIiwiXHUyNEJFIjoiSSIsIlx1RkYyOSI6IkkiLCJcdTAwQ0MiPQo6Ikki
LCJcdTAwQ0QiOiJJIiwiXHUwMENFIjoiSSIsIlx1MDEyOCI6IkkiLCJcdTAxMkEiOiJJIiwiXHUw
MTJDIjoiSSIsIlx1MDE9CjMwIjoiSSIsIlx1MDBDRiI6IkkiLCJcdTFFMkUiOiJJIiwiXHUxRUM4
IjoiSSIsIlx1MDFDRiI6IkkiLCJcdTAyMDgiOiJJIiwiXD0KdTAyMEEiOiJJIiwiXHUxRUNBIjoi
SSIsIlx1MDEyRSI6IkkiLCJcdTFFMkMiOiJJIiwiXHUwMTk3IjoiSSIsIlx1MjRCRiI6IkoiPQos
Ilx1RkYyQSI6IkoiLCJcdTAxMzQiOiJKIiwiXHUwMjQ4IjoiSiIsIlx1MjRDMCI6IksiLCJcdUZG
MkIiOiJLIiwiXHUxRTMwIjo9CiJLIiwiXHUwMUU4IjoiSyIsIlx1MUUzMiI6IksiLCJcdTAxMzYi
OiJLIiwiXHUxRTM0IjoiSyIsIlx1MDE5OCI6IksiLCJcdTJDNj0KOSI6IksiLCJcdUE3NDAiOiJL
IiwiXHVBNzQyIjoiSyIsIlx1QTc0NCI6IksiLCJcdUE3QTIiOiJLIiwiXHUyNEMxIjoiTCIsIlx1
PQpGRjJDIjoiTCIsIlx1MDEzRiI6IkwiLCJcdTAxMzkiOiJMIiwiXHUwMTNEIjoiTCIsIlx1MUUz
NiI6IkwiLCJcdTFFMzgiOiJMIiw9CiJcdTAxM0IiOiJMIiwiXHUxRTNDIjoiTCIsIlx1MUUzQSI6
IkwiLCJcdTAxNDEiOiJMIiwiXHUwMjNEIjoiTCIsIlx1MkM2MiI6Ij0KTCIsIlx1MkM2MCI6Ikwi
LCJcdUE3NDgiOiJMIiwiXHVBNzQ2IjoiTCIsIlx1QTc4MCI6IkwiLCJcdTAxQzciOiJMSiIsIlx1
MDFDPQo4IjoiTGoiLCJcdTI0QzIiOiJNIiwiXHVGRjJEIjoiTSIsIlx1MUUzRSI6Ik0iLCJcdTFF
NDAiOiJNIiwiXHUxRTQyIjoiTSIsIlw9CnUyQzZFIjoiTSIsIlx1MDE5QyI6Ik0iLCJcdTI0QzMi
OiJOIiwiXHVGRjJFIjoiTiIsIlx1MDFGOCI6Ik4iLCJcdTAxNDMiOiJOIj0KLCJcdTAwRDEiOiJO
IiwiXHUxRTQ0IjoiTiIsIlx1MDE0NyI6Ik4iLCJcdTFFNDYiOiJOIiwiXHUwMTQ1IjoiTiIsIlx1
MUU0QSI6PQoiTiIsIlx1MUU0OCI6Ik4iLCJcdTAyMjAiOiJOIiwiXHUwMTlEIjoiTiIsIlx1QTc5
MCI6Ik4iLCJcdUE3QTQiOiJOIiwiXHUwMUM9CkEiOiJOSiIsIlx1MDFDQiI6Ik5qIiwiXHUyNEM0
IjoiTyIsIlx1RkYyRiI6Ik8iLCJcdTAwRDIiOiJPIiwiXHUwMEQzIjoiTyIsIj0KXHUwMEQ0Ijoi
TyIsIlx1MUVEMiI6Ik8iLCJcdTFFRDAiOiJPIiwiXHUxRUQ2IjoiTyIsIlx1MUVENCI6Ik8iLCJc
dTAwRDUiOiJPPQoiLCJcdTFFNEMiOiJPIiwiXHUwMjJDIjoiTyIsIlx1MUU0RSI6Ik8iLCJcdTAx
NEMiOiJPIiwiXHUxRTUwIjoiTyIsIlx1MUU1MiI9CjoiTyIsIlx1MDE0RSI6Ik8iLCJcdTAyMkUi
OiJPIiwiXHUwMjMwIjoiTyIsIlx1MDBENiI6Ik8iLCJcdTAyMkEiOiJPIiwiXHUxRT0KQ0UiOiJP
IiwiXHUwMTUwIjoiTyIsIlx1MDFEMSI6Ik8iLCJcdTAyMEMiOiJPIiwiXHUwMjBFIjoiTyIsIlx1
MDFBMCI6Ik8iLCJcPQp1MUVEQyI6Ik8iLCJcdTFFREEiOiJPIiwiXHUxRUUwIjoiTyIsIlx1MUVE
RSI6Ik8iLCJcdTFFRTIiOiJPIiwiXHUxRUNDIjoiTyI9CiwiXHUxRUQ4IjoiTyIsIlx1MDFFQSI6
Ik8iLCJcdTAxRUMiOiJPIiwiXHUwMEQ4IjoiTyIsIlx1MDFGRSI6Ik8iLCJcdTAxODYiOj0KIk8i
LCJcdTAxOUYiOiJPIiwiXHVBNzRBIjoiTyIsIlx1QTc0QyI6Ik8iLCJcdTAxQTIiOiJPSSIsIlx1
QTc0RSI6Ik9PIiwiXHUwPQoyMjIiOiJPVSIsIlx1MjRDNSI6IlAiLCJcdUZGMzAiOiJQIiwiXHUx
RTU0IjoiUCIsIlx1MUU1NiI6IlAiLCJcdTAxQTQiOiJQIiw9CiJcdTJDNjMiOiJQIiwiXHVBNzUw
IjoiUCIsIlx1QTc1MiI6IlAiLCJcdUE3NTQiOiJQIiwiXHUyNEM2IjoiUSIsIlx1RkYzMSI6Ij0K
USIsIlx1QTc1NiI6IlEiLCJcdUE3NTgiOiJRIiwiXHUwMjRBIjoiUSIsIlx1MjRDNyI6IlIiLCJc
dUZGMzIiOiJSIiwiXHUwMTU0PQoiOiJSIiwiXHUxRTU4IjoiUiIsIlx1MDE1OCI6IlIiLCJcdTAy
MTAiOiJSIiwiXHUwMjEyIjoiUiIsIlx1MUU1QSI6IlIiLCJcdTE9CkU1QyI6IlIiLCJcdTAxNTYi
OiJSIiwiXHUxRTVFIjoiUiIsIlx1MDI0QyI6IlIiLCJcdTJDNjQiOiJSIiwiXHVBNzVBIjoiUiIs
Ij0KXHVBN0E2IjoiUiIsIlx1QTc4MiI6IlIiLCJcdTI0QzgiOiJTIiwiXHVGRjMzIjoiUyIsIlx1
MUU5RSI6IlMiLCJcdTAxNUEiOiJTPQoiLCJcdTFFNjQiOiJTIiwiXHUwMTVDIjoiUyIsIlx1MUU2
MCI6IlMiLCJcdTAxNjAiOiJTIiwiXHUxRTY2IjoiUyIsIlx1MUU2MiI9CjoiUyIsIlx1MUU2OCI6
IlMiLCJcdTAyMTgiOiJTIiwiXHUwMTVFIjoiUyIsIlx1MkM3RSI6IlMiLCJcdUE3QTgiOiJTIiwi
XHVBNz0KODQiOiJTIiwiXHUyNEM5IjoiVCIsIlx1RkYzNCI6IlQiLCJcdTFFNkEiOiJUIiwiXHUw
MTY0IjoiVCIsIlx1MUU2QyI6IlQiLCJcPQp1MDIxQSI6IlQiLCJcdTAxNjIiOiJUIiwiXHUxRTcw
IjoiVCIsIlx1MUU2RSI6IlQiLCJcdTAxNjYiOiJUIiwiXHUwMUFDIjoiVCI9CiwiXHUwMUFFIjoi
VCIsIlx1MDIzRSI6IlQiLCJcdUE3ODYiOiJUIiwiXHVBNzI4IjoiVFoiLCJcdTI0Q0EiOiJVIiwi
XHVGRjM1Ij0KOiJVIiwiXHUwMEQ5IjoiVSIsIlx1MDBEQSI6IlUiLCJcdTAwREIiOiJVIiwiXHUw
MTY4IjoiVSIsIlx1MUU3OCI6IlUiLCJcdTAxPQo2QSI6IlUiLCJcdTFFN0EiOiJVIiwiXHUwMTZD
IjoiVSIsIlx1MDBEQyI6IlUiLCJcdTAxREIiOiJVIiwiXHUwMUQ3IjoiVSIsIlw9CnUwMUQ1Ijoi
VSIsIlx1MDFEOSI6IlUiLCJcdTFFRTYiOiJVIiwiXHUwMTZFIjoiVSIsIlx1MDE3MCI6IlUiLCJc
dTAxRDMiOiJVIj0KLCJcdTAyMTQiOiJVIiwiXHUwMjE2IjoiVSIsIlx1MDFBRiI6IlUiLCJcdTFF
RUEiOiJVIiwiXHUxRUU4IjoiVSIsIlx1MUVFRSI6PQoiVSIsIlx1MUVFQyI6IlUiLCJcdTFFRjAi
OiJVIiwiXHUxRUU0IjoiVSIsIlx1MUU3MiI6IlUiLCJcdTAxNzIiOiJVIiwiXHUxRTc9CjYiOiJV
IiwiXHUxRTc0IjoiVSIsIlx1MDI0NCI6IlUiLCJcdTI0Q0IiOiJWIiwiXHVGRjM2IjoiViIsIlx1
MUU3QyI6IlYiLCJcdT0KMUU3RSI6IlYiLCJcdTAxQjIiOiJWIiwiXHVBNzVFIjoiViIsIlx1MDI0
NSI6IlYiLCJcdUE3NjAiOiJWWSIsIlx1MjRDQyI6IlciPQosIlx1RkYzNyI6IlciLCJcdTFFODAi
OiJXIiwiXHUxRTgyIjoiVyIsIlx1MDE3NCI6IlciLCJcdTFFODYiOiJXIiwiXHUxRTg0Ijo9CiJX
IiwiXHUxRTg4IjoiVyIsIlx1MkM3MiI6IlciLCJcdTI0Q0QiOiJYIiwiXHVGRjM4IjoiWCIsIlx1
MUU4QSI6IlgiLCJcdTFFOD0KQyI6IlgiLCJcdTI0Q0UiOiJZIiwiXHVGRjM5IjoiWSIsIlx1MUVG
MiI6IlkiLCJcdTAwREQiOiJZIiwiXHUwMTc2IjoiWSIsIlx1PQoxRUY4IjoiWSIsIlx1MDIzMiI6
IlkiLCJcdTFFOEUiOiJZIiwiXHUwMTc4IjoiWSIsIlx1MUVGNiI6IlkiLCJcdTFFRjQiOiJZIiw9
CiJcdTAxQjMiOiJZIiwiXHUwMjRFIjoiWSIsIlx1MUVGRSI6IlkiLCJcdTI0Q0YiOiJaIiwiXHVG
RjNBIjoiWiIsIlx1MDE3OSI6Ij0KWiIsIlx1MUU5MCI6IloiLCJcdTAxN0IiOiJaIiwiXHUwMTdE
IjoiWiIsIlx1MUU5MiI6IloiLCJcdTFFOTQiOiJaIiwiXHUwMUI1PQoiOiJaIiwiXHUwMjI0Ijoi
WiIsIlx1MkM3RiI6IloiLCJcdTJDNkIiOiJaIiwiXHVBNzYyIjoiWiIsIlx1MjREMCI6ImEiLCJc
dUY9CkY0MSI6ImEiLCJcdTFFOUEiOiJhIiwiXHUwMEUwIjoiYSIsIlx1MDBFMSI6ImEiLCJcdTAw
RTIiOiJhIiwiXHUxRUE3IjoiYSIsIj0KXHUxRUE1IjoiYSIsIlx1MUVBQiI6ImEiLCJcdTFFQTki
OiJhIiwiXHUwMEUzIjoiYSIsIlx1MDEwMSI6ImEiLCJcdTAxMDMiOiJhPQoiLCJcdTFFQjEiOiJh
IiwiXHUxRUFGIjoiYSIsIlx1MUVCNSI6ImEiLCJcdTFFQjMiOiJhIiwiXHUwMjI3IjoiYSIsIlx1
MDFFMSI9CjoiYSIsIlx1MDBFNCI6ImEiLCJcdTAxREYiOiJhIiwiXHUxRUEzIjoiYSIsIlx1MDBF
NSI6ImEiLCJcdTAxRkIiOiJhIiwiXHUwMT0KQ0UiOiJhIiwiXHUwMjAxIjoiYSIsIlx1MDIwMyI6
ImEiLCJcdTFFQTEiOiJhIiwiXHUxRUFEIjoiYSIsIlx1MUVCNyI6ImEiLCJcPQp1MUUwMSI6ImEi
LCJcdTAxMDUiOiJhIiwiXHUyQzY1IjoiYSIsIlx1MDI1MCI6ImEiLCJcdUE3MzMiOiJhYSIsIlx1
MDBFNiI6ImE9CmUiLCJcdTAxRkQiOiJhZSIsIlx1MDFFMyI6ImFlIiwiXHVBNzM1IjoiYW8iLCJc
dUE3MzciOiJhdSIsIlx1QTczOSI6ImF2IiwiXD0KdUE3M0IiOiJhdiIsIlx1QTczRCI6ImF5Iiwi
XHUyNEQxIjoiYiIsIlx1RkY0MiI6ImIiLCJcdTFFMDMiOiJiIiwiXHUxRTA1IjoiPQpiIiwiXHUx
RTA3IjoiYiIsIlx1MDE4MCI6ImIiLCJcdTAxODMiOiJiIiwiXHUwMjUzIjoiYiIsIlx1MjREMiI6
ImMiLCJcdUZGNDM9CiI6ImMiLCJcdTAxMDciOiJjIiwiXHUwMTA5IjoiYyIsIlx1MDEwQiI6ImMi
LCJcdTAxMEQiOiJjIiwiXHUwMEU3IjoiYyIsIlx1MT0KRTA5IjoiYyIsIlx1MDE4OCI6ImMiLCJc
dTAyM0MiOiJjIiwiXHVBNzNGIjoiYyIsIlx1MjE4NCI6ImMiLCJcdTI0RDMiOiJkIiwiPQpcdUZG
NDQiOiJkIiwiXHUxRTBCIjoiZCIsIlx1MDEwRiI6ImQiLCJcdTFFMEQiOiJkIiwiXHUxRTExIjoi
ZCIsIlx1MUUxMyI6ImQ9CiIsIlx1MUUwRiI6ImQiLCJcdTAxMTEiOiJkIiwiXHUwMThDIjoiZCIs
Ilx1MDI1NiI6ImQiLCJcdTAyNTciOiJkIiwiXHVBNzdBIj0KOiJkIiwiXHUwMUYzIjoiZHoiLCJc
dTAxQzYiOiJkeiIsIlx1MjRENCI6ImUiLCJcdUZGNDUiOiJlIiwiXHUwMEU4IjoiZSIsIlx1PQow
MEU5IjoiZSIsIlx1MDBFQSI6ImUiLCJcdTFFQzEiOiJlIiwiXHUxRUJGIjoiZSIsIlx1MUVDNSI6
ImUiLCJcdTFFQzMiOiJlIiw9CiJcdTFFQkQiOiJlIiwiXHUwMTEzIjoiZSIsIlx1MUUxNSI6ImUi
LCJcdTFFMTciOiJlIiwiXHUwMTE1IjoiZSIsIlx1MDExNyI6Ij0KZSIsIlx1MDBFQiI6ImUiLCJc
dTFFQkIiOiJlIiwiXHUwMTFCIjoiZSIsIlx1MDIwNSI6ImUiLCJcdTAyMDciOiJlIiwiXHUxRUI5
PQoiOiJlIiwiXHUxRUM3IjoiZSIsIlx1MDIyOSI6ImUiLCJcdTFFMUQiOiJlIiwiXHUwMTE5Ijoi
ZSIsIlx1MUUxOSI6ImUiLCJcdTE9CkUxQiI6ImUiLCJcdTAyNDciOiJlIiwiXHUwMjVCIjoiZSIs
Ilx1MDFERCI6ImUiLCJcdTI0RDUiOiJmIiwiXHVGRjQ2IjoiZiIsIj0KXHUxRTFGIjoiZiIsIlx1
MDE5MiI6ImYiLCJcdUE3N0MiOiJmIiwiXHUyNEQ2IjoiZyIsIlx1RkY0NyI6ImciLCJcdTAxRjUi
OiJnPQoiLCJcdTAxMUQiOiJnIiwiXHUxRTIxIjoiZyIsIlx1MDExRiI6ImciLCJcdTAxMjEiOiJn
IiwiXHUwMUU3IjoiZyIsIlx1MDEyMyI9CjoiZyIsIlx1MDFFNSI6ImciLCJcdTAyNjAiOiJnIiwi
XHVBN0ExIjoiZyIsIlx1MUQ3OSI6ImciLCJcdUE3N0YiOiJnIiwiXHUyND0KRDciOiJoIiwiXHVG
RjQ4IjoiaCIsIlx1MDEyNSI6ImgiLCJcdTFFMjMiOiJoIiwiXHUxRTI3IjoiaCIsIlx1MDIxRiI6
ImgiLCJcPQp1MUUyNSI6ImgiLCJcdTFFMjkiOiJoIiwiXHUxRTJCIjoiaCIsIlx1MUU5NiI6Imgi
LCJcdTAxMjciOiJoIiwiXHUyQzY4IjoiaCI9CiwiXHUyQzc2IjoiaCIsIlx1MDI2NSI6ImgiLCJc
dTAxOTUiOiJodiIsIlx1MjREOCI6ImkiLCJcdUZGNDkiOiJpIiwiXHUwMEVDIj0KOiJpIiwiXHUw
MEVEIjoiaSIsIlx1MDBFRSI6ImkiLCJcdTAxMjkiOiJpIiwiXHUwMTJCIjoiaSIsIlx1MDEyRCI6
ImkiLCJcdTAwPQpFRiI6ImkiLCJcdTFFMkYiOiJpIiwiXHUxRUM5IjoiaSIsIlx1MDFEMCI6Imki
LCJcdTAyMDkiOiJpIiwiXHUwMjBCIjoiaSIsIlw9CnUxRUNCIjoiaSIsIlx1MDEyRiI6ImkiLCJc
dTFFMkQiOiJpIiwiXHUwMjY4IjoiaSIsIlx1MDEzMSI6ImkiLCJcdTI0RDkiOiJqIj0KLCJcdUZG
NEEiOiJqIiwiXHUwMTM1IjoiaiIsIlx1MDFGMCI6ImoiLCJcdTAyNDkiOiJqIiwiXHUyNERBIjoi
ayIsIlx1RkY0QiI6PQoiayIsIlx1MUUzMSI6ImsiLCJcdTAxRTkiOiJrIiwiXHUxRTMzIjoiayIs
Ilx1MDEzNyI6ImsiLCJcdTFFMzUiOiJrIiwiXHUwMTk9CjkiOiJrIiwiXHUyQzZBIjoiayIsIlx1
QTc0MSI6ImsiLCJcdUE3NDMiOiJrIiwiXHVBNzQ1IjoiayIsIlx1QTdBMyI6ImsiLCJcdT0KMjRE
QiI6ImwiLCJcdUZGNEMiOiJsIiwiXHUwMTQwIjoibCIsIlx1MDEzQSI6ImwiLCJcdTAxM0UiOiJs
IiwiXHUxRTM3IjoibCIsPQoiXHUxRTM5IjoibCIsIlx1MDEzQyI6ImwiLCJcdTFFM0QiOiJsIiwi
XHUxRTNCIjoibCIsIlx1MDE3RiI6ImwiLCJcdTAxNDIiOiI9CmwiLCJcdTAxOUEiOiJsIiwiXHUw
MjZCIjoibCIsIlx1MkM2MSI6ImwiLCJcdUE3NDkiOiJsIiwiXHVBNzgxIjoibCIsIlx1QTc0Nz0K
IjoibCIsIlx1MDFDOSI6ImxqIiwiXHUyNERDIjoibSIsIlx1RkY0RCI6Im0iLCJcdTFFM0YiOiJt
IiwiXHUxRTQxIjoibSIsIlx1PQoxRTQzIjoibSIsIlx1MDI3MSI6Im0iLCJcdTAyNkYiOiJtIiwi
XHUyNEREIjoibiIsIlx1RkY0RSI6Im4iLCJcdTAxRjkiOiJuIiw9CiJcdTAxNDQiOiJuIiwiXHUw
MEYxIjoibiIsIlx1MUU0NSI6Im4iLCJcdTAxNDgiOiJuIiwiXHUxRTQ3IjoibiIsIlx1MDE0NiI6
Ij0KbiIsIlx1MUU0QiI6Im4iLCJcdTFFNDkiOiJuIiwiXHUwMTlFIjoibiIsIlx1MDI3MiI6Im4i
LCJcdTAxNDkiOiJuIiwiXHVBNzkxPQoiOiJuIiwiXHVBN0E1IjoibiIsIlx1MDFDQyI6Im5qIiwi
XHUyNERFIjoibyIsIlx1RkY0RiI6Im8iLCJcdTAwRjIiOiJvIiwiXHU9CjAwRjMiOiJvIiwiXHUw
MEY0IjoibyIsIlx1MUVEMyI6Im8iLCJcdTFFRDEiOiJvIiwiXHUxRUQ3IjoibyIsIlx1MUVENSI6
Im8iLD0KIlx1MDBGNSI6Im8iLCJcdTFFNEQiOiJvIiwiXHUwMjJEIjoibyIsIlx1MUU0RiI6Im8i
LCJcdTAxNEQiOiJvIiwiXHUxRTUxIjoiPQpvIiwiXHUxRTUzIjoibyIsIlx1MDE0RiI6Im8iLCJc
dTAyMkYiOiJvIiwiXHUwMjMxIjoibyIsIlx1MDBGNiI6Im8iLCJcdTAyMkI9CiI6Im8iLCJcdTFF
Q0YiOiJvIiwiXHUwMTUxIjoibyIsIlx1MDFEMiI6Im8iLCJcdTAyMEQiOiJvIiwiXHUwMjBGIjoi
byIsIlx1MD0KMUExIjoibyIsIlx1MUVERCI6Im8iLCJcdTFFREIiOiJvIiwiXHUxRUUxIjoibyIs
Ilx1MUVERiI6Im8iLCJcdTFFRTMiOiJvIiwiPQpcdTFFQ0QiOiJvIiwiXHUxRUQ5IjoibyIsIlx1
MDFFQiI6Im8iLCJcdTAxRUQiOiJvIiwiXHUwMEY4IjoibyIsIlx1MDFGRiI6Im89CiIsIlx1MDI1
NCI6Im8iLCJcdUE3NEIiOiJvIiwiXHVBNzREIjoibyIsIlx1MDI3NSI6Im8iLCJcdTAxQTMiOiJv
aSIsIlx1MDIyMz0KIjoib3UiLCJcdUE3NEYiOiJvbyIsIlx1MjRERiI6InAiLCJcdUZGNTAiOiJw
IiwiXHUxRTU1IjoicCIsIlx1MUU1NyI6InAiLCJcPQp1MDFBNSI6InAiLCJcdTFEN0QiOiJwIiwi
XHVBNzUxIjoicCIsIlx1QTc1MyI6InAiLCJcdUE3NTUiOiJwIiwiXHUyNEUwIjoicSI9CiwiXHVG
RjUxIjoicSIsIlx1MDI0QiI6InEiLCJcdUE3NTciOiJxIiwiXHVBNzU5IjoicSIsIlx1MjRFMSI6
InIiLCJcdUZGNTIiOj0KInIiLCJcdTAxNTUiOiJyIiwiXHUxRTU5IjoiciIsIlx1MDE1OSI6InIi
LCJcdTAyMTEiOiJyIiwiXHUwMjEzIjoiciIsIlx1MUU1PQpCIjoiciIsIlx1MUU1RCI6InIiLCJc
dTAxNTciOiJyIiwiXHUxRTVGIjoiciIsIlx1MDI0RCI6InIiLCJcdTAyN0QiOiJyIiwiXHU9CkE3
NUIiOiJyIiwiXHVBN0E3IjoiciIsIlx1QTc4MyI6InIiLCJcdTI0RTIiOiJzIiwiXHVGRjUzIjoi
cyIsIlx1MDBERiI6InMiLD0KIlx1MDE1QiI6InMiLCJcdTFFNjUiOiJzIiwiXHUwMTVEIjoicyIs
Ilx1MUU2MSI6InMiLCJcdTAxNjEiOiJzIiwiXHUxRTY3IjoiPQpzIiwiXHUxRTYzIjoicyIsIlx1
MUU2OSI6InMiLCJcdTAyMTkiOiJzIiwiXHUwMTVGIjoicyIsIlx1MDIzRiI6InMiLCJcdUE3QTk9
CiI6InMiLCJcdUE3ODUiOiJzIiwiXHUxRTlCIjoicyIsIlx1MjRFMyI6InQiLCJcdUZGNTQiOiJ0
IiwiXHUxRTZCIjoidCIsIlx1MT0KRTk3IjoidCIsIlx1MDE2NSI6InQiLCJcdTFFNkQiOiJ0Iiwi
XHUwMjFCIjoidCIsIlx1MDE2MyI6InQiLCJcdTFFNzEiOiJ0IiwiPQpcdTFFNkYiOiJ0IiwiXHUw
MTY3IjoidCIsIlx1MDFBRCI6InQiLCJcdTAyODgiOiJ0IiwiXHUyQzY2IjoidCIsIlx1QTc4NyI6
InQ9CiIsIlx1QTcyOSI6InR6IiwiXHUyNEU0IjoidSIsIlx1RkY1NSI6InUiLCJcdTAwRjkiOiJ1
IiwiXHUwMEZBIjoidSIsIlx1MDBGQj0KIjoidSIsIlx1MDE2OSI6InUiLCJcdTFFNzkiOiJ1Iiwi
XHUwMTZCIjoidSIsIlx1MUU3QiI6InUiLCJcdTAxNkQiOiJ1IiwiXHUwPQowRkMiOiJ1IiwiXHUw
MURDIjoidSIsIlx1MDFEOCI6InUiLCJcdTAxRDYiOiJ1IiwiXHUwMURBIjoidSIsIlx1MUVFNyI6
InUiLCI9Clx1MDE2RiI6InUiLCJcdTAxNzEiOiJ1IiwiXHUwMUQ0IjoidSIsIlx1MDIxNSI6InUi
LCJcdTAyMTciOiJ1IiwiXHUwMUIwIjoidT0KIiwiXHUxRUVCIjoidSIsIlx1MUVFOSI6InUiLCJc
dTFFRUYiOiJ1IiwiXHUxRUVEIjoidSIsIlx1MUVGMSI6InUiLCJcdTFFRTUiPQo6InUiLCJcdTFF
NzMiOiJ1IiwiXHUwMTczIjoidSIsIlx1MUU3NyI6InUiLCJcdTFFNzUiOiJ1IiwiXHUwMjg5Ijoi
dSIsIlx1MjQ9CkU1IjoidiIsIlx1RkY1NiI6InYiLCJcdTFFN0QiOiJ2IiwiXHUxRTdGIjoidiIs
Ilx1MDI4QiI6InYiLCJcdUE3NUYiOiJ2IiwiXD0KdTAyOEMiOiJ2IiwiXHVBNzYxIjoidnkiLCJc
dTI0RTYiOiJ3IiwiXHVGRjU3IjoidyIsIlx1MUU4MSI6InciLCJcdTFFODMiOiJ3PQoiLCJcdTAx
NzUiOiJ3IiwiXHUxRTg3IjoidyIsIlx1MUU4NSI6InciLCJcdTFFOTgiOiJ3IiwiXHUxRTg5Ijoi
dyIsIlx1MkM3MyI9CjoidyIsIlx1MjRFNyI6IngiLCJcdUZGNTgiOiJ4IiwiXHUxRThCIjoieCIs
Ilx1MUU4RCI6IngiLCJcdTI0RTgiOiJ5IiwiXHVGRj0KNTkiOiJ5IiwiXHUxRUYzIjoieSIsIlx1
MDBGRCI6InkiLCJcdTAxNzciOiJ5IiwiXHUxRUY5IjoieSIsIlx1MDIzMyI6InkiLCJcPQp1MUU4
RiI6InkiLCJcdTAwRkYiOiJ5IiwiXHUxRUY3IjoieSIsIlx1MUU5OSI6InkiLCJcdTFFRjUiOiJ5
IiwiXHUwMUI0IjoieSI9CiwiXHUwMjRGIjoieSIsIlx1MUVGRiI6InkiLCJcdTI0RTkiOiJ6Iiwi
XHVGRjVBIjoieiIsIlx1MDE3QSI6InoiLCJcdTFFOTEiOj0KInoiLCJcdTAxN0MiOiJ6IiwiXHUw
MTdFIjoieiIsIlx1MUU5MyI6InoiLCJcdTFFOTUiOiJ6IiwiXHUwMUI2IjoieiIsIlx1MDIyPQo1
IjoieiIsIlx1MDI0MCI6InoiLCJcdTJDNkMiOiJ6IiwiXHVBNzYzIjoieiJ9OworICAgIERJQUNS
SVRJQ1MgPTNEIHsiXHUyNEI2IjoiQSIsIlx1RkYyMSI6IkEiLCJcdTAwQzAiOiJBIiwiXHUwMEMx
IjoiQSIsIlw9CnUwMEMyIjoiQSIsIlx1MUVBNiI6IkEiLCJcdTFFQTQiOiJBIiwiXHUxRUFBIjoi
QSIsIlx1MUVBOCI6IkEiLCJcdTAwQzMiOiJBIj0KLCJcdTAxMDAiOiJBIiwiXHUwMTAyIjoiQSIs
Ilx1MUVCMCI6IkEiLCJcdTFFQUUiOiJBIiwiXHUxRUI0IjoiQSIsIlx1MUVCMiI6PQoiQSIsIlx1
MDIyNiI6IkEiLCJcdTAxRTAiOiJBIiwiXHUwMEM0IjoiQSIsIlx1MDFERSI6IkEiLCJcdTFFQTIi
OiJBIiwiXHUwMEM9CjUiOiJBIiwiXHUwMUZBIjoiQSIsIlx1MDFDRCI6IkEiLCJcdTAyMDAiOiJB
IiwiXHUwMjAyIjoiQSIsIlx1MUVBMCI6IkEiLCJcdT0KMUVBQyI6IkEiLCJcdTFFQjYiOiJBIiwi
XHUxRTAwIjoiQSIsIlx1MDEwNCI6IkEiLCJcdTAyM0EiOiJBIiwiXHUyQzZGIjoiQSIsPQoiXHVB
NzMyIjoiQUEiLCJcdTAwQzYiOiJBRSIsIlx1MDFGQyI6IkFFIiwiXHUwMUUyIjoiQUUiLCJcdUE3
MzQiOiJBTyIsIlx1QTc9CjM2IjoiQVUiLCJcdUE3MzgiOiJBViIsIlx1QTczQSI6IkFWIiwiXHVB
NzNDIjoiQVkiLCJcdTI0QjciOiJCIiwiXHVGRjIyIjoiQj0KIiwiXHUxRTAyIjoiQiIsIlx1MUUw
NCI6IkIiLCJcdTFFMDYiOiJCIiwiXHUwMjQzIjoiQiIsIlx1MDE4MiI6IkIiLCJcdTAxODEiPQo6
IkIiLCJcdTI0QjgiOiJDIiwiXHVGRjIzIjoiQyIsIlx1MDEwNiI6IkMiLCJcdTAxMDgiOiJDIiwi
XHUwMTBBIjoiQyIsIlx1MDE9CjBDIjoiQyIsIlx1MDBDNyI6IkMiLCJcdTFFMDgiOiJDIiwiXHUw
MTg3IjoiQyIsIlx1MDIzQiI6IkMiLCJcdUE3M0UiOiJDIiwiXD0KdTI0QjkiOiJEIiwiXHVGRjI0
IjoiRCIsIlx1MUUwQSI6IkQiLCJcdTAxMEUiOiJEIiwiXHUxRTBDIjoiRCIsIlx1MUUxMCI6IkQi
PQosIlx1MUUxMiI6IkQiLCJcdTFFMEUiOiJEIiwiXHUwMTEwIjoiRCIsIlx1MDE4QiI6IkQiLCJc
dTAxOEEiOiJEIiwiXHUwMTg5Ijo9CiJEIiwiXHVBNzc5IjoiRCIsIlx1MDFGMSI6IkRaIiwiXHUw
MUM0IjoiRFoiLCJcdTAxRjIiOiJEeiIsIlx1MDFDNSI6IkR6IiwiXD0KdTI0QkEiOiJFIiwiXHVG
RjI1IjoiRSIsIlx1MDBDOCI6IkUiLCJcdTAwQzkiOiJFIiwiXHUwMENBIjoiRSIsIlx1MUVDMCI6
IkUiPQosIlx1MUVCRSI6IkUiLCJcdTFFQzQiOiJFIiwiXHUxRUMyIjoiRSIsIlx1MUVCQyI6IkUi
LCJcdTAxMTIiOiJFIiwiXHUxRTE0Ijo9CiJFIiwiXHUxRTE2IjoiRSIsIlx1MDExNCI6IkUiLCJc
dTAxMTYiOiJFIiwiXHUwMENCIjoiRSIsIlx1MUVCQSI6IkUiLCJcdTAxMT0KQSI6IkUiLCJcdTAy
MDQiOiJFIiwiXHUwMjA2IjoiRSIsIlx1MUVCOCI6IkUiLCJcdTFFQzYiOiJFIiwiXHUwMjI4Ijoi
RSIsIlx1PQoxRTFDIjoiRSIsIlx1MDExOCI6IkUiLCJcdTFFMTgiOiJFIiwiXHUxRTFBIjoiRSIs
Ilx1MDE5MCI6IkUiLCJcdTAxOEUiOiJFIiw9CiJcdTI0QkIiOiJGIiwiXHVGRjI2IjoiRiIsIlx1
MUUxRSI6IkYiLCJcdTAxOTEiOiJGIiwiXHVBNzdCIjoiRiIsIlx1MjRCQyI6Ij0KRyIsIlx1RkYy
NyI6IkciLCJcdTAxRjQiOiJHIiwiXHUwMTFDIjoiRyIsIlx1MUUyMCI6IkciLCJcdTAxMUUiOiJH
IiwiXHUwMTIwPQoiOiJHIiwiXHUwMUU2IjoiRyIsIlx1MDEyMiI6IkciLCJcdTAxRTQiOiJHIiwi
XHUwMTkzIjoiRyIsIlx1QTdBMCI6IkciLCJcdUE9Cjc3RCI6IkciLCJcdUE3N0UiOiJHIiwiXHUy
NEJEIjoiSCIsIlx1RkYyOCI6IkgiLCJcdTAxMjQiOiJIIiwiXHUxRTIyIjoiSCIsIj0KXHUxRTI2
IjoiSCIsIlx1MDIxRSI6IkgiLCJcdTFFMjQiOiJIIiwiXHUxRTI4IjoiSCIsIlx1MUUyQSI6Ikgi
LCJcdTAxMjYiOiJIPQoiLCJcdTJDNjciOiJIIiwiXHUyQzc1IjoiSCIsIlx1QTc4RCI6IkgiLCJc
dTI0QkUiOiJJIiwiXHVGRjI5IjoiSSIsIlx1MDBDQyI9CjoiSSIsIlx1MDBDRCI6IkkiLCJcdTAw
Q0UiOiJJIiwiXHUwMTI4IjoiSSIsIlx1MDEyQSI6IkkiLCJcdTAxMkMiOiJJIiwiXHUwMT0KMzAi
OiJJIiwiXHUwMENGIjoiSSIsIlx1MUUyRSI6IkkiLCJcdTFFQzgiOiJJIiwiXHUwMUNGIjoiSSIs
Ilx1MDIwOCI6IkkiLCJcPQp1MDIwQSI6IkkiLCJcdTFFQ0EiOiJJIiwiXHUwMTJFIjoiSSIsIlx1
MUUyQyI6IkkiLCJcdTAxOTciOiJJIiwiXHUyNEJGIjoiSiI9CiwiXHVGRjJBIjoiSiIsIlx1MDEz
NCI6IkoiLCJcdTAyNDgiOiJKIiwiXHUyNEMwIjoiSyIsIlx1RkYyQiI6IksiLCJcdTFFMzAiOj0K
IksiLCJcdTAxRTgiOiJLIiwiXHUxRTMyIjoiSyIsIlx1MDEzNiI6IksiLCJcdTFFMzQiOiJLIiwi
XHUwMTk4IjoiSyIsIlx1MkM2PQo5IjoiSyIsIlx1QTc0MCI6IksiLCJcdUE3NDIiOiJLIiwiXHVB
NzQ0IjoiSyIsIlx1QTdBMiI6IksiLCJcdTI0QzEiOiJMIiwiXHU9CkZGMkMiOiJMIiwiXHUwMTNG
IjoiTCIsIlx1MDEzOSI6IkwiLCJcdTAxM0QiOiJMIiwiXHUxRTM2IjoiTCIsIlx1MUUzOCI6Ikwi
LD0KIlx1MDEzQiI6IkwiLCJcdTFFM0MiOiJMIiwiXHUxRTNBIjoiTCIsIlx1MDE0MSI6IkwiLCJc
dTAyM0QiOiJMIiwiXHUyQzYyIjoiPQpMIiwiXHUyQzYwIjoiTCIsIlx1QTc0OCI6IkwiLCJcdUE3
NDYiOiJMIiwiXHVBNzgwIjoiTCIsIlx1MDFDNyI6IkxKIiwiXHUwMUM9CjgiOiJMaiIsIlx1MjRD
MiI6Ik0iLCJcdUZGMkQiOiJNIiwiXHUxRTNFIjoiTSIsIlx1MUU0MCI6Ik0iLCJcdTFFNDIiOiJN
IiwiXD0KdTJDNkUiOiJNIiwiXHUwMTlDIjoiTSIsIlx1MjRDMyI6Ik4iLCJcdUZGMkUiOiJOIiwi
XHUwMUY4IjoiTiIsIlx1MDE0MyI6Ik4iPQosIlx1MDBEMSI6Ik4iLCJcdTFFNDQiOiJOIiwiXHUw
MTQ3IjoiTiIsIlx1MUU0NiI6Ik4iLCJcdTAxNDUiOiJOIiwiXHUxRTRBIjo9CiJOIiwiXHUxRTQ4
IjoiTiIsIlx1MDIyMCI6Ik4iLCJcdTAxOUQiOiJOIiwiXHVBNzkwIjoiTiIsIlx1QTdBNCI6Ik4i
LCJcdTAxQz0KQSI6Ik5KIiwiXHUwMUNCIjoiTmoiLCJcdTI0QzQiOiJPIiwiXHVGRjJGIjoiTyIs
Ilx1MDBEMiI6Ik8iLCJcdTAwRDMiOiJPIiwiPQpcdTAwRDQiOiJPIiwiXHUxRUQyIjoiTyIsIlx1
MUVEMCI6Ik8iLCJcdTFFRDYiOiJPIiwiXHUxRUQ0IjoiTyIsIlx1MDBENSI6Ik89CiIsIlx1MUU0
QyI6Ik8iLCJcdTAyMkMiOiJPIiwiXHUxRTRFIjoiTyIsIlx1MDE0QyI6Ik8iLCJcdTFFNTAiOiJP
IiwiXHUxRTUyIj0KOiJPIiwiXHUwMTRFIjoiTyIsIlx1MDIyRSI6Ik8iLCJcdTAyMzAiOiJPIiwi
XHUwMEQ2IjoiTyIsIlx1MDIyQSI6Ik8iLCJcdTFFPQpDRSI6Ik8iLCJcdTAxNTAiOiJPIiwiXHUw
MUQxIjoiTyIsIlx1MDIwQyI6Ik8iLCJcdTAyMEUiOiJPIiwiXHUwMUEwIjoiTyIsIlw9CnUxRURD
IjoiTyIsIlx1MUVEQSI6Ik8iLCJcdTFFRTAiOiJPIiwiXHUxRURFIjoiTyIsIlx1MUVFMiI6Ik8i
LCJcdTFFQ0MiOiJPIj0KLCJcdTFFRDgiOiJPIiwiXHUwMUVBIjoiTyIsIlx1MDFFQyI6Ik8iLCJc
dTAwRDgiOiJPIiwiXHUwMUZFIjoiTyIsIlx1MDE4NiI6PQoiTyIsIlx1MDE5RiI6Ik8iLCJcdUE3
NEEiOiJPIiwiXHVBNzRDIjoiTyIsIlx1MDFBMiI6Ik9JIiwiXHVBNzRFIjoiT08iLCJcdTA9CjIy
MiI6Ik9VIiwiXHUyNEM1IjoiUCIsIlx1RkYzMCI6IlAiLCJcdTFFNTQiOiJQIiwiXHUxRTU2Ijoi
UCIsIlx1MDFBNCI6IlAiLD0KIlx1MkM2MyI6IlAiLCJcdUE3NTAiOiJQIiwiXHVBNzUyIjoiUCIs
Ilx1QTc1NCI6IlAiLCJcdTI0QzYiOiJRIiwiXHVGRjMxIjoiPQpRIiwiXHVBNzU2IjoiUSIsIlx1
QTc1OCI6IlEiLCJcdTAyNEEiOiJRIiwiXHUyNEM3IjoiUiIsIlx1RkYzMiI6IlIiLCJcdTAxNTQ9
CiI6IlIiLCJcdTFFNTgiOiJSIiwiXHUwMTU4IjoiUiIsIlx1MDIxMCI6IlIiLCJcdTAyMTIiOiJS
IiwiXHUxRTVBIjoiUiIsIlx1MT0KRTVDIjoiUiIsIlx1MDE1NiI6IlIiLCJcdTFFNUUiOiJSIiwi
XHUwMjRDIjoiUiIsIlx1MkM2NCI6IlIiLCJcdUE3NUEiOiJSIiwiPQpcdUE3QTYiOiJSIiwiXHVB
NzgyIjoiUiIsIlx1MjRDOCI6IlMiLCJcdUZGMzMiOiJTIiwiXHUxRTlFIjoiUyIsIlx1MDE1QSI6
IlM9CiIsIlx1MUU2NCI6IlMiLCJcdTAxNUMiOiJTIiwiXHUxRTYwIjoiUyIsIlx1MDE2MCI6IlMi
LCJcdTFFNjYiOiJTIiwiXHUxRTYyIj0KOiJTIiwiXHUxRTY4IjoiUyIsIlx1MDIxOCI6IlMiLCJc
dTAxNUUiOiJTIiwiXHUyQzdFIjoiUyIsIlx1QTdBOCI6IlMiLCJcdUE3PQo4NCI6IlMiLCJcdTI0
QzkiOiJUIiwiXHVGRjM0IjoiVCIsIlx1MUU2QSI6IlQiLCJcdTAxNjQiOiJUIiwiXHUxRTZDIjoi
VCIsIlw9CnUwMjFBIjoiVCIsIlx1MDE2MiI6IlQiLCJcdTFFNzAiOiJUIiwiXHUxRTZFIjoiVCIs
Ilx1MDE2NiI6IlQiLCJcdTAxQUMiOiJUIj0KLCJcdTAxQUUiOiJUIiwiXHUwMjNFIjoiVCIsIlx1
QTc4NiI6IlQiLCJcdUE3MjgiOiJUWiIsIlx1MjRDQSI6IlUiLCJcdUZGMzUiPQo6IlUiLCJcdTAw
RDkiOiJVIiwiXHUwMERBIjoiVSIsIlx1MDBEQiI6IlUiLCJcdTAxNjgiOiJVIiwiXHUxRTc4Ijoi
VSIsIlx1MDE9CjZBIjoiVSIsIlx1MUU3QSI6IlUiLCJcdTAxNkMiOiJVIiwiXHUwMERDIjoiVSIs
Ilx1MDFEQiI6IlUiLCJcdTAxRDciOiJVIiwiXD0KdTAxRDUiOiJVIiwiXHUwMUQ5IjoiVSIsIlx1
MUVFNiI6IlUiLCJcdTAxNkUiOiJVIiwiXHUwMTcwIjoiVSIsIlx1MDFEMyI6IlUiPQosIlx1MDIx
NCI6IlUiLCJcdTAyMTYiOiJVIiwiXHUwMUFGIjoiVSIsIlx1MUVFQSI6IlUiLCJcdTFFRTgiOiJV
IiwiXHUxRUVFIjo9CiJVIiwiXHUxRUVDIjoiVSIsIlx1MUVGMCI6IlUiLCJcdTFFRTQiOiJVIiwi
XHUxRTcyIjoiVSIsIlx1MDE3MiI6IlUiLCJcdTFFNz0KNiI6IlUiLCJcdTFFNzQiOiJVIiwiXHUw
MjQ0IjoiVSIsIlx1MjRDQiI6IlYiLCJcdUZGMzYiOiJWIiwiXHUxRTdDIjoiViIsIlx1PQoxRTdF
IjoiViIsIlx1MDFCMiI6IlYiLCJcdUE3NUUiOiJWIiwiXHUwMjQ1IjoiViIsIlx1QTc2MCI6IlZZ
IiwiXHUyNENDIjoiVyI9CiwiXHVGRjM3IjoiVyIsIlx1MUU4MCI6IlciLCJcdTFFODIiOiJXIiwi
XHUwMTc0IjoiVyIsIlx1MUU4NiI6IlciLCJcdTFFODQiOj0KIlciLCJcdTFFODgiOiJXIiwiXHUy
QzcyIjoiVyIsIlx1MjRDRCI6IlgiLCJcdUZGMzgiOiJYIiwiXHUxRThBIjoiWCIsIlx1MUU4PQpD
IjoiWCIsIlx1MjRDRSI6IlkiLCJcdUZGMzkiOiJZIiwiXHUxRUYyIjoiWSIsIlx1MDBERCI6Ilki
LCJcdTAxNzYiOiJZIiwiXHU9CjFFRjgiOiJZIiwiXHUwMjMyIjoiWSIsIlx1MUU4RSI6IlkiLCJc
dTAxNzgiOiJZIiwiXHUxRUY2IjoiWSIsIlx1MUVGNCI6IlkiLD0KIlx1MDFCMyI6IlkiLCJcdTAy
NEUiOiJZIiwiXHUxRUZFIjoiWSIsIlx1MjRDRiI6IloiLCJcdUZGM0EiOiJaIiwiXHUwMTc5Ijoi
PQpaIiwiXHUxRTkwIjoiWiIsIlx1MDE3QiI6IloiLCJcdTAxN0QiOiJaIiwiXHUxRTkyIjoiWiIs
Ilx1MUU5NCI6IloiLCJcdTAxQjU9CiI6IloiLCJcdTAyMjQiOiJaIiwiXHUyQzdGIjoiWiIsIlx1
MkM2QiI6IloiLCJcdUE3NjIiOiJaIiwiXHUyNEQwIjoiYSIsIlx1Rj0KRjQxIjoiYSIsIlx1MUU5
QSI6ImEiLCJcdTAwRTAiOiJhIiwiXHUwMEUxIjoiYSIsIlx1MDBFMiI6ImEiLCJcdTFFQTciOiJh
IiwiPQpcdTFFQTUiOiJhIiwiXHUxRUFCIjoiYSIsIlx1MUVBOSI6ImEiLCJcdTAwRTMiOiJhIiwi
XHUwMTAxIjoiYSIsIlx1MDEwMyI6ImE9CiIsIlx1MUVCMSI6ImEiLCJcdTFFQUYiOiJhIiwiXHUx
RUI1IjoiYSIsIlx1MUVCMyI6ImEiLCJcdTAyMjciOiJhIiwiXHUwMUUxIj0KOiJhIiwiXHUwMEU0
IjoiYSIsIlx1MDFERiI6ImEiLCJcdTFFQTMiOiJhIiwiXHUwMEU1IjoiYSIsIlx1MDFGQiI6ImEi
LCJcdTAxPQpDRSI6ImEiLCJcdTAyMDEiOiJhIiwiXHUwMjAzIjoiYSIsIlx1MUVBMSI6ImEiLCJc
dTFFQUQiOiJhIiwiXHUxRUI3IjoiYSIsIlw9CnUxRTAxIjoiYSIsIlx1MDEwNSI6ImEiLCJcdTJD
NjUiOiJhIiwiXHUwMjUwIjoiYSIsIlx1QTczMyI6ImFhIiwiXHUwMEU2IjoiYT0KZSIsIlx1MDFG
RCI6ImFlIiwiXHUwMUUzIjoiYWUiLCJcdUE3MzUiOiJhbyIsIlx1QTczNyI6ImF1IiwiXHVBNzM5
IjoiYXYiLCJcPQp1QTczQiI6ImF2IiwiXHVBNzNEIjoiYXkiLCJcdTI0RDEiOiJiIiwiXHVGRjQy
IjoiYiIsIlx1MUUwMyI6ImIiLCJcdTFFMDUiOiI9CmIiLCJcdTFFMDciOiJiIiwiXHUwMTgwIjoi
YiIsIlx1MDE4MyI6ImIiLCJcdTAyNTMiOiJiIiwiXHUyNEQyIjoiYyIsIlx1RkY0Mz0KIjoiYyIs
Ilx1MDEwNyI6ImMiLCJcdTAxMDkiOiJjIiwiXHUwMTBCIjoiYyIsIlx1MDEwRCI6ImMiLCJcdTAw
RTciOiJjIiwiXHUxPQpFMDkiOiJjIiwiXHUwMTg4IjoiYyIsIlx1MDIzQyI6ImMiLCJcdUE3M0Yi
OiJjIiwiXHUyMTg0IjoiYyIsIlx1MjREMyI6ImQiLCI9Clx1RkY0NCI6ImQiLCJcdTFFMEIiOiJk
IiwiXHUwMTBGIjoiZCIsIlx1MUUwRCI6ImQiLCJcdTFFMTEiOiJkIiwiXHUxRTEzIjoiZD0KIiwi
XHUxRTBGIjoiZCIsIlx1MDExMSI6ImQiLCJcdTAxOEMiOiJkIiwiXHUwMjU2IjoiZCIsIlx1MDI1
NyI6ImQiLCJcdUE3N0EiPQo6ImQiLCJcdTAxRjMiOiJkeiIsIlx1MDFDNiI6ImR6IiwiXHUyNEQ0
IjoiZSIsIlx1RkY0NSI6ImUiLCJcdTAwRTgiOiJlIiwiXHU9CjAwRTkiOiJlIiwiXHUwMEVBIjoi
ZSIsIlx1MUVDMSI6ImUiLCJcdTFFQkYiOiJlIiwiXHUxRUM1IjoiZSIsIlx1MUVDMyI6ImUiLD0K
Ilx1MUVCRCI6ImUiLCJcdTAxMTMiOiJlIiwiXHUxRTE1IjoiZSIsIlx1MUUxNyI6ImUiLCJcdTAx
MTUiOiJlIiwiXHUwMTE3IjoiPQplIiwiXHUwMEVCIjoiZSIsIlx1MUVCQiI6ImUiLCJcdTAxMUIi
OiJlIiwiXHUwMjA1IjoiZSIsIlx1MDIwNyI6ImUiLCJcdTFFQjk9CiI6ImUiLCJcdTFFQzciOiJl
IiwiXHUwMjI5IjoiZSIsIlx1MUUxRCI6ImUiLCJcdTAxMTkiOiJlIiwiXHUxRTE5IjoiZSIsIlx1
MT0KRTFCIjoiZSIsIlx1MDI0NyI6ImUiLCJcdTAyNUIiOiJlIiwiXHUwMUREIjoiZSIsIlx1MjRE
NSI6ImYiLCJcdUZGNDYiOiJmIiwiPQpcdTFFMUYiOiJmIiwiXHUwMTkyIjoiZiIsIlx1QTc3QyI6
ImYiLCJcdTI0RDYiOiJnIiwiXHVGRjQ3IjoiZyIsIlx1MDFGNSI6Imc9CiIsIlx1MDExRCI6Imci
LCJcdTFFMjEiOiJnIiwiXHUwMTFGIjoiZyIsIlx1MDEyMSI6ImciLCJcdTAxRTciOiJnIiwiXHUw
MTIzIj0KOiJnIiwiXHUwMUU1IjoiZyIsIlx1MDI2MCI6ImciLCJcdUE3QTEiOiJnIiwiXHUxRDc5
IjoiZyIsIlx1QTc3RiI6ImciLCJcdTI0PQpENyI6ImgiLCJcdUZGNDgiOiJoIiwiXHUwMTI1Ijoi
aCIsIlx1MUUyMyI6ImgiLCJcdTFFMjciOiJoIiwiXHUwMjFGIjoiaCIsIlw9CnUxRTI1IjoiaCIs
Ilx1MUUyOSI6ImgiLCJcdTFFMkIiOiJoIiwiXHUxRTk2IjoiaCIsIlx1MDEyNyI6ImgiLCJcdTJD
NjgiOiJoIj0KLCJcdTJDNzYiOiJoIiwiXHUwMjY1IjoiaCIsIlx1MDE5NSI6Imh2IiwiXHUyNEQ4
IjoiaSIsIlx1RkY0OSI6ImkiLCJcdTAwRUMiPQo6ImkiLCJcdTAwRUQiOiJpIiwiXHUwMEVFIjoi
aSIsIlx1MDEyOSI6ImkiLCJcdTAxMkIiOiJpIiwiXHUwMTJEIjoiaSIsIlx1MDA9CkVGIjoiaSIs
Ilx1MUUyRiI6ImkiLCJcdTFFQzkiOiJpIiwiXHUwMUQwIjoiaSIsIlx1MDIwOSI6ImkiLCJcdTAy
MEIiOiJpIiwiXD0KdTFFQ0IiOiJpIiwiXHUwMTJGIjoiaSIsIlx1MUUyRCI6ImkiLCJcdTAyNjgi
OiJpIiwiXHUwMTMxIjoiaSIsIlx1MjREOSI6ImoiPQosIlx1RkY0QSI6ImoiLCJcdTAxMzUiOiJq
IiwiXHUwMUYwIjoiaiIsIlx1MDI0OSI6ImoiLCJcdTI0REEiOiJrIiwiXHVGRjRCIjo9CiJrIiwi
XHUxRTMxIjoiayIsIlx1MDFFOSI6ImsiLCJcdTFFMzMiOiJrIiwiXHUwMTM3IjoiayIsIlx1MUUz
NSI6ImsiLCJcdTAxOT0KOSI6ImsiLCJcdTJDNkEiOiJrIiwiXHVBNzQxIjoiayIsIlx1QTc0MyI6
ImsiLCJcdUE3NDUiOiJrIiwiXHVBN0EzIjoiayIsIlx1PQoyNERCIjoibCIsIlx1RkY0QyI6Imwi
LCJcdTAxNDAiOiJsIiwiXHUwMTNBIjoibCIsIlx1MDEzRSI6ImwiLCJcdTFFMzciOiJsIiw9CiJc
dTFFMzkiOiJsIiwiXHUwMTNDIjoibCIsIlx1MUUzRCI6ImwiLCJcdTFFM0IiOiJsIiwiXHUwMTdG
IjoibCIsIlx1MDE0MiI6Ij0KbCIsIlx1MDE5QSI6ImwiLCJcdTAyNkIiOiJsIiwiXHUyQzYxIjoi
bCIsIlx1QTc0OSI6ImwiLCJcdUE3ODEiOiJsIiwiXHVBNzQ3PQoiOiJsIiwiXHUwMUM5IjoibGoi
LCJcdTI0REMiOiJtIiwiXHVGRjREIjoibSIsIlx1MUUzRiI6Im0iLCJcdTFFNDEiOiJtIiwiXHU9
CjFFNDMiOiJtIiwiXHUwMjcxIjoibSIsIlx1MDI2RiI6Im0iLCJcdTI0REQiOiJuIiwiXHVGRjRF
IjoibiIsIlx1MDFGOSI6Im4iLD0KIlx1MDE0NCI6Im4iLCJcdTAwRjEiOiJuIiwiXHUxRTQ1Ijoi
biIsIlx1MDE0OCI6Im4iLCJcdTFFNDciOiJuIiwiXHUwMTQ2IjoiPQpuIiwiXHUxRTRCIjoibiIs
Ilx1MUU0OSI6Im4iLCJcdTAxOUUiOiJuIiwiXHUwMjcyIjoibiIsIlx1MDE0OSI6Im4iLCJcdUE3
OTE9CiI6Im4iLCJcdUE3QTUiOiJuIiwiXHUwMUNDIjoibmoiLCJcdTI0REUiOiJvIiwiXHVGRjRG
IjoibyIsIlx1MDBGMiI6Im8iLCJcdT0KMDBGMyI6Im8iLCJcdTAwRjQiOiJvIiwiXHUxRUQzIjoi
byIsIlx1MUVEMSI6Im8iLCJcdTFFRDciOiJvIiwiXHUxRUQ1IjoibyIsPQoiXHUwMEY1IjoibyIs
Ilx1MUU0RCI6Im8iLCJcdTAyMkQiOiJvIiwiXHUxRTRGIjoibyIsIlx1MDE0RCI6Im8iLCJcdTFF
NTEiOiI9Cm8iLCJcdTFFNTMiOiJvIiwiXHUwMTRGIjoibyIsIlx1MDIyRiI6Im8iLCJcdTAyMzEi
OiJvIiwiXHUwMEY2IjoibyIsIlx1MDIyQj0KIjoibyIsIlx1MUVDRiI6Im8iLCJcdTAxNTEiOiJv
IiwiXHUwMUQyIjoibyIsIlx1MDIwRCI6Im8iLCJcdTAyMEYiOiJvIiwiXHUwPQoxQTEiOiJvIiwi
XHUxRUREIjoibyIsIlx1MUVEQiI6Im8iLCJcdTFFRTEiOiJvIiwiXHUxRURGIjoibyIsIlx1MUVF
MyI6Im8iLCI9Clx1MUVDRCI6Im8iLCJcdTFFRDkiOiJvIiwiXHUwMUVCIjoibyIsIlx1MDFFRCI6
Im8iLCJcdTAwRjgiOiJvIiwiXHUwMUZGIjoibz0KIiwiXHUwMjU0IjoibyIsIlx1QTc0QiI6Im8i
LCJcdUE3NEQiOiJvIiwiXHUwMjc1IjoibyIsIlx1MDFBMyI6Im9pIiwiXHUwMjIzPQoiOiJvdSIs
Ilx1QTc0RiI6Im9vIiwiXHUyNERGIjoicCIsIlx1RkY1MCI6InAiLCJcdTFFNTUiOiJwIiwiXHUx
RTU3IjoicCIsIlw9CnUwMUE1IjoicCIsIlx1MUQ3RCI6InAiLCJcdUE3NTEiOiJwIiwiXHVBNzUz
IjoicCIsIlx1QTc1NSI6InAiLCJcdTI0RTAiOiJxIj0KLCJcdUZGNTEiOiJxIiwiXHUwMjRCIjoi
cSIsIlx1QTc1NyI6InEiLCJcdUE3NTkiOiJxIiwiXHUyNEUxIjoiciIsIlx1RkY1MiI6PQoiciIs
Ilx1MDE1NSI6InIiLCJcdTFFNTkiOiJyIiwiXHUwMTU5IjoiciIsIlx1MDIxMSI6InIiLCJcdTAy
MTMiOiJyIiwiXHUxRTU9CkIiOiJyIiwiXHUxRTVEIjoiciIsIlx1MDE1NyI6InIiLCJcdTFFNUYi
OiJyIiwiXHUwMjREIjoiciIsIlx1MDI3RCI6InIiLCJcdT0KQTc1QiI6InIiLCJcdUE3QTciOiJy
IiwiXHVBNzgzIjoiciIsIlx1MjRFMiI6InMiLCJcdUZGNTMiOiJzIiwiXHUwMERGIjoicyIsPQoi
XHUwMTVCIjoicyIsIlx1MUU2NSI6InMiLCJcdTAxNUQiOiJzIiwiXHUxRTYxIjoicyIsIlx1MDE2
MSI6InMiLCJcdTFFNjciOiI9CnMiLCJcdTFFNjMiOiJzIiwiXHUxRTY5IjoicyIsIlx1MDIxOSI6
InMiLCJcdTAxNUYiOiJzIiwiXHUwMjNGIjoicyIsIlx1QTdBOT0KIjoicyIsIlx1QTc4NSI6InMi
LCJcdTFFOUIiOiJzIiwiXHUyNEUzIjoidCIsIlx1RkY1NCI6InQiLCJcdTFFNkIiOiJ0IiwiXHUx
PQpFOTciOiJ0IiwiXHUwMTY1IjoidCIsIlx1MUU2RCI6InQiLCJcdTAyMUIiOiJ0IiwiXHUwMTYz
IjoidCIsIlx1MUU3MSI6InQiLCI9Clx1MUU2RiI6InQiLCJcdTAxNjciOiJ0IiwiXHUwMUFEIjoi
dCIsIlx1MDI4OCI6InQiLCJcdTJDNjYiOiJ0IiwiXHVBNzg3IjoidD0KIiwiXHVBNzI5IjoidHoi
LCJcdTI0RTQiOiJ1IiwiXHVGRjU1IjoidSIsIlx1MDBGOSI6InUiLCJcdTAwRkEiOiJ1IiwiXHUw
MEZCPQoiOiJ1IiwiXHUwMTY5IjoidSIsIlx1MUU3OSI6InUiLCJcdTAxNkIiOiJ1IiwiXHUxRTdC
IjoidSIsIlx1MDE2RCI6InUiLCJcdTA9CjBGQyI6InUiLCJcdTAxREMiOiJ1IiwiXHUwMUQ4Ijoi
dSIsIlx1MDFENiI6InUiLCJcdTAxREEiOiJ1IiwiXHUxRUU3IjoidSIsIj0KXHUwMTZGIjoidSIs
Ilx1MDE3MSI6InUiLCJcdTAxRDQiOiJ1IiwiXHUwMjE1IjoidSIsIlx1MDIxNyI6InUiLCJcdTAx
QjAiOiJ1PQoiLCJcdTFFRUIiOiJ1IiwiXHUxRUU5IjoidSIsIlx1MUVFRiI6InUiLCJcdTFFRUQi
OiJ1IiwiXHUxRUYxIjoidSIsIlx1MUVFNSI9CjoidSIsIlx1MUU3MyI6InUiLCJcdTAxNzMiOiJ1
IiwiXHUxRTc3IjoidSIsIlx1MUU3NSI6InUiLCJcdTAyODkiOiJ1IiwiXHUyND0KRTUiOiJ2Iiwi
XHVGRjU2IjoidiIsIlx1MUU3RCI6InYiLCJcdTFFN0YiOiJ2IiwiXHUwMjhCIjoidiIsIlx1QTc1
RiI6InYiLCJcPQp1MDI4QyI6InYiLCJcdUE3NjEiOiJ2eSIsIlx1MjRFNiI6InciLCJcdUZGNTci
OiJ3IiwiXHUxRTgxIjoidyIsIlx1MUU4MyI6Inc9CiIsIlx1MDE3NSI6InciLCJcdTFFODciOiJ3
IiwiXHUxRTg1IjoidyIsIlx1MUU5OCI6InciLCJcdTFFODkiOiJ3IiwiXHUyQzczIj0KOiJ3Iiwi
XHUyNEU3IjoieCIsIlx1RkY1OCI6IngiLCJcdTFFOEIiOiJ4IiwiXHUxRThEIjoieCIsIlx1MjRF
OCI6InkiLCJcdUZGPQo1OSI6InkiLCJcdTFFRjMiOiJ5IiwiXHUwMEZEIjoieSIsIlx1MDE3NyI6
InkiLCJcdTFFRjkiOiJ5IiwiXHUwMjMzIjoieSIsIlw9CnUxRThGIjoieSIsIlx1MDBGRiI6Inki
LCJcdTFFRjciOiJ5IiwiXHUxRTk5IjoieSIsIlx1MUVGNSI6InkiLCJcdTAxQjQiOiJ5Ij0KLCJc
dTAyNEYiOiJ5IiwiXHUxRUZGIjoieSIsIlx1MjRFOSI6InoiLCJcdUZGNUEiOiJ6IiwiXHUwMTdB
IjoieiIsIlx1MUU5MSI6PQoieiIsIlx1MDE3QyI6InoiLCJcdTAxN0UiOiJ6IiwiXHUxRTkzIjoi
eiIsIlx1MUU5NSI6InoiLCJcdTAxQjYiOiJ6IiwiXHUwMjI9CjUiOiJ6IiwiXHUwMjQwIjoieiIs
Ilx1MkM2QyI6InoiLCJcdUE3NjMiOiJ6IiwiXHUwMzg2IjoiXHUwMzkxIiwiXHUwMzg4IjoiXD0K
dTAzOTUiLCJcdTAzODkiOiJcdTAzOTciLCJcdTAzOEEiOiJcdTAzOTkiLCJcdTAzQUEiOiJcdTAz
OTkiLCJcdTAzOEMiOiJcdTAzPQo5RiIsIlx1MDM4RSI6Ilx1MDNBNSIsIlx1MDNBQiI6Ilx1MDNB
NSIsIlx1MDM4RiI6Ilx1MDNBOSIsIlx1MDNBQyI6Ilx1MDNCMSI9CiwiXHUwM0FEIjoiXHUwM0I1
IiwiXHUwM0FFIjoiXHUwM0I3IiwiXHUwM0FGIjoiXHUwM0I5IiwiXHUwM0NBIjoiXHUwM0I5Iiwi
XD0KdTAzOTAiOiJcdTAzQjkiLCJcdTAzQ0MiOiJcdTAzQkYiLCJcdTAzQ0QiOiJcdTAzQzUiLCJc
dTAzQ0IiOiJcdTAzQzUiLCJcdTAzPQpCMCI6Ilx1MDNDNSIsIlx1MDNDOSI6Ilx1MDNDOSIsIlx1
MDNDMiI6Ilx1MDNDMyJ9Owo9MjAKICAgICAkZG9jdW1lbnQgPTNEICQoZG9jdW1lbnQpOwo9MjAK
ICAgICBuZXh0VWlkPTNEKGZ1bmN0aW9uKCkgeyB2YXIgY291bnRlcj0zRDE7IHJldHVybiBmdW5j
dGlvbigpIHsgcmV0dXJuIGNvPQp1bnRlcisrOyB9OyB9KCkpOwo9MjAKPTIwCisgICAgZnVuY3Rp
b24gcmVpbnNlcnRFbGVtZW50KGVsZW1lbnQpIHsKKyAgICAgICAgdmFyIHBsYWNlaG9sZGVyID0z
RCAkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcnKSk7CisKKyAgICAgICAgZWxlbWVudC5iZWZv
cmUocGxhY2Vob2xkZXIpOworICAgICAgICBwbGFjZWhvbGRlci5iZWZvcmUoZWxlbWVudCk7Cisg
ICAgICAgIHBsYWNlaG9sZGVyLnJlbW92ZSgpOworICAgIH0KKwogICAgIGZ1bmN0aW9uIHN0cmlw
RGlhY3JpdGljcyhzdHIpIHsKLSAgICAgICAgdmFyIHJldCwgaSwgbCwgYzsKLQotICAgICAgICBp
ZiAoIXN0ciB8fCBzdHIubGVuZ3RoIDwgMSkgcmV0dXJuIHN0cjsKLQotICAgICAgICByZXQgPTNE
ICIiOwotICAgICAgICBmb3IgKGkgPTNEIDAsIGwgPTNEIHN0ci5sZW5ndGg7IGkgPCBsOyBpKysp
IHsKLSAgICAgICAgICAgIGMgPTNEIHN0ci5jaGFyQXQoaSk7Ci0gICAgICAgICAgICByZXQgKz0z
RCBESUFDUklUSUNTW2NdIHx8IGM7CisgICAgICAgIC8vIFVzZWQgJ3VuaSByYW5nZSArIG5hbWVk
IGZ1bmN0aW9uJyBmcm9tIGh0dHA6Ly9qc3BlcmYuY29tL2RpYWNyaT0KdGljcy8xOAorICAgICAg
ICBmdW5jdGlvbiBtYXRjaChhKSB7CisgICAgICAgICAgICByZXR1cm4gRElBQ1JJVElDU1thXSB8
fCBhOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXQ7CisKKyAgICAgICAgcmV0dXJuIHN0
ci5yZXBsYWNlKC9bXlx1MDAwMC1cdTAwN0VdL2csIG1hdGNoKTsKICAgICB9Cj0yMAogICAgIGZ1
bmN0aW9uIGluZGV4T2YodmFsdWUsIGFycmF5KSB7CkBAIC0xODksMTAgKzE5Myw2IEBACiAgICAg
ICAgIH0pOwogICAgIH0KPTIwCi0gICAgJGRvY3VtZW50Lm9uKCJtb3VzZW1vdmUiLCBmdW5jdGlv
biAoZSkgewotICAgICAgICBsYXN0TW91c2VQb3NpdGlvbi54ID0zRCBlLnBhZ2VYOwotICAgICAg
ICBsYXN0TW91c2VQb3NpdGlvbi55ID0zRCBlLnBhZ2VZOwotICAgIH0pOwo9MjAKICAgICAvKioK
ICAgICAgKiBmaWx0ZXJzIG1vdXNlIGV2ZW50cyBzbyBhbiBldmVudCBpcyBmaXJlZCBvbmx5IGlm
IHRoZSBtb3VzZSBtb3ZlZC4KQEAgLTIzMCwyMCArMjMwLDYgQEAKICAgICAgICAgfTsKICAgICB9
Cj0yMAotICAgIC8qKgotICAgICAqIEEgc2ltcGxlIGltcGxlbWVudGF0aW9uIG9mIGEgdGh1bmsK
LSAgICAgKiBAcGFyYW0gZm9ybXVsYSBmdW5jdGlvbiB1c2VkIHRvIGxhemlseSBpbml0aWFsaXpl
IHRoZSB0aHVuawotICAgICAqIEByZXR1cm4ge0Z1bmN0aW9ufQotICAgICAqLwotICAgIGZ1bmN0
aW9uIHRodW5rKGZvcm11bGEpIHsKLSAgICAgICAgdmFyIGV2YWx1YXRlZCA9M0QgZmFsc2UsCi0g
ICAgICAgICAgICB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgaWYgKGV2YWx1YXRlZCA9M0Q9M0Q9M0QgZmFsc2UpIHsgdmFsdWUgPTNEIGZvcm11bGEoKTsg
ZXZhbHVhdGU9CmQgPTNEIHRydWU7IH0KLSAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICAg
ICAgfTsKLSAgICB9OwotCiAgICAgZnVuY3Rpb24gaW5zdGFsbERlYm91bmNlZFNjcm9sbCh0aHJl
c2hvbGQsIGVsZW1lbnQpIHsKICAgICAgICAgdmFyIG5vdGlmeSA9M0QgZGVib3VuY2UodGhyZXNo
b2xkLCBmdW5jdGlvbiAoZSkgeyBlbGVtZW50LnRyaWdnZXIoPQoic2Nyb2xsLWRlYm91bmNlZCIs
IGUpO30pOwogICAgICAgICBlbGVtZW50Lm9uKCJzY3JvbGwiLCBmdW5jdGlvbiAoZSkgewpAQCAt
MjYzLDggKzI0OSw5IEBACiAgICAgICAgICAgICAkZWwuZm9jdXMoKTsKPTIwCiAgICAgICAgICAg
ICAvKiBtYWtlIHN1cmUgZWwgcmVjZWl2ZWQgZm9jdXMgc28gd2UgZG8gbm90IGVycm9yIG91dCB3
aGVuIHRyeT0KaW5nIHRvIG1hbmlwdWxhdGUgdGhlIGNhcmV0LgotICAgICAgICAgICAgICAgIHNv
bWV0aW1lcyBtb2RhbHMgb3Igb3RoZXJzIGxpc3RlbmVycyBtYXkgc3RlYWwgaXQgYWZ0ZXIgaXQ9
CidzIHNldCAqLwotICAgICAgICAgICAgaWYgKCRlbC5pcygiOnZpc2libGUiKSAmJiBlbCA9M0Q9
M0Q9M0QgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCk9CiB7CisgICAgICAgICAgICAgICAgc29tZXRp
bWVzIG1vZGFscyBvciBvdGhlcnMgbGlzdGVuZXJzIG1heSBzdGVhbCBpdCBhZnRlciBpdD0KcyBz
ZXQgKi8KKyAgICAgICAgICAgIHZhciBpc1Zpc2libGUgPTNEIChlbC5vZmZzZXRXaWR0aCA+IDAg
fHwgZWwub2Zmc2V0SGVpZ2h0ID4gMCk7CisgICAgICAgICAgICBpZiAoaXNWaXNpYmxlICYmIGVs
ID0zRD0zRD0zRCBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7Cj0yMAogICAgICAgICAgICAgICAg
IC8qIGFmdGVyIHRoZSBmb2N1cyBpcyBzZXQgbW92ZSB0aGUgY2FyZXQgdG8gdGhlIGVuZCwgbmVj
ZXM9CnNhcnkgd2hlbiB3ZSB2YWwoKQogICAgICAgICAgICAgICAgICAgICBqdXN0IGJlZm9yZSBz
ZXR0aW5nIGZvY3VzICovCkBAIC0zMzMsMjcgKzMyMCwzNCBAQAogICAgIGZ1bmN0aW9uIHN5bmND
c3NDbGFzc2VzKGRlc3QsIHNyYywgYWRhcHRlcikgewogICAgICAgICB2YXIgY2xhc3NlcywgcmVw
bGFjZW1lbnRzID0zRCBbXSwgYWRhcHRlZDsKPTIwCi0gICAgICAgIGNsYXNzZXMgPTNEIGRlc3Qu
YXR0cigiY2xhc3MiKTsKKyAgICAgICAgY2xhc3NlcyA9M0QgJC50cmltKGRlc3QuYXR0cigiY2xh
c3MiKSk7CisKICAgICAgICAgaWYgKGNsYXNzZXMpIHsKICAgICAgICAgICAgIGNsYXNzZXMgPTNE
ICcnICsgY2xhc3NlczsgLy8gZm9yIElFIHdoaWNoIHJldHVybnMgb2JqZWN0Ci0gICAgICAgICAg
ICAkKGNsYXNzZXMuc3BsaXQoIiAiKSkuZWFjaDIoZnVuY3Rpb24oKSB7CisKKyAgICAgICAgICAg
ICQoY2xhc3Nlcy5zcGxpdCgvXHMrLykpLmVhY2gyKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIGlmICh0aGlzLmluZGV4T2YoInNlbGVjdDItIikgPTNEPTNEPTNEIDApIHsKICAgICAgICAg
ICAgICAgICAgICAgcmVwbGFjZW1lbnRzLnB1c2godGhpcyk7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KLSAgICAgICAgY2xhc3NlcyA9M0Qgc3JjLmF0dHIo
ImNsYXNzIik7CisKKyAgICAgICAgY2xhc3NlcyA9M0QgJC50cmltKHNyYy5hdHRyKCJjbGFzcyIp
KTsKKwogICAgICAgICBpZiAoY2xhc3NlcykgewogICAgICAgICAgICAgY2xhc3NlcyA9M0QgJycg
KyBjbGFzc2VzOyAvLyBmb3IgSUUgd2hpY2ggcmV0dXJucyBvYmplY3QKLSAgICAgICAgICAgICQo
Y2xhc3Nlcy5zcGxpdCgiICIpKS5lYWNoMihmdW5jdGlvbigpIHsKKworICAgICAgICAgICAgJChj
bGFzc2VzLnNwbGl0KC9ccysvKSkuZWFjaDIoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAg
aWYgKHRoaXMuaW5kZXhPZigic2VsZWN0Mi0iKSAhPTNEPTNEIDApIHsKICAgICAgICAgICAgICAg
ICAgICAgYWRhcHRlZCA9M0QgYWRhcHRlcih0aGlzKTsKKwogICAgICAgICAgICAgICAgICAgICBp
ZiAoYWRhcHRlZCkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRzLnB1c2go
dGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudHMucHVzaChhZGFwdGVk
KTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0pOwogICAgICAgICB9CisKICAgICAgICAgZGVzdC5hdHRyKCJjbGFzcyIsIHJlcGxhY2VtZW50
cy5qb2luKCIgIikpOwogICAgIH0KPTIwCkBAIC0zOTMsMTQgKzM4NywxNCBAQAogICAgIC8qKgog
ICAgICAqIFByb2R1Y2VzIGFuIGFqYXgtYmFzZWQgcXVlcnkgZnVuY3Rpb24KICAgICAgKgotICAg
ICAqIEBwYXJhbSBvcHRpb25zIG9iamVjdCBjb250YWluaW5nIGNvbmZpZ3VyYXRpb24gcGFyYW10
ZXJzCisgICAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IGNvbnRhaW5pbmcgY29uZmlndXJhdGlv
biBwYXJhbWV0ZXJzCiAgICAgICogQHBhcmFtIG9wdGlvbnMucGFyYW1zIHBhcmFtZXRlciBtYXAg
Zm9yIHRoZSB0cmFuc3BvcnQgYWpheCBjYWxsLCBjYT0KbiBjb250YWluIHN1Y2ggb3B0aW9ucyBh
cyBjYWNoZSwganNvbnBDYWxsYmFjaywgZXRjLiBzZWUgJC5hamF4CiAgICAgICogQHBhcmFtIG9w
dGlvbnMudHJhbnNwb3J0IGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGV4ZWN1dGUgdGhl
ID0KYWpheCByZXF1ZXN0LiBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCBwYXJhbWV0ZXJzIHN1cHBv
cnRlZCBieSAkLmFqYXgKICAgICAgKiBAcGFyYW0gb3B0aW9ucy51cmwgdXJsIGZvciB0aGUgZGF0
YQogICAgICAqIEBwYXJhbSBvcHRpb25zLmRhdGEgYSBmdW5jdGlvbihzZWFyY2hUZXJtLCBwYWdl
TnVtYmVyLCBjb250ZXh0KSB0aGE9CnQgc2hvdWxkIHJldHVybiBhbiBvYmplY3QgY29udGFpbmlu
ZyBxdWVyeSBzdHJpbmcgcGFyYW1ldGVycyBmb3IgdGhlIGFib3ZlID0KdXJsLgotICAgICAqIEBw
YXJhbSBvcHRpb25zLmRhdGFUeXBlIHJlcXVlc3QgZGF0YSB0eXBlOiBhamF4LCBqc29ucCwgb3Ro
ZXIgZGF0YXQ9CmF0eXBlcyBzdXBwb3J0ZWQgYnkgalF1ZXJ5J3MgJC5hamF4IGZ1bmN0aW9uIG9y
IHRoZSB0cmFuc3BvcnQgZnVuY3Rpb24gaWYgcz0KcGVjaWZpZWQKKyAgICAgKiBAcGFyYW0gb3B0
aW9ucy5kYXRhVHlwZSByZXF1ZXN0IGRhdGEgdHlwZTogYWpheCwganNvbnAsIG90aGVyIGRhdGF0
PQp5cGVzIHN1cHBvcnRlZCBieSBqUXVlcnkncyAkLmFqYXggZnVuY3Rpb24gb3IgdGhlIHRyYW5z
cG9ydCBmdW5jdGlvbiBpZiBzcGU9CmNpZmllZAogICAgICAqIEBwYXJhbSBvcHRpb25zLnF1aWV0
TWlsbGlzIChvcHRpb25hbCkgbWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIG09CmFraW5nIHRo
ZSBhamF4UmVxdWVzdCwgaGVscHMgZGVib3VuY2UgdGhlIGFqYXggZnVuY3Rpb24gaWYgaW52b2tl
ZCB0b28gb2Z0ZW4KLSAgICAgKiBAcGFyYW0gb3B0aW9ucy5yZXN1bHRzIGEgZnVuY3Rpb24ocmVt
b3RlRGF0YSwgcGFnZU51bWJlcikgdGhhdCBjb252PQplcnRzIGRhdGEgcmV0dXJuZWQgZm9ybSB0
aGUgcmVtb3RlIHJlcXVlc3QgdG8gdGhlIGZvcm1hdCBleHBlY3RlZCBieSBTZWxlY3Q9CjIuCisg
ICAgICogQHBhcmFtIG9wdGlvbnMucmVzdWx0cyBhIGZ1bmN0aW9uKHJlbW90ZURhdGEsIHBhZ2VO
dW1iZXIsIHF1ZXJ5KSB0aD0KYXQgY29udmVydHMgZGF0YSByZXR1cm5lZCBmb3JtIHRoZSByZW1v
dGUgcmVxdWVzdCB0byB0aGUgZm9ybWF0IGV4cGVjdGVkIGJ5PQogU2VsZWN0Mi4KICAgICAgKiAg
ICAgIFRoZSBleHBlY3RlZCBmb3JtYXQgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZvbGxv
d2luZyBrZXlzOgogICAgICAqICAgICAgcmVzdWx0cyBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2ls
bCBiZSB1c2VkIGFzIGNob2ljZXMKICAgICAgKiAgICAgIG1vcmUgKG9wdGlvbmFsKSBib29sZWFu
IGluZGljYXRpbmcgd2hldGhlciB0aGVyZSBhcmUgbW9yZSByZXN1PQpsdHMgYXZhaWxhYmxlCkBA
IC00MzEsNyArNDI1LDcgQEAKICAgICAgICAgICAgICAgICBkYXRhID0zRCBkYXRhID8gZGF0YS5j
YWxsKHNlbGYsIHF1ZXJ5LnRlcm0sIHF1ZXJ5LnBhZ2UsIHF1PQplcnkuY29udGV4dCkgOiBudWxs
OwogICAgICAgICAgICAgICAgIHVybCA9M0QgKHR5cGVvZiB1cmwgPTNEPTNEPTNEICdmdW5jdGlv
bicpID8gdXJsLmNhbGwoc2VsZiw9CiBxdWVyeS50ZXJtLCBxdWVyeS5wYWdlLCBxdWVyeS5jb250
ZXh0KSA6IHVybDsKPTIwCi0gICAgICAgICAgICAgICAgaWYgKGhhbmRsZXIpIHsgaGFuZGxlci5h
Ym9ydCgpOyB9CisgICAgICAgICAgICAgICAgaWYgKGhhbmRsZXIgJiYgdHlwZW9mIGhhbmRsZXIu
YWJvcnQgPTNEPTNEPTNEICJmdW5jdGlvbiIpID0KeyBoYW5kbGVyLmFib3J0KCk7IH0KPTIwCiAg
ICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICgkLmlzRnVuY3Rpb24ob3B0aW9ucy5wYXJhbXMpKSB7CkBAIC00NDcsNyArNDQxLDE4IEBA
CiAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsCiAgICAgICAgICAgICAgICAgICAgIHN1
Y2Nlc3M6IGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RP
IC0gcmVwbGFjZSBxdWVyeS5wYWdlIHdpdGggcXVlcnkgc28gdXNlcnMgaD0KYXZlIGFjY2VzcyB0
byB0ZXJtLCBwYWdlLCBldGMuCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9
M0Qgb3B0aW9ucy5yZXN1bHRzKGRhdGEsIHF1ZXJ5LnBhZ2UpOworICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gYWRkZWQgcXVlcnkgYXMgdGhpcmQgcGFyYW10ZXIgdG8ga2VlcCBiYWNrd2FyZHM9
CiBjb21wYXRpYmlsaXR5CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0cyA9M0Qg
b3B0aW9ucy5yZXN1bHRzKGRhdGEsIHF1ZXJ5LnBhZ2UsID0KcXVlcnkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcXVlcnkuY2FsbGJhY2socmVzdWx0cyk7CisgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihqcVhIUiwgdGV4dFN0YXR1
cywgZXJyb3JUaHJvd24peworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPTNE
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcjogdHJ1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBqcVhIUjoganFYSFIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGV4dFN0YXR1czogdGV4dFN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlcnJvclRocm93bjogZXJyb3JUaHJvd24sCisgICAgICAgICAgICAgICAgICAgICAgICB9Owor
CiAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeS5jYWxsYmFjayhyZXN1bHRzKTsKICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0pOwpAQCAtNDY0LDcgKzQ2OSw3IEBA
CiAgICAgICoKICAgICAgKiBJZiB0aGUgYXJyYXkgZm9ybSBpcyB1c2VkIGl0IGlzIGFzc3VtZWQg
dGhhdCBpdCBjb250YWlucyBvYmplY3RzIHdpPQp0aCAnaWQnIGFuZCAndGV4dCcga2V5cy4KICAg
ICAgKgotICAgICAqIElmIHRoZSBvYmplY3QgZm9ybSBpcyB1c2VkIHRpIGlzIGFzc3VtZWQgdGhh
dCBpdCBjb250YWlucyAnZGF0YScgYW49CmQgJ3RleHQnIGtleXMuIFRoZSAnZGF0YScga2V5IHNo
b3VsZCBjb250YWluCisgICAgICogSWYgdGhlIG9iamVjdCBmb3JtIGlzIHVzZWQgaXQgaXMgYXNz
dW1lZCB0aGF0IGl0IGNvbnRhaW5zICdkYXRhJyBhbj0KZCAndGV4dCcga2V5cy4gVGhlICdkYXRh
JyBrZXkgc2hvdWxkIGNvbnRhaW4KICAgICAgKiBhbiBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2ls
bCBiZSB1c2VkIGFzIGNob2ljZXMuIFRoZXNlIG9iamVjdHMgbXVzPQp0IGNvbnRhaW4gYXQgbGVh
c3QgYW4gJ2lkJyBrZXkuIFRoZSAndGV4dCcKICAgICAgKiBrZXkgY2FuIGVpdGhlciBiZSBhIFN0
cmluZyBpbiB3aGljaCBjYXNlIGl0IGlzIGV4cGVjdGVkIHRoYXQgZWFjaCBlPQpsZW1lbnQgaW4g
dGhlICdkYXRhJyBhcnJheSBoYXMgYSBrZXkgd2l0aCB0aGUKICAgICAgKiB2YWx1ZSBvZiAndGV4
dCcgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIG1hdGNoIGNob2ljZXMuIEFsdGVybmF0aXZlbHksPQog
dGV4dCBjYW4gYmUgYSBmdW5jdGlvbihpdGVtKSB0aGF0IGNhbiBleHRyYWN0CkBAIC01MzMsMTQg
KzUzOCwxNyBAQAogICAgICAgICB2YXIgaXNGdW5jID0zRCAkLmlzRnVuY3Rpb24oZGF0YSk7CiAg
ICAgICAgIHJldHVybiBmdW5jdGlvbiAocXVlcnkpIHsKICAgICAgICAgICAgIHZhciB0ID0zRCBx
dWVyeS50ZXJtLCBmaWx0ZXJlZCA9M0Qge3Jlc3VsdHM6IFtdfTsKLSAgICAgICAgICAgICQoaXNG
dW5jID8gZGF0YSgpIDogZGF0YSkuZWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAg
dmFyIGlzT2JqZWN0ID0zRCB0aGlzLnRleHQgIT0zRD0zRCB1bmRlZmluZWQsCi0gICAgICAgICAg
ICAgICAgICAgIHRleHQgPTNEIGlzT2JqZWN0ID8gdGhpcy50ZXh0IDogdGhpczsKLSAgICAgICAg
ICAgICAgICBpZiAodCA9M0Q9M0Q9M0QgIiIgfHwgcXVlcnkubWF0Y2hlcih0LCB0ZXh0KSkgewot
ICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZC5yZXN1bHRzLnB1c2goaXNPYmplY3QgPyB0aGlz
IDoge2lkOiB0aGlzLCB0ZXg9CnQ6IHRoaXN9KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIHF1ZXJ5LmNhbGxiYWNrKGZpbHRlcmVkKTsKKyAgICAgICAg
ICAgIHZhciByZXN1bHQgPTNEIGlzRnVuYyA/IGRhdGEocXVlcnkpIDogZGF0YTsKKyAgICAgICAg
ICAgIGlmICgkLmlzQXJyYXkocmVzdWx0KSkgeworICAgICAgICAgICAgICAgICQocmVzdWx0KS5l
YWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGlzT2JqZWN0ID0zRCB0
aGlzLnRleHQgIT0zRD0zRCB1bmRlZmluZWQsCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0
ID0zRCBpc09iamVjdCA/IHRoaXMudGV4dCA6IHRoaXM7CisgICAgICAgICAgICAgICAgICAgIGlm
ICh0ID0zRD0zRD0zRCAiIiB8fCBxdWVyeS5tYXRjaGVyKHQsIHRleHQpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmaWx0ZXJlZC5yZXN1bHRzLnB1c2goaXNPYmplY3QgPyB0aGlzIDoge2lk
OiB0aGlzLD0KIHRleHQ6IHRoaXN9KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHF1ZXJ5LmNhbGxiYWNrKGZpbHRlcmVkKTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgfTsKICAgICB9Cj0yMApAQCAtNTU1LDExICs1NjMsMjQgQEAK
ICAgICBmdW5jdGlvbiBjaGVja0Zvcm1hdHRlcihmb3JtYXR0ZXIsIGZvcm1hdHRlck5hbWUpIHsK
ICAgICAgICAgaWYgKCQuaXNGdW5jdGlvbihmb3JtYXR0ZXIpKSByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgaWYgKCFmb3JtYXR0ZXIpIHJldHVybiBmYWxzZTsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KGZvcm1hdHRlck5hbWUgKyIgbXVzdCBiZSBhIGZ1bmN0aW9uIG9yIGEgZmFsc3kgdmFsPQp1ZSIp
OworICAgICAgICBpZiAodHlwZW9mKGZvcm1hdHRlcikgPTNEPTNEPTNEICdzdHJpbmcnKSByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGZvcm1hdHRlck5hbWUgKyIgbXVzdCBi
ZSBhIHN0cmluZywgZnVuY3Rpb24sIG9yIGZhPQpsc3kgdmFsdWUiKTsKICAgICB9Cj0yMAotICAg
IGZ1bmN0aW9uIGV2YWx1YXRlKHZhbCkgewotICAgICAgICByZXR1cm4gJC5pc0Z1bmN0aW9uKHZh
bCkgPyB2YWwoKSA6IHZhbDsKKyAgLyoqCisgICAqIFJldHVybnMgYSBnaXZlbiB2YWx1ZQorICAg
KiBJZiBnaXZlbiBhIGZ1bmN0aW9uLCByZXR1cm5zIGl0cyBvdXRwdXQKKyAgICoKKyAgICogQHBh
cmFtIHZhbCBzdHJpbmd8ZnVuY3Rpb24KKyAgICogQHBhcmFtIGNvbnRleHQgdmFsdWUgb2YgInRo
aXMiIHRvIGJlIHBhc3NlZCB0byBmdW5jdGlvbgorICAgKiBAcmV0dXJucyB7Kn0KKyAgICovCisg
ICAgZnVuY3Rpb24gZXZhbHVhdGUodmFsLCBjb250ZXh0KSB7CisgICAgICAgIGlmICgkLmlzRnVu
Y3Rpb24odmFsKSkgeworICAgICAgICAgICAgdmFyIGFyZ3MgPTNEIEFycmF5LnByb3RvdHlwZS5z
bGljZS5jYWxsKGFyZ3VtZW50cywgMik7CisgICAgICAgICAgICByZXR1cm4gdmFsLmFwcGx5KGNv
bnRleHQsIGFyZ3MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWw7CiAgICAgfQo9MjAK
ICAgICBmdW5jdGlvbiBjb3VudFJlc3VsdHMocmVzdWx0cykgewpAQCAtNjI3LDYgKzY0OCwxNSBA
QAogICAgICAgICBpZiAob3JpZ2luYWwhPTNEPTNEaW5wdXQpIHJldHVybiBpbnB1dDsKICAgICB9
Cj0yMAorICAgIGZ1bmN0aW9uIGNsZWFudXBKUXVlcnlFbGVtZW50cygpIHsKKyAgICAgICAgdmFy
IHNlbGYgPTNEIHRoaXM7CisKKyAgICAgICAgJC5lYWNoKGFyZ3VtZW50cywgZnVuY3Rpb24gKGks
IGVsZW1lbnQpIHsKKyAgICAgICAgICAgIHNlbGZbZWxlbWVudF0ucmVtb3ZlKCk7CisgICAgICAg
ICAgICBzZWxmW2VsZW1lbnRdID0zRCBudWxsOworICAgICAgICB9KTsKKyAgICB9CisKICAgICAv
KioKICAgICAgKiBDcmVhdGVzIGEgbmV3IGNsYXNzCiAgICAgICoKQEAgLTY1NCw3ICs2ODQsNyBA
QAo9MjAKICAgICAgICAgLy8gYWJzdHJhY3QKICAgICAgICAgaW5pdDogZnVuY3Rpb24gKG9wdHMp
IHsKLSAgICAgICAgICAgIHZhciByZXN1bHRzLCBzZWFyY2gsIHJlc3VsdHNTZWxlY3RvciA9M0Qg
Ii5zZWxlY3QyLXJlc3VsdHMiLCBkPQppc2FibGVkLCByZWFkb25seTsKKyAgICAgICAgICAgIHZh
ciByZXN1bHRzLCBzZWFyY2gsIHJlc3VsdHNTZWxlY3RvciA9M0QgIi5zZWxlY3QyLXJlc3VsdHMi
Owo9MjAKICAgICAgICAgICAgIC8vIHByZXBhcmUgb3B0aW9ucwogICAgICAgICAgICAgdGhpcy5v
cHRzID0zRCBvcHRzID0zRCB0aGlzLnByZXBhcmVPcHRzKG9wdHMpOwpAQCAtNjY5LDE4ICs2OTks
MjggQEAKPTIwCiAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lciA9M0QgdGhpcy5jcmVhdGVDb250
YWluZXIoKTsKPTIwCisgICAgICAgICAgICB0aGlzLmxpdmVSZWdpb24gPTNEICQoIjxzcGFuPiIs
IHsKKyAgICAgICAgICAgICAgICAgICAgcm9sZTogInN0YXR1cyIsCisgICAgICAgICAgICAgICAg
ICAgICJhcmlhLWxpdmUiOiAicG9saXRlIgorICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAg
ICAgICAgLmFkZENsYXNzKCJzZWxlY3QyLWhpZGRlbi1hY2Nlc3NpYmxlIikKKyAgICAgICAgICAg
ICAgICAuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSk7CisKICAgICAgICAgICAgIHRoaXMuY29udGFp
bmVySWQ9M0QiczJpZF8iKyhvcHRzLmVsZW1lbnQuYXR0cigiaWQiKSB8fCAiYXV0b2dlPQpuIitu
ZXh0VWlkKCkpOwotICAgICAgICAgICAgdGhpcy5jb250YWluZXJTZWxlY3Rvcj0zRCIjIit0aGlz
LmNvbnRhaW5lcklkLnJlcGxhY2UoLyhbOyYsXC49ClwrXCpcfic6IlwhXF4jJCVAXFtcXVwoXCk9
M0Q+XHxdKS9nLCAnXFwkMScpOworICAgICAgICAgICAgdGhpcy5jb250YWluZXJFdmVudE5hbWU9
M0QgdGhpcy5jb250YWluZXJJZAorICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8oWy5dKS9nLCAn
XycpCisgICAgICAgICAgICAgICAgLnJlcGxhY2UoLyhbOyYsXC1cLlwrXCpcfic6IlwhXF4jJCVA
XFtcXVwoXCk9M0Q+XHxdKS9nLCAnXD0KXCQxJyk7CiAgICAgICAgICAgICB0aGlzLmNvbnRhaW5l
ci5hdHRyKCJpZCIsIHRoaXMuY29udGFpbmVySWQpOwo9MjAKLSAgICAgICAgICAgIC8vIGNhY2hl
IHRoZSBib2R5IHNvIGZ1dHVyZSBsb29rdXBzIGFyZSBjaGVhcAotICAgICAgICAgICAgdGhpcy5i
b2R5ID0zRCB0aHVuayhmdW5jdGlvbigpIHsgcmV0dXJuIG9wdHMuZWxlbWVudC5jbG9zZXN0KCI9
CmJvZHkiKTsgfSk7CisgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hdHRyKCJ0aXRsZSIsIG9w
dHMuZWxlbWVudC5hdHRyKCJ0aXRsZSIpKTsKKworICAgICAgICAgICAgdGhpcy5ib2R5ID0zRCAk
KCJib2R5Iik7Cj0yMAogICAgICAgICAgICAgc3luY0Nzc0NsYXNzZXModGhpcy5jb250YWluZXIs
IHRoaXMub3B0cy5lbGVtZW50LCB0aGlzLm9wdHMuYWQ9CmFwdENvbnRhaW5lckNzc0NsYXNzKTsK
PTIwCiAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hdHRyKCJzdHlsZSIsIG9wdHMuZWxlbWVu
dC5hdHRyKCJzdHlsZSIpKTsKLSAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmNzcyhldmFsdWF0
ZShvcHRzLmNvbnRhaW5lckNzcykpOwotICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkQ2xh
c3MoZXZhbHVhdGUob3B0cy5jb250YWluZXJDc3NDbGFzcykpOworICAgICAgICAgICAgdGhpcy5j
b250YWluZXIuY3NzKGV2YWx1YXRlKG9wdHMuY29udGFpbmVyQ3NzLCB0aGlzLm9wdHMuZWxlbWU9
Cm50KSk7CisgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRDbGFzcyhldmFsdWF0ZShvcHRz
LmNvbnRhaW5lckNzc0NsYXNzLCB0aGlzLj0Kb3B0cy5lbGVtZW50KSk7Cj0yMAogICAgICAgICAg
ICAgdGhpcy5lbGVtZW50VGFiSW5kZXggPTNEIHRoaXMub3B0cy5lbGVtZW50LmF0dHIoInRhYmlu
ZGV4Iik7Cj0yMApAQCAtNjk3LDcgKzczNyw3IEBACj0yMAogICAgICAgICAgICAgc3luY0Nzc0Ns
YXNzZXModGhpcy5kcm9wZG93biwgdGhpcy5vcHRzLmVsZW1lbnQsIHRoaXMub3B0cy5hZGE9CnB0
RHJvcGRvd25Dc3NDbGFzcyk7Cj0yMAotICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5hZGRDbGFz
cyhldmFsdWF0ZShvcHRzLmRyb3Bkb3duQ3NzQ2xhc3MpKTsKKyAgICAgICAgICAgIHRoaXMuZHJv
cGRvd24uYWRkQ2xhc3MoZXZhbHVhdGUob3B0cy5kcm9wZG93bkNzc0NsYXNzLCB0aGlzLm9wPQp0
cy5lbGVtZW50KSk7CiAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duLmRhdGEoInNlbGVjdDIiLCB0
aGlzKTsKICAgICAgICAgICAgIHRoaXMuZHJvcGRvd24ub24oImNsaWNrIiwga2lsbEV2ZW50KTsK
PTIwCkBAIC03MTQsNyArNzU0LDIzIEBACiAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5vbigi
Y2xpY2siLCBraWxsRXZlbnQpOwo9MjAKICAgICAgICAgICAgIGluc3RhbGxGaWx0ZXJlZE1vdXNl
TW92ZSh0aGlzLnJlc3VsdHMpOwotICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5vbigibW91c2Vt
b3ZlLWZpbHRlcmVkIHRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWM9CmhlbmQiLCByZXN1bHRzU2Vs
ZWN0b3IsIHRoaXMuYmluZCh0aGlzLmhpZ2hsaWdodFVuZGVyRXZlbnQpKTsKKworICAgICAgICAg
ICAgdGhpcy5kcm9wZG93bi5vbigibW91c2Vtb3ZlLWZpbHRlcmVkIiwgcmVzdWx0c1NlbGVjdG9y
LCB0aGlzLmI9CmluZCh0aGlzLmhpZ2hsaWdodFVuZGVyRXZlbnQpKTsKKyAgICAgICAgICAgIHRo
aXMuZHJvcGRvd24ub24oInRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWNoZW5kIiwgcmVzdWx0c1Nl
bGVjPQp0b3IsIHRoaXMuYmluZChmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICB0
aGlzLl90b3VjaEV2ZW50ID0zRCB0cnVlOworICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0
VW5kZXJFdmVudChldmVudCk7CisgICAgICAgICAgICB9KSk7CisgICAgICAgICAgICB0aGlzLmRy
b3Bkb3duLm9uKCJ0b3VjaG1vdmUiLCByZXN1bHRzU2VsZWN0b3IsIHRoaXMuYmluZCh0aGlzLj0K
dG91Y2hNb3ZlZCkpOworICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5vbigidG91Y2hzdGFydCB0
b3VjaGVuZCIsIHJlc3VsdHNTZWxlY3RvciwgdGhpcy49CmJpbmQodGhpcy5jbGVhclRvdWNoTW92
ZWQpKTsKKworICAgICAgICAgICAgLy8gV2FpdGluZyBmb3IgYSBjbGljayBldmVudCBvbiB0b3Vj
aCBkZXZpY2VzIHRvIHNlbGVjdCBvcHRpb249CiBhbmQgaGlkZSBkcm9wZG93bgorICAgICAgICAg
ICAgLy8gb3RoZXJ3aXNlIGNsaWNrIHdpbGwgYmUgdHJpZ2dlcmVkIG9uIGFuIHVuZGVybHlpbmcg
ZWxlbWVudAorICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5vbignY2xpY2snLCB0aGlzLmJpbmQo
ZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RvdWNoRXZlbnQp
IHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fdG91Y2hFdmVudCA9M0QgZmFsc2U7CisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SGlnaGxpZ2h0ZWQoKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9KSk7Cj0yMAogICAgICAgICAgICAgaW5zdGFsbERlYm91bmNlZFNj
cm9sbCg4MCwgdGhpcy5yZXN1bHRzKTsKICAgICAgICAgICAgIHRoaXMuZHJvcGRvd24ub24oInNj
cm9sbC1kZWJvdW5jZWQiLCByZXN1bHRzU2VsZWN0b3IsIHRoaXMuYmluPQpkKHRoaXMubG9hZE1v
cmVJZk5lZWRlZCkpOwpAQCAtNzI2LDcgKzc4Miw3IEBACiAgICAgICAgICAgICAvLyBpZiBqcXVl
cnkubW91c2V3aGVlbCBwbHVnaW4gaXMgaW5zdGFsbGVkIHdlIGNhbiBwcmV2ZW50IG91dD0KLW9m
LWJvdW5kcyBzY3JvbGxpbmcgb2YgcmVzdWx0cyB2aWEgbW91c2V3aGVlbAogICAgICAgICAgICAg
aWYgKCQuZm4ubW91c2V3aGVlbCkgewogICAgICAgICAgICAgICAgIHJlc3VsdHMubW91c2V3aGVl
bChmdW5jdGlvbiAoZSwgZGVsdGEsIGRlbHRhWCwgZGVsdGFZKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHZhciB0b3AgPTNEIHJlc3VsdHMuc2Nyb2xsVG9wKCksIGhlaWdodDsKKyAgICAgICAgICAg
ICAgICAgICAgdmFyIHRvcCA9M0QgcmVzdWx0cy5zY3JvbGxUb3AoKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGRlbHRhWSA+IDAgJiYgdG9wIC0gZGVsdGFZIDw9M0QgMCkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0cy5zY3JvbGxUb3AoMCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBraWxsRXZlbnQoZSk7CkBAIC03NTIsNyArODA4LDEwIEBACiAgICAgICAgICAgICAvLyB0
cmFwIGFsbCBtb3VzZSBldmVudHMgZnJvbSBsZWF2aW5nIHRoZSBkcm9wZG93bi4gc29tZXRpbWVz
ID0KdGhlcmUgbWF5IGJlIGEgbW9kYWwgdGhhdCBpcyBsaXN0ZW5pbmcKICAgICAgICAgICAgIC8v
IGZvciBtb3VzZSBldmVudHMgb3V0c2lkZSBvZiBpdHNlbGYgc28gaXQgY2FuIGNsb3NlIGl0c2Vs
Zi4gPQpzaW5jZSB0aGUgZHJvcGRvd24gaXMgbm93IG91dHNpZGUgdGhlIHNlbGVjdDIncwogICAg
ICAgICAgICAgLy8gZG9tIGl0IHdpbGwgdHJpZ2dlciB0aGUgcG9wdXAgY2xvc2UsIHdoaWNoIGlz
IG5vdCB3aGF0IHdlIHc9CmFudAotICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5vbigiY2xpY2sg
bW91c2V1cCBtb3VzZWRvd24iLCBmdW5jdGlvbiAoZSkgeyBlLnM9CnRvcFByb3BhZ2F0aW9uKCk7
IH0pOworICAgICAgICAgICAgLy8gZm9jdXNpbiBjYW4gY2F1c2UgZm9jdXMgd2FycyBiZXR3ZWVu
IG1vZGFscyBhbmQgc2VsZWN0MiBzaW49CmNlIHRoZSBkcm9wZG93biBpcyBvdXRzaWRlIHRoZSBt
b2RhbC4KKyAgICAgICAgICAgIHRoaXMuZHJvcGRvd24ub24oImNsaWNrIG1vdXNldXAgbW91c2Vk
b3duIHRvdWNoc3RhcnQgdG91Y2hlbmQgPQpmb2N1c2luIiwgZnVuY3Rpb24gKGUpIHsgZS5zdG9w
UHJvcGFnYXRpb24oKTsgfSk7CisKKyAgICAgICAgICAgIHRoaXMubmV4dFNlYXJjaFRlcm0gPTNE
IHVuZGVmaW5lZDsKPTIwCiAgICAgICAgICAgICBpZiAoJC5pc0Z1bmN0aW9uKHRoaXMub3B0cy5p
bml0U2VsZWN0aW9uKSkgewogICAgICAgICAgICAgICAgIC8vIGluaXRpYWxpemUgc2VsZWN0aW9u
IGJhc2VkIG9uIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSA9CnNvdXJjZSBlbGVtZW50CkBAIC03
ODIsMTkgKzg0MSwyOSBAQAogICAgICAgICAgICAgb3B0cy5lbGVtZW50LnByb3AoImF1dG9mb2N1
cyIsIGZhbHNlKTsKICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9mb2N1cykgdGhpcy5mb2N1cygp
Owo9MjAKLSAgICAgICAgICAgIHRoaXMubmV4dFNlYXJjaFRlcm0gPTNEIHVuZGVmaW5lZDsKKyAg
ICAgICAgICAgIHRoaXMuc2VhcmNoLmF0dHIoInBsYWNlaG9sZGVyIiwgb3B0cy5zZWFyY2hJbnB1
dFBsYWNlaG9sZGVyKTsKICAgICAgICAgfSwKPTIwCiAgICAgICAgIC8vIGFic3RyYWN0CiAgICAg
ICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHZhciBlbGVtZW50PTNEdGhp
cy5vcHRzLmVsZW1lbnQsIHNlbGVjdDIgPTNEIGVsZW1lbnQuZGF0YSgic2VsPQplY3QyIik7Cisg
ICAgICAgICAgICB2YXIgZWxlbWVudD0zRHRoaXMub3B0cy5lbGVtZW50LCBzZWxlY3QyID0zRCBl
bGVtZW50LmRhdGEoInNlbD0KZWN0MiIpLCBzZWxmID0zRCB0aGlzOwo9MjAKICAgICAgICAgICAg
IHRoaXMuY2xvc2UoKTsKPTIwCi0gICAgICAgICAgICBpZiAodGhpcy5wcm9wZXJ0eU9ic2VydmVy
KSB7IGRlbGV0ZSB0aGlzLnByb3BlcnR5T2JzZXJ2ZXI7IHRoaT0Kcy5wcm9wZXJ0eU9ic2VydmVy
ID0zRCBudWxsOyB9CisgICAgICAgICAgICBpZiAoZWxlbWVudC5sZW5ndGggJiYgZWxlbWVudFsw
XS5kZXRhY2hFdmVudCkgeworICAgICAgICAgICAgICAgIGVsZW1lbnQuZWFjaChmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFu
Z2UiLCBzZWxmLl9zeW5jKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5T2JzZXJ2ZXIpIHsKKyAgICAgICAgICAgICAgICB0
aGlzLnByb3BlcnR5T2JzZXJ2ZXIuZGlzY29ubmVjdCgpOworICAgICAgICAgICAgICAgIHRoaXMu
cHJvcGVydHlPYnNlcnZlciA9M0QgbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRo
aXMuX3N5bmMgPTNEIG51bGw7Cj0yMAogICAgICAgICAgICAgaWYgKHNlbGVjdDIgIT0zRD0zRCB1
bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICBzZWxlY3QyLmNvbnRhaW5lci5yZW1vdmUoKTsK
KyAgICAgICAgICAgICAgICBzZWxlY3QyLmxpdmVSZWdpb24ucmVtb3ZlKCk7CiAgICAgICAgICAg
ICAgICAgc2VsZWN0Mi5kcm9wZG93bi5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICBlbGVtZW50
CiAgICAgICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcygic2VsZWN0Mi1vZmZzY3JlZW4iKQpA
QCAtODA4LDYgKzg3NywxNCBAQAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBl
bGVtZW50LnNob3coKTsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2xlYW51cEpRdWVy
eUVsZW1lbnRzLmNhbGwodGhpcywKKyAgICAgICAgICAgICAgICAiY29udGFpbmVyIiwKKyAgICAg
ICAgICAgICAgICAibGl2ZVJlZ2lvbiIsCisgICAgICAgICAgICAgICAgImRyb3Bkb3duIiwKKyAg
ICAgICAgICAgICAgICAicmVzdWx0cyIsCisgICAgICAgICAgICAgICAgInNlYXJjaCIKKyAgICAg
ICAgICAgICk7CiAgICAgICAgIH0sCj0yMAogICAgICAgICAvLyBhYnN0cmFjdApAQCAtODUyLDcg
KzkyOSw3IEBACj0yMAogICAgICAgICAgICAgb3B0cyA9M0QgJC5leHRlbmQoe30sIHsKICAgICAg
ICAgICAgICAgICBwb3B1bGF0ZVJlc3VsdHM6IGZ1bmN0aW9uKGNvbnRhaW5lciwgcmVzdWx0cywg
cXVlcnkpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHBvcHVsYXRlLCAgZGF0YSwgcmVzdWx0
LCBjaGlsZHJlbiwgaWQ9M0R0aGlzLm9wdHMuPQppZDsKKyAgICAgICAgICAgICAgICAgICAgdmFy
IHBvcHVsYXRlLCBpZD0zRHRoaXMub3B0cy5pZCwgbGl2ZVJlZ2lvbj0zRHRoaXMubGl2PQplUmVn
aW9uOwo9MjAKICAgICAgICAgICAgICAgICAgICAgcG9wdWxhdGU9M0RmdW5jdGlvbihyZXN1bHRz
LCBjb250YWluZXIsIGRlcHRoKSB7Cj0yMApAQCAtODYwLDYgKzkzNyw4IEBACj0yMAogICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0cyA9M0Qgb3B0cy5zb3J0UmVzdWx0cyhyZXN1bHRzLCBj
b250YWluZXIsIHE9CnVlcnkpOwo9MjAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbGxl
Y3QgdGhlIGNyZWF0ZWQgbm9kZXMgZm9yIGJ1bGsgYXBwZW5kCisgICAgICAgICAgICAgICAgICAg
ICAgICB2YXIgbm9kZXMgPTNEIFtdOwogICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0z
RCAwLCBsID0zRCByZXN1bHRzLmxlbmd0aDsgaSA8IGw7IGkgPTNEIGk9CiArIDEpIHsKPTIwCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PTNEcmVzdWx0c1tpXTsKQEAgLTg3Niwx
NiArOTU1LDE5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpc2FibGVkKSB7
IG5vZGUuYWRkQ2xhc3MoInNlbGVjdDItZGlzYWJsZT0KZCIpOyB9CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKGNvbXBvdW5kKSB7IG5vZGUuYWRkQ2xhc3MoInNlbGVjdDItcmVzdWx0
LT0Kd2l0aC1jaGlsZHJlbiIpOyB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5h
ZGRDbGFzcyhzZWxmLm9wdHMuZm9ybWF0UmVzdWx0Q3NzQ2xhc3Mocj0KZXN1bHQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBub2RlLmF0dHIoInJvbGUiLCAicHJlc2VudGF0aW9uIik7
Cj0yMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPTNEJChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwuYWRk
Q2xhc3MoInNlbGVjdDItcmVzdWx0LWxhYmVsIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGFiZWwuYXR0cigiaWQiLCAic2VsZWN0Mi1yZXN1bHQtbGFiZWwtIiArIG5leD0KdFVpZCgp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbC5hdHRyKCJyb2xlIiwgIm9wdGlv
biIpOwo9MjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWQ9M0RvcHRzLmZv
cm1hdFJlc3VsdChyZXN1bHQsIGxhYmVsLCBxPQp1ZXJ5LCBzZWxmLm9wdHMuZXNjYXBlTWFya3Vw
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWF0dGVkIT0zRD0zRHVuZGVm
aW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbC5odG1sKGZvcm1h
dHRlZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuYXBwZW5kKGxhYmVs
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cj0yMAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vZGUuYXBwZW5kKGxhYmVsKTsKPTIwCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGNvbXBvdW5kKSB7Cj0yMApAQCAtODk2LDggKzk3OCwxMiBAQAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KPTIwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9k
ZS5kYXRhKCJzZWxlY3QyLWRhdGEiLCByZXN1bHQpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRhaW5lci5hcHBlbmQobm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bm9kZXMucHVzaChub2RlWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gYnVsayBhcHBlbmQgdGhlIGNyZWF0ZWQgbm9kZXMKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmQobm9kZXMpOworICAgICAgICAgICAg
ICAgICAgICAgICAgbGl2ZVJlZ2lvbi50ZXh0KG9wdHMuZm9ybWF0TWF0Y2hlcyhyZXN1bHRzLmxl
bmd0aCk9Cik7CiAgICAgICAgICAgICAgICAgICAgIH07Cj0yMAogICAgICAgICAgICAgICAgICAg
ICBwb3B1bGF0ZShyZXN1bHRzLCBjb250YWluZXIsIDApOwpAQCAtOTUxLDkgKzEwMzcsOCBAQAo9
MjAKICAgICAgICAgICAgICAgICAgICAgcXVlcnkuY2FsbGJhY2soZGF0YSk7CiAgICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBpbnNp
ZGUgdmFsKCkgd2UgY29uc3RydWN0IGNob2ljZT0KcyBmcm9tIG9wdGlvbnMgYW5kIHRoZXJlIGlk
IGlzIGhhcmRjb2RlZAorICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ug
aW5zaWRlIHZhbCgpIHdlIGNvbnN0cnVjdCBjaG9pY2U9CnMgZnJvbSBvcHRpb25zIGFuZCB0aGVp
ciBpZCBpcyBoYXJkY29kZWQKICAgICAgICAgICAgICAgICBvcHRzLmlkPTNEZnVuY3Rpb24oZSkg
eyByZXR1cm4gZS5pZDsgfTsKLSAgICAgICAgICAgICAgICBvcHRzLmZvcm1hdFJlc3VsdENzc0Ns
YXNzID0zRCBmdW5jdGlvbihkYXRhKSB7IHJldHVybiBkYXRhPQouY3NzOyB9OwogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoISgicXVlcnkiIGluIG9wdHMpKSB7Cj0y
MApAQCAtOTkxLDYgKzEwNzYsMTYgQEAKICAgICAgICAgICAgICAgICB0aHJvdyAicXVlcnkgZnVu
Y3Rpb24gbm90IGRlZmluZWQgZm9yIFNlbGVjdDIgIiArIG9wdHMuZWxlPQptZW50LmF0dHIoImlk
Iik7CiAgICAgICAgICAgICB9Cj0yMAorICAgICAgICAgICAgaWYgKG9wdHMuY3JlYXRlU2VhcmNo
Q2hvaWNlUG9zaXRpb24gPTNEPTNEPTNEICd0b3AnKSB7CisgICAgICAgICAgICAgICAgb3B0cy5j
cmVhdGVTZWFyY2hDaG9pY2VQb3NpdGlvbiA9M0QgZnVuY3Rpb24obGlzdCwgaXRlbSkgez0KIGxp
c3QudW5zaGlmdChpdGVtKTsgfTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYg
KG9wdHMuY3JlYXRlU2VhcmNoQ2hvaWNlUG9zaXRpb24gPTNEPTNEPTNEICdib3R0b20nKSB7Cisg
ICAgICAgICAgICAgICAgb3B0cy5jcmVhdGVTZWFyY2hDaG9pY2VQb3NpdGlvbiA9M0QgZnVuY3Rp
b24obGlzdCwgaXRlbSkgez0KIGxpc3QucHVzaChpdGVtKTsgfTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZihvcHRzLmNyZWF0ZVNlYXJjaENob2ljZVBvc2l0aW9u
KSAhPTNEPTNEICJmdW5jPQp0aW9uIikgIHsKKyAgICAgICAgICAgICAgICB0aHJvdyAiaW52YWxp
ZCBjcmVhdGVTZWFyY2hDaG9pY2VQb3NpdGlvbiBvcHRpb24gbXVzdCBiZSAnPQp0b3AnLCAnYm90
dG9tJyBvciBhIGN1c3RvbSBmdW5jdGlvbiI7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAg
IHJldHVybiBvcHRzOwogICAgICAgICB9LAo9MjAKQEAgLTk5OSw3ICsxMDk0LDcgQEAKICAgICAg
ICAgICovCiAgICAgICAgIC8vIGFic3RyYWN0CiAgICAgICAgIG1vbml0b3JTb3VyY2U6IGZ1bmN0
aW9uICgpIHsKLSAgICAgICAgICAgIHZhciBlbCA9M0QgdGhpcy5vcHRzLmVsZW1lbnQsIHN5bmM7
CisgICAgICAgICAgICB2YXIgZWwgPTNEIHRoaXMub3B0cy5lbGVtZW50LCBvYnNlcnZlciwgc2Vs
ZiA9M0QgdGhpczsKPTIwCiAgICAgICAgICAgICBlbC5vbigiY2hhbmdlLnNlbGVjdDIiLCB0aGlz
LmJpbmQoZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRzLmVsZW1l
bnQuZGF0YSgic2VsZWN0Mi1jaGFuZ2UtdHJpZ2dlcmVkIikgIT0KPTNEPTNEIHRydWUpIHsKQEAg
LTEwMDcsOSArMTEwMiw3IEBACiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSkpOwo9
MjAKLSAgICAgICAgICAgIHN5bmMgPTNEIHRoaXMuYmluZChmdW5jdGlvbiAoKSB7Ci0KLSAgICAg
ICAgICAgICAgICB2YXIgZW5hYmxlZCwgcmVhZG9ubHksIHNlbGYgPTNEIHRoaXM7CisgICAgICAg
ICAgICB0aGlzLl9zeW5jID0zRCB0aGlzLmJpbmQoZnVuY3Rpb24gKCkgewo9MjAKICAgICAgICAg
ICAgICAgICAvLyBzeW5jIGVuYWJsZWQgc3RhdGUKICAgICAgICAgICAgICAgICB2YXIgZGlzYWJs
ZWQgPTNEIGVsLnByb3AoImRpc2FibGVkIik7CkBAIC0xMDIxLDM1ICsxMTE0LDM0IEBACiAgICAg
ICAgICAgICAgICAgdGhpcy5yZWFkb25seShyZWFkb25seSk7Cj0yMAogICAgICAgICAgICAgICAg
IHN5bmNDc3NDbGFzc2VzKHRoaXMuY29udGFpbmVyLCB0aGlzLm9wdHMuZWxlbWVudCwgdGhpcy5v
cHQ9CnMuYWRhcHRDb250YWluZXJDc3NDbGFzcyk7Ci0gICAgICAgICAgICAgICAgdGhpcy5jb250
YWluZXIuYWRkQ2xhc3MoZXZhbHVhdGUodGhpcy5vcHRzLmNvbnRhaW5lckNzc0NsYT0Kc3MpKTsK
KyAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRDbGFzcyhldmFsdWF0ZSh0aGlzLm9w
dHMuY29udGFpbmVyQ3NzQ2xhPQpzcywgdGhpcy5vcHRzLmVsZW1lbnQpKTsKPTIwCiAgICAgICAg
ICAgICAgICAgc3luY0Nzc0NsYXNzZXModGhpcy5kcm9wZG93biwgdGhpcy5vcHRzLmVsZW1lbnQs
IHRoaXMub3B0cz0KLmFkYXB0RHJvcGRvd25Dc3NDbGFzcyk7Ci0gICAgICAgICAgICAgICAgdGhp
cy5kcm9wZG93bi5hZGRDbGFzcyhldmFsdWF0ZSh0aGlzLm9wdHMuZHJvcGRvd25Dc3NDbGFzcz0K
KSk7CisgICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5hZGRDbGFzcyhldmFsdWF0ZSh0aGlz
Lm9wdHMuZHJvcGRvd25Dc3NDbGFzcz0KLCB0aGlzLm9wdHMuZWxlbWVudCkpOwo9MjAKICAgICAg
ICAgICAgIH0pOwo9MjAKLSAgICAgICAgICAgIC8vIG1vemlsbGEgYW5kIElFCi0gICAgICAgICAg
ICBlbC5vbigicHJvcGVydHljaGFuZ2Uuc2VsZWN0MiBET01BdHRyTW9kaWZpZWQuc2VsZWN0MiIs
IHN5bmMpOwotCi0KLSAgICAgICAgICAgIC8vIGhvbGQgb250byBhIHJlZmVyZW5jZSBvZiB0aGUg
Y2FsbGJhY2sgdG8gd29yayBhcm91bmQgYSBjaHJvPQptaXVtIGJ1ZwotICAgICAgICAgICAgaWYg
KHRoaXMubXV0YXRpb25DYWxsYmFjayA9M0Q9M0Q9M0QgdW5kZWZpbmVkKSB7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5tdXRhdGlvbkNhbGxiYWNrID0zRCBmdW5jdGlvbiAobXV0YXRpb25zKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIG11dGF0aW9ucy5mb3JFYWNoKHN5bmMpOwotICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIC8vIElFOC0xMCAoSUU5LzEwIHdvbid0IGZpcmUgcHJvcGVydHlD
aGFuZ2UgdmlhIGF0dGFjaEV2ZW50TGlzPQp0ZW5lcikKKyAgICAgICAgICAgIGlmIChlbC5sZW5n
dGggJiYgZWxbMF0uYXR0YWNoRXZlbnQpIHsKKyAgICAgICAgICAgICAgICBlbC5lYWNoKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5
Y2hhbmdlIiwgc2VsZi5fc3luYyk7CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9
Cj0yMAotICAgICAgICAgICAgLy8gc2FmYXJpIGFuZCBjaHJvbWUKLSAgICAgICAgICAgIGlmICh0
eXBlb2YgV2ViS2l0TXV0YXRpb25PYnNlcnZlciAhPTNEPTNEICJ1bmRlZmluZWQiKSB7CisgICAg
ICAgICAgICAvLyBzYWZhcmksIGNocm9tZSwgZmlyZWZveCwgSUUxMQorICAgICAgICAgICAgb2Jz
ZXJ2ZXIgPTNEIHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyIHx8IHdpbmRvdy5XZWJLaXRNdXRhdGlv
bk89CmJzZXJ2ZXJ8fCB3aW5kb3cuTW96TXV0YXRpb25PYnNlcnZlcjsKKyAgICAgICAgICAgIGlm
IChvYnNlcnZlciAhPTNEPTNEIHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgIGlmICh0aGlz
LnByb3BlcnR5T2JzZXJ2ZXIpIHsgZGVsZXRlIHRoaXMucHJvcGVydHlPYnNlcnZlcjs9CiB0aGlz
LnByb3BlcnR5T2JzZXJ2ZXIgPTNEIG51bGw7IH0KLSAgICAgICAgICAgICAgICB0aGlzLnByb3Bl
cnR5T2JzZXJ2ZXIgPTNEIG5ldyBXZWJLaXRNdXRhdGlvbk9ic2VydmVyKHRoaXMuPQptdXRhdGlv
bkNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICB0aGlzLnByb3BlcnR5T2JzZXJ2ZXIgPTNEIG5l
dyBvYnNlcnZlcihmdW5jdGlvbiAobXV0YXRpb25zPQopIHsKKyAgICAgICAgICAgICAgICAgICAg
JC5lYWNoKG11dGF0aW9ucywgc2VsZi5fc3luYyk7CisgICAgICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eU9ic2VydmVyLm9ic2VydmUoZWwuZ2V0KDApLCB7IGF0
dHJpYnV0ZXM6dHJ1ZT0KLCBzdWJ0cmVlOmZhbHNlIH0pOwogICAgICAgICAgICAgfQogICAgICAg
ICB9LAo9MjAKICAgICAgICAgLy8gYWJzdHJhY3QKICAgICAgICAgdHJpZ2dlclNlbGVjdDogZnVu
Y3Rpb24oZGF0YSkgewotICAgICAgICAgICAgdmFyIGV2dCA9M0QgJC5FdmVudCgic2VsZWN0Mi1z
ZWxlY3RpbmciLCB7IHZhbDogdGhpcy5pZChkYXRhKSw9CiBvYmplY3Q6IGRhdGEgfSk7CisgICAg
ICAgICAgICB2YXIgZXZ0ID0zRCAkLkV2ZW50KCJzZWxlY3QyLXNlbGVjdGluZyIsIHsgdmFsOiB0
aGlzLmlkKGRhdGEpLD0KIG9iamVjdDogZGF0YSwgY2hvaWNlOiBkYXRhIH0pOwogICAgICAgICAg
ICAgdGhpcy5vcHRzLmVsZW1lbnQudHJpZ2dlcihldnQpOwogICAgICAgICAgICAgcmV0dXJuICFl
dnQuaXNEZWZhdWx0UHJldmVudGVkKCk7CiAgICAgICAgIH0sCkBAIC0xMDcxLDcgKzExNjMsNyBA
QAogICAgICAgICAgICAgLy8gc28gaGVyZSB3ZSB0cmlnZ2VyIHRoZSBjbGljayBldmVudCBtYW51
YWxseQogICAgICAgICAgICAgdGhpcy5vcHRzLmVsZW1lbnQuY2xpY2soKTsKPTIwCi0gICAgICAg
ICAgICAvLyBWYWxpZGF0aW9uRW5naW5lIGlnbm9yZWEgdGhlIGNoYW5nZSBldmVudCBhbmQgbGlz
dGVucyBpbnN0ZT0KYWQgdG8gYmx1cgorICAgICAgICAgICAgLy8gVmFsaWRhdGlvbkVuZ2luZSBp
Z25vcmVzIHRoZSBjaGFuZ2UgZXZlbnQgYW5kIGxpc3RlbnMgaW5zdGU9CmFkIHRvIGJsdXIKICAg
ICAgICAgICAgIC8vIHNvIGhlcmUgd2UgdHJpZ2dlciB0aGUgYmx1ciBldmVudCBtYW51YWxseSBp
ZiBzbyBkZXNpcmVkCiAgICAgICAgICAgICBpZiAodGhpcy5vcHRzLmJsdXJPbkNoYW5nZSkKICAg
ICAgICAgICAgICAgICB0aGlzLm9wdHMuZWxlbWVudC5ibHVyKCk7CkBAIC0xMTE1LDE3ICsxMjA3
LDE2IEBACiAgICAgICAgIC8vIGFic3RyYWN0CiAgICAgICAgIHJlYWRvbmx5OiBmdW5jdGlvbihl
bmFibGVkKSB7CiAgICAgICAgICAgICBpZiAoZW5hYmxlZCA9M0Q9M0Q9M0QgdW5kZWZpbmVkKSBl
bmFibGVkID0zRCBmYWxzZTsKLSAgICAgICAgICAgIGlmICh0aGlzLl9yZWFkb25seSA9M0Q9M0Q9
M0QgZW5hYmxlZCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKHRoaXMuX3JlYWRvbmx5
ID0zRD0zRD0zRCBlbmFibGVkKSByZXR1cm47CiAgICAgICAgICAgICB0aGlzLl9yZWFkb25seSA9
M0QgZW5hYmxlZDsKPTIwCiAgICAgICAgICAgICB0aGlzLm9wdHMuZWxlbWVudC5wcm9wKCJyZWFk
b25seSIsIGVuYWJsZWQpOwogICAgICAgICAgICAgdGhpcy5lbmFibGVJbnRlcmZhY2UoKTsKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9LAo9MjAKICAgICAgICAgLy8gYWJzdHJh
Y3QKICAgICAgICAgb3BlbmVkOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICByZXR1cm4gdGhp
cy5jb250YWluZXIuaGFzQ2xhc3MoInNlbGVjdDItZHJvcGRvd24tb3BlbiIpOworICAgICAgICAg
ICAgcmV0dXJuICh0aGlzLmNvbnRhaW5lcikgPyB0aGlzLmNvbnRhaW5lci5oYXNDbGFzcygic2Vs
ZWN0Mi1kcm89CnBkb3duLW9wZW4iKSA6IGZhbHNlOwogICAgICAgICB9LAo9MjAKICAgICAgICAg
Ly8gYWJzdHJhY3QKQEAgLTExMzUsMjAgKzEyMjYsNTggQEAKICAgICAgICAgICAgICAgICBoZWln
aHQgPTNEIHRoaXMuY29udGFpbmVyLm91dGVySGVpZ2h0KGZhbHNlKSwKICAgICAgICAgICAgICAg
ICB3aWR0aCA9M0QgdGhpcy5jb250YWluZXIub3V0ZXJXaWR0aChmYWxzZSksCiAgICAgICAgICAg
ICAgICAgZHJvcEhlaWdodCA9M0QgJGRyb3Bkb3duLm91dGVySGVpZ2h0KGZhbHNlKSwKLSAgICAg
ICAgICAgICAgICB2aWV3UG9ydFJpZ2h0ID0zRCAkKHdpbmRvdykuc2Nyb2xsTGVmdCgpICsgJCh3
aW5kb3cpLndpZHRoPQooKSwKLSAgICAgICAgICAgICAgICB2aWV3cG9ydEJvdHRvbSA9M0QgJCh3
aW5kb3cpLnNjcm9sbFRvcCgpICsgJCh3aW5kb3cpLmhlaWdoPQp0KCksCisgICAgICAgICAgICAg
ICAgJHdpbmRvdyA9M0QgJCh3aW5kb3cpLAorICAgICAgICAgICAgICAgIHdpbmRvd1dpZHRoID0z
RCAkd2luZG93LndpZHRoKCksCisgICAgICAgICAgICAgICAgd2luZG93SGVpZ2h0ID0zRCAkd2lu
ZG93LmhlaWdodCgpLAorICAgICAgICAgICAgICAgIHZpZXdQb3J0UmlnaHQgPTNEICR3aW5kb3cu
c2Nyb2xsTGVmdCgpICsgd2luZG93V2lkdGgsCisgICAgICAgICAgICAgICAgdmlld3BvcnRCb3R0
b20gPTNEICR3aW5kb3cuc2Nyb2xsVG9wKCkgKyB3aW5kb3dIZWlnaHQsCiAgICAgICAgICAgICAg
ICAgZHJvcFRvcCA9M0Qgb2Zmc2V0LnRvcCArIGhlaWdodCwKICAgICAgICAgICAgICAgICBkcm9w
TGVmdCA9M0Qgb2Zmc2V0LmxlZnQsCiAgICAgICAgICAgICAgICAgZW5vdWdoUm9vbUJlbG93ID0z
RCBkcm9wVG9wICsgZHJvcEhlaWdodCA8PTNEIHZpZXdwb3J0Qm90dD0Kb20sCi0gICAgICAgICAg
ICAgICAgZW5vdWdoUm9vbUFib3ZlID0zRCAob2Zmc2V0LnRvcCAtIGRyb3BIZWlnaHQpID49M0Qg
dGhpcy5ibz0KZHkoKS5zY3JvbGxUb3AoKSwKKyAgICAgICAgICAgICAgICBlbm91Z2hSb29tQWJv
dmUgPTNEIChvZmZzZXQudG9wIC0gZHJvcEhlaWdodCkgPj0zRCAkd2luZG93PQouc2Nyb2xsVG9w
KCksCiAgICAgICAgICAgICAgICAgZHJvcFdpZHRoID0zRCAkZHJvcGRvd24ub3V0ZXJXaWR0aChm
YWxzZSksCiAgICAgICAgICAgICAgICAgZW5vdWdoUm9vbU9uUmlnaHQgPTNEIGRyb3BMZWZ0ICsg
ZHJvcFdpZHRoIDw9M0Qgdmlld1BvcnRSaT0KZ2h0LAogICAgICAgICAgICAgICAgIGFib3ZlTm93
ID0zRCAkZHJvcGRvd24uaGFzQ2xhc3MoInNlbGVjdDItZHJvcC1hYm92ZSIpLAogICAgICAgICAg
ICAgICAgIGJvZHlPZmZzZXQsCiAgICAgICAgICAgICAgICAgYWJvdmUsCisgICAgICAgICAgICAg
ICAgY2hhbmdlRGlyZWN0aW9uLAogICAgICAgICAgICAgICAgIGNzcywKICAgICAgICAgICAgICAg
ICByZXN1bHRzTGlzdE5vZGU7Cj0yMAorICAgICAgICAgICAgLy8gYWx3YXlzIHByZWZlciB0aGUg
Y3VycmVudCBhYm92ZS9iZWxvdyBhbGlnbm1lbnQsIHVubGVzcyB0aGU9CnJlIGlzIG5vdCBlbm91
Z2ggcm9vbQorICAgICAgICAgICAgaWYgKGFib3ZlTm93KSB7CisgICAgICAgICAgICAgICAgYWJv
dmUgPTNEIHRydWU7CisgICAgICAgICAgICAgICAgaWYgKCFlbm91Z2hSb29tQWJvdmUgJiYgZW5v
dWdoUm9vbUJlbG93KSB7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZURpcmVjdGlvbiA9M0Qg
dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYWJvdmUgPTNEIGZhbHNlOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWJvdmUgPTNEIGZh
bHNlOworICAgICAgICAgICAgICAgIGlmICghZW5vdWdoUm9vbUJlbG93ICYmIGVub3VnaFJvb21B
Ym92ZSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEaXJlY3Rpb24gPTNEIHRydWU7Cisg
ICAgICAgICAgICAgICAgICAgIGFib3ZlID0zRCB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLy9pZiB3ZSBhcmUgY2hhbmdpbmcgZGlyZWN0aW9u
IHdlIG5lZWQgdG8gZ2V0IHBvc2l0aW9ucyB3aGVuIGQ9CnJvcGRvd24gaXMgaGlkZGVuOworICAg
ICAgICAgICAgaWYgKGNoYW5nZURpcmVjdGlvbikgeworICAgICAgICAgICAgICAgICRkcm9wZG93
bi5oaWRlKCk7CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0zRCB0aGlzLmNvbnRhaW5lci5vZmZz
ZXQoKTsKKyAgICAgICAgICAgICAgICBoZWlnaHQgPTNEIHRoaXMuY29udGFpbmVyLm91dGVySGVp
Z2h0KGZhbHNlKTsKKyAgICAgICAgICAgICAgICB3aWR0aCA9M0QgdGhpcy5jb250YWluZXIub3V0
ZXJXaWR0aChmYWxzZSk7CisgICAgICAgICAgICAgICAgZHJvcEhlaWdodCA9M0QgJGRyb3Bkb3du
Lm91dGVySGVpZ2h0KGZhbHNlKTsKKyAgICAgICAgICAgICAgICB2aWV3UG9ydFJpZ2h0ID0zRCAk
d2luZG93LnNjcm9sbExlZnQoKSArIHdpbmRvd1dpZHRoOworICAgICAgICAgICAgICAgIHZpZXdw
b3J0Qm90dG9tID0zRCAkd2luZG93LnNjcm9sbFRvcCgpICsgd2luZG93SGVpZ2h0OworICAgICAg
ICAgICAgICAgIGRyb3BUb3AgPTNEIG9mZnNldC50b3AgKyBoZWlnaHQ7CisgICAgICAgICAgICAg
ICAgZHJvcExlZnQgPTNEIG9mZnNldC5sZWZ0OworICAgICAgICAgICAgICAgIGRyb3BXaWR0aCA9
M0QgJGRyb3Bkb3duLm91dGVyV2lkdGgoZmFsc2UpOworICAgICAgICAgICAgICAgIGVub3VnaFJv
b21PblJpZ2h0ID0zRCBkcm9wTGVmdCArIGRyb3BXaWR0aCA8PTNEIHZpZXdQb3J0Umk9CmdodDsK
KyAgICAgICAgICAgICAgICAkZHJvcGRvd24uc2hvdygpOworCisgICAgICAgICAgICAgICAgLy8g
Zml4IHNvIHRoZSBjdXJzb3IgZG9lcyBub3QgbW92ZSB0byB0aGUgbGVmdCB3aXRoaW4gdGhlID0K
c2VhcmNoLXRleHRib3ggaW4gSUUKKyAgICAgICAgICAgICAgICB0aGlzLmZvY3VzU2VhcmNoKCk7
CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlmICh0aGlzLm9wdHMuZHJvcGRvd25BdXRv
V2lkdGgpIHsKICAgICAgICAgICAgICAgICByZXN1bHRzTGlzdE5vZGUgPTNEICQoJy5zZWxlY3Qy
LXJlc3VsdHMnLCAkZHJvcGRvd24pWzBdOwogICAgICAgICAgICAgICAgICRkcm9wZG93bi5hZGRD
bGFzcygnc2VsZWN0Mi1kcm9wLWF1dG8td2lkdGgnKTsKQEAgLTExNTYsNiArMTI4NSw3IEBACiAg
ICAgICAgICAgICAgICAgLy8gQWRkIHNjcm9sbGJhciB3aWR0aCB0byBkcm9wZG93biBpZiB2ZXJ0
aWNhbCBzY3JvbGxiYXIgaT0KcyBwcmVzZW50CiAgICAgICAgICAgICAgICAgZHJvcFdpZHRoID0z
RCAkZHJvcGRvd24ub3V0ZXJXaWR0aChmYWxzZSkgKyAocmVzdWx0c0xpc3RObz0KZGUuc2Nyb2xs
SGVpZ2h0ID0zRD0zRD0zRCByZXN1bHRzTGlzdE5vZGUuY2xpZW50SGVpZ2h0ID8gMCA6IHNjcm9s
bEJhckRpbWVuPQpzaW9ucy53aWR0aCk7CiAgICAgICAgICAgICAgICAgZHJvcFdpZHRoID4gd2lk
dGggPyB3aWR0aCA9M0QgZHJvcFdpZHRoIDogZHJvcFdpZHRoID0zRCB3aT0KZHRoOworICAgICAg
ICAgICAgICAgIGRyb3BIZWlnaHQgPTNEICRkcm9wZG93bi5vdXRlckhlaWdodChmYWxzZSk7CiAg
ICAgICAgICAgICAgICAgZW5vdWdoUm9vbU9uUmlnaHQgPTNEIGRyb3BMZWZ0ICsgZHJvcFdpZHRo
IDw9M0Qgdmlld1BvcnRSaT0KZ2h0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7
CkBAIC0xMTYzLDQzICsxMjkzLDM3IEBACiAgICAgICAgICAgICB9Cj0yMAogICAgICAgICAgICAg
Ly9jb25zb2xlLmxvZygiYmVsb3cvIGRyb3B0b3A6IiwgZHJvcFRvcCwgImRyb3BIZWlnaHQiLCBk
cm9wSGU9CmlnaHQsICJzdW0iLCAoZHJvcFRvcCtkcm9wSGVpZ2h0KSsiIHZpZXdwb3J0IGJvdHRv
bSIsIHZpZXdwb3J0Qm90dG9tLCAiZW5vdT0KZ2g/IiwgZW5vdWdoUm9vbUJlbG93KTsKLSAgICAg
ICAgICAgIC8vY29uc29sZS5sb2coImFib3ZlLyBvZmZzZXQudG9wIiwgb2Zmc2V0LnRvcCwgImRy
b3BIZWlnaHQiLCBkPQpyb3BIZWlnaHQsICJ0b3AiLCAob2Zmc2V0LnRvcC1kcm9wSGVpZ2h0KSwg
InNjcm9sbFRvcCIsIHRoaXMuYm9keSgpLnNjcm9sbFQ9Cm9wKCksICJlbm91Z2g/IiwgZW5vdWdo
Um9vbUFib3ZlKTsKKyAgICAgICAgICAgIC8vY29uc29sZS5sb2coImFib3ZlLyBvZmZzZXQudG9w
Iiwgb2Zmc2V0LnRvcCwgImRyb3BIZWlnaHQiLCBkPQpyb3BIZWlnaHQsICJ0b3AiLCAob2Zmc2V0
LnRvcC1kcm9wSGVpZ2h0KSwgInNjcm9sbFRvcCIsIHRoaXMuYm9keS5zY3JvbGxUb3A9CigpLCAi
ZW5vdWdoPyIsIGVub3VnaFJvb21BYm92ZSk7Cj0yMAogICAgICAgICAgICAgLy8gZml4IHBvc2l0
aW9uaW5nIHdoZW4gYm9keSBoYXMgYW4gb2Zmc2V0IGFuZCBpcyBub3QgcG9zaXRpb249Cjogc3Rh
dGljCi0gICAgICAgICAgICBpZiAodGhpcy5ib2R5KCkuY3NzKCdwb3NpdGlvbicpICE9M0Q9M0Qg
J3N0YXRpYycpIHsKLSAgICAgICAgICAgICAgICBib2R5T2Zmc2V0ID0zRCB0aGlzLmJvZHkoKS5v
ZmZzZXQoKTsKKyAgICAgICAgICAgIGlmICh0aGlzLmJvZHkuY3NzKCdwb3NpdGlvbicpICE9M0Q9
M0QgJ3N0YXRpYycpIHsKKyAgICAgICAgICAgICAgICBib2R5T2Zmc2V0ID0zRCB0aGlzLmJvZHku
b2Zmc2V0KCk7CiAgICAgICAgICAgICAgICAgZHJvcFRvcCAtPTNEIGJvZHlPZmZzZXQudG9wOwog
ICAgICAgICAgICAgICAgIGRyb3BMZWZ0IC09M0QgYm9keU9mZnNldC5sZWZ0OwogICAgICAgICAg
ICAgfQo9MjAKLSAgICAgICAgICAgIC8vIGFsd2F5cyBwcmVmZXIgdGhlIGN1cnJlbnQgYWJvdmUv
YmVsb3cgYWxpZ25tZW50LCB1bmxlc3MgdGhlPQpyZSBpcyBub3QgZW5vdWdoIHJvb20KLSAgICAg
ICAgICAgIGlmIChhYm92ZU5vdykgewotICAgICAgICAgICAgICAgIGFib3ZlID0zRCB0cnVlOwot
ICAgICAgICAgICAgICAgIGlmICghZW5vdWdoUm9vbUFib3ZlICYmIGVub3VnaFJvb21CZWxvdykg
YWJvdmUgPTNEIGZhbHNlOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBh
Ym92ZSA9M0QgZmFsc2U7Ci0gICAgICAgICAgICAgICAgaWYgKCFlbm91Z2hSb29tQmVsb3cgJiYg
ZW5vdWdoUm9vbUFib3ZlKSBhYm92ZSA9M0QgdHJ1ZTsKKyAgICAgICAgICAgIGlmICghZW5vdWdo
Um9vbU9uUmlnaHQpIHsKKyAgICAgICAgICAgICAgICBkcm9wTGVmdCA9M0Qgb2Zmc2V0LmxlZnQg
KyB0aGlzLmNvbnRhaW5lci5vdXRlcldpZHRoKGZhbHNlPQopIC0gZHJvcFdpZHRoOwogICAgICAg
ICAgICAgfQo9MjAKLSAgICAgICAgICAgIGlmICghZW5vdWdoUm9vbU9uUmlnaHQpIHsKLSAgICAg
ICAgICAgICAgIGRyb3BMZWZ0ID0zRCBvZmZzZXQubGVmdCArIHdpZHRoIC0gZHJvcFdpZHRoOwot
ICAgICAgICAgICAgfQorICAgICAgICAgICAgY3NzID0zRCAgeworICAgICAgICAgICAgICAgIGxl
ZnQ6IGRyb3BMZWZ0LAorICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aAorICAgICAgICAgICAg
fTsKPTIwCiAgICAgICAgICAgICBpZiAoYWJvdmUpIHsKLSAgICAgICAgICAgICAgICBkcm9wVG9w
ID0zRCBvZmZzZXQudG9wIC0gZHJvcEhlaWdodDsKKyAgICAgICAgICAgICAgICBjc3MudG9wID0z
RCBvZmZzZXQudG9wIC0gZHJvcEhlaWdodDsKKyAgICAgICAgICAgICAgICBjc3MuYm90dG9tID0z
RCAnYXV0byc7CiAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkQ2xhc3MoInNlbGVj
dDItZHJvcC1hYm92ZSIpOwogICAgICAgICAgICAgICAgICRkcm9wZG93bi5hZGRDbGFzcygic2Vs
ZWN0Mi1kcm9wLWFib3ZlIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBjc3MudG9wID0zRCBkcm9wVG9wOworICAgICAgICAgICAgICAgIGNzcy5i
b3R0b20gPTNEICdhdXRvJzsKICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5yZW1vdmVD
bGFzcygic2VsZWN0Mi1kcm9wLWFib3ZlIik7CiAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLnJl
bW92ZUNsYXNzKCJzZWxlY3QyLWRyb3AtYWJvdmUiKTsKICAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgY3NzID0zRCAkLmV4dGVuZCh7Ci0gICAgICAgICAgICAgICAgdG9wOiBkcm9wVG9wLAot
ICAgICAgICAgICAgICAgIGxlZnQ6IGRyb3BMZWZ0LAotICAgICAgICAgICAgICAgIHdpZHRoOiB3
aWR0aAotICAgICAgICAgICAgfSwgZXZhbHVhdGUodGhpcy5vcHRzLmRyb3Bkb3duQ3NzKSk7Cisg
ICAgICAgICAgICBjc3MgPTNEICQuZXh0ZW5kKGNzcywgZXZhbHVhdGUodGhpcy5vcHRzLmRyb3Bk
b3duQ3NzLCB0aGlzLm9wdD0Kcy5lbGVtZW50KSk7Cj0yMAogICAgICAgICAgICAgJGRyb3Bkb3du
LmNzcyhjc3MpOwogICAgICAgICB9LApAQCAtMTIzNyw2ICsxMzYxLDEyIEBACj0yMAogICAgICAg
ICAgICAgdGhpcy5vcGVuaW5nKCk7Cj0yMAorICAgICAgICAgICAgLy8gT25seSBiaW5kIHRoZSBk
b2N1bWVudCBtb3VzZW1vdmUgd2hlbiB0aGUgZHJvcGRvd24gaXMgdmlzaWI9CmxlCisgICAgICAg
ICAgICAkZG9jdW1lbnQub24oIm1vdXNlbW92ZS5zZWxlY3QyRXZlbnQiLCBmdW5jdGlvbiAoZSkg
eworICAgICAgICAgICAgICAgIGxhc3RNb3VzZVBvc2l0aW9uLnggPTNEIGUucGFnZVg7CisgICAg
ICAgICAgICAgICAgbGFzdE1vdXNlUG9zaXRpb24ueSA9M0QgZS5wYWdlWTsKKyAgICAgICAgICAg
IH0pOworCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfSwKPTIwCkBAIC0xMjQ1
LDM1ICsxMzc1LDM4IEBACiAgICAgICAgICAqLwogICAgICAgICAvLyBhYnN0cmFjdAogICAgICAg
ICBvcGVuaW5nOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHZhciBjaWQgPTNEIHRoaXMuY29u
dGFpbmVySWQsCisgICAgICAgICAgICB2YXIgY2lkID0zRCB0aGlzLmNvbnRhaW5lckV2ZW50TmFt
ZSwKICAgICAgICAgICAgICAgICBzY3JvbGwgPTNEICJzY3JvbGwuIiArIGNpZCwKICAgICAgICAg
ICAgICAgICByZXNpemUgPTNEICJyZXNpemUuIitjaWQsCiAgICAgICAgICAgICAgICAgb3JpZW50
ID0zRCAib3JpZW50YXRpb25jaGFuZ2UuIitjaWQsCi0gICAgICAgICAgICAgICAgbWFzaywgbWFz
a0NzczsKKyAgICAgICAgICAgICAgICBtYXNrOwo9MjAKICAgICAgICAgICAgIHRoaXMuY29udGFp
bmVyLmFkZENsYXNzKCJzZWxlY3QyLWRyb3Bkb3duLW9wZW4iKS5hZGRDbGFzcygic2VsPQplY3Qy
LWNvbnRhaW5lci1hY3RpdmUiKTsKPTIwCiAgICAgICAgICAgICB0aGlzLmNsZWFyRHJvcGRvd25B
bGlnbm1lbnRQcmVmZXJlbmNlKCk7Cj0yMAotICAgICAgICAgICAgaWYodGhpcy5kcm9wZG93blsw
XSAhPTNEPTNEIHRoaXMuYm9keSgpLmNoaWxkcmVuKCkubGFzdCgpWzBdKSB7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5kcm9wZG93bi5kZXRhY2goKS5hcHBlbmRUbyh0aGlzLmJvZHkoKSk7CisgICAg
ICAgICAgICBpZih0aGlzLmRyb3Bkb3duWzBdICE9M0Q9M0QgdGhpcy5ib2R5LmNoaWxkcmVuKCku
bGFzdCgpWzBdKSB7CisgICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5kZXRhY2goKS5hcHBl
bmRUbyh0aGlzLmJvZHkpOwogICAgICAgICAgICAgfQo9MjAKLSAgICAgICAgICAgIC8vIGNyZWF0
ZSB0aGUgZHJvcGRvd24gbWFzayBpZiBkb2VzbnQgYWxyZWFkeSBleGlzdAorICAgICAgICAgICAg
Ly8gY3JlYXRlIHRoZSBkcm9wZG93biBtYXNrIGlmIGRvZXNuJ3QgYWxyZWFkeSBleGlzdAogICAg
ICAgICAgICAgbWFzayA9M0QgJCgiI3NlbGVjdDItZHJvcC1tYXNrIik7CiAgICAgICAgICAgICBp
ZiAobWFzay5sZW5ndGggPTNEPTNEIDApIHsKICAgICAgICAgICAgICAgICBtYXNrID0zRCAkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKICAgICAgICAgICAgICAgICBtYXNrLmF0dHIo
ImlkIiwic2VsZWN0Mi1kcm9wLW1hc2siKS5hdHRyKCJjbGFzcyIsInNlbGVjdDItPQpkcm9wLW1h
c2siKTsKICAgICAgICAgICAgICAgICBtYXNrLmhpZGUoKTsKLSAgICAgICAgICAgICAgICBtYXNr
LmFwcGVuZFRvKHRoaXMuYm9keSgpKTsKKyAgICAgICAgICAgICAgICBtYXNrLmFwcGVuZFRvKHRo
aXMuYm9keSk7CiAgICAgICAgICAgICAgICAgbWFzay5vbigibW91c2Vkb3duIHRvdWNoc3RhcnQg
Y2xpY2siLCBmdW5jdGlvbiAoZSkgeworICAgICAgICAgICAgICAgICAgICAvLyBQcmV2ZW50IElF
IGZyb20gZ2VuZXJhdGluZyBhIGNsaWNrIGV2ZW50IG9uIHRoZSBib2R5CisgICAgICAgICAgICAg
ICAgICAgIHJlaW5zZXJ0RWxlbWVudChtYXNrKTsKKwogICAgICAgICAgICAgICAgICAgICB2YXIg
ZHJvcGRvd24gPTNEICQoIiNzZWxlY3QyLWRyb3AiKSwgc2VsZjsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKGRyb3Bkb3duLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGY9M0Rkcm9wZG93bi5kYXRhKCJzZWxlY3QyIik7CiAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoc2VsZi5vcHRzLnNlbGVjdE9uQmx1cikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuc2VsZWN0SGlnaGxpZ2h0ZWQoe25vRm9jdXM6IHRydWV9KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xvc2Uoe2ZvY3VzOmZh
bHNlfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNsb3NlKCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgICAgICB9CkBAIC0xMzAzLDcg
KzE0MzYsNyBAQAogICAgICAgICAgICAgdmFyIHRoYXQgPTNEIHRoaXM7CiAgICAgICAgICAgICB0
aGlzLmNvbnRhaW5lci5wYXJlbnRzKCkuYWRkKHdpbmRvdykuZWFjaChmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgJCh0aGlzKS5vbihyZXNpemUrIiAiK3Njcm9sbCsiICIrb3JpZW50LCBm
dW5jdGlvbiAoZSkgewotICAgICAgICAgICAgICAgICAgICB0aGF0LnBvc2l0aW9uRHJvcGRvd24o
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3BlbmVkKCkpIHRoYXQucG9zaXRpb25E
cm9wZG93bigpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7Cj0yMApAQCAt
MTMxNCw3ICsxNDQ3LDcgQEAKICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGlmICghdGhpcy5vcGVuZWQoKSkgcmV0dXJuOwo9MjAKLSAgICAgICAgICAgIHZhciBjaWQg
PTNEIHRoaXMuY29udGFpbmVySWQsCisgICAgICAgICAgICB2YXIgY2lkID0zRCB0aGlzLmNvbnRh
aW5lckV2ZW50TmFtZSwKICAgICAgICAgICAgICAgICBzY3JvbGwgPTNEICJzY3JvbGwuIiArIGNp
ZCwKICAgICAgICAgICAgICAgICByZXNpemUgPTNEICJyZXNpemUuIitjaWQsCiAgICAgICAgICAg
ICAgICAgb3JpZW50ID0zRCAib3JpZW50YXRpb25jaGFuZ2UuIitjaWQ7CkBAIC0xMzMwLDYgKzE0
NjMsOCBAQAogICAgICAgICAgICAgdGhpcy5jb250YWluZXIucmVtb3ZlQ2xhc3MoInNlbGVjdDIt
ZHJvcGRvd24tb3BlbiIpLnJlbW92ZUNsYXM9CnMoInNlbGVjdDItY29udGFpbmVyLWFjdGl2ZSIp
OwogICAgICAgICAgICAgdGhpcy5yZXN1bHRzLmVtcHR5KCk7Cj0yMAorICAgICAgICAgICAgLy8g
Tm93IHRoYXQgdGhlIGRyb3Bkb3duIGlzIGNsb3NlZCwgdW5iaW5kIHRoZSBnbG9iYWwgZG9jdW1l
bnQ9CiBtb3VzZW1vdmUgZXZlbnQKKyAgICAgICAgICAgICRkb2N1bWVudC5vZmYoIm1vdXNlbW92
ZS5zZWxlY3QyRXZlbnQiKTsKPTIwCiAgICAgICAgICAgICB0aGlzLmNsZWFyU2VhcmNoKCk7CiAg
ICAgICAgICAgICB0aGlzLnNlYXJjaC5yZW1vdmVDbGFzcygic2VsZWN0Mi1hY3RpdmUiKTsKQEAg
LTEzNTMsMTIgKzE0ODgsMTIgQEAKPTIwCiAgICAgICAgIC8vYWJzdHJhY3QKICAgICAgICAgZ2V0
TWF4aW11bVNlbGVjdGlvblNpemU6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgcmV0dXJuIGV2
YWx1YXRlKHRoaXMub3B0cy5tYXhpbXVtU2VsZWN0aW9uU2l6ZSk7CisgICAgICAgICAgICByZXR1
cm4gZXZhbHVhdGUodGhpcy5vcHRzLm1heGltdW1TZWxlY3Rpb25TaXplLCB0aGlzLm9wdHMuZWxl
bT0KZW50KTsKICAgICAgICAgfSwKPTIwCiAgICAgICAgIC8vIGFic3RyYWN0CiAgICAgICAgIGVu
c3VyZUhpZ2hsaWdodFZpc2libGU6IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHZhciByZXN1
bHRzID0zRCB0aGlzLnJlc3VsdHMsIGNoaWxkcmVuLCBpbmRleCwgY2hpbGQsIGhiLCByYiwgPQp5
LCBtb3JlOworICAgICAgICAgICAgdmFyIHJlc3VsdHMgPTNEIHRoaXMucmVzdWx0cywgY2hpbGRy
ZW4sIGluZGV4LCBjaGlsZCwgaGIsIHJiLCA9CnksIG1vcmUsIHRvcE9mZnNldDsKPTIwCiAgICAg
ICAgICAgICBpbmRleCA9M0QgdGhpcy5oaWdobGlnaHQoKTsKPTIwCkBAIC0xMzc4LDcgKzE1MTMs
OSBAQAo9MjAKICAgICAgICAgICAgIGNoaWxkID0zRCAkKGNoaWxkcmVuW2luZGV4XSk7Cj0yMAot
ICAgICAgICAgICAgaGIgPTNEIGNoaWxkLm9mZnNldCgpLnRvcCArIGNoaWxkLm91dGVySGVpZ2h0
KHRydWUpOworICAgICAgICAgICAgdG9wT2Zmc2V0ID0zRCAoY2hpbGQub2Zmc2V0KCkgfHwge30p
LnRvcCB8fCAwOworCisgICAgICAgICAgICBoYiA9M0QgdG9wT2Zmc2V0ICsgY2hpbGQub3V0ZXJI
ZWlnaHQodHJ1ZSk7Cj0yMAogICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyB0aGUgbGFzdCBjaGls
ZCBsZXRzIGFsc28gbWFrZSBzdXJlIHNlbGVjdDItbW9yZS09CnJlc3VsdHMgaXMgdmlzaWJsZQog
ICAgICAgICAgICAgaWYgKGluZGV4ID0zRD0zRD0zRCBjaGlsZHJlbi5sZW5ndGggLSAxKSB7CkBA
IC0xMzkyLDcgKzE1MjksNyBAQAogICAgICAgICAgICAgaWYgKGhiID4gcmIpIHsKICAgICAgICAg
ICAgICAgICByZXN1bHRzLnNjcm9sbFRvcChyZXN1bHRzLnNjcm9sbFRvcCgpICsgKGhiIC0gcmIp
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHkgPTNEIGNoaWxkLm9mZnNldCgpLnRvcCAt
IHJlc3VsdHMub2Zmc2V0KCkudG9wOworICAgICAgICAgICAgeSA9M0QgdG9wT2Zmc2V0IC0gcmVz
dWx0cy5vZmZzZXQoKS50b3A7Cj0yMAogICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSB0b3Ag
b2YgdGhlIGVsZW1lbnQgaXMgdmlzaWJsZQogICAgICAgICAgICAgaWYgKHkgPCAwICYmIGNoaWxk
LmNzcygnZGlzcGxheScpICE9M0QgJ25vbmUnICkgewpAQCAtMTQwMiw3ICsxNTM5LDcgQEAKPTIw
CiAgICAgICAgIC8vIGFic3RyYWN0CiAgICAgICAgIGZpbmRIaWdobGlnaHRhYmxlQ2hvaWNlczog
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXN1bHRzLmZpbmQoIi5zZWxl
Y3QyLXJlc3VsdC1zZWxlY3RhYmxlOm5vdCguc2VsZT0KY3QyLWRpc2FibGVkKSIpOworICAgICAg
ICAgICAgcmV0dXJuIHRoaXMucmVzdWx0cy5maW5kKCIuc2VsZWN0Mi1yZXN1bHQtc2VsZWN0YWJs
ZTpub3QoLnNlbGU9CmN0Mi1kaXNhYmxlZCk6bm90KC5zZWxlY3QyLXNlbGVjdGVkKSIpOwogICAg
ICAgICB9LAo9MjAKICAgICAgICAgLy8gYWJzdHJhY3QKQEAgLTE0MzgsOCArMTU3NSwxMyBAQAog
ICAgICAgICAgICAgY2hvaWNlID0zRCAkKGNob2ljZXNbaW5kZXhdKTsKICAgICAgICAgICAgIGNo
b2ljZS5hZGRDbGFzcygic2VsZWN0Mi1oaWdobGlnaHRlZCIpOwo9MjAKKyAgICAgICAgICAgIC8v
IGVuc3VyZSBhc3Npc3RpdmUgdGVjaG5vbG9neSBjYW4gZGV0ZXJtaW5lIHRoZSBhY3RpdmUgY2hv
aWNlCisgICAgICAgICAgICB0aGlzLnNlYXJjaC5hdHRyKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQi
LCBjaG9pY2UuZmluZCgiLnNlbGVjdD0KMi1yZXN1bHQtbGFiZWwiKS5hdHRyKCJpZCIpKTsKKwog
ICAgICAgICAgICAgdGhpcy5lbnN1cmVIaWdobGlnaHRWaXNpYmxlKCk7Cj0yMAorICAgICAgICAg
ICAgdGhpcy5saXZlUmVnaW9uLnRleHQoY2hvaWNlLnRleHQoKSk7CisKICAgICAgICAgICAgIGRh
dGEgPTNEIGNob2ljZS5kYXRhKCJzZWxlY3QyLWRhdGEiKTsKICAgICAgICAgICAgIGlmIChkYXRh
KSB7CiAgICAgICAgICAgICAgICAgdGhpcy5vcHRzLmVsZW1lbnQudHJpZ2dlcih7IHR5cGU6ICJz
ZWxlY3QyLWhpZ2hsaWdodCIsIHZhbD0KOiB0aGlzLmlkKGRhdGEpLCBjaG9pY2U6IGRhdGEgfSk7
CkBAIC0xNDUwLDYgKzE1OTIsMTQgQEAKICAgICAgICAgICAgIHRoaXMucmVzdWx0cy5maW5kKCIu
c2VsZWN0Mi1oaWdobGlnaHRlZCIpLnJlbW92ZUNsYXNzKCJzZWxlY3QyPQotaGlnaGxpZ2h0ZWQi
KTsKICAgICAgICAgfSwKPTIwCisgICAgICAgIHRvdWNoTW92ZWQ6IGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdGhpcy5fdG91Y2hNb3ZlZCA9M0QgdHJ1ZTsKKyAgICAgICAgfSwKKworICAgICAg
ICBjbGVhclRvdWNoTW92ZWQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHRoaXMuX3RvdWNoTW92
ZWQgPTNEIGZhbHNlOworICAgICAgICB9LAorCiAgICAgICAgIC8vIGFic3RyYWN0CiAgICAgICAg
IGNvdW50U2VsZWN0YWJsZVJlc3VsdHM6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgcmV0dXJu
IHRoaXMuZmluZEhpZ2hsaWdodGFibGVDaG9pY2VzKCkubGVuZ3RoOwpAQCAtMTQ3Miw3ICsxNjIy
LDYgQEAKICAgICAgICAgICAgIHZhciByZXN1bHRzID0zRCB0aGlzLnJlc3VsdHMsCiAgICAgICAg
ICAgICAgICAgbW9yZSA9M0QgcmVzdWx0cy5maW5kKCJsaS5zZWxlY3QyLW1vcmUtcmVzdWx0cyIp
LAogICAgICAgICAgICAgICAgIGJlbG93LCAvLyBwaXhlbHMgdGhlIGVsZW1lbnQgaXMgYmVsb3cg
dGhlIHNjcm9sbCBmb2xkLCBiZWw9Cm93PTNEPTNEMCBpcyB3aGVuIHRoZSBlbGVtZW50IGlzIHN0
YXJ0aW5nIHRvIGJlIHZpc2libGUKLSAgICAgICAgICAgICAgICBvZmZzZXQgPTNEIC0xLCAvLyBp
bmRleCBvZiBmaXJzdCBlbGVtZW50IHdpdGhvdXQgZGF0YQogICAgICAgICAgICAgICAgIHBhZ2Ug
PTNEIHRoaXMucmVzdWx0c1BhZ2UgKyAxLAogICAgICAgICAgICAgICAgIHNlbGY9M0R0aGlzLAog
ICAgICAgICAgICAgICAgIHRlcm09M0R0aGlzLnNlYXJjaC52YWwoKSwKQEAgLTE0OTksNyArMTY0
OCw3IEBACiAgICAgICAgICAgICAgICAgICAgIHNlbGYucG9zdHByb2Nlc3NSZXN1bHRzKGRhdGEs
IGZhbHNlLCBmYWxzZSk7Cj0yMAogICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5tb3JlPTNE
PTNEPTNEdHJ1ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbW9yZS5kZXRhY2goKS5hcHBl
bmRUbyhyZXN1bHRzKS50ZXh0KHNlbGYub3B0cy5mb3I9Cm1hdExvYWRNb3JlKHBhZ2UrMSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgbW9yZS5kZXRhY2goKS5hcHBlbmRUbyhyZXN1bHRzKS50
ZXh0KGV2YWx1YXRlKHNlbGY9Ci5vcHRzLmZvcm1hdExvYWRNb3JlLCBzZWxmLm9wdHMuZWxlbWVu
dCwgcGFnZSsxKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChm
dW5jdGlvbigpIHsgc2VsZi5sb2FkTW9yZUlmTmVlZD0KZWQoKTsgfSwgMTApOwogICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgbW9yZS5yZW1vdmUo
KTsKQEAgLTE1NDgsNiArMTY5NywxMiBAQAogICAgICAgICAgICAgZnVuY3Rpb24gcG9zdFJlbmRl
cigpIHsKICAgICAgICAgICAgICAgICBzZWFyY2gucmVtb3ZlQ2xhc3MoInNlbGVjdDItYWN0aXZl
Iik7CiAgICAgICAgICAgICAgICAgc2VsZi5wb3NpdGlvbkRyb3Bkb3duKCk7CisgICAgICAgICAg
ICAgICAgaWYgKHJlc3VsdHMuZmluZCgnLnNlbGVjdDItbm8tcmVzdWx0cywuc2VsZWN0Mi1zZWxl
Y3Rpb24tbD0KaW1pdCwuc2VsZWN0Mi1zZWFyY2hpbmcnKS5sZW5ndGgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5saXZlUmVnaW9uLnRleHQocmVzdWx0cy50ZXh0KCkpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5saXZlUmVnaW9uLnRleHQoc2VsZi5vcHRzLmZvcm1hdE1hdGNoZXMocmVzdWx0cy5mPQppbmQo
Jy5zZWxlY3QyLXJlc3VsdC1zZWxlY3RhYmxlJykubGVuZ3RoKSk7CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQo9MjAKICAgICAgICAgICAgIGZ1bmN0aW9uIHJlbmRlcihodG1sKSB7
CkBAIC0xNTYxLDE0ICsxNzE2LDE0IEBACiAgICAgICAgICAgICBpZiAobWF4U2VsU2l6ZSA+PTNE
MSkgewogICAgICAgICAgICAgICAgIGRhdGEgPTNEIHRoaXMuZGF0YSgpOwogICAgICAgICAgICAg
ICAgIGlmICgkLmlzQXJyYXkoZGF0YSkgJiYgZGF0YS5sZW5ndGggPj0zRCBtYXhTZWxTaXplICYm
IGNoZWM9CmtGb3JtYXR0ZXIob3B0cy5mb3JtYXRTZWxlY3Rpb25Ub29CaWcsICJmb3JtYXRTZWxl
Y3Rpb25Ub29CaWciKSkgewotICAgICAgICAgICAgICAgICAgICByZW5kZXIoIjxsaSBjbGFzcz0z
RCdzZWxlY3QyLXNlbGVjdGlvbi1saW1pdCc+IiArIG9wdHM9Ci5mb3JtYXRTZWxlY3Rpb25Ub29C
aWcobWF4U2VsU2l6ZSkgKyAiPC9saT4iKTsKKyAgICAgICAgICAgICAgICAgICAgcmVuZGVyKCI8
bGkgY2xhc3M9M0Qnc2VsZWN0Mi1zZWxlY3Rpb24tbGltaXQnPiIgKyBldmFsPQp1YXRlKG9wdHMu
Zm9ybWF0U2VsZWN0aW9uVG9vQmlnLCBvcHRzLmVsZW1lbnQsIG1heFNlbFNpemUpICsgIjwvbGk+
Iik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9Cj0yMAogICAgICAgICAgICAgaWYgKHNlYXJjaC52YWwoKS5sZW5ndGggPCBvcHRz
Lm1pbmltdW1JbnB1dExlbmd0aCkgewogICAgICAgICAgICAgICAgIGlmIChjaGVja0Zvcm1hdHRl
cihvcHRzLmZvcm1hdElucHV0VG9vU2hvcnQsICJmb3JtYXRJbnB1dFQ9Cm9vU2hvcnQiKSkgewot
ICAgICAgICAgICAgICAgICAgICByZW5kZXIoIjxsaSBjbGFzcz0zRCdzZWxlY3QyLW5vLXJlc3Vs
dHMnPiIgKyBvcHRzLmZvcm09CmF0SW5wdXRUb29TaG9ydChzZWFyY2gudmFsKCksIG9wdHMubWlu
aW11bUlucHV0TGVuZ3RoKSArICI8L2xpPiIpOworICAgICAgICAgICAgICAgICAgICByZW5kZXIo
IjxsaSBjbGFzcz0zRCdzZWxlY3QyLW5vLXJlc3VsdHMnPiIgKyBldmFsdWF0ZSg9Cm9wdHMuZm9y
bWF0SW5wdXRUb29TaG9ydCwgb3B0cy5lbGVtZW50LCBzZWFyY2gudmFsKCksIG9wdHMubWluaW11
bUlucHV0TGVuZz0KdGgpICsgIjwvbGk+Iik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICAgICAgcmVuZGVyKCIiKTsKICAgICAgICAgICAgICAgICB9CkBAIC0xNTc4
LDcgKzE3MzMsNyBAQAo9MjAKICAgICAgICAgICAgIGlmIChvcHRzLm1heGltdW1JbnB1dExlbmd0
aCAmJiBzZWFyY2gudmFsKCkubGVuZ3RoID4gb3B0cy5tYXhpPQptdW1JbnB1dExlbmd0aCkgewog
ICAgICAgICAgICAgICAgIGlmIChjaGVja0Zvcm1hdHRlcihvcHRzLmZvcm1hdElucHV0VG9vTG9u
ZywgImZvcm1hdElucHV0VG89Cm9Mb25nIikpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVuZGVy
KCI8bGkgY2xhc3M9M0Qnc2VsZWN0Mi1uby1yZXN1bHRzJz4iICsgb3B0cy5mb3JtPQphdElucHV0
VG9vTG9uZyhzZWFyY2gudmFsKCksIG9wdHMubWF4aW11bUlucHV0TGVuZ3RoKSArICI8L2xpPiIp
OworICAgICAgICAgICAgICAgICAgICByZW5kZXIoIjxsaSBjbGFzcz0zRCdzZWxlY3QyLW5vLXJl
c3VsdHMnPiIgKyBldmFsdWF0ZSg9Cm9wdHMuZm9ybWF0SW5wdXRUb29Mb25nLCBvcHRzLmVsZW1l
bnQsIHNlYXJjaC52YWwoKSwgb3B0cy5tYXhpbXVtSW5wdXRMZW5ndD0KaCkgKyAiPC9saT4iKTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICByZW5kZXIoIiIp
OwogICAgICAgICAgICAgICAgIH0KQEAgLTE1ODYsNyArMTc0MSw3IEBACiAgICAgICAgICAgICB9
Cj0yMAogICAgICAgICAgICAgaWYgKG9wdHMuZm9ybWF0U2VhcmNoaW5nICYmIHRoaXMuZmluZEhp
Z2hsaWdodGFibGVDaG9pY2VzKCkubGU9Cm5ndGggPTNEPTNEPTNEIDApIHsKLSAgICAgICAgICAg
ICAgICByZW5kZXIoIjxsaSBjbGFzcz0zRCdzZWxlY3QyLXNlYXJjaGluZyc+IiArIG9wdHMuZm9y
bWF0U2VhPQpyY2hpbmcoKSArICI8L2xpPiIpOworICAgICAgICAgICAgICAgIHJlbmRlcigiPGxp
IGNsYXNzPTNEJ3NlbGVjdDItc2VhcmNoaW5nJz4iICsgZXZhbHVhdGUob3B0cy49CmZvcm1hdFNl
YXJjaGluZywgb3B0cy5lbGVtZW50KSArICI8L2xpPiIpOwogICAgICAgICAgICAgfQo9MjAKICAg
ICAgICAgICAgIHNlYXJjaC5hZGRDbGFzcygic2VsZWN0Mi1hY3RpdmUiKTsKQEAgLTE2MjEsNiAr
MTc3NiwxMiBAQAogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAg
fQo9MjAKKyAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYWpheCBlcnJvcgorICAgICAgICAgICAg
ICAgIGlmKGRhdGEuaGFzRXJyb3IgIT0zRD0zRCB1bmRlZmluZWQgJiYgY2hlY2tGb3JtYXR0ZXIo
b3B0cy49CmZvcm1hdEFqYXhFcnJvciwgImZvcm1hdEFqYXhFcnJvciIpKSB7CisgICAgICAgICAg
ICAgICAgICAgIHJlbmRlcigiPGxpIGNsYXNzPTNEJ3NlbGVjdDItYWpheC1lcnJvcic+IiArIGV2
YWx1YXRlKD0Kb3B0cy5mb3JtYXRBamF4RXJyb3IsIG9wdHMuZWxlbWVudCwgZGF0YS5qcVhIUiwg
ZGF0YS50ZXh0U3RhdHVzLCBkYXRhLmVycm9yPQpUaHJvd24pICsgIjwvbGk+Iik7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAg
ICAvLyBzYXZlIGNvbnRleHQsIGlmIGFueQogICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dCA9
M0QgKGRhdGEuY29udGV4dD0zRD0zRD0zRHVuZGVmaW5lZCkgPyBudWxsIDo9CiBkYXRhLmNvbnRl
eHQ7CiAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgZGVmYXVsdCBjaG9pY2UgYW5kIHByZXBl
bmQgaXQgdG8gdGhlIGxpc3QKQEAgLTE2MzEsMTMgKzE3OTIsMTMgQEAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBlcXVhbChzZWxmLmlkKHRoaXMpLCBzZWxmLmlkKGRlZikpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0pLmxlbmd0aCA9M0Q9M0Q9M0QgMCkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGEucmVzdWx0cy51bnNoaWZ0KGRlZik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5vcHRzLmNyZWF0ZVNlYXJjaENob2ljZVBvc2l0aW9uKGRhdGEu
cmVzdT0KbHRzLCBkZWYpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQo9MjAKICAgICAgICAgICAgICAgICBpZiAoZGF0
YS5yZXN1bHRzLmxlbmd0aCA9M0Q9M0Q9M0QgMCAmJiBjaGVja0Zvcm1hdHRlcihvcHRzPQouZm9y
bWF0Tm9NYXRjaGVzLCAiZm9ybWF0Tm9NYXRjaGVzIikpIHsKLSAgICAgICAgICAgICAgICAgICAg
cmVuZGVyKCI8bGkgY2xhc3M9M0Qnc2VsZWN0Mi1uby1yZXN1bHRzJz4iICsgb3B0cy5mb3JtPQph
dE5vTWF0Y2hlcyhzZWFyY2gudmFsKCkpICsgIjwvbGk+Iik7CisgICAgICAgICAgICAgICAgICAg
IHJlbmRlcigiPGxpIGNsYXNzPTNEJ3NlbGVjdDItbm8tcmVzdWx0cyc+IiArIGV2YWx1YXRlKD0K
b3B0cy5mb3JtYXROb01hdGNoZXMsIG9wdHMuZWxlbWVudCwgc2VhcmNoLnZhbCgpKSArICI8L2xp
PiIpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQo9MjAK
QEAgLTE2NDUsNyArMTgwNiw3IEBACiAgICAgICAgICAgICAgICAgc2VsZi5vcHRzLnBvcHVsYXRl
UmVzdWx0cy5jYWxsKHRoaXMsIHJlc3VsdHMsIGRhdGEucmVzdWx0cz0KLCB7dGVybTogc2VhcmNo
LnZhbCgpLCBwYWdlOiB0aGlzLnJlc3VsdHNQYWdlLCBjb250ZXh0Om51bGx9KTsKPTIwCiAgICAg
ICAgICAgICAgICAgaWYgKGRhdGEubW9yZSA9M0Q9M0Q9M0QgdHJ1ZSAmJiBjaGVja0Zvcm1hdHRl
cihvcHRzLmZvcm1hdD0KTG9hZE1vcmUsICJmb3JtYXRMb2FkTW9yZSIpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKCI8bGkgY2xhc3M9M0Qnc2VsZWN0Mi1tb3JlLXJlc3Vs
dHMnPiIgKz0KIHNlbGYub3B0cy5lc2NhcGVNYXJrdXAob3B0cy5mb3JtYXRMb2FkTW9yZSh0aGlz
LnJlc3VsdHNQYWdlKSkgKyAiPC9saT4iKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5h
cHBlbmQoIjxsaSBjbGFzcz0zRCdzZWxlY3QyLW1vcmUtcmVzdWx0cyc+IiArPQogb3B0cy5lc2Nh
cGVNYXJrdXAoZXZhbHVhdGUob3B0cy5mb3JtYXRMb2FkTW9yZSwgb3B0cy5lbGVtZW50LCB0aGlz
LnJlc3VsdHM9ClBhZ2UpKSArICI8L2xpPiIpOwogICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
c2V0VGltZW91dChmdW5jdGlvbigpIHsgc2VsZi5sb2FkTW9yZUlmTmVlZGVkKCk9CjsgfSwgMTAp
OwogICAgICAgICAgICAgICAgIH0KPTIwCkBAIC0xNjgzLDYgKzE4NDQsMTAgQEAKPTIwCiAgICAg
ICAgIC8vIGFic3RyYWN0CiAgICAgICAgIHNlbGVjdEhpZ2hsaWdodGVkOiBmdW5jdGlvbiAob3B0
aW9ucykgeworICAgICAgICAgICAgaWYgKHRoaXMuX3RvdWNoTW92ZWQpIHsKKyAgICAgICAgICAg
ICAgdGhpcy5jbGVhclRvdWNoTW92ZWQoKTsKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgdmFyIGluZGV4PTNEdGhpcy5oaWdobGlnaHQoKSwKICAgICAg
ICAgICAgICAgICBoaWdobGlnaHRlZD0zRHRoaXMucmVzdWx0cy5maW5kKCIuc2VsZWN0Mi1oaWdo
bGlnaHRlZCIpLAogICAgICAgICAgICAgICAgIGRhdGEgPTNEIGhpZ2hsaWdodGVkLmNsb3Nlc3Qo
Jy5zZWxlY3QyLXJlc3VsdCcpLmRhdGEoInNlbGU9CmN0Mi1kYXRhIik7CkBAIC0xNzA4LDEyICsx
ODczLDEyIEBACiAgICAgICAgIC8vIGFic3RyYWN0CiAgICAgICAgIGdldFBsYWNlaG9sZGVyT3B0
aW9uOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdCkgewotICAgICAg
ICAgICAgICAgIHZhciBmaXJzdE9wdGlvbiA9M0QgdGhpcy5zZWxlY3QuY2hpbGRyZW4oKS5maXJz
dCgpOworICAgICAgICAgICAgICAgIHZhciBmaXJzdE9wdGlvbiA9M0QgdGhpcy5zZWxlY3QuY2hp
bGRyZW4oJ29wdGlvbicpLmZpcnN0KCk7CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5w
bGFjZWhvbGRlck9wdGlvbiAhPTNEPTNEIHVuZGVmaW5lZCApIHsKICAgICAgICAgICAgICAgICAg
ICAgLy9EZXRlcm1pbmUgdGhlIHBsYWNlaG9sZGVyIG9wdGlvbiBiYXNlZCBvbiB0aGUgc3BlY2lm
PQppZWQgcGxhY2Vob2xkZXJPcHRpb24gc2V0dGluZwogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gKHRoaXMub3B0cy5wbGFjZWhvbGRlck9wdGlvbiA9M0Q9M0Q9M0QgImZpcnN0IiA9CiYmIGZp
cnN0T3B0aW9uKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiB0aGlzLm9w
dHMucGxhY2Vob2xkZXJPcHRpb24gPTNEPTNEPTNEICI9CmZ1bmN0aW9uIiAmJiB0aGlzLm9wdHMu
cGxhY2Vob2xkZXJPcHRpb24odGhpcy5zZWxlY3QpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGZpcnN0T3B0aW9uLnRleHQoKSA9M0Q9M0Q9M0QgIiIgJiYgZmlyc3RPcHRpb24uPQp2YWwo
KSA9M0Q9M0Q9M0QgIiIpIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCQudHJpbShmaXJz
dE9wdGlvbi50ZXh0KCkpID0zRD0zRD0zRCAiIiAmJiBmaXJzPQp0T3B0aW9uLnZhbCgpID0zRD0z
RD0zRCAiIikgewogICAgICAgICAgICAgICAgICAgICAvL05vIGV4cGxpY2l0IHBsYWNlaG9sZGVy
IG9wdGlvbiBzcGVjaWZpZWQsIHVzZSB0aGUgZmk9CnJzdCBpZiBpdCdzIGJsYW5rCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBmaXJzdE9wdGlvbjsKICAgICAgICAgICAgICAgICB9CkBAIC0x
NzI5LDcgKzE4OTQsNyBAQAogICAgICAgICAvLyBhYnN0cmFjdAogICAgICAgICBpbml0Q29udGFp
bmVyV2lkdGg6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGZ1bmN0aW9uIHJlc29sdmVDb250
YWluZXJXaWR0aCgpIHsKLSAgICAgICAgICAgICAgICB2YXIgc3R5bGUsIGF0dHJzLCBtYXRjaGVz
LCBpLCBsOworICAgICAgICAgICAgICAgIHZhciBzdHlsZSwgYXR0cnMsIG1hdGNoZXMsIGksIGws
IGF0dHI7Cj0yMAogICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdHMud2lkdGggPTNEPTNEPTNE
ICJvZmYiKSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwpAQCAtMTc0MSw4ICsx
OTA2LDggQEAKICAgICAgICAgICAgICAgICAgICAgaWYgKHN0eWxlICE9M0Q9M0QgdW5kZWZpbmVk
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdHRycyA9M0Qgc3R5bGUuc3BsaXQoJzsnKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9M0QgMCwgbCA9M0QgYXR0cnMubGVuZ3Ro
OyBpIDwgbDsgaSA9M0QgaSArPQogMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h
dGNoZXMgPTNEIGF0dHJzW2ldLnJlcGxhY2UoL1xzL2csICcnKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAubWF0Y2goL1teLV13aWR0aDooKFstK10/KFswLTldKlwuKT9bMC05XSs9
CikocHh8ZW18ZXh8JXxpbnxjbXxtbXxwdHxwYykpL2kpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGF0dHIgPTNEIGF0dHJzW2ldLnJlcGxhY2UoL1xzL2csICcnKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXRjaGVzID0zRCBhdHRyLm1hdGNoKC9ed2lkdGg6KChbLStdPyhb
MC05XSpcPQouKT9bMC05XSspKHB4fGVtfGV4fCV8aW58Y218bW18cHR8cGMpKS9pKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2hlcyAhPTNEPTNEIG51bGwgJiYgbWF0Y2hl
cy5sZW5ndGggPj0KPTNEIDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBtYXRjaGVzWzFdOwogICAgICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTc4MSwxNiArMTk0
NiwxOSBAQAogICAgICAgICAgICAgdmFyIGNvbnRhaW5lciA9M0QgJChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKSkuYXR0cih7CiAgICAgICAgICAgICAgICAgImNsYXNzIjogInNlbGVjdDIt
Y29udGFpbmVyIgogICAgICAgICAgICAgfSkuaHRtbChbCi0gICAgICAgICAgICAgICAgIjxhIGhy
ZWY9M0QnamF2YXNjcmlwdDp2b2lkKDApJyBvbmNsaWNrPTNEJ3JldHVybiBmYWxzZTsnID0KY2xh
c3M9M0Qnc2VsZWN0Mi1jaG9pY2UnIHRhYmluZGV4PTNEJy0xJz4iLAotICAgICAgICAgICAgICAg
ICIgICA8c3BhbiBjbGFzcz0zRCdzZWxlY3QyLWNob3Nlbic+Jm5ic3A7PC9zcGFuPjxhYmJyIGNs
YXM9CnM9M0Qnc2VsZWN0Mi1zZWFyY2gtY2hvaWNlLWNsb3NlJz48L2FiYnI+IiwKLSAgICAgICAg
ICAgICAgICAiICAgPHNwYW4gY2xhc3M9M0Qnc2VsZWN0Mi1hcnJvdyc+PGI+PC9iPjwvc3Bhbj4i
LAorICAgICAgICAgICAgICAgICI8YSBocmVmPTNEJ2phdmFzY3JpcHQ6dm9pZCgwKScgY2xhc3M9
M0Qnc2VsZWN0Mi1jaG9pY2UnIHQ9CmFiaW5kZXg9M0QnLTEnPiIsCisgICAgICAgICAgICAgICAg
IiAgIDxzcGFuIGNsYXNzPTNEJ3NlbGVjdDItY2hvc2VuJz4mIzE2MDs8L3NwYW4+PGFiYnIgY2xh
cz0Kcz0zRCdzZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvc2UnPjwvYWJicj4iLAorICAgICAgICAg
ICAgICAgICIgICA8c3BhbiBjbGFzcz0zRCdzZWxlY3QyLWFycm93JyByb2xlPTNEJ3ByZXNlbnRh
dGlvbic+PGI9CiByb2xlPTNEJ3ByZXNlbnRhdGlvbic+PC9iPjwvc3Bhbj4iLAogICAgICAgICAg
ICAgICAgICI8L2E+IiwKLSAgICAgICAgICAgICAgICAiPGlucHV0IGNsYXNzPTNEJ3NlbGVjdDIt
Zm9jdXNzZXIgc2VsZWN0Mi1vZmZzY3JlZW4nIHR5cGU9Cj0zRCd0ZXh0Jy8+IiwKKyAgICAgICAg
ICAgICAgICAiPGxhYmVsIGZvcj0zRCcnIGNsYXNzPTNEJ3NlbGVjdDItb2Zmc2NyZWVuJz48L2xh
YmVsPiIsCisgICAgICAgICAgICAgICAgIjxpbnB1dCBjbGFzcz0zRCdzZWxlY3QyLWZvY3Vzc2Vy
IHNlbGVjdDItb2Zmc2NyZWVuJyB0eXBlPQo9M0QndGV4dCcgYXJpYS1oYXNwb3B1cD0zRCd0cnVl
JyByb2xlPTNEJ2J1dHRvbicgLz4iLAogICAgICAgICAgICAgICAgICI8ZGl2IGNsYXNzPTNEJ3Nl
bGVjdDItZHJvcCBzZWxlY3QyLWRpc3BsYXktbm9uZSc+IiwKICAgICAgICAgICAgICAgICAiICAg
PGRpdiBjbGFzcz0zRCdzZWxlY3QyLXNlYXJjaCc+IiwKLSAgICAgICAgICAgICAgICAiICAgICAg
IDxpbnB1dCB0eXBlPTNEJ3RleHQnIGF1dG9jb21wbGV0ZT0zRCdvZmYnIGF1dG9jb3JyPQplY3Q9
M0Qnb2ZmJyBhdXRvY2FwaXRhbGl6ZT0zRCdvZmYnIHNwZWxsY2hlY2s9M0QnZmFsc2UnIGNsYXNz
PTNEJ3NlbGVjdDItaW49CnB1dCcvPiIsCisgICAgICAgICAgICAgICAgIiAgICAgICA8bGFiZWwg
Zm9yPTNEJycgY2xhc3M9M0Qnc2VsZWN0Mi1vZmZzY3JlZW4nPjwvbGFiZT0KbD4iLAorICAgICAg
ICAgICAgICAgICIgICAgICAgPGlucHV0IHR5cGU9M0QndGV4dCcgYXV0b2NvbXBsZXRlPTNEJ29m
ZicgYXV0b2NvcnI9CmVjdD0zRCdvZmYnIGF1dG9jYXBpdGFsaXplPTNEJ29mZicgc3BlbGxjaGVj
az0zRCdmYWxzZScgY2xhc3M9M0Qnc2VsZWN0Mi1pbj0KcHV0JyByb2xlPTNEJ2NvbWJvYm94JyBh
cmlhLWV4cGFuZGVkPTNEJ3RydWUnIiwKKyAgICAgICAgICAgICAgICAiICAgICAgIGFyaWEtYXV0
b2NvbXBsZXRlPTNEJ2xpc3QnIC8+IiwKICAgICAgICAgICAgICAgICAiICAgPC9kaXY+IiwKLSAg
ICAgICAgICAgICAgICAiICAgPHVsIGNsYXNzPTNEJ3NlbGVjdDItcmVzdWx0cyc+IiwKKyAgICAg
ICAgICAgICAgICAiICAgPHVsIGNsYXNzPTNEJ3NlbGVjdDItcmVzdWx0cycgcm9sZT0zRCdsaXN0
Ym94Jz4iLAogICAgICAgICAgICAgICAgICIgICA8L3VsPiIsCiAgICAgICAgICAgICAgICAgIjwv
ZGl2PiJdLmpvaW4oIiIpKTsKICAgICAgICAgICAgIHJldHVybiBjb250YWluZXI7CkBAIC0xODE5
LDE3ICsxOTg3LDE5IEBACj0yMAogICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoLnZhbCh0aGlz
LmZvY3Vzc2VyLnZhbCgpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuc2VhcmNo
LmZvY3VzKCk7Ci0gICAgICAgICAgICAvLyBtb3ZlIHRoZSBjdXJzb3IgdG8gdGhlIGVuZCBhZnRl
ciBmb2N1c3NpbmcsIG90aGVyd2lzZSBpdCB3aT0KbGwgYmUgYXQgdGhlIGJlZ2lubmluZyBhbmQK
LSAgICAgICAgICAgIC8vIG5ldyB0ZXh0IHdpbGwgYXBwZWFyICpiZWZvcmUqIGZvY3Vzc2VyLnZh
bCgpCi0gICAgICAgICAgICBlbCA9M0QgdGhpcy5zZWFyY2guZ2V0KDApOwotICAgICAgICAgICAg
aWYgKGVsLmNyZWF0ZVRleHRSYW5nZSkgewotICAgICAgICAgICAgICAgIHJhbmdlID0zRCBlbC5j
cmVhdGVUZXh0UmFuZ2UoKTsKLSAgICAgICAgICAgICAgICByYW5nZS5jb2xsYXBzZShmYWxzZSk7
Ci0gICAgICAgICAgICAgICAgcmFuZ2Uuc2VsZWN0KCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYg
KGVsLnNldFNlbGVjdGlvblJhbmdlKSB7Ci0gICAgICAgICAgICAgICAgbGVuID0zRCB0aGlzLnNl
YXJjaC52YWwoKS5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgZWwuc2V0U2VsZWN0aW9uUmFuZ2Uo
bGVuLCBsZW4pOworICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5zaG91bGRGb2N1c0lucHV0KHRo
aXMpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2guZm9jdXMoKTsKKyAgICAgICAgICAg
ICAgICAvLyBtb3ZlIHRoZSBjdXJzb3IgdG8gdGhlIGVuZCBhZnRlciBmb2N1c3NpbmcsIG90aGVy
d2lzZSBpPQp0IHdpbGwgYmUgYXQgdGhlIGJlZ2lubmluZyBhbmQKKyAgICAgICAgICAgICAgICAv
LyBuZXcgdGV4dCB3aWxsIGFwcGVhciAqYmVmb3JlKiBmb2N1c3Nlci52YWwoKQorICAgICAgICAg
ICAgICAgIGVsID0zRCB0aGlzLnNlYXJjaC5nZXQoMCk7CisgICAgICAgICAgICAgICAgaWYgKGVs
LmNyZWF0ZVRleHRSYW5nZSkgeworICAgICAgICAgICAgICAgICAgICByYW5nZSA9M0QgZWwuY3Jl
YXRlVGV4dFJhbmdlKCk7CisgICAgICAgICAgICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKGZhbHNl
KTsKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2Uuc2VsZWN0KCk7CisgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChlbC5zZXRTZWxlY3Rpb25SYW5nZSkgeworICAgICAgICAgICAgICAgICAgICBs
ZW4gPTNEIHRoaXMuc2VhcmNoLnZhbCgpLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgZWwu
c2V0U2VsZWN0aW9uUmFuZ2UobGVuLCBsZW4pOworICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KPTIwCiAgICAgICAgICAgICAvLyBpbml0aWFsaXplcyBzZWFyY2gncyB2YWx1ZSB3aXRo
IG5leHRTZWFyY2hUZXJtIChpZiBkZWZpbmVkID0KYnkgdXNlcikKQEAgLTE4NDcsMTQgKzIwMTcs
MTMgQEAKICAgICAgICAgfSwKPTIwCiAgICAgICAgIC8vIHNpbmdsZQotICAgICAgICBjbG9zZTog
ZnVuY3Rpb24gKHBhcmFtcykgeworICAgICAgICBjbG9zZTogZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgaWYgKCF0aGlzLm9wZW5lZCgpKSByZXR1cm47CiAgICAgICAgICAgICB0aGlzLnBhcmVu
dC5jbG9zZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwo9MjAKLSAgICAgICAgICAgIHBhcmFtcyA9
M0QgcGFyYW1zIHx8IHtmb2N1czogdHJ1ZX07Ci0gICAgICAgICAgICB0aGlzLmZvY3Vzc2VyLnJl
bW92ZUF0dHIoImRpc2FibGVkIik7Ci0KLSAgICAgICAgICAgIGlmIChwYXJhbXMuZm9jdXMpIHsK
KyAgICAgICAgICAgIHRoaXMuZm9jdXNzZXIucHJvcCgiZGlzYWJsZWQiLCBmYWxzZSk7CisKKyAg
ICAgICAgICAgIGlmICh0aGlzLm9wdHMuc2hvdWxkRm9jdXNJbnB1dCh0aGlzKSkgewogICAgICAg
ICAgICAgICAgIHRoaXMuZm9jdXNzZXIuZm9jdXMoKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fSwKQEAgLTE4NjQsOCArMjAzMywxMCBAQAogICAgICAgICAgICAgaWYgKHRoaXMub3BlbmVkKCkp
IHsKICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7CiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNzZXIucmVtb3ZlQXR0cigiZGlzYWJsZWQiKTsKLSAg
ICAgICAgICAgICAgICB0aGlzLmZvY3Vzc2VyLmZvY3VzKCk7CisgICAgICAgICAgICAgICAgdGhp
cy5mb2N1c3Nlci5wcm9wKCJkaXNhYmxlZCIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBpZiAo
dGhpcy5vcHRzLnNob3VsZEZvY3VzSW5wdXQodGhpcykpIHsKKyAgICAgICAgICAgICAgICAgICAg
dGhpcy5mb2N1c3Nlci5mb2N1cygpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
ICAgICAgICAgfSwKPTIwCkBAIC0xODc3LDggKzIwNDgsMTEgQEAKICAgICAgICAgLy8gc2luZ2xl
CiAgICAgICAgIGNhbmNlbDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdGhpcy5wYXJlbnQu
Y2FuY2VsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7Ci0gICAgICAgICAgICB0aGlzLmZvY3Vzc2Vy
LnJlbW92ZUF0dHIoImRpc2FibGVkIik7Ci0gICAgICAgICAgICB0aGlzLmZvY3Vzc2VyLmZvY3Vz
KCk7CisgICAgICAgICAgICB0aGlzLmZvY3Vzc2VyLnByb3AoImRpc2FibGVkIiwgZmFsc2UpOwor
CisgICAgICAgICAgICBpZiAodGhpcy5vcHRzLnNob3VsZEZvY3VzSW5wdXQodGhpcykpIHsKKyAg
ICAgICAgICAgICAgICB0aGlzLmZvY3Vzc2VyLmZvY3VzKCk7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0sCj0yMAogICAgICAgICAvLyBzaW5nbGUKQEAgLTE4ODYsNiArMjA2MCwxMSBAQAogICAg
ICAgICAgICAgJCgibGFiZWxbZm9yPTNEJyIgKyB0aGlzLmZvY3Vzc2VyLmF0dHIoJ2lkJykgKyAi
J10iKQogICAgICAgICAgICAgICAgIC5hdHRyKCdmb3InLCB0aGlzLm9wdHMuZWxlbWVudC5hdHRy
KCJpZCIpKTsKICAgICAgICAgICAgIHRoaXMucGFyZW50LmRlc3Ryb3kuYXBwbHkodGhpcywgYXJn
dW1lbnRzKTsKKworICAgICAgICAgICAgY2xlYW51cEpRdWVyeUVsZW1lbnRzLmNhbGwodGhpcywK
KyAgICAgICAgICAgICAgICAic2VsZWN0aW9uIiwKKyAgICAgICAgICAgICAgICAiZm9jdXNzZXIi
CisgICAgICAgICAgICApOwogICAgICAgICB9LAo9MjAKICAgICAgICAgLy8gc2luZ2xlCkBAIC0x
ODkzLDcgKzIwNzIsOSBAQAo9MjAKICAgICAgICAgICAgIHZhciBzZWxlY3Rpb24sCiAgICAgICAg
ICAgICAgICAgY29udGFpbmVyID0zRCB0aGlzLmNvbnRhaW5lciwKLSAgICAgICAgICAgICAgICBk
cm9wZG93biA9M0QgdGhpcy5kcm9wZG93bjsKKyAgICAgICAgICAgICAgICBkcm9wZG93biA9M0Qg
dGhpcy5kcm9wZG93biwKKyAgICAgICAgICAgICAgICBpZFN1ZmZpeCA9M0QgbmV4dFVpZCgpLAor
ICAgICAgICAgICAgICAgIGVsZW1lbnRMYWJlbDsKPTIwCiAgICAgICAgICAgICBpZiAodGhpcy5v
cHRzLm1pbmltdW1SZXN1bHRzRm9yU2VhcmNoIDwgMCkgewogICAgICAgICAgICAgICAgIHRoaXMu
c2hvd1NlYXJjaChmYWxzZSk7CkBAIC0xOTA1LDE3ICsyMDg2LDQwIEBACj0yMAogICAgICAgICAg
ICAgdGhpcy5mb2N1c3NlciA9M0QgY29udGFpbmVyLmZpbmQoIi5zZWxlY3QyLWZvY3Vzc2VyIik7
Cj0yMAorICAgICAgICAgICAgLy8gYWRkIGFyaWEgYXNzb2NpYXRpb25zCisgICAgICAgICAgICBz
ZWxlY3Rpb24uZmluZCgiLnNlbGVjdDItY2hvc2VuIikuYXR0cigiaWQiLCAic2VsZWN0Mi1jaG9z
ZW4tIj0KK2lkU3VmZml4KTsKKyAgICAgICAgICAgIHRoaXMuZm9jdXNzZXIuYXR0cigiYXJpYS1s
YWJlbGxlZGJ5IiwgInNlbGVjdDItY2hvc2VuLSIraWRTdWZmPQppeCk7CisgICAgICAgICAgICB0
aGlzLnJlc3VsdHMuYXR0cigiaWQiLCAic2VsZWN0Mi1yZXN1bHRzLSIraWRTdWZmaXgpOworICAg
ICAgICAgICAgdGhpcy5zZWFyY2guYXR0cigiYXJpYS1vd25zIiwgInNlbGVjdDItcmVzdWx0cy0i
K2lkU3VmZml4KTsKKwogICAgICAgICAgICAgLy8gcmV3cml0ZSBsYWJlbHMgZnJvbSBvcmlnaW5h
bCBlbGVtZW50IHRvIGZvY3Vzc2VyCi0gICAgICAgICAgICB0aGlzLmZvY3Vzc2VyLmF0dHIoImlk
IiwgInMyaWRfYXV0b2dlbiIrbmV4dFVpZCgpKTsKLQotICAgICAgICAgICAgJCgibGFiZWxbZm9y
PTNEJyIgKyB0aGlzLm9wdHMuZWxlbWVudC5hdHRyKCJpZCIpICsgIiddIikKKyAgICAgICAgICAg
IHRoaXMuZm9jdXNzZXIuYXR0cigiaWQiLCAiczJpZF9hdXRvZ2VuIitpZFN1ZmZpeCk7CisKKyAg
ICAgICAgICAgIGVsZW1lbnRMYWJlbCA9M0QgJCgibGFiZWxbZm9yPTNEJyIgKyB0aGlzLm9wdHMu
ZWxlbWVudC5hdHRyKCJpPQpkIikgKyAiJ10iKTsKKworICAgICAgICAgICAgdGhpcy5mb2N1c3Nl
ci5wcmV2KCkKKyAgICAgICAgICAgICAgICAudGV4dChlbGVtZW50TGFiZWwudGV4dCgpKQogICAg
ICAgICAgICAgICAgIC5hdHRyKCdmb3InLCB0aGlzLmZvY3Vzc2VyLmF0dHIoJ2lkJykpOwo9MjAK
KyAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgb3JpZ2luYWwgZWxlbWVudCByZXRhaW5zIGFuIGFj
Y2Vzc2libGUgbmFtZQorICAgICAgICAgICAgdmFyIG9yaWdpbmFsVGl0bGUgPTNEIHRoaXMub3B0
cy5lbGVtZW50LmF0dHIoInRpdGxlIik7CisgICAgICAgICAgICB0aGlzLm9wdHMuZWxlbWVudC5h
dHRyKCJ0aXRsZSIsIChvcmlnaW5hbFRpdGxlIHx8IGVsZW1lbnRMYWJlbD0KLnRleHQoKSkpOwor
CiAgICAgICAgICAgICB0aGlzLmZvY3Vzc2VyLmF0dHIoInRhYmluZGV4IiwgdGhpcy5lbGVtZW50
VGFiSW5kZXgpOwo9MjAKKyAgICAgICAgICAgIC8vIHdyaXRlIGxhYmVsIGZvciBzZWFyY2ggZmll
bGQgdXNpbmcgdGhlIGxhYmVsIGZyb20gdGhlIGZvY3VzPQpzZXIgZWxlbWVudAorICAgICAgICAg
ICAgdGhpcy5zZWFyY2guYXR0cigiaWQiLCB0aGlzLmZvY3Vzc2VyLmF0dHIoJ2lkJykgKyAnX3Nl
YXJjaCcpOworCisgICAgICAgICAgICB0aGlzLnNlYXJjaC5wcmV2KCkKKyAgICAgICAgICAgICAg
ICAudGV4dCgkKCJsYWJlbFtmb3I9M0QnIiArIHRoaXMuZm9jdXNzZXIuYXR0cignaWQnKSArICIn
XSIpPQoudGV4dCgpKQorICAgICAgICAgICAgICAgIC5hdHRyKCdmb3InLCB0aGlzLnNlYXJjaC5h
dHRyKCdpZCcpKTsKKwogICAgICAgICAgICAgdGhpcy5zZWFyY2gub24oImtleWRvd24iLCB0aGlz
LmJpbmQoZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNJbnRlcmZh
Y2VFbmFibGVkKCkpIHJldHVybjsKPTIwCisgICAgICAgICAgICAgICAgLy8gZmlsdGVyIDIyOSBr
ZXlDb2RlcyAoaW5wdXQgbWV0aG9kIGVkaXRvciBpcyBwcm9jZXNzaW5nID0Ka2V5IGlucHV0KQor
ICAgICAgICAgICAgICAgIGlmICgyMjkgPTNEPTNEIGUua2V5Q29kZSkgcmV0dXJuOworCiAgICAg
ICAgICAgICAgICAgaWYgKGUud2hpY2ggPTNEPTNEPTNEIEtFWS5QQUdFX1VQIHx8IGUud2hpY2gg
PTNEPTNEPTNEIEtFWT0KLlBBR0VfRE9XTikgewogICAgICAgICAgICAgICAgICAgICAvLyBwcmV2
ZW50IHRoZSBwYWdlIGZyb20gc2Nyb2xsaW5nCiAgICAgICAgICAgICAgICAgICAgIGtpbGxFdmVu
dChlKTsKQEAgLTE5NDUsOSArMjE0OSwxMSBAQAogICAgICAgICAgICAgdGhpcy5zZWFyY2gub24o
ImJsdXIiLCB0aGlzLmJpbmQoZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgIC8vIGEgd29y
a2Fyb3VuZCBmb3IgY2hyb21lIHRvIGtlZXAgdGhlIHNlYXJjaCBmaWVsZCBmb2N1c3M9CmVkIHdo
ZW4gdGhlIHNjcm9sbCBiYXIgaXMgdXNlZCB0byBzY3JvbGwgdGhlIGRyb3Bkb3duLgogICAgICAg
ICAgICAgICAgIC8vIHdpdGhvdXQgdGhpcyB0aGUgc2VhcmNoIGZpZWxkIGxvc2VzIGZvY3VzIHdo
aWNoIGlzIGFubm89CnlpbmcKLSAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxl
bWVudCA9M0Q9M0Q9M0QgdGhpcy5ib2R5KCkuZ2V0KDApKSB7CisgICAgICAgICAgICAgICAgaWYg
KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPTNEPTNEPTNEIHRoaXMuYm9keS5nZXQoMCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQodGhpcy5iaW5kKGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2guZm9jdXMoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wZW5lZCgpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5zZWFyY2guZm9jdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgfSksIDApOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0pKTsKQEAgLTE5OTMsNyArMjE5OSw3IEBACiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSkpOwo9MjAKLSAgICAgICAgICAgIHNlbGVjdGlvbi5vbigibW91c2Vkb3duIiwgImFi
YnIiLCB0aGlzLmJpbmQoZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgICAgIHNlbGVjdGlvbi5vbigi
bW91c2Vkb3duIHRvdWNoc3RhcnQiLCAiYWJiciIsIHRoaXMuYmluZChmdW5jdGlvPQpuIChlKSB7
CiAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzSW50ZXJmYWNlRW5hYmxlZCgpKSByZXR1cm47
CiAgICAgICAgICAgICAgICAgdGhpcy5jbGVhcigpOwogICAgICAgICAgICAgICAgIGtpbGxFdmVu
dEltbWVkaWF0ZWx5KGUpOwpAQCAtMjAwMSw3ICsyMjA3LDkgQEAKICAgICAgICAgICAgICAgICB0
aGlzLnNlbGVjdGlvbi5mb2N1cygpOwogICAgICAgICAgICAgfSkpOwo9MjAKLSAgICAgICAgICAg
IHNlbGVjdGlvbi5vbigibW91c2Vkb3duIiwgdGhpcy5iaW5kKGZ1bmN0aW9uIChlKSB7CisgICAg
ICAgICAgICBzZWxlY3Rpb24ub24oIm1vdXNlZG93biB0b3VjaHN0YXJ0IiwgdGhpcy5iaW5kKGZ1
bmN0aW9uIChlKSB7CisgICAgICAgICAgICAgICAgLy8gUHJldmVudCBJRSBmcm9tIGdlbmVyYXRp
bmcgYSBjbGljayBldmVudCBvbiB0aGUgYm9keQorICAgICAgICAgICAgICAgIHJlaW5zZXJ0RWxl
bWVudChzZWxlY3Rpb24pOwo9MjAKICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY29udGFpbmVy
Lmhhc0NsYXNzKCJzZWxlY3QyLWNvbnRhaW5lci1hY3RpdmUiKSkgewogICAgICAgICAgICAgICAg
ICAgICB0aGlzLm9wdHMuZWxlbWVudC50cmlnZ2VyKCQuRXZlbnQoInNlbGVjdDItZm9jdXMiKSk7
CkBAIC0yMDE2LDcgKzIyMjQsMTEgQEAKICAgICAgICAgICAgICAgICBraWxsRXZlbnQoZSk7CiAg
ICAgICAgICAgICB9KSk7Cj0yMAotICAgICAgICAgICAgZHJvcGRvd24ub24oIm1vdXNlZG93biIs
IHRoaXMuYmluZChmdW5jdGlvbigpIHsgdGhpcy5zZWFyY2guZm89CmN1cygpOyB9KSk7CisgICAg
ICAgICAgICBkcm9wZG93bi5vbigibW91c2Vkb3duIHRvdWNoc3RhcnQiLCB0aGlzLmJpbmQoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5zaG91bGRGb2N1c0lucHV0
KHRoaXMpKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoLmZvY3VzKCk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSkpOwo9MjAKICAgICAgICAgICAgIHNlbGVjdGlv
bi5vbigiZm9jdXMiLCB0aGlzLmJpbmQoZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgIGtp
bGxFdmVudChlKTsKQEAgLTIwODUsNiArMjI5Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLnVwZGF0ZVNlbGVjdGlvbihzZWxlY3RlZCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmNsb3NlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldFBsYWNlaG9s
ZGVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5leHRTZWFyY2hUZXJtID0zRCBz
ZWxmLm9wdHMubmV4dFNlYXJjaFRlcm0ocz0KZWxlY3RlZCwgc2VsZi5zZWFyY2gudmFsKCkpOwog
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9
CkBAIC0yMDkyLDggKzIzMDUsOCBAQAo9MjAKICAgICAgICAgaXNQbGFjZWhvbGRlck9wdGlvblNl
bGVjdGVkOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHZhciBwbGFjZWhvbGRlck9wdGlvbjsK
LSAgICAgICAgICAgIGlmICghdGhpcy5nZXRQbGFjZWhvbGRlcigpKSByZXR1cm4gZmFsc2U7IC8v
IG5vIHBsYWNlaG9sZGVyIHNwPQplY2lmaWVkIHNvIG5vIG9wdGlvbiBzaG91bGQgYmUgY29uc2lk
ZXJlZAotICAgICAgICAgICAgcmV0dXJuICgocGxhY2Vob2xkZXJPcHRpb24gPTNEIHRoaXMuZ2V0
UGxhY2Vob2xkZXJPcHRpb24oKSkgIT0KPTNEPTNEIHVuZGVmaW5lZCAmJiBwbGFjZWhvbGRlck9w
dGlvbi5pcygnOnNlbGVjdGVkJykpCisgICAgICAgICAgICBpZiAodGhpcy5nZXRQbGFjZWhvbGRl
cigpID0zRD0zRD0zRCB1bmRlZmluZWQpIHJldHVybiBmYWxzZTsgLz0KLyBubyBwbGFjZWhvbGRl
ciBzcGVjaWZpZWQgc28gbm8gb3B0aW9uIHNob3VsZCBiZSBjb25zaWRlcmVkCisgICAgICAgICAg
ICByZXR1cm4gKChwbGFjZWhvbGRlck9wdGlvbiA9M0QgdGhpcy5nZXRQbGFjZWhvbGRlck9wdGlv
bigpKSAhPQo9M0Q9M0QgdW5kZWZpbmVkICYmIHBsYWNlaG9sZGVyT3B0aW9uLnByb3AoInNlbGVj
dGVkIikpCiAgICAgICAgICAgICAgICAgfHwgKHRoaXMub3B0cy5lbGVtZW50LnZhbCgpID0zRD0z
RD0zRCAiIikKICAgICAgICAgICAgICAgICB8fCAodGhpcy5vcHRzLmVsZW1lbnQudmFsKCkgPTNE
PTNEPTNEIHVuZGVmaW5lZCkKICAgICAgICAgICAgICAgICB8fCAodGhpcy5vcHRzLmVsZW1lbnQu
dmFsKCkgPTNEPTNEPTNEIG51bGwpOwpAQCAtMjEwNyw3ICsyMzIwLDcgQEAKICAgICAgICAgICAg
IGlmIChvcHRzLmVsZW1lbnQuZ2V0KDApLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9M0Q9M0Q9M0Qg
InNlbGVjPQp0IikgewogICAgICAgICAgICAgICAgIC8vIGluc3RhbGwgdGhlIHNlbGVjdGlvbiBp
bml0aWFsaXplcgogICAgICAgICAgICAgICAgIG9wdHMuaW5pdFNlbGVjdGlvbiA9M0QgZnVuY3Rp
b24gKGVsZW1lbnQsIGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3Rl
ZCA9M0QgZWxlbWVudC5maW5kKCI6c2VsZWN0ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgdmFy
IHNlbGVjdGVkID0zRCBlbGVtZW50LmZpbmQoIm9wdGlvbiIpLmZpbHRlcihmdW5jdGlvPQpuKCkg
eyByZXR1cm4gdGhpcy5zZWxlY3RlZCAmJiAhdGhpcy5kaXNhYmxlZCB9KTsKICAgICAgICAgICAg
ICAgICAgICAgLy8gYSBzaW5nbGUgc2VsZWN0IGJveCBhbHdheXMgaGFzIGEgdmFsdWUsIG5vIG5l
ZWQgdG8gPQpudWxsIGNoZWNrICdzZWxlY3RlZCcKICAgICAgICAgICAgICAgICAgICAgY2FsbGJh
Y2soc2VsZi5vcHRpb25Ub0RhdGEoc2VsZWN0ZWQpKTsKICAgICAgICAgICAgICAgICB9OwpAQCAt
MjIyNCwxMCArMjQzNywxMyBAQAogICAgICAgICAgICAgdGhpcy5uZXh0U2VhcmNoVGVybSA9M0Qg
dGhpcy5vcHRzLm5leHRTZWFyY2hUZXJtKGRhdGEsIHRoaXMuc2U9CmFyY2gudmFsKCkpOwogICAg
ICAgICAgICAgdGhpcy5jbG9zZSgpOwo9MjAKLSAgICAgICAgICAgIGlmICghb3B0aW9ucyB8fCAh
b3B0aW9ucy5ub0ZvY3VzKQorICAgICAgICAgICAgaWYgKCghb3B0aW9ucyB8fCAhb3B0aW9ucy5u
b0ZvY3VzKSAmJiB0aGlzLm9wdHMuc2hvdWxkRm9jdXNJbnA9CnV0KHRoaXMpKSB7CiAgICAgICAg
ICAgICAgICAgdGhpcy5mb2N1c3Nlci5mb2N1cygpOwotCi0gICAgICAgICAgICBpZiAoIWVxdWFs
KG9sZCwgdGhpcy5pZChkYXRhKSkpIHsgdGhpcy50cmlnZ2VyQ2hhbmdlKHthZGRlZDpkYT0KdGEs
cmVtb3ZlZDpvbGREYXRhfSk7IH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFl
cXVhbChvbGQsIHRoaXMuaWQoZGF0YSkpKSB7CisgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2Vy
Q2hhbmdlKHsgYWRkZWQ6IGRhdGEsIHJlbW92ZWQ6IG9sZERhdGEgfSk7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0sCj0yMAogICAgICAgICAvLyBzaW5nbGUKQEAgLTIyNzcsNyArMjQ5Myw3IEBA
CiAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3QpIHsKICAgICAgICAgICAgICAgICB0aGlzLnNl
bGVjdAogICAgICAgICAgICAgICAgICAgICAudmFsKHZhbCkKLSAgICAgICAgICAgICAgICAgICAg
LmZpbmQoIjpzZWxlY3RlZCIpLmVhY2gyKGZ1bmN0aW9uIChpLCBlbG0pIHsKKyAgICAgICAgICAg
ICAgICAgICAgLmZpbmQoIm9wdGlvbiIpLmZpbHRlcihmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXMu
c2VsZWN0PQplZCB9KS5lYWNoMihmdW5jdGlvbiAoaSwgZWxtKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBkYXRhID0zRCBzZWxmLm9wdGlvblRvRGF0YShlbG0pOwogICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICAgICB9KTsKQEAgLTIzNDks
NiArMjU2NSw3IEBACiAgICAgICAgICAgICB9KS5odG1sKFsKICAgICAgICAgICAgICAgICAiPHVs
IGNsYXNzPTNEJ3NlbGVjdDItY2hvaWNlcyc+IiwKICAgICAgICAgICAgICAgICAiICA8bGkgY2xh
c3M9M0Qnc2VsZWN0Mi1zZWFyY2gtZmllbGQnPiIsCisgICAgICAgICAgICAgICAgIiAgICA8bGFi
ZWwgZm9yPTNEJycgY2xhc3M9M0Qnc2VsZWN0Mi1vZmZzY3JlZW4nPjwvbGFiZWw+IiwKICAgICAg
ICAgICAgICAgICAiICAgIDxpbnB1dCB0eXBlPTNEJ3RleHQnIGF1dG9jb21wbGV0ZT0zRCdvZmYn
IGF1dG9jb3JyZWN0PQo9M0Qnb2ZmJyBhdXRvY2FwaXRhbGl6ZT0zRCdvZmYnIHNwZWxsY2hlY2s9
M0QnZmFsc2UnIGNsYXNzPTNEJ3NlbGVjdDItaW5wdXQ9Cic+IiwKICAgICAgICAgICAgICAgICAi
ICA8L2xpPiIsCiAgICAgICAgICAgICAgICAgIjwvdWw+IiwKQEAgLTIzNjcsMTIgKzI1ODQsMTIg
QEAKICAgICAgICAgICAgIC8vIFRPRE8gdmFsaWRhdGUgcGxhY2Vob2xkZXIgaXMgYSBzdHJpbmcg
aWYgc3BlY2lmaWVkCj0yMAogICAgICAgICAgICAgaWYgKG9wdHMuZWxlbWVudC5nZXQoMCkudGFn
TmFtZS50b0xvd2VyQ2FzZSgpID0zRD0zRD0zRCAic2VsZWM9CnQiKSB7Ci0gICAgICAgICAgICAg
ICAgLy8gaW5zdGFsbCBzdGhlIHNlbGVjdGlvbiBpbml0aWFsaXplcgorICAgICAgICAgICAgICAg
IC8vIGluc3RhbGwgdGhlIHNlbGVjdGlvbiBpbml0aWFsaXplcgogICAgICAgICAgICAgICAgIG9w
dHMuaW5pdFNlbGVjdGlvbiA9M0QgZnVuY3Rpb24gKGVsZW1lbnQsIGNhbGxiYWNrKSB7Cj0yMAog
ICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9M0QgW107Cj0yMAotICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50LmZpbmQoIjpzZWxlY3RlZCIpLmVhY2gyKGZ1bmN0aW9uIChpLCBlbG0pIHsK
KyAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKCJvcHRpb24iKS5maWx0ZXIoZnVuY3Rp
b24oKSB7IHJldHVybiB0aGlzPQouc2VsZWN0ZWQgJiYgIXRoaXMuZGlzYWJsZWQgfSkuZWFjaDIo
ZnVuY3Rpb24gKGksIGVsbSkgewogICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5wdXNoKHNl
bGYub3B0aW9uVG9EYXRhKGVsbSkpOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgICAgICAgICAgY2FsbGJhY2soZGF0YSk7CkBAIC0yNDE3LDYgKzI2MzQsNyBAQAogICAgICAg
ICAgICAgcmV0dXJuIG9wdHM7CiAgICAgICAgIH0sCj0yMAorICAgICAgICAvLyBtdWx0aQogICAg
ICAgICBzZWxlY3RDaG9pY2U6IGZ1bmN0aW9uIChjaG9pY2UpIHsKPTIwCiAgICAgICAgICAgICB2
YXIgc2VsZWN0ZWQgPTNEIHRoaXMuY29udGFpbmVyLmZpbmQoIi5zZWxlY3QyLXNlYXJjaC1jaG9p
Y2UtZj0Kb2N1cyIpOwpAQCAtMjQ0MCw2ICsyNjU4LDExIEBACiAgICAgICAgICAgICAkKCJsYWJl
bFtmb3I9M0QnIiArIHRoaXMuc2VhcmNoLmF0dHIoJ2lkJykgKyAiJ10iKQogICAgICAgICAgICAg
ICAgIC5hdHRyKCdmb3InLCB0aGlzLm9wdHMuZWxlbWVudC5hdHRyKCJpZCIpKTsKICAgICAgICAg
ICAgIHRoaXMucGFyZW50LmRlc3Ryb3kuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKworICAgICAg
ICAgICAgY2xlYW51cEpRdWVyeUVsZW1lbnRzLmNhbGwodGhpcywKKyAgICAgICAgICAgICAgICAi
c2VhcmNoQ29udGFpbmVyIiwKKyAgICAgICAgICAgICAgICAic2VsZWN0aW9uIgorICAgICAgICAg
ICAgKTsKICAgICAgICAgfSwKPTIwCiAgICAgICAgIC8vIG11bHRpCkBAIC0yNDU5LDEwICsyNjgy
LDEzIEBACj0yMAogICAgICAgICAgICAgLy8gcmV3cml0ZSBsYWJlbHMgZnJvbSBvcmlnaW5hbCBl
bGVtZW50IHRvIGZvY3Vzc2VyCiAgICAgICAgICAgICB0aGlzLnNlYXJjaC5hdHRyKCJpZCIsICJz
MmlkX2F1dG9nZW4iK25leHRVaWQoKSk7Ci0gICAgICAgICAgICAkKCJsYWJlbFtmb3I9M0QnIiAr
IHRoaXMub3B0cy5lbGVtZW50LmF0dHIoImlkIikgKyAiJ10iKQorCisgICAgICAgICAgICB0aGlz
LnNlYXJjaC5wcmV2KCkKKyAgICAgICAgICAgICAgICAudGV4dCgkKCJsYWJlbFtmb3I9M0QnIiAr
IHRoaXMub3B0cy5lbGVtZW50LmF0dHIoImlkIikgKyAiPQonXSIpLnRleHQoKSkKICAgICAgICAg
ICAgICAgICAuYXR0cignZm9yJywgdGhpcy5zZWFyY2guYXR0cignaWQnKSk7Cj0yMAogICAgICAg
ICAgICAgdGhpcy5zZWFyY2gub24oImlucHV0IHBhc3RlIiwgdGhpcy5iaW5kKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlYXJjaC5hdHRyKCdwbGFjZWhvbGRlcicpICYm
IHRoaXMuc2VhcmNoLnZhbCgpLmw9CmVuZ3RoID0zRD0zRCAwKSByZXR1cm47CiAgICAgICAgICAg
ICAgICAgaWYgKCF0aGlzLmlzSW50ZXJmYWNlRW5hYmxlZCgpKSByZXR1cm47CiAgICAgICAgICAg
ICAgICAgaWYgKCF0aGlzLm9wZW5lZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMub3Bl
bigpOwpAQCAtMjQ5MSwxMyArMjcxNywxNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
ZWN0ZWRDaG9pY2UgPTNEIG5leHQubGVuZ3RoID8gbmV4dCA6IG51bGw7CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZS53aGljaCA9M0Q9M0Q9M0Qg
S0VZLkJBQ0tTUEFDRSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdChz
ZWxlY3RlZC5maXJzdCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoLndp
ZHRoKDEwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2hvaWNlID0zRCBwcmV2
Lmxlbmd0aCA/IHByZXYgOiBuZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMu
dW5zZWxlY3Qoc2VsZWN0ZWQuZmlyc3QoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLnNlYXJjaC53aWR0aCgxMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
ZWN0ZWRDaG9pY2UgPTNEIHByZXYubGVuZ3RoID8gcHJldiA6IG5leHQ7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS53aGljaCA9M0Q9
M0QgS0VZLkRFTEVURSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdChz
ZWxlY3RlZC5maXJzdCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoLndp
ZHRoKDEwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQ2hvaWNlID0zRCBuZXh0
Lmxlbmd0aCA/IG5leHQgOiBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMu
dW5zZWxlY3Qoc2VsZWN0ZWQuZmlyc3QoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLnNlYXJjaC53aWR0aCgxMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
ZWN0ZWRDaG9pY2UgPTNEIG5leHQubGVuZ3RoID8gbmV4dCA6IG51bGw7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS53aGljaCA9M0Q9
M0QgS0VZLkVOVEVSKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZENob2ljZSA9
M0QgbnVsbDsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMjY3NSw4ICsyOTAzLDE5IEBACj0y
MAogICAgICAgICAgICAgdGhpcy5mb2N1c1NlYXJjaCgpOwo9MjAKKyAgICAgICAgICAgIC8vIGlu
aXRpYWxpemVzIHNlYXJjaCdzIHZhbHVlIHdpdGggbmV4dFNlYXJjaFRlcm0gKGlmIGRlZmluZWQg
PQpieSB1c2VyKQorICAgICAgICAgICAgLy8gaWdub3JlIG5leHRTZWFyY2hUZXJtIGlmIHRoZSBk
cm9wZG93biBpcyBvcGVuZWQgYnkgdGhlIHVzZXI9CiBwcmVzc2luZyBhIGxldHRlcgorICAgICAg
ICAgICAgaWYodGhpcy5zZWFyY2gudmFsKCkgPTNEPTNEPTNEICIiKSB7CisgICAgICAgICAgICAg
ICAgaWYodGhpcy5uZXh0U2VhcmNoVGVybSAhPTNEIHVuZGVmaW5lZCl7CisgICAgICAgICAgICAg
ICAgICAgIHRoaXMuc2VhcmNoLnZhbCh0aGlzLm5leHRTZWFyY2hUZXJtKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGhpcy5zZWFyY2guc2VsZWN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorCiAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJlc3VsdHModHJ1ZSk7Ci0gICAgICAg
ICAgICB0aGlzLnNlYXJjaC5mb2N1cygpOworICAgICAgICAgICAgaWYgKHRoaXMub3B0cy5zaG91
bGRGb2N1c0lucHV0KHRoaXMpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2guZm9jdXMo
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRoaXMub3B0cy5lbGVtZW50LnRyaWdnZXIo
JC5FdmVudCgic2VsZWN0Mi1vcGVuIikpOwogICAgICAgICB9LAo9MjAKQEAgLTI3MzMsMTIgKzI5
NzIsMTggQEAKICAgICAgICAgLy8gbXVsdGkKICAgICAgICAgb25TZWxlY3Q6IGZ1bmN0aW9uIChk
YXRhLCBvcHRpb25zKSB7Cj0yMAotICAgICAgICAgICAgaWYgKCF0aGlzLnRyaWdnZXJTZWxlY3Qo
ZGF0YSkpIHsgcmV0dXJuOyB9CisgICAgICAgICAgICBpZiAoIXRoaXMudHJpZ2dlclNlbGVjdChk
YXRhKSB8fCBkYXRhLnRleHQgPTNEPTNEPTNEICIiKSB7IHJldD0KdXJuOyB9Cj0yMAogICAgICAg
ICAgICAgdGhpcy5hZGRTZWxlY3RlZENob2ljZShkYXRhKTsKPTIwCiAgICAgICAgICAgICB0aGlz
Lm9wdHMuZWxlbWVudC50cmlnZ2VyKHsgdHlwZTogInNlbGVjdGVkIiwgdmFsOiB0aGlzLmlkKGRh
dD0KYSksIGNob2ljZTogZGF0YSB9KTsKPTIwCisgICAgICAgICAgICAvLyBrZWVwIHRyYWNrIG9m
IHRoZSBzZWFyY2gncyB2YWx1ZSBiZWZvcmUgaXQgZ2V0cyBjbGVhcmVkCisgICAgICAgICAgICB0
aGlzLm5leHRTZWFyY2hUZXJtID0zRCB0aGlzLm9wdHMubmV4dFNlYXJjaFRlcm0oZGF0YSwgdGhp
cy5zZT0KYXJjaC52YWwoKSk7CisKKyAgICAgICAgICAgIHRoaXMuY2xlYXJTZWFyY2goKTsKKyAg
ICAgICAgICAgIHRoaXMudXBkYXRlUmVzdWx0cygpOworCiAgICAgICAgICAgICBpZiAodGhpcy5z
ZWxlY3QgfHwgIXRoaXMub3B0cy5jbG9zZU9uU2VsZWN0KSB0aGlzLnBvc3Rwcm9jZXNzUj0KZXN1
bHRzKGRhdGEsIGZhbHNlLCB0aGlzLm9wdHMuY2xvc2VPblNlbGVjdD0zRD0zRD0zRHRydWUpOwo9
MjAKICAgICAgICAgICAgIGlmICh0aGlzLm9wdHMuY2xvc2VPblNlbGVjdCkgewpAQCAtMjc1Miw2
ICsyOTk3LDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSByZWFjaGVkIG1h
eCBzZWxlY3Rpb24gc2l6ZSByZXBhaW50IHRoZSByZT0Kc3VsdHMgc28gY2hvaWNlcwogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gYXJlIHJlcGxhY2VkIHdpdGggdGhlIG1heCBzZWxlY3Rpb24g
cmVhY2hlZCBtZXM9CnNhZ2UKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUmVz
dWx0cyh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIGluaXRpYWxpemVzIHNlYXJjaCdzIHZhbHVlIHdpdGggbmV4dFNlYXJjaFRl
cm0gPQphbmQgdXBkYXRlIHNlYXJjaCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
KHRoaXMubmV4dFNlYXJjaFRlcm0gIT0zRCB1bmRlZmluZWQpeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuc2VhcmNoLnZhbCh0aGlzLm5leHRTZWFyY2hUZXJtKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJlc3VsdHMoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLnNlYXJjaC5zZWxlY3QoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB0aGlzLnBv
c2l0aW9uRHJvcGRvd24oKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMjc2MSw3ICsz
MDEzLDcgQEAKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Cj0yMAotICAgICAgICAg
ICAgLy8gc2luY2UgaXQncyBub3QgcG9zc2libGUgdG8gc2VsZWN0IGFuIGVsZW1lbnQgdGhhdCBo
YXMgYWxyZWE9CmR5IGJlZW4KKyAgICAgICAgICAgIC8vIHNpbmNlIGl0cyBub3QgcG9zc2libGUg
dG8gc2VsZWN0IGFuIGVsZW1lbnQgdGhhdCBoYXMgYWxyZWFkPQp5IGJlZW4KICAgICAgICAgICAg
IC8vIGFkZGVkIHdlIGRvIG5vdCBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgaXMgYSBuZXcgZWxlbWVu
dCBiZWZvPQpyZSBmaXJpbmcgY2hhbmdlCiAgICAgICAgICAgICB0aGlzLnRyaWdnZXJDaGFuZ2Uo
eyBhZGRlZDogZGF0YSB9KTsKPTIwCkBAIC0yNzgwLDcgKzMwMzIsNyBAQAogICAgICAgICAgICAg
ICAgIGVuYWJsZWRJdGVtID0zRCAkKAogICAgICAgICAgICAgICAgICAgICAiPGxpIGNsYXNzPTNE
J3NlbGVjdDItc2VhcmNoLWNob2ljZSc+IiArCiAgICAgICAgICAgICAgICAgICAgICIgICAgPGRp
dj48L2Rpdj4iICsKLSAgICAgICAgICAgICAgICAgICAgIiAgICA8YSBocmVmPTNEJyMnIG9uY2xp
Y2s9M0QncmV0dXJuIGZhbHNlOycgY2xhc3M9M0QnPQpzZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xv
c2UnIHRhYmluZGV4PTNEJy0xJz48L2E+IiArCisgICAgICAgICAgICAgICAgICAgICIgICAgPGEg
aHJlZj0zRCcjJyBjbGFzcz0zRCdzZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvcz0KZScgdGFiaW5k
ZXg9M0QnLTEnPjwvYT4iICsKICAgICAgICAgICAgICAgICAgICAgIjwvbGk+IiksCiAgICAgICAg
ICAgICAgICAgZGlzYWJsZWRJdGVtID0zRCAkKAogICAgICAgICAgICAgICAgICAgICAiPGxpIGNs
YXNzPTNEJ3NlbGVjdDItc2VhcmNoLWNob2ljZSBzZWxlY3QyLWxvY2tlZCc+IiArCkBAIC0yODA3
LDEzICszMDU5LDExIEBACiAgICAgICAgICAgICAgICAgICAub24oImNsaWNrIGRibGNsaWNrIiwg
dGhpcy5iaW5kKGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNJ
bnRlcmZhY2VFbmFibGVkKCkpIHJldHVybjsKPTIwCi0gICAgICAgICAgICAgICAgICAkKGUudGFy
Z2V0KS5jbG9zZXN0KCIuc2VsZWN0Mi1zZWFyY2gtY2hvaWNlIikuZmFkZU91dCgnZj0KYXN0Jywg
dGhpcy5iaW5kKGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICAgICAgICAgICAgdGhpcy51bnNlbGVj
dCgkKGUudGFyZ2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uZmlu
ZCgiLnNlbGVjdDItc2VhcmNoLWNob2ljZS1mb2N1cyIpLj0KcmVtb3ZlQ2xhc3MoInNlbGVjdDIt
c2VhcmNoLWNob2ljZS1mb2N1cyIpOwotICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2Uo
KTsKLSAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzU2VhcmNoKCk7Ci0gICAgICAgICAg
ICAgICAgICB9KSkuZGVxdWV1ZSgpOworICAgICAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdCgk
KGUudGFyZ2V0KSk7CisgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5maW5kKCIuc2Vs
ZWN0Mi1zZWFyY2gtY2hvaWNlLWZvY3VzIikucmVtbz0KdmVDbGFzcygic2VsZWN0Mi1zZWFyY2gt
Y2hvaWNlLWZvY3VzIik7CiAgICAgICAgICAgICAgICAgICBraWxsRXZlbnQoZSk7CisgICAgICAg
ICAgICAgICAgICB0aGlzLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzU2Vh
cmNoKCk7CiAgICAgICAgICAgICAgIH0pKS5vbigiZm9jdXMiLCB0aGlzLmJpbmQoZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzSW50ZXJmYWNlRW5hYmxlZCgpKSBy
ZXR1cm47CiAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5hZGRDbGFzcygic2VsZWN0
Mi1jb250YWluZXItYWN0aXZlIik7CkBAIC0yODMzLDcgKzMwODMsNiBAQAogICAgICAgICAgICAg
dmFyIHZhbCA9M0QgdGhpcy5nZXRWYWwoKSwKICAgICAgICAgICAgICAgICBkYXRhLAogICAgICAg
ICAgICAgICAgIGluZGV4OwotCiAgICAgICAgICAgICBzZWxlY3RlZCA9M0Qgc2VsZWN0ZWQuY2xv
c2VzdCgiLnNlbGVjdDItc2VhcmNoLWNob2ljZSIpOwo9MjAKICAgICAgICAgICAgIGlmIChzZWxl
Y3RlZC5sZW5ndGggPTNEPTNEPTNEIDApIHsKQEAgLTI4NDgsMTUgKzMwOTcsMjcgQEAKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Cj0yMAorICAgICAgICAgICAgdmFyIGV2
dCA9M0QgJC5FdmVudCgic2VsZWN0Mi1yZW1vdmluZyIpOworICAgICAgICAgICAgZXZ0LnZhbCA9
M0QgdGhpcy5pZChkYXRhKTsKKyAgICAgICAgICAgIGV2dC5jaG9pY2UgPTNEIGRhdGE7CisgICAg
ICAgICAgICB0aGlzLm9wdHMuZWxlbWVudC50cmlnZ2VyKGV2dCk7CisKKyAgICAgICAgICAgIGlm
IChldnQuaXNEZWZhdWx0UHJldmVudGVkKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHdoaWxlKChpbmRleCA9M0QgaW5kZXhP
Zih0aGlzLmlkKGRhdGEpLCB2YWwpKSA+PTNEIDApIHsKICAgICAgICAgICAgICAgICB2YWwuc3Bs
aWNlKGluZGV4LCAxKTsKICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbCh2YWwpOwogICAgICAg
ICAgICAgICAgIGlmICh0aGlzLnNlbGVjdCkgdGhpcy5wb3N0cHJvY2Vzc1Jlc3VsdHMoKTsKICAg
ICAgICAgICAgIH0KKwogICAgICAgICAgICAgc2VsZWN0ZWQucmVtb3ZlKCk7Cj0yMAotICAgICAg
ICAgICAgdGhpcy5vcHRzLmVsZW1lbnQudHJpZ2dlcih7IHR5cGU6ICJyZW1vdmVkIiwgdmFsOiB0
aGlzLmlkKGRhdGE9CiksIGNob2ljZTogZGF0YSB9KTsKKyAgICAgICAgICAgIHRoaXMub3B0cy5l
bGVtZW50LnRyaWdnZXIoeyB0eXBlOiAic2VsZWN0Mi1yZW1vdmVkIiwgdmFsOiB0aGlzPQouaWQo
ZGF0YSksIGNob2ljZTogZGF0YSB9KTsKICAgICAgICAgICAgIHRoaXMudHJpZ2dlckNoYW5nZSh7
IHJlbW92ZWQ6IGRhdGEgfSk7CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
LAo9MjAKICAgICAgICAgLy8gbXVsdGkKQEAgLTI4NzYsNyArMzEzNyw3IEBACiAgICAgICAgICAg
ICB9KTsKPTIwCiAgICAgICAgICAgICBjb21wb3VuZC5lYWNoMihmdW5jdGlvbihpLCBjaG9pY2Up
IHsKLSAgICAgICAgICAgICAgICAvLyBoaWRlIGFuIG9wdGdyb3VwIGlmIGl0IGRvZXNudCBoYXZl
IGFueSBzZWxlY3RhYmxlIGNoaWxkPQpyZW4KKyAgICAgICAgICAgICAgICAvLyBoaWRlIGFuIG9w
dGdyb3VwIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgc2VsZWN0YWJsZSBjaGlsPQpkcmVuCiAgICAg
ICAgICAgICAgICAgaWYgKCFjaG9pY2UuaXMoJy5zZWxlY3QyLXJlc3VsdC1zZWxlY3RhYmxlJykK
ICAgICAgICAgICAgICAgICAgICAgJiYgY2hvaWNlLmZpbmQoIi5zZWxlY3QyLXJlc3VsdC1zZWxl
Y3RhYmxlOm5vdCguc2VsZWN0PQoyLXNlbGVjdGVkKSIpLmxlbmd0aCA9M0Q9M0Q9M0QgMCkgewog
ICAgICAgICAgICAgICAgICAgICBjaG9pY2UuYWRkQ2xhc3MoInNlbGVjdDItc2VsZWN0ZWQiKTsK
QEAgLTI4ODcsMTEgKzMxNDgsMTEgQEAKICAgICAgICAgICAgICAgICBzZWxmLmhpZ2hsaWdodCgw
KTsKICAgICAgICAgICAgIH0KPTIwCi0gICAgICAgICAgICAvL0lmIGFsbCByZXN1bHRzIGFyZSBj
aG9zZW4gcmVuZGVyIGZvcm1hdE5vTUF0Y2hlcworICAgICAgICAgICAgLy9JZiBhbGwgcmVzdWx0
cyBhcmUgY2hvc2VuIHJlbmRlciBmb3JtYXROb01hdGNoZXMKICAgICAgICAgICAgIGlmKCF0aGlz
Lm9wdHMuY3JlYXRlU2VhcmNoQ2hvaWNlICYmICFjaG9pY2VzLmZpbHRlcignLnNlbGVjdDItPQpy
ZXN1bHQ6bm90KC5zZWxlY3QyLXNlbGVjdGVkKScpLmxlbmd0aCA+IDApewogICAgICAgICAgICAg
ICAgIGlmKCFkYXRhIHx8IGRhdGEgJiYgIWRhdGEubW9yZSAmJiB0aGlzLnJlc3VsdHMuZmluZCgi
LnNlbGU9CmN0Mi1uby1yZXN1bHRzIikubGVuZ3RoID0zRD0zRD0zRCAwKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChjaGVja0Zvcm1hdHRlcihzZWxmLm9wdHMuZm9ybWF0Tm9NYXRjaGVzLCAi
Zm9ybWF0Tj0Kb01hdGNoZXMiKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXN1
bHRzLmFwcGVuZCgiPGxpIGNsYXNzPTNEJ3NlbGVjdDItbm8tcmVzdWw9CnRzJz4iICsgc2VsZi5v
cHRzLmZvcm1hdE5vTWF0Y2hlcyhzZWxmLnNlYXJjaC52YWwoKSkgKyAiPC9saT4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0cy5hcHBlbmQoIjxsaSBjbGFzcz0zRCdzZWxl
Y3QyLW5vLXJlc3VsPQp0cyc+IiArIGV2YWx1YXRlKHNlbGYub3B0cy5mb3JtYXROb01hdGNoZXMs
IHNlbGYub3B0cy5lbGVtZW50LCBzZWxmLnNlYXJjaC49CnZhbCgpKSArICI8L2xpPiIpOwogICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAt
Mjk2OSw3ICszMjMwLDkgQEAKICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0zRCAwOyBqIDwg
b2xkLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChlcXVhbCh0aGlzLm9w
dHMuaWQoY3VycmVudFtpXSksIHRoaXMub3B0cy5pZChvbGRbaj0KXSkpKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBjdXJyZW50LnNwbGljZShpLCAxKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGktLTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGk+MCl7CisgICAgICAgICAgICAg
ICAgICAgICAgICAJaS0tOworICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgb2xkLnNwbGljZShqLCAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGot
LTsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMjk4Miw3ICszMjQ1LDcgQEAKPTIwCiAgICAg
ICAgIC8vIG11bHRpCiAgICAgICAgIHZhbDogZnVuY3Rpb24gKHZhbCwgdHJpZ2dlckNoYW5nZSkg
ewotICAgICAgICAgICAgdmFyIG9sZERhdGEsIHNlbGY9M0R0aGlzLCBjaGFuZ2VEZXRhaWxzOwor
ICAgICAgICAgICAgdmFyIG9sZERhdGEsIHNlbGY9M0R0aGlzOwo9MjAKICAgICAgICAgICAgIGlm
IChhcmd1bWVudHMubGVuZ3RoID0zRD0zRD0zRCAwKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRoaXMuZ2V0VmFsKCk7CkBAIC0zMDIxLDcgKzMyODQsNyBAQAogICAgICAgICAgICAgICAgICAg
ICBzZWxmLnVwZGF0ZVNlbGVjdGlvbihkYXRhKTsKICAgICAgICAgICAgICAgICAgICAgc2VsZi5j
bGVhclNlYXJjaCgpOwogICAgICAgICAgICAgICAgICAgICBpZiAodHJpZ2dlckNoYW5nZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmlnZ2VyQ2hhbmdlKHNlbGYuYnVpbGRDaGFu
Z2VEZXRhaWxzKG9sZERhdGE9CiwgdGhpcy5kYXRhKCkpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYudHJpZ2dlckNoYW5nZShzZWxmLmJ1aWxkQ2hhbmdlRGV0YWlscyhvbGREYXRhPQos
IHNlbGYuZGF0YSgpKSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIH0KQEAgLTMwNjUsNyArMzMyOCw3IEBACiAgICAgICAgICAgICB2YXIg
c2VsZj0zRHRoaXMsIGlkcywgb2xkOwogICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGgg
PTNEPTNEPTNEIDApIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uCi0g
ICAgICAgICAgICAgICAgICAgICAuZmluZCgiLnNlbGVjdDItc2VhcmNoLWNob2ljZSIpCisgICAg
ICAgICAgICAgICAgICAgICAuY2hpbGRyZW4oIi5zZWxlY3QyLXNlYXJjaC1jaG9pY2UiKQogICAg
ICAgICAgICAgICAgICAgICAgLm1hcChmdW5jdGlvbigpIHsgcmV0dXJuICQodGhpcykuZGF0YSgi
c2VsZWN0Mi1kYXRhIik9CjsgfSkKICAgICAgICAgICAgICAgICAgICAgIC5nZXQoKTsKICAgICAg
ICAgICAgIH0gZWxzZSB7CkBAIC0zMTA1LDcgKzMzNjgsNyBAQAogICAgICAgICAgICAgICAgICAg
ICBpZiAoInRhZ3MiIGluIG9wdHMpIHtvcHRzLm11bHRpcGxlID0zRCBtdWx0aXBsZSA9M0QgdHI9
CnVlO30KICAgICAgICAgICAgICAgICB9Cj0yMAotICAgICAgICAgICAgICAgIHNlbGVjdDIgPTNE
IG11bHRpcGxlID8gbmV3IE11bHRpU2VsZWN0MigpIDogbmV3IFNpbmdsZVNlbGU9CmN0MigpOwor
ICAgICAgICAgICAgICAgIHNlbGVjdDIgPTNEIG11bHRpcGxlID8gbmV3IHdpbmRvdy5TZWxlY3Qy
WyJjbGFzcyJdLm11bHRpKCk9CiA6IG5ldyB3aW5kb3cuU2VsZWN0MlsiY2xhc3MiXS5zaW5nbGUo
KTsKICAgICAgICAgICAgICAgICBzZWxlY3QyLmluaXQob3B0cyk7CiAgICAgICAgICAgICB9IGVs
c2UgaWYgKHR5cGVvZihhcmdzWzBdKSA9M0Q9M0Q9M0QgInN0cmluZyIpIHsKPTIwCkBAIC0zMTI5
LDcgKzMzOTIsNyBAQAogICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9M0Qgc2VsZWN0MlttZXRo
b2RdLmFwcGx5KHNlbGVjdDIsIGFyZ3Muc2xpY2UoMSk9Cik7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIGlmIChpbmRleE9mKGFyZ3NbMF0sIHZhbHVlTWV0aG9kcykgPj0zRCAw
Ci0gICAgICAgICAgICAgICAgICAgIHx8IChpbmRleE9mKGFyZ3NbMF0sIHByb3BlcnR5TWV0aG9k
cykgJiYgYXJncy5sZW5ndGggPQo9M0Q9M0QgMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgfHwg
KGluZGV4T2YoYXJnc1swXSwgcHJvcGVydHlNZXRob2RzKSA+PTNEIDAgJiYgYXJncy5sPQplbmd0
aCA9M0Q9M0QgMSkpIHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBhYm9y
dCB0aGUgaXRlcmF0aW9uLCByZWFkeSB0byByZXR1cm4gPQpmaXJzdCBtYXRjaGVkIHZhbHVlCiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTMxNjAsMTkgKzM0MjMs
MTMgQEAKICAgICAgICAgc29ydFJlc3VsdHM6IGZ1bmN0aW9uIChyZXN1bHRzLCBjb250YWluZXIs
IHF1ZXJ5KSB7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgICAgfSwKLSAgICAg
ICAgZm9ybWF0UmVzdWx0Q3NzQ2xhc3M6IGZ1bmN0aW9uKGRhdGEpIHtyZXR1cm4gdW5kZWZpbmVk
O30sCisgICAgICAgIGZvcm1hdFJlc3VsdENzc0NsYXNzOiBmdW5jdGlvbihkYXRhKSB7cmV0dXJu
IGRhdGEuY3NzO30sCiAgICAgICAgIGZvcm1hdFNlbGVjdGlvbkNzc0NsYXNzOiBmdW5jdGlvbihk
YXRhLCBjb250YWluZXIpIHtyZXR1cm4gdW5kZWZpbj0KZWQ7fSwKLSAgICAgICAgZm9ybWF0Tm9N
YXRjaGVzOiBmdW5jdGlvbiAoKSB7IHJldHVybiAiTm8gbWF0Y2hlcyBmb3VuZCI7IH0sCi0gICAg
ICAgIGZvcm1hdElucHV0VG9vU2hvcnQ6IGZ1bmN0aW9uIChpbnB1dCwgbWluKSB7IHZhciBuID0z
RCBtaW4gLSBpbnB1dD0KLmxlbmd0aDsgcmV0dXJuICJQbGVhc2UgZW50ZXIgIiArIG4gKyAiIG1v
cmUgY2hhcmFjdGVyIiArIChuID0zRD0zRCAxPyAiIiA6PQogInMiKTsgfSwKLSAgICAgICAgZm9y
bWF0SW5wdXRUb29Mb25nOiBmdW5jdGlvbiAoaW5wdXQsIG1heCkgeyB2YXIgbiA9M0QgaW5wdXQu
bGVuZ3RoPQogLSBtYXg7IHJldHVybiAiUGxlYXNlIGRlbGV0ZSAiICsgbiArICIgY2hhcmFjdGVy
IiArIChuID0zRD0zRCAxPyAiIiA6ICJzIik9CjsgfSwKLSAgICAgICAgZm9ybWF0U2VsZWN0aW9u
VG9vQmlnOiBmdW5jdGlvbiAobGltaXQpIHsgcmV0dXJuICJZb3UgY2FuIG9ubHkgc2VsPQplY3Qg
IiArIGxpbWl0ICsgIiBpdGVtIiArIChsaW1pdCA9M0Q9M0QgMSA/ICIiIDogInMiKTsgfSwKLSAg
ICAgICAgZm9ybWF0TG9hZE1vcmU6IGZ1bmN0aW9uIChwYWdlTnVtYmVyKSB7IHJldHVybiAiTG9h
ZGluZyBtb3JlIHJlc3VsPQp0cy4uLiI7IH0sCi0gICAgICAgIGZvcm1hdFNlYXJjaGluZzogZnVu
Y3Rpb24gKCkgeyByZXR1cm4gIlNlYXJjaGluZy4uLiI7IH0sCiAgICAgICAgIG1pbmltdW1SZXN1
bHRzRm9yU2VhcmNoOiAwLAogICAgICAgICBtaW5pbXVtSW5wdXRMZW5ndGg6IDAsCiAgICAgICAg
IG1heGltdW1JbnB1dExlbmd0aDogbnVsbCwKICAgICAgICAgbWF4aW11bVNlbGVjdGlvblNpemU6
IDAsCi0gICAgICAgIGlkOiBmdW5jdGlvbiAoZSkgeyByZXR1cm4gZS5pZDsgfSwKKyAgICAgICAg
aWQ6IGZ1bmN0aW9uIChlKSB7IHJldHVybiBlID0zRD0zRCB1bmRlZmluZWQgPyBudWxsIDogZS5p
ZDsgfSwKICAgICAgICAgbWF0Y2hlcjogZnVuY3Rpb24odGVybSwgdGV4dCkgewogICAgICAgICAg
ICAgcmV0dXJuIHN0cmlwRGlhY3JpdGljcygnJyt0ZXh0KS50b1VwcGVyQ2FzZSgpLmluZGV4T2Yo
c3RyaXBEaWE9CmNyaXRpY3MoJycrdGVybSkudG9VcHBlckNhc2UoKSkgPj0zRCAwOwogICAgICAg
ICB9LApAQCAtMzE4NCw5ICszNDQxLDQzIEBACiAgICAgICAgIHNlbGVjdE9uQmx1cjogZmFsc2Us
CiAgICAgICAgIGFkYXB0Q29udGFpbmVyQ3NzQ2xhc3M6IGZ1bmN0aW9uKGMpIHsgcmV0dXJuIGM7
IH0sCiAgICAgICAgIGFkYXB0RHJvcGRvd25Dc3NDbGFzczogZnVuY3Rpb24oYykgeyByZXR1cm4g
bnVsbDsgfSwKLSAgICAgICAgbmV4dFNlYXJjaFRlcm06IGZ1bmN0aW9uKHNlbGVjdGVkT2JqZWN0
LCBjdXJyZW50U2VhcmNoVGVybSkgeyByZXR1PQpybiB1bmRlZmluZWQ7IH0KKyAgICAgICAgbmV4
dFNlYXJjaFRlcm06IGZ1bmN0aW9uKHNlbGVjdGVkT2JqZWN0LCBjdXJyZW50U2VhcmNoVGVybSkg
eyByZXR1PQpybiB1bmRlZmluZWQ7IH0sCisgICAgICAgIHNlYXJjaElucHV0UGxhY2Vob2xkZXI6
ICcnLAorICAgICAgICBjcmVhdGVTZWFyY2hDaG9pY2VQb3NpdGlvbjogJ3RvcCcsCisgICAgICAg
IHNob3VsZEZvY3VzSW5wdXQ6IGZ1bmN0aW9uIChpbnN0YW5jZSkgeworICAgICAgICAgICAgLy8g
QXR0ZW1wdCB0byBkZXRlY3QgdG91Y2ggZGV2aWNlcworICAgICAgICAgICAgdmFyIHN1cHBvcnRz
VG91Y2hFdmVudHMgPTNEICgoJ29udG91Y2hzdGFydCcgaW4gd2luZG93KSB8fAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hdmlnYXRvci5tc01heFRvdWNoUG9pbnRz
ID4gMCkpOworCisgICAgICAgICAgICAvLyBPbmx5IGRldmljZXMgd2hpY2ggc3VwcG9ydCB0b3Vj
aCBldmVudHMgc2hvdWxkIGJlIHNwZWNpYWwgYz0KYXNlZAorICAgICAgICAgICAgaWYgKCFzdXBw
b3J0c1RvdWNoRXZlbnRzKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIC8vIE5ldmVyIGZvY3VzIHRoZSBpbnB1dCBpZiBzZWFyY2gg
aXMgZGlzYWJsZWQKKyAgICAgICAgICAgIGlmIChpbnN0YW5jZS5vcHRzLm1pbmltdW1SZXN1bHRz
Rm9yU2VhcmNoIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICB9Owo9MjAK
KyAgICAkLmZuLnNlbGVjdDIubG9jYWxlcyA9M0QgW107CisKKyAgICAkLmZuLnNlbGVjdDIubG9j
YWxlc1snZW4nXSA9M0QgeworICAgICAgICAgZm9ybWF0TWF0Y2hlczogZnVuY3Rpb24gKG1hdGNo
ZXMpIHsgaWYgKG1hdGNoZXMgPTNEPTNEPTNEIDEpIHsgcmU9CnR1cm4gIk9uZSByZXN1bHQgaXMg
YXZhaWxhYmxlLCBwcmVzcyBlbnRlciB0byBzZWxlY3QgaXQuIjsgfSByZXR1cm4gbWF0Y2hlcz0K
ICsgIiByZXN1bHRzIGFyZSBhdmFpbGFibGUsIHVzZSB1cCBhbmQgZG93biBhcnJvdyBrZXlzIHRv
IG5hdmlnYXRlLiI7IH0sCisgICAgICAgICBmb3JtYXROb01hdGNoZXM6IGZ1bmN0aW9uICgpIHsg
cmV0dXJuICJObyBtYXRjaGVzIGZvdW5kIjsgfSwKKyAgICAgICAgIGZvcm1hdEFqYXhFcnJvcjog
ZnVuY3Rpb24gKGpxWEhSLCB0ZXh0U3RhdHVzLCBlcnJvclRocm93bikgeyByZXR1PQpybiAiTG9h
ZGluZyBmYWlsZWQiOyB9LAorICAgICAgICAgZm9ybWF0SW5wdXRUb29TaG9ydDogZnVuY3Rpb24g
KGlucHV0LCBtaW4pIHsgdmFyIG4gPTNEIG1pbiAtIGlucHU9CnQubGVuZ3RoOyByZXR1cm4gIlBs
ZWFzZSBlbnRlciAiICsgbiArICIgb3IgbW9yZSBjaGFyYWN0ZXIiICsgKG4gPTNEPTNEIDEgPz0K
ICIiIDogInMiKTsgfSwKKyAgICAgICAgIGZvcm1hdElucHV0VG9vTG9uZzogZnVuY3Rpb24gKGlu
cHV0LCBtYXgpIHsgdmFyIG4gPTNEIGlucHV0Lmxlbmd0PQpoIC0gbWF4OyByZXR1cm4gIlBsZWFz
ZSBkZWxldGUgIiArIG4gKyAiIGNoYXJhY3RlciIgKyAobiA9M0Q9M0QgMSA/ICIiIDogInM9CiIp
OyB9LAorICAgICAgICAgZm9ybWF0U2VsZWN0aW9uVG9vQmlnOiBmdW5jdGlvbiAobGltaXQpIHsg
cmV0dXJuICJZb3UgY2FuIG9ubHkgc2U9CmxlY3QgIiArIGxpbWl0ICsgIiBpdGVtIiArIChsaW1p
dCA9M0Q9M0QgMSA/ICIiIDogInMiKTsgfSwKKyAgICAgICAgIGZvcm1hdExvYWRNb3JlOiBmdW5j
dGlvbiAocGFnZU51bWJlcikgeyByZXR1cm4gIkxvYWRpbmcgbW9yZSByZXN1PQpsdHM9RTI9ODA9
QTYiOyB9LAorICAgICAgICAgZm9ybWF0U2VhcmNoaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybiAi
U2VhcmNoaW5nPUUyPTgwPUE2IjsgfSwKKyAgICB9OworCisgICAgJC5leHRlbmQoJC5mbi5zZWxl
Y3QyLmRlZmF1bHRzLCAkLmZuLnNlbGVjdDIubG9jYWxlc1snZW4nXSk7CisKICAgICAkLmZuLnNl
bGVjdDIuYWpheERlZmF1bHRzID0zRCB7CiAgICAgICAgIHRyYW5zcG9ydDogJC5hamF4LAogICAg
ICAgICBwYXJhbXM6IHsKCmRpZmYgLXIgMmE4MmE3YmM5MWU3ZWYxYmFhZjI4MjA4OTIzZThiM2Zk
Y2UzZmRiYiAtciA0ZDg4M2RhMjE4MTE5ZjhhZDkyMzJiNj0KMTFiY2YwYmRmODZjZTc2YzkgY2xp
ZW50L2dhbGF4eS9zY3JpcHRzL212Yy90b29scy90b29scy1mb3JtLWJhc2UuanMKLS0tIGEvY2xp
ZW50L2dhbGF4eS9zY3JpcHRzL212Yy90b29scy90b29scy1mb3JtLWJhc2UuanMKKysrIGIvY2xp
ZW50L2dhbGF4eS9zY3JpcHRzL212Yy90b29scy90b29scy1mb3JtLWJhc2UuanMKQEAgLTE0MSw3
ICsxNDEsNyBAQAogICAgICAgICAgICA9MjAKICAgICAgICAgICAgICAgICAvLyBzY3JvbGwgdG8g
Zmlyc3QgaW5wdXQgZWxlbWVudAogICAgICAgICAgICAgICAgIGlmICghc2lsZW50KSB7Ci0gICAg
ICAgICAgICAgICAgICAgICQodGhpcy5jb250YWluZXIpLmFuaW1hdGUoeworICAgICAgICAgICAg
ICAgICAgICAkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBzY3JvbGxUb3A6IGlucHV0X2VsZW1lbnQuJGVsLm9mZnNldCgpLnRvcCAtIDIwCiAgICAgICAg
ICAgICAgICAgICAgIH0sIDUwMCk7CiAgICAgICAgICAgICAgICAgfQoKZGlmZiAtciAyYTgyYTdi
YzkxZTdlZjFiYWFmMjgyMDg5MjNlOGIzZmRjZTNmZGJiIC1yIDRkODgzZGEyMTgxMTlmOGFkOTIz
MmI2PQoxMWJjZjBiZGY4NmNlNzZjOSBjbGllbnQvZ2FsYXh5L3NjcmlwdHMvbXZjL3Rvb2xzL3Rv
b2xzLWZvcm0td29ya2Zsb3cuanMKLS0tIGEvY2xpZW50L2dhbGF4eS9zY3JpcHRzL212Yy90b29s
cy90b29scy1mb3JtLXdvcmtmbG93LmpzCisrKyBiL2NsaWVudC9nYWxheHkvc2NyaXB0cy9tdmMv
dG9vbHMvdG9vbHMtZm9ybS13b3JrZmxvdy5qcwpAQCAtMTMzLDcgKzEzMyw3IEBACiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgIGV4dGVuc2lvbnMudW5zaGlmdCh7CiAgICAgICAgICAgICAg
ICAgMCA6ICdMZWF2ZSB1bmNoYW5nZWQnLAotICAgICAgICAgICAgICAgIDEgOiAnJworICAgICAg
ICAgICAgICAgIDEgOiAnX19lbXB0eV9fJwogICAgICAgICAgICAgfSk7Cj0yMAogICAgICAgICAg
ICAgLy8gY3JlYXRlIGN1c3RvbSBzdWIgc2VjdGlvbgpAQCAtMTUzLDcgKzE1Myw4IEBACiAgICAg
ICAgICAgICAgICAgICAgIGFyZ3VtZW50ICAgIDogJ25ld3R5cGUnLAogICAgICAgICAgICAgICAg
ICAgICBsYWJlbCAgICAgICA6ICdDaGFuZ2UgZGF0YXR5cGUnLAogICAgICAgICAgICAgICAgICAg
ICB0eXBlICAgICAgICA6ICdzZWxlY3QnLAotICAgICAgICAgICAgICAgICAgICBpZ25vcmUgICAg
ICA6ICcnLAorICAgICAgICAgICAgICAgICAgICBpZ25vcmUgICAgICA6ICdfX2VtcHR5X18nLAor
ICAgICAgICAgICAgICAgICAgICB2YWx1ZSAgICAgICA6ICdfX2VtcHR5X18nLAogICAgICAgICAg
ICAgICAgICAgICBvcHRpb25zICAgICA6IGV4dGVuc2lvbnMsCiAgICAgICAgICAgICAgICAgICAg
IGhlbHAgICAgICAgIDogJ1RoaXMgYWN0aW9uIHdpbGwgY2hhbmdlIHRoZSBkYXRhdHlwZSBvZj0K
IHRoZSBvdXRwdXQgdG8gdGhlIGluZGljYXRlZCB2YWx1ZS4nCiAgICAgICAgICAgICAgICAgfSx7
CgpkaWZmIC1yIDJhODJhN2JjOTFlN2VmMWJhYWYyODIwODkyM2U4YjNmZGNlM2ZkYmIgLXIgNGQ4
ODNkYTIxODExOWY4YWQ5MjMyYjY9CjExYmNmMGJkZjg2Y2U3NmM5IGNsaWVudC9nYWxheHkvc2Ny
aXB0cy9tdmMvdG9vbHMvdG9vbHMtc2VsZWN0LWNvbnRlbnQuanMKLS0tIGEvY2xpZW50L2dhbGF4
eS9zY3JpcHRzL212Yy90b29scy90b29scy1zZWxlY3QtY29udGVudC5qcworKysgYi9jbGllbnQv
Z2FsYXh5L3NjcmlwdHMvbXZjL3Rvb2xzL3Rvb2xzLXNlbGVjdC1jb250ZW50LmpzCkBAIC03NSw2
ICs3NSw3IEBACiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHRoaXMuc2VsZWN0X211bHRp
cGxlID0zRCBuZXcgVWkuU2VsZWN0LlZpZXcoewogICAgICAgICAgICAgICAgIG11bHRpcGxlICAg
IDogdHJ1ZSwKKyAgICAgICAgICAgICAgICBzZWFyY2hhYmxlICA6IGZhbHNlLAogICAgICAgICAg
ICAgICAgIGVycm9yX3RleHQgIDogaGRhX2Vycm9yLAogICAgICAgICAgICAgICAgIG9uY2hhbmdl
ICAgIDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJpZ2dlcignY2hh
bmdlJyk7CgpUaGlzIGRpZmYgaXMgc28gYmlnIHRoYXQgd2UgbmVlZGVkIHRvIHRydW5jYXRlIHRo
ZSByZW1haW5kZXIuCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFs
L2NvbW1pdHMvMDgxODY1YjViYTFjLwpDaGFuZ2VzZXQ6ICAgMDgxODY1YjViYTFjCkJyYW5jaDog
ICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBtYXJ0ZW5zb24KRGF0ZTogICAgICAgIDIw
MTUtMDItMjMgMTg6NTM6MTMrMDA6MDAKU3VtbWFyeTogICAgIGZpeCBlcnJvciBwcmV2ZW50aW5n
IGNoYW5nZSBvZiB1c2VybmFtZSBpbiBUUwpBZmZlY3RlZCAjOiAgMSBmaWxlCgpkaWZmIC1yIDRk
ODgzZGEyMTgxMTlmOGFkOTIzMmI2MTFiY2YwYmRmODZjZTc2YzkgLXIgMDgxODY1YjViYTFjYTkw
YmU5OTljY2Y9CjFjNWRhY2JmZjVlM2YxZmRiIHRlbXBsYXRlcy91c2VyL2luZm8ubWFrbwotLS0g
YS90ZW1wbGF0ZXMvdXNlci9pbmZvLm1ha28KKysrIGIvdGVtcGxhdGVzL3VzZXIvaW5mby5tYWtv
CkBAIC05OSwxMyArOTksMTMgQEAKICAgICAgICAgICAgICAgICA8bGFiZWw+UHVibGljIG5hbWU6
PC9sYWJlbD4KICAgICAgICAgICAgICAgICAlaWYgdC53ZWJhcHAubmFtZSA9M0Q9M0QgJ3Rvb2xf
c2hlZCc6CiAgICAgICAgICAgICAgICAgICAgICVpZiB1c2VyLmFjdGl2ZV9yZXBvc2l0b3JpZXM6
Ci0gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0zRCJoaWRkZW4iIG5hbWU9M0Qi
dXNlcm5hbWUiIHZhbHVlPTNEIj0KJHt1c2VybmFtZSB8IGh9Ii8+CisgICAgICAgICAgICAgICAg
ICAgICAgICA8aW5wdXQgdHlwZT0zRCJoaWRkZW4iIGlkPTNEIm5hbWVfaW5wdXQiIG5hbWU9M0Qi
dT0Kc2VybmFtZSIgdmFsdWU9M0QiJHt1c2VybmFtZSB8IGh9Ii8+CiAgICAgICAgICAgICAgICAg
ICAgICAgICAke3VzZXJuYW1lIHwgaH0KICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9M0QidG9vbFBhcmFtSGVscCIgc3R5bGU9M0QiY2xlYXI6IGJvdGg7PQoiPgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFlvdSBjYW5ub3QgY2hhbmdlIHlvdXIgcHVibGljIG5hbWUgYWZ0
ZXIgeW91IGg9CmF2ZSBjcmVhdGVkIGEgcmVwb3NpdG9yeSBpbiB0aGlzIHRvb2wgc2hlZC4KICAg
ICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAlZWxzZToK
LSAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPTNEInRleHQiIG5hbWU9M0QidXNl
cm5hbWUiIHNpemU9M0QiNDAiPQogdmFsdWU9M0QiJHt1c2VybmFtZSB8IGh9Ii8+CisgICAgICAg
ICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0zRCJ0ZXh0IiBpZD0zRCJuYW1lX2lucHV0IiBu
YW1lPTNEInVzZT0Kcm5hbWUiIHNpemU9M0QiNDAiIHZhbHVlPTNEIiR7dXNlcm5hbWUgfCBofSIv
PjxkaXYgY2xhc3M9M0QidG9vbFBhcmFtSGVscCIgPQpzdHlsZT0zRCJjbGVhcjogYm90aDsiPgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlvdXIgcHVibGljIG5hbWUgcHJvdmlkZXMgYSBt
ZWFucyBvZiBpZGVudGlmeWk9Cm5nIHlvdSBwdWJsaWNseSB3aXRoaW4gdGhpcyB0b29sIHNoZWQu
IFB1YmxpYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzIG11c3QgYmUgYXQgbGVh
c3QgZm91ciBjaGFyYWN0ZXJzIGluIGxlbmc9CnRoIGFuZCBjb250YWluIG9ubHkgbG93ZXItY2Fz
ZSBsZXR0ZXJzLCBudW1iZXJzLAoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5
LWNlbnRyYWwvY29tbWl0cy9jYjIwMDUwNGJmZTIvCkNoYW5nZXNldDogICBjYjIwMDUwNGJmZTIK
QnJhbmNoOiAgICAgIHJlbGVhc2VfMTUuMDMKVXNlcjogICAgICAgIGRhbm5vbgpEYXRlOiAgICAg
ICAgMjAxNS0wMi0yMyAyMDowNzo1OCswMDowMApTdW1tYXJ5OiAgICAgQnVnZml4IGZvciBjbGlj
a2luZyBjYW5jZWwgaW4gYSBtZW51IGFuZCBoYXZpbmcgdGhlIGFjdGlvbiBoYXA9CnBlbiBhbnl3
YXkuCkFmZmVjdGVkICM6ICAzIGZpbGVzCgpkaWZmIC1yIDA4MTg2NWI1YmExY2E5MGJlOTk5Y2Nm
MWM1ZGFjYmZmNWUzZjFmZGIgLXIgY2IyMDA1MDRiZmUyZjQ3NTViN2FhNjk9CmFiNGJlZmQxMzFi
ZmNkNTUxIGNsaWVudC9nYWxheHkvc2NyaXB0cy9tdmMvdWkvcG9wdXAtbWVudS5qcwotLS0gYS9j
bGllbnQvZ2FsYXh5L3NjcmlwdHMvbXZjL3VpL3BvcHVwLW1lbnUuanMKKysrIGIvY2xpZW50L2dh
bGF4eS9zY3JpcHRzL212Yy91aS9wb3B1cC1tZW51LmpzCkBAIC01NSw4ICs1NSwxMSBAQAogICAg
ICAgICAgICAgICAgIGlmKCBvcHRpb24uZnVuYyApewogICAgICAgICAgICAgICAgICAgICAkKCB0
aGlzICkuY2hpbGRyZW4oICdhLnBvcHVwbWVudS1vcHRpb24nICkuY2xpY2soIGZ1bmM9CnRpb24o
IGV2ZW50ICl7CiAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uZnVuYy5jYWxsKCBtZW51
LCBldmVudCwgb3B0aW9uICk7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBtdXN0IHBy
ZXZlbnREZWZhdWx0IG90aGVyd2lzZSBjbGlja2luZyAiY2FuYz0KZWwiCisgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBvbiBhIHB1cmdlIG9yIHNvbWV0aGluZyBzdGlsbCBuYXZpZ2F0ZXMgYW5k
IGNhdT0Kc2VzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgYWN0aW9uLgorICAgICAg
ICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIGJ1YmJsZSB1cCBzbyB0aGF0IGFuIG9wdGlvbiBjbGljayB3aWxsIGNhbGwg
dGhlPQogY2xvc2UgYmVoYXZpb3IKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9KTsKCmRpZmYgLXIgMDgxODY1YjViYTFjYTkwYmU5OTljY2YxYzVkYWNiZmY1ZTNmMWZk
YiAtciBjYjIwMDUwNGJmZTJmNDc1NWI3YWE2OT0KYWI0YmVmZDEzMWJmY2Q1NTEgc3RhdGljL3Nj
cmlwdHMvbXZjL3VpL3BvcHVwLW1lbnUuanMKLS0tIGEvc3RhdGljL3NjcmlwdHMvbXZjL3VpL3Bv
cHVwLW1lbnUuanMKKysrIGIvc3RhdGljL3NjcmlwdHMvbXZjL3VpL3BvcHVwLW1lbnUuanMKQEAg
LTU1LDggKzU1LDExIEBACiAgICAgICAgICAgICAgICAgaWYoIG9wdGlvbi5mdW5jICl7CiAgICAg
ICAgICAgICAgICAgICAgICQoIHRoaXMgKS5jaGlsZHJlbiggJ2EucG9wdXBtZW51LW9wdGlvbicg
KS5jbGljayggZnVuYz0KdGlvbiggZXZlbnQgKXsKICAgICAgICAgICAgICAgICAgICAgICAgIG9w
dGlvbi5mdW5jLmNhbGwoIG1lbnUsIGV2ZW50LCBvcHRpb24gKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIFdlIG11c3QgcHJldmVudERlZmF1bHQgb3RoZXJ3aXNlIGNsaWNraW5nICJjYW5j
PQplbCIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uIGEgcHVyZ2Ugb3Igc29tZXRoaW5n
IHN0aWxsIG5hdmlnYXRlcyBhbmQgY2F1PQpzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHRoZSBhY3Rpb24uCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVs
dCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnViYmxlIHVwIHNvIHRoYXQgYW4gb3B0
aW9uIGNsaWNrIHdpbGwgY2FsbCB0aGU9CiBjbG9zZSBiZWhhdmlvcgotICAgICAgICAgICAgICAg
ICAgICAgICAgLy9yZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwoKZGlmZiAtciAwODE4NjViNWJhMWNhOTBiZTk5
OWNjZjFjNWRhY2JmZjVlM2YxZmRiIC1yIGNiMjAwNTA0YmZlMmY0NzU1YjdhYTY5PQphYjRiZWZk
MTMxYmZjZDU1MSBzdGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL3VpL3BvcHVwLW1lbnUuanMKLS0t
IGEvc3RhdGljL3NjcmlwdHMvcGFja2VkL212Yy91aS9wb3B1cC1tZW51LmpzCisrKyBiL3N0YXRp
Yy9zY3JpcHRzL3BhY2tlZC9tdmMvdWkvcG9wdXAtbWVudS5qcwpAQCAtMSwxICsxLDEgQEAKLWRl
ZmluZShbXSxmdW5jdGlvbigpe3ZhciBhPTNEQmFja2JvbmUuVmlldy5leHRlbmQoe2luaXRpYWxp
emU6ZnVuY3Rpb24oZCxjPQope3RoaXMuJGJ1dHRvbj0zRGQ7aWYoIXRoaXMuJGJ1dHRvbi5zaXpl
KCkpe3RoaXMuJGJ1dHRvbj0zRCQoIjxkaXYvPiIpfXRoaXM9Ci5vcHRpb25zPTNEY3x8W107dmFy
IGU9M0R0aGlzO3RoaXMuJGJ1dHRvbi5jbGljayhmdW5jdGlvbihmKXskKCIucG9wbWVudS13cj0K
YXBwZXIiKS5yZW1vdmUoKTtlLl9yZW5kZXJBbmRTaG93KGYpO3JldHVybiBmYWxzZX0pfSxfcmVu
ZGVyQW5kU2hvdzpmdW5jdGlvPQpuKGMpe3RoaXMucmVuZGVyKCk7dGhpcy4kZWwuYXBwZW5kVG8o
ImJvZHkiKS5jc3ModGhpcy5fZ2V0U2hvd25Qb3NpdGlvbihjKSk9Ci5zaG93KCk7dGhpcy5fc2V0
VXBDbG9zZUJlaGF2aW9yKCl9LHJlbmRlcjpmdW5jdGlvbigpe3RoaXMuJGVsLmFkZENsYXNzKCJw
bz0KcG1lbnUtd3JhcHBlciIpLmhpZGUoKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSJ9KS5odG1s
KHRoaXMudGVtcGxhdGUodGhpcy4kPQpidXR0b24uYXR0cigiaWQiKSx0aGlzLm9wdGlvbnMpKTtp
Zih0aGlzLm9wdGlvbnMubGVuZ3RoKXt2YXIgYz0zRHRoaXM7dGhpcy49CiRlbC5maW5kKCJsaSIp
LmVhY2goZnVuY3Rpb24oZSxkKXt2YXIgZj0zRGMub3B0aW9uc1tlXTtpZihmLmZ1bmMpeyQodGhp
cykuYz0KaGlsZHJlbigiYS5wb3B1cG1lbnUtb3B0aW9uIikuY2xpY2soZnVuY3Rpb24oZyl7Zi5m
dW5jLmNhbGwoYyxnLGYpfSl9fSl9cmV0PQp1cm4gdGhpc30sdGVtcGxhdGU6ZnVuY3Rpb24oZCxj
KXtyZXR1cm5bJzx1bCBpZD0zRCInLGQsJy1tZW51IiBjbGFzcz0zRCJkcm89CnBkb3duLW1lbnUi
PicsdGhpcy5fdGVtcGxhdGVPcHRpb25zKGMpLCI8L3VsPiJdLmpvaW4oIiIpfSxfdGVtcGxhdGVP
cHRpb25zOj0KZnVuY3Rpb24oYyl7aWYoIWMubGVuZ3RoKXtyZXR1cm4iPGxpPihubyBvcHRpb25z
KTwvbGk+In1yZXR1cm4gXy5tYXAoYyxmdW5jPQp0aW9uKGYpe2lmKGYuZGl2aWRlcil7cmV0dXJu
JzxsaSBjbGFzcz0zRCJkaXZpZGVyIj48L2xpPid9ZWxzZXtpZihmLmhlYWRlcik9CntyZXR1cm5b
JzxsaSBjbGFzcz0zRCJoZWFkIj48YSBocmVmPTNEImphdmFzY3JpcHQ6dm9pZCgwKTsiPicsZi5o
dG1sLCI8L2E+PD0KL2xpPiJdLmpvaW4oIiIpfX12YXIgZT0zRGYuaHJlZnx8ImphdmFzY3JpcHQ6
dm9pZCgwKTsiLGc9M0QoZi50YXJnZXQpPygnIHRhPQpyZ2V0PTNEIicrZi50YXJnZXQrJyInKToo
IiIpLGQ9M0QoZi5jaGVja2VkKT8oJzxzcGFuIGNsYXNzPTNEImZhIGZhLWNoZWNrIj49Cjwvc3Bh
bj4nKTooIiIpO3JldHVyblsnPGxpPjxhIGNsYXNzPTNEInBvcHVwbWVudS1vcHRpb24iIGhyZWY9
M0QiJyxlLCciJyxnLD0KIj4iLGQsZi5odG1sLCI8L2E+PC9saT4iXS5qb2luKCIiKX0pLmpvaW4o
IiIpfSxfZ2V0U2hvd25Qb3NpdGlvbjpmdW5jdGlvbihkPQope3ZhciBlPTNEdGhpcy4kZWwud2lk
dGgoKTt2YXIgYz0zRGQucGFnZVgtZS8yO2M9M0RNYXRoLm1pbihjLCQoZG9jdW1lbnQpLnM9CmNy
b2xsTGVmdCgpKyQod2luZG93KS53aWR0aCgpLWUtNSk7Yz0zRE1hdGgubWF4KGMsJChkb2N1bWVu
dCkuc2Nyb2xsTGVmdCgpKz0KNSk7cmV0dXJue3RvcDpkLnBhZ2VZLGxlZnQ6Y319LF9zZXRVcENs
b3NlQmVoYXZpb3I6ZnVuY3Rpb24oKXt2YXIgZT0zRHRoaXM7PQpmdW5jdGlvbiBjKGcpeyQoZG9j
dW1lbnQpLm9mZigiY2xpY2suY2xvc2VfcG9wdXAiKTtpZih3aW5kb3cucGFyZW50IT0zRD0zRHc9
CmluZG93KXt0cnl7JCh3aW5kb3cucGFyZW50LmRvY3VtZW50KS5vZmYoImNsaWNrLmNsb3NlX3Bv
cHVwIil9Y2F0Y2goZil7fX1lbD0Kc2V7dHJ5eyQoImlmcmFtZSNnYWxheHlfbWFpbiIpLmNvbnRl
bnRzKCkub2ZmKCJjbGljay5jbG9zZV9wb3B1cCIpfWNhdGNoKGYpPQp7fX1lLnJlbW92ZSgpfSQo
Imh0bWwiKS5vbmUoImNsaWNrLmNsb3NlX3BvcHVwIixjKTtpZih3aW5kb3cucGFyZW50IT0zRD0z
RHc9CmluZG93KXt0cnl7JCh3aW5kb3cucGFyZW50LmRvY3VtZW50KS5maW5kKCJodG1sIikub25l
KCJjbGljay5jbG9zZV9wb3B1cCIsYz0KKX1jYXRjaChkKXt9fWVsc2V7dHJ5eyQoImlmcmFtZSNn
YWxheHlfbWFpbiIpLmNvbnRlbnRzKCkub25lKCJjbGljay5jbG9zZV9wPQpvcHVwIixjKX1jYXRj
aChkKXt9fX0sYWRkSXRlbTpmdW5jdGlvbihkLGMpe2M9M0QoYz49M0QwKT9jOnRoaXMub3B0aW9u
cy5sZW49Cmd0aDt0aGlzLm9wdGlvbnMuc3BsaWNlKGMsMCxkKTtyZXR1cm4gdGhpc30scmVtb3Zl
SXRlbTpmdW5jdGlvbihjKXtpZihjPj0zRD0KMCl7dGhpcy5vcHRpb25zLnNwbGljZShjLDEpfXJl
dHVybiB0aGlzfSxmaW5kSW5kZXhCeUh0bWw6ZnVuY3Rpb24oZCl7Zm9yKHZhPQpyIGM9M0QwO2M8
dGhpcy5vcHRpb25zLmxlbmd0aDtjKyspe2lmKF8uaGFzKHRoaXMub3B0aW9uc1tjXSwiaHRtbCIp
JiYodGhpcy49Cm9wdGlvbnNbY10uaHRtbD0zRD0zRD0zRGQpKXtyZXR1cm4gY319cmV0dXJuIG51
bGx9LGZpbmRJdGVtQnlIdG1sOmZ1bmN0aW9uKD0KYyl7cmV0dXJuIHRoaXMub3B0aW9uc1sodGhp
cy5maW5kSW5kZXhCeUh0bWwoYykpXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1PQpybiJQb3B1
cE1lbnUifX0pO2EuY3JlYXRlPTNEZnVuY3Rpb24gYihkLGMpe3JldHVybiBuZXcgYShkLGMpfTth
Lm1ha2VfcG9wdXA9Cm1lbnU9M0RmdW5jdGlvbihkLGUpe3ZhciBjPTNEW107Xy5lYWNoKGUsZnVu
Y3Rpb24oaCxmKXt2YXIgZz0zRHtodG1sOmZ9O2lmKD0KaD0zRD0zRD0zRG51bGwpe2cuaGVhZGVy
PTNEdHJ1ZX1lbHNle2lmKGpRdWVyeS50eXBlKGgpPTNEPTNEPTNEImZ1bmN0aW9uIil7PQpnLmZ1
bmM9M0RofX1jLnB1c2goZyl9KTtyZXR1cm4gbmV3IGEoJChkKSxjKX07YS5jb252ZXJ0TGlua3NU
b09wdGlvbnM9M0RmdW49CmN0aW9uKGUsYyl7ZT0zRCQoZSk7Yz0zRGN8fCJhIjt2YXIgZD0zRFtd
O2UuZmluZChjKS5lYWNoKGZ1bmN0aW9uKGosZyl7dmFyID0KaD0zRHt9LGY9M0QkKGopO2guaHRt
bD0zRGYudGV4dCgpO2lmKGYuYXR0cigiaHJlZiIpKXt2YXIgbD0zRGYuYXR0cigiaHJlZiIpPQos
bT0zRGYuYXR0cigidGFyZ2V0Iiksaz0zRGYuYXR0cigiY29uZmlybSIpO2guZnVuYz0zRGZ1bmN0
aW9uKCl7aWYoKGspJiYoIWM9Cm9uZmlybShrKSkpe3JldHVybn1zd2l0Y2gobSl7Y2FzZSJfcGFy
ZW50Ijp3aW5kb3cucGFyZW50LmxvY2F0aW9uPTNEbDticmVhaz0KO2Nhc2UiX3RvcCI6d2luZG93
LnRvcC5sb2NhdGlvbj0zRGw7YnJlYWs7ZGVmYXVsdDp3aW5kb3cubG9jYXRpb249M0RsfX19ZC5w
PQp1c2goaCl9KTtyZXR1cm4gZH07YS5mcm9tRXhpc3RpbmdEb209M0RmdW5jdGlvbihmLGUsYyl7
Zj0zRCQoZik7ZT0zRCQoZSk7dmE9CnIgZD0zRGEuY29udmVydExpbmtzVG9PcHRpb25zKGUsYyk7
ZS5yZW1vdmUoKTtyZXR1cm4gbmV3IGEoZixkKX07YS5tYWtlX3BvcD0KdXBfbWVudXM9M0RmdW5j
dGlvbihlLGQsZil7ZT0zRGV8fGRvY3VtZW50O2Q9M0RkfHwiZGl2W3BvcHVwbWVudV0iO2Y9M0Rm
fHxmPQp1bmN0aW9uKGcsaCl7cmV0dXJuIiMiK2cuYXR0cigicG9wdXBtZW51Iil9O3ZhciBjPTNE
W107JChlKS5maW5kKGQpLmVhY2goZnU9Cm5jdGlvbigpe3ZhciBnPTNEJCh0aGlzKSxoPTNEJChl
KS5maW5kKGYoZyxlKSk7Yy5wdXNoKGEuZnJvbURvbShoLGcpKTtoLmFkZD0KQ2xhc3MoInBvcHVw
Iil9KTtyZXR1cm4gY307cmV0dXJuIGF9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitk
ZWZpbmUoW10sZnVuY3Rpb24oKXt2YXIgYT0zREJhY2tib25lLlZpZXcuZXh0ZW5kKHtpbml0aWFs
aXplOmZ1bmN0aW9uKGQsYz0KKXt0aGlzLiRidXR0b249M0RkO2lmKCF0aGlzLiRidXR0b24uc2l6
ZSgpKXt0aGlzLiRidXR0b249M0QkKCI8ZGl2Lz4iKX10aGlzPQoub3B0aW9ucz0zRGN8fFtdO3Zh
ciBlPTNEdGhpczt0aGlzLiRidXR0b24uY2xpY2soZnVuY3Rpb24oZil7JCgiLnBvcG1lbnUtd3I9
CmFwcGVyIikucmVtb3ZlKCk7ZS5fcmVuZGVyQW5kU2hvdyhmKTtyZXR1cm4gZmFsc2V9KX0sX3Jl
bmRlckFuZFNob3c6ZnVuY3Rpbz0KbihjKXt0aGlzLnJlbmRlcigpO3RoaXMuJGVsLmFwcGVuZFRv
KCJib2R5IikuY3NzKHRoaXMuX2dldFNob3duUG9zaXRpb24oYykpPQouc2hvdygpO3RoaXMuX3Nl
dFVwQ2xvc2VCZWhhdmlvcigpfSxyZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLiRlbC5hZGRDbGFzcygi
cG89CnBtZW51LXdyYXBwZXIiKS5oaWRlKCkuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUifSkuaHRt
bCh0aGlzLnRlbXBsYXRlKHRoaXMuJD0KYnV0dG9uLmF0dHIoImlkIiksdGhpcy5vcHRpb25zKSk7
aWYodGhpcy5vcHRpb25zLmxlbmd0aCl7dmFyIGM9M0R0aGlzO3RoaXMuPQokZWwuZmluZCgibGki
KS5lYWNoKGZ1bmN0aW9uKGUsZCl7dmFyIGY9M0RjLm9wdGlvbnNbZV07aWYoZi5mdW5jKXskKHRo
aXMpLmM9CmhpbGRyZW4oImEucG9wdXBtZW51LW9wdGlvbiIpLmNsaWNrKGZ1bmN0aW9uKGcpe2Yu
ZnVuYy5jYWxsKGMsZyxmKTtnLnByZXZlbj0KdERlZmF1bHQoKX0pfX0pfXJldHVybiB0aGlzfSx0
ZW1wbGF0ZTpmdW5jdGlvbihkLGMpe3JldHVyblsnPHVsIGlkPTNEIicsZCwnPQotbWVudSIgY2xh
c3M9M0QiZHJvcGRvd24tbWVudSI+Jyx0aGlzLl90ZW1wbGF0ZU9wdGlvbnMoYyksIjwvdWw+Il0u
am9pbigiIik9Cn0sX3RlbXBsYXRlT3B0aW9uczpmdW5jdGlvbihjKXtpZighYy5sZW5ndGgpe3Jl
dHVybiI8bGk+KG5vIG9wdGlvbnMpPC9saT4ifT0KcmV0dXJuIF8ubWFwKGMsZnVuY3Rpb24oZil7
aWYoZi5kaXZpZGVyKXtyZXR1cm4nPGxpIGNsYXNzPTNEImRpdmlkZXIiPjwvbGk+PQonfWVsc2V7
aWYoZi5oZWFkZXIpe3JldHVyblsnPGxpIGNsYXNzPTNEImhlYWQiPjxhIGhyZWY9M0QiamF2YXNj
cmlwdDp2b2lkKDA9Cik7Ij4nLGYuaHRtbCwiPC9hPjwvbGk+Il0uam9pbigiIil9fXZhciBlPTNE
Zi5ocmVmfHwiamF2YXNjcmlwdDp2b2lkKDApOyIsZz0KPTNEKGYudGFyZ2V0KT8oJyB0YXJnZXQ9
M0QiJytmLnRhcmdldCsnIicpOigiIiksZD0zRChmLmNoZWNrZWQpPygnPHNwYW4gY2xhPQpzcz0z
RCJmYSBmYS1jaGVjayI+PC9zcGFuPicpOigiIik7cmV0dXJuWyc8bGk+PGEgY2xhc3M9M0QicG9w
dXBtZW51LW9wdGlvbiI9CiBocmVmPTNEIicsZSwnIicsZywiPiIsZCxmLmh0bWwsIjwvYT48L2xp
PiJdLmpvaW4oIiIpfSkuam9pbigiIil9LF9nZXRTaG93bj0KUG9zaXRpb246ZnVuY3Rpb24oZCl7
dmFyIGU9M0R0aGlzLiRlbC53aWR0aCgpO3ZhciBjPTNEZC5wYWdlWC1lLzI7Yz0zRE1hdGguPQpt
aW4oYywkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkrJCh3aW5kb3cpLndpZHRoKCktZS01KTtjPTNE
TWF0aC5tYXgoYywkKGRvY3U9Cm1lbnQpLnNjcm9sbExlZnQoKSs1KTtyZXR1cm57dG9wOmQucGFn
ZVksbGVmdDpjfX0sX3NldFVwQ2xvc2VCZWhhdmlvcjpmdW5jdD0KaW9uKCl7dmFyIGU9M0R0aGlz
O2Z1bmN0aW9uIGMoZyl7JChkb2N1bWVudCkub2ZmKCJjbGljay5jbG9zZV9wb3B1cCIpO2lmKHdp
PQpuZG93LnBhcmVudCE9M0Q9M0R3aW5kb3cpe3RyeXskKHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQp
Lm9mZigiY2xpY2suY2xvc2VfcG89CnB1cCIpfWNhdGNoKGYpe319ZWxzZXt0cnl7JCgiaWZyYW1l
I2dhbGF4eV9tYWluIikuY29udGVudHMoKS5vZmYoImNsaWNrLmNsbz0Kc2VfcG9wdXAiKX1jYXRj
aChmKXt9fWUucmVtb3ZlKCl9JCgiaHRtbCIpLm9uZSgiY2xpY2suY2xvc2VfcG9wdXAiLGMpO2lm
KHdpPQpuZG93LnBhcmVudCE9M0Q9M0R3aW5kb3cpe3RyeXskKHdpbmRvdy5wYXJlbnQuZG9jdW1l
bnQpLmZpbmQoImh0bWwiKS5vbmUoImM9CmxpY2suY2xvc2VfcG9wdXAiLGMpfWNhdGNoKGQpe319
ZWxzZXt0cnl7JCgiaWZyYW1lI2dhbGF4eV9tYWluIikuY29udGVudHMoKT0KLm9uZSgiY2xpY2su
Y2xvc2VfcG9wdXAiLGMpfWNhdGNoKGQpe319fSxhZGRJdGVtOmZ1bmN0aW9uKGQsYyl7Yz0zRChj
Pj0zRDApPQo/Yzp0aGlzLm9wdGlvbnMubGVuZ3RoO3RoaXMub3B0aW9ucy5zcGxpY2UoYywwLGQp
O3JldHVybiB0aGlzfSxyZW1vdmVJdGVtOmY9CnVuY3Rpb24oYyl7aWYoYz49M0QwKXt0aGlzLm9w
dGlvbnMuc3BsaWNlKGMsMSl9cmV0dXJuIHRoaXN9LGZpbmRJbmRleEJ5SHRtbD0KOmZ1bmN0aW9u
KGQpe2Zvcih2YXIgYz0zRDA7Yzx0aGlzLm9wdGlvbnMubGVuZ3RoO2MrKyl7aWYoXy5oYXModGhp
cy5vcHRpb25zPQpbY10sImh0bWwiKSYmKHRoaXMub3B0aW9uc1tjXS5odG1sPTNEPTNEPTNEZCkp
e3JldHVybiBjfX1yZXR1cm4gbnVsbH0sZmluZEk9CnRlbUJ5SHRtbDpmdW5jdGlvbihjKXtyZXR1
cm4gdGhpcy5vcHRpb25zWyh0aGlzLmZpbmRJbmRleEJ5SHRtbChjKSldfSx0b1N0cj0KaW5nOmZ1
bmN0aW9uKCl7cmV0dXJuIlBvcHVwTWVudSJ9fSk7YS5jcmVhdGU9M0RmdW5jdGlvbiBiKGQsYyl7
cmV0dXJuIG5ldyBhPQooZCxjKX07YS5tYWtlX3BvcHVwbWVudT0zRGZ1bmN0aW9uKGQsZSl7dmFy
IGM9M0RbXTtfLmVhY2goZSxmdW5jdGlvbihoLGYpe3Y9CmFyIGc9M0R7aHRtbDpmfTtpZihoPTNE
PTNEPTNEbnVsbCl7Zy5oZWFkZXI9M0R0cnVlfWVsc2V7aWYoalF1ZXJ5LnR5cGUoaCk9Cj0zRD0z
RD0zRCJmdW5jdGlvbiIpe2cuZnVuYz0zRGh9fWMucHVzaChnKX0pO3JldHVybiBuZXcgYSgkKGQp
LGMpfTthLmNvbnZlcj0KdExpbmtzVG9PcHRpb25zPTNEZnVuY3Rpb24oZSxjKXtlPTNEJChlKTtj
PTNEY3x8ImEiO3ZhciBkPTNEW107ZS5maW5kKGMpLmVhPQpjaChmdW5jdGlvbihqLGcpe3ZhciBo
PTNEe30sZj0zRCQoaik7aC5odG1sPTNEZi50ZXh0KCk7aWYoZi5hdHRyKCJocmVmIikpe3Y9CmFy
IGw9M0RmLmF0dHIoImhyZWYiKSxtPTNEZi5hdHRyKCJ0YXJnZXQiKSxrPTNEZi5hdHRyKCJjb25m
aXJtIik7aC5mdW5jPTNEZj0KdW5jdGlvbigpe2lmKChrKSYmKCFjb25maXJtKGspKSl7cmV0dXJu
fXN3aXRjaChtKXtjYXNlIl9wYXJlbnQiOndpbmRvdy5wYXJlPQpudC5sb2NhdGlvbj0zRGw7YnJl
YWs7Y2FzZSJfdG9wIjp3aW5kb3cudG9wLmxvY2F0aW9uPTNEbDticmVhaztkZWZhdWx0OndpbmQ9
Cm93LmxvY2F0aW9uPTNEbH19fWQucHVzaChoKX0pO3JldHVybiBkfTthLmZyb21FeGlzdGluZ0Rv
bT0zRGZ1bmN0aW9uKGYsZSxjKT0Ke2Y9M0QkKGYpO2U9M0QkKGUpO3ZhciBkPTNEYS5jb252ZXJ0
TGlua3NUb09wdGlvbnMoZSxjKTtlLnJlbW92ZSgpO3JldHVybiBuPQpldyBhKGYsZCl9O2EubWFr
ZV9wb3B1cF9tZW51cz0zRGZ1bmN0aW9uKGUsZCxmKXtlPTNEZXx8ZG9jdW1lbnQ7ZD0zRGR8fCJk
aXY9Cltwb3B1cG1lbnVdIjtmPTNEZnx8ZnVuY3Rpb24oZyxoKXtyZXR1cm4iIyIrZy5hdHRyKCJw
b3B1cG1lbnUiKX07dmFyIGM9M0RbXT0KOyQoZSkuZmluZChkKS5lYWNoKGZ1bmN0aW9uKCl7dmFy
IGc9M0QkKHRoaXMpLGg9M0QkKGUpLmZpbmQoZihnLGUpKTtjLnB1c2goPQphLmZyb21Eb20oaCxn
KSk7aC5hZGRDbGFzcygicG9wdXAiKX0pO3JldHVybiBjfTtyZXR1cm4gYX0pOwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKCgpodHRwczovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1j
ZW50cmFsL2NvbW1pdHMvOTM4MDFkNmZhN2JkLwpDaGFuZ2VzZXQ6ICAgOTM4MDFkNmZhN2JkCkJy
YW5jaDogICAgICByZWxlYXNlXzE1LjAzClVzZXI6ICAgICAgICBkYW5ub24KRGF0ZTogICAgICAg
IDIwMTUtMDItMjMgMjE6Mjg6MDErMDA6MDAKU3VtbWFyeTogICAgIFZlcmlmeSBhbmQgYXBwbHkg
QGptY2hpbHRvbidzIGZpeCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9qbWNoPQppbHRvbi9nYWxh
eHktY2VudHJhbC9jb21taXQvMzA2YTg2NTU4YTdlZTdiZTFiYzJkNjhjZDkzOWIxNmI1ZjE4NjNk
NCB0byBuZXg9CnQtc3RhYmxlLiAgU2hvdWxkIGJlIHJlZmFjdG9yZWQgaW50byB1c2luZyB0aGUg
c2FtZSBnYWxheHkubWVudS5qcyBvYmplY3RzID0KLS0gSSdtIGFzc3VtaW5nIHRoYXQncyB3aHkg
dGhpbmdzIGxpa2UgUG9wdXBNZW51LmZyb21FeGlzdGluZ0RvbSBleGlzdCBhbmQgPQphcmUgb3Ro
ZXJ3aXNlIHVudXNlZC4KQWZmZWN0ZWQgIzogIDMgZmlsZXMKCmRpZmYgLXIgY2IyMDA1MDRiZmUy
ZjQ3NTViN2FhNjlhYjRiZWZkMTMxYmZjZDU1MSAtciA5MzgwMWQ2ZmE3YmQzMmE4MWRlMzk3MT0K
Mzc5NTMzMTJjY2E3YTQzYTEgY2xpZW50L2dhbGF4eS9zY3JpcHRzL2dhbGF4eS5iYXNlLmpzCi0t
LSBhL2NsaWVudC9nYWxheHkvc2NyaXB0cy9nYWxheHkuYmFzZS5qcworKysgYi9jbGllbnQvZ2Fs
YXh5L3NjcmlwdHMvZ2FsYXh5LmJhc2UuanMKQEAgLTE3MSw3ICsxNzEsNyBAQAogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBvcHRpb25zWyBsaW5rLnRleHQoKSBdID0zRCB7
CiAgICAgICAgICAgICAgICAgICAgIHVybDogaHJlZiwKLSAgICAgICAgICAgICAgICAgICAgYWN0
aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBmdW5jdGlvbigg
ZXZlbnQgKSB7Cj0yMAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmVzIGNvbmZp
cm0gdGV4dCwgc2VuZCB0aGUgZGlhbG9nCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICFj
b25maXJtdGV4dCB8fCBjb25maXJtKCBjb25maXJtdGV4dCApICkgewpAQCAtMTg1LDcgKzE4NSwx
MCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsaW5rLmNsaWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfTsKICAg
ICAgICAgICAgIH0KCmRpZmYgLXIgY2IyMDA1MDRiZmUyZjQ3NTViN2FhNjlhYjRiZWZkMTMxYmZj
ZDU1MSAtciA5MzgwMWQ2ZmE3YmQzMmE4MWRlMzk3MT0KMzc5NTMzMTJjY2E3YTQzYTEgc3RhdGlj
L3NjcmlwdHMvZ2FsYXh5LmJhc2UuanMKLS0tIGEvc3RhdGljL3NjcmlwdHMvZ2FsYXh5LmJhc2Uu
anMKKysrIGIvc3RhdGljL3NjcmlwdHMvZ2FsYXh5LmJhc2UuanMKQEAgLTE3MSw3ICsxNzEsNyBA
QAogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBvcHRpb25zWyBsaW5rLnRl
eHQoKSBdID0zRCB7CiAgICAgICAgICAgICAgICAgICAgIHVybDogaHJlZiwKLSAgICAgICAgICAg
ICAgICAgICAgYWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9u
OiBmdW5jdGlvbiggZXZlbnQgKSB7Cj0yMAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYg
dGhlcmVzIGNvbmZpcm0gdGV4dCwgc2VuZCB0aGUgZGlhbG9nCiAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoICFjb25maXJtdGV4dCB8fCBjb25maXJtKCBjb25maXJtdGV4dCApICkgewpAQCAt
MTg1LDcgKzE4NSwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLmNsaWNrKCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgfTsKICAgICAgICAgICAgIH0KCmRpZmYgLXIgY2IyMDA1MDRiZmUyZjQ3NTViN2FhNjlh
YjRiZWZkMTMxYmZjZDU1MSAtciA5MzgwMWQ2ZmE3YmQzMmE4MWRlMzk3MT0KMzc5NTMzMTJjY2E3
YTQzYTEgc3RhdGljL3NjcmlwdHMvcGFja2VkL2dhbGF4eS5iYXNlLmpzCi0tLSBhL3N0YXRpYy9z
Y3JpcHRzL3BhY2tlZC9nYWxheHkuYmFzZS5qcworKysgYi9zdGF0aWMvc2NyaXB0cy9wYWNrZWQv
Z2FsYXh5LmJhc2UuanMKQEAgLTEsMSArMSwxIEBACi0oZnVuY3Rpb24oKXt2YXIgYj0zRDA7dmFy
IGM9M0RbIm1zIiwibW96Iiwid2Via2l0IiwibyJdO2Zvcih2YXIgYT0zRDA7YTxjLj0KbGVuZ3Ro
JiYhd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZTsrK2Epe3dpbmRvdy5yZXF1ZXN0QW5pbWF0
aW9uRnJhbWU9M0R3PQppbmRvd1tjW2FdKyJSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXTt3aW5kb3cu
Y2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lPTNEd2k9Cm5kb3dbY1thXSsiQ2FuY2VsUmVxdWVz
dEFuaW1hdGlvbkZyYW1lIl19aWYoIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpez0Kd2lu
ZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT0zRGZ1bmN0aW9uKGgsZSl7dmFyIGQ9M0RuZXcgRGF0
ZSgpLmdldFRpbWUoKTt2PQphciBmPTNETWF0aC5tYXgoMCwxNi0oZC1iKSk7dmFyIGc9M0R3aW5k
b3cuc2V0VGltZW91dChmdW5jdGlvbigpe2goZCtmKX0sZik9CjtiPTNEZCtmO3JldHVybiBnfX1p
Zighd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRj0K
cmFtZT0zRGZ1bmN0aW9uKGQpe2NsZWFyVGltZW91dChkKX19fSgpKTtpZighQXJyYXkuaW5kZXhP
Zil7QXJyYXkucHJvdG90eXBlPQouaW5kZXhPZj0zRGZ1bmN0aW9uKGMpe2Zvcih2YXIgYj0zRDAs
YT0zRHRoaXMubGVuZ3RoO2I8YTtiKyspe2lmKHRoaXNbYl09M0Q9Cj0zRGMpe3JldHVybiBifX1y
ZXR1cm4gLTF9fWZ1bmN0aW9uIG9ial9sZW5ndGgoYyl7aWYoYy5sZW5ndGghPTNEPTNEdW5kZWZp
bj0KZWQpe3JldHVybiBjLmxlbmd0aH12YXIgYj0zRDA7Zm9yKHZhciBhIGluIGMpe2IrK31yZXR1
cm4gYn0kLmZuLm1ha2VBYnNvbHV0PQplPTNEZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChm
dW5jdGlvbigpe3ZhciBiPTNEJCh0aGlzKTt2YXIgYz0zRGIucG9zaXQ9CmlvbigpO2IuY3NzKHtw
b3NpdGlvbjoiYWJzb2x1dGUiLG1hcmdpbkxlZnQ6MCxtYXJnaW5Ub3A6MCx0b3A6Yy50b3AsbGVm
dDpjLj0KbGVmdCxyaWdodDokKHdpbmRvdykud2lkdGgoKS0oYy5sZWZ0K2Iud2lkdGgoKSl9KTtp
ZihhKXtiLnJlbW92ZSgpLmFwcGVuZFRvPQooImJvZHkiKX19KX07ZnVuY3Rpb24gbWFrZV9wb3B1
cG1lbnUoYixjKXt2YXIgYT0zRChiLmRhdGEoIm1lbnVfb3B0aW9ucyIpKTs9CmIuZGF0YSgibWVu
dV9vcHRpb25zIixjKTtpZihhKXtyZXR1cm59Yi5iaW5kKCJjbGljay5zaG93X3BvcHVwIixmdW5j
dGlvbihkKT0KeyQoIi5wb3BtZW51LXdyYXBwZXIiKS5yZW1vdmUoKTtzZXRUaW1lb3V0KGZ1bmN0
aW9uKCl7dmFyIGc9M0QkKCI8dWwgY2xhc3M9Cj0zRCdkcm9wZG93bi1tZW51JyBpZD0zRCciK2Iu
YXR0cigiaWQiKSsiLW1lbnUnPjwvdWw+Iik7dmFyIGY9M0RiLmRhdGEoIm1lbj0KdV9vcHRpb25z
Iik7aWYob2JqX2xlbmd0aChmKTw9M0QwKXskKCI8bGk+Tm8gT3B0aW9ucy48L2xpPiIpLmFwcGVu
ZFRvKGcpfSQuPQplYWNoKGYsZnVuY3Rpb24oaixpKXtpZihpKXt2YXIgbD0zRGkuYWN0aW9ufHxp
O2cuYXBwZW5kKCQoIjxsaT48L2xpPiIpLmFwcGU9Cm5kKCQoIjxhPiIpLmF0dHIoImhyZWYiLGku
dXJsKS5odG1sKGopLmNsaWNrKGwpKSl9ZWxzZXtnLmFwcGVuZCgkKCI8bGk+PC9saT0KPiIpLmFk
ZENsYXNzKCJoZWFkIikuYXBwZW5kKCQoIjxhIGhyZWY9M0QnIyc+PC9hPiIpLmh0bWwoaikpKX19
KTt2YXIgaD0zRCQoPQoiPGRpdiBjbGFzcz0zRCdwb3BtZW51LXdyYXBwZXInIHN0eWxlPTNEJ3Bv
c2l0aW9uOiBhYnNvbHV0ZTtsZWZ0OiAwOyB0b3A6IC09CjEwMDA7Jz48L2Rpdj4iKS5hcHBlbmQo
ZykuYXBwZW5kVG8oImJvZHkiKTt2YXIgZT0zRGQucGFnZVgtaC53aWR0aCgpLzI7ZT0zRD0KTWF0
aC5taW4oZSwkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkrJCh3aW5kb3cpLndpZHRoKCktJChoKS53
aWR0aCgpLTUpO2U9M0RNPQphdGgubWF4KGUsJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpKzUpO2gu
Y3NzKHt0b3A6ZC5wYWdlWSxsZWZ0OmV9KX0sMTApO3NldFQ9CmltZW91dChmdW5jdGlvbigpe3Zh
ciBmPTNEZnVuY3Rpb24oaCl7JChoKS5iaW5kKCJjbGljay5jbG9zZV9wb3B1cCIsZnVuY3Rpbz0K
bigpeyQoIi5wb3BtZW51LXdyYXBwZXIiKS5yZW1vdmUoKTtoLnVuYmluZCgiY2xpY2suY2xvc2Vf
cG9wdXAiKX0pfTtmKCQod2luPQpkb3cuZG9jdW1lbnQpKTtmKCQod2luZG93LnRvcC5kb2N1bWVu
dCkpO2Zvcih2YXIgZT0zRHdpbmRvdy50b3AuZnJhbWVzLmxlbmc9CnRoO2UtLTspe3ZhciBnPTNE
JCh3aW5kb3cudG9wLmZyYW1lc1tlXS5kb2N1bWVudCk7ZihnKX19LDUwKTtyZXR1cm4gZmFsc2V9
KT0KfWZ1bmN0aW9uIG1ha2VfcG9wdXBfbWVudXMoYSl7YT0zRGF8fGRvY3VtZW50OyQoYSkuZmlu
ZCgiZGl2W3BvcHVwbWVudV0iKS5lPQphY2goZnVuY3Rpb24oKXt2YXIgYj0zRHt9O3ZhciBkPTNE
JCh0aGlzKTtkLmZpbmQoImEiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9Cj0zRCQodGhpcyksaT0z
RGcuZ2V0KDApLGU9M0RpLmdldEF0dHJpYnV0ZSgiY29uZmlybSIpLGY9M0RpLmdldEF0dHJpYnV0
ZSgiaD0KcmVmIiksaD0zRGkuZ2V0QXR0cmlidXRlKCJ0YXJnZXQiKTtpZighZil7YltnLnRleHQo
KV09M0RudWxsfWVsc2V7YltnLnRleHQoPQopXT0zRHt1cmw6ZixhY3Rpb246ZnVuY3Rpb24oKXtp
ZighZXx8Y29uZmlybShlKSl7aWYoaCl7d2luZG93Lm9wZW4oZixoKTtyZXQ9CnVybiBmYWxzZX1l
bHNle2cuY2xpY2soKX19fX19fSk7dmFyIGM9M0QkKGEpLmZpbmQoIiMiK2QuYXR0cigicG9wdXBt
ZW51IikpOz0KYy5maW5kKCJhIikuYmluZCgiY2xpY2siLGZ1bmN0aW9uKGYpe2Yuc3RvcFByb3Bh
Z2F0aW9uKCk7cmV0dXJuIHRydWV9KTttYWtlPQpfcG9wdXBtZW51KGMsYik7Yy5hZGRDbGFzcygi
cG9wdXAiKTtkLnJlbW92ZSgpfSl9JC5mbi5yZWZyZXNoX3NlbGVjdDI9M0RmdW49CmN0aW9uKCl7
dmFyIGI9M0QkKHRoaXMpO3ZhciBhPTNEe3BsYWNlaG9sZGVyOiJDbGljayB0byBzZWxlY3QiLGNs
b3NlT25TZWxlYz0KdDohYi5pcygiW01VTFRJUExFXSIpLGRyb3Bkb3duQXV0b1dpZHRoOnRydWUs
Y29udGFpbmVyQ3NzQ2xhc3M6InNlbGVjdDItbWluPQp3aWR0aCJ9O3JldHVybiBiLnNlbGVjdDIo
YSl9O2Z1bmN0aW9uIHJlcGxhY2VfYmlnX3NlbGVjdF9pbnB1dHMoYSxjLGIpe2lmKCE9CmpRdWVy
eS5mbi5zZWxlY3QyKXtyZXR1cm59aWYoYT0zRD0zRD0zRHVuZGVmaW5lZCl7YT0zRDIwfWlmKGM9
M0Q9M0Q9M0R1bmRlZj0KaW5lZCl7Yz0zRDMwMDB9Yj0zRGJ8fCQoInNlbGVjdCIpO2IuZWFjaChm
dW5jdGlvbigpe3ZhciBlPTNEJCh0aGlzKS5ub3QoIlttPQp1bHRpcGxlXSIpO3ZhciBkPTNEZS5m
aW5kKCJvcHRpb24iKS5sZW5ndGg7aWYoKGQ8YSl8fChkPmMpKXtyZXR1cm59aWYoZS5oYXM9CkNs
YXNzKCJuby1hdXRvY29tcGxldGUiKSl7cmV0dXJufWUucmVmcmVzaF9zZWxlY3QyKCl9KX0kLmZu
Lm1ha2VfdGV4dF9lZGl0YT0KYmxlPTNEZnVuY3Rpb24oZyl7dmFyIGQ9M0QoIm51bV9jb2xzIiBp
biBnP2cubnVtX2NvbHM6MzApLGM9M0QoIm51bV9yb3dzIiBpPQpuIGc/Zy5udW1fcm93czo0KSxl
PTNEKCJ1c2VfdGV4dGFyZWEiIGluIGc/Zy51c2VfdGV4dGFyZWE6ZmFsc2UpLGI9M0QoIm9uX2Y9
CmluaXNoIiBpbiBnP2cub25fZmluaXNoOm51bGwpLGY9M0QoImhlbHBfdGV4dCIgaW4gZz9nLmhl
bHBfdGV4dDpudWxsKTt2YXIgYT0KPTNEJCh0aGlzKTthLmFkZENsYXNzKCJlZGl0YWJsZS10ZXh0
IikuY2xpY2soZnVuY3Rpb24obCl7aWYoJCh0aGlzKS5jaGlsZHJlPQpuKCI6aW5wdXQiKS5sZW5n
dGg+MCl7cmV0dXJufWEucmVtb3ZlQ2xhc3MoImVkaXRhYmxlLXRleHQiKTt2YXIgaT0zRGZ1bmN0
aW89Cm4obSl7YS5maW5kKCI6aW5wdXQiKS5yZW1vdmUoKTtpZihtIT0zRD0zRCIiKXthLnRleHQo
bSl9ZWxzZXthLmh0bWwoIjxicj4iKT0KfWEuYWRkQ2xhc3MoImVkaXRhYmxlLXRleHQiKTtpZihi
KXtiKG0pfX07dmFyIGg9M0QoImN1cl90ZXh0IiBpbiBnP2cuY3VyX3RlPQp4dDphLnRleHQoKSks
ayxqO2lmKGUpe2s9M0QkKCI8dGV4dGFyZWEvPiIpLmF0dHIoe3Jvd3M6Yyxjb2xzOmR9KS50ZXh0
KCQudHI9CmltKGgpKS5rZXl1cChmdW5jdGlvbihtKXtpZihtLmtleUNvZGU9M0Q9M0Q9M0QyNyl7
aShoKX19KTtqPTNEJCgiPGJ1dHRvbi8+Ij0KKS50ZXh0KCJEb25lIikuY2xpY2soZnVuY3Rpb24o
KXtpKGsudmFsKCkpO3JldHVybiBmYWxzZX0pfWVsc2V7az0zRCQoIjxpbnB1PQp0IHR5cGU9M0Qn
dGV4dCcvPiIpLmF0dHIoe3ZhbHVlOiQudHJpbShoKSxzaXplOmR9KS5ibHVyKGZ1bmN0aW9uKCl7
aShoKX0pLms9CmV5dXAoZnVuY3Rpb24obSl7aWYobS5rZXlDb2RlPTNEPTNEPTNEMjcpeyQodGhp
cykudHJpZ2dlcigiYmx1ciIpfWVsc2V7aWYobT0KLmtleUNvZGU9M0Q9M0Q9M0QxMyl7aSgkKHRo
aXMpLnZhbCgpKX19bS5zdG9wUHJvcGFnYXRpb24oKX0pfWEudGV4dCgiIik7YS5hPQpwcGVuZChr
KTtpZihqKXthLmFwcGVuZChqKX1rLmZvY3VzKCk7ay5zZWxlY3QoKTtsLnN0b3BQcm9wYWdhdGlv
bigpfSk7aWYoZik9CnthLmF0dHIoInRpdGxlIixmKS50b29sdGlwKCl9cmV0dXJuIGF9O2Z1bmN0
aW9uIGFzeW5jX3NhdmVfdGV4dChkLGYsZSxhLGMsaD0KLGksZyxiKXtpZihjPTNEPTNEPTNEdW5k
ZWZpbmVkKXtjPTNEMzB9aWYoaT0zRD0zRD0zRHVuZGVmaW5lZCl7aT0zRDR9JCgiIyIrPQpkKS5j
bGljayhmdW5jdGlvbigpe2lmKCQoIiNyZW5hbWluZy1hY3RpdmUiKS5sZW5ndGg+MCl7cmV0dXJu
fXZhciBsPTNEJCgiIyI9CitmKSxrPTNEbC50ZXh0KCksajtpZihoKXtqPTNEJCgiPHRleHRhcmVh
PjwvdGV4dGFyZWE+IikuYXR0cih7cm93czppLGNvbHM6Yz0KfSkudGV4dCgkLnRyaW0oaykpfWVs
c2V7aj0zRCQoIjxpbnB1dCB0eXBlPTNEJ3RleHQnPjwvaW5wdXQ+IikuYXR0cih7dmFsdWU6PQok
LnRyaW0oayksc2l6ZTpjfSl9ai5hdHRyKCJpZCIsInJlbmFtaW5nLWFjdGl2ZSIpO2ouYmx1cihm
dW5jdGlvbigpeyQodGhpcyk9Ci5yZW1vdmUoKTtsLnNob3coKTtpZihiKXtiKGopfX0pO2oua2V5
dXAoZnVuY3Rpb24obil7aWYobi5rZXlDb2RlPTNEPTNEPTNEMj0KNyl7JCh0aGlzKS50cmlnZ2Vy
KCJibHVyIil9ZWxzZXtpZihuLmtleUNvZGU9M0Q9M0Q9M0QxMyl7dmFyIG09M0R7fTttW2FdPTNE
PQokKHRoaXMpLnZhbCgpOyQodGhpcykudHJpZ2dlcigiYmx1ciIpOyQuYWpheCh7dXJsOmUsZGF0
YTptLGVycm9yOmZ1bmN0aW9uKCk9CnthbGVydCgiVGV4dCBlZGl0aW5nIGZvciBlbHQgIitmKyIg
ZmFpbGVkIil9LHN1Y2Nlc3M6ZnVuY3Rpb24obyl7aWYobyE9M0Q9Cj0zRCIiKXtsLnRleHQobyl9
ZWxzZXtsLmh0bWwoIjxlbT5Ob25lPC9lbT4iKX1pZihiKXtiKGopfX19KX19fSk7aWYoZyl7Zyhq
KT0KfWwuaGlkZSgpO2ouaW5zZXJ0QWZ0ZXIobCk7ai5mb2N1cygpO2ouc2VsZWN0KCk7cmV0dXJu
fSl9ZnVuY3Rpb24gY29tbWF0aXplPQooYil7Yis9M0QiIjt2YXIgYT0zRC8oXGQrKShcZHszfSkv
O3doaWxlKGEudGVzdChiKSl7Yj0zRGIucmVwbGFjZShhLCIkMSwkMiI9Cil9cmV0dXJuIGJ9ZnVu
Y3Rpb24gcmVzZXRfdG9vbF9zZWFyY2goYSl7dmFyIGM9M0QkKCIjZ2FsYXh5X3Rvb2xzIikuY29u
dGVudD0KcygpO2lmKGMubGVuZ3RoPTNEPTNEPTNEMCl7Yz0zRCQoZG9jdW1lbnQpfSQodGhpcyku
cmVtb3ZlQ2xhc3MoInNlYXJjaF9hY3RpPQp2ZSIpO2MuZmluZCgiLnRvb2xUaXRsZSIpLnJlbW92
ZUNsYXNzKCJzZWFyY2hfbWF0Y2giKTtjLmZpbmQoIi50b29sU2VjdGlvbkI9Cm9keSIpLmhpZGUo
KTtjLmZpbmQoIi50b29sVGl0bGUiKS5zaG93KCk7Yy5maW5kKCIudG9vbFBhbmVsTGFiZWwiKS5z
aG93KCk7Yz0KLmZpbmQoIi50b29sU2VjdGlvbldyYXBwZXIiKS5lYWNoKGZ1bmN0aW9uKCl7aWYo
JCh0aGlzKS5hdHRyKCJpZCIpIT0zRD0zRCJyPQplY2VudGx5X3VzZWRfd3JhcHBlciIpeyQodGhp
cykuc2hvdygpfWVsc2V7aWYoJCh0aGlzKS5oYXNDbGFzcygidXNlcl9wcmVmX3Y9CmlzaWJsZSIp
KXskKHRoaXMpLnNob3coKX19fSk7Yy5maW5kKCIjc2VhcmNoLW5vLXJlc3VsdHMiKS5oaWRlKCk7
Yy5maW5kKCIjcz0KZWFyY2gtc3Bpbm5lciIpLmhpZGUoKTtpZihhKXt2YXIgYj0zRGMuZmluZCgi
I3Rvb2wtc2VhcmNoLXF1ZXJ5Iik7Yi52YWwoInNlPQphcmNoIHRvb2xzIil9fXZhciBHYWxheHlB
c3luYz0zRGZ1bmN0aW9uKGEpe3RoaXMudXJsX2RpY3Q9M0R7fTt0aGlzLmxvZ19hY3Q9Cmlvbj0z
RChhPTNEPTNEPTNEdW5kZWZpbmVkP2ZhbHNlOmEpfTtHYWxheHlBc3luYy5wcm90b3R5cGUuc2V0
X2Z1bmNfdXJsPTNEZj0KdW5jdGlvbihhLGIpe3RoaXMudXJsX2RpY3RbYV09M0RifTtHYWxheHlB
c3luYy5wcm90b3R5cGUuc2V0X3VzZXJfcHJlZj0zRGZ1PQpuY3Rpb24oYSxiKXt2YXIgYz0zRHRo
aXMudXJsX2RpY3RbYXJndW1lbnRzLmNhbGxlZV07aWYoYz0zRD0zRD0zRHVuZGVmaW5lZCk9Cnty
ZXR1cm4gZmFsc2V9JC5hamF4KHt1cmw6YyxkYXRhOntwcmVmX25hbWU6YSxwcmVmX3ZhbHVlOmJ9
LGVycm9yOmZ1bmN0aW9uKD0KKXtyZXR1cm4gZmFsc2V9LHN1Y2Nlc3M6ZnVuY3Rpb24oKXtyZXR1
cm4gdHJ1ZX19KX07R2FsYXh5QXN5bmMucHJvdG90eXBlLmxvPQpnX3VzZXJfYWN0aW9uPTNEZnVu
Y3Rpb24oYyxiLGQpe2lmKCF0aGlzLmxvZ19hY3Rpb24pe3JldHVybn12YXIgYT0zRHRoaXMudXI9
CmxfZGljdFthcmd1bWVudHMuY2FsbGVlXTtpZihhPTNEPTNEPTNEdW5kZWZpbmVkKXtyZXR1cm4g
ZmFsc2V9JC5hamF4KHt1cmw6YT0KLGRhdGE6e2FjdGlvbjpjLGNvbnRleHQ6YixwYXJhbXM6ZH0s
ZXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9LHN1Y2Nlc3M6PQpmdW5jdGlvbigpe3JldHVy
biB0cnVlfX0pfTtmdW5jdGlvbiBpbml0X3JlZnJlc2hfb25fY2hhbmdlKCl7JCgic2VsZWN0W3Jl
ZnI9CmVzaF9vbl9jaGFuZ2U9M0QndHJ1ZSddIikub2ZmKCJjaGFuZ2UiKS5jaGFuZ2UoZnVuY3Rp
b24oKXt2YXIgYT0zRCQodGhpcyksZT0KPTNEYS52YWwoKSxkPTNEZmFsc2UsYz0zRGEuYXR0cigi
cmVmcmVzaF9vbl9jaGFuZ2VfdmFsdWVzIik7aWYoYyl7Yz0zRGMuc3BsPQppdCgiLCIpO3ZhciBi
PTNEYS5hdHRyKCJsYXN0X3NlbGVjdGVkX3ZhbHVlIik7aWYoJC5pbkFycmF5KGUsYyk9M0Q9M0Q9
M0QtMSY9CiYkLmluQXJyYXkoYixjKT0zRD0zRD0zRC0xKXtyZXR1cm59fSQod2luZG93KS50cmln
Z2VyKCJyZWZyZXNoX29uX2NoYW5nZSIpOz0KJChkb2N1bWVudCkudHJpZ2dlcigiY29udmVydF90
b192YWx1ZXMiKTthLmdldCgwKS5mb3JtLnN1Ym1pdCgpfSk7JCgiOmNoZWNrPQpib3hbcmVmcmVz
aF9vbl9jaGFuZ2U9M0QndHJ1ZSddIikub2ZmKCJjbGljayIpLmNsaWNrKGZ1bmN0aW9uKCl7dmFy
IGE9M0QkKHQ9CmhpcyksZT0zRGEudmFsKCksZD0zRGZhbHNlLGM9M0RhLmF0dHIoInJlZnJlc2hf
b25fY2hhbmdlX3ZhbHVlcyIpO2lmKGMpe2M9Cj0zRGMuc3BsaXQoIiwiKTt2YXIgYj0zRGEuYXR0
cigibGFzdF9zZWxlY3RlZF92YWx1ZSIpO2lmKCQuaW5BcnJheShlLGMpPTNEPQo9M0Q9M0QtMSYm
JC5pbkFycmF5KGIsYyk9M0Q9M0Q9M0QtMSl7cmV0dXJufX0kKHdpbmRvdykudHJpZ2dlcigicmVm
cmVzaF9vbl89CmNoYW5nZSIpO2EuZ2V0KDApLmZvcm0uc3VibWl0KCl9KTskKCJhW2NvbmZpcm1d
Iikub2ZmKCJjbGljayIpLmNsaWNrKGZ1bmN0aT0Kb24oKXtyZXR1cm4gY29uZmlybSgkKHRoaXMp
LmF0dHIoImNvbmZpcm0iKSl9KX1qUXVlcnkuZm4ucHJldmVudERvdWJsZVN1Ym1pPQpzc2lvbj0z
RGZ1bmN0aW9uKCl7JCh0aGlzKS5vbigic3VibWl0IixmdW5jdGlvbihiKXt2YXIgYT0zRCQodGhp
cyk7aWYoYS5kYXQ9CmEoInN1Ym1pdHRlZCIpPTNEPTNEPTNEdHJ1ZSl7Yi5wcmV2ZW50RGVmYXVs
dCgpfWVsc2V7YS5kYXRhKCJzdWJtaXR0ZWQiLHRydT0KZSl9fSk7cmV0dXJuIHRoaXN9OyQoZG9j
dW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7aW5pdF9yZWZyZXNoX29uX2NoYW5nZSgpO2lmPQooJC5m
bi50b29sdGlwKXskKCIudW5pZmllZC1wYW5lbC1oZWFkZXIgW3RpdGxlXSIpLnRvb2x0aXAoe3Bs
YWNlbWVudDoiYm90dG89Cm0ifSk7JCgiW3RpdGxlXSIpLnRvb2x0aXAoKX1tYWtlX3BvcHVwX21l
bnVzKCk7cmVwbGFjZV9iaWdfc2VsZWN0X2lucHV0cygyMD0KLDE1MDApOyQoImEiKS5jbGljayhm
dW5jdGlvbigpe3ZhciBiPTNEJCh0aGlzKTt2YXIgYz0zRChwYXJlbnQuZnJhbWVzJiZwYXJlPQpu
dC5mcmFtZXMuZ2FsYXh5X21haW4pO2lmKChiLmF0dHIoInRhcmdldCIpPTNEPTNEImdhbGF4eV9t
YWluIikmJighYykpe3ZhciA9CmE9M0RiLmF0dHIoImhyZWYiKTtpZihhLmluZGV4T2YoIj8iKT0z
RD0zRC0xKXthKz0zRCI/In1lbHNle2ErPTNEIiYifWErPTNEIj0KdXNlX3BhbmVscz0zRFRydWUi
O2IuYXR0cigiaHJlZiIsYSk7Yi5hdHRyKCJ0YXJnZXQiLCJfc2VsZiIpfXJldHVybiBifSl9KTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisoZnVuY3Rpb24oKXt2YXIgYj0zRDA7dmFyIGM9
M0RbIm1zIiwibW96Iiwid2Via2l0IiwibyJdO2Zvcih2YXIgYT0zRDA7YTxjLj0KbGVuZ3RoJiYh
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZTsrK2Epe3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWU9M0R3PQppbmRvd1tjW2FdKyJSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXTt3aW5kb3cuY2Fu
Y2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lPTNEd2k9Cm5kb3dbY1thXSsiQ2FuY2VsUmVxdWVzdEFu
aW1hdGlvbkZyYW1lIl19aWYoIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpez0Kd2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZT0zRGZ1bmN0aW9uKGgsZSl7dmFyIGQ9M0RuZXcgRGF0ZSgp
LmdldFRpbWUoKTt2PQphciBmPTNETWF0aC5tYXgoMCwxNi0oZC1iKSk7dmFyIGc9M0R3aW5kb3cu
c2V0VGltZW91dChmdW5jdGlvbigpe2goZCtmKX0sZik9CjtiPTNEZCtmO3JldHVybiBnfX1pZigh
d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRj0KcmFt
ZT0zRGZ1bmN0aW9uKGQpe2NsZWFyVGltZW91dChkKX19fSgpKTtpZighQXJyYXkuaW5kZXhPZil7
QXJyYXkucHJvdG90eXBlPQouaW5kZXhPZj0zRGZ1bmN0aW9uKGMpe2Zvcih2YXIgYj0zRDAsYT0z
RHRoaXMubGVuZ3RoO2I8YTtiKyspe2lmKHRoaXNbYl09M0Q9Cj0zRGMpe3JldHVybiBifX1yZXR1
cm4gLTF9fWZ1bmN0aW9uIG9ial9sZW5ndGgoYyl7aWYoYy5sZW5ndGghPTNEPTNEdW5kZWZpbj0K
ZWQpe3JldHVybiBjLmxlbmd0aH12YXIgYj0zRDA7Zm9yKHZhciBhIGluIGMpe2IrK31yZXR1cm4g
Yn0kLmZuLm1ha2VBYnNvbHV0PQplPTNEZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5j
dGlvbigpe3ZhciBiPTNEJCh0aGlzKTt2YXIgYz0zRGIucG9zaXQ9CmlvbigpO2IuY3NzKHtwb3Np
dGlvbjoiYWJzb2x1dGUiLG1hcmdpbkxlZnQ6MCxtYXJnaW5Ub3A6MCx0b3A6Yy50b3AsbGVmdDpj
Lj0KbGVmdCxyaWdodDokKHdpbmRvdykud2lkdGgoKS0oYy5sZWZ0K2Iud2lkdGgoKSl9KTtpZihh
KXtiLnJlbW92ZSgpLmFwcGVuZFRvPQooImJvZHkiKX19KX07ZnVuY3Rpb24gbWFrZV9wb3B1cG1l
bnUoYixjKXt2YXIgYT0zRChiLmRhdGEoIm1lbnVfb3B0aW9ucyIpKTs9CmIuZGF0YSgibWVudV9v
cHRpb25zIixjKTtpZihhKXtyZXR1cm59Yi5iaW5kKCJjbGljay5zaG93X3BvcHVwIixmdW5jdGlv
bihkKT0KeyQoIi5wb3BtZW51LXdyYXBwZXIiKS5yZW1vdmUoKTtzZXRUaW1lb3V0KGZ1bmN0aW9u
KCl7dmFyIGc9M0QkKCI8dWwgY2xhc3M9Cj0zRCdkcm9wZG93bi1tZW51JyBpZD0zRCciK2IuYXR0
cigiaWQiKSsiLW1lbnUnPjwvdWw+Iik7dmFyIGY9M0RiLmRhdGEoIm1lbj0KdV9vcHRpb25zIik7
aWYob2JqX2xlbmd0aChmKTw9M0QwKXskKCI8bGk+Tm8gT3B0aW9ucy48L2xpPiIpLmFwcGVuZFRv
KGcpfSQuPQplYWNoKGYsZnVuY3Rpb24oaixpKXtpZihpKXt2YXIgbD0zRGkuYWN0aW9ufHxpO2cu
YXBwZW5kKCQoIjxsaT48L2xpPiIpLmFwcGU9Cm5kKCQoIjxhPiIpLmF0dHIoImhyZWYiLGkudXJs
KS5odG1sKGopLmNsaWNrKGwpKSl9ZWxzZXtnLmFwcGVuZCgkKCI8bGk+PC9saT0KPiIpLmFkZENs
YXNzKCJoZWFkIikuYXBwZW5kKCQoIjxhIGhyZWY9M0QnIyc+PC9hPiIpLmh0bWwoaikpKX19KTt2
YXIgaD0zRCQoPQoiPGRpdiBjbGFzcz0zRCdwb3BtZW51LXdyYXBwZXInIHN0eWxlPTNEJ3Bvc2l0
aW9uOiBhYnNvbHV0ZTtsZWZ0OiAwOyB0b3A6IC09CjEwMDA7Jz48L2Rpdj4iKS5hcHBlbmQoZyku
YXBwZW5kVG8oImJvZHkiKTt2YXIgZT0zRGQucGFnZVgtaC53aWR0aCgpLzI7ZT0zRD0KTWF0aC5t
aW4oZSwkKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkrJCh3aW5kb3cpLndpZHRoKCktJChoKS53aWR0
aCgpLTUpO2U9M0RNPQphdGgubWF4KGUsJChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpKzUpO2guY3Nz
KHt0b3A6ZC5wYWdlWSxsZWZ0OmV9KX0sMTApO3NldFQ9CmltZW91dChmdW5jdGlvbigpe3ZhciBm
PTNEZnVuY3Rpb24oaCl7JChoKS5iaW5kKCJjbGljay5jbG9zZV9wb3B1cCIsZnVuY3Rpbz0Kbigp
eyQoIi5wb3BtZW51LXdyYXBwZXIiKS5yZW1vdmUoKTtoLnVuYmluZCgiY2xpY2suY2xvc2VfcG9w
dXAiKX0pfTtmKCQod2luPQpkb3cuZG9jdW1lbnQpKTtmKCQod2luZG93LnRvcC5kb2N1bWVudCkp
O2Zvcih2YXIgZT0zRHdpbmRvdy50b3AuZnJhbWVzLmxlbmc9CnRoO2UtLTspe3ZhciBnPTNEJCh3
aW5kb3cudG9wLmZyYW1lc1tlXS5kb2N1bWVudCk7ZihnKX19LDUwKTtyZXR1cm4gZmFsc2V9KT0K
fWZ1bmN0aW9uIG1ha2VfcG9wdXBfbWVudXMoYSl7YT0zRGF8fGRvY3VtZW50OyQoYSkuZmluZCgi
ZGl2W3BvcHVwbWVudV0iKS5lPQphY2goZnVuY3Rpb24oKXt2YXIgYj0zRHt9O3ZhciBkPTNEJCh0
aGlzKTtkLmZpbmQoImEiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9Cj0zRCQodGhpcyksaT0zRGcu
Z2V0KDApLGU9M0RpLmdldEF0dHJpYnV0ZSgiY29uZmlybSIpLGY9M0RpLmdldEF0dHJpYnV0ZSgi
aD0KcmVmIiksaD0zRGkuZ2V0QXR0cmlidXRlKCJ0YXJnZXQiKTtpZighZil7YltnLnRleHQoKV09
M0RudWxsfWVsc2V7YltnLnRleHQoPQopXT0zRHt1cmw6ZixhY3Rpb246ZnVuY3Rpb24oail7aWYo
IWV8fGNvbmZpcm0oZSkpe2lmKGgpe3dpbmRvdy5vcGVuKGYsaCk7cmU9CnR1cm4gZmFsc2V9ZWxz
ZXtnLmNsaWNrKCl9fWVsc2V7ai5wcmV2ZW50RGVmYXVsdCgpfX19fX0pO3ZhciBjPTNEJChhKS5m
aW5kKD0KIiMiK2QuYXR0cigicG9wdXBtZW51IikpO2MuZmluZCgiYSIpLmJpbmQoImNsaWNrIixm
dW5jdGlvbihmKXtmLnN0b3BQcm9wYWdhPQp0aW9uKCk7cmV0dXJuIHRydWV9KTttYWtlX3BvcHVw
bWVudShjLGIpO2MuYWRkQ2xhc3MoInBvcHVwIik7ZC5yZW1vdmUoKX0pfSQ9Ci5mbi5yZWZyZXNo
X3NlbGVjdDI9M0RmdW5jdGlvbigpe3ZhciBiPTNEJCh0aGlzKTt2YXIgYT0zRHtwbGFjZWhvbGRl
cjoiQ2xpYz0KayB0byBzZWxlY3QiLGNsb3NlT25TZWxlY3Q6IWIuaXMoIltNVUxUSVBMRV0iKSxk
cm9wZG93bkF1dG9XaWR0aDp0cnVlLGNvbnRhPQppbmVyQ3NzQ2xhc3M6InNlbGVjdDItbWlud2lk
dGgifTtyZXR1cm4gYi5zZWxlY3QyKGEpfTtmdW5jdGlvbiByZXBsYWNlX2JpZ189CnNlbGVjdF9p
bnB1dHMoYSxjLGIpe2lmKCFqUXVlcnkuZm4uc2VsZWN0Mil7cmV0dXJufWlmKGE9M0Q9M0Q9M0R1
bmRlZmluZWQpez0KYT0zRDIwfWlmKGM9M0Q9M0Q9M0R1bmRlZmluZWQpe2M9M0QzMDAwfWI9M0Ri
fHwkKCJzZWxlY3QiKTtiLmVhY2goZnVuY3Rpb24oPQope3ZhciBlPTNEJCh0aGlzKS5ub3QoIltt
dWx0aXBsZV0iKTt2YXIgZD0zRGUuZmluZCgib3B0aW9uIikubGVuZ3RoO2lmKChkPGE9Cil8fChk
PmMpKXtyZXR1cm59aWYoZS5oYXNDbGFzcygibm8tYXV0b2NvbXBsZXRlIikpe3JldHVybn1lLnJl
ZnJlc2hfc2VsZWN0Mj0KKCl9KX0kLmZuLm1ha2VfdGV4dF9lZGl0YWJsZT0zRGZ1bmN0aW9uKGcp
e3ZhciBkPTNEKCJudW1fY29scyIgaW4gZz9nLm51bV9jPQpvbHM6MzApLGM9M0QoIm51bV9yb3dz
IiBpbiBnP2cubnVtX3Jvd3M6NCksZT0zRCgidXNlX3RleHRhcmVhIiBpbiBnP2cudXNlX3Q9CmV4
dGFyZWE6ZmFsc2UpLGI9M0QoIm9uX2ZpbmlzaCIgaW4gZz9nLm9uX2ZpbmlzaDpudWxsKSxmPTNE
KCJoZWxwX3RleHQiIGluID0KZz9nLmhlbHBfdGV4dDpudWxsKTt2YXIgYT0zRCQodGhpcyk7YS5h
ZGRDbGFzcygiZWRpdGFibGUtdGV4dCIpLmNsaWNrKGZ1bmN0PQppb24obCl7aWYoJCh0aGlzKS5j
aGlsZHJlbigiOmlucHV0IikubGVuZ3RoPjApe3JldHVybn1hLnJlbW92ZUNsYXNzKCJlZGl0YWI9
CmxlLXRleHQiKTt2YXIgaT0zRGZ1bmN0aW9uKG0pe2EuZmluZCgiOmlucHV0IikucmVtb3ZlKCk7
aWYobSE9M0Q9M0QiIil7YS50ZT0KeHQobSl9ZWxzZXthLmh0bWwoIjxicj4iKX1hLmFkZENsYXNz
KCJlZGl0YWJsZS10ZXh0Iik7aWYoYil7YihtKX19O3ZhciBoPTNEPQooImN1cl90ZXh0IiBpbiBn
P2cuY3VyX3RleHQ6YS50ZXh0KCkpLGssajtpZihlKXtrPTNEJCgiPHRleHRhcmVhLz4iKS5hdHRy
KHs9CnJvd3M6Yyxjb2xzOmR9KS50ZXh0KCQudHJpbShoKSkua2V5dXAoZnVuY3Rpb24obSl7aWYo
bS5rZXlDb2RlPTNEPTNEPTNEMjcpez0KaShoKX19KTtqPTNEJCgiPGJ1dHRvbi8+IikudGV4dCgi
RG9uZSIpLmNsaWNrKGZ1bmN0aW9uKCl7aShrLnZhbCgpKTtyZXR1cm4gPQpmYWxzZX0pfWVsc2V7
az0zRCQoIjxpbnB1dCB0eXBlPTNEJ3RleHQnLz4iKS5hdHRyKHt2YWx1ZTokLnRyaW0oaCksc2l6
ZTpkfSk9Ci5ibHVyKGZ1bmN0aW9uKCl7aShoKX0pLmtleXVwKGZ1bmN0aW9uKG0pe2lmKG0ua2V5
Q29kZT0zRD0zRD0zRDI3KXskKHRoaXMpLj0KdHJpZ2dlcigiYmx1ciIpfWVsc2V7aWYobS5rZXlD
b2RlPTNEPTNEPTNEMTMpe2koJCh0aGlzKS52YWwoKSl9fW0uc3RvcFByb3BhPQpnYXRpb24oKX0p
fWEudGV4dCgiIik7YS5hcHBlbmQoayk7aWYoail7YS5hcHBlbmQoail9ay5mb2N1cygpO2suc2Vs
ZWN0KCk7bC49CnN0b3BQcm9wYWdhdGlvbigpfSk7aWYoZil7YS5hdHRyKCJ0aXRsZSIsZikudG9v
bHRpcCgpfXJldHVybiBhfTtmdW5jdGlvbiBhcz0KeW5jX3NhdmVfdGV4dChkLGYsZSxhLGMsaCxp
LGcsYil7aWYoYz0zRD0zRD0zRHVuZGVmaW5lZCl7Yz0zRDMwfWlmKGk9M0Q9M0Q9Cj0zRHVuZGVm
aW5lZCl7aT0zRDR9JCgiIyIrZCkuY2xpY2soZnVuY3Rpb24oKXtpZigkKCIjcmVuYW1pbmctYWN0
aXZlIikubGVuZz0KdGg+MCl7cmV0dXJufXZhciBsPTNEJCgiIyIrZiksaz0zRGwudGV4dCgpLGo7
aWYoaCl7aj0zRCQoIjx0ZXh0YXJlYT48L3RleHRhPQpyZWE+IikuYXR0cih7cm93czppLGNvbHM6
Y30pLnRleHQoJC50cmltKGspKX1lbHNle2o9M0QkKCI8aW5wdXQgdHlwZT0zRCd0ZXg9CnQnPjwv
aW5wdXQ+IikuYXR0cih7dmFsdWU6JC50cmltKGspLHNpemU6Y30pfWouYXR0cigiaWQiLCJyZW5h
bWluZy1hY3RpdmUiKT0KO2ouYmx1cihmdW5jdGlvbigpeyQodGhpcykucmVtb3ZlKCk7bC5zaG93
KCk7aWYoYil7YihqKX19KTtqLmtleXVwKGZ1bmN0aW9uPQoobil7aWYobi5rZXlDb2RlPTNEPTNE
PTNEMjcpeyQodGhpcykudHJpZ2dlcigiYmx1ciIpfWVsc2V7aWYobi5rZXlDb2RlPTNEPQo9M0Q9
M0QxMyl7dmFyIG09M0R7fTttW2FdPTNEJCh0aGlzKS52YWwoKTskKHRoaXMpLnRyaWdnZXIoImJs
dXIiKTskLmFqYXgoe3U9CnJsOmUsZGF0YTptLGVycm9yOmZ1bmN0aW9uKCl7YWxlcnQoIlRleHQg
ZWRpdGluZyBmb3IgZWx0ICIrZisiIGZhaWxlZCIpfSxzdT0KY2Nlc3M6ZnVuY3Rpb24obyl7aWYo
byE9M0Q9M0QiIil7bC50ZXh0KG8pfWVsc2V7bC5odG1sKCI8ZW0+Tm9uZTwvZW0+Iil9aWYoPQpi
KXtiKGopfX19KX19fSk7aWYoZyl7ZyhqKX1sLmhpZGUoKTtqLmluc2VydEFmdGVyKGwpO2ouZm9j
dXMoKTtqLnNlbGVjdCgpO3I9CmV0dXJufSl9ZnVuY3Rpb24gY29tbWF0aXplKGIpe2IrPTNEIiI7
dmFyIGE9M0QvKFxkKykoXGR7M30pLzt3aGlsZShhLnRlc3QoYj0KKSl7Yj0zRGIucmVwbGFjZShh
LCIkMSwkMiIpfXJldHVybiBifWZ1bmN0aW9uIHJlc2V0X3Rvb2xfc2VhcmNoKGEpe3ZhciBjPTNE
PQokKCIjZ2FsYXh5X3Rvb2xzIikuY29udGVudHMoKTtpZihjLmxlbmd0aD0zRD0zRD0zRDApe2M9
M0QkKGRvY3VtZW50KX0kKHRoaXM9CikucmVtb3ZlQ2xhc3MoInNlYXJjaF9hY3RpdmUiKTtjLmZp
bmQoIi50b29sVGl0bGUiKS5yZW1vdmVDbGFzcygic2VhcmNoX21hdD0KY2giKTtjLmZpbmQoIi50
b29sU2VjdGlvbkJvZHkiKS5oaWRlKCk7Yy5maW5kKCIudG9vbFRpdGxlIikuc2hvdygpO2MuZmlu
ZCgiPQoudG9vbFBhbmVsTGFiZWwiKS5zaG93KCk7Yy5maW5kKCIudG9vbFNlY3Rpb25XcmFwcGVy
IikuZWFjaChmdW5jdGlvbigpe2lmKCQ9Cih0aGlzKS5hdHRyKCJpZCIpIT0zRD0zRCJyZWNlbnRs
eV91c2VkX3dyYXBwZXIiKXskKHRoaXMpLnNob3coKX1lbHNle2lmKCQodD0KaGlzKS5oYXNDbGFz
cygidXNlcl9wcmVmX3Zpc2libGUiKSl7JCh0aGlzKS5zaG93KCl9fX0pO2MuZmluZCgiI3NlYXJj
aC1uby1yPQplc3VsdHMiKS5oaWRlKCk7Yy5maW5kKCIjc2VhcmNoLXNwaW5uZXIiKS5oaWRlKCk7
aWYoYSl7dmFyIGI9M0RjLmZpbmQoIiN0b289Cmwtc2VhcmNoLXF1ZXJ5Iik7Yi52YWwoInNlYXJj
aCB0b29scyIpfX12YXIgR2FsYXh5QXN5bmM9M0RmdW5jdGlvbihhKXt0aGlzLj0KdXJsX2RpY3Q9
M0R7fTt0aGlzLmxvZ19hY3Rpb249M0QoYT0zRD0zRD0zRHVuZGVmaW5lZD9mYWxzZTphKX07R2Fs
YXh5QXN5bmMuPQpwcm90b3R5cGUuc2V0X2Z1bmNfdXJsPTNEZnVuY3Rpb24oYSxiKXt0aGlzLnVy
bF9kaWN0W2FdPTNEYn07R2FsYXh5QXN5bmMucHI9Cm90b3R5cGUuc2V0X3VzZXJfcHJlZj0zRGZ1
bmN0aW9uKGEsYil7dmFyIGM9M0R0aGlzLnVybF9kaWN0W2FyZ3VtZW50cy5jYWxsZT0KZV07aWYo
Yz0zRD0zRD0zRHVuZGVmaW5lZCl7cmV0dXJuIGZhbHNlfSQuYWpheCh7dXJsOmMsZGF0YTp7cHJl
Zl9uYW1lOmEscHJlPQpmX3ZhbHVlOmJ9LGVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfSxz
dWNjZXNzOmZ1bmN0aW9uKCl7cmV0dXJuIHRydWV9fSk9Cn07R2FsYXh5QXN5bmMucHJvdG90eXBl
LmxvZ191c2VyX2FjdGlvbj0zRGZ1bmN0aW9uKGMsYixkKXtpZighdGhpcy5sb2dfYWN0aT0Kb24p
e3JldHVybn12YXIgYT0zRHRoaXMudXJsX2RpY3RbYXJndW1lbnRzLmNhbGxlZV07aWYoYT0zRD0z
RD0zRHVuZGVmaW5lZCl7PQpyZXR1cm4gZmFsc2V9JC5hamF4KHt1cmw6YSxkYXRhOnthY3Rpb246
Yyxjb250ZXh0OmIscGFyYW1zOmR9LGVycm9yOmZ1bmN0aW89Cm4oKXtyZXR1cm4gZmFsc2V9LHN1
Y2Nlc3M6ZnVuY3Rpb24oKXtyZXR1cm4gdHJ1ZX19KX07ZnVuY3Rpb24gaW5pdF9yZWZyZXNoXz0K
b25fY2hhbmdlKCl7JCgic2VsZWN0W3JlZnJlc2hfb25fY2hhbmdlPTNEJ3RydWUnXSIpLm9mZigi
Y2hhbmdlIikuY2hhbmdlKGZ1PQpuY3Rpb24oKXt2YXIgYT0zRCQodGhpcyksZT0zRGEudmFsKCks
ZD0zRGZhbHNlLGM9M0RhLmF0dHIoInJlZnJlc2hfb25fY2hhbmc9CmVfdmFsdWVzIik7aWYoYyl7
Yz0zRGMuc3BsaXQoIiwiKTt2YXIgYj0zRGEuYXR0cigibGFzdF9zZWxlY3RlZF92YWx1ZSIpO2lm
KD0KJC5pbkFycmF5KGUsYyk9M0Q9M0Q9M0QtMSYmJC5pbkFycmF5KGIsYyk9M0Q9M0Q9M0QtMSl7
cmV0dXJufX0kKHdpbmRvdykudHJpPQpnZ2VyKCJyZWZyZXNoX29uX2NoYW5nZSIpOyQoZG9jdW1l
bnQpLnRyaWdnZXIoImNvbnZlcnRfdG9fdmFsdWVzIik7YS5nZXQoMCk9Ci5mb3JtLnN1Ym1pdCgp
fSk7JCgiOmNoZWNrYm94W3JlZnJlc2hfb25fY2hhbmdlPTNEJ3RydWUnXSIpLm9mZigiY2xpY2si
KS5jbD0KaWNrKGZ1bmN0aW9uKCl7dmFyIGE9M0QkKHRoaXMpLGU9M0RhLnZhbCgpLGQ9M0RmYWxz
ZSxjPTNEYS5hdHRyKCJyZWZyZXNoX29uPQpfY2hhbmdlX3ZhbHVlcyIpO2lmKGMpe2M9M0RjLnNw
bGl0KCIsIik7dmFyIGI9M0RhLmF0dHIoImxhc3Rfc2VsZWN0ZWRfdmFsdWU9CiIpO2lmKCQuaW5B
cnJheShlLGMpPTNEPTNEPTNELTEmJiQuaW5BcnJheShiLGMpPTNEPTNEPTNELTEpe3JldHVybn19
JCh3aW5kbz0KdykudHJpZ2dlcigicmVmcmVzaF9vbl9jaGFuZ2UiKTthLmdldCgwKS5mb3JtLnN1
Ym1pdCgpfSk7JCgiYVtjb25maXJtXSIpLm9mPQpmKCJjbGljayIpLmNsaWNrKGZ1bmN0aW9uKCl7
cmV0dXJuIGNvbmZpcm0oJCh0aGlzKS5hdHRyKCJjb25maXJtIikpfSl9alF1ZXI9CnkuZm4ucHJl
dmVudERvdWJsZVN1Ym1pc3Npb249M0RmdW5jdGlvbigpeyQodGhpcykub24oInN1Ym1pdCIsZnVu
Y3Rpb24oYil7dj0KYXIgYT0zRCQodGhpcyk7aWYoYS5kYXRhKCJzdWJtaXR0ZWQiKT0zRD0zRD0z
RHRydWUpe2IucHJldmVudERlZmF1bHQoKX1lbHNlPQp7YS5kYXRhKCJzdWJtaXR0ZWQiLHRydWUp
fX0pO3JldHVybiB0aGlzfTskKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2luaXQ9Cl9yZWZy
ZXNoX29uX2NoYW5nZSgpO2lmKCQuZm4udG9vbHRpcCl7JCgiLnVuaWZpZWQtcGFuZWwtaGVhZGVy
IFt0aXRsZV0iKS50bz0Kb2x0aXAoe3BsYWNlbWVudDoiYm90dG9tIn0pOyQoIlt0aXRsZV0iKS50
b29sdGlwKCl9bWFrZV9wb3B1cF9tZW51cygpO3JlcGxhPQpjZV9iaWdfc2VsZWN0X2lucHV0cygy
MCwxNTAwKTskKCJhIikuY2xpY2soZnVuY3Rpb24oKXt2YXIgYj0zRCQodGhpcyk7dmFyIGM9Cj0z
RChwYXJlbnQuZnJhbWVzJiZwYXJlbnQuZnJhbWVzLmdhbGF4eV9tYWluKTtpZigoYi5hdHRyKCJ0
YXJnZXQiKT0zRD0zRCJnYT0KbGF4eV9tYWluIikmJighYykpe3ZhciBhPTNEYi5hdHRyKCJocmVm
Iik7aWYoYS5pbmRleE9mKCI/Iik9M0Q9M0QtMSl7YSs9M0QiPQo/In1lbHNle2ErPTNEIiYifWEr
PTNEInVzZV9wYW5lbHM9M0RUcnVlIjtiLmF0dHIoImhyZWYiLGEpO2IuYXR0cigidGFyZ2V0Iiw9
CiJfc2VsZiIpfXJldHVybiBifSl9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCgoKaHR0
cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9nYWxheHktY2VudHJhbC9jb21taXRzLzMzZmQ0M2Y3
NTkwZi8KQ2hhbmdlc2V0OiAgIDMzZmQ0M2Y3NTkwZgpCcmFuY2g6ICAgICAgcmVsZWFzZV8xNS4w
MwpVc2VyOiAgICAgICAgY2FybGZlYmVyaGFyZApEYXRlOiAgICAgICAgMjAxNS0wMi0yMyAyMjox
NDozNyswMDowMApTdW1tYXJ5OiAgICAgVUksIGhpc3RvcnkgcGFuZWw6IGNvcnJlY3RseSBkZWZh
dWx0IGNsZWFyTWVzc2FnZXMgdGFyZ2V0IHdoZW49CiBubyBldmVudCBpcyBnaXZlbgpBZmZlY3Rl
ZCAjOiAgOCBmaWxlcwoKZGlmZiAtciA5MzgwMWQ2ZmE3YmQzMmE4MWRlMzk3MTM3OTUzMzEyY2Nh
N2E0M2ExIC1yIDMzZmQ0M2Y3NTkwZjE3ZWQ2MTFjZTA3PQoxNzhjYWU4YzJiNzA1MjVkMCBjbGll
bnQvZ2FsYXh5L3NjcmlwdHMvbXZjL2hpc3RvcnkvaGlzdG9yeS1wYW5lbC1lZGl0LWN1cnI9CmVu
dC5qcwotLS0gYS9jbGllbnQvZ2FsYXh5L3NjcmlwdHMvbXZjL2hpc3RvcnkvaGlzdG9yeS1wYW5l
bC1lZGl0LWN1cnJlbnQuanMKKysrIGIvY2xpZW50L2dhbGF4eS9zY3JpcHRzL212Yy9oaXN0b3J5
L2hpc3RvcnktcGFuZWwtZWRpdC1jdXJyZW50LmpzCkBAIC0zNzksMjEgKzM3OSwzMSBAQAogICAg
IH0sCj0yMAogLy9UT0RPOiB0aGlzIHNlZW1zIG1vcmUgbGlrZSBhIHBlciB1c2VyIG1lc3NhZ2Ug
dGhhbiBhIGhpc3RvcnkgbWVzc2FnZTsgSU89ClcsIHRoaXMgZG9lc24ndCBiZWxvbmcgaGVyZQor
ICAgIC8qKiBPdmVycmlkZSB0byBwcmVzZXJ2ZSB0aGUgcXVvdGEgbWVzc2FnZSAqLworICAgIGNs
ZWFyTWVzc2FnZXMgOiBmdW5jdGlvbiggZXYgKXsKKyAgICAgICAgdmFyICR0YXJnZXQgPTNEICFf
LmlzVW5kZWZpbmVkKCBldiApPworICAgICAgICAgICAgJCggZXYuY3VycmVudFRhcmdldCApCisg
ICAgICAgICAgICA6dGhpcy4kbWVzc2FnZXMoKS5jaGlsZHJlbiggJ1tjbGFzcyQ9M0QibWVzc2Fn
ZSJdJyApOworICAgICAgICAkdGFyZ2V0ID0zRCAkdGFyZ2V0Lm5vdCggJy5xdW90YS1tZXNzYWdl
JyApOworICAgICAgICAkdGFyZ2V0LmZhZGVPdXQoIHRoaXMuZnhTcGVlZCwgZnVuY3Rpb24oKXsK
KyAgICAgICAgICAgICQoIHRoaXMgKS5yZW1vdmUoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJl
dHVybiB0aGlzOworICAgIH0sCisKICAgICAvKiogU2hvdyB0aGUgb3ZlciBxdW90YSBtZXNzYWdl
ICh3aGljaCBoYXBwZW5zIHRvIGJlIGluIHRoZSBoaXN0b3J5IHBhPQpuZWwpLgogICAgICAqLwog
ICAgIHNob3dRdW90YU1lc3NhZ2UgOiBmdW5jdGlvbigpewotICAgICAgICB2YXIgbXNnID0zRCB0
aGlzLiRlbC5maW5kKCAnLnF1b3RhLW1lc3NhZ2UnICk7Ci0gICAgICAgIC8vdGhpcy5sb2coIHRo
aXMgKyAnIHNob3dpbmcgcXVvdGEgbWVzc2FnZTonLCBtc2csIHVzZXJEYXRhICk7Ci0gICAgICAg
IGlmKCBtc2cuaXMoICc6aGlkZGVuJyApICl7IG1zZy5zbGlkZURvd24oIHRoaXMuZnhTcGVlZCAp
OyB9CisgICAgICAgIHZhciAkbXNnID0zRCB0aGlzLiQoICcucXVvdGEtbWVzc2FnZScgKTsKKyAg
ICAgICAgaWYoICRtc2cuaXMoICc6aGlkZGVuJyApICl7ICRtc2cuc2xpZGVEb3duKCB0aGlzLmZ4
U3BlZWQgKTsgfQogICAgIH0sCj0yMAogLy9UT0RPOiB0aGlzIHNlZW1zIG1vcmUgbGlrZSBhIHBl
ciB1c2VyIG1lc3NhZ2UgdGhhbiBhIGhpc3RvcnkgbWVzc2FnZQogICAgIC8qKiBIaWRlIHRoZSBv
dmVyIHF1b3RhIG1lc3NhZ2UgKHdoaWNoIGhhcHBlbnMgdG8gYmUgaW4gdGhlIGhpc3RvcnkgcGE9
Cm5lbCkuCiAgICAgICovCiAgICAgaGlkZVF1b3RhTWVzc2FnZSA6IGZ1bmN0aW9uKCl7Ci0gICAg
ICAgIHZhciBtc2cgPTNEIHRoaXMuJGVsLmZpbmQoICcucXVvdGEtbWVzc2FnZScgKTsKLSAgICAg
ICAgLy90aGlzLmxvZyggdGhpcyArICcgaGlkaW5nIHF1b3RhIG1lc3NhZ2U6JywgbXNnLCB1c2Vy
RGF0YSApOwotICAgICAgICBpZiggIW1zZy5pcyggJzpoaWRkZW4nICkgKXsgbXNnLnNsaWRlVXAo
IHRoaXMuZnhTcGVlZCApOyB9CisgICAgICAgIHZhciAkbXNnID0zRCB0aGlzLiQoICcucXVvdGEt
bWVzc2FnZScgKTsKKyAgICAgICAgaWYoICEkbXNnLmlzKCAnOmhpZGRlbicgKSApeyAkbXNnLnNs
aWRlVXAoIHRoaXMuZnhTcGVlZCApOyB9CiAgICAgfSwKPTIwCiAgICAgLyoqIFJldHVybiBhIHN0
cmluZyByZXAgb2YgdGhlIGhpc3RvcnkKCmRpZmYgLXIgOTM4MDFkNmZhN2JkMzJhODFkZTM5NzEz
Nzk1MzMxMmNjYTdhNDNhMSAtciAzM2ZkNDNmNzU5MGYxN2VkNjExY2UwNz0KMTc4Y2FlOGMyYjcw
NTI1ZDAgY2xpZW50L2dhbGF4eS9zY3JpcHRzL212Yy9oaXN0b3J5L2hpc3RvcnktcGFuZWwuanMK
LS0tIGEvY2xpZW50L2dhbGF4eS9zY3JpcHRzL212Yy9oaXN0b3J5L2hpc3RvcnktcGFuZWwuanMK
KysrIGIvY2xpZW50L2dhbGF4eS9zY3JpcHRzL212Yy9oaXN0b3J5L2hpc3RvcnktcGFuZWwuanMK
QEAgLTM4MSwxMiArMzgxLDkgQEAKICAgICAvKiogZXZlbnQgbWFwICovCiAgICAgZXZlbnRzIDog
Xy5leHRlbmQoIF8uY2xvbmUoIF9zdXBlci5wcm90b3R5cGUuZXZlbnRzICksIHsKICAgICAgICAg
Ly8gdG9nZ2xlIGxpc3QgaXRlbSBzZWxlY3RvcnMKLSAgICAgICAgJ2NsaWNrIC5zaG93LXNlbGVj
dG9ycy1idG4nICAgICAgICAgICAgICAgICA6ICd0b2dnbGVTZWxlY3RvcnMnCisgICAgICAgICdj
bGljayAuc2hvdy1zZWxlY3RvcnMtYnRuJyAgICAgICAgIDogJ3RvZ2dsZVNlbGVjdG9ycycsCiAg
ICAgICAgIC8vIGFsbG93IChlcnJvcikgbWVzc2FnZXMgdG8gYmUgY2xpY2tlZCBhd2F5Ci0vL1RP
RE86IHN3aXRjaCB0byBjb21tb24gY2xvc2UgKFgpIGlkaW9tCi0gICAgICAgIC8vJ2NsaWNrIC5t
ZXNzYWdlcycgICAgICAgICAgICAgICA6ICdjbGVhck1lc3NhZ2VzJywKLS8vVE9ETzogcmVtb3Zl
Ci0gICAgICAgIC8vJ2NsaWNrIC5oaXN0b3J5LXNlYXJjaC1idG4nICAgICA6ICd0b2dnbGVTZWFy
Y2hDb250cm9scycKKyAgICAgICAgJ2NsaWNrIC5tZXNzYWdlcyBbY2xhc3MkPTNEbWVzc2FnZV0n
ICA6ICdjbGVhck1lc3NhZ2VzJwogICAgIH0pLAo9MjAKICAgICAvKiogSGFuZGxlIHRoZSB1c2Vy
IHRvZ2dsaW5nIHRoZSBkZWxldGVkIHZpc2liaWxpdHkgYnk6CkBAIC00NTcsMTQgKzQ1NCwxNCBA
QAogICAgICAqLwogICAgIGVycm9ySGFuZGxlciA6IGZ1bmN0aW9uKCBtb2RlbCwgeGhyLCBvcHRp
b25zLCBtc2csIGRldGFpbHMgKXsKICAgICAgICAgdGhpcy5lcnJvciggbW9kZWwsIHhociwgb3B0
aW9ucywgbXNnLCBkZXRhaWxzICk7Ci0vL1RPRE86IGdldHRpbmcgSlNPTiBwYXJzZSBlcnJvcnMg
ZnJvbSBqcSBtaWdyYXRlCj0yMAogICAgICAgICAvLyBpbnRlcnJ1cHRlZCBhamF4CiAgICAgICAg
IGlmKCB4aHIgJiYgeGhyLnN0YXR1cyA9M0Q9M0Q9M0QgMCAmJiB4aHIucmVhZHlTdGF0ZSA9M0Q9
M0Q9M0QgMCApeworICAgICAgICAgICAgLy9UT0RPOiBnbWFpbCBzdHlsZSAncmV0cnlpbmcgaW4g
TnMnCj0yMAogICAgICAgICAvLyBiYWQgZ2F0ZXdheQogICAgICAgICB9IGVsc2UgaWYoIHhociAm
JiB4aHIuc3RhdHVzID0zRD0zRD0zRCA1MDIgKXsKLS8vVE9ETzogZ21haWwgc3R5bGUgJ3JlY29u
bmVjdGluZyBpbiBOcycKKyAgICAgICAgICAgIC8vVE9ETzogZ21haWwgc3R5bGUgJ3JldHJ5aW5n
IGluIE5zJwo9MjAKICAgICAgICAgLy8gb3RoZXJ3aXNlLCBzaG93IGFuIGVycm9yIG1lc3NhZ2Ug
aW5zaWRlIHRoZSBwYW5lbAogICAgICAgICB9IGVsc2UgewpAQCAtNTUxLDcgKzU0OCw3IEBACiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAkbXNnLmFwcGVuZCggJyAnLCAkZGV0YWls
c0xpbmsgKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gJG1zZ0NvbnRhaW5lci5odG1sKCAk
bXNnICk7CisgICAgICAgIHJldHVybiAkbXNnQ29udGFpbmVyLmFwcGVuZCggJG1zZyApOwogICAg
IH0sCj0yMAogICAgIC8qKiBjb252ZXJ0IG1zZyBhbmQgZGV0YWlscyBpbnRvIG1vZGFsIG9wdGlv
bnMgdXNhYmxlIGJ5IEdhbGF4eS5tb2RhbCA9CiovCkBAIC01ODIsMTAgKzU3OSwxMiBAQAo9MjAK
ICAgICAvKiogUmVtb3ZlIGFsbCBtZXNzYWdlcyBmcm9tIHRoZSBwYW5lbC4gKi8KICAgICBjbGVh
ck1lc3NhZ2VzIDogZnVuY3Rpb24oIGV2ICl7Ci0gICAgICAgICQoIGV2LmN1cnJlbnRUYXJnZXQg
KS5mYWRlT3V0KCB0aGlzLmZ4U3BlZWQsIGZ1bmN0aW9uKCl7CisgICAgICAgIHZhciAkdGFyZ2V0
ID0zRCAhXy5pc1VuZGVmaW5lZCggZXYgKT8KKyAgICAgICAgICAgICQoIGV2LmN1cnJlbnRUYXJn
ZXQgKQorICAgICAgICAgICAgOnRoaXMuJG1lc3NhZ2VzKCkuY2hpbGRyZW4oICdbY2xhc3MkPTNE
Im1lc3NhZ2UiXScgKTsKKyAgICAgICAgJHRhcmdldC5mYWRlT3V0KCB0aGlzLmZ4U3BlZWQsIGZ1
bmN0aW9uKCl7CiAgICAgICAgICAgICAkKCB0aGlzICkucmVtb3ZlKCk7CiAgICAgICAgIH0pOwot
ICAgICAgICAvL3RoaXMuJG1lc3NhZ2VzKCkuY2hpbGRyZW4oKS5ub3QoICcucXVvdGEtbWVzc2Fn
ZScgKS5yZW1vdmUoKTsKICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgfSwKPTIwCgpkaWZmIC1y
IDkzODAxZDZmYTdiZDMyYTgxZGUzOTcxMzc5NTMzMTJjY2E3YTQzYTEgLXIgMzNmZDQzZjc1OTBm
MTdlZDYxMWNlMDc9CjE3OGNhZThjMmI3MDUyNWQwIGNsaWVudC9nYWxheHkvc2NyaXB0cy9tdmMv
bGlzdC9saXN0LXBhbmVsLmpzCi0tLSBhL2NsaWVudC9nYWxheHkvc2NyaXB0cy9tdmMvbGlzdC9s
aXN0LXBhbmVsLmpzCisrKyBiL2NsaWVudC9nYWxheHkvc2NyaXB0cy9tdmMvbGlzdC9saXN0LXBh
bmVsLmpzCkBAIC0xMTksNiArMTE5LDggQEAKICAgICBfc2V0VXBMaXN0ZW5lcnMgOiBmdW5jdGlv
bigpewogICAgICAgICB0aGlzLm9mZigpOwo9MjAKKyAgICAgICAgLy9UT0RPOiBtb3ZlIGVycm9y
SGFuZGxlciBkb3duIGludG8gbGlzdC1wYW5lbCBmcm9tIGhpc3RvcnktcGFuZWwgPQpvcgorICAg
ICAgICAvLyAgcGFzcyB0byBnbG9iYWwgZXJyb3IgaGFuZGxlciAoR2FsYXh5KQogICAgICAgICB0
aGlzLm9uKCAnZXJyb3InLCBmdW5jdGlvbiggbW9kZWwsIHhociwgb3B0aW9ucywgbXNnLCBkZXRh
aWxzICl7CiAgICAgICAgICAgICAvL3RoaXMuZXJyb3JIYW5kbGVyKCBtb2RlbCwgeGhyLCBvcHRp
b25zLCBtc2csIGRldGFpbHMgKTsKICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIG1vZGVsLCB4
aHIsIG9wdGlvbnMsIG1zZywgZGV0YWlscyApOwoKZGlmZiAtciA5MzgwMWQ2ZmE3YmQzMmE4MWRl
Mzk3MTM3OTUzMzEyY2NhN2E0M2ExIC1yIDMzZmQ0M2Y3NTkwZjE3ZWQ2MTFjZTA3PQoxNzhjYWU4
YzJiNzA1MjVkMCBzdGF0aWMvc2NyaXB0cy9tdmMvaGlzdG9yeS9oaXN0b3J5LXBhbmVsLWVkaXQt
Y3VycmVudC5qcwotLS0gYS9zdGF0aWMvc2NyaXB0cy9tdmMvaGlzdG9yeS9oaXN0b3J5LXBhbmVs
LWVkaXQtY3VycmVudC5qcworKysgYi9zdGF0aWMvc2NyaXB0cy9tdmMvaGlzdG9yeS9oaXN0b3J5
LXBhbmVsLWVkaXQtY3VycmVudC5qcwpAQCAtMzc5LDIxICszNzksMzEgQEAKICAgICB9LAo9MjAK
IC8vVE9ETzogdGhpcyBzZWVtcyBtb3JlIGxpa2UgYSBwZXIgdXNlciBtZXNzYWdlIHRoYW4gYSBo
aXN0b3J5IG1lc3NhZ2U7IElPPQpXLCB0aGlzIGRvZXNuJ3QgYmVsb25nIGhlcmUKKyAgICAvKiog
T3ZlcnJpZGUgdG8gcHJlc2VydmUgdGhlIHF1b3RhIG1lc3NhZ2UgKi8KKyAgICBjbGVhck1lc3Nh
Z2VzIDogZnVuY3Rpb24oIGV2ICl7CisgICAgICAgIHZhciAkdGFyZ2V0ID0zRCAhXy5pc1VuZGVm
aW5lZCggZXYgKT8KKyAgICAgICAgICAgICQoIGV2LmN1cnJlbnRUYXJnZXQgKQorICAgICAgICAg
ICAgOnRoaXMuJG1lc3NhZ2VzKCkuY2hpbGRyZW4oICdbY2xhc3MkPTNEIm1lc3NhZ2UiXScgKTsK
KyAgICAgICAgJHRhcmdldCA9M0QgJHRhcmdldC5ub3QoICcucXVvdGEtbWVzc2FnZScgKTsKKyAg
ICAgICAgJHRhcmdldC5mYWRlT3V0KCB0aGlzLmZ4U3BlZWQsIGZ1bmN0aW9uKCl7CisgICAgICAg
ICAgICAkKCB0aGlzICkucmVtb3ZlKCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdGhp
czsKKyAgICB9LAorCiAgICAgLyoqIFNob3cgdGhlIG92ZXIgcXVvdGEgbWVzc2FnZSAod2hpY2gg
aGFwcGVucyB0byBiZSBpbiB0aGUgaGlzdG9yeSBwYT0KbmVsKS4KICAgICAgKi8KICAgICBzaG93
UXVvdGFNZXNzYWdlIDogZnVuY3Rpb24oKXsKLSAgICAgICAgdmFyIG1zZyA9M0QgdGhpcy4kZWwu
ZmluZCggJy5xdW90YS1tZXNzYWdlJyApOwotICAgICAgICAvL3RoaXMubG9nKCB0aGlzICsgJyBz
aG93aW5nIHF1b3RhIG1lc3NhZ2U6JywgbXNnLCB1c2VyRGF0YSApOwotICAgICAgICBpZiggbXNn
LmlzKCAnOmhpZGRlbicgKSApeyBtc2cuc2xpZGVEb3duKCB0aGlzLmZ4U3BlZWQgKTsgfQorICAg
ICAgICB2YXIgJG1zZyA9M0QgdGhpcy4kKCAnLnF1b3RhLW1lc3NhZ2UnICk7CisgICAgICAgIGlm
KCAkbXNnLmlzKCAnOmhpZGRlbicgKSApeyAkbXNnLnNsaWRlRG93biggdGhpcy5meFNwZWVkICk7
IH0KICAgICB9LAo9MjAKIC8vVE9ETzogdGhpcyBzZWVtcyBtb3JlIGxpa2UgYSBwZXIgdXNlciBt
ZXNzYWdlIHRoYW4gYSBoaXN0b3J5IG1lc3NhZ2UKICAgICAvKiogSGlkZSB0aGUgb3ZlciBxdW90
YSBtZXNzYWdlICh3aGljaCBoYXBwZW5zIHRvIGJlIGluIHRoZSBoaXN0b3J5IHBhPQpuZWwpLgog
ICAgICAqLwogICAgIGhpZGVRdW90YU1lc3NhZ2UgOiBmdW5jdGlvbigpewotICAgICAgICB2YXIg
bXNnID0zRCB0aGlzLiRlbC5maW5kKCAnLnF1b3RhLW1lc3NhZ2UnICk7Ci0gICAgICAgIC8vdGhp
cy5sb2coIHRoaXMgKyAnIGhpZGluZyBxdW90YSBtZXNzYWdlOicsIG1zZywgdXNlckRhdGEgKTsK
LSAgICAgICAgaWYoICFtc2cuaXMoICc6aGlkZGVuJyApICl7IG1zZy5zbGlkZVVwKCB0aGlzLmZ4
U3BlZWQgKTsgfQorICAgICAgICB2YXIgJG1zZyA9M0QgdGhpcy4kKCAnLnF1b3RhLW1lc3NhZ2Un
ICk7CisgICAgICAgIGlmKCAhJG1zZy5pcyggJzpoaWRkZW4nICkgKXsgJG1zZy5zbGlkZVVwKCB0
aGlzLmZ4U3BlZWQgKTsgfQogICAgIH0sCj0yMAogICAgIC8qKiBSZXR1cm4gYSBzdHJpbmcgcmVw
IG9mIHRoZSBoaXN0b3J5CgpkaWZmIC1yIDkzODAxZDZmYTdiZDMyYTgxZGUzOTcxMzc5NTMzMTJj
Y2E3YTQzYTEgLXIgMzNmZDQzZjc1OTBmMTdlZDYxMWNlMDc9CjE3OGNhZThjMmI3MDUyNWQwIHN0
YXRpYy9zY3JpcHRzL212Yy9oaXN0b3J5L2hpc3RvcnktcGFuZWwuanMKLS0tIGEvc3RhdGljL3Nj
cmlwdHMvbXZjL2hpc3RvcnkvaGlzdG9yeS1wYW5lbC5qcworKysgYi9zdGF0aWMvc2NyaXB0cy9t
dmMvaGlzdG9yeS9oaXN0b3J5LXBhbmVsLmpzCkBAIC0zODEsMTIgKzM4MSw5IEBACiAgICAgLyoq
IGV2ZW50IG1hcCAqLwogICAgIGV2ZW50cyA6IF8uZXh0ZW5kKCBfLmNsb25lKCBfc3VwZXIucHJv
dG90eXBlLmV2ZW50cyApLCB7CiAgICAgICAgIC8vIHRvZ2dsZSBsaXN0IGl0ZW0gc2VsZWN0b3Jz
Ci0gICAgICAgICdjbGljayAuc2hvdy1zZWxlY3RvcnMtYnRuJyAgICAgICAgICAgICAgICAgOiAn
dG9nZ2xlU2VsZWN0b3JzJworICAgICAgICAnY2xpY2sgLnNob3ctc2VsZWN0b3JzLWJ0bicgICAg
ICAgICA6ICd0b2dnbGVTZWxlY3RvcnMnLAogICAgICAgICAvLyBhbGxvdyAoZXJyb3IpIG1lc3Nh
Z2VzIHRvIGJlIGNsaWNrZWQgYXdheQotLy9UT0RPOiBzd2l0Y2ggdG8gY29tbW9uIGNsb3NlIChY
KSBpZGlvbQotICAgICAgICAvLydjbGljayAubWVzc2FnZXMnICAgICAgICAgICAgICAgOiAnY2xl
YXJNZXNzYWdlcycsCi0vL1RPRE86IHJlbW92ZQotICAgICAgICAvLydjbGljayAuaGlzdG9yeS1z
ZWFyY2gtYnRuJyAgICAgOiAndG9nZ2xlU2VhcmNoQ29udHJvbHMnCisgICAgICAgICdjbGljayAu
bWVzc2FnZXMgW2NsYXNzJD0zRG1lc3NhZ2VdJyAgOiAnY2xlYXJNZXNzYWdlcycKICAgICB9KSwK
PTIwCiAgICAgLyoqIEhhbmRsZSB0aGUgdXNlciB0b2dnbGluZyB0aGUgZGVsZXRlZCB2aXNpYmls
aXR5IGJ5OgpAQCAtNDU3LDE0ICs0NTQsMTQgQEAKICAgICAgKi8KICAgICBlcnJvckhhbmRsZXIg
OiBmdW5jdGlvbiggbW9kZWwsIHhociwgb3B0aW9ucywgbXNnLCBkZXRhaWxzICl7CiAgICAgICAg
IHRoaXMuZXJyb3IoIG1vZGVsLCB4aHIsIG9wdGlvbnMsIG1zZywgZGV0YWlscyApOwotLy9UT0RP
OiBnZXR0aW5nIEpTT04gcGFyc2UgZXJyb3JzIGZyb20ganEgbWlncmF0ZQo9MjAKICAgICAgICAg
Ly8gaW50ZXJydXB0ZWQgYWpheAogICAgICAgICBpZiggeGhyICYmIHhoci5zdGF0dXMgPTNEPTNE
PTNEIDAgJiYgeGhyLnJlYWR5U3RhdGUgPTNEPTNEPTNEIDAgKXsKKyAgICAgICAgICAgIC8vVE9E
TzogZ21haWwgc3R5bGUgJ3JldHJ5aW5nIGluIE5zJwo9MjAKICAgICAgICAgLy8gYmFkIGdhdGV3
YXkKICAgICAgICAgfSBlbHNlIGlmKCB4aHIgJiYgeGhyLnN0YXR1cyA9M0Q9M0Q9M0QgNTAyICl7
Ci0vL1RPRE86IGdtYWlsIHN0eWxlICdyZWNvbm5lY3RpbmcgaW4gTnMnCisgICAgICAgICAgICAv
L1RPRE86IGdtYWlsIHN0eWxlICdyZXRyeWluZyBpbiBOcycKPTIwCiAgICAgICAgIC8vIG90aGVy
d2lzZSwgc2hvdyBhbiBlcnJvciBtZXNzYWdlIGluc2lkZSB0aGUgcGFuZWwKICAgICAgICAgfSBl
bHNlIHsKQEAgLTU1MSw3ICs1NDgsNyBAQAogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgJG1zZy5hcHBlbmQoICcgJywgJGRldGFpbHNMaW5rICk7CiAgICAgICAgIH0KLSAgICAgICAg
cmV0dXJuICRtc2dDb250YWluZXIuaHRtbCggJG1zZyApOworICAgICAgICByZXR1cm4gJG1zZ0Nv
bnRhaW5lci5hcHBlbmQoICRtc2cgKTsKICAgICB9LAo9MjAKICAgICAvKiogY29udmVydCBtc2cg
YW5kIGRldGFpbHMgaW50byBtb2RhbCBvcHRpb25zIHVzYWJsZSBieSBHYWxheHkubW9kYWwgPQoq
LwpAQCAtNTgyLDEwICs1NzksMTIgQEAKPTIwCiAgICAgLyoqIFJlbW92ZSBhbGwgbWVzc2FnZXMg
ZnJvbSB0aGUgcGFuZWwuICovCiAgICAgY2xlYXJNZXNzYWdlcyA6IGZ1bmN0aW9uKCBldiApewot
ICAgICAgICAkKCBldi5jdXJyZW50VGFyZ2V0ICkuZmFkZU91dCggdGhpcy5meFNwZWVkLCBmdW5j
dGlvbigpeworICAgICAgICB2YXIgJHRhcmdldCA9M0QgIV8uaXNVbmRlZmluZWQoIGV2ICk/Cisg
ICAgICAgICAgICAkKCBldi5jdXJyZW50VGFyZ2V0ICkKKyAgICAgICAgICAgIDp0aGlzLiRtZXNz
YWdlcygpLmNoaWxkcmVuKCAnW2NsYXNzJD0zRCJtZXNzYWdlIl0nICk7CisgICAgICAgICR0YXJn
ZXQuZmFkZU91dCggdGhpcy5meFNwZWVkLCBmdW5jdGlvbigpewogICAgICAgICAgICAgJCggdGhp
cyApLnJlbW92ZSgpOwogICAgICAgICB9KTsKLSAgICAgICAgLy90aGlzLiRtZXNzYWdlcygpLmNo
aWxkcmVuKCkubm90KCAnLnF1b3RhLW1lc3NhZ2UnICkucmVtb3ZlKCk7CiAgICAgICAgIHJldHVy
biB0aGlzOwogICAgIH0sCj0yMAoKZGlmZiAtciA5MzgwMWQ2ZmE3YmQzMmE4MWRlMzk3MTM3OTUz
MzEyY2NhN2E0M2ExIC1yIDMzZmQ0M2Y3NTkwZjE3ZWQ2MTFjZTA3PQoxNzhjYWU4YzJiNzA1MjVk
MCBzdGF0aWMvc2NyaXB0cy9tdmMvbGlzdC9saXN0LXBhbmVsLmpzCi0tLSBhL3N0YXRpYy9zY3Jp
cHRzL212Yy9saXN0L2xpc3QtcGFuZWwuanMKKysrIGIvc3RhdGljL3NjcmlwdHMvbXZjL2xpc3Qv
bGlzdC1wYW5lbC5qcwpAQCAtMTE5LDYgKzExOSw4IEBACiAgICAgX3NldFVwTGlzdGVuZXJzIDog
ZnVuY3Rpb24oKXsKICAgICAgICAgdGhpcy5vZmYoKTsKPTIwCisgICAgICAgIC8vVE9ETzogbW92
ZSBlcnJvckhhbmRsZXIgZG93biBpbnRvIGxpc3QtcGFuZWwgZnJvbSBoaXN0b3J5LXBhbmVsID0K
b3IKKyAgICAgICAgLy8gIHBhc3MgdG8gZ2xvYmFsIGVycm9yIGhhbmRsZXIgKEdhbGF4eSkKICAg
ICAgICAgdGhpcy5vbiggJ2Vycm9yJywgZnVuY3Rpb24oIG1vZGVsLCB4aHIsIG9wdGlvbnMsIG1z
ZywgZGV0YWlscyApewogICAgICAgICAgICAgLy90aGlzLmVycm9ySGFuZGxlciggbW9kZWwsIHho
ciwgb3B0aW9ucywgbXNnLCBkZXRhaWxzICk7CiAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCBt
b2RlbCwgeGhyLCBvcHRpb25zLCBtc2csIGRldGFpbHMgKTsKCmRpZmYgLXIgOTM4MDFkNmZhN2Jk
MzJhODFkZTM5NzEzNzk1MzMxMmNjYTdhNDNhMSAtciAzM2ZkNDNmNzU5MGYxN2VkNjExY2UwNz0K
MTc4Y2FlOGMyYjcwNTI1ZDAgc3RhdGljL3NjcmlwdHMvcGFja2VkL212Yy9oaXN0b3J5L2hpc3Rv
cnktcGFuZWwtZWRpdC1jdXJyPQplbnQuanMKLS0tIGEvc3RhdGljL3NjcmlwdHMvcGFja2VkL212
Yy9oaXN0b3J5L2hpc3RvcnktcGFuZWwtZWRpdC1jdXJyZW50LmpzCisrKyBiL3N0YXRpYy9zY3Jp
cHRzL3BhY2tlZC9tdmMvaGlzdG9yeS9oaXN0b3J5LXBhbmVsLWVkaXQtY3VycmVudC5qcwpAQCAt
MSwxICsxLDEgQEAKLWRlZmluZShbIm12Yy9oaXN0b3J5L2hpc3RvcnktbW9kZWwiLCJtdmMvaGlz
dG9yeS9oaXN0b3J5LXBhbmVsLWVkaXQiLCJtdmMvPQpjb2xsZWN0aW9uL2NvbGxlY3Rpb24tcGFu
ZWwiLCJtdmMvYmFzZS1tdmMiLCJ1dGlscy9sb2NhbGl6YXRpb24iXSxmdW5jdGlvbig9CmQsYyxh
LGgsYil7dmFyIGU9M0RoLlNlc3Npb25TdG9yYWdlTW9kZWwuZXh0ZW5kKHtkZWZhdWx0czp7dGFn
c0VkaXRvclNob3duOj0KZmFsc2UsYW5ub3RhdGlvbkVkaXRvclNob3duOmZhbHNlLHNjcm9sbFBv
c2l0aW9uOjB9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0PQp1cm4iSGlzdG9yeVBhbmVsUHJlZnMo
IitKU09OLnN0cmluZ2lmeSh0aGlzLnRvSlNPTigpKSsiKSJ9fSk7ZS5zdG9yYWdlS2V5PQo9M0Rm
dW5jdGlvbiBmKCl7cmV0dXJuKCJoaXN0b3J5LXBhbmVsIil9O3ZhciBnPTNEYy5IaXN0b3J5UGFu
ZWxFZGl0O3ZhciBpPQo9M0RnLmV4dGVuZCh7Y2xhc3NOYW1lOmcucHJvdG90eXBlLmNsYXNzTmFt
ZSsiIGN1cnJlbnQtaGlzdG9yeS1wYW5lbCIsZW1wdHk9Ck1zZzpiKCJUaGlzIGhpc3RvcnkgaXMg
ZW1wdHkuIENsaWNrICdHZXQgRGF0YScgb24gdGhlIGxlZnQgdG9vbCBtZW51IHRvIHN0YT0KcnQi
KSxub25lRm91bmRNc2c6YigiTm8gbWF0Y2hpbmcgZGF0YXNldHMgZm91bmQiKSxIRENBVmlld0Ns
YXNzOmcucHJvdG90eXBlPQouSERDQVZpZXdDbGFzcy5leHRlbmQoe2ZvbGRvdXRTdHlsZToiZHJp
bGxkb3duIn0pLGluaXRpYWxpemU6ZnVuY3Rpb24oail7aj0KPTNEanx8e307dGhpcy5wcmVmZXJl
bmNlcz0zRG5ldyBlKF8uZXh0ZW5kKHtpZDplLnN0b3JhZ2VLZXkoKX0sXy5waWNrKGosXy5rPQpl
eXMoZS5wcm90b3R5cGUuZGVmYXVsdHMpKSkpO2cucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0
aGlzLGopO3RoaXMucGFuZWw9ClN0YWNrPTNEW107dGhpcy5jdXJyZW50Q29udGVudElkPTNEai5j
dXJyZW50Q29udGVudElkfHxudWxsfSxfc2V0VXBMaXN0ZW5lcj0KczpmdW5jdGlvbigpe2cucHJv
dG90eXBlLl9zZXRVcExpc3RlbmVycy5jYWxsKHRoaXMpO3ZhciBqPTNEdGhpczt0aGlzLiRzY3Jv
PQpsbENvbnRhaW5lcigpLm9uKCJzY3JvbGwiLGZ1bmN0aW9uKGspe2lmKGouJGVsLmlzKCI6dmlz
aWJsZSIpKXtqLnByZWZlcmVuY2U9CnMuc2V0KCJzY3JvbGxQb3NpdGlvbiIsJCh0aGlzKS5zY3Jv
bGxUb3AoKSl9fSk7dGhpcy5vbigibmV3LW1vZGVsIixmdW5jdGlvbj0KKCl7ai5wcmVmZXJlbmNl
cy5zZXQoInNjcm9sbFBvc2l0aW9uIiwwKX0pfSxsb2FkQ3VycmVudEhpc3Rvcnk6ZnVuY3Rpb24o
ayl7PQp0aGlzLmRlYnVnKHRoaXMrIi5sb2FkQ3VycmVudEhpc3RvcnkiKTt2YXIgaj0zRHRoaXM7
cmV0dXJuIHRoaXMubG9hZEhpc3Rvcnk9CldpdGhEZXRhaWxzKCJjdXJyZW50IixrKS50aGVuKGZ1
bmN0aW9uKG0sbCl7ai50cmlnZ2VyKCJjdXJyZW50LWhpc3RvcnkiLGopfT0KKX0sc3dpdGNoVG9I
aXN0b3J5OmZ1bmN0aW9uKG0sbCl7dmFyIGo9M0R0aGlzLGs9M0RmdW5jdGlvbigpe3JldHVybiBq
UXVlcnkuPQpnZXRKU09OKGdhbGF4eV9jb25maWcucm9vdCsiaGlzdG9yeS9zZXRfYXNfY3VycmVu
dD9pZD0zRCIrbSl9O3JldHVybiB0aGlzLmw9Cm9hZEhpc3RvcnlXaXRoRGV0YWlscyhtLGwsayku
dGhlbihmdW5jdGlvbihvLG4pe2oudHJpZ2dlcigic3dpdGNoZWQtaGlzdG9yeT0KIixqKX0pfSxj
cmVhdGVOZXdIaXN0b3J5OmZ1bmN0aW9uKGwpe2lmKCFHYWxheHl8fCFHYWxheHkuY3VyclVzZXJ8
fEdhbGF4eS5jPQp1cnJVc2VyLmlzQW5vbnltb3VzKCkpe3RoaXMuZGlzcGxheU1lc3NhZ2UoImVy
cm9yIixiKCJZb3UgbXVzdCBiZSBsb2dnZWQgaW49CiB0byBjcmVhdGUgaGlzdG9yaWVzIikpO3Jl
dHVybiAkLndoZW4oKX12YXIgaj0zRHRoaXMsaz0zRGZ1bmN0aW9uKCl7cmV0dXJuID0KalF1ZXJ5
LmdldEpTT04oZ2FsYXh5X2NvbmZpZy5yb290KyJoaXN0b3J5L2NyZWF0ZV9uZXdfY3VycmVudCIp
fTtyZXR1cm4gdGhpPQpzLmxvYWRIaXN0b3J5KHVuZGVmaW5lZCxsLGspLnRoZW4oZnVuY3Rpb24o
bixtKXtqLnRyaWdnZXIoIm5ldy1oaXN0b3J5IixqKX09Cil9LHNldE1vZGVsOmZ1bmN0aW9uKGss
aixsKXtnLnByb3RvdHlwZS5zZXRNb2RlbC5jYWxsKHRoaXMsayxqLGwpO2lmKHRoaXMubT0Kb2Rl
bCl7dGhpcy5sb2coImNoZWNraW5nIGZvciB1cGRhdGVzIik7dGhpcy5tb2RlbC5jaGVja0ZvclVw
ZGF0ZXMoKX1yZXR1cm4gPQp0aGlzfSxfc2V0VXBDb2xsZWN0aW9uTGlzdGVuZXJzOmZ1bmN0aW9u
KCl7Zy5wcm90b3R5cGUuX3NldFVwQ29sbGVjdGlvbkxpc3Q9CmVuZXJzLmNhbGwodGhpcyk7dGhp
cy5jb2xsZWN0aW9uLm9uKCJzdGF0ZTpyZWFkeSIsZnVuY3Rpb24oayxsLGope2lmKCghay5nZT0K
dCgidmlzaWJsZSIpKSYmKCF0aGlzLnN0b3JhZ2UuZ2V0KCJzaG93X2hpZGRlbiIpKSl7dGhpcy5y
ZW1vdmVJdGVtVmlldyhrKX19PQosdGhpcyl9LF9zZXRVcE1vZGVsTGlzdGVuZXJzOmZ1bmN0aW9u
KCl7Zy5wcm90b3R5cGUuX3NldFVwTW9kZWxMaXN0ZW5lcnMuY2E9CmxsKHRoaXMpO2lmKEdhbGF4
eSYmR2FsYXh5LnF1b3RhTWV0ZXIpe3RoaXMubGlzdGVuVG8odGhpcy5tb2RlbCwiY2hhbmdlOm5p
Yz0KZV9zaXplIixmdW5jdGlvbigpe0dhbGF4eS5xdW90YU1ldGVyLnVwZGF0ZSgpfSl9fSxfYnVp
bGROZXdSZW5kZXI6ZnVuY3Rpb24oPQope2lmKCF0aGlzLm1vZGVsKXtyZXR1cm4gJCgpfXZhciBq
PTNEZy5wcm90b3R5cGUuX2J1aWxkTmV3UmVuZGVyLmNhbGwodGhpcyk9CjtqLmZpbmQoIi5zZWFy
Y2giKS5wcmVwZW5kVG8oai5maW5kKCIuY29udHJvbHMiKSk7dGhpcy5fcmVuZGVyUXVvdGFNZXNz
YWdlKD0Kaik7cmV0dXJuIGp9LF9yZW5kZXJRdW90YU1lc3NhZ2U6ZnVuY3Rpb24oail7aj0zRGp8
fHRoaXMuJGVsO3JldHVybiAkKHRoaXMuPQp0ZW1wbGF0ZXMucXVvdGFNc2coe30sdGhpcykpLnBy
ZXBlbmRUbyhqLmZpbmQoIi5tZXNzYWdlcyIpKX0sX3JlbmRlckVtcHR5TWU9CnNzYWdlOmZ1bmN0
aW9uKGwpe3ZhciBrPTNEdGhpcyxqPTNEay4kZW1wdHlNZXNzYWdlKGwpLG09M0QkKCIudG9vbE1l
bnVDb250YT0KaW5lciIpO2lmKChfLmlzRW1wdHkoay52aWV3cykmJiFrLnNlYXJjaEZvcikmJihH
YWxheHkmJkdhbGF4eS51cGxvYWQmJm0uc2l6PQplKCkpKXtqLmVtcHR5KCk7ai5odG1sKFtiKCJU
aGlzIGhpc3RvcnkgaXMgZW1wdHkiKSwiLiAiLGIoIllvdSBjYW4gIiksJzxhIGM9Cmxhc3M9M0Qi
dXBsb2FkZXItbGluayIgaHJlZj0zRCJqYXZhc2NyaXB0OnZvaWQoMCkiPicsYigibG9hZCB5b3Vy
IG93biBkYXRhIj0KKSwiPC9hPiIsYigiIG9yICIpLCc8YSBjbGFzcz0zRCJnZXQtZGF0YS1saW5r
IiBocmVmPTNEImphdmFzY3JpcHQ6dm9pZCgwKSI+PQonLGIoImdldCBkYXRhIGZyb20gYW4gZXh0
ZXJuYWwgc291cmNlIiksIjwvYT4iXS5qb2luKCIiKSk7ai5maW5kKCIudXBsb2FkZXI9Ci1saW5r
IikuY2xpY2soZnVuY3Rpb24obil7R2FsYXh5LnVwbG9hZC5zaG93KG4pfSk7ai5maW5kKCIuZ2V0
LWRhdGEtbGluayIpLj0KY2xpY2soZnVuY3Rpb24obil7bS5wYXJlbnQoKS5zY3JvbGxUb3AoMCk7
bS5maW5kKCdzcGFuOmNvbnRhaW5zKCJHZXQgRGF0YSIpPQonKS5jbGljaygpfSk7cmV0dXJuIGou
c2hvdygpfXJldHVybiBnLnByb3RvdHlwZS5fcmVuZGVyRW1wdHlNZXNzYWdlLmNhbGwodGg9Cmlz
LGwpfSxfcmVuZGVyVGFnczpmdW5jdGlvbihqKXt2YXIgaz0zRHRoaXM7Zy5wcm90b3R5cGUuX3Jl
bmRlclRhZ3MuY2FsbCh0aD0KaXMsaik7aWYodGhpcy5wcmVmZXJlbmNlcy5nZXQoInRhZ3NFZGl0
b3JTaG93biIpKXt0aGlzLnRhZ3NFZGl0b3IudG9nZ2xlKHRyPQp1ZSl9dGhpcy50YWdzRWRpdG9y
Lm9uKCJoaWRkZW5VbnRpbEFjdGl2YXRlZDpzaG93biBoaWRkZW5VbnRpbEFjdGl2YXRlZDpoaWQ9
CmRlbiIsZnVuY3Rpb24obCl7ay5wcmVmZXJlbmNlcy5zZXQoInRhZ3NFZGl0b3JTaG93biIsbC5o
aWRkZW4pfSl9LF9yZW5kZXJBbj0Kbm90YXRpb246ZnVuY3Rpb24oail7dmFyIGs9M0R0aGlzO2cu
cHJvdG90eXBlLl9yZW5kZXJBbm5vdGF0aW9uLmNhbGwodGhpcyxqPQopO2lmKHRoaXMucHJlZmVy
ZW5jZXMuZ2V0KCJhbm5vdGF0aW9uRWRpdG9yU2hvd24iKSl7dGhpcy5hbm5vdGF0aW9uRWRpdG9y
LnQ9Cm9nZ2xlKHRydWUpfXRoaXMuYW5ub3RhdGlvbkVkaXRvci5vbigiaGlkZGVuVW50aWxBY3Rp
dmF0ZWQ6c2hvd24gaGlkZGVuVW50aT0KbEFjdGl2YXRlZDpoaWRkZW4iLGZ1bmN0aW9uKGwpe2su
cHJlZmVyZW5jZXMuc2V0KCJhbm5vdGF0aW9uRWRpdG9yU2hvd24iLGwuPQpoaWRkZW4pfSl9LF9z
d2FwTmV3UmVuZGVyOmZ1bmN0aW9uKGspe2cucHJvdG90eXBlLl9zd2FwTmV3UmVuZGVyLmNhbGwo
dGhpcyw9CmspO3ZhciBqPTNEdGhpcztfLmRlbGF5KGZ1bmN0aW9uKCl7dmFyIGw9M0RqLnByZWZl
cmVuY2VzLmdldCgic2Nyb2xsUG9zaXRpbz0KbiIpO2lmKGwpe2ouc2Nyb2xsVG8obCl9fSwxMCk7
cmV0dXJuIHRoaXN9LF9hdHRhY2hJdGVtczpmdW5jdGlvbihrKXtnLnByb3RvPQp0eXBlLl9hdHRh
Y2hJdGVtcy5jYWxsKHRoaXMsayk7dmFyIGo9M0R0aGlzLGw7aWYoai5jdXJyZW50Q29udGVudElk
JiYobD0zRGo9Ci52aWV3RnJvbU1vZGVsSWQoai5jdXJyZW50Q29udGVudElkKSkpe2ouc2V0Q3Vy
cmVudENvbnRlbnQobCl9cmV0dXJuIHRoaXN9LD0KYWRkSXRlbVZpZXc6ZnVuY3Rpb24obCxtLGsp
e3ZhciBqPTNEZy5wcm90b3R5cGUuYWRkSXRlbVZpZXcuY2FsbCh0aGlzLGwsbSxrPQopO2lmKCFq
KXtyZXR1cm4gan1pZih0aGlzLnBhbmVsU3RhY2subGVuZ3RoKXtyZXR1cm4gdGhpcy5fY29sbGFw
c2VEcmlsbGRvd249ClBhbmVsKCl9cmV0dXJuIGp9LF9zZXRVcEl0ZW1WaWV3TGlzdGVuZXJzOmZ1
bmN0aW9uKGspe3ZhciBqPTNEdGhpcztnLnByb3RvdD0KeXBlLl9zZXRVcEl0ZW1WaWV3TGlzdGVu
ZXJzLmNhbGwoaixrKTtrLm9uKCJleHBhbmRlZDpkcmlsbGRvd24iLGZ1bmN0aW9uKG0sPQpsKXt0
aGlzLl9leHBhbmREcmlsbGRvd25QYW5lbChsKX0sdGhpcyk7ay5vbigiY29sbGFwc2VkOmRyaWxs
ZG93biIsZnVuY3Rpb249CihtLGwpe3RoaXMuX2NvbGxhcHNlRHJpbGxkb3duUGFuZWwobCl9LHRo
aXMpO2sub24oImRpc3BsYXkgZWRpdCBwYXJhbXMgcmVydT0KbiByZXBvcnQtZXJyIHZpc3VhbGl6
ZSIsZnVuY3Rpb24obCxtKXt0aGlzLnNldEN1cnJlbnRDb250ZW50KGwpfSx0aGlzKTtyZXR1PQpy
biB0aGlzfSxzZXRDdXJyZW50Q29udGVudDpmdW5jdGlvbihqKXt0aGlzLiQoIi5oaXN0b3J5LWNv
bnRlbnQuY3VycmVudC1jb249CnRlbnQiKS5yZW1vdmVDbGFzcygiY3VycmVudC1jb250ZW50Iik7
aWYoail7ai4kZWwuYWRkQ2xhc3MoImN1cnJlbnQtY29udGVudD0KIik7dGhpcy5jdXJyZW50Q29u
dGVudElkPTNEai5tb2RlbC5pZH1lbHNle3RoaXMuY3VycmVudENvbnRlbnRJZD0zRG51bGx9fSxf
PQpleHBhbmREcmlsbGRvd25QYW5lbDpmdW5jdGlvbihqKXt0aGlzLnBhbmVsU3RhY2sucHVzaChq
KTt0aGlzLiQoIj4gLmNvbnRyb2w9CnMiKS5hZGQodGhpcy4kbGlzdCgpKS5oaWRlKCk7ai5wYXJl
bnROYW1lPTNEdGhpcy5tb2RlbC5nZXQoIm5hbWUiKTt0aGlzLiRlbD0KLmFwcGVuZChqLnJlbmRl
cigpLiRlbCl9LF9jb2xsYXBzZURyaWxsZG93blBhbmVsOmZ1bmN0aW9uKGope3RoaXMucGFuZWxT
dGFjPQprLnBvcCgpO3RoaXMucmVuZGVyKCl9LGNvbm5lY3RUb1F1b3RhTWV0ZXI6ZnVuY3Rpb24o
ail7aWYoIWope3JldHVybiB0aGlzfXQ9Cmhpcy5saXN0ZW5UbyhqLCJxdW90YTpvdmVyIix0aGlz
LnNob3dRdW90YU1lc3NhZ2UpO3RoaXMubGlzdGVuVG8oaiwicXVvdGE6dT0KbmRlciIsdGhpcy5o
aWRlUXVvdGFNZXNzYWdlKTt0aGlzLm9uKCJyZW5kZXJlZCByZW5kZXJlZDppbml0aWFsIixmdW5j
dGlvbigpPQp7aWYoaiYmai5pc092ZXJRdW90YSgpKXt0aGlzLnNob3dRdW90YU1lc3NhZ2UoKX19
KTtyZXR1cm4gdGhpc30sc2hvd1F1b3RhTWU9CnNzYWdlOmZ1bmN0aW9uKCl7dmFyIGo9M0R0aGlz
LiRlbC5maW5kKCIucXVvdGEtbWVzc2FnZSIpO2lmKGouaXMoIjpoaWRkZW4iKT0KKXtqLnNsaWRl
RG93bih0aGlzLmZ4U3BlZWQpfX0saGlkZVF1b3RhTWVzc2FnZTpmdW5jdGlvbigpe3ZhciBqPTNE
dGhpcy4kZWwuPQpmaW5kKCIucXVvdGEtbWVzc2FnZSIpO2lmKCFqLmlzKCI6aGlkZGVuIikpe2ou
c2xpZGVVcCh0aGlzLmZ4U3BlZWQpfX0sdG9TdHI9CmluZzpmdW5jdGlvbigpe3JldHVybiJDdXJy
ZW50SGlzdG9yeVBhbmVsKCIrKCh0aGlzLm1vZGVsKT8odGhpcy5tb2RlbC5nZXQoIj0KbmFtZSIp
KTooIiIpKSsiKSJ9fSk7aS5wcm90b3R5cGUudGVtcGxhdGVzPTNEKGZ1bmN0aW9uKCl7dmFyIGo9
M0RoLndyYXBUZW1wPQpsYXRlKFsnPGRpdiBjbGFzcz0zRCJxdW90YS1tZXNzYWdlIGVycm9ybWVz
c2FnZSI+JyxiKCJZb3UgYXJlIG92ZXIgeW91ciBkaXM9CmsgcXVvdGEiKSwiLiAiLGIoIlRvb2wg
ZXhlY3V0aW9uIGlzIG9uIGhvbGQgdW50aWwgeW91ciBkaXNrIHVzYWdlIGRyb3BzIGJlbD0Kb3cg
eW91ciBhbGxvY2F0ZWQgcXVvdGEiKSwiLiIsIjwvZGl2PiJdLCJoaXN0b3J5Iik7cmV0dXJuIF8u
ZXh0ZW5kKF8uY2xvbmUoPQpnLnByb3RvdHlwZS50ZW1wbGF0ZXMpLHtxdW90YU1zZzpqfSl9KCkp
O3JldHVybntDdXJyZW50SGlzdG9yeVBhbmVsOml9fSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQorZGVmaW5lKFsibXZjL2hpc3RvcnkvaGlzdG9yeS1tb2RlbCIsIm12Yy9oaXN0b3J5L2hp
c3RvcnktcGFuZWwtZWRpdCIsIm12Yy89CmNvbGxlY3Rpb24vY29sbGVjdGlvbi1wYW5lbCIsIm12
Yy9iYXNlLW12YyIsInV0aWxzL2xvY2FsaXphdGlvbiJdLGZ1bmN0aW9uKD0KZCxjLGEsaCxiKXt2
YXIgZT0zRGguU2Vzc2lvblN0b3JhZ2VNb2RlbC5leHRlbmQoe2RlZmF1bHRzOnt0YWdzRWRpdG9y
U2hvd246PQpmYWxzZSxhbm5vdGF0aW9uRWRpdG9yU2hvd246ZmFsc2Usc2Nyb2xsUG9zaXRpb246
MH0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXQ9CnVybiJIaXN0b3J5UGFuZWxQcmVmcygiK0pTT04u
c3RyaW5naWZ5KHRoaXMudG9KU09OKCkpKyIpIn19KTtlLnN0b3JhZ2VLZXk9Cj0zRGZ1bmN0aW9u
IGYoKXtyZXR1cm4oImhpc3RvcnktcGFuZWwiKX07dmFyIGc9M0RjLkhpc3RvcnlQYW5lbEVkaXQ7
dmFyIGk9Cj0zRGcuZXh0ZW5kKHtjbGFzc05hbWU6Zy5wcm90b3R5cGUuY2xhc3NOYW1lKyIgY3Vy
cmVudC1oaXN0b3J5LXBhbmVsIixlbXB0eT0KTXNnOmIoIlRoaXMgaGlzdG9yeSBpcyBlbXB0eS4g
Q2xpY2sgJ0dldCBEYXRhJyBvbiB0aGUgbGVmdCB0b29sIG1lbnUgdG8gc3RhPQpydCIpLG5vbmVG
b3VuZE1zZzpiKCJObyBtYXRjaGluZyBkYXRhc2V0cyBmb3VuZCIpLEhEQ0FWaWV3Q2xhc3M6Zy5w
cm90b3R5cGU9Ci5IRENBVmlld0NsYXNzLmV4dGVuZCh7Zm9sZG91dFN0eWxlOiJkcmlsbGRvd24i
fSksaW5pdGlhbGl6ZTpmdW5jdGlvbihqKXtqPQo9M0RqfHx7fTt0aGlzLnByZWZlcmVuY2VzPTNE
bmV3IGUoXy5leHRlbmQoe2lkOmUuc3RvcmFnZUtleSgpfSxfLnBpY2soaixfLms9CmV5cyhlLnBy
b3RvdHlwZS5kZWZhdWx0cykpKSk7Zy5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsaik7
dGhpcy5wYW5lbD0KU3RhY2s9M0RbXTt0aGlzLmN1cnJlbnRDb250ZW50SWQ9M0RqLmN1cnJlbnRD
b250ZW50SWR8fG51bGx9LF9zZXRVcExpc3RlbmVyPQpzOmZ1bmN0aW9uKCl7Zy5wcm90b3R5cGUu
X3NldFVwTGlzdGVuZXJzLmNhbGwodGhpcyk7dmFyIGo9M0R0aGlzO3RoaXMuJHNjcm89CmxsQ29u
dGFpbmVyKCkub24oInNjcm9sbCIsZnVuY3Rpb24oayl7aWYoai4kZWwuaXMoIjp2aXNpYmxlIikp
e2oucHJlZmVyZW5jZT0Kcy5zZXQoInNjcm9sbFBvc2l0aW9uIiwkKHRoaXMpLnNjcm9sbFRvcCgp
KX19KTt0aGlzLm9uKCJuZXctbW9kZWwiLGZ1bmN0aW9uPQooKXtqLnByZWZlcmVuY2VzLnNldCgi
c2Nyb2xsUG9zaXRpb24iLDApfSl9LGxvYWRDdXJyZW50SGlzdG9yeTpmdW5jdGlvbihrKXs9CnRo
aXMuZGVidWcodGhpcysiLmxvYWRDdXJyZW50SGlzdG9yeSIpO3ZhciBqPTNEdGhpcztyZXR1cm4g
dGhpcy5sb2FkSGlzdG9yeT0KV2l0aERldGFpbHMoImN1cnJlbnQiLGspLnRoZW4oZnVuY3Rpb24o
bSxsKXtqLnRyaWdnZXIoImN1cnJlbnQtaGlzdG9yeSIsail9PQopfSxzd2l0Y2hUb0hpc3Rvcnk6
ZnVuY3Rpb24obSxsKXt2YXIgaj0zRHRoaXMsaz0zRGZ1bmN0aW9uKCl7cmV0dXJuIGpRdWVyeS49
CmdldEpTT04oZ2FsYXh5X2NvbmZpZy5yb290KyJoaXN0b3J5L3NldF9hc19jdXJyZW50P2lkPTNE
IittKX07cmV0dXJuIHRoaXMubD0Kb2FkSGlzdG9yeVdpdGhEZXRhaWxzKG0sbCxrKS50aGVuKGZ1
bmN0aW9uKG8sbil7ai50cmlnZ2VyKCJzd2l0Y2hlZC1oaXN0b3J5PQoiLGopfSl9LGNyZWF0ZU5l
d0hpc3Rvcnk6ZnVuY3Rpb24obCl7aWYoIUdhbGF4eXx8IUdhbGF4eS5jdXJyVXNlcnx8R2FsYXh5
LmM9CnVyclVzZXIuaXNBbm9ueW1vdXMoKSl7dGhpcy5kaXNwbGF5TWVzc2FnZSgiZXJyb3IiLGIo
IllvdSBtdXN0IGJlIGxvZ2dlZCBpbj0KIHRvIGNyZWF0ZSBoaXN0b3JpZXMiKSk7cmV0dXJuICQu
d2hlbigpfXZhciBqPTNEdGhpcyxrPTNEZnVuY3Rpb24oKXtyZXR1cm4gPQpqUXVlcnkuZ2V0SlNP
TihnYWxheHlfY29uZmlnLnJvb3QrImhpc3RvcnkvY3JlYXRlX25ld19jdXJyZW50Iil9O3JldHVy
biB0aGk9CnMubG9hZEhpc3RvcnkodW5kZWZpbmVkLGwsaykudGhlbihmdW5jdGlvbihuLG0pe2ou
dHJpZ2dlcigibmV3LWhpc3RvcnkiLGopfT0KKX0sc2V0TW9kZWw6ZnVuY3Rpb24oayxqLGwpe2cu
cHJvdG90eXBlLnNldE1vZGVsLmNhbGwodGhpcyxrLGosbCk7aWYodGhpcy5tPQpvZGVsKXt0aGlz
LmxvZygiY2hlY2tpbmcgZm9yIHVwZGF0ZXMiKTt0aGlzLm1vZGVsLmNoZWNrRm9yVXBkYXRlcygp
fXJldHVybiA9CnRoaXN9LF9zZXRVcENvbGxlY3Rpb25MaXN0ZW5lcnM6ZnVuY3Rpb24oKXtnLnBy
b3RvdHlwZS5fc2V0VXBDb2xsZWN0aW9uTGlzdD0KZW5lcnMuY2FsbCh0aGlzKTt0aGlzLmNvbGxl
Y3Rpb24ub24oInN0YXRlOnJlYWR5IixmdW5jdGlvbihrLGwsail7aWYoKCFrLmdlPQp0KCJ2aXNp
YmxlIikpJiYoIXRoaXMuc3RvcmFnZS5nZXQoInNob3dfaGlkZGVuIikpKXt0aGlzLnJlbW92ZUl0
ZW1WaWV3KGspfX09Cix0aGlzKX0sX3NldFVwTW9kZWxMaXN0ZW5lcnM6ZnVuY3Rpb24oKXtnLnBy
b3RvdHlwZS5fc2V0VXBNb2RlbExpc3RlbmVycy5jYT0KbGwodGhpcyk7aWYoR2FsYXh5JiZHYWxh
eHkucXVvdGFNZXRlcil7dGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCJjaGFuZ2U6bmljPQplX3Np
emUiLGZ1bmN0aW9uKCl7R2FsYXh5LnF1b3RhTWV0ZXIudXBkYXRlKCl9KX19LF9idWlsZE5ld1Jl
bmRlcjpmdW5jdGlvbig9Cil7aWYoIXRoaXMubW9kZWwpe3JldHVybiAkKCl9dmFyIGo9M0RnLnBy
b3RvdHlwZS5fYnVpbGROZXdSZW5kZXIuY2FsbCh0aGlzKT0KO2ouZmluZCgiLnNlYXJjaCIpLnBy
ZXBlbmRUbyhqLmZpbmQoIi5jb250cm9scyIpKTt0aGlzLl9yZW5kZXJRdW90YU1lc3NhZ2UoPQpq
KTtyZXR1cm4gan0sX3JlbmRlclF1b3RhTWVzc2FnZTpmdW5jdGlvbihqKXtqPTNEanx8dGhpcy4k
ZWw7cmV0dXJuICQodGhpcy49CnRlbXBsYXRlcy5xdW90YU1zZyh7fSx0aGlzKSkucHJlcGVuZFRv
KGouZmluZCgiLm1lc3NhZ2VzIikpfSxfcmVuZGVyRW1wdHlNZT0Kc3NhZ2U6ZnVuY3Rpb24obCl7
dmFyIGs9M0R0aGlzLGo9M0RrLiRlbXB0eU1lc3NhZ2UobCksbT0zRCQoIi50b29sTWVudUNvbnRh
PQppbmVyIik7aWYoKF8uaXNFbXB0eShrLnZpZXdzKSYmIWsuc2VhcmNoRm9yKSYmKEdhbGF4eSYm
R2FsYXh5LnVwbG9hZCYmbS5zaXo9CmUoKSkpe2ouZW1wdHkoKTtqLmh0bWwoW2IoIlRoaXMgaGlz
dG9yeSBpcyBlbXB0eSIpLCIuICIsYigiWW91IGNhbiAiKSwnPGEgYz0KbGFzcz0zRCJ1cGxvYWRl
ci1saW5rIiBocmVmPTNEImphdmFzY3JpcHQ6dm9pZCgwKSI+JyxiKCJsb2FkIHlvdXIgb3duIGRh
dGEiPQopLCI8L2E+IixiKCIgb3IgIiksJzxhIGNsYXNzPTNEImdldC1kYXRhLWxpbmsiIGhyZWY9
M0QiamF2YXNjcmlwdDp2b2lkKDApIj49CicsYigiZ2V0IGRhdGEgZnJvbSBhbiBleHRlcm5hbCBz
b3VyY2UiKSwiPC9hPiJdLmpvaW4oIiIpKTtqLmZpbmQoIi51cGxvYWRlcj0KLWxpbmsiKS5jbGlj
ayhmdW5jdGlvbihuKXtHYWxheHkudXBsb2FkLnNob3cobil9KTtqLmZpbmQoIi5nZXQtZGF0YS1s
aW5rIikuPQpjbGljayhmdW5jdGlvbihuKXttLnBhcmVudCgpLnNjcm9sbFRvcCgwKTttLmZpbmQo
J3NwYW46Y29udGFpbnMoIkdldCBEYXRhIik9CicpLmNsaWNrKCl9KTtyZXR1cm4gai5zaG93KCl9
cmV0dXJuIGcucHJvdG90eXBlLl9yZW5kZXJFbXB0eU1lc3NhZ2UuY2FsbCh0aD0KaXMsbCl9LF9y
ZW5kZXJUYWdzOmZ1bmN0aW9uKGope3ZhciBrPTNEdGhpcztnLnByb3RvdHlwZS5fcmVuZGVyVGFn
cy5jYWxsKHRoPQppcyxqKTtpZih0aGlzLnByZWZlcmVuY2VzLmdldCgidGFnc0VkaXRvclNob3du
Iikpe3RoaXMudGFnc0VkaXRvci50b2dnbGUodHI9CnVlKX10aGlzLnRhZ3NFZGl0b3Iub24oImhp
ZGRlblVudGlsQWN0aXZhdGVkOnNob3duIGhpZGRlblVudGlsQWN0aXZhdGVkOmhpZD0KZGVuIixm
dW5jdGlvbihsKXtrLnByZWZlcmVuY2VzLnNldCgidGFnc0VkaXRvclNob3duIixsLmhpZGRlbil9
KX0sX3JlbmRlckFuPQpub3RhdGlvbjpmdW5jdGlvbihqKXt2YXIgaz0zRHRoaXM7Zy5wcm90b3R5
cGUuX3JlbmRlckFubm90YXRpb24uY2FsbCh0aGlzLGo9Cik7aWYodGhpcy5wcmVmZXJlbmNlcy5n
ZXQoImFubm90YXRpb25FZGl0b3JTaG93biIpKXt0aGlzLmFubm90YXRpb25FZGl0b3IudD0Kb2dn
bGUodHJ1ZSl9dGhpcy5hbm5vdGF0aW9uRWRpdG9yLm9uKCJoaWRkZW5VbnRpbEFjdGl2YXRlZDpz
aG93biBoaWRkZW5VbnRpPQpsQWN0aXZhdGVkOmhpZGRlbiIsZnVuY3Rpb24obCl7ay5wcmVmZXJl
bmNlcy5zZXQoImFubm90YXRpb25FZGl0b3JTaG93biIsbC49CmhpZGRlbil9KX0sX3N3YXBOZXdS
ZW5kZXI6ZnVuY3Rpb24oayl7Zy5wcm90b3R5cGUuX3N3YXBOZXdSZW5kZXIuY2FsbCh0aGlzLD0K
ayk7dmFyIGo9M0R0aGlzO18uZGVsYXkoZnVuY3Rpb24oKXt2YXIgbD0zRGoucHJlZmVyZW5jZXMu
Z2V0KCJzY3JvbGxQb3NpdGlvPQpuIik7aWYobCl7ai5zY3JvbGxUbyhsKX19LDEwKTtyZXR1cm4g
dGhpc30sX2F0dGFjaEl0ZW1zOmZ1bmN0aW9uKGspe2cucHJvdG89CnR5cGUuX2F0dGFjaEl0ZW1z
LmNhbGwodGhpcyxrKTt2YXIgaj0zRHRoaXMsbDtpZihqLmN1cnJlbnRDb250ZW50SWQmJihsPTNE
aj0KLnZpZXdGcm9tTW9kZWxJZChqLmN1cnJlbnRDb250ZW50SWQpKSl7ai5zZXRDdXJyZW50Q29u
dGVudChsKX1yZXR1cm4gdGhpc30sPQphZGRJdGVtVmlldzpmdW5jdGlvbihsLG0sayl7dmFyIGo9
M0RnLnByb3RvdHlwZS5hZGRJdGVtVmlldy5jYWxsKHRoaXMsbCxtLGs9Cik7aWYoIWope3JldHVy
biBqfWlmKHRoaXMucGFuZWxTdGFjay5sZW5ndGgpe3JldHVybiB0aGlzLl9jb2xsYXBzZURyaWxs
ZG93bj0KUGFuZWwoKX1yZXR1cm4gan0sX3NldFVwSXRlbVZpZXdMaXN0ZW5lcnM6ZnVuY3Rpb24o
ayl7dmFyIGo9M0R0aGlzO2cucHJvdG90PQp5cGUuX3NldFVwSXRlbVZpZXdMaXN0ZW5lcnMuY2Fs
bChqLGspO2sub24oImV4cGFuZGVkOmRyaWxsZG93biIsZnVuY3Rpb24obSw9Cmwpe3RoaXMuX2V4
cGFuZERyaWxsZG93blBhbmVsKGwpfSx0aGlzKTtrLm9uKCJjb2xsYXBzZWQ6ZHJpbGxkb3duIixm
dW5jdGlvbj0KKG0sbCl7dGhpcy5fY29sbGFwc2VEcmlsbGRvd25QYW5lbChsKX0sdGhpcyk7ay5v
bigiZGlzcGxheSBlZGl0IHBhcmFtcyByZXJ1PQpuIHJlcG9ydC1lcnIgdmlzdWFsaXplIixmdW5j
dGlvbihsLG0pe3RoaXMuc2V0Q3VycmVudENvbnRlbnQobCl9LHRoaXMpO3JldHU9CnJuIHRoaXN9
LHNldEN1cnJlbnRDb250ZW50OmZ1bmN0aW9uKGope3RoaXMuJCgiLmhpc3RvcnktY29udGVudC5j
dXJyZW50LWNvbj0KdGVudCIpLnJlbW92ZUNsYXNzKCJjdXJyZW50LWNvbnRlbnQiKTtpZihqKXtq
LiRlbC5hZGRDbGFzcygiY3VycmVudC1jb250ZW50PQoiKTt0aGlzLmN1cnJlbnRDb250ZW50SWQ9
M0RqLm1vZGVsLmlkfWVsc2V7dGhpcy5jdXJyZW50Q29udGVudElkPTNEbnVsbH19LF89CmV4cGFu
ZERyaWxsZG93blBhbmVsOmZ1bmN0aW9uKGope3RoaXMucGFuZWxTdGFjay5wdXNoKGopO3RoaXMu
JCgiPiAuY29udHJvbD0KcyIpLmFkZCh0aGlzLiRsaXN0KCkpLmhpZGUoKTtqLnBhcmVudE5hbWU9
M0R0aGlzLm1vZGVsLmdldCgibmFtZSIpO3RoaXMuJGVsPQouYXBwZW5kKGoucmVuZGVyKCkuJGVs
KX0sX2NvbGxhcHNlRHJpbGxkb3duUGFuZWw6ZnVuY3Rpb24oail7dGhpcy5wYW5lbFN0YWM9Cmsu
cG9wKCk7dGhpcy5yZW5kZXIoKX0sY29ubmVjdFRvUXVvdGFNZXRlcjpmdW5jdGlvbihqKXtpZigh
ail7cmV0dXJuIHRoaXN9dD0KaGlzLmxpc3RlblRvKGosInF1b3RhOm92ZXIiLHRoaXMuc2hvd1F1
b3RhTWVzc2FnZSk7dGhpcy5saXN0ZW5UbyhqLCJxdW90YTp1PQpuZGVyIix0aGlzLmhpZGVRdW90
YU1lc3NhZ2UpO3RoaXMub24oInJlbmRlcmVkIHJlbmRlcmVkOmluaXRpYWwiLGZ1bmN0aW9uKCk9
CntpZihqJiZqLmlzT3ZlclF1b3RhKCkpe3RoaXMuc2hvd1F1b3RhTWVzc2FnZSgpfX0pO3JldHVy
biB0aGlzfSxjbGVhck1lc3NhZz0KZXM6ZnVuY3Rpb24oayl7dmFyIGo9M0QhXy5pc1VuZGVmaW5l
ZChrKT8kKGsuY3VycmVudFRhcmdldCk6dGhpcy4kbWVzc2FnZXMoPQopLmNoaWxkcmVuKCdbY2xh
c3MkPTNEIm1lc3NhZ2UiXScpO2o9M0RqLm5vdCgiLnF1b3RhLW1lc3NhZ2UiKTtqLmZhZGVPdXQo
dGg9CmlzLmZ4U3BlZWQsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZSgpfSk7cmV0dXJuIHRoaXN9
LHNob3dRdW90YU1lc3NhZ2U6ZnVuYz0KdGlvbigpe3ZhciBqPTNEdGhpcy4kKCIucXVvdGEtbWVz
c2FnZSIpO2lmKGouaXMoIjpoaWRkZW4iKSl7ai5zbGlkZURvd24odGhpPQpzLmZ4U3BlZWQpfX0s
aGlkZVF1b3RhTWVzc2FnZTpmdW5jdGlvbigpe3ZhciBqPTNEdGhpcy4kKCIucXVvdGEtbWVzc2Fn
ZSIpO2k9CmYoIWouaXMoIjpoaWRkZW4iKSl7ai5zbGlkZVVwKHRoaXMuZnhTcGVlZCl9fSx0b1N0
cmluZzpmdW5jdGlvbigpe3JldHVybiJDdT0KcnJlbnRIaXN0b3J5UGFuZWwoIisoKHRoaXMubW9k
ZWwpPyh0aGlzLm1vZGVsLmdldCgibmFtZSIpKTooIiIpKSsiKSJ9fSk7aS5wPQpyb3RvdHlwZS50
ZW1wbGF0ZXM9M0QoZnVuY3Rpb24oKXt2YXIgaj0zRGgud3JhcFRlbXBsYXRlKFsnPGRpdiBjbGFz
cz0zRCJxdW89CnRhLW1lc3NhZ2UgZXJyb3JtZXNzYWdlIj4nLGIoIllvdSBhcmUgb3ZlciB5b3Vy
IGRpc2sgcXVvdGEiKSwiLiAiLGIoIlRvb2wgZT0KeGVjdXRpb24gaXMgb24gaG9sZCB1bnRpbCB5
b3VyIGRpc2sgdXNhZ2UgZHJvcHMgYmVsb3cgeW91ciBhbGxvY2F0ZWQgcXVvdGEiPQopLCIuIiwi
PC9kaXY+Il0sImhpc3RvcnkiKTtyZXR1cm4gXy5leHRlbmQoXy5jbG9uZShnLnByb3RvdHlwZS50
ZW1wbGF0ZXMpLHs9CnF1b3RhTXNnOmp9KX0oKSk7cmV0dXJue0N1cnJlbnRIaXN0b3J5UGFuZWw6
aX19KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCgpkaWZmIC1yIDkzODAxZDZmYTdiZDMy
YTgxZGUzOTcxMzc5NTMzMTJjY2E3YTQzYTEgLXIgMzNmZDQzZjc1OTBmMTdlZDYxMWNlMDc9CjE3
OGNhZThjMmI3MDUyNWQwIHN0YXRpYy9zY3JpcHRzL3BhY2tlZC9tdmMvaGlzdG9yeS9oaXN0b3J5
LXBhbmVsLmpzCi0tLSBhL3N0YXRpYy9zY3JpcHRzL3BhY2tlZC9tdmMvaGlzdG9yeS9oaXN0b3J5
LXBhbmVsLmpzCisrKyBiL3N0YXRpYy9zY3JpcHRzL3BhY2tlZC9tdmMvaGlzdG9yeS9oaXN0b3J5
LXBhbmVsLmpzCkBAIC0xLDEgKzEsMSBAQAotZGVmaW5lKFsibXZjL2xpc3QvbGlzdC1wYW5lbCIs
Im12Yy9oaXN0b3J5L2hpc3RvcnktbW9kZWwiLCJtdmMvaGlzdG9yeS9oaXM9CnRvcnktY29udGVu
dHMiLCJtdmMvaGlzdG9yeS9oZGEtbGkiLCJtdmMvaGlzdG9yeS9oZGNhLWxpIiwibXZjL2NvbGxl
Y3Rpb24vYz0Kb2xsZWN0aW9uLXBhbmVsIiwibXZjL3VzZXIvdXNlci1tb2RlbCIsInVpL2ZhLWlj
b24tYnV0dG9uIiwibXZjL3VpL3BvcHVwLW1lPQpudSIsIm12Yy9iYXNlLW12YyIsInV0aWxzL2xv
Y2FsaXphdGlvbiIsInVpL3NlYXJjaC1pbnB1dCJdLGZ1bmN0aW9uKGYsaCxuLGQ9CixiLG8saSxj
LGEscSxnKXt2YXIgbD0zRHEuU2Vzc2lvblN0b3JhZ2VNb2RlbC5leHRlbmQoe2RlZmF1bHRzOntl
eHBhbmRlZElkcz0KOnt9LHNob3dfZGVsZXRlZDpmYWxzZSxzaG93X2hpZGRlbjpmYWxzZX0sYWRk
RXhwYW5kZWQ6ZnVuY3Rpb24ocil7dmFyIHM9M0QiPQpleHBhbmRlZElkcyI7dGhpcy5zYXZlKHMs
Xy5leHRlbmQodGhpcy5nZXQocyksXy5vYmplY3QoW3IuaWRdLFtyLmdldCgiaWQiKV09CikpKX0s
cmVtb3ZlRXhwYW5kZWQ6ZnVuY3Rpb24ocil7dmFyIHM9M0QiZXhwYW5kZWRJZHMiO3RoaXMuc2F2
ZShzLF8ub21pdCh0aD0KaXMuZ2V0KHMpLHIuaWQpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1
cm4iSGlzdG9yeVByZWZzKCIrdGhpcy5pZCsiKSJ9fSk7PQpsLnN0b3JhZ2VLZXlQcmVmaXg9M0Qi
aGlzdG9yeToiO2wuaGlzdG9yeVN0b3JhZ2VLZXk9M0RmdW5jdGlvbiBqKHIpe2lmKCFyKXs9CnRo
cm93IG5ldyBFcnJvcigiSGlzdG9yeVByZWZzLmhpc3RvcnlTdG9yYWdlS2V5IG5lZWRzIHZhbGlk
IGlkOiAiK3IpfXJldHVybj0KKGwuc3RvcmFnZUtleVByZWZpeCtyKX07bC5nZXQ9M0RmdW5jdGlv
biBlKHIpe3JldHVybiBuZXcgbCh7aWQ6bC5oaXN0b3J5U3RvPQpyYWdlS2V5KHIpfSl9O2wuY2xl
YXJBbGw9M0RmdW5jdGlvbiBrKHMpe2Zvcih2YXIgciBpbiBzZXNzaW9uU3RvcmFnZSl7aWYoci49
CmluZGV4T2YobC5zdG9yYWdlS2V5UHJlZml4KT0zRD0zRD0zRDApe3Nlc3Npb25TdG9yYWdlLnJl
bW92ZUl0ZW0ocil9fX07dmFyID0KcD0zRGYuTW9kZWxMaXN0UGFuZWw7dmFyIG09M0RwLmV4dGVu
ZCh7SERBVmlld0NsYXNzOmQuSERBTGlzdEl0ZW1WaWV3LEhEQ0FWPQppZXdDbGFzczpiLkhEQ0FM
aXN0SXRlbVZpZXcsY29sbGVjdGlvbkNsYXNzOm4uSGlzdG9yeUNvbnRlbnRzLG1vZGVsQ29sbGVj
dGk9Cm9uS2V5OiJjb250ZW50cyIsdGFnTmFtZToiZGl2IixjbGFzc05hbWU6cC5wcm90b3R5cGUu
Y2xhc3NOYW1lKyIgaGlzdG9yeS1wYT0KbmVsIixlbXB0eU1zZzpnKCJUaGlzIGhpc3RvcnkgaXMg
ZW1wdHkiKSxub25lRm91bmRNc2c6ZygiTm8gbWF0Y2hpbmcgZGF0YXNlPQp0cyBmb3VuZCIpLHNl
YXJjaFBsYWNlaG9sZGVyOmcoInNlYXJjaCBkYXRhc2V0cyIpLGluaXRpYWxpemU6ZnVuY3Rpb24o
cil7cC49CnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxyKTt0aGlzLmxpbmtUYXJnZXQ9
M0RyLmxpbmtUYXJnZXR8fCJfYmxhbmsifT0KLGZyZWVNb2RlbDpmdW5jdGlvbigpe3AucHJvdG90
eXBlLmZyZWVNb2RlbC5jYWxsKHRoaXMpO2lmKHRoaXMubW9kZWwpe3RoaXMuPQptb2RlbC5jbGVh
clVwZGF0ZVRpbWVvdXQoKX1yZXR1cm4gdGhpc30sX3NldFVwTGlzdGVuZXJzOmZ1bmN0aW9uKCl7
cC5wcm90b3Q9CnlwZS5fc2V0VXBMaXN0ZW5lcnMuY2FsbCh0aGlzKTt0aGlzLm9uKCJlcnJvciIs
ZnVuY3Rpb24ocyx2LHIsdSx0KXt0aGlzLmVycj0Kb3JIYW5kbGVyKHMsdixyLHUsdCl9KTt0aGlz
Lm9uKCJsb2FkaW5nLWRvbmUiLGZ1bmN0aW9uKCl7aWYoIXRoaXMudmlld3MubGVuPQpndGgpe3Ro
aXMudHJpZ2dlcigiZW1wdHktaGlzdG9yeSIsdGhpcyl9fSl9LGxvYWRIaXN0b3J5V2l0aERldGFp
bHM6ZnVuY3Rpb249Cih1LHQscyx2KXt0aGlzLmluZm8oImxvYWRIaXN0b3J5V2l0aERldGFpbHM6
Iix1LHQscyx2KTt2YXIgcj0zRGZ1bmN0aW9uKHcpez0KcmV0dXJuIF8udmFsdWVzKGwuZ2V0KHcu
aWQpLmdldCgiZXhwYW5kZWRJZHMiKSl9O3JldHVybiB0aGlzLmxvYWRIaXN0b3J5KHUsPQp0LHMs
dixyKX0sbG9hZEhpc3Rvcnk6ZnVuY3Rpb24odix1LHQsdyxyKXt0aGlzLmluZm8oImxvYWRIaXN0
b3J5OiIsdix1LHQsdyw9CnIpO3ZhciBzPTNEdGhpczt1PTNEdXx8e307cy50cmlnZ2VyKCJsb2Fk
aW5nIixzKTt2YXIgeD0zRGguSGlzdG9yeS5nZXRIaXN0bz0KcnlEYXRhKHYse2hpc3RvcnlGbjp0
LGNvbnRlbnRzRm46dyxkZXRhaWxJZHNGbjp1LmluaXRpYWxseUV4cGFuZGVkfHxyfSk7cmV0PQp1
cm4gcy5fbG9hZEhpc3RvcnlGcm9tWEhSKHgsdSkuZmFpbChmdW5jdGlvbihBLHkseil7cy50cmln
Z2VyKCJlcnJvciIscyxBLHU9CixnKCJBbiBlcnJvciB3YXMgZW5jb3VudGVyZWQgd2hpbGUgIit5
KSx7aGlzdG9yeUlkOnYsaGlzdG9yeTp6fHx7fX0pfSkuYWx3YT0KeXMoZnVuY3Rpb24oKXtzLnRy
aWdnZXIoImxvYWRpbmctZG9uZSIscyl9KX0sX2xvYWRIaXN0b3J5RnJvbVhIUjpmdW5jdGlvbih0
PQoscyl7dmFyIHI9M0R0aGlzO3QudGhlbihmdW5jdGlvbih1LHYpe3IuSlNPTlRvTW9kZWwodSx2
LHMpO3IucmVuZGVyKCl9KTt0LmY9CmFpbChmdW5jdGlvbih2LHUpe3IucmVuZGVyKCl9KTtyZXR1
cm4gdH0scmVmcmVzaENvbnRlbnRzOmZ1bmN0aW9uKHMscil7aWYodD0KaGlzLm1vZGVsKXtyZXR1
cm4gdGhpcy5tb2RlbC5yZWZyZXNoKHMscil9cmV0dXJuICQud2hlbigpfSxKU09OVG9Nb2RlbDpm
dW5jPQp0aW9uKHUscixzKXt0aGlzLmxvZygiSlNPTlRvTW9kZWw6Iix1LHIscyk7cz0zRHN8fHt9
O3ZhciB0PTNEbmV3IGguSGlzdG9yeSg9CnUscixzKTt0aGlzLnNldE1vZGVsKHQpO3JldHVybiB0
fSxzZXRNb2RlbDpmdW5jdGlvbihzLHIpe3I9M0RyfHx7fTtwLnByb3RvdD0KeXBlLnNldE1vZGVs
LmNhbGwodGhpcyxzLHIpO2lmKHRoaXMubW9kZWwpe3RoaXMuX3NldFVwV2ViU3RvcmFnZShyLmlu
aXRpYWxsPQp5RXhwYW5kZWQsci5zaG93X2RlbGV0ZWQsci5zaG93X2hpZGRlbil9fSxfc2V0VXBX
ZWJTdG9yYWdlOmZ1bmN0aW9uKHMscix0KXs9CmlmKHRoaXMuc3RvcmFnZSl7dGhpcy5zdG9wTGlz
dGVuaW5nKHRoaXMuc3RvcmFnZSl9dGhpcy5zdG9yYWdlPTNEbmV3IGwoe2lkOj0KbC5oaXN0b3J5
U3RvcmFnZUtleSh0aGlzLm1vZGVsLmdldCgiaWQiKSl9KTtpZihfLmlzT2JqZWN0KHMpKXt0aGlz
LnN0b3JhZ2UuPQpzZXQoImV4cGFuZGVkSWRzIixzKX1pZihfLmlzQm9vbGVhbihyKSl7dGhpcy5z
dG9yYWdlLnNldCgic2hvd19kZWxldGVkIixyKX09CmlmKF8uaXNCb29sZWFuKHQpKXt0aGlzLnN0
b3JhZ2Uuc2V0KCJzaG93X2hpZGRlbiIsdCl9dGhpcy50cmlnZ2VyKCJuZXctc3Rvcj0KYWdlIix0
aGlzLnN0b3JhZ2UsdGhpcyk7dGhpcy5sb2codGhpcysiIChpbml0J2QpIHN0b3JhZ2U6Iix0aGlz
LnN0b3JhZ2UuZ2V0PQooKSk7dGhpcy5saXN0ZW5Ubyh0aGlzLnN0b3JhZ2UseyJjaGFuZ2U6c2hv
d19kZWxldGVkIjpmdW5jdGlvbih1LHYpe3RoaXMuc2g9Cm93RGVsZXRlZD0zRHZ9LCJjaGFuZ2U6
c2hvd19oaWRkZW4iOmZ1bmN0aW9uKHUsdil7dGhpcy5zaG93SGlkZGVuPTNEdn19LHRoaT0Kcyk7
dGhpcy5zaG93RGVsZXRlZD0zRChyIT0zRD0zRHVuZGVmaW5lZCk/cjp0aGlzLnN0b3JhZ2UuZ2V0
KCJzaG93X2RlbGV0ZWQiPQopO3RoaXMuc2hvd0hpZGRlbj0zRCh0IT0zRD0zRHVuZGVmaW5lZCk/
dDp0aGlzLnN0b3JhZ2UuZ2V0KCJzaG93X2hpZGRlbiIpO3I9CmV0dXJuIHRoaXN9LF9idWlsZE5l
d1JlbmRlcjpmdW5jdGlvbigpe3ZhciByPTNEcC5wcm90b3R5cGUuX2J1aWxkTmV3UmVuZGVyLj0K
Y2FsbCh0aGlzKTtpZih0aGlzLm11bHRpc2VsZWN0QWN0aW9ucygpLmxlbmd0aCl7ci5maW5kKCIu
Y29udHJvbHMgLmFjdGlvbnMiPQopLnByZXBlbmQodGhpcy5fcmVuZGVyU2VsZWN0QnV0dG9uKCkp
fXJldHVybiByfSxfcmVuZGVyU2VsZWN0QnV0dG9uOmZ1bmN0aW89Cm4ocil7cmV0dXJuIGMoe3Rp
dGxlOmcoIk9wZXJhdGlvbnMgb24gbXVsdGlwbGUgZGF0YXNldHMiKSxjbGFzc2VzOiJzaG93LXNl
bD0KZWN0b3JzLWJ0biIsZmFJY29uOiJmYS1jaGVjay1zcXVhcmUtbyJ9KX0sX2dldEl0ZW1WaWV3
Q2xhc3M6ZnVuY3Rpb24ocil7dmFyPQogcz0zRHIuZ2V0KCJoaXN0b3J5X2NvbnRlbnRfdHlwZSIp
O3N3aXRjaChzKXtjYXNlImRhdGFzZXQiOnJldHVybiB0aGlzLkhEQVY9Cmlld0NsYXNzO2Nhc2Ui
ZGF0YXNldF9jb2xsZWN0aW9uIjpyZXR1cm4gdGhpcy5IRENBVmlld0NsYXNzfXRocm93IG5ldyBU
eXBlRT0KcnJvcigiVW5rbm93biBoaXN0b3J5X2NvbnRlbnRfdHlwZTogIitzKX0sX2ZpbHRlckl0
ZW06ZnVuY3Rpb24ocyl7dmFyIHI9M0R0PQpoaXM7cmV0dXJuKHAucHJvdG90eXBlLl9maWx0ZXJJ
dGVtLmNhbGwocixzKSYmKCFzLmhpZGRlbigpfHxyLnNob3dIaWRkZW4pJiY9Cighcy5pc0RlbGV0
ZWRPclB1cmdlZCgpfHxyLnNob3dEZWxldGVkKSl9LF9nZXRJdGVtVmlld09wdGlvbnM6ZnVuY3Rp
b24ocyl7dj0KYXIgcj0zRHAucHJvdG90eXBlLl9nZXRJdGVtVmlld09wdGlvbnMuY2FsbCh0aGlz
LHMpO3JldHVybiBfLmV4dGVuZChyLHtsaW5rPQpUYXJnZXQ6dGhpcy5saW5rVGFyZ2V0LGV4cGFu
ZGVkOiEhdGhpcy5zdG9yYWdlLmdldCgiZXhwYW5kZWRJZHMiKVtzLmlkXSxoYXM9ClVzZXI6dGhp
cy5tb2RlbC5vd25lZEJ5Q3VyclVzZXIoKX0pfSxfc2V0VXBJdGVtVmlld0xpc3RlbmVyczpmdW5j
dGlvbihzKXt2YT0KciByPTNEdGhpcztwLnByb3RvdHlwZS5fc2V0VXBJdGVtVmlld0xpc3RlbmVy
cy5jYWxsKHIscyk7cy5vbigiZXhwYW5kZWQiLGZ1PQpuY3Rpb24odCl7ci5zdG9yYWdlLmFkZEV4
cGFuZGVkKHQubW9kZWwpfSk7cy5vbigiY29sbGFwc2VkIixmdW5jdGlvbih0KXtyLnM9CnRvcmFn
ZS5yZW1vdmVFeHBhbmRlZCh0Lm1vZGVsKX0pO3JldHVybiB0aGlzfSxnZXRTZWxlY3RlZE1vZGVs
czpmdW5jdGlvbigpez0KdmFyIHI9M0RwLnByb3RvdHlwZS5nZXRTZWxlY3RlZE1vZGVscy5jYWxs
KHRoaXMpO3IuaGlzdG9yeUlkPTNEdGhpcy5jb2xsZWN0PQppb24uaGlzdG9yeUlkO3JldHVybiBy
fSxldmVudHM6Xy5leHRlbmQoXy5jbG9uZShwLnByb3RvdHlwZS5ldmVudHMpLHsiY2xpY2s9CiAu
c2hvdy1zZWxlY3RvcnMtYnRuIjoidG9nZ2xlU2VsZWN0b3JzIn0pLHRvZ2dsZVNob3dEZWxldGVk
OmZ1bmN0aW9uKHIscyl7cj0KPTNEKHIhPTNEPTNEdW5kZWZpbmVkKT8ocik6KCF0aGlzLnNob3dE
ZWxldGVkKTtzPTNEKHMhPTNEPTNEdW5kZWZpbmVkKT8ocyk6PQoodHJ1ZSk7dGhpcy5zaG93RGVs
ZXRlZD0zRHI7aWYocyl7dGhpcy5zdG9yYWdlLnNldCgic2hvd19kZWxldGVkIixyKX10aGlzLnQ9
CnJpZ2dlcigic2hvdy1oaWRkZW4iLHIpO3RoaXMucmVuZGVySXRlbXMoKTtyZXR1cm4gdGhpcy5z
aG93RGVsZXRlZH0sdG9nZ2xlUz0KaG93SGlkZGVuOmZ1bmN0aW9uKHIscyl7cj0zRChyIT0zRD0z
RHVuZGVmaW5lZCk/KHIpOighdGhpcy5zaG93SGlkZGVuKTtzPTNEPQoocyE9M0Q9M0R1bmRlZmlu
ZWQpPyhzKToodHJ1ZSk7dGhpcy5zaG93SGlkZGVuPTNEcjtpZihzKXt0aGlzLnN0b3JhZ2Uuc2V0
KCI9CnNob3dfaGlkZGVuIixyKX10aGlzLnRyaWdnZXIoInNob3ctaGlkZGVuIixyKTt0aGlzLnJl
bmRlckl0ZW1zKCk7cmV0dXJuIHRoaT0Kcy5zaG93SGlkZGVufSxfZmlyc3RTZWFyY2g6ZnVuY3Rp
b24ocil7dmFyIHM9M0R0aGlzLHQ9M0QiLmhpc3Rvcnktc2VhcmNoLWluPQpwdXQiO3RoaXMubG9n
KCJvbkZpcnN0U2VhcmNoIixyKTtpZihzLm1vZGVsLmNvbnRlbnRzLmhhdmVEZXRhaWxzKCkpe3Mu
c2VhcmM9CmhJdGVtcyhyKTtyZXR1cm59cy4kZWwuZmluZCh0KS5zZWFyY2hJbnB1dCgidG9nZ2xl
LWxvYWRpbmciKTtzLm1vZGVsLmNvbnRlbj0KdHMuZmV0Y2hBbGxEZXRhaWxzKHtzaWxlbnQ6dHJ1
ZX0pLmFsd2F5cyhmdW5jdGlvbigpe3MuJGVsLmZpbmQodCkuc2VhcmNoSW5wPQp1dCgidG9nZ2xl
LWxvYWRpbmciKX0pLmRvbmUoZnVuY3Rpb24oKXtzLnNlYXJjaEl0ZW1zKHIpfSl9LGVycm9ySGFu
ZGxlcjpmdW49CmN0aW9uKHQsdyxzLHYsdSl7dGhpcy5lcnJvcih0LHcscyx2LHUpO2lmKHcmJncu
c3RhdHVzPTNEPTNEPTNEMCYmdy5yZWFkeVN0YT0KdGU9M0Q9M0Q9M0QwKXt9ZWxzZXtpZih3JiZ3
LnN0YXR1cz0zRD0zRD0zRDUwMil7fWVsc2V7dmFyIHI9M0R0aGlzLl9wYXJzZUVyPQpyb3JNZXNz
YWdlKHQsdyxzLHYsdSk7aWYoIXRoaXMuJG1lc3NhZ2VzKCkuaXMoIjp2aXNpYmxlIikpe3RoaXMu
b25jZSgicmVuZGU9CnJlZCIsZnVuY3Rpb24oKXt0aGlzLmRpc3BsYXlNZXNzYWdlKCJlcnJvciIs
ci5tZXNzYWdlLHIuZGV0YWlscyl9KX1lbHNle3RoaT0Kcy5kaXNwbGF5TWVzc2FnZSgiZXJyb3Ii
LHIubWVzc2FnZSxyLmRldGFpbHMpfX19fSxfcGFyc2VFcnJvck1lc3NhZ2U6ZnVuY3RpPQpvbih2
LHkseix0LHIsdyl7dmFyIHU9M0RHYWxheHkuY3VyclVzZXIseD0zRHttZXNzYWdlOnRoaXMuX2Jl
UG9saXRlKHQpLGRldGE9Cmlsczp7bWVzc2FnZTp0LHJhdmVuOih3aW5kb3cuUmF2ZW4mJl8uaXNG
dW5jdGlvbihSYXZlbi5sYXN0RXZlbnRJZCkpPyhSYXZlbj0KLmxhc3RFdmVudElkKCkpOih1bmRl
ZmluZWQpLGFnZW50Om5hdmlnYXRvci51c2VyQWdlbnQsdXJsOih3aW5kb3cuR2FsYXh5KT8oPQpH
YWxheHkubGFzdEFqYXgudXJsKToodW5kZWZpbmVkKSxkYXRhOih3aW5kb3cuR2FsYXh5KT8oR2Fs
YXh5Lmxhc3RBamF4LmRhdGE9Cik6KHVuZGVmaW5lZCksb3B0aW9uczooeSk/KF8ub21pdCh6LCJ4
aHIiKSk6KHopLHhocjp5LHNvdXJjZTooXy5pc0Z1bmN0aW9uKD0Kdi50b0pTT04pKT8odi50b0pT
T04oKSk6KHYrIiIpLHVzZXI6KHUgaW5zdGFuY2VvZiBpLlVzZXIpPyh1LnRvSlNPTigpKToodSsi
PQoiKX19O18uZXh0ZW5kKHguZGV0YWlscyxyfHx7fSk7aWYoeSYmXy5pc0Z1bmN0aW9uKHkuZ2V0
QWxsUmVzcG9uc2VIZWFkZXJzKSk9Cnt2YXIgcz0zRHkuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCk7
cz0zRF8uY29tcGFjdChzLnNwbGl0KCJcbiIpKTtzPTNEXy5tYXAocz0KLGZ1bmN0aW9uKEEpe3Jl
dHVybiBBLnNwbGl0KCI6ICIpfSk7eC5kZXRhaWxzLnhoci5yZXNwb25zZUhlYWRlcnM9M0RfLm9i
amVjPQp0KHMpfXJldHVybiB4fSxfYmVQb2xpdGU6ZnVuY3Rpb24ocil7cj0zRHJ8fGcoIkFuIGVy
cm9yIG9jY3VycmVkIHdoaWxlIGdldHQ9CmluZyB1cGRhdGVzIGZyb20gdGhlIHNlcnZlciIpO3Jl
dHVybiByKyIuICIrZygiUGxlYXNlIGNvbnRhY3QgYSBHYWxheHkgYWRtaT0KbmlzdHJhdG9yIGlm
IHRoZSBwcm9ibGVtIHBlcnNpc3RzIikrIi4ifSxkaXNwbGF5TWVzc2FnZTpmdW5jdGlvbih3LHgs
dil7dmFyPQogdD0zRHRoaXM7dGhpcy5zY3JvbGxUb1RvcCgpO3ZhciB1PTNEdGhpcy4kbWVzc2Fn
ZXMoKSxyPTNEJCgiPGRpdi8+IikuYWRkQ2w9CmFzcyh3KyJtZXNzYWdlIikuaHRtbCh4KTtpZigh
Xy5pc0VtcHR5KHYpKXt2YXIgcz0zRCQoJzxhIGhyZWY9M0QiamF2YXNjcmlwdD0KOnZvaWQoMCki
PkRldGFpbHM8L2E+JykuY2xpY2soZnVuY3Rpb24oKXtHYWxheHkubW9kYWwuc2hvdyh0Ll9tZXNz
YWdlVG9Nb2RhPQpsT3B0aW9ucyh3LHgsdikpO3JldHVybiBmYWxzZX0pO3IuYXBwZW5kKCIgIixz
KX1yZXR1cm4gdS5odG1sKHIpfSxfbWVzc2FnZVQ9Cm9Nb2RhbE9wdGlvbnM6ZnVuY3Rpb24odSx4
LHQpe3ZhciByPTNEdGhpcyxzPTNEe3RpdGxlOiJEZXRhaWxzIn07aWYoXy5pc09iaj0KZWN0KHQp
KXt0PTNEXy5vbWl0KHQsXy5mdW5jdGlvbnModCkpO3ZhciB3PTNESlNPTi5zdHJpbmdpZnkodCxu
dWxsLCIgICIpLHY9Cj0zRCQoIjxwcmUvPiIpLnRleHQodyk7cy5ib2R5PTNEJCgiPGRpdi8+Iiku
YXBwZW5kKHYpfWVsc2V7cy5ib2R5PTNEJCgiPGRpdj0KLz4iKS5odG1sKHQpfXMuYnV0dG9ucz0z
RHtPazpmdW5jdGlvbigpe0dhbGF4eS5tb2RhbC5oaWRlKCk7ci5jbGVhck1lc3NhZ2VzPQooKX19
O3JldHVybiBzfSxjbGVhck1lc3NhZ2VzOmZ1bmN0aW9uKHIpeyQoci5jdXJyZW50VGFyZ2V0KS5m
YWRlT3V0KHRoaXMuZng9ClNwZWVkLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmUoKX0pO3JldHVy
biB0aGlzfSxzY3JvbGxUb0hpZDpmdW5jdGlvbihyKXtyZT0KdHVybiB0aGlzLnNjcm9sbFRvSXRl
bShfLmZpcnN0KHRoaXMudmlld3NXaGVyZU1vZGVsKHtoaWQ6cn0pKSl9LHRvU3RyaW5nOmZ1PQpu
Y3Rpb24oKXtyZXR1cm4iSGlzdG9yeVBhbmVsKCIrKCh0aGlzLm1vZGVsKT8odGhpcy5tb2RlbC5n
ZXQoIm5hbWUiKSk6KCIiKSk9CisiKSJ9fSk7bS5wcm90b3R5cGUudGVtcGxhdGVzPTNEKGZ1bmN0
aW9uKCl7dmFyIHI9M0RxLndyYXBUZW1wbGF0ZShbJzxkaXYgYz0KbGFzcz0zRCJjb250cm9scyI+
JywnPGRpdiBjbGFzcz0zRCJ0aXRsZSI+JywnPGRpdiBjbGFzcz0zRCJuYW1lIj48JT0zRCBoaXN0
PQpvcnkubmFtZSAlPjwvZGl2PicsIjwvZGl2PiIsJzxkaXYgY2xhc3M9M0Qic3VidGl0bGUiPjwv
ZGl2PicsJzxkaXYgY2xhc3M9M0Q9CiJoaXN0b3J5LXNpemUiPjwlPTNEIGhpc3RvcnkubmljZV9z
aXplICU+PC9kaXY+JywnPGRpdiBjbGFzcz0zRCJhY3Rpb25zIj48Lz0KZGl2PicsJzxkaXYgY2xh
c3M9M0QibWVzc2FnZXMiPicsIjwlIGlmKCBoaXN0b3J5LmRlbGV0ZWQgJiYgaGlzdG9yeS5wdXJn
ZWQgPQopeyAlPiIsJzxkaXYgY2xhc3M9M0QiZGVsZXRlZC1tc2cgd2FybmluZ21lc3NhZ2VzbWFs
bCI+JyxnKCJUaGlzIGhpc3RvcnkgaGE9CnMgYmVlbiBwdXJnZWQgYW5kIGRlbGV0ZWQiKSwiPC9k
aXY+IiwiPCUgfSBlbHNlIGlmKCBoaXN0b3J5LmRlbGV0ZWQgKXsgJT4iLD0KJzxkaXYgY2xhc3M9
M0QiZGVsZXRlZC1tc2cgd2FybmluZ21lc3NhZ2VzbWFsbCI+JyxnKCJUaGlzIGhpc3RvcnkgaGFz
IGJlZW4gPQpkZWxldGVkIiksIjwvZGl2PiIsIjwlIH0gZWxzZSBpZiggaGlzdG9yeS5wdXJnZWQg
KXsgJT4iLCc8ZGl2IGNsYXNzPTNEImRlbGU9CnRlZC1tc2cgd2FybmluZ21lc3NhZ2VzbWFsbCI+
JyxnKCJUaGlzIGhpc3RvcnkgaGFzIGJlZW4gcHVyZ2VkIiksIjwvZGl2PiIsIj0KPCUgfSAlPiIs
IjwlIGlmKCBoaXN0b3J5Lm1lc3NhZ2UgKXsgJT4iLCc8ZGl2IGNsYXNzPTNEIjwlPTNEIGhpc3Rv
cnkubWVzc2FnPQplLmxldmVsIHx8ICJpbmZvIiAlPm1lc3NhZ2VzbWFsbCI+JywiPCU9M0QgaGlz
dG9yeS5tZXNzYWdlLnRleHQgJT4iLCI8L2Rpdj49CiIsIjwlIH0gJT4iLCI8L2Rpdj4iLCc8ZGl2
IGNsYXNzPTNEInRhZ3MtZGlzcGxheSI+PC9kaXY+JywnPGRpdiBjbGFzcz0zRCJhbj0Kbm90YXRp
b24tZGlzcGxheSI+PC9kaXY+JywnPGRpdiBjbGFzcz0zRCJzZWFyY2giPicsJzxkaXYgY2xhc3M9
M0Qic2VhcmNoLWluPQpwdXQiPjwvZGl2PicsIjwvZGl2PiIsJzxkaXYgY2xhc3M9M0QibGlzdC1h
Y3Rpb25zIj4nLCc8ZGl2IGNsYXNzPTNEImJ0bi1ncm89CnVwIj4nLCc8YnV0dG9uIGNsYXNzPTNE
InNlbGVjdC1hbGwgYnRuIGJ0bi1kZWZhdWx0IicsJ2RhdGEtbW9kZT0zRCJzZWxlY3QiPj0KJyxn
KCJBbGwiKSwiPC9idXR0b24+IiwnPGJ1dHRvbiBjbGFzcz0zRCJkZXNlbGVjdC1hbGwgYnRuIGJ0
bi1kZWZhdWx0IicsJ2RhPQp0YS1tb2RlPTNEInNlbGVjdCI+JyxnKCJOb25lIiksIjwvYnV0dG9u
PiIsIjwvZGl2PiIsJzxkaXYgY2xhc3M9M0QibGlzdC1hY3Q9Cmlvbi1tZW51IGJ0bi1ncm91cCI+
JywiPC9kaXY+IiwiPC9kaXY+IiwiPC9kaXY+Il0sImhpc3RvcnkiKTtyZXR1cm4gXy5leHRlbj0K
ZChfLmNsb25lKHAucHJvdG90eXBlLnRlbXBsYXRlcykse2NvbnRyb2xzOnJ9KX0oKSk7cmV0dXJu
e0hpc3RvcnlQYW5lbDptfX0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RlZmluZShb
Im12Yy9saXN0L2xpc3QtcGFuZWwiLCJtdmMvaGlzdG9yeS9oaXN0b3J5LW1vZGVsIiwibXZjL2hp
c3RvcnkvaGlzPQp0b3J5LWNvbnRlbnRzIiwibXZjL2hpc3RvcnkvaGRhLWxpIiwibXZjL2hpc3Rv
cnkvaGRjYS1saSIsIm12Yy9jb2xsZWN0aW9uL2M9Cm9sbGVjdGlvbi1wYW5lbCIsIm12Yy91c2Vy
L3VzZXItbW9kZWwiLCJ1aS9mYS1pY29uLWJ1dHRvbiIsIm12Yy91aS9wb3B1cC1tZT0KbnUiLCJt
dmMvYmFzZS1tdmMiLCJ1dGlscy9sb2NhbGl6YXRpb24iLCJ1aS9zZWFyY2gtaW5wdXQiXSxmdW5j
dGlvbihmLGgsbixkPQosYixvLGksYyxhLHEsZyl7dmFyIGw9M0RxLlNlc3Npb25TdG9yYWdlTW9k
ZWwuZXh0ZW5kKHtkZWZhdWx0czp7ZXhwYW5kZWRJZHM9Cjp7fSxzaG93X2RlbGV0ZWQ6ZmFsc2Us
c2hvd19oaWRkZW46ZmFsc2V9LGFkZEV4cGFuZGVkOmZ1bmN0aW9uKHIpe3ZhciBzPTNEIj0KZXhw
YW5kZWRJZHMiO3RoaXMuc2F2ZShzLF8uZXh0ZW5kKHRoaXMuZ2V0KHMpLF8ub2JqZWN0KFtyLmlk
XSxbci5nZXQoImlkIildPQopKSl9LHJlbW92ZUV4cGFuZGVkOmZ1bmN0aW9uKHIpe3ZhciBzPTNE
ImV4cGFuZGVkSWRzIjt0aGlzLnNhdmUocyxfLm9taXQodGg9CmlzLmdldChzKSxyLmlkKSl9LHRv
U3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIkhpc3RvcnlQcmVmcygiK3RoaXMuaWQrIikifX0pOz0K
bC5zdG9yYWdlS2V5UHJlZml4PTNEImhpc3Rvcnk6IjtsLmhpc3RvcnlTdG9yYWdlS2V5PTNEZnVu
Y3Rpb24gaihyKXtpZighcil7PQp0aHJvdyBuZXcgRXJyb3IoIkhpc3RvcnlQcmVmcy5oaXN0b3J5
U3RvcmFnZUtleSBuZWVkcyB2YWxpZCBpZDogIityKX1yZXR1cm49CihsLnN0b3JhZ2VLZXlQcmVm
aXgrcil9O2wuZ2V0PTNEZnVuY3Rpb24gZShyKXtyZXR1cm4gbmV3IGwoe2lkOmwuaGlzdG9yeVN0
bz0KcmFnZUtleShyKX0pfTtsLmNsZWFyQWxsPTNEZnVuY3Rpb24gayhzKXtmb3IodmFyIHIgaW4g
c2Vzc2lvblN0b3JhZ2Upe2lmKHIuPQppbmRleE9mKGwuc3RvcmFnZUtleVByZWZpeCk9M0Q9M0Q9
M0QwKXtzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHIpfX19O3ZhciA9CnA9M0RmLk1vZGVsTGlz
dFBhbmVsO3ZhciBtPTNEcC5leHRlbmQoe0hEQVZpZXdDbGFzczpkLkhEQUxpc3RJdGVtVmlldyxI
RENBVj0KaWV3Q2xhc3M6Yi5IRENBTGlzdEl0ZW1WaWV3LGNvbGxlY3Rpb25DbGFzczpuLkhpc3Rv
cnlDb250ZW50cyxtb2RlbENvbGxlY3RpPQpvbktleToiY29udGVudHMiLHRhZ05hbWU6ImRpdiIs
Y2xhc3NOYW1lOnAucHJvdG90eXBlLmNsYXNzTmFtZSsiIGhpc3RvcnktcGE9Cm5lbCIsZW1wdHlN
c2c6ZygiVGhpcyBoaXN0b3J5IGlzIGVtcHR5Iiksbm9uZUZvdW5kTXNnOmcoIk5vIG1hdGNoaW5n
IGRhdGFzZT0KdHMgZm91bmQiKSxzZWFyY2hQbGFjZWhvbGRlcjpnKCJzZWFyY2ggZGF0YXNldHMi
KSxpbml0aWFsaXplOmZ1bmN0aW9uKHIpe3AuPQpwcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRo
aXMscik7dGhpcy5saW5rVGFyZ2V0PTNEci5saW5rVGFyZ2V0fHwiX2JsYW5rIn09CixmcmVlTW9k
ZWw6ZnVuY3Rpb24oKXtwLnByb3RvdHlwZS5mcmVlTW9kZWwuY2FsbCh0aGlzKTtpZih0aGlzLm1v
ZGVsKXt0aGlzLj0KbW9kZWwuY2xlYXJVcGRhdGVUaW1lb3V0KCl9cmV0dXJuIHRoaXN9LF9zZXRV
cExpc3RlbmVyczpmdW5jdGlvbigpe3AucHJvdG90PQp5cGUuX3NldFVwTGlzdGVuZXJzLmNhbGwo
dGhpcyk7dGhpcy5vbigiZXJyb3IiLGZ1bmN0aW9uKHMsdixyLHUsdCl7dGhpcy5lcnI9Cm9ySGFu
ZGxlcihzLHYscix1LHQpfSk7dGhpcy5vbigibG9hZGluZy1kb25lIixmdW5jdGlvbigpe2lmKCF0
aGlzLnZpZXdzLmxlbj0KZ3RoKXt0aGlzLnRyaWdnZXIoImVtcHR5LWhpc3RvcnkiLHRoaXMpfX0p
fSxsb2FkSGlzdG9yeVdpdGhEZXRhaWxzOmZ1bmN0aW9uPQoodSx0LHMsdil7dGhpcy5pbmZvKCJs
b2FkSGlzdG9yeVdpdGhEZXRhaWxzOiIsdSx0LHMsdik7dmFyIHI9M0RmdW5jdGlvbih3KXs9CnJl
dHVybiBfLnZhbHVlcyhsLmdldCh3LmlkKS5nZXQoImV4cGFuZGVkSWRzIikpfTtyZXR1cm4gdGhp
cy5sb2FkSGlzdG9yeSh1LD0KdCxzLHYscil9LGxvYWRIaXN0b3J5OmZ1bmN0aW9uKHYsdSx0LHcs
cil7dGhpcy5pbmZvKCJsb2FkSGlzdG9yeToiLHYsdSx0LHcsPQpyKTt2YXIgcz0zRHRoaXM7dT0z
RHV8fHt9O3MudHJpZ2dlcigibG9hZGluZyIscyk7dmFyIHg9M0RoLkhpc3RvcnkuZ2V0SGlzdG89
CnJ5RGF0YSh2LHtoaXN0b3J5Rm46dCxjb250ZW50c0ZuOncsZGV0YWlsSWRzRm46dS5pbml0aWFs
bHlFeHBhbmRlZHx8cn0pO3JldD0KdXJuIHMuX2xvYWRIaXN0b3J5RnJvbVhIUih4LHUpLmZhaWwo
ZnVuY3Rpb24oQSx5LHope3MudHJpZ2dlcigiZXJyb3IiLHMsQSx1PQosZygiQW4gZXJyb3Igd2Fz
IGVuY291bnRlcmVkIHdoaWxlICIreSkse2hpc3RvcnlJZDp2LGhpc3Rvcnk6enx8e319KX0pLmFs
d2E9CnlzKGZ1bmN0aW9uKCl7cy50cmlnZ2VyKCJsb2FkaW5nLWRvbmUiLHMpfSl9LF9sb2FkSGlz
dG9yeUZyb21YSFI6ZnVuY3Rpb24odD0KLHMpe3ZhciByPTNEdGhpczt0LnRoZW4oZnVuY3Rpb24o
dSx2KXtyLkpTT05Ub01vZGVsKHUsdixzKTtyLnJlbmRlcigpfSk7dC5mPQphaWwoZnVuY3Rpb24o
dix1KXtyLnJlbmRlcigpfSk7cmV0dXJuIHR9LHJlZnJlc2hDb250ZW50czpmdW5jdGlvbihzLHIp
e2lmKHQ9Cmhpcy5tb2RlbCl7cmV0dXJuIHRoaXMubW9kZWwucmVmcmVzaChzLHIpfXJldHVybiAk
LndoZW4oKX0sSlNPTlRvTW9kZWw6ZnVuYz0KdGlvbih1LHIscyl7dGhpcy5sb2coIkpTT05Ub01v
ZGVsOiIsdSxyLHMpO3M9M0RzfHx7fTt2YXIgdD0zRG5ldyBoLkhpc3RvcnkoPQp1LHIscyk7dGhp
cy5zZXRNb2RlbCh0KTtyZXR1cm4gdH0sc2V0TW9kZWw6ZnVuY3Rpb24ocyxyKXtyPTNEcnx8e307
cC5wcm90b3Q9CnlwZS5zZXRNb2RlbC5jYWxsKHRoaXMscyxyKTtpZih0aGlzLm1vZGVsKXt0aGlz
Ll9zZXRVcFdlYlN0b3JhZ2Uoci5pbml0aWFsbD0KeUV4cGFuZGVkLHIuc2hvd19kZWxldGVkLHIu
c2hvd19oaWRkZW4pfX0sX3NldFVwV2ViU3RvcmFnZTpmdW5jdGlvbihzLHIsdCl7PQppZih0aGlz
LnN0b3JhZ2Upe3RoaXMuc3RvcExpc3RlbmluZyh0aGlzLnN0b3JhZ2UpfXRoaXMuc3RvcmFnZT0z
RG5ldyBsKHtpZDo9CmwuaGlzdG9yeVN0b3JhZ2VLZXkodGhpcy5tb2RlbC5nZXQoImlkIikpfSk7
aWYoXy5pc09iamVjdChzKSl7dGhpcy5zdG9yYWdlLj0Kc2V0KCJleHBhbmRlZElkcyIscyl9aWYo
Xy5pc0Jvb2xlYW4ocikpe3RoaXMuc3RvcmFnZS5zZXQoInNob3dfZGVsZXRlZCIscil9PQppZihf
LmlzQm9vbGVhbih0KSl7dGhpcy5zdG9yYWdlLnNldCgic2hvd19oaWRkZW4iLHQpfXRoaXMudHJp
Z2dlcigibmV3LXN0b3I9CmFnZSIsdGhpcy5zdG9yYWdlLHRoaXMpO3RoaXMubG9nKHRoaXMrIiAo
aW5pdCdkKSBzdG9yYWdlOiIsdGhpcy5zdG9yYWdlLmdldD0KKCkpO3RoaXMubGlzdGVuVG8odGhp
cy5zdG9yYWdlLHsiY2hhbmdlOnNob3dfZGVsZXRlZCI6ZnVuY3Rpb24odSx2KXt0aGlzLnNoPQpv
d0RlbGV0ZWQ9M0R2fSwiY2hhbmdlOnNob3dfaGlkZGVuIjpmdW5jdGlvbih1LHYpe3RoaXMuc2hv
d0hpZGRlbj0zRHZ9fSx0aGk9CnMpO3RoaXMuc2hvd0RlbGV0ZWQ9M0QociE9M0Q9M0R1bmRlZmlu
ZWQpP3I6dGhpcy5zdG9yYWdlLmdldCgic2hvd19kZWxldGVkIj0KKTt0aGlzLnNob3dIaWRkZW49
M0QodCE9M0Q9M0R1bmRlZmluZWQpP3Q6dGhpcy5zdG9yYWdlLmdldCgic2hvd19oaWRkZW4iKTty
PQpldHVybiB0aGlzfSxfYnVpbGROZXdSZW5kZXI6ZnVuY3Rpb24oKXt2YXIgcj0zRHAucHJvdG90
eXBlLl9idWlsZE5ld1JlbmRlci49CmNhbGwodGhpcyk7aWYodGhpcy5tdWx0aXNlbGVjdEFjdGlv
bnMoKS5sZW5ndGgpe3IuZmluZCgiLmNvbnRyb2xzIC5hY3Rpb25zIj0KKS5wcmVwZW5kKHRoaXMu
X3JlbmRlclNlbGVjdEJ1dHRvbigpKX1yZXR1cm4gcn0sX3JlbmRlclNlbGVjdEJ1dHRvbjpmdW5j
dGlvPQpuKHIpe3JldHVybiBjKHt0aXRsZTpnKCJPcGVyYXRpb25zIG9uIG11bHRpcGxlIGRhdGFz
ZXRzIiksY2xhc3Nlczoic2hvdy1zZWw9CmVjdG9ycy1idG4iLGZhSWNvbjoiZmEtY2hlY2stc3F1
YXJlLW8ifSl9LF9nZXRJdGVtVmlld0NsYXNzOmZ1bmN0aW9uKHIpe3Zhcj0KIHM9M0RyLmdldCgi
aGlzdG9yeV9jb250ZW50X3R5cGUiKTtzd2l0Y2gocyl7Y2FzZSJkYXRhc2V0IjpyZXR1cm4gdGhp
cy5IREFWPQppZXdDbGFzcztjYXNlImRhdGFzZXRfY29sbGVjdGlvbiI6cmV0dXJuIHRoaXMuSERD
QVZpZXdDbGFzc310aHJvdyBuZXcgVHlwZUU9CnJyb3IoIlVua25vd24gaGlzdG9yeV9jb250ZW50
X3R5cGU6ICIrcyl9LF9maWx0ZXJJdGVtOmZ1bmN0aW9uKHMpe3ZhciByPTNEdD0KaGlzO3JldHVy
bihwLnByb3RvdHlwZS5fZmlsdGVySXRlbS5jYWxsKHIscykmJighcy5oaWRkZW4oKXx8ci5zaG93
SGlkZGVuKSYmPQooIXMuaXNEZWxldGVkT3JQdXJnZWQoKXx8ci5zaG93RGVsZXRlZCkpfSxfZ2V0
SXRlbVZpZXdPcHRpb25zOmZ1bmN0aW9uKHMpe3Y9CmFyIHI9M0RwLnByb3RvdHlwZS5fZ2V0SXRl
bVZpZXdPcHRpb25zLmNhbGwodGhpcyxzKTtyZXR1cm4gXy5leHRlbmQocix7bGluaz0KVGFyZ2V0
OnRoaXMubGlua1RhcmdldCxleHBhbmRlZDohIXRoaXMuc3RvcmFnZS5nZXQoImV4cGFuZGVkSWRz
Iilbcy5pZF0saGFzPQpVc2VyOnRoaXMubW9kZWwub3duZWRCeUN1cnJVc2VyKCl9KX0sX3NldFVw
SXRlbVZpZXdMaXN0ZW5lcnM6ZnVuY3Rpb24ocyl7dmE9CnIgcj0zRHRoaXM7cC5wcm90b3R5cGUu
X3NldFVwSXRlbVZpZXdMaXN0ZW5lcnMuY2FsbChyLHMpO3Mub24oImV4cGFuZGVkIixmdT0KbmN0
aW9uKHQpe3Iuc3RvcmFnZS5hZGRFeHBhbmRlZCh0Lm1vZGVsKX0pO3Mub24oImNvbGxhcHNlZCIs
ZnVuY3Rpb24odCl7ci5zPQp0b3JhZ2UucmVtb3ZlRXhwYW5kZWQodC5tb2RlbCl9KTtyZXR1cm4g
dGhpc30sZ2V0U2VsZWN0ZWRNb2RlbHM6ZnVuY3Rpb24oKXs9CnZhciByPTNEcC5wcm90b3R5cGUu
Z2V0U2VsZWN0ZWRNb2RlbHMuY2FsbCh0aGlzKTtyLmhpc3RvcnlJZD0zRHRoaXMuY29sbGVjdD0K
aW9uLmhpc3RvcnlJZDtyZXR1cm4gcn0sZXZlbnRzOl8uZXh0ZW5kKF8uY2xvbmUocC5wcm90b3R5
cGUuZXZlbnRzKSx7ImNsaWNrPQogLnNob3ctc2VsZWN0b3JzLWJ0biI6InRvZ2dsZVNlbGVjdG9y
cyIsImNsaWNrIC5tZXNzYWdlcyBbY2xhc3MkPTNEbWVzc2FnZV09CiI6ImNsZWFyTWVzc2FnZXMi
fSksdG9nZ2xlU2hvd0RlbGV0ZWQ6ZnVuY3Rpb24ocixzKXtyPTNEKHIhPTNEPTNEdW5kZWZpbmVk
KT0KPyhyKTooIXRoaXMuc2hvd0RlbGV0ZWQpO3M9M0QocyE9M0Q9M0R1bmRlZmluZWQpPyhzKToo
dHJ1ZSk7dGhpcy5zaG93RGVsZXRlPQpkPTNEcjtpZihzKXt0aGlzLnN0b3JhZ2Uuc2V0KCJzaG93
X2RlbGV0ZWQiLHIpfXRoaXMudHJpZ2dlcigic2hvdy1oaWRkZW4iLHI9Cik7dGhpcy5yZW5kZXJJ
dGVtcygpO3JldHVybiB0aGlzLnNob3dEZWxldGVkfSx0b2dnbGVTaG93SGlkZGVuOmZ1bmN0aW9u
KHIscz0KKXtyPTNEKHIhPTNEPTNEdW5kZWZpbmVkKT8ocik6KCF0aGlzLnNob3dIaWRkZW4pO3M9
M0QocyE9M0Q9M0R1bmRlZmluZWQpPyhzPQopOih0cnVlKTt0aGlzLnNob3dIaWRkZW49M0RyO2lm
KHMpe3RoaXMuc3RvcmFnZS5zZXQoInNob3dfaGlkZGVuIixyKX10aGlzLnQ9CnJpZ2dlcigic2hv
dy1oaWRkZW4iLHIpO3RoaXMucmVuZGVySXRlbXMoKTtyZXR1cm4gdGhpcy5zaG93SGlkZGVufSxf
Zmlyc3RTZT0KYXJjaDpmdW5jdGlvbihyKXt2YXIgcz0zRHRoaXMsdD0zRCIuaGlzdG9yeS1zZWFy
Y2gtaW5wdXQiO3RoaXMubG9nKCJvbkZpcnN0PQpTZWFyY2giLHIpO2lmKHMubW9kZWwuY29udGVu
dHMuaGF2ZURldGFpbHMoKSl7cy5zZWFyY2hJdGVtcyhyKTtyZXR1cm59cy4kZWw9Ci5maW5kKHQp
LnNlYXJjaElucHV0KCJ0b2dnbGUtbG9hZGluZyIpO3MubW9kZWwuY29udGVudHMuZmV0Y2hBbGxE
ZXRhaWxzKHtzaT0KbGVudDp0cnVlfSkuYWx3YXlzKGZ1bmN0aW9uKCl7cy4kZWwuZmluZCh0KS5z
ZWFyY2hJbnB1dCgidG9nZ2xlLWxvYWRpbmciKX0pPQouZG9uZShmdW5jdGlvbigpe3Muc2VhcmNo
SXRlbXMocil9KX0sZXJyb3JIYW5kbGVyOmZ1bmN0aW9uKHQsdyxzLHYsdSl7dGhpcy49CmVycm9y
KHQsdyxzLHYsdSk7aWYodyYmdy5zdGF0dXM9M0Q9M0Q9M0QwJiZ3LnJlYWR5U3RhdGU9M0Q9M0Q9
M0QwKXt9ZWxzZXtpZj0KKHcmJncuc3RhdHVzPTNEPTNEPTNENTAyKXt9ZWxzZXt2YXIgcj0zRHRo
aXMuX3BhcnNlRXJyb3JNZXNzYWdlKHQsdyxzLHYsdSk7PQppZighdGhpcy4kbWVzc2FnZXMoKS5p
cygiOnZpc2libGUiKSl7dGhpcy5vbmNlKCJyZW5kZXJlZCIsZnVuY3Rpb24oKXt0aGlzLmQ9Cmlz
cGxheU1lc3NhZ2UoImVycm9yIixyLm1lc3NhZ2Usci5kZXRhaWxzKX0pfWVsc2V7dGhpcy5kaXNw
bGF5TWVzc2FnZSgiZXJybz0KciIsci5tZXNzYWdlLHIuZGV0YWlscyl9fX19LF9wYXJzZUVycm9y
TWVzc2FnZTpmdW5jdGlvbih2LHkseix0LHIsdyl7dmFyIHU9Cj0zREdhbGF4eS5jdXJyVXNlcix4
PTNEe21lc3NhZ2U6dGhpcy5fYmVQb2xpdGUodCksZGV0YWlsczp7bWVzc2FnZTp0LHJhdmVuOj0K
KHdpbmRvdy5SYXZlbiYmXy5pc0Z1bmN0aW9uKFJhdmVuLmxhc3RFdmVudElkKSk/KFJhdmVuLmxh
c3RFdmVudElkKCkpOih1bmRlPQpmaW5lZCksYWdlbnQ6bmF2aWdhdG9yLnVzZXJBZ2VudCx1cmw6
KHdpbmRvdy5HYWxheHkpPyhHYWxheHkubGFzdEFqYXgudXJsKTo9Cih1bmRlZmluZWQpLGRhdGE6
KHdpbmRvdy5HYWxheHkpPyhHYWxheHkubGFzdEFqYXguZGF0YSk6KHVuZGVmaW5lZCksb3B0aW9u
cz0KOih5KT8oXy5vbWl0KHosInhociIpKTooeikseGhyOnksc291cmNlOihfLmlzRnVuY3Rpb24o
di50b0pTT04pKT8odi50b0pTT04oPQopKToodisiIiksdXNlcjoodSBpbnN0YW5jZW9mIGkuVXNl
cik/KHUudG9KU09OKCkpOih1KyIiKX19O18uZXh0ZW5kKHguZGV0YWk9CmxzLHJ8fHt9KTtpZih5
JiZfLmlzRnVuY3Rpb24oeS5nZXRBbGxSZXNwb25zZUhlYWRlcnMpKXt2YXIgcz0zRHkuZ2V0QWxs
UmVzcD0Kb25zZUhlYWRlcnMoKTtzPTNEXy5jb21wYWN0KHMuc3BsaXQoIlxuIikpO3M9M0RfLm1h
cChzLGZ1bmN0aW9uKEEpe3JldHVybiBBPQouc3BsaXQoIjogIil9KTt4LmRldGFpbHMueGhyLnJl
c3BvbnNlSGVhZGVycz0zRF8ub2JqZWN0KHMpfXJldHVybiB4fSxfYmVQb2w9Cml0ZTpmdW5jdGlv
bihyKXtyPTNEcnx8ZygiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZ2V0dGluZyB1cGRhdGVzIGZy
b20gdGhlID0Kc2VydmVyIik7cmV0dXJuIHIrIi4gIitnKCJQbGVhc2UgY29udGFjdCBhIEdhbGF4
eSBhZG1pbmlzdHJhdG9yIGlmIHRoZSBwcm9iPQpsZW0gcGVyc2lzdHMiKSsiLiJ9LGRpc3BsYXlN
ZXNzYWdlOmZ1bmN0aW9uKHcseCx2KXt2YXIgdD0zRHRoaXM7dGhpcy5zY3JvbGw9ClRvVG9wKCk7
dmFyIHU9M0R0aGlzLiRtZXNzYWdlcygpLHI9M0QkKCI8ZGl2Lz4iKS5hZGRDbGFzcyh3KyJtZXNz
YWdlIikuaHRtbD0KKHgpO2lmKCFfLmlzRW1wdHkodikpe3ZhciBzPTNEJCgnPGEgaHJlZj0zRCJq
YXZhc2NyaXB0OnZvaWQoMCkiPkRldGFpbHM8L2E+PQonKS5jbGljayhmdW5jdGlvbigpe0dhbGF4
eS5tb2RhbC5zaG93KHQuX21lc3NhZ2VUb01vZGFsT3B0aW9ucyh3LHgsdikpO3JldHU9CnJuIGZh
bHNlfSk7ci5hcHBlbmQoIiAiLHMpfXJldHVybiB1LmFwcGVuZChyKX0sX21lc3NhZ2VUb01vZGFs
T3B0aW9uczpmdW5jdD0KaW9uKHUseCx0KXt2YXIgcj0zRHRoaXMscz0zRHt0aXRsZToiRGV0YWls
cyJ9O2lmKF8uaXNPYmplY3QodCkpe3Q9M0RfLm9taXQoPQp0LF8uZnVuY3Rpb25zKHQpKTt2YXIg
dz0zREpTT04uc3RyaW5naWZ5KHQsbnVsbCwiICAiKSx2PTNEJCgiPHByZS8+IikudGV4dCg9Cncp
O3MuYm9keT0zRCQoIjxkaXYvPiIpLmFwcGVuZCh2KX1lbHNle3MuYm9keT0zRCQoIjxkaXYvPiIp
Lmh0bWwodCl9cy5idXR0bz0KbnM9M0R7T2s6ZnVuY3Rpb24oKXtHYWxheHkubW9kYWwuaGlkZSgp
O3IuY2xlYXJNZXNzYWdlcygpfX07cmV0dXJuIHN9LGNsZWFyPQpNZXNzYWdlczpmdW5jdGlvbihz
KXt2YXIgcj0zRCFfLmlzVW5kZWZpbmVkKHMpPyQocy5jdXJyZW50VGFyZ2V0KTp0aGlzLiRtZXM9
CnNhZ2VzKCkuY2hpbGRyZW4oJ1tjbGFzcyQ9M0QibWVzc2FnZSJdJyk7ci5mYWRlT3V0KHRoaXMu
ZnhTcGVlZCxmdW5jdGlvbigpez0KJCh0aGlzKS5yZW1vdmUoKX0pO3JldHVybiB0aGlzfSxzY3Jv
bGxUb0hpZDpmdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5zY3JvbGxUPQpvSXRlbShfLmZpcnN0KHRo
aXMudmlld3NXaGVyZU1vZGVsKHtoaWQ6cn0pKSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJu
Ikg9CmlzdG9yeVBhbmVsKCIrKCh0aGlzLm1vZGVsKT8odGhpcy5tb2RlbC5nZXQoIm5hbWUiKSk6
KCIiKSkrIikifX0pO20ucHJvdG90eT0KcGUudGVtcGxhdGVzPTNEKGZ1bmN0aW9uKCl7dmFyIHI9
M0RxLndyYXBUZW1wbGF0ZShbJzxkaXYgY2xhc3M9M0QiY29udHJvbHMiPQo+JywnPGRpdiBjbGFz
cz0zRCJ0aXRsZSI+JywnPGRpdiBjbGFzcz0zRCJuYW1lIj48JT0zRCBoaXN0b3J5Lm5hbWUgJT48
L2Rpdj49CicsIjwvZGl2PiIsJzxkaXYgY2xhc3M9M0Qic3VidGl0bGUiPjwvZGl2PicsJzxkaXYg
Y2xhc3M9M0QiaGlzdG9yeS1zaXplIj48JT0KPTNEIGhpc3RvcnkubmljZV9zaXplICU+PC9kaXY+
JywnPGRpdiBjbGFzcz0zRCJhY3Rpb25zIj48L2Rpdj4nLCc8ZGl2IGNsYXNzPQo9M0QibWVzc2Fn
ZXMiPicsIjwlIGlmKCBoaXN0b3J5LmRlbGV0ZWQgJiYgaGlzdG9yeS5wdXJnZWQgKXsgJT4iLCc8
ZGl2IGNsYXM9CnM9M0QiZGVsZXRlZC1tc2cgd2FybmluZ21lc3NhZ2VzbWFsbCI+JyxnKCJUaGlz
IGhpc3RvcnkgaGFzIGJlZW4gcHVyZ2VkIGFuZD0KIGRlbGV0ZWQiKSwiPC9kaXY+IiwiPCUgfSBl
bHNlIGlmKCBoaXN0b3J5LmRlbGV0ZWQgKXsgJT4iLCc8ZGl2IGNsYXNzPTNEImRlPQpsZXRlZC1t
c2cgd2FybmluZ21lc3NhZ2VzbWFsbCI+JyxnKCJUaGlzIGhpc3RvcnkgaGFzIGJlZW4gZGVsZXRl
ZCIpLCI8L2Rpdj49CiIsIjwlIH0gZWxzZSBpZiggaGlzdG9yeS5wdXJnZWQgKXsgJT4iLCc8ZGl2
IGNsYXNzPTNEImRlbGV0ZWQtbXNnIHdhcm5pbmdtZT0Kc3NhZ2VzbWFsbCI+JyxnKCJUaGlzIGhp
c3RvcnkgaGFzIGJlZW4gcHVyZ2VkIiksIjwvZGl2PiIsIjwlIH0gJT4iLCI8JSBpZiggPQpoaXN0
b3J5Lm1lc3NhZ2UgKXsgJT4iLCc8ZGl2IGNsYXNzPTNEIjwlPTNEIGhpc3RvcnkubWVzc2FnZS5s
ZXZlbCB8fCAiaW5mbyI9CiAlPm1lc3NhZ2VzbWFsbCI+JywiPCU9M0QgaGlzdG9yeS5tZXNzYWdl
LnRleHQgJT4iLCI8L2Rpdj4iLCI8JSB9ICU+IiwiPC9kaT0Kdj4iLCc8ZGl2IGNsYXNzPTNEInRh
Z3MtZGlzcGxheSI+PC9kaXY+JywnPGRpdiBjbGFzcz0zRCJhbm5vdGF0aW9uLWRpc3BsYXkiPQo+
PC9kaXY+JywnPGRpdiBjbGFzcz0zRCJzZWFyY2giPicsJzxkaXYgY2xhc3M9M0Qic2VhcmNoLWlu
cHV0Ij48L2Rpdj4nLCI8L2Q9Cml2PiIsJzxkaXYgY2xhc3M9M0QibGlzdC1hY3Rpb25zIj4nLCc8
ZGl2IGNsYXNzPTNEImJ0bi1ncm91cCI+JywnPGJ1dHRvbiBjbD0KYXNzPTNEInNlbGVjdC1hbGwg
YnRuIGJ0bi1kZWZhdWx0IicsJ2RhdGEtbW9kZT0zRCJzZWxlY3QiPicsZygiQWxsIiksIjwvYnV0
PQp0b24+IiwnPGJ1dHRvbiBjbGFzcz0zRCJkZXNlbGVjdC1hbGwgYnRuIGJ0bi1kZWZhdWx0Iics
J2RhdGEtbW9kZT0zRCJzZWxlY3Q9CiI+JyxnKCJOb25lIiksIjwvYnV0dG9uPiIsIjwvZGl2PiIs
JzxkaXYgY2xhc3M9M0QibGlzdC1hY3Rpb24tbWVudSBidG4tZ3JvdT0KcCI+JywiPC9kaXY+Iiwi
PC9kaXY+IiwiPC9kaXY+Il0sImhpc3RvcnkiKTtyZXR1cm4gXy5leHRlbmQoXy5jbG9uZShwLnBy
b3RvPQp0eXBlLnRlbXBsYXRlcykse2NvbnRyb2xzOnJ9KX0oKSk7cmV0dXJue0hpc3RvcnlQYW5l
bDptfX0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKClJlcG9zaXRvcnkgVVJMOiBodHRw
czovL2JpdGJ1Y2tldC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFsLwoKLS0KClRoaXMgaXMgYSBj
b21taXQgbm90aWZpY2F0aW9uIGZyb20gYml0YnVja2V0Lm9yZy4gWW91IGFyZSByZWNlaXZpbmcK
dGhpcyBiZWNhdXNlIHlvdSBoYXZlIHRoZSBzZXJ2aWNlIGVuYWJsZWQsIGFkZHJlc3NpbmcgdGhl
IHJlY2lwaWVudCBvZgp0aGlzIGVtYWlsLgo
Show replies by date