Sie sind auf Seite 1von 227

Content-Type: multipart/related; start=<op.mhtml.1286147605490.

c6550874032fce31@
114.123.250.15>; boundary=----------qul3UheKKhU3PWRTmp2eKg
Content-Location: http://en.wikipedia.org/wiki/Menarche
Subject: =?utf-8?Q?Menarche=20-=20Wikipedia,=20the=20free=20encyclopedia?=
MIME-Version: 1.0
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=Menarche.htm
Content-Type: text/html; charset=UTF-8; name=Menarche.htm
Content-ID: <op.mhtml.1286147605490.c6550874032fce31@114.123.250.15>
Content-Location: http://en.wikipedia.org/wiki/Menarche
Content-Transfer-Encoding: Base64
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJh
bnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv
eGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZW4iIGRpcj0ibHRyIj4KPGhlYWQ+
Cjx0aXRsZT5NZW5hcmNoZSAtIFdpa2lwZWRpYSwgdGhlIGZyZWUgZW5jeWNsb3Bl
ZGlhPC90aXRsZT4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiIC8+CjxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtU3R5bGUtVHlwZSIgY29udGVudD0idGV4dC9jc3MiIC8+Cjxt
ZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iTWVkaWFXaWtpIDEuMTZ3bWY0
IiAvPgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24veC13
aWtpIiB0aXRsZT0iRWRpdCB0aGlzIHBhZ2UiIGhyZWY9Ii93L2luZGV4LnBocD90
aXRsZT1NZW5hcmNoZSZhbXA7YWN0aW9uPWVkaXQiIC8+CjxsaW5rIHJlbD0iZWRp
dCIgdGl0bGU9IkVkaXQgdGhpcyBwYWdlIiBocmVmPSIvdy9pbmRleC5waHA/dGl0
bGU9TWVuYXJjaGUmYW1wO2FjdGlvbj1lZGl0IiAvPgo8bGluayByZWw9ImFwcGxl
LXRvdWNoLWljb24iIGhyZWY9Imh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL2FwcGxl
LXRvdWNoLWljb24ucG5nIiAvPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhy
ZWY9Ii9mYXZpY29uLmljbyIgLz4KPGxpbmsgcmVsPSJzZWFyY2giIHR5cGU9ImFw
cGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwiIGhyZWY9Ii93L29w
ZW5zZWFyY2hfZGVzYy5waHAiIHRpdGxlPSJXaWtpcGVkaWEgKGVuKSIgLz4KPGxp
bmsgcmVsPSJjb3B5cmlnaHQiIGhyZWY9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMu
b3JnL2xpY2Vuc2VzL2J5LXNhLzMuMC8iIC8+CjxsaW5rIHJlbD0iYWx0ZXJuYXRl
IiB0eXBlPSJhcHBsaWNhdGlvbi9hdG9tK3htbCIgdGl0bGU9Ildpa2lwZWRpYSBB
dG9tIGZlZWQiIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT1TcGVjaWFsOlJlY2Vu
dENoYW5nZXMmYW1wO2ZlZWQ9YXRvbSIgLz4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJodHRwOi8vYml0cy53aWtpbWVkaWEub3JnL3NraW5zLTEuNS92ZWN0
b3IvbWFpbi1sdHIuY3NzPzI4M3UiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2Ny
ZWVuIiAvPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9iaXRz
Lndpa2ltZWRpYS5vcmcvc2tpbnMtMS41L2NvbW1vbi9zaGFyZWQuY3NzPzI4M3Ui
IHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIiAvPgo8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9iaXRzLndpa2ltZWRpYS5vcmcvc2tpbnMt
MS41L2NvbW1vbi9jb21tb25QcmludC5jc3M/MjgzdSIgdHlwZT0idGV4dC9jc3Mi
IG1lZGlhPSJwcmludCIgLz4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJo
dHRwOi8vYml0cy53aWtpbWVkaWEub3JnL3cvZXh0ZW5zaW9ucy9Vc2FiaWxpdHlJ
bml0aWF0aXZlL2Nzcy9jb21iaW5lZC5taW4uY3NzPzExNyIgdHlwZT0idGV4dC9j
c3MiIG1lZGlhPSJhbGwiIC8+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
aHR0cDovL2JpdHMud2lraW1lZGlhLm9yZy93L2V4dGVuc2lvbnMvVXNhYmlsaXR5
SW5pdGlhdGl2ZS9jc3MvdmVjdG9yL2pxdWVyeS11aS0xLjcuMi5jc3M/MS43LjJ5
IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgLz4KPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9TWVkaWFXaWtpOkNvbW1v
bi5jc3MmYW1wO3VzZW1zZ2NhY2hlPXllcyZhbXA7Y3R5cGU9dGV4dCUyRmNzcyZh
bXA7c21heGFnZT0yNjc4NDAwJmFtcDthY3Rpb249cmF3JmFtcDttYXhhZ2U9MjY3
ODQwMCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiIC8+CjxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPU1lZGlhV2lraTpQ
cmludC5jc3MmYW1wO3VzZW1zZ2NhY2hlPXllcyZhbXA7Y3R5cGU9dGV4dCUyRmNz
cyZhbXA7c21heGFnZT0yNjc4NDAwJmFtcDthY3Rpb249cmF3JmFtcDttYXhhZ2U9
MjY3ODQwMCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJwcmludCIgLz4KPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9TWVkaWFX
aWtpOkhhbmRoZWxkLmNzcyZhbXA7dXNlbXNnY2FjaGU9eWVzJmFtcDtjdHlwZT10
ZXh0JTJGY3NzJmFtcDtzbWF4YWdlPTI2Nzg0MDAmYW1wO2FjdGlvbj1yYXcmYW1w
O21heGFnZT0yNjc4NDAwIiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImhhbmRoZWxk
IiAvPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93L2luZGV4LnBocD90
aXRsZT1NZWRpYVdpa2k6VmVjdG9yLmNzcyZhbXA7dXNlbXNnY2FjaGU9eWVzJmFt
cDtjdHlwZT10ZXh0JTJGY3NzJmFtcDtzbWF4YWdlPTI2Nzg0MDAmYW1wO2FjdGlv
bj1yYXcmYW1wO21heGFnZT0yNjc4NDAwIiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9
ImFsbCIgLz4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdy9pbmRleC5w
aHA/dGl0bGU9LSZhbXA7YWN0aW9uPXJhdyZhbXA7bWF4YWdlPTI2Nzg0MDAmYW1w
O2dlbj1jc3MiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiAvPgo8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBza2luPSJ2ZWN0b3IiLApzdHls
ZXBhdGg9Imh0dHA6Ly9iaXRzLndpa2ltZWRpYS5vcmcvc2tpbnMtMS41IiwKd2dV
cmxQcm90b2NvbHM9Imh0dHBcXDpcXC9cXC98aHR0cHNcXDpcXC9cXC98ZnRwXFw6
XFwvXFwvfGlyY1xcOlxcL1xcL3xnb3BoZXJcXDpcXC9cXC98dGVsbmV0XFw6XFwv
XFwvfG5udHBcXDpcXC9cXC98d29ybGR3aW5kXFw6XFwvXFwvfG1haWx0b1xcOnxu
ZXdzXFw6fHN2blxcOlxcL1xcLyIsCndnQXJ0aWNsZVBhdGg9Ii93aWtpLyQxIiwK
d2dTY3JpcHRQYXRoPSIvdyIsCndnU2NyaXB0RXh0ZW5zaW9uPSIucGhwIiwKd2dT
Y3JpcHQ9Ii93L2luZGV4LnBocCIsCndnVmFyaWFudEFydGljbGVQYXRoPWZhbHNl
LAp3Z0FjdGlvblBhdGhzPXt9LAp3Z1NlcnZlcj0iaHR0cDovL2VuLndpa2lwZWRp
YS5vcmciLAp3Z0Nhbm9uaWNhbE5hbWVzcGFjZT0iIiwKd2dDYW5vbmljYWxTcGVj
aWFsUGFnZU5hbWU9ZmFsc2UsCndnTmFtZXNwYWNlTnVtYmVyPTAsCndnUGFnZU5h
bWU9Ik1lbmFyY2hlIiwKd2dUaXRsZT0iTWVuYXJjaGUiLAp3Z0FjdGlvbj0idmll
dyIsCndnQXJ0aWNsZUlkPTE4MTgwNSwKd2dJc0FydGljbGU9dHJ1ZSwKd2dVc2Vy
TmFtZT1udWxsLAp3Z1VzZXJHcm91cHM9bnVsbCwKd2dVc2VyTGFuZ3VhZ2U9ImVu
IiwKd2dDb250ZW50TGFuZ3VhZ2U9ImVuIiwKd2dCcmVha0ZyYW1lcz1mYWxzZSwK
d2dDdXJSZXZpc2lvbklkPTM4MTYxOTEzNiwKd2dWZXJzaW9uPSIxLjE2d21mNCIs
CndnRW5hYmxlQVBJPXRydWUsCndnRW5hYmxlV3JpdGVBUEk9dHJ1ZSwKd2dTZXBh
cmF0b3JUcmFuc2Zvcm1UYWJsZT1bIiIsICIiXSwKd2dEaWdpdFRyYW5zZm9ybVRh
YmxlPVsiIiwgIiJdLAp3Z01haW5QYWdlVGl0bGU9Ik1haW4gUGFnZSIsCndnRm9y
bWF0dGVkTmFtZXNwYWNlcz17Ii0yIjogIk1lZGlhIiwgIi0xIjogIlNwZWNpYWwi
LCAiMCI6ICIiLCAiMSI6ICJUYWxrIiwgIjIiOiAiVXNlciIsICIzIjogIlVzZXIg
dGFsayIsICI0IjogIldpa2lwZWRpYSIsICI1IjogIldpa2lwZWRpYSB0YWxrIiwg
IjYiOiAiRmlsZSIsICI3IjogIkZpbGUgdGFsayIsICI4IjogIk1lZGlhV2lraSIs
ICI5IjogIk1lZGlhV2lraSB0YWxrIiwgIjEwIjogIlRlbXBsYXRlIiwgIjExIjog
IlRlbXBsYXRlIHRhbGsiLCAiMTIiOiAiSGVscCIsICIxMyI6ICJIZWxwIHRhbGsi
LCAiMTQiOiAiQ2F0ZWdvcnkiLCAiMTUiOiAiQ2F0ZWdvcnkgdGFsayIsICIxMDAi
OiAiUG9ydGFsIiwgIjEwMSI6ICJQb3J0YWwgdGFsayIsICIxMDgiOiAiQm9vayIs
ICIxMDkiOiAiQm9vayB0YWxrIn0sCndnTmFtZXNwYWNlSWRzPXsibWVkaWEiOiAt
MiwgInNwZWNpYWwiOiAtMSwgIiI6IDAsICJ0YWxrIjogMSwgInVzZXIiOiAyLCAi
dXNlcl90YWxrIjogMywgIndpa2lwZWRpYSI6IDQsICJ3aWtpcGVkaWFfdGFsayI6
IDUsICJmaWxlIjogNiwgImZpbGVfdGFsayI6IDcsICJtZWRpYXdpa2kiOiA4LCAi
bWVkaWF3aWtpX3RhbGsiOiA5LCAidGVtcGxhdGUiOiAxMCwgInRlbXBsYXRlX3Rh
bGsiOiAxMSwgImhlbHAiOiAxMiwgImhlbHBfdGFsayI6IDEzLCAiY2F0ZWdvcnki
OiAxNCwgImNhdGVnb3J5X3RhbGsiOiAxNSwgInBvcnRhbCI6IDEwMCwgInBvcnRh
bF90YWxrIjogMTAxLCAiYm9vayI6IDEwOCwgImJvb2tfdGFsayI6IDEwOSwgIndw
IjogNCwgInd0IjogNSwgImltYWdlIjogNiwgImltYWdlX3RhbGsiOiA3fSwKd2dT
aXRlTmFtZT0iV2lraXBlZGlhIiwKd2dDYXRlZ29yaWVzPVsiQXJ0aWNsZXMgbmVl
ZGluZyBhZGRpdGlvbmFsIHJlZmVyZW5jZXMgZnJvbSBKdWx5IDIwMTAiLCAiQWxs
IGFydGljbGVzIG5lZWRpbmcgYWRkaXRpb25hbCByZWZlcmVuY2VzIiwgIldpa2lw
ZWRpYSBhcnRpY2xlcyBuZWVkaW5nIGNsZWFudXAgZnJvbSBKdWx5IDIwMTAiLCAi
QWxsIGFydGljbGVzIG5lZWRpbmcgY2xlYW51cCIsICJBbGwgYXJ0aWNsZXMgd2l0
aCB1bnNvdXJjZWQgc3RhdGVtZW50cyIsICJBcnRpY2xlcyB3aXRoIHVuc291cmNl
ZCBzdGF0ZW1lbnRzIGZyb20gTWF5IDIwMDgiLCAiQWxsIGFjY3VyYWN5IGRpc3B1
dGVzIiwgIkFydGljbGVzIHdpdGggZGlzcHV0ZWQgc3RhdGVtZW50cyBmcm9tIE5v
dmVtYmVyIDIwMDgiLCAiQXJ0aWNsZXMgd2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50
cyBmcm9tIEp1bHkgMjAxMCIsICJEZXZlbG9wbWVudGFsIGJpb2xvZ3kiLCAiTWVu
c3RydWFsIGN5Y2xlIiwgIlBlZGlhdHJpY3MiLCAiUHViZXJ0eSIsICJTZXh1YWxp
dHkgYW5kIGFnZSJdLAp3Z0RCbmFtZT0iZW53aWtpIiwKd2dNV1N1Z2dlc3RUZW1w
bGF0ZT0iaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvdy9hcGkucGhwP2FjdGlvbj1v
cGVuc2VhcmNoXHgyNnNlYXJjaD17c2VhcmNoVGVybXN9XHgyNm5hbWVzcGFjZT17
bmFtZXNwYWNlc31ceDI2c3VnZ2VzdCIsCndnU2VhcmNoTmFtZXNwYWNlcz1bMF0s
CndnTVdTdWdnZXN0TWVzc2FnZXM9WyJ3aXRoIHN1Z2dlc3Rpb25zIiwgIm5vIHN1
Z2dlc3Rpb25zIl0sCndnUmVzdHJpY3Rpb25FZGl0PVtdLAp3Z1Jlc3RyaWN0aW9u
TW92ZT1bXSwKd2dGbGFnZ2VkUmV2c1BhcmFtcz17InRhZ3MiOiB7InN0YXR1cyI6
IHsibGV2ZWxzIjogMSwgInF1YWxpdHkiOiAyLCAicHJpc3RpbmUiOiAzfX19LAp3
Z1N0YWJsZVJldmlzaW9uSWQ9MCwKd2dXaWtpbWVkaWFNb2JpbGVVcmw9Imh0dHA6
Ly9lbi5tLndpa2lwZWRpYS5vcmcvd2lraSIsCndnQ29sbGFwc2libGVOYXZCdWNr
ZXRUZXN0PWZhbHNlLAp3Z0NvbGxhcHNpYmxlTmF2Rm9yY2VOZXdWZXJzaW9uPWZh
bHNlLAp3Z1ZlY3RvclByZWZlcmVuY2VzPXsiY29sbGFwc2libGVuYXYiOiB7ImVu
YWJsZSI6IDF9LCAiZWRpdHdhcm5pbmciOiB7ImVuYWJsZSI6IDF9LCAic2ltcGxl
c2VhcmNoIjogeyJlbmFibGUiOiAxLCAiZGlzYWJsZXN1Z2dlc3QiOiAwfX0sCndn
VmVjdG9yRW5hYmxlZE1vZHVsZXM9eyJjb2xsYXBzaWJsZW5hdiI6IHRydWUsICJj
b2xsYXBzaWJsZXRhYnMiOiB0cnVlLCAiZWRpdHdhcm5pbmciOiB0cnVlLCAiZXhw
YW5kYWJsZXNlYXJjaCI6IGZhbHNlLCAiZm9vdGVyY2xlYW51cCI6IGZhbHNlLCAi
c2ltcGxlc2VhcmNoIjogdHJ1ZX0sCndnQXJ0aWNsZUFzc2Vzc21lbnRKVUlQYXRo
PSJodHRwOi8vYml0cy53aWtpbWVkaWEub3JnL3cvZXh0ZW5zaW9ucy9Vc2FiaWxp
dHlJbml0aWF0aXZlL2pzL2pzMnN0b3BnYXAvanVpLmNvbWJpbmVkLm1pbi5qcyIs
Ckdlbz17ImNpdHkiOiAiIiwgImNvdW50cnkiOiAiIn0sCndnTm90aWNlUHJvamVj
dD0id2lraXBlZGlhIjsKPC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHA6Ly9iaXRz
Lndpa2ltZWRpYS5vcmcvc2tpbnMtMS41L2NvbW1vbi93aWtpYml0cy5qcz8yODN1
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vYml0cy53aWtpbWVkaWEub3Jn
L3NraW5zLTEuNS9jb21tb24vanF1ZXJ5Lm1pbi5qcz8yODN1Ij48L3NjcmlwdD4K
PHNjcmlwdCBzcmM9Imh0dHA6Ly9iaXRzLndpa2ltZWRpYS5vcmcvc2tpbnMtMS41
L2NvbW1vbi9hamF4LmpzPzI4M3UiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9z
Y3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwOi8vYml0cy53aWtpbWVkaWEub3JnL3Nr
aW5zLTEuNS9jb21tb24vbXdzdWdnZXN0LmpzPzI4M3UiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwOi8vYml0cy53aWtp
bWVkaWEub3JnL3cvZXh0ZW5zaW9ucy9XaWtpbWVkaWFNb2JpbGUvTW9iaWxlUmVk
aXJlY3QuanM/Mi4yIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgo8
c2NyaXB0IHNyYz0iaHR0cDovL2JpdHMud2lraW1lZGlhLm9yZy93L2V4dGVuc2lv
bnMvVXNhYmlsaXR5SW5pdGlhdGl2ZS9qcy9wbHVnaW5zLmNvbWJpbmVkLm1pbi5q
cz8yODN1IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgo8c2NyaXB0
IHNyYz0iaHR0cDovL2JpdHMud2lraW1lZGlhLm9yZy93L2V4dGVuc2lvbnMvVXNh
YmlsaXR5SW5pdGlhdGl2ZS9WZWN0b3IvVmVjdG9yLmNvbWJpbmVkLm1pbi5qcz8y
ODN1IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+bXcudXNhYmlsaXR5LmFkZE1lc3NhZ2VzKHsn
dmVjdG9yLWNvbGxhcHNpYmxlbmF2LW1vcmUnOidNb3JlIGxhbmd1YWdlcycsJ3Zl
Y3Rvci1lZGl0d2FybmluZy13YXJuaW5nJzonTGVhdmluZyB0aGlzIHBhZ2UgbWF5
IGNhdXNlIHlvdSB0byBsb3NlIGFueSBjaGFuZ2VzIHlvdSBoYXZlIG1hZGUuXG5J
ZiB5b3UgYXJlIGxvZ2dlZCBpbiwgeW91IGNhbiBkaXNhYmxlIHRoaXMgd2Fybmlu
ZyBpbiB0aGUgXCJFZGl0aW5nXCIgc2VjdGlvbiBvZiB5b3VyIHByZWZlcmVuY2Vz
LicsJ3ZlY3Rvci1zaW1wbGVzZWFyY2gtc2VhcmNoJzonU2VhcmNoJywndmVjdG9y
LXNpbXBsZXNlYXJjaC1jb250YWluaW5nJzonY29udGFpbmluZy4uLid9KTs8L3Nj
cmlwdD4KPHNjcmlwdCBzcmM9Ii93aWtpL1NwZWNpYWw6QmFubmVyQ29udHJvbGxl
cj8yODN1IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgo8IS0tW2lm
IGx0IElFIDddPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ym9keXtiZWhhdmlvcjp1
cmwoIi93L3NraW5zLTEuNS92ZWN0b3IvY3NzaG92ZXIuaHRjIil9PC9zdHlsZT48
IVtlbmRpZl0tLT4KPHNjcmlwdCBzcmM9Ii93L2luZGV4LnBocD90aXRsZT0tJmFt
cDthY3Rpb249cmF3JmFtcDtnZW49anMmYW1wO3VzZXNraW49dmVjdG9yJmFtcDsy
ODN1IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPC9oZWFkPgo8
Ym9keSBjbGFzcz0ibWVkaWF3aWtpIGx0ciBucy0wIG5zLXN1YmplY3QgcGFnZS1N
ZW5hcmNoZSBza2luLXZlY3RvciI+CgkJPGRpdiBpZD0ibXctcGFnZS1iYXNlIiBj
bGFzcz0ibm9wcmludCI+PC9kaXY+CgkJPGRpdiBpZD0ibXctaGVhZC1iYXNlIiBj
bGFzcz0ibm9wcmludCI+PC9kaXY+CgkJPCEtLSBjb250ZW50IC0tPgoJCTxkaXYg
aWQ9ImNvbnRlbnQiPgoJCQk8YSBpZD0idG9wIj48L2E+CgkJCTxkaXYgaWQ9Im13
LWpzLW1lc3NhZ2UiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48L2Rpdj4KCQkJCQkJ
PCEtLSBzaXRlbm90aWNlIC0tPgoJCQk8ZGl2IGlkPSJzaXRlTm90aWNlIj48IS0t
IGNlbnRyYWxOb3RpY2UgbG9hZHMgaGVyZSAtLT48L2Rpdj4KCQkJPCEtLSAvc2l0
ZW5vdGljZSAtLT4KCQkJCQkJPCEtLSBmaXJzdEhlYWRpbmcgLS0+CgkJCTxoMSBp
ZD0iZmlyc3RIZWFkaW5nIiBjbGFzcz0iZmlyc3RIZWFkaW5nIj5NZW5hcmNoZTwv
aDE+CgkJCTwhLS0gL2ZpcnN0SGVhZGluZyAtLT4KCQkJPCEtLSBib2R5Q29udGVu
dCAtLT4KCQkJPGRpdiBpZD0iYm9keUNvbnRlbnQiPgoJCQkJPCEtLSB0YWdsaW5l
IC0tPgoJCQkJPGRpdiBpZD0ic2l0ZVN1YiI+RnJvbSBXaWtpcGVkaWEsIHRoZSBm
cmVlIGVuY3ljbG9wZWRpYTwvZGl2PgoJCQkJPCEtLSAvdGFnbGluZSAtLT4KCQkJ
CTwhLS0gc3VidGl0bGUgLS0+CgkJCQk8ZGl2IGlkPSJjb250ZW50U3ViIj48L2Rp
dj4KCQkJCTwhLS0gL3N1YnRpdGxlIC0tPgoJCQkJCQkJCQkJCQkJCQkJPCEtLSBq
dW1wdG8gLS0+CgkJCQk8ZGl2IGlkPSJqdW1wLXRvLW5hdiI+CgkJCQkJSnVtcCB0
bzogPGEgaHJlZj0iI213LWhlYWQiPm5hdmlnYXRpb248L2E+LAoJCQkJCTxhIGhy
ZWY9IiNwLXNlYXJjaCI+c2VhcmNoPC9hPgoJCQkJPC9kaXY+CgkJCQk8IS0tIC9q
dW1wdG8gLS0+CgkJCQkJCQkJPCEtLSBib2R5dGV4dCAtLT4KCQkJCTx0YWJsZSBj
bGFzcz0ibWV0YWRhdGEgcGxhaW5saW5rcyBhbWJveCBhbWJveC1jb250ZW50IiBz
dHlsZT0iIj4KPHRyPgo8dGQgY2xhc3M9Im1ib3gtaW1hZ2UiPgo8ZGl2IHN0eWxl
PSJ3aWR0aDogNTJweDsiPjxhIGhyZWY9Ii93aWtpL0ZpbGU6UXVlc3Rpb25fYm9v
ay1uZXcuc3ZnIiBjbGFzcz0iaW1hZ2UiPjxpbWcgYWx0PSJRdWVzdGlvbiBib29r
LW5ldy5zdmciIHNyYz0iaHR0cDovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lw
ZWRpYS9lbi90aHVtYi85Lzk5L1F1ZXN0aW9uX2Jvb2stbmV3LnN2Zy81MHB4LVF1
ZXN0aW9uX2Jvb2stbmV3LnN2Zy5wbmciIHdpZHRoPSI1MCIgaGVpZ2h0PSIzOSIg
Lz48L2E+PC9kaXY+CjwvdGQ+Cjx0ZCBjbGFzcz0ibWJveC10ZXh0IiBzdHlsZT0i
Ij5UaGlzIGFydGljbGUgPGI+bmVlZHMgYWRkaXRpb25hbCA8YSBocmVmPSIvd2lr
aS9XaWtpcGVkaWE6Q2l0aW5nX3NvdXJjZXMjSW5saW5lX2NpdGF0aW9ucyIgdGl0
bGU9Ildpa2lwZWRpYTpDaXRpbmcgc291cmNlcyI+Y2l0YXRpb25zPC9hPiBmb3Ig
PGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOlZlcmlmaWFiaWxpdHkiIHRpdGxlPSJX
aWtpcGVkaWE6VmVyaWZpYWJpbGl0eSI+dmVyaWZpY2F0aW9uPC9hPi48L2I+PGJy
IC8+CjxzbWFsbD5QbGVhc2UgaGVscCA8YSBocmVmPSJodHRwOi8vZW4ud2lraXBl
ZGlhLm9yZy93L2luZGV4LnBocD90aXRsZT1NZW5hcmNoZSZhbXA7YWN0aW9uPWVk
aXQiIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiByZWw9Im5vZm9sbG93Ij5pbXByb3Zl
IHRoaXMgYXJ0aWNsZTwvYT4gYnkgYWRkaW5nIDxhIGhyZWY9Ii93aWtpL1dpa2lw
ZWRpYTpJZGVudGlmeWluZ19yZWxpYWJsZV9zb3VyY2VzIiB0aXRsZT0iV2lraXBl
ZGlhOklkZW50aWZ5aW5nIHJlbGlhYmxlIHNvdXJjZXMiPnJlbGlhYmxlIHJlZmVy
ZW5jZXM8L2E+LiBVbnNvdXJjZWQgbWF0ZXJpYWwgbWF5IGJlIDxhIGhyZWY9Ii93
aWtpL1RlbXBsYXRlOkNpdGF0aW9uX25lZWRlZCIgdGl0bGU9IlRlbXBsYXRlOkNp
dGF0aW9uIG5lZWRlZCI+Y2hhbGxlbmdlZDwvYT4gYW5kIDxhIGhyZWY9Ii93aWtp
L1dpa2lwZWRpYTpWZXJpZmlhYmlsaXR5I0J1cmRlbl9vZl9ldmlkZW5jZSIgdGl0
bGU9Ildpa2lwZWRpYTpWZXJpZmlhYmlsaXR5Ij5yZW1vdmVkPC9hPi4gPGk+KEp1
bHkgMjAxMCk8L2k+PC9zbWFsbD48L3RkPgo8L3RyPgo8L3RhYmxlPgo8dGFibGUg
Y2xhc3M9Im1ldGFkYXRhIHBsYWlubGlua3MgYW1ib3ggYW1ib3gtc3R5bGUiIHN0
eWxlPSIiPgo8dHI+Cjx0ZCBjbGFzcz0ibWJveC1pbWFnZSI+CjxkaXYgc3R5bGU9
IndpZHRoOiA1MnB4OyI+PGltZyBhbHQ9IiIgc3JjPSJodHRwOi8vdXBsb2FkLndp
a2ltZWRpYS5vcmcvd2lraXBlZGlhL2VuL3RodW1iL2YvZjIvRWRpdC1jbGVhci5z
dmcvNDBweC1FZGl0LWNsZWFyLnN2Zy5wbmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0
MCIgLz48L2Rpdj4KPC90ZD4KPHRkIGNsYXNzPSJtYm94LXRleHQiIHN0eWxlPSIi
PlRoaXMgYXJ0aWNsZSA8Yj5tYXkgcmVxdWlyZSA8YSBocmVmPSIvd2lraS9XaWtp
cGVkaWE6Q2xlYW51cCIgdGl0bGU9Ildpa2lwZWRpYTpDbGVhbnVwIj5jbGVhbnVw
PC9hPiB0byBtZWV0IFdpa2lwZWRpYSdzIDxhIGhyZWY9Ii93aWtpL1dpa2lwZWRp
YTpNYW51YWxfb2ZfU3R5bGUiIHRpdGxlPSJXaWtpcGVkaWE6TWFudWFsIG9mIFN0
eWxlIj5xdWFsaXR5IHN0YW5kYXJkczwvYT4uPC9iPiBQbGVhc2UgPGEgaHJlZj0i
aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvdy9pbmRleC5waHA/dGl0bGU9TWVuYXJj
aGUmYW1wO2FjdGlvbj1lZGl0IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgcmVsPSJu
b2ZvbGxvdyI+aW1wcm92ZSB0aGlzIGFydGljbGU8L2E+IGlmIHlvdSBjYW4uIFRo
ZSA8YSBocmVmPSIvd2lraS9UYWxrOk1lbmFyY2hlIiB0aXRsZT0iVGFsazpNZW5h
cmNoZSI+dGFsayBwYWdlPC9hPiBtYXkgY29udGFpbiBzdWdnZXN0aW9ucy4gPHNt
YWxsPjxpPihKdWx5IDIwMTApPC9pPjwvc21hbGw+PC90ZD4KPC90cj4KPC90YWJs
ZT4KPHA+PGI+TWVuYXJjaGU8L2I+IChwcm9ub3VuY2VkIDxzcGFuIHRpdGxlPSJQ
cm9udW5jaWF0aW9uIGluIHRoZSBJbnRlcm5hdGlvbmFsIFBob25ldGljIEFscGhh
YmV0IChJUEEpIiBjbGFzcz0iSVBBIj48YSBocmVmPSIvd2lraS9XaWtpcGVkaWE6
SVBBX2Zvcl9FbmdsaXNoIiB0aXRsZT0iV2lraXBlZGlhOklQQSBmb3IgRW5nbGlz
aCI+L23JqMuIbsmRcmtpLzwvYT48L3NwYW4+LCBmcm9tIEdyZWVrIDxpPs68zq7O
vTwvaT4gbW9vbiArIDxpPs6xz4HPh86uPC9pPiBiZWdpbm5pbmcpIGlzIHRoZSBm
aXJzdCA8YSBocmVmPSIvd2lraS9NZW5zdHJ1YWxfY3ljbGUiIHRpdGxlPSJNZW5z
dHJ1YWwgY3ljbGUiPm1lbnN0cnVhbCBjeWNsZTwvYT4sIG9yIGZpcnN0IG1lbnN0
cnVhbCBibGVlZGluZywgaW4gZmVtYWxlIDxhIGhyZWY9Ii93aWtpL0h1bWFuX2Jl
aW5ncyIgdGl0bGU9Ikh1bWFuIGJlaW5ncyIgY2xhc3M9Im13LXJlZGlyZWN0Ij5o
dW1hbiBiZWluZ3M8L2E+LiBGcm9tIGJvdGggc29jaWFsIGFuZCBtZWRpY2FsIHBl
cnNwZWN0aXZlcyBpdCBpcyBvZnRlbiBjb25zaWRlcmVkIHRoZSBjZW50cmFsIGV2
ZW50IG9mIGZlbWFsZSA8YSBocmVmPSIvd2lraS9QdWJlcnR5IiB0aXRsZT0iUHVi
ZXJ0eSI+cHViZXJ0eTwvYT4sIGFzIGl0IHNpZ25hbHMgdGhlIHBvc3NpYmlsaXR5
IG9mIDxhIGhyZWY9Ii93aWtpL0ZlcnRpbGl0eSIgdGl0bGU9IkZlcnRpbGl0eSI+
ZmVydGlsaXR5PC9hPi48L3A+CjxwPkdpcmxzIGV4cGVyaWVuY2UgbWVuYXJjaGUg
YXQgZGlmZmVyZW50IGFnZXMuIFRoZSB0aW1pbmcgb2YgbWVuYXJjaGUgaXMgaW5m
bHVlbmNlZCBieSBmZW1hbGUgPGEgaHJlZj0iL3dpa2kvQmlvbG9neSIgdGl0bGU9
IkJpb2xvZ3kiPmJpb2xvZ3k8L2E+LCBhcyB3ZWxsIGFzIDxhIGhyZWY9Ii93aWtp
L0dlbmV0aWNzIiB0aXRsZT0iR2VuZXRpY3MiPmdlbmV0aWM8L2E+IGFuZCA8YSBo
cmVmPSIvd2lraS9FbnZpcm9ubWVudGFsX2ZhY3RvciIgdGl0bGU9IkVudmlyb25t
ZW50YWwgZmFjdG9yIj5lbnZpcm9ubWVudGFsIGZhY3RvcnM8L2E+LCBlc3BlY2lh
bGx5IG51dHJpdGlvbmFsIGZhY3RvcnMuIFRoZSBhdmVyYWdlIGFnZSBvZiBtZW5h
cmNoZSBoYXMgZGVjbGluZWQgb3ZlciB0aGUgbGFzdCBjZW50dXJ5IGJ1dCB0aGUg
bWFnbml0dWRlIG9mIHRoZSBkZWNsaW5lIGFuZCB0aGUgZmFjdG9ycyByZXNwb25z
aWJsZSByZW1haW4gc3ViamVjdHMgb2YgY29udGVudGlvbi4gVGhlIGF2ZXJhZ2Ug
YWdlIG9mIG1lbmFyY2hlIGlzIDExLjc1IHllYXJzLjxzdXAgaWQ9ImNpdGVfcmVm
LXRhbm5lcjg1XzAtMCIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVf
bm90ZS10YW5uZXI4NS0wIj48c3Bhbj5bPC9zcGFuPjE8c3Bhbj5dPC9zcGFuPjwv
YT48L3N1cD4gSXQgaXMgYWJvdXQgMTIuNSB5ZWFycyBpbiB0aGUgPGEgaHJlZj0i
L3dpa2kvVW5pdGVkX1N0YXRlcyIgdGl0bGU9IlVuaXRlZCBTdGF0ZXMiPlVuaXRl
ZCBTdGF0ZXM8L2E+PHN1cCBpZD0iY2l0ZV9yZWYtMSIgY2xhc3M9InJlZmVyZW5j
ZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS0xIj48c3Bhbj5bPC9zcGFuPjI8c3Bhbj5d
PC9zcGFuPjwvYT48L3N1cD4gYW5kIDEzLjA2IMKxIDAuMTAgeWVhcnMgaW4gPGEg
aHJlZj0iL3dpa2kvSWNlbGFuZCIgdGl0bGU9IkljZWxhbmQiPkljZWxhbmQ8L2E+
LjxzdXAgaWQ9ImNpdGVfcmVmLTIiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9
IiNjaXRlX25vdGUtMiI+PHNwYW4+Wzwvc3Bhbj4zPHNwYW4+XTwvc3Bhbj48L2E+
PC9zdXA+PC9wPgo8dGFibGUgaWQ9InRvYyIgY2xhc3M9InRvYyI+Cjx0cj4KPHRk
Pgo8ZGl2IGlkPSJ0b2N0aXRsZSI+CjxoMj5Db250ZW50czwvaDI+CjwvZGl2Pgo8
dWw+CjxsaSBjbGFzcz0idG9jbGV2ZWwtMSB0b2NzZWN0aW9uLTEiPjxhIGhyZWY9
IiNQaHlzaW9sb2d5Ij48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj4xPC9zcGFuPiA8
c3BhbiBjbGFzcz0idG9jdGV4dCI+UGh5c2lvbG9neTwvc3Bhbj48L2E+Cjx1bD4K
PGxpIGNsYXNzPSJ0b2NsZXZlbC0yIHRvY3NlY3Rpb24tMiI+PGEgaHJlZj0iI0Fz
X3BhcnRfb2ZfcHViZXJ0eSI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+MS4xPC9z
cGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+QXMgcGFydCBvZiBwdWJlcnR5PC9z
cGFuPjwvYT48L2xpPgo8bGkgY2xhc3M9InRvY2xldmVsLTIgdG9jc2VjdGlvbi0z
Ij48YSBocmVmPSIjUmVsYXRpb25fdG9fZmVydGlsaXR5Ij48c3BhbiBjbGFzcz0i
dG9jbnVtYmVyIj4xLjI8L3NwYW4+IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5SZWxh
dGlvbiB0byBmZXJ0aWxpdHk8L3NwYW4+PC9hPjwvbGk+CjxsaSBjbGFzcz0idG9j
bGV2ZWwtMiB0b2NzZWN0aW9uLTQiPjxhIGhyZWY9IiNPbnNldCI+PHNwYW4gY2xh
c3M9InRvY251bWJlciI+MS4zPC9zcGFuPiA8c3BhbiBjbGFzcz0idG9jdGV4dCI+
T25zZXQ8L3NwYW4+PC9hPjwvbGk+CjxsaSBjbGFzcz0idG9jbGV2ZWwtMiB0b2Nz
ZWN0aW9uLTUiPjxhIGhyZWY9IiNUaW1pbmciPjxzcGFuIGNsYXNzPSJ0b2NudW1i
ZXIiPjEuNDwvc3Bhbj4gPHNwYW4gY2xhc3M9InRvY3RleHQiPlRpbWluZzwvc3Bh
bj48L2E+Cjx1bD4KPGxpIGNsYXNzPSJ0b2NsZXZlbC0zIHRvY3NlY3Rpb24tNiI+
PGEgaHJlZj0iI0VmZmVjdHNfb2Zfc3RyZXNzX2FuZF9zb2NpYWxfZW52aXJvbm1l
bnQiPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjEuNC4xPC9zcGFuPiA8c3BhbiBj
bGFzcz0idG9jdGV4dCI+RWZmZWN0cyBvZiBzdHJlc3MgYW5kIHNvY2lhbCBlbnZp
cm9ubWVudDwvc3Bhbj48L2E+PC9saT4KPGxpIGNsYXNzPSJ0b2NsZXZlbC0zIHRv
Y3NlY3Rpb24tNyI+PGEgaHJlZj0iI0NoYW5nZXNfaW5fdGltZV9vZl9hdmVyYWdl
X2FnZSI+PHNwYW4gY2xhc3M9InRvY251bWJlciI+MS40LjI8L3NwYW4+IDxzcGFu
IGNsYXNzPSJ0b2N0ZXh0Ij5DaGFuZ2VzIGluIHRpbWUgb2YgYXZlcmFnZSBhZ2U8
L3NwYW4+PC9hPjwvbGk+CjwvdWw+CjwvbGk+CjwvdWw+CjwvbGk+CjxsaSBjbGFz
cz0idG9jbGV2ZWwtMSB0b2NzZWN0aW9uLTgiPjxhIGhyZWY9IiNDdWx0dXJlIj48
c3BhbiBjbGFzcz0idG9jbnVtYmVyIj4yPC9zcGFuPiA8c3BhbiBjbGFzcz0idG9j
dGV4dCI+Q3VsdHVyZTwvc3Bhbj48L2E+Cjx1bD4KPGxpIGNsYXNzPSJ0b2NsZXZl
bC0yIHRvY3NlY3Rpb24tOSI+PGEgaHJlZj0iI1JpdGVzX29mX3Bhc3NhZ2UiPjxz
cGFuIGNsYXNzPSJ0b2NudW1iZXIiPjIuMTwvc3Bhbj4gPHNwYW4gY2xhc3M9InRv
Y3RleHQiPlJpdGVzIG9mIHBhc3NhZ2U8L3NwYW4+PC9hPjwvbGk+CjwvdWw+Cjwv
bGk+CjxsaSBjbGFzcz0idG9jbGV2ZWwtMSB0b2NzZWN0aW9uLTEwIj48YSBocmVm
PSIjU2VlX2Fsc28iPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjM8L3NwYW4+IDxz
cGFuIGNsYXNzPSJ0b2N0ZXh0Ij5TZWUgYWxzbzwvc3Bhbj48L2E+PC9saT4KPGxp
IGNsYXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tMTEiPjxhIGhyZWY9IiNSZWZl
cmVuY2VzIj48c3BhbiBjbGFzcz0idG9jbnVtYmVyIj40PC9zcGFuPiA8c3BhbiBj
bGFzcz0idG9jdGV4dCI+UmVmZXJlbmNlczwvc3Bhbj48L2E+PC9saT4KPGxpIGNs
YXNzPSJ0b2NsZXZlbC0xIHRvY3NlY3Rpb24tMTIiPjxhIGhyZWY9IiNGdXJ0aGVy
X3JlYWRpbmciPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjU8L3NwYW4+IDxzcGFu
IGNsYXNzPSJ0b2N0ZXh0Ij5GdXJ0aGVyIHJlYWRpbmc8L3NwYW4+PC9hPjwvbGk+
CjxsaSBjbGFzcz0idG9jbGV2ZWwtMSB0b2NzZWN0aW9uLTEzIj48YSBocmVmPSIj
RXh0ZXJuYWxfbGlua3MiPjxzcGFuIGNsYXNzPSJ0b2NudW1iZXIiPjY8L3NwYW4+
IDxzcGFuIGNsYXNzPSJ0b2N0ZXh0Ij5FeHRlcm5hbCBsaW5rczwvc3Bhbj48L2E+
PC9saT4KPC91bD4KPC90ZD4KPC90cj4KPC90YWJsZT4KPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgovLzwhW0NEQVRBWwppZiAod2luZG93LnNob3dUb2NU
b2dnbGUpIHsgdmFyIHRvY1Nob3dUZXh0ID0gInNob3ciOyB2YXIgdG9jSGlkZVRl
eHQgPSAiaGlkZSI7IHNob3dUb2NUb2dnbGUoKTsgfSAKLy9dXT4KPC9zY3JpcHQ+
CjxoMj48c3BhbiBjbGFzcz0iZWRpdHNlY3Rpb24iPls8YSBocmVmPSIvdy9pbmRl
eC5waHA/dGl0bGU9TWVuYXJjaGUmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9u
PTEiIHRpdGxlPSJFZGl0IHNlY3Rpb246IFBoeXNpb2xvZ3kiPmVkaXQ8L2E+XTwv
c3Bhbj4gPHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iUGh5c2lvbG9neSI+
UGh5c2lvbG9neTwvc3Bhbj48L2gyPgo8aDM+PHNwYW4gY2xhc3M9ImVkaXRzZWN0
aW9uIj5bPGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPU1lbmFyY2hlJmFtcDth
Y3Rpb249ZWRpdCZhbXA7c2VjdGlvbj0yIiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBB
cyBwYXJ0IG9mIHB1YmVydHkiPmVkaXQ8L2E+XTwvc3Bhbj4gPHNwYW4gY2xhc3M9
Im13LWhlYWRsaW5lIiBpZD0iQXNfcGFydF9vZl9wdWJlcnR5Ij5BcyBwYXJ0IG9m
IHB1YmVydHk8L3NwYW4+PC9oMz4KPHA+TWVuYXJjaGUgaXMgdGhlIGN1bG1pbmF0
aW9uIG9mIGEgc2VyaWVzIG9mIDxhIGhyZWY9Ii93aWtpL1BoeXNpb2xvZ2ljYWwi
IHRpdGxlPSJQaHlzaW9sb2dpY2FsIiBjbGFzcz0ibXctcmVkaXJlY3QiPnBoeXNp
b2xvZ2ljYWw8L2E+IGFuZCBhbmF0b21pYyBwcm9jZXNzZXMgb2YgPGEgaHJlZj0i
L3dpa2kvUHViZXJ0eSIgdGl0bGU9IlB1YmVydHkiPnB1YmVydHk8L2E+OjwvcD4K
PHVsPgo8bGk+QXR0YWlubWVudCBvZiBhIHN1ZmZpY2llbnQgYm9keSBtYXNzICh0
eXBpY2FsbHkgMTclIGJvZHkgZmF0KS48c3VwIGlkPSJjaXRlX3JlZi0zIiBjbGFz
cz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTMiPjxzcGFuPls8L3Nw
YW4+NDxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjwvbGk+CjxsaT5EaXNpbmhpYml0
aW9uIG9mIHRoZSA8YSBocmVmPSIvd2lraS9HblJIIiB0aXRsZT0iR25SSCIgY2xh
c3M9Im13LXJlZGlyZWN0Ij5HblJIPC9hPiBwdWxzZSBnZW5lcmF0b3IgaW4gdGhl
IDxhIGhyZWY9Ii93aWtpL0FyY3VhdGVfbnVjbGV1cyIgdGl0bGU9IkFyY3VhdGUg
bnVjbGV1cyI+YXJjdWF0ZSBudWNsZXVzPC9hPiBvZiB0aGUgPGEgaHJlZj0iL3dp
a2kvSHlwb3RoYWxhbXVzIiB0aXRsZT0iSHlwb3RoYWxhbXVzIj5oeXBvdGhhbGFt
dXM8L2E+PC9saT4KPGxpPlNlY3JldGlvbiBvZiA8YSBocmVmPSIvd2lraS9Fc3Ry
b2dlbiIgdGl0bGU9IkVzdHJvZ2VuIj5lc3Ryb2dlbjwvYT4gYnkgdGhlIDxhIGhy
ZWY9Ii93aWtpL092YXJ5IiB0aXRsZT0iT3ZhcnkiPm92YXJpZXM8L2E+IGluIHJl
c3BvbnNlIHRvIDxhIGhyZWY9Ii93aWtpL1BpdHVpdGFyeSIgdGl0bGU9IlBpdHVp
dGFyeSIgY2xhc3M9Im13LXJlZGlyZWN0Ij5waXR1aXRhcnk8L2E+IDxhIGhyZWY9
Ii93aWtpL0hvcm1vbmUiIHRpdGxlPSJIb3Jtb25lIj5ob3Jtb25lczwvYT4uPC9s
aT4KPGxpPk92ZXIgYW4gaW50ZXJ2YWwgb2YgYWJvdXQgMiB0byAzIHllYXJzLCBl
c3Ryb2dlbiBzdGltdWxhdGVzIGdyb3d0aCBvZiB0aGUgPGEgaHJlZj0iL3dpa2kv
VXRlcnVzIiB0aXRsZT0iVXRlcnVzIj51dGVydXM8L2E+IChhcyB3ZWxsIGFzIGhl
aWdodCBncm93dGgsIDxhIGhyZWY9Ii93aWtpL0JyZWFzdCIgdGl0bGU9IkJyZWFz
dCI+YnJlYXN0PC9hPiBncm93dGgsIHdpZGVuaW5nIG9mIHRoZSA8YSBocmVmPSIv
d2lraS9QZWx2aXMiIHRpdGxlPSJQZWx2aXMiPnBlbHZpczwvYT4sIGFuZCBpbmNy
ZWFzZWQgcmVnaW9uYWwgPGEgaHJlZj0iL3dpa2kvQWRpcG9zZV90aXNzdWUiIHRp
dGxlPSJBZGlwb3NlIHRpc3N1ZSI+YWRpcG9zZSB0aXNzdWU8L2E+KS48L2xpPgo8
bGk+RXN0cm9nZW4gc3RpbXVsYXRlcyBncm93dGggYW5kIHZhc2N1bGFyaXR5IG9m
IHRoZSA8YSBocmVmPSIvd2lraS9FbmRvbWV0cml1bSIgdGl0bGU9IkVuZG9tZXRy
aXVtIj5lbmRvbWV0cml1bTwvYT4sIHRoZSBsaW5pbmcgb2YgdGhlIHV0ZXJ1cy48
L2xpPgo8bGk+Rmx1Y3R1YXRpb25zIG9mIGhvcm1vbmUgbGV2ZWxzIGNhbiByZXN1
bHQgaW4gY2hhbmdlcyBvZiBhZGVxdWFjeSBvZiBibG9vZCBzdXBwbHkgdG8gcGFy
dHMgb2YgdGhlIGVuZG9tZXRyaXVtLjwvbGk+CjxsaT5EZWF0aCBvZiBzb21lIG9m
IHRoZSBlbmRvbWV0cmlhbCB0aXNzdWUgZnJvbSB0aGVzZSBob3Jtb25lIG9yIGJs
b29kIHN1cHBseSBmbHVjdHVhdGlvbnMgbGVhZHMgdG8gPGk+ZGVjaWR1YXRpb248
L2k+LCBhIHNsb3VnaGluZyBvZiBwYXJ0IG9mIHRoZSBsaW5pbmcgd2l0aCBzb21l
IGJsb29kIGZsb3cgZnJvbSB0aGUgPGEgaHJlZj0iL3dpa2kvVmFnaW5hIiB0aXRs
ZT0iVmFnaW5hIj52YWdpbmE8L2E+LjwvbGk+CjwvdWw+CjxwPkEgc3BlY2lmaWMg
aG9ybW9uYWwgc2lnbmFsIGZvciBtZW5hcmNoZSBpcyBub3Qga25vd247IG1lbmFy
Y2hlIGFzIGEgZGlzY3JldGUgZXZlbnQgaXMgdGhvdWdodCB0byBiZSB0aGUgcmVs
YXRpdmVseSBjaGFuY2UgcmVzdWx0IG9mIHRoZSBncmFkdWFsIHRoaWNrZW5pbmcg
b2YgdGhlIGVuZG9tZXRyaXVtIGluZHVjZWQgYnkgcmlzaW5nIGJ1dCBmbHVjdHVh
dGluZyBwdWJlcnRhbCBlc3Ryb2dlbi48L3A+CjxwPlRoZSA8aT5tZW5zdHJ1dW08
L2k+LCBvciAiZmxvdywiIGNvbnNpc3RzIG9mIGEgY29tYmluYXRpb24gb2YgZnJl
c2ggYW5kIGNsb3R0ZWQgYmxvb2Qgd2l0aCBlbmRvbWV0cmlhbCB0aXNzdWUuIFRo
ZSBpbml0aWFsIGZsb3cgb2YgbWVuYXJjaGUgaXMgdXN1YWxseSBicmlnaHRlciBy
ZWQgdGhhbiBtYXR1cmUgbWVuc3RydWFsIGZsb3cuIEl0IGlzIG9mdGVuIHNjYW50
eSBpbiBhbW91bnQgYW5kIG1heSBiZSB2ZXJ5IGJyaWVmLCBldmVuIGEgc2luZ2xl
IGluc3RhbmNlIG9mICJzcG90dGluZy4iIExpa2Ugb3RoZXIgbWVuc2VzLCBtZW5h
cmNoZSBtYXkgYmUgYWNjb21wYW5pZWQgYnkgPGEgaHJlZj0iL3dpa2kvQWJkb21p
bmFsX3BhaW4iIHRpdGxlPSJBYmRvbWluYWwgcGFpbiI+YWJkb21pbmFsIGNyYW1w
aW5nPC9hPi48L3A+CjxoMz48c3BhbiBjbGFzcz0iZWRpdHNlY3Rpb24iPls8YSBo
cmVmPSIvdy9pbmRleC5waHA/dGl0bGU9TWVuYXJjaGUmYW1wO2FjdGlvbj1lZGl0
JmFtcDtzZWN0aW9uPTMiIHRpdGxlPSJFZGl0IHNlY3Rpb246IFJlbGF0aW9uIHRv
IGZlcnRpbGl0eSI+ZWRpdDwvYT5dPC9zcGFuPiA8c3BhbiBjbGFzcz0ibXctaGVh
ZGxpbmUiIGlkPSJSZWxhdGlvbl90b19mZXJ0aWxpdHkiPlJlbGF0aW9uIHRvIGZl
cnRpbGl0eTwvc3Bhbj48L2gzPgo8cD5JbiBtb3N0IGdpcmxzLCBtZW5hcmNoZSBk
b2VzIG5vdCBzaWduYWwgdGhhdCA8YSBocmVmPSIvd2lraS9PdnVsYXRpb24iIHRp
dGxlPSJPdnVsYXRpb24iPm92dWxhdGlvbjwvYT4gaGFzIG9jY3VycmVkLiBJbiBw
b3N0bWVuYXJjaGFsIGdpcmxzLCBhYm91dCA4MCUgb2YgdGhlIGN5Y2xlcyB3ZXJl
IDxhIGhyZWY9Ii93aWtpL0Fub3Z1bGF0b3J5IiB0aXRsZT0iQW5vdnVsYXRvcnki
IGNsYXNzPSJtdy1yZWRpcmVjdCI+YW5vdnVsYXRvcnk8L2E+IGluIHRoZSBmaXJz
dCB5ZWFyIGFmdGVyIG1lbmFyY2hlLCA1MCUgaW4gdGhlIHRoaXJkIGFuZCAxMCUg
aW4gdGhlIHNpeHRoIHllYXIuPHN1cCBpZD0iY2l0ZV9yZWYtQXB0ZXJfRF8xOTgw
XzEwNy5FMi44MC45MzIwXzQtMCIgY2xhc3M9InJlZmVyZW5jZSI+PGEgaHJlZj0i
I2NpdGVfbm90ZS1BcHRlcl9EXzE5ODBfMTA3LkUyLjgwLjkzMjAtNCI+PHNwYW4+
Wzwvc3Bhbj41PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+PHN1cCBpZD0iY2l0ZV9y
ZWYtQXB0ZXJfRF8xOTgwXzEwNy5FMi44MC45MzIwXzQtMSIgY2xhc3M9InJlZmVy
ZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS1BcHRlcl9EXzE5ODBfMTA3LkUyLjgw
LjkzMjAtNCI+PHNwYW4+Wzwvc3Bhbj41PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+
PC9wPgo8cD5SZWd1bGFyIG92dWxhdGlvbiBpcyB1c3VhbGx5IGluZGljYXRlZCBi
eSBwcmVkaWN0YWJsZSBhbmQgY29uc2lzdGVudCBpbnRlcnZhbHMgYmV0d2VlbiBt
ZW5zZXMsIHByZWRpY3RhYmxlIGFuZCBjb25zaXN0ZW50IGR1cmF0aW9ucyBvZiBt
ZW5zZXMsIGFuZCBwcmVkaWN0YWJsZSBhbmQgY29uc2lzdGVudCBwYXR0ZXJucyBv
ZiBmbG93IChlLmcuLCBoZWF2aW5lc3Mgb3IgY3JhbXBpbmcpLiBDb250aW51aW5n
IG92dWxhdGlvbiB0eXBpY2FsbHkgcmVxdWlyZXMgYSBib2R5IGZhdCBjb250ZW50
IG9mIGF0IGxlYXN0IDIyJS4gQW4gPGEgaHJlZj0iL3dpa2kvQW50aHJvcG9sb2d5
IiB0aXRsZT0iQW50aHJvcG9sb2d5Ij5hbnRocm9wb2xvZ2ljYWw8L2E+IHRlcm0g
Zm9yIHRoaXMgc3RhdGUgb2YgcG90ZW50aWFsIGZlcnRpbGl0eSBpcyA8YSBocmVm
PSIvd2lraS9OdWJpbGl0eSIgdGl0bGU9Ik51YmlsaXR5IiBjbGFzcz0ibXctcmVk
aXJlY3QiPm51YmlsaXR5PC9hPi48L3A+CjxwPk9uIHRoZSBvdGhlciBoYW5kLCBu
b3QgZXZlcnkgZ2lybCBmb2xsb3dzIHRoZSB0eXBpY2FsIHBhdHRlcm4sIGFuZCBz
b21lIGdpcmxzIG92dWxhdGUgYmVmb3JlIHRoZSBmaXJzdCBtZW5zdHJ1YXRpb24u
IEFsdGhvdWdoIHVubGlrZWx5LCBpdCBpcyBwb3NzaWJsZSBmb3IgYSBnaXJsIHdo
byBoYXMgZW5nYWdlZCBpbiA8YSBocmVmPSIvd2lraS9TZXh1YWxfaW50ZXJjb3Vy
c2UiIHRpdGxlPSJTZXh1YWwgaW50ZXJjb3Vyc2UiPnNleHVhbCBpbnRlcmNvdXJz
ZTwvYT4gc2hvcnRseSBiZWZvcmUgaGVyIG1lbmFyY2hlIHRvIDxhIGhyZWY9Ii93
aWtpL0NvbmNlcHRpb25fKGJpb2xvZ3kpIiB0aXRsZT0iQ29uY2VwdGlvbiAoYmlv
bG9neSkiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Y29uY2VpdmU8L2E+IGFuZCBiZWNv
bWUgPGEgaHJlZj0iL3dpa2kvUHJlZ25hbmN5IiB0aXRsZT0iUHJlZ25hbmN5Ij5w
cmVnbmFudDwvYT4sIHdoaWNoIHdvdWxkIGRlbGF5IGhlciBtZW5hcmNoZSB1bnRp
bCBhZnRlciB0aGUgYmlydGguIFRoaXMgZ29lcyBhZ2FpbnN0IHRoZSB3aWRlbHkg
aGVsZCBhc3N1bXB0aW9uIHRoYXQgYSB3b21hbiBjYW5ub3QgYmVjb21lIHByZWdu
YW50IHVudGlsIGFmdGVyIG1lbmFyY2hlLjwvcD4KPGgzPjxzcGFuIGNsYXNzPSJl
ZGl0c2VjdGlvbiI+WzxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT1NZW5hcmNo
ZSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249NCIgdGl0bGU9IkVkaXQgc2Vj
dGlvbjogT25zZXQiPmVkaXQ8L2E+XTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im13LWhl
YWRsaW5lIiBpZD0iT25zZXQiPk9uc2V0PC9zcGFuPjwvaDM+CjxwPldoZW4gbWVu
YXJjaGUgb2NjdXJzLCBpdCBjb25maXJtcyB0aGF0IHRoZSBnaXJsIGhhcyBoYWQg
YSBncmFkdWFsIDxhIGhyZWY9Ii93aWtpL0VzdHJvZ2VuIiB0aXRsZT0iRXN0cm9n
ZW4iPmVzdHJvZ2VuPC9hPi1pbmR1Y2VkIGdyb3d0aCBvZiB0aGUgPGEgaHJlZj0i
L3dpa2kvVXRlcnVzIiB0aXRsZT0iVXRlcnVzIj51dGVydXM8L2E+LCBlc3BlY2lh
bGx5IHRoZSA8YSBocmVmPSIvd2lraS9FbmRvbWV0cml1bSIgdGl0bGU9IkVuZG9t
ZXRyaXVtIj5lbmRvbWV0cml1bTwvYT4sIGFuZCB0aGF0IHRoZSAib3V0ZmxvdyB0
cmFjdCIgZnJvbSB0aGUgdXRlcnVzLCB0aHJvdWdoIHRoZSA8YSBocmVmPSIvd2lr
aS9DZXJ2aXgiIHRpdGxlPSJDZXJ2aXgiPmNlcnZpeDwvYT4gdG8gdGhlIDxhIGhy
ZWY9Ii93aWtpL1ZhZ2luYSIgdGl0bGU9IlZhZ2luYSI+dmFnaW5hPC9hPiwgaXMg
b3Blbi48L3A+CjxwPkluIHZlcnkgcmFyZSBpbnN0YW5jZXMsIG1lbmFyY2hlIG1h
eSBvY2N1ciBhdCBhbiB1bnVzdWFsbHkgZWFybHkgYWdlLCBwcmVjZWRpbmcgPGEg
aHJlZj0iL3dpa2kvVGhlbGFyY2hlIiB0aXRsZT0iVGhlbGFyY2hlIj50aGVsYXJj
aGU8L2E+IGFuZCBvdGhlciBzaWducyBvZiBwdWJlcnR5LiBUaGlzIGlzIHRlcm1l
ZCA8aT48Yj5pc29sYXRlZCBwcmVtYXR1cmUgbWVuYXJjaGU8L2I+PC9pPiwgYnV0
IG90aGVyIGNhdXNlcyBvZiBibGVlZGluZyBtdXN0IGJlIGludmVzdGlnYXRlZCBh
bmQgZXhjbHVkZWQuIEdyb3d0aCBpcyB1c3VhbGx5IG5vcm1hbC48c3VwIGlkPSJj
aXRlX3JlZi1BTU5fNS0wIiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0
ZV9ub3RlLUFNTi01Ij48c3Bhbj5bPC9zcGFuPjY8c3Bhbj5dPC9zcGFuPjwvYT48
L3N1cD4gSXNvbGF0ZWQgcHJlbWF0dXJlIG1lbmFyY2hlIGlzIHJhcmVseSB0aGUg
Zmlyc3QgbWFuaWZlc3RhdGlvbiBvZiA8YSBocmVmPSIvd2lraS9QcmVjb2Npb3Vz
X3B1YmVydHkiIHRpdGxlPSJQcmVjb2Npb3VzIHB1YmVydHkiPnByZWNvY2lvdXMg
cHViZXJ0eTwvYT4uPC9wPgo8cD5XaGVuIG1lbmFyY2hlIGhhcyBmYWlsZWQgdG8g
b2NjdXIgZm9yIG1vcmUgdGhhbiAzIHllYXJzIGFmdGVyIHRoZWxhcmNoZSwgb3Ig
YmV5b25kIDE2IHllYXJzIG9mIGFnZSwgdGhlIGRlbGF5IGlzIHJlZmVycmVkIHRv
IGFzIDxpPjxiPnByaW1hcnkgYW1lbm9ycmhlYTwvYj48L2k+LjwvcD4KPGgzPjxz
cGFuIGNsYXNzPSJlZGl0c2VjdGlvbiI+WzxhIGhyZWY9Ii93L2luZGV4LnBocD90
aXRsZT1NZW5hcmNoZSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rpb249NSIgdGl0
bGU9IkVkaXQgc2VjdGlvbjogVGltaW5nIj5lZGl0PC9hPl08L3NwYW4+IDxzcGFu
IGNsYXNzPSJtdy1oZWFkbGluZSIgaWQ9IlRpbWluZyI+VGltaW5nPC9zcGFuPjwv
aDM+CjxoND48c3BhbiBjbGFzcz0iZWRpdHNlY3Rpb24iPls8YSBocmVmPSIvdy9p
bmRleC5waHA/dGl0bGU9TWVuYXJjaGUmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0
aW9uPTYiIHRpdGxlPSJFZGl0IHNlY3Rpb246IEVmZmVjdHMgb2Ygc3RyZXNzIGFu
ZCBzb2NpYWwgZW52aXJvbm1lbnQiPmVkaXQ8L2E+XTwvc3Bhbj4gPHNwYW4gY2xh
c3M9Im13LWhlYWRsaW5lIiBpZD0iRWZmZWN0c19vZl9zdHJlc3NfYW5kX3NvY2lh
bF9lbnZpcm9ubWVudCI+RWZmZWN0cyBvZiBzdHJlc3MgYW5kIHNvY2lhbCBlbnZp
cm9ubWVudDwvc3Bhbj48L2g0Pgo8cD5Tb21lIG9mIHRoZSBsZWFzdCB1bmRlcnN0
b29kIGVudmlyb25tZW50YWwgaW5mbHVlbmNlcyBvbiB0aW1pbmcgb2YgcHViZXJ0
eSBhcmUgc29jaWFsIGFuZCBwc3ljaG9sb2dpY2FsLiBOZWFybHkgYWxsIG9mIHRo
ZSByZXNlYXJjaCBvbiB0aGVzZSBlZmZlY3RzIGhhcyBjb25jZXJuZWQgZ2lybHMs
IHBhcnRseSBiZWNhdXNlIGZlbWFsZSBwdWJlcnR5IHJlcXVpcmVzIGdyZWF0ZXIg
cGh5c2lvbG9naWNhbCByZXNvdXJjZXMgYW5kIHBhcnRseSBiZWNhdXNlIGl0IGlu
dm9sdmVzIGEgdW5pcXVlIGV2ZW50IChtZW5hcmNoZSkgdGhhdCBtYWtlcyBzdXJ2
ZXkgcmVzZWFyY2ggaW50byBmZW1hbGUgcHViZXJ0eSBtdWNoIHNpbXBsZXIgdGhh
biBtYWxlLiBJbiBtb3N0IG9mIHRoZXNlIHN0dWRpZXMgbWVuYXJjaGUgd2FzIHNw
ZWNpZmljYWxseSBleGFtaW5lZCwgYXNzdW1pbmcgaXQgdG8gYmUgYSB2YWxpZCAi
cHJveHkiIGZvciB0aGUgbW9yZSBnZW5lcmFsIHByb2Nlc3Mgb2YgcHViZXJ0eS4g
SW4gY29tcGFyaXNvbiB3aXRoIHRoZSBlZmZlY3RzIG9mIGdlbmV0aWNzLCBudXRy
aXRpb24sIGFuZCBnZW5lcmFsIGhlYWx0aCwgc29jaWFsIGluZmx1ZW5jZXMgYXJl
IHNtYWxsLCBzaGlmdGluZyB0aW1pbmcgYnkgYSBmZXcgbW9udGhzIHJhdGhlciB0
aGFuIHllYXJzLiBUaGUgbW9zdCBpbXBvcnRhbnQgcGFydCBvZiBhIGNoaWxkJ3Mg
cHN5Y2hvc29jaWFsIGVudmlyb25tZW50IGlzIHRoZSBmYW1pbHkuPC9wPgo8cD5T
b21lIG9mIHRoZSBhc3BlY3RzIG9mIGZhbWlseSBzdHJ1Y3R1cmUgYW5kIGZ1bmN0
aW9uIHJlcG9ydGVkIHRvIGJlIGluZGVwZW5kZW50bHkgYXNzb2NpYXRlZCB3aXRo
IGVhcmxpZXIgbWVuYXJjaGU6PC9wPgo8dWw+CjxsaT5UaGUgaW5jcmVhc2VkIGlu
Y2lkZW5jZSBvZiA8YSBocmVmPSIvd2lraS9DaGlsZGhvb2Rfb2Jlc2l0eSIgdGl0
bGU9IkNoaWxkaG9vZCBvYmVzaXR5Ij5jaGlsZGhvb2Qgb2Jlc2l0eTwvYT4gKGJv
dGggZXN0cm9nZW4gYW5kIHByb2dlc3Rlcm9uZSBtb2xlY3VsZXMgYXJlIGRlcml2
ZWQgZnJvbSBjaG9sZXN0ZXJvbCkuPC9saT4KPGxpPkFic2VuY2Ugb2YgZmF0aGVy
IGZyb20gdGhlIGhvbWUgZnJvbSBlYXJseSBjaGlsZGhvb2Q8c3VwIGlkPSJjaXRl
X3JlZi02IiBjbGFzcz0icmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLTYi
PjxzcGFuPls8L3NwYW4+NzxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPjwvbGk+Cjxs
aT5IaWdoLWNvbmZsaWN0IGZhbWlseSByZWxhdGlvbnNoaXBzezxzdXAgaWQ9ImNp
dGVfcmVmLTciIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUt
NyI+PHNwYW4+Wzwvc3Bhbj44PHNwYW4+XTwvc3Bhbj48L2E+PC9zdXA+IH08L2xp
Pgo8L3VsPgo8cD5Tb21lIG9mIHRoZSBhc3BlY3RzIG9mIGZhbWlseSBzdHJ1Y3R1
cmUgYW5kIGZ1bmN0aW9uIHJlcG9ydGVkIHRvIGJlIGluZGVwZW5kZW50bHkgYXNz
b2NpYXRlZCB3aXRoIGxhdGVyIG1lbmFyY2hlOjwvcD4KPHVsPgo8bGk+TGFyZ2Vy
IGZhbWlseSBzaXplPHN1cCBjbGFzcz0iVGVtcGxhdGUtRmFjdCIgdGl0bGU9IlRo
aXMgY2xhaW0gbmVlZHMgcmVmZXJlbmNlcyB0byByZWxpYWJsZSBzb3VyY2VzIGZy
b20gTWF5IDIwMDgiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpub3dyYXA7Ij5bPGk+PGEg
aHJlZj0iL3dpa2kvV2lraXBlZGlhOkNpdGF0aW9uX25lZWRlZCIgdGl0bGU9Ildp
a2lwZWRpYTpDaXRhdGlvbiBuZWVkZWQiPmNpdGF0aW9uIG5lZWRlZDwvYT48L2k+
XTwvc3VwPjwvbGk+CjxsaT5XYXJtZXIsIGNsb3NlciBvciBtb3JlIHBvc2l0aXZl
IHJlbGF0aW9uc2hpcCB3aXRoIGJpb2xvZ2ljYWwgZmF0aGVyPHN1cCBjbGFzcz0i
VGVtcGxhdGUtRmFjdCIgdGl0bGU9IlRoaXMgY2xhaW0gbmVlZHMgcmVmZXJlbmNl
cyB0byByZWxpYWJsZSBzb3VyY2VzIGZyb20gTWF5IDIwMDgiIHN0eWxlPSJ3aGl0
ZS1zcGFjZTpub3dyYXA7Ij5bPGk+PGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOkNp
dGF0aW9uX25lZWRlZCIgdGl0bGU9Ildpa2lwZWRpYTpDaXRhdGlvbiBuZWVkZWQi
PmNpdGF0aW9uIG5lZWRlZDwvYT48L2k+XTwvc3VwPjxzdXAgY2xhc3M9Im5vcHJp
bnQgSW5saW5lLVRlbXBsYXRlIiB0aXRsZT0iVGhlIG1hdGVyaWFsIGluIHRoZSB2
aWNpbml0eSBvZiB0aGlzIHRhZyBtYXkgbm90IGJlIGZhY3R1YWwgb3IgYWNjdXJh
dGUgZnJvbSBOb3ZlbWJlciAyMDA4IiBzdHlsZT0id2hpdGUtc3BhY2U6bm93cmFw
OyI+WzxpPjxhIGhyZWY9Ii93aWtpL1dpa2lwZWRpYTpEaXNwdXRlZF9zdGF0ZW1l
bnQiIHRpdGxlPSJXaWtpcGVkaWE6RGlzcHV0ZWQgc3RhdGVtZW50Ij5kdWJpb3Vz
PC9hPiA8c3BhbiBjbGFzcz0ibWV0YWRhdGEiPuKAkyA8YSBocmVmPSIvd2lraS9U
YWxrOk1lbmFyY2hlI0R1YmlvdXMiIHRpdGxlPSJUYWxrOk1lbmFyY2hlIj5kaXNj
dXNzPC9hPjwvc3Bhbj48L2k+XTwvc3VwPjwvbGk+CjxsaT5XYXJtZXIsIG1vcmUg
c3VwcG9ydGl2ZSwgbG93LXN0cmVzcyBmYW1pbHkgZW52aXJvbm1lbnQ8c3VwIGNs
YXNzPSJUZW1wbGF0ZS1GYWN0IiB0aXRsZT0iVGhpcyBjbGFpbSBuZWVkcyByZWZl
cmVuY2VzIHRvIHJlbGlhYmxlIHNvdXJjZXMgZnJvbSBNYXkgMjAwOCIgc3R5bGU9
IndoaXRlLXNwYWNlOm5vd3JhcDsiPls8aT48YSBocmVmPSIvd2lraS9XaWtpcGVk
aWE6Q2l0YXRpb25fbmVlZGVkIiB0aXRsZT0iV2lraXBlZGlhOkNpdGF0aW9uIG5l
ZWRlZCI+Y2l0YXRpb24gbmVlZGVkPC9hPjwvaT5dPC9zdXA+PC9saT4KPGxpPkhh
dmluZyBhIG51bWJlciBvZiBvbGRlciBzaXN0ZXJzPHN1cCBjbGFzcz0iVGVtcGxh
dGUtRmFjdCIgdGl0bGU9IlRoaXMgY2xhaW0gbmVlZHMgcmVmZXJlbmNlcyB0byBy
ZWxpYWJsZSBzb3VyY2VzIGZyb20gTWF5IDIwMDgiIHN0eWxlPSJ3aGl0ZS1zcGFj
ZTpub3dyYXA7Ij5bPGk+PGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOkNpdGF0aW9u
X25lZWRlZCIgdGl0bGU9Ildpa2lwZWRpYTpDaXRhdGlvbiBuZWVkZWQiPmNpdGF0
aW9uIG5lZWRlZDwvYT48L2k+XTwvc3VwPjwvbGk+CjwvdWw+CjxwPk90aGVyIHJl
c2VhcmNoIGhhcyBmb2N1c2VkIG9uIHRoZSBlZmZlY3Qgb2YgY2hpbGRob29kIDxh
IGhyZWY9Ii93aWtpL1N0cmVzc18obWVkaWNpbmUpIiB0aXRsZT0iU3RyZXNzICht
ZWRpY2luZSkiIGNsYXNzPSJtdy1yZWRpcmVjdCI+c3RyZXNzPC9hPiBvbiB0aW1p
bmcgb2YgcHViZXJ0eSwgZXNwZWNpYWxseSBmZW1hbGUuIFN0cmVzcyBpcyBhIHZh
Z3VlIHRlcm0gYW5kIHN0dWRpZXMgaGF2ZSBleGFtaW5lZCBjb25kaXRpb25zIHJh
bmdpbmcgZnJvbSBmYW1pbHkgdGVuc2lvbnMgb3IgY29uZmxpY3QgdG8gd2FydGlt
ZSByZWZ1Z2VlIHN0YXR1cyB3aXRoIHRocmVhdCB0byBwaHlzaWNhbCBzdXJ2aXZh
bC4gVGhlIG1vcmUgZGlyZSBzb2NpYWwgY29uZGl0aW9ucyBoYXZlIGJlZW4gZm91
bmQgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGRlbGF5IG9mIG1hdHVyYXRpb24sIGFu
IGVmZmVjdCB0aGF0IG1heSBiZSBjb21wb3VuZGVkIGJ5IGRpZXRhcnkgaW5hZGVx
dWFjeS4gVGhlcmUgaXMgbW9yZSB1bmNlcnRhaW50eSBhbmQgbWl4ZWQgZXZpZGVu
Y2UgYXMgdG8gd2hldGhlciBtaWxkZXIgZGVncmVlcyBvZiBzdHJlc3Mgb3IgZWFy
bHktbGlmZSB1bmRlcm51dHJpdGlvbiBjYW4gYWNjZWxlcmF0ZSBwdWJlcnR5IGlu
IGdpcmxzIGFzIHdvdWxkIGJlIHByZWRpY3RlZCBieSA8YSBocmVmPSIvd2lraS9M
aWZlX2hpc3RvcnlfdGhlb3J5IiB0aXRsZT0iTGlmZSBoaXN0b3J5IHRoZW9yeSI+
bGlmZSBoaXN0b3J5IHRoZW9yeTwvYT4gYW5kIGRlbW9uc3RyYXRlZCBpbiBtYW55
IG90aGVyIG1hbW1hbHMuPC9wPgo8cD5UaGUgdW5kZXJzdGFuZGluZyBvZiB0aGVz
ZSBlbnZpcm9ubWVudGFsIGVmZmVjdHMgaXMgaW5jb21wbGV0ZSBhbmQgdGhlIGZv
bGxvd2luZyBvYnNlcnZhdGlvbnMgYW5kIGNhdXRpb25zIGFyZSByZWxldmFudDo8
L3A+Cjx1bD4KPGxpPk1lY2hhbmlzbXMgb2YgdGhlc2Ugc29jaWFsIGVmZmVjdHMg
YXJlIHVua25vd24sIHRob3VnaCBhIHZhcmlldHkgb2YgcGh5c2lvbG9naWNhbCBw
cm9jZXNzZXMsIGluY2x1ZGluZyA8YSBocmVmPSIvd2lraS9QaGVyb21vbmUiIHRp
dGxlPSJQaGVyb21vbmUiPnBoZXJvbW9uZXM8L2E+LCBoYXZlIGJlZW4gc3VnZ2Vz
dGVkIGJhc2VkIG9uIGFuaW1hbCByZXNlYXJjaC48L2xpPgo8bGk+TW9zdCBvZiB0
aGVzZSAiZWZmZWN0cyIgYXJlIHN0YXRpc3RpY2FsIGFzc29jaWF0aW9ucyByZXZl
YWxlZCBieSA8YSBocmVmPSIvd2lraS9FcGlkZW1pb2xvZ3kiIHRpdGxlPSJFcGlk
ZW1pb2xvZ3kiPmVwaWRlbWlvbG9naWM8L2E+IHN1cnZleXMuIFN0YXRpc3RpY2Fs
IGFzc29jaWF0aW9ucyBhcmUgbm90IG5lY2Vzc2FyaWx5IGNhdXNhbCwgYW5kIGEg
dmFyaWV0eSBvZiBzZWNvbmRhcnkgdmFyaWFibGVzIGFuZCBhbHRlcm5hdGl2ZSBl
eHBsYW5hdGlvbnMgY2FuIGJlIHBvc3NpYmx5IGludGVydmVuaW5nLiBFZmZlY3Rz
IG9mIHN1Y2ggc21hbGwgc2l6ZSBjYW4gbmV2ZXIgYmUgY29uZmlybWVkIG9yIHJl
ZnV0ZWQgZm9yIGFueSBpbmRpdmlkdWFsIGNoaWxkLjwvbGk+CjxsaT5EZXNwaXRl
IHRoZSBzbWFsbCBtYWduaXR1ZGUgb2YgZWZmZWN0LCBpbnRlcnByZXRhdGlvbnMg
b2YgdGhlIGRhdGEgYXJlIHBvbGl0aWNhbGx5IGNvbnRyb3ZlcnNpYWwgYmVjYXVz
ZSBvZiB0aGUgZWFzZSB3aXRoIHdoaWNoIHRoaXMgdHlwZSBvZiByZXNlYXJjaCBj
YW4gYmUgdXNlZCBmb3IgcG9saXRpY2FsIGFkdm9jYWN5LiBBY2N1c2F0aW9ucyBv
ZiBiaWFzIGJhc2VkIG9uIHBvbGl0aWNhbCBhZ2VuZGEgc29tZXRpbWVzIGFjY29t
cGFueSBzY2llbnRpZmljIGNyaXRpY2lzbS48L2xpPgo8L3VsPgo8aDQ+PHNwYW4g
Y2xhc3M9ImVkaXRzZWN0aW9uIj5bPGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxl
PU1lbmFyY2hlJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj03IiB0aXRsZT0i
RWRpdCBzZWN0aW9uOiBDaGFuZ2VzIGluIHRpbWUgb2YgYXZlcmFnZSBhZ2UiPmVk
aXQ8L2E+XTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iQ2hh
bmdlc19pbl90aW1lX29mX2F2ZXJhZ2VfYWdlIj5DaGFuZ2VzIGluIHRpbWUgb2Yg
YXZlcmFnZSBhZ2U8L3NwYW4+PC9oND4KPHA+VGhlcmUgd2VyZSBmZXcgc3lzdGVt
YXRpYyBzdHVkaWVzIG9mIHRpbWluZyBvZiBtZW5hcmNoZSBiZWZvcmUgdGhlIGxh
dHRlciBoYWxmIG9mIHRoZSAyMHRoIGNlbnR1cnkuIE1vc3Qgb2xkZXIgZXN0aW1h
dGVzIG9mIGF2ZXJhZ2UgdGltaW5nIG9mIG1lbmFyY2hlIHdlcmUgYmFzZWQgb24g
b2JzZXJ2YXRpb24gb2YgYSBzbWFsbCBob21vZ2VuZW91cyBwb3B1bGF0aW9uIG5v
dCBuZWNlc3NhcmlseSByZXByZXNlbnRhdGl2ZSBvZiB0aGUgbGFyZ2VyIHBvcHVs
YXRpb24sIG9yIGJhc2VkIG9uIHJlY2FsbCBieSBhZHVsdCB3b21lbiwgd2hpY2gg
aXMgYWxzbyBzdXNjZXB0aWJsZSB0byB2YXJpb3VzIGZvcm1zIG9mIGVycm9yLiBN
b3N0IHNvdXJjZXMgYWdyZWUgdGhhdCB0aGUgYXZlcmFnZSBhZ2Ugb2YgbWVuYXJj
aGUgaW4gZ2lybHMgaW4gbW9kZXJuIHNvY2lldGllcyBoYXMgZGVjbGluZWQsIHRo
b3VnaCB0aGUgcmVhc29ucyBhbmQgdGhlIGRlZ3JlZSByZW1haW4gc3ViamVjdHMg
b2YgY29udHJvdmVyc3kuIEEgZGVjbGluZSBpbiB0aGUgYXZlcmFnZSBhZ2Ugb2Yg
bWVuYXJjaGUgZnJvbSAxNyB0byAxMyBpbiBFdXJvcGUgZnJvbSAxODUwIHRvIDE5
NjAgaXMgd2VsbCBkb2N1bWVudGVkPHN1cCBpZD0iY2l0ZV9yZWYtUGxvd2RlblJl
cG9ydF84LTAiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUt
UGxvd2RlblJlcG9ydC04Ij48c3Bhbj5bPC9zcGFuPjk8c3Bhbj5dPC9zcGFuPjwv
YT48L3N1cD4sIGJ1dCBhIGxhcmdlIE5vcnRoIEFtZXJpY2FuIHN1cnZleSByZXBv
cnRlZCBvbmx5IGEgMi0zIG1vbnRoIGRlY2xpbmUgZnJvbSB0aGUgbWlkLTE5NzBz
IHRvIHRoZSBtaWQtMTk5MHMuPHN1cCBpZD0iY2l0ZV9yZWYtQW5kZXJzb25FdEFs
MjAwM185LTAiIGNsYXNzPSJyZWZlcmVuY2UiPjxhIGhyZWY9IiNjaXRlX25vdGUt
QW5kZXJzb25FdEFsMjAwMy05Ij48c3Bhbj5bPC9zcGFuPjEwPHNwYW4+XTwvc3Bh
bj48L2E+PC9zdXA+IFRoaXMgaXMgY29tbW9ubHkgYXR0cmlidXRlZCB0byBsYXJn
ZXIgYm9keSBzaXplIGFuZCBlYXJsaWVyIGF2ZXJhZ2UgYXR0YWlubWVudCBvZiBz
dWZmaWNpZW50IGJvZHkgZmF0LCBidXQgb3RoZXIgZmFjdG9ycyBzdWNoIGFzIGVu
dmlyb25tZW50YWwgZXhwb3N1cmUgdG8gY2hlbWljYWxzIHRoYXQgbWltaWMgZXN0
cm9nZW4gb3IgdGhlIHVyYmFuaXphdGlvbiBhbmQgc2V4dWFsaXphdGlvbiBvZiBX
ZXN0ZXJuIHNvY2lldHkgaGF2ZSBhbHNvIGJlZW4gY29uc2lkZXJlZCBhcyBjb250
cmlidXRpbmcgZmFjdG9ycy48c3VwIGNsYXNzPSJUZW1wbGF0ZS1GYWN0IiB0aXRs
ZT0iVGhpcyBjbGFpbSBuZWVkcyByZWZlcmVuY2VzIHRvIHJlbGlhYmxlIHNvdXJj
ZXMgZnJvbSBKdWx5IDIwMTAiIHN0eWxlPSJ3aGl0ZS1zcGFjZTpub3dyYXA7Ij5b
PGk+PGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOkNpdGF0aW9uX25lZWRlZCIgdGl0
bGU9Ildpa2lwZWRpYTpDaXRhdGlvbiBuZWVkZWQiPmNpdGF0aW9uIG5lZWRlZDwv
YT48L2k+XTwvc3VwPjwvcD4KPHA+TGVzcyB0aGFuIDEwJSBvZiBVLlMuIGdpcmxz
IHN0YXJ0IHRvIG1lbnN0cnVhdGUgYmVmb3JlIDExIHllYXJzIG9mIGFnZSwgYW5k
IDkwJSBvZiBhbGwgVVMgZ2lybHMgYXJlIG1lbnN0cnVhdGluZyBieSAxMy43NSB5
ZWFycyBvZiBhZ2UsIHdpdGggYSBtZWRpYW4gYWdlIG9mIDEyLjQzIHllYXJzLiBU
aGlzIGFnZSBhdCBtZW5hcmNoZSBpcyBub3QgbXVjaCBkaWZmZXJlbnQgKDAuMzQg
eWVhcnMgZWFybGllcikgdGhhbiB0aGF0IHJlcG9ydGVkIGZvciBVLlMuIGdpcmxz
IGluIDE5NzMuIEFnZSBhdCBtZW5hcmNoZSBmb3Igbm9uLUhpc3BhbmljIGJsYWNr
IGdpcmxzIHdhcyBzaWduaWZpY2FudGx5IGVhcmxpZXIgdGhhbiB0aGF0IG9mIHdo
aXRlIGdpcmxzIGF0IDEwJSwgMjUlLCBhbmQgNTAlIG9mIHRob3NlIHdobyBoYWQg
YXR0YWluZWQgbWVuYXJjaGUsIHdoZXJlYXMgTWV4aWNhbiBBbWVyaWNhbiBnaXJs
cyB3ZXJlIG9ubHkgc2xpZ2h0bHkgZWFybGllciB0aGFuIHRoZSB3aGl0ZSBnaXJs
cyBhdCAyNSUuPHN1cCBpZD0iY2l0ZV9yZWYtQ2h1bWxlYV8xMC0wIiBjbGFzcz0i
cmVmZXJlbmNlIj48YSBocmVmPSIjY2l0ZV9ub3RlLUNodW1sZWEtMTAiPjxzcGFu
Pls8L3NwYW4+MTE8c3Bhbj5dPC9zcGFuPjwvYT48L3N1cD48L3A+CjxoMj48c3Bh
biBjbGFzcz0iZWRpdHNlY3Rpb24iPls8YSBocmVmPSIvdy9pbmRleC5waHA/dGl0
bGU9TWVuYXJjaGUmYW1wO2FjdGlvbj1lZGl0JmFtcDtzZWN0aW9uPTgiIHRpdGxl
PSJFZGl0IHNlY3Rpb246IEN1bHR1cmUiPmVkaXQ8L2E+XTwvc3Bhbj4gPHNwYW4g
Y2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iQ3VsdHVyZSI+Q3VsdHVyZTwvc3Bhbj48
L2gyPgo8cD5NZW5hcmNoZSBpcyBjZWxlYnJhdGVkIGluIG1hbnkgY3VsdHVyZXMg
YXJvdW5kIHRoZSB3b3JsZCBhcyBhIDxhIGhyZWY9Ii93aWtpL1JpdGVfb2ZfcGFz
c2FnZSIgdGl0bGU9IlJpdGUgb2YgcGFzc2FnZSI+cml0ZSBvZiBwYXNzYWdlPC9h
PiwgYSB0aW1lIHRvIHJlY29nbml6ZSB0aGF0IGEgZ2lybCBpcyBtb3ZpbmcgaW50
byB3b21hbmhvb2QuPC9wPgo8aDM+PHNwYW4gY2xhc3M9ImVkaXRzZWN0aW9uIj5b
PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPU1lbmFyY2hlJmFtcDthY3Rpb249
ZWRpdCZhbXA7c2VjdGlvbj05IiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBSaXRlcyBv
ZiBwYXNzYWdlIj5lZGl0PC9hPl08L3NwYW4+IDxzcGFuIGNsYXNzPSJtdy1oZWFk
bGluZSIgaWQ9IlJpdGVzX29mX3Bhc3NhZ2UiPlJpdGVzIG9mIHBhc3NhZ2U8L3Nw
YW4+PC9oMz4KPHA+U29tZSBjdWx0dXJlcyBoYXZlIGluIHBhc3QgY2VudHVyaWVz
IGhhdmUgaGFkIHJpdGVzIG9mIHBhc3NhZ2UgZm9yIGEgZ2lybCBleHBlcmllbmNp
bmcgbWVuYXJjaGUgPHN1cCBpZD0iY2l0ZV9yZWYtMTEiIGNsYXNzPSJyZWZlcmVu
Y2UiPjxhIGhyZWY9IiNjaXRlX25vdGUtMTEiPjxzcGFuPls8L3NwYW4+MTI8c3Bh
bj5dPC9zcGFuPjwvYT48L3N1cD4uPC9wPgo8cD48Yj5BZnJpY2E8L2I+PC9wPgo8
dWw+CjxsaT5JbiB0aGUgVGl2IGV0aG5pYyBncm91cCBpbiA8YSBocmVmPSIvd2lr
aS9OaWdlcmlhIiB0aXRsZT0iTmlnZXJpYSI+TmlnZXJpYTwvYT4sIGZvdXIgbGlu
ZXMgd2VyZSBjdXQgaW4gdGhlIGdpcmwncyBhYmRvbWVuLCB0aGUgcHJhY3RpY2Ug
b2Ygd2hpY2ggd2FzIHRob3VnaHQgdG8gbWFrZSBoZXIgYSB3b21hbiBhbmQgbW9y
ZSBmZXJ0aWxlIDxzdXAgaWQ9ImNpdGVfcmVmLTEyIiBjbGFzcz0icmVmZXJlbmNl
Ij48YSBocmVmPSIjY2l0ZV9ub3RlLTEyIj48c3Bhbj5bPC9zcGFuPjEzPHNwYW4+
XTwvc3Bhbj48L2E+PC9zdXA+LjwvbGk+CjwvdWw+CjxwPjxiPkFzaWEsIEF1c3Ry
YWxpYSwgYW5kIFBhY2lmaWMgSXNsYW5kczwvYj48L3A+Cjx1bD4KPGxpPkluIDxh
IGhyZWY9Ii93aWtpL0F1c3RyYWxpYSIgdGl0bGU9IkF1c3RyYWxpYSI+QXVzdHJh
bGlhPC9hPiwgdGhlIDxhIGhyZWY9Ii93aWtpL0luZGlnZW5vdXNfQXVzdHJhbGlh
bnMiIHRpdGxlPSJJbmRpZ2Vub3VzIEF1c3RyYWxpYW5zIj5BYm9yaWdpbmVzPC9h
PiB0cmVhdCBhIGdpcmwgdG8gImxvdmUgbWFnaWMuIiBUaGUgd29tZW4gdGVhY2gg
aGVyIG9mIHRoZSBmZW1hbGUgcG93ZXJzIGFuZCB0aGUgcGh5c2ljYWwgY2hhbmdl
cyBtYXJraW5nIHdvbWFuaG9vZCA8c3VwIGlkPSJjaXRlX3JlZi0xMyIgY2xhc3M9
InJlZmVyZW5jZSI+PGEgaHJlZj0iI2NpdGVfbm90ZS0xMyI+PHNwYW4+Wzwvc3Bh
bj4xNDxzcGFuPl08L3NwYW4+PC9hPjwvc3VwPi48L2xpPgo8L3VsPgo8dWw+Cjxs
aT5XaGVuIGEgPGEgaHJlZj0iL3dpa2kvSmFwYW4iIHRpdGxlPSJKYXBhbiI+SmFw
YW5lc2U8L2E+IGdpcmwgaGFzIGhlciBmaXJzdCBwZXJpb2QsIHRoZSBmYW1pbHkg
Y2VsZWJyYXRlcyBieSBlYXRpbmcgcmVkLWNvbG9yZWQgcmljZSBhbmQgYmVhbnMg
KDxhIGhyZWY9Ii93aWtpL1Nla2loYW4iIHRpdGxlPSJTZWtpaGFuIj5zZWtpaGFu
PC9hPikuPC9saT4KPC91bD4KPHVsPgo8bGk+VGhlIFVsaXRoaSAob28tbGl0aC1l
ZSkgdHJpYmUgb2YgPGEgaHJlZj0iL3dpa2kvTWljcm9uZXNpYSIgdGl0bGU9Ik1p
Y3JvbmVzaWEiPk1pY3JvbmVzaWE8L2E+IGNhbGwgYSBnaXJsJ3MgbWVuYXJjaGUg
PGk+a3VmYXI8L2k+IChrb28tZmFhcik7IFNoZSBnb2VzIHRvIGEgbWVuc3RydWFs
IGhvdXNlLCB3aGVyZSB0aGUgd29tZW4gYmF0aGUgaGVyIGFuZCByZWNpdGUgc3Bl
bGxzLiBUaGUgZ2lybCB0aGVuIHJldHVybnMgdG8gdGhlIG1lbnN0cnVhbCBob3Vz
ZSB3aGVuIGhlciBuZXh0IHBlcmlvZCBjb21lcy48L2xpPgo8L3VsPgo8dWw+Cjxs
aT48YSBocmVmPSIvd2lraS9TcmlfTGFua2EiIHRpdGxlPSJTcmkgTGFua2EiPlNy
aSBMYW5rYTwvYT4gbm90ZXMgdGhlIHRpbWUgYW5kIGRheS4gQW4gYXN0cm9sb2dl
ciBpcyBjb250YWN0ZWQsIHdobyBzdHVkaWVzIHRoZSBzdGFyJ3MgYWxpZ25tZW50
IGF0IHRoZSBub3RlZCBtb21lbnQsIGluIG9yZGVyIHRvIHByZWRpY3QgdGhlIGdp
cmwncyBmdXR1cmUuIEhlciBob3VzZSBpcyBwcmVwYXJlZCBmb3IgYSByaXR1YWwg
YmF0aGluZywgd2hlcmUgdGhlIGdpcmwgaXMgc2NydWJiZWQgYWxsIG92ZXIgaGVy
IGJvZHkgYnkgdGhlIHdvbWVuIG9mIHRoZSBmYW1pbHk7IHNoZSB0aGVuIGlzIGRy
ZXNzZWQgaW4gd2hpdGUuIFByaW50ZWQgaW52aXRhdGlvbnMgZm9yIGEgcGFydHkg
YXJlIHNlbnQgb3V0LCBkdXJpbmcgd2hpY2ggdGhlIGdpcmwgcmVjZWl2ZXMgbW9u
ZXkgYW5kIHNwZWNpYWwgZ2lmdHMuPC9saT4KPC91bD4KPHVsPgo8bGk+SW4gc29t
ZSByZW1vdGUgcGFydHMgb2YgPGEgaHJlZj0iL3dpa2kvSW5kaWEiIHRpdGxlPSJJ
bmRpYSI+SW5kaWE8L2E+LCBhIHRyaWJhbCBnaXJsIHdobyBoYXMgcmVhY2hlZCBw
dWJlcnR5IGlzIGdpdmVuIGEgY2VyZW1vbmlhbCBiYXRoLCBkZWNrZWQgd2l0aCBv
cm5hdGUgamV3ZWxzIGFuZCBnYXJtZW50cywgYW5kIHRoZSBnaXJsJ3Mga2l0aCBh
bmQga2luIGFyZSBhbGwgaW52aXRlZCBmb3IgYSBjZXJlbW9ueSwgaW4gd2hpY2gg
aXQgaXMgYW5ub3VuY2VkIHRoYXQgdGhlIGdpcmwgaGFzIGNvbWUgb2YgYWdlIGFu
ZCB0aGF0IGNlbGVicmF0aW9ucyBmb2xsb3cuPC9saT4KPC91bD4KPHVsPgo8bGk+
PGEgaHJlZj0iL3dpa2kvSW5kaWEiIHRpdGxlPSJJbmRpYSI+SW5kaWE8L2E+IFdo
ZW4gYSBnaXJsIGluIEluZGlhIGhhcyBtZW5hcmNoZSwgaGVyIG1vdGhlciBhbmQg
YXVudHMgaW52aXRlIGNsb3NlIGZyaWVuZHMgYW5kIHJlbGF0aXZlcyBmb3IgYSBw
YXJ0eSB0byBjZWxlYnJhdGUgdGhlIG5ldyB5b3VuZyB3b21lbi4gSW4gc29tZSBj
b21tdW5pdGllcywgeW91bmcgd29tZW4gYXJlIGdpdmVuIGEgc3BlY2lhbCBtZW5h
cmNoZSBjZXJlbW9ueSBjYWxsZWQgUnV0aHUgU2FkYW5ndS48L2xpPgo8L3VsPgo8
dWw+CjxsaT5JbiBOZXBhbCwgPGEgaHJlZj0iL3dpa2kvS3VtYXJpIiB0aXRsZT0i
S3VtYXJpIiBjbGFzcz0ibXctcmVkaXJlY3QiPkt1bWFyaXM8L2E+IGFyZSB5b3Vu
ZyBnaXJscyB3b3JzaGlwZWQgYXMgZ29kZGVzc2VzIGJ5IEhpbmR1cyBhbmQgc29t
ZSBCdWRkaGlzdHMsIGF0IHRoZSBvbnNldCBvZiBtZW5hcmNoZSBpdCBpcyBiZWxp
ZXZlZCB0aGUgZ29kZGVzcyBzcGlyaXQgdmFjYXRlcyBoZXIgYm9keSBhbmQgdGhl
eSBhcmUgcmV0dXJuZWQgdG8gb3JkaW5hcnkgbGlmZSBhZnRlciBhIHNlcmllcyBv
ZiByaXR1YWxzLjwvbGk+CjwvdWw+CjxwPjxiPk5vcnRoIEFtZXJpY2E8L2I+PC9w
Pgo8dWw+CjxsaT5UaGUgPGEgaHJlZj0iL3dpa2kvTmF2YWpvX3Blb3BsZSIgdGl0
bGU9Ik5hdmFqbyBwZW9wbGUiPk5hdmFqbzwvYT4gSW5kaWFucyBoYXZlIGEgY2Vs
ZWJyYXRpb24gY2FsbGVkIGtpbmFhbGRhIChraW5uLWFsbC1kdWgpLiBHaXJscyBy
dW4gZm9vdHJhY2VzIHRvIHNob3cgc3RyZW5ndGguIEEgY29ybm1lYWwgcHVkZGlu
ZyBpcyBtYWRlIGZvciB0aGUgdHJpYmUgdG8gdGFzdGUuIFRoZSBnaXJscyB3aG8g
ZXhwZXJpZW5jZSBtZW5hcmNoZSB3ZWFyIHNwZWNpYWwgY2xvdGhlcyBhbmQgc3R5
bGUgdGhlaXIgaGFpciBsaWtlIHRoZSBOYXZham8gZ29kZGVzcyAiQ2hhbmdpbmcg
V29tYW4uIjwvbGk+CjwvdWw+Cjx1bD4KPGxpPlRoZSA8YSBocmVmPSIvd2lraS9O
dXUtY2hhaC1udWx0aCIgdGl0bGU9Ik51dS1jaGFoLW51bHRoIj5Ob290a2EgSW5k
aWFuczwvYT4gYmVsaWV2ZSBtZW5hcmNoZSB0byBiZSBhIHRpbWUgZm9yIGEgcGh5
c2ljYWwgc3RyZW5ndGggdGVzdDsgdGhlIGdpcmwgaXMgdGFrZW4gb3V0IHRvIHNl
YSBhbmQgbGVmdCBhbG9uZS4gU2hlIGlzIHRvIHN3aW0gYmFjayBhbmQgaXMgY2hl
ZXJlZCB1cG9uIHJldHVybmluZyB0byB0aGUgc2hvcmUgb2YgdGhlIHZpbGxhZ2Uu
PC9saT4KPC91bD4KPHVsPgo8bGk+VGhlIDxhIGhyZWY9Ii93aWtpL01lc2NhbGVy
byIgdGl0bGU9Ik1lc2NhbGVybyI+TWVzY2FsZXJvPC9hPiBBcGFjaGVzIGNvbnNp
ZGVyIHRoZWlyIG1lbmFyY2hlIGNlbGVicmF0aW9uIHRoZSBtb3N0IGltcG9ydGFu
dC4gRWFjaCB5ZWFyLCBhbiA4LWRheS1sb25nIGNlcmVtb255IGlzIGNlbGVicmF0
ZWQgaW4gaG9ub3Igb2YgZWFjaCBnaXJsIHdobyBiZWdhbiBoZXIgcGVyaW9kIGVh
cmxpZXIgdGhhdCB5ZWFyLiBUaGUgZmlyc3QgZm91ciBkYXlzIGluY2x1ZGUgZmVh
c3RpbmcgYW5kIGRhbmNpbmcuIEJveSBzaW5nZXJzIHJlY291bnQgdGhlIGhpc3Rv
cnkgb2YgdGhlIHRyaWJlIGVhY2ggZXZlbmluZy4gVGhlIG90aGVyIGZvdXIgZGF5
cyBhcmUgYSBwcml2YXRlIGNlbGVicmF0aW9uIGR1cmluZyB3aGljaCBnaXJscyBo
YXZlIGEgcHJpdmF0ZSBjZXJlbW9ueSwgcmVmbGVjdGluZyBvbiB0aGVpciBwYXNz
aW5nIGludG8gd29tYW5ob29kLjwvbGk+CjwvdWw+Cjx1bD4KPGxpPjxhIGhyZWY9
Ii93aWtpL05vcnRoX0FtZXJpY2EiIHRpdGxlPSJOb3J0aCBBbWVyaWNhIj5Ob3J0
aCBBbWVyaWNhPC9hPiBJbiB0aGUgcGFzdCwgZ2lybHMgd2hvIHJlYWNoZWQgbWVu
YXJjaGUgaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIGhhZCBubyBjZWxlYnJhdGlvbiBh
bmQgbm8gc3BlY2lhbCBnaWZ0cy4gSXQgd2FzIGNvbnNpZGVyZWQgYSAiY3Vyc2Ui
IGZvciBhIGdpcmxzIG1lbnN0cnVhbCBjeWNsZSB0byBiZWdpbi4gTW9kZXJuIEFt
ZXJpY2FuIGdpcmxzIGFyZSBub3cgZmluZGluZyB0aGF0IHRoZXkgd2FudCB0byBj
ZWxlYnJhdGUgd2l0aCB0aGVpciBtb3RoZXJzIGluIHRoZSB3YXkgdGhhdCBvdXIg
TmF0aXZlIFBlb3BsZXMgaGF2ZSBjZWxlYnJhdGVkLiBSZWQgUGFydGllcyBhbmQg
TWVuYXJjaGUgUGFydGllcyBjYW4gYmUgY3JlYXRlZCBpbiBtYW55IGRpZmZlcmVu
dCB3YXlzLCBjZWxlYnJhdGluZyB0aGUgZGl2ZXJzaXR5IG9mIHRoZSBnaXJsIGFu
ZCBoZXIgcmVsYXRpdmVzLCBhbmQgaXQgaW5jbHVkZXMgZGVtYXJraW5nIHRoaXMg
dGltZSBieSB3ZWFyaW5nIHJlZCBvciB3aGl0ZSwgZW5qb3lpbmcgcmVkIGZvb2Rz
IGxpa2UgY2hlcnJpZXMsIHdhdGVybWVsb24sIHN0cmF3YmVycmllcywgYXBwbGVz
IGFzIHdlbGwgYXMgb3RoZXIgcmVkIGZvb2RzLiBNYW55IG1vZGVybiBnaXJscyBo
YXZlIGEgIkNyb3NzaW5nIE92ZXIiIGNlcmVtb255IGFuZCB0aGUgZ2lybCBtb3Zl
cyBmcm9tIGhlciBmcmllbmRzIG92ZXIgYSBicmlkZ2UgdG8gdGhlIGdyb3VwIG9m
IHdvbWVuIHdhaXRpbmcgZm9yIGhlci4gVGhpcyBzeW1ib2xpc20gaXMgbW9yZSBp
bXBvcnRhbnQgdGhhdCB0aGUgYWN0dWFsIGNyb3NzaW5nIG9mIHRoZSBicmlkZ2Uu
IEluIHRoZSBtb2Rlcm4gbWVuYXJjaGUgY2VyZW1vbnksIHRoZSB5b3VuZyB3b21l
biBpcyBlbWJpYmVkIHdpdGggc3RyZW5ndGgsIGJlYXV0eSwgd2lzZG9tIGFuZCBw
b3dlci48L2xpPgo8L3VsPgo8aDI+PHNwYW4gY2xhc3M9ImVkaXRzZWN0aW9uIj5b
PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPU1lbmFyY2hlJmFtcDthY3Rpb249
ZWRpdCZhbXA7c2VjdGlvbj0xMCIgdGl0bGU9IkVkaXQgc2VjdGlvbjogU2VlIGFs
c28iPmVkaXQ8L2E+XTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBp
ZD0iU2VlX2Fsc28iPlNlZSBhbHNvPC9zcGFuPjwvaDI+Cjx1bD4KPGxpPjxhIGhy
ZWY9Ii93aWtpL0FkcmVuYXJjaGUiIHRpdGxlPSJBZHJlbmFyY2hlIj5BZHJlbmFy
Y2hlPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvd2lraS9EZWxheWVkX3B1YmVydHki
IHRpdGxlPSJEZWxheWVkIHB1YmVydHkiPkRlbGF5ZWQgcHViZXJ0eTwvYT48L2xp
Pgo8bGk+PGEgaHJlZj0iL3dpa2kvR29uYWRhcmNoZSIgdGl0bGU9IkdvbmFkYXJj
aGUiPkdvbmFkYXJjaGU8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii93aWtpL0xpbmFf
TWVkaW5hIiB0aXRsZT0iTGluYSBNZWRpbmEiPkxpbmEgTWVkaW5hPC9hPiwgd2hv
IGhhZCBoZXIgbWVuYXJjaGUgYXQgYWdlIDggbW9udGhzIGFuZCBpcyB0aGUgeW91
bmdlc3QgbW90aGVyIGluIGhpc3Rvcnk8L2xpPgo8bGk+PGEgaHJlZj0iL3dpa2kv
TWVub3BhdXNlIiB0aXRsZT0iTWVub3BhdXNlIj5NZW5vcGF1c2U8L2E+LCB0aGUg
ZXF1aXZhbGVudCBvcHBvc2l0ZSBjaGFuZ2UgYXQgdGhlIGVuZCBvZiB0aGUgY2hp
bGQtYmVhcmluZyB5ZWFyczwvbGk+CjxsaT48YSBocmVmPSIvd2lraS9NZW5zdHJ1
YWxfY3ljbGUiIHRpdGxlPSJNZW5zdHJ1YWwgY3ljbGUiPk1lbnN0cnVhbCBjeWNs
ZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iL3dpa2kvUHViYXJjaGUiIHRpdGxlPSJQ
dWJhcmNoZSI+UHViYXJjaGU8L2E+PC9saT4KPGxpPjxhIGhyZWY9Ii93aWtpL1B1
YmVydHkiIHRpdGxlPSJQdWJlcnR5Ij5QdWJlcnR5PC9hPiwgZm9yIGEgbW9yZSBk
ZXRhaWxlZCBkaXNjdXNzaW9uIG9mIGZhY3RvcnMgYWZmZWN0aW5nIHRpbWluZzwv
bGk+CjxsaT48YSBocmVmPSIvd2lraS9TcGVybWFyY2hlIiB0aXRsZT0iU3Blcm1h
cmNoZSI+U3Blcm1hcmNoZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iL3dpa2kvVGhl
bGFyY2hlIiB0aXRsZT0iVGhlbGFyY2hlIj5UaGVsYXJjaGU8L2E+PC9saT4KPC91
bD4KPGgyPjxzcGFuIGNsYXNzPSJlZGl0c2VjdGlvbiI+WzxhIGhyZWY9Ii93L2lu
ZGV4LnBocD90aXRsZT1NZW5hcmNoZSZhbXA7YWN0aW9uPWVkaXQmYW1wO3NlY3Rp
b249MTEiIHRpdGxlPSJFZGl0IHNlY3Rpb246IFJlZmVyZW5jZXMiPmVkaXQ8L2E+
XTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iUmVmZXJlbmNl
cyI+UmVmZXJlbmNlczwvc3Bhbj48L2gyPgo8ZGl2IGNsYXNzPSJyZWZlcmVuY2Vz
LXNtYWxsIj4KPG9sIGNsYXNzPSJyZWZlcmVuY2VzIj4KPGxpIGlkPSJjaXRlX25v
dGUtdGFubmVyODUtMCI+PGI+PGEgaHJlZj0iI2NpdGVfcmVmLXRhbm5lcjg1XzAt
MCI+XjwvYT48L2I+IDxzcGFuIGNsYXNzPSJjaXRhdGlvbiBKb3VybmFsIj5UYW5u
ZXIsIEpNOyBEYXZpZXMsIFBTICgxOTg1KS4gIkNsaW5pY2FsIGxvbmdpdHVkaW5h
bCBzdGFuZGFyZHMgZm9yIGhlaWdodCBhbmQgaGVpZ2h0IHZlbG9jaXR5IGZvciBO
b3J0aCBBbWVyaWNhbiBjaGlsZHJlbi4iLiA8aT5UaGUgSm91cm5hbCBvZiBwZWRp
YXRyaWNzPC9pPiA8Yj4xMDc8L2I+ICgzKTogMzE34oCTMzI5LiA8YSBocmVmPSIv
d2lraS9EaWdpdGFsX29iamVjdF9pZGVudGlmaWVyIiB0aXRsZT0iRGlnaXRhbCBv
YmplY3QgaWRlbnRpZmllciI+ZG9pPC9hPjo8YSBocmVmPSJodHRwOi8vZHguZG9p
Lm9yZy8xMC4xMDE2JTJGUzAwMjItMzQ3NiUyODg1JTI5ODA1MDEtMSIgY2xhc3M9
ImV4dGVybmFsIHRleHQiIHJlbD0ibm9mb2xsb3ciPjEwLjEwMTYvUzAwMjItMzQ3
Nig4NSk4MDUwMS0xPC9hPi4gPGEgaHJlZj0iL3dpa2kvUHViTWVkX0lkZW50aWZp
ZXIiIHRpdGxlPSJQdWJNZWQgSWRlbnRpZmllciIgY2xhc3M9Im13LXJlZGlyZWN0
Ij5QTUlEPC9hPiYjMTYwOzxhIGhyZWY9Imh0dHA6Ly93d3cubmNiaS5ubG0ubmlo
Lmdvdi9wdWJtZWQvMzg3NTcwNCIgY2xhc3M9ImV4dGVybmFsIHRleHQiIHJlbD0i
bm9mb2xsb3ciPjM4NzU3MDQ8L2E+Ljwvc3Bhbj48c3BhbiBjbGFzcz0iWjM5ODgi
IHRpdGxlPSJjdHhfdmVyPVozOS44OC0yMDA0JmFtcDtyZnRfdmFsX2ZtdD1pbmZv
JTNBb2ZpJTJGZm10JTNBa2V2JTNBbXR4JTNBam91cm5hbCZhbXA7cmZ0LmdlbnJl
PWFydGljbGUmYW1wO3JmdC5hdGl0bGU9Q2xpbmljYWwrbG9uZ2l0dWRpbmFsK3N0
YW5kYXJkcytmb3IraGVpZ2h0K2FuZCtoZWlnaHQrdmVsb2NpdHkrZm9yK05vcnRo
K0FtZXJpY2FuK2NoaWxkcmVuLiZhbXA7cmZ0Lmp0aXRsZT1UaGUrSm91cm5hbCtv
ZitwZWRpYXRyaWNzJmFtcDtyZnQuYXVsYXN0PVRhbm5lciZhbXA7cmZ0LmF1Zmly
c3Q9Sk0mYW1wO3JmdC5hdT1UYW5uZXIlMkMlMjYlMjMzMiUzQkpNJmFtcDtyZnQu
YXU9RGF2aWVzJTJDJTI2JTIzMzIlM0JQUyZhbXA7cmZ0LmRhdGU9MTk4NSZhbXA7
cmZ0LnZvbHVtZT0xMDcmYW1wO3JmdC5pc3N1ZT0zJmFtcDtyZnQucGFnZXM9MzE3
JUUyJTgwJTkzMzI5JmFtcDtyZnRfaWQ9aW5mbzpkb2kvMTAuMTAxNiUyRlMwMDIy
LTM0NzYlMjg4NSUyOTgwNTAxLTEmYW1wO3JmdF9pZD1pbmZvOnBtaWQvMzg3NTcw
NCZhbXA7cmZyX2lkPWluZm86c2lkL2VuLndpa2lwZWRpYS5vcmc6TWVuYXJjaGUi
PjxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+JiMxNjA7PC9zcGFuPjwvc3Bh
bj48L2xpPgo8bGkgaWQ9ImNpdGVfbm90ZS0xIj48Yj48YSBocmVmPSIjY2l0ZV9y
ZWYtMSI+XjwvYT48L2I+IDxzcGFuIGNsYXNzPSJjaXRhdGlvbiBKb3VybmFsIj5B
bmRlcnNvbiBTRSwgRGFsbGFsIEdFLCBNdXN0IEEgKEFwcmlsIDIwMDMpLiAiUmVs
YXRpdmUgd2VpZ2h0IGFuZCByYWNlIGluZmx1ZW5jZSBhdmVyYWdlIGFnZSBhdCBt
ZW5hcmNoZTogcmVzdWx0cyBmcm9tIHR3byBuYXRpb25hbGx5IHJlcHJlc2VudGF0
aXZlIHN1cnZleXMgb2YgVVMgZ2lybHMgc3R1ZGllZCAyNSB5ZWFycyBhcGFydCIu
IDxpPlBlZGlhdHJpY3M8L2k+IDxiPjExMTwvYj4gKDQgUHQgMSk6IDg0NOKAkzUw
LiA8YSBocmVmPSIvd2lraS9EaWdpdGFsX29iamVjdF9pZGVudGlmaWVyIiB0aXRs
ZT0iRGlnaXRhbCBvYmplY3QgaWRlbnRpZmllciI+ZG9pPC9hPjo8YSBocmVmPSJo
dHRwOi8vZHguZG9pLm9yZy8xMC4xNTQyJTJGcGVkcy4xMTEuNC44NDQiIGNsYXNz
PSJleHRlcm5hbCB0ZXh0IiByZWw9Im5vZm9sbG93Ij4xMC4xNTQyL3BlZHMuMTEx
LjQuODQ0PC9hPi4gPGEgaHJlZj0iL3dpa2kvUHViTWVkX0lkZW50aWZpZXIiIHRp
dGxlPSJQdWJNZWQgSWRlbnRpZmllciIgY2xhc3M9Im13LXJlZGlyZWN0Ij5QTUlE
PC9hPiYjMTYwOzxhIGhyZWY9Imh0dHA6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9w
dWJtZWQvMTI2NzExMjIiIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiByZWw9Im5vZm9s
bG93Ij4xMjY3MTEyMjwvYT4uPC9zcGFuPjxzcGFuIGNsYXNzPSJaMzk4OCIgdGl0
bGU9ImN0eF92ZXI9WjM5Ljg4LTIwMDQmYW1wO3JmdF92YWxfZm10PWluZm8lM0Fv
ZmklMkZmbXQlM0FrZXYlM0FtdHglM0Fqb3VybmFsJmFtcDtyZnQuZ2VucmU9YXJ0
aWNsZSZhbXA7cmZ0LmF0aXRsZT1SZWxhdGl2ZSt3ZWlnaHQrYW5kK3JhY2UraW5m
bHVlbmNlK2F2ZXJhZ2UrYWdlK2F0K21lbmFyY2hlJTNBK3Jlc3VsdHMrZnJvbSt0
d28rbmF0aW9uYWxseStyZXByZXNlbnRhdGl2ZStzdXJ2ZXlzK29mK1VTK2dpcmxz
K3N0dWRpZWQrMjUreWVhcnMrYXBhcnQmYW1wO3JmdC5qdGl0bGU9UGVkaWF0cmlj
cyZhbXA7cmZ0LmF1bGFzdD1BbmRlcnNvbitTRSUyQytEYWxsYWwrR0UlMkMrTXVz
dCtBJmFtcDtyZnQuYXU9QW5kZXJzb24rU0UlMkMrRGFsbGFsK0dFJTJDK011c3Qr
QSZhbXA7cmZ0LmRhdGU9QXByaWwrMjAwMyZhbXA7cmZ0LnZvbHVtZT0xMTEmYW1w
O3JmdC5pc3N1ZT00K1B0KzEmYW1wO3JmdC5wYWdlcz04NDQlRTIlODAlOTM1MCZh
bXA7cmZ0X2lkPWluZm86ZG9pLzEwLjE1NDIlMkZwZWRzLjExMS40Ljg0NCZhbXA7
cmZ0X2lkPWluZm86cG1pZC8xMjY3MTEyMiZhbXA7cmZyX2lkPWluZm86c2lkL2Vu
Lndpa2lwZWRpYS5vcmc6TWVuYXJjaGUiPjxzcGFuIHN0eWxlPSJkaXNwbGF5OiBu
b25lOyI+JiMxNjA7PC9zcGFuPjwvc3Bhbj48L2xpPgo8bGkgaWQ9ImNpdGVfbm90
ZS0yIj48Yj48YSBocmVmPSIjY2l0ZV9yZWYtMiI+XjwvYT48L2I+IDxzcGFuIGNs
YXNzPSJjaXRhdGlvbiBKb3VybmFsIj5NYWduw7pzc29uLCBULkUuIChNYXkgMTk3
OCkuICJBZ2UgYXQgbWVuYXJjaGUgaW4gSWNlbGFuZC4iLiA8aT5BbWVyaWNhbiBq
b3VybmFsIG9mIHBoeXNpY2FsIGFudGhyb3BvbG9neTwvaT4gPGI+NDg8L2I+ICg0
KTogNTEx4oCTNC4gPGEgaHJlZj0iL3dpa2kvRGlnaXRhbF9vYmplY3RfaWRlbnRp
ZmllciIgdGl0bGU9IkRpZ2l0YWwgb2JqZWN0IGlkZW50aWZpZXIiPmRvaTwvYT46
PGEgaHJlZj0iaHR0cDovL2R4LmRvaS5vcmcvMTAuMTAwMiUyRmFqcGEuMTMzMDQ4
MDQxMCIgY2xhc3M9ImV4dGVybmFsIHRleHQiIHJlbD0ibm9mb2xsb3ciPjEwLjEw
MDIvYWpwYS4xMzMwNDgwNDEwPC9hPi4gPGEgaHJlZj0iL3dpa2kvSW50ZXJuYXRp
b25hbF9TdGFuZGFyZF9TZXJpYWxfTnVtYmVyIiB0aXRsZT0iSW50ZXJuYXRpb25h
bCBTdGFuZGFyZCBTZXJpYWwgTnVtYmVyIj5JU1NOPC9hPiYjMTYwOzxhIGhyZWY9
Imh0dHA6Ly93d3cud29ybGRjYXQub3JnL2lzc24vMDAwMi05NDgzIiBjbGFzcz0i
ZXh0ZXJuYWwgdGV4dCIgcmVsPSJub2ZvbGxvdyI+MDAwMi05NDgzPC9hPi4gPGEg
aHJlZj0iL3dpa2kvUHViTWVkX0lkZW50aWZpZXIiIHRpdGxlPSJQdWJNZWQgSWRl
bnRpZmllciIgY2xhc3M9Im13LXJlZGlyZWN0Ij5QTUlEPC9hPiYjMTYwOzxhIGhy
ZWY9Imh0dHA6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvNjU1MjcxIiBj
bGFzcz0iZXh0ZXJuYWwgdGV4dCIgcmVsPSJub2ZvbGxvdyI+NjU1MjcxPC9hPi48
L3NwYW4+PHNwYW4gY2xhc3M9IlozOTg4IiB0aXRsZT0iY3R4X3Zlcj1aMzkuODgt
MjAwNCZhbXA7cmZ0X3ZhbF9mbXQ9aW5mbyUzQW9maSUyRmZtdCUzQWtldiUzQW10
eCUzQWpvdXJuYWwmYW1wO3JmdC5nZW5yZT1hcnRpY2xlJmFtcDtyZnQuYXRpdGxl
PUFnZSthdCttZW5hcmNoZStpbitJY2VsYW5kLiZhbXA7cmZ0Lmp0aXRsZT1BbWVy
aWNhbitqb3VybmFsK29mK3BoeXNpY2FsK2FudGhyb3BvbG9neSZhbXA7cmZ0LmF1
bGFzdD1NYWduJUMzJUJBc3NvbiUyQytULkUuJmFtcDtyZnQuYXU9TWFnbiVDMyVC
QXNzb24lMkMrVC5FLiZhbXA7cmZ0LmRhdGU9TWF5KzE5NzgmYW1wO3JmdC52b2x1
bWU9NDgmYW1wO3JmdC5pc3N1ZT00JmFtcDtyZnQucGFnZXM9NTExJUUyJTgwJTkz
NCZhbXA7cmZ0X2lkPWluZm86ZG9pLzEwLjEwMDIlMkZhanBhLjEzMzA0ODA0MTAm
YW1wO3JmdF9pZD1pbmZvOnBtaWQvNjU1MjcxJmFtcDtyZnQuaXNzbj0wMDAyLTk0
ODMmYW1wO3Jmcl9pZD1pbmZvOnNpZC9lbi53aWtpcGVkaWEub3JnOk1lbmFyY2hl
Ij48c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPiYjMTYwOzwvc3Bhbj48L3Nw
YW4+PC9saT4KPGxpIGlkPSJjaXRlX25vdGUtMyI+PGI+PGEgaHJlZj0iI2NpdGVf
cmVmLTMiPl48L2E+PC9iPiA8c3BhbiBjbGFzcz0iY2l0YXRpb24gSm91cm5hbCI+
RnJpc2NoIFJFIChBdWd1c3QgMTk4NykuIDxhIGhyZWY9Imh0dHA6Ly9odW1yZXAu
b3hmb3Jkam91cm5hbHMub3JnL2NnaS9wbWlkbG9va3VwP3ZpZXc9bG9uZyZhbXA7
cG1pZD0zMTE3ODM4IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgcmVsPSJub2ZvbGxv
dyI+IkJvZHkgZmF0LCBtZW5hcmNoZSwgZml0bmVzcyBhbmQgZmVydGlsaXR5Ijwv
YT4uIDxpPkh1bWFuIFJlcHJvZHVjdGlvbjwvaT4gPGI+MjwvYj4gKDYpOiA1MjHi
gJMzMy4gPGEgaHJlZj0iL3dpa2kvUHViTWVkX0lkZW50aWZpZXIiIHRpdGxlPSJQ
dWJNZWQgSWRlbnRpZmllciIgY2xhc3M9Im13LXJlZGlyZWN0Ij5QTUlEPC9hPiYj
MTYwOzxhIGhyZWY9Imh0dHA6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQv
MzExNzgzOCIgY2xhc3M9ImV4dGVybmFsIHRleHQiIHJlbD0ibm9mb2xsb3ciPjMx
MTc4Mzg8L2E+PHNwYW4gY2xhc3M9InByaW50b25seSI+LiA8YSBocmVmPSJodHRw
Oi8vaHVtcmVwLm94Zm9yZGpvdXJuYWxzLm9yZy9jZ2kvcG1pZGxvb2t1cD92aWV3
PWxvbmcmYW1wO3BtaWQ9MzExNzgzOCIgY2xhc3M9ImV4dGVybmFsIGZyZWUiIHJl
bD0ibm9mb2xsb3ciPmh0dHA6Ly9odW1yZXAub3hmb3Jkam91cm5hbHMub3JnL2Nn
aS9wbWlkbG9va3VwP3ZpZXc9bG9uZyZhbXA7cG1pZD0zMTE3ODM4PC9hPjwvc3Bh
bj4uPC9zcGFuPjxzcGFuIGNsYXNzPSJaMzk4OCIgdGl0bGU9ImN0eF92ZXI9WjM5
Ljg4LTIwMDQmYW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYl
M0FtdHglM0Fqb3VybmFsJmFtcDtyZnQuZ2VucmU9YXJ0aWNsZSZhbXA7cmZ0LmF0
aXRsZT1Cb2R5K2ZhdCUyQyttZW5hcmNoZSUyQytmaXRuZXNzK2FuZCtmZXJ0aWxp
dHkmYW1wO3JmdC5qdGl0bGU9SHVtYW4rUmVwcm9kdWN0aW9uJmFtcDtyZnQuYXVs
YXN0PUZyaXNjaCtSRSZhbXA7cmZ0LmF1PUZyaXNjaCtSRSZhbXA7cmZ0LmRhdGU9
QXVndXN0KzE5ODcmYW1wO3JmdC52b2x1bWU9MiZhbXA7cmZ0Lmlzc3VlPTYmYW1w
O3JmdC5wYWdlcz01MjElRTIlODAlOTMzMyZhbXA7cmZ0X2lkPWluZm86cG1pZC8z
MTE3ODM4JmFtcDtyZnRfaWQ9aHR0cCUzQSUyRiUyRmh1bXJlcC5veGZvcmRqb3Vy
bmFscy5vcmclMkZjZ2klMkZwbWlkbG9va3VwJTNGdmlldyUzRGxvbmclMjZwbWlk
JTNEMzExNzgzOCZhbXA7cmZyX2lkPWluZm86c2lkL2VuLndpa2lwZWRpYS5vcmc6
TWVuYXJjaGUiPjxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+JiMxNjA7PC9z
cGFuPjwvc3Bhbj48L2xpPgo8bGkgaWQ9ImNpdGVfbm90ZS1BcHRlcl9EXzE5ODBf
MTA3LkUyLjgwLjkzMjAtNCI+XiA8YSBocmVmPSIjY2l0ZV9yZWYtQXB0ZXJfRF8x
OTgwXzEwNy5FMi44MC45MzIwXzQtMCI+PHN1cD48aT48Yj5hPC9iPjwvaT48L3N1
cD48L2E+IDxhIGhyZWY9IiNjaXRlX3JlZi1BcHRlcl9EXzE5ODBfMTA3LkUyLjgw
LjkzMjBfNC0xIj48c3VwPjxpPjxiPmI8L2I+PC9pPjwvc3VwPjwvYT4gPHNwYW4g
Y2xhc3M9ImNpdGF0aW9uIEpvdXJuYWwiPkFwdGVyIEQgKEZlYnJ1YXJ5IDE5ODAp
LiAiU2VydW0gc3Rlcm9pZHMgYW5kIHBpdHVpdGFyeSBob3Jtb25lcyBpbiBmZW1h
bGUgcHViZXJ0eTogYSBwYXJ0bHkgbG9uZ2l0dWRpbmFsIHN0dWR5Ii4gPGk+Q2xp
bmljYWwgRW5kb2NyaW5vbG9neTwvaT4gPGI+MTI8L2I+ICgyKTogMTA34oCTMjAu
IDxhIGhyZWY9Ii93aWtpL0RpZ2l0YWxfb2JqZWN0X2lkZW50aWZpZXIiIHRpdGxl
PSJEaWdpdGFsIG9iamVjdCBpZGVudGlmaWVyIj5kb2k8L2E+OjxhIGhyZWY9Imh0
dHA6Ly9keC5kb2kub3JnLzEwLjExMTElMkZqLjEzNjUtMjI2NS4xOTgwLnRiMDIx
MjUueCIgY2xhc3M9ImV4dGVybmFsIHRleHQiIHJlbD0ibm9mb2xsb3ciPjEwLjEx
MTEvai4xMzY1LTIyNjUuMTk4MC50YjAyMTI1Lng8L2E+LiA8YSBocmVmPSIvd2lr
aS9QdWJNZWRfSWRlbnRpZmllciIgdGl0bGU9IlB1Yk1lZCBJZGVudGlmaWVyIiBj
bGFzcz0ibXctcmVkaXJlY3QiPlBNSUQ8L2E+JiMxNjA7PGEgaHJlZj0iaHR0cDov
L3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC82MjQ5NTE5IiBjbGFzcz0iZXh0
ZXJuYWwgdGV4dCIgcmVsPSJub2ZvbGxvdyI+NjI0OTUxOTwvYT4uPC9zcGFuPjxz
cGFuIGNsYXNzPSJaMzk4OCIgdGl0bGU9ImN0eF92ZXI9WjM5Ljg4LTIwMDQmYW1w
O3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYlM0FtdHglM0Fqb3Vy
bmFsJmFtcDtyZnQuZ2VucmU9YXJ0aWNsZSZhbXA7cmZ0LmF0aXRsZT1TZXJ1bStz
dGVyb2lkcythbmQrcGl0dWl0YXJ5K2hvcm1vbmVzK2luK2ZlbWFsZStwdWJlcnR5
JTNBK2ErcGFydGx5K2xvbmdpdHVkaW5hbCtzdHVkeSZhbXA7cmZ0Lmp0aXRsZT1D
bGluaWNhbCtFbmRvY3Jpbm9sb2d5JmFtcDtyZnQuYXVsYXN0PUFwdGVyK0QmYW1w
O3JmdC5hdT1BcHRlcitEJmFtcDtyZnQuZGF0ZT1GZWJydWFyeSsxOTgwJmFtcDty
ZnQudm9sdW1lPTEyJmFtcDtyZnQuaXNzdWU9MiZhbXA7cmZ0LnBhZ2VzPTEwNyVF
MiU4MCU5MzIwJmFtcDtyZnRfaWQ9aW5mbzpkb2kvMTAuMTExMSUyRmouMTM2NS0y
MjY1LjE5ODAudGIwMjEyNS54JmFtcDtyZnRfaWQ9aW5mbzpwbWlkLzYyNDk1MTkm
YW1wO3Jmcl9pZD1pbmZvOnNpZC9lbi53aWtpcGVkaWEub3JnOk1lbmFyY2hlIj48
c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPiYjMTYwOzwvc3Bhbj48L3NwYW4+
PC9saT4KPGxpIGlkPSJjaXRlX25vdGUtQU1OLTUiPjxiPjxhIGhyZWY9IiNjaXRl
X3JlZi1BTU5fNS0wIj5ePC9hPjwvYj4gPHNwYW4gY2xhc3M9ImNpdGF0aW9uIHdl
YiI+Ui4gU3RhbmhvcGUsIEMuIFRyYWdnaWFpICgyMDA2KS4gPGEgaHJlZj0iaHR0
cDovL3d3dy5oZWFsdGguYW0vZ3luZWNvL21vcmUvaXNvbGF0ZWQtbWVuYXJjaGUv
IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgcmVsPSJub2ZvbGxvdyI+Iklzb2xhdGVk
IE1lbmFyY2hlIjwvYT4uIDxpPlByZWNvY2lvdXMgUHViZXJ0eSAoQ29tcGxldGUs
IFBhcnRpYWwpPC9pPi4gQXJtZW5pYW4gSGVhbHRoIE5ldHdvcms8c3BhbiBjbGFz
cz0icHJpbnRvbmx5Ij4uIDxhIGhyZWY9Imh0dHA6Ly93d3cuaGVhbHRoLmFtL2d5
bmVjby9tb3JlL2lzb2xhdGVkLW1lbmFyY2hlLyIgY2xhc3M9ImV4dGVybmFsIGZy
ZWUiIHJlbD0ibm9mb2xsb3ciPmh0dHA6Ly93d3cuaGVhbHRoLmFtL2d5bmVjby9t
b3JlL2lzb2xhdGVkLW1lbmFyY2hlLzwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InJl
ZmVyZW5jZS1hY2Nlc3NkYXRlIj4uIFJldHJpZXZlZCAyMDA2LTExLTI2PC9zcGFu
Pi48L3NwYW4+PHNwYW4gY2xhc3M9IlozOTg4IiB0aXRsZT0iY3R4X3Zlcj1aMzku
ODgtMjAwNCZhbXA7cmZ0X3ZhbF9mbXQ9aW5mbyUzQW9maSUyRmZtdCUzQWtldiUz
QW10eCUzQWJvb2smYW1wO3JmdC5nZW5yZT1ib29raXRlbSZhbXA7cmZ0LmJ0aXRs
ZT1Jc29sYXRlZCtNZW5hcmNoZSZhbXA7cmZ0LmF0aXRsZT1QcmVjb2Npb3VzK1B1
YmVydHkrJTI4Q29tcGxldGUlMkMrUGFydGlhbCUyOSZhbXA7cmZ0LmF1bGFzdD1S
LitTdGFuaG9wZSUyQytDLitUcmFnZ2lhaSZhbXA7cmZ0LmF1PVIuK1N0YW5ob3Bl
JTJDK0MuK1RyYWdnaWFpJmFtcDtyZnQuZGF0ZT0yMDA2JmFtcDtyZnQucHViPUFy
bWVuaWFuK0hlYWx0aCtOZXR3b3JrJmFtcDtyZnRfaWQ9aHR0cCUzQSUyRiUyRnd3
dy5oZWFsdGguYW0lMkZneW5lY28lMkZtb3JlJTJGaXNvbGF0ZWQtbWVuYXJjaGUl
MkYmYW1wO3Jmcl9pZD1pbmZvOnNpZC9lbi53aWtpcGVkaWEub3JnOk1lbmFyY2hl
Ij48c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPiYjMTYwOzwvc3Bhbj48L3Nw
YW4+PC9saT4KPGxpIGlkPSJjaXRlX25vdGUtNiI+PGI+PGEgaHJlZj0iI2NpdGVf
cmVmLTYiPl48L2E+PC9iPiA8c3BhbiBjbGFzcz0iY2l0YXRpb24gYm9vayI+U3Vy
YmV5LCBNaWNoZWxlIEsuICgxOTkwKS4gPGEgaHJlZj0iaHR0cDovL3d3dy5qY3Uu
ZWR1LmF1L3Nhc3MvaWRjL2dyb3Vwcy9wdWJsaWMvZG9jdW1lbnRzL3N0YWZmX3By
b2ZpbGVzL2pjdXByZF8wMjE0NTkucGRmIiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIg
cmVsPSJub2ZvbGxvdyI+IkZhbWlseSBjb21wb3NpdGlvbiwgc3RyZXNzLCBhbmQg
dGhlIHRpbWluZyBvZiBodW1hbiBtZW5hcmNoZSI8L2E+LiA8aT5Tb2Npb2VuZG9j
cmlub2xvZ3kgb2YgUHJpbWF0ZSBSZXByb2R1Y3Rpb248L2k+LiBOZXcgWW9yazog
V2lsZXkuIHBwLiYjMTYwOzEx4oCTMzIuIDxhIGhyZWY9Ii93aWtpL0ludGVybmF0
aW9uYWxfU3RhbmRhcmRfQm9va19OdW1iZXIiIHRpdGxlPSJJbnRlcm5hdGlvbmFs
IFN0YW5kYXJkIEJvb2sgTnVtYmVyIj5JU0JOPC9hPiYjMTYwOzxhIGhyZWY9Ii93
aWtpL1NwZWNpYWw6Qm9va1NvdXJjZXMvOTc4LTAtNDcxLTU2NzU3LTgiIHRpdGxl
PSJTcGVjaWFsOkJvb2tTb3VyY2VzLzk3OC0wLTQ3MS01Njc1Ny04Ij45NzgtMC00
NzEtNTY3NTctODwvYT48c3BhbiBjbGFzcz0icHJpbnRvbmx5Ij4uIDxhIGhyZWY9
Imh0dHA6Ly93d3cuamN1LmVkdS5hdS9zYXNzL2lkYy9ncm91cHMvcHVibGljL2Rv
Y3VtZW50cy9zdGFmZl9wcm9maWxlcy9qY3VwcmRfMDIxNDU5LnBkZiIgY2xhc3M9
ImV4dGVybmFsIGZyZWUiIHJlbD0ibm9mb2xsb3ciPmh0dHA6Ly93d3cuamN1LmVk
dS5hdS9zYXNzL2lkYy9ncm91cHMvcHVibGljL2RvY3VtZW50cy9zdGFmZl9wcm9m
aWxlcy9qY3VwcmRfMDIxNDU5LnBkZjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9InJl
ZmVyZW5jZS1hY2Nlc3NkYXRlIj4uIFJldHJpZXZlZCAyNCBKdW5lIDIwMDk8L3Nw
YW4+Ljwvc3Bhbj48c3BhbiBjbGFzcz0iWjM5ODgiIHRpdGxlPSJjdHhfdmVyPVoz
OS44OC0yMDA0JmFtcDtyZnRfdmFsX2ZtdD1pbmZvJTNBb2ZpJTJGZm10JTNBa2V2
JTNBbXR4JTNBYm9vayZhbXA7cmZ0LmdlbnJlPWJvb2tpdGVtJmFtcDtyZnQuYnRp
dGxlPUZhbWlseStjb21wb3NpdGlvbiUyQytzdHJlc3MlMkMrYW5kK3RoZSt0aW1p
bmcrb2YraHVtYW4rbWVuYXJjaGUmYW1wO3JmdC5hdGl0bGU9U29jaW9lbmRvY3Jp
bm9sb2d5K29mK1ByaW1hdGUrUmVwcm9kdWN0aW9uJmFtcDtyZnQuYXVsYXN0PVN1
cmJleSZhbXA7cmZ0LmF1Zmlyc3Q9TWljaGVsZStLLiZhbXA7cmZ0LmF1PVN1cmJl
eSUyQyUyNiUyMzMyJTNCTWljaGVsZStLLiZhbXA7cmZ0LmRhdGU9MTk5MCZhbXA7
cmZ0LnBhZ2VzPXBwLiUyNm5ic3AlM0IxMSVFMiU4MCU5MzMyJmFtcDtyZnQucGxh
Y2U9TmV3K1lvcmsmYW1wO3JmdC5wdWI9V2lsZXkmYW1wO3JmdC5pc2JuPTk3OC0w
LTQ3MS01Njc1Ny04JmFtcDtyZnRfaWQ9JmFtcDtyZnJfaWQ9aW5mbzpzaWQvZW4u
d2lraXBlZGlhLm9yZzpNZW5hcmNoZSI+PHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5v
bmU7Ij4mIzE2MDs8L3NwYW4+PC9zcGFuPjwvbGk+CjxsaSBpZD0iY2l0ZV9ub3Rl
LTciPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi03Ij5ePC9hPjwvYj4gQmVsc2t5LCBK
LiwgU3RlaW5iZXJnLCBMLiwgSG91dHMsIFIuLCAmYW1wOyBIYWxwZXJuLUZlbHNo
ZXIsIEIuICgyMDEwKS4gVGhlIGRldmVsb3BtZW50IG9mIHJlcHJvZHVjdGl2ZSBz
dHJhdGVneSBpbiBmZW1hbGVzOiBFYXJseSBtYXRlcm5hbCBoYXJzaG5lc3MtJmd0
O2Vhcmx5IG1lYXJjaGUtJmd0O2luY3JlYXNlZCBzZXh1YWwgcmlzayB0YWtpbmcu
IERldmVsb3BtZW50YWwgUHN5Y2hvbG9neSwgNDYsIDEyMC0xMjguPC9saT4KPGxp
IGlkPSJjaXRlX25vdGUtUGxvd2RlblJlcG9ydC04Ij48Yj48YSBocmVmPSIjY2l0
ZV9yZWYtUGxvd2RlblJlcG9ydF84LTAiPl48L2E+PC9iPiA8c3BhbiBjbGFzcz0i
Y2l0YXRpb24gSm91cm5hbCI+UGxvd2RlbiBSZXBvcnQgKDE5NjcpLiA8YSBocmVm
PSJodHRwOi8vd3d3LmVkdWNhdGlvbmVuZ2xhbmQub3JnLnVrL2RvY3VtZW50cy9w
bG93ZGVuL3Bsb3dkZW4xLTAyLmh0bWwiIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiBy
ZWw9Im5vZm9sbG93Ij48aT5DaGlsZHJlbiBhbmQgdGhlaXIgUHJpbWFyeSBTY2hv
b2xzLiBQYXJ0IFR3bzogVGhlIEdyb3d0aCBvZiB0aGUgQ2hpbGQgKERpYWdyYW0g
Mik8L2k+PC9hPjxzcGFuIGNsYXNzPSJwcmludG9ubHkiPi4gPGEgaHJlZj0iaHR0
cDovL3d3dy5lZHVjYXRpb25lbmdsYW5kLm9yZy51ay9kb2N1bWVudHMvcGxvd2Rl
bi9wbG93ZGVuMS0wMi5odG1sIiBjbGFzcz0iZXh0ZXJuYWwgZnJlZSIgcmVsPSJu
b2ZvbGxvdyI+aHR0cDovL3d3dy5lZHVjYXRpb25lbmdsYW5kLm9yZy51ay9kb2N1
bWVudHMvcGxvd2Rlbi9wbG93ZGVuMS0wMi5odG1sPC9hPjwvc3Bhbj4uPC9zcGFu
PjxzcGFuIGNsYXNzPSJaMzk4OCIgdGl0bGU9ImN0eF92ZXI9WjM5Ljg4LTIwMDQm
YW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYlM0FtdHglM0Fi
b29rJmFtcDtyZnQuZ2VucmU9Ym9vayZhbXA7cmZ0LmJ0aXRsZT1DaGlsZHJlbith
bmQrdGhlaXIrUHJpbWFyeStTY2hvb2xzLitQYXJ0K1R3byUzQStUaGUrR3Jvd3Ro
K29mK3RoZStDaGlsZCslMjhEaWFncmFtKzIlMjkmYW1wO3JmdC5hdWxhc3Q9UGxv
d2RlbitSZXBvcnQmYW1wO3JmdC5hdT1QbG93ZGVuK1JlcG9ydCZhbXA7cmZ0LmRh
dGU9MTk2NyZhbXA7cmZ0X2lkPWh0dHAlM0ElMkYlMkZ3d3cuZWR1Y2F0aW9uZW5n
bGFuZC5vcmcudWslMkZkb2N1bWVudHMlMkZwbG93ZGVuJTJGcGxvd2RlbjEtMDIu
aHRtbCZhbXA7cmZyX2lkPWluZm86c2lkL2VuLndpa2lwZWRpYS5vcmc6TWVuYXJj
aGUiPjxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+JiMxNjA7PC9zcGFuPjwv
c3Bhbj48L2xpPgo8bGkgaWQ9ImNpdGVfbm90ZS1BbmRlcnNvbkV0QWwyMDAzLTki
PjxiPjxhIGhyZWY9IiNjaXRlX3JlZi1BbmRlcnNvbkV0QWwyMDAzXzktMCI+Xjwv
YT48L2I+IDxzcGFuIGNsYXNzPSJjaXRhdGlvbiBKb3VybmFsIj5BbmRlcnNvbiBT
RSwgRGFsbGFsIEdFLCBNdXN0IEEgKEFwcmlsIDIwMDMpLiAiUmVsYXRpdmUgd2Vp
Z2h0IGFuZCByYWNlIGluZmx1ZW5jZSBhdmVyYWdlIGFnZSBhdCBtZW5hcmNoZTog
cmVzdWx0cyBmcm9tIHR3byBuYXRpb25hbGx5IHJlcHJlc2VudGF0aXZlIHN1cnZl
eXMgb2YgVVMgZ2lybHMgc3R1ZGllZCAyNSB5ZWFycyBhcGFydC4iLiA8aT5QZWRp
YXRyaWNzPC9pPiA8Yj4xMTE8L2I+ICg0KTogODQ04oCTODUwLiA8YSBocmVmPSIv
d2lraS9EaWdpdGFsX29iamVjdF9pZGVudGlmaWVyIiB0aXRsZT0iRGlnaXRhbCBv
YmplY3QgaWRlbnRpZmllciI+ZG9pPC9hPjo8YSBocmVmPSJodHRwOi8vZHguZG9p
Lm9yZy8xMC4xNTQyJTJGcGVkcy4xMTEuNC44NDQiIGNsYXNzPSJleHRlcm5hbCB0
ZXh0IiByZWw9Im5vZm9sbG93Ij4xMC4xNTQyL3BlZHMuMTExLjQuODQ0PC9hPi4g
PGEgaHJlZj0iL3dpa2kvUHViTWVkX0lkZW50aWZpZXIiIHRpdGxlPSJQdWJNZWQg
SWRlbnRpZmllciIgY2xhc3M9Im13LXJlZGlyZWN0Ij5QTUlEPC9hPiYjMTYwOzxh
IGhyZWY9Imh0dHA6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvMTI2NzEx
MjIiIGNsYXNzPSJleHRlcm5hbCB0ZXh0IiByZWw9Im5vZm9sbG93Ij4xMjY3MTEy
MjwvYT4uPC9zcGFuPjxzcGFuIGNsYXNzPSJaMzk4OCIgdGl0bGU9ImN0eF92ZXI9
WjM5Ljg4LTIwMDQmYW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0Fr
ZXYlM0FtdHglM0Fqb3VybmFsJmFtcDtyZnQuZ2VucmU9YXJ0aWNsZSZhbXA7cmZ0
LmF0aXRsZT1SZWxhdGl2ZSt3ZWlnaHQrYW5kK3JhY2UraW5mbHVlbmNlK2F2ZXJh
Z2UrYWdlK2F0K21lbmFyY2hlJTNBK3Jlc3VsdHMrZnJvbSt0d28rbmF0aW9uYWxs
eStyZXByZXNlbnRhdGl2ZStzdXJ2ZXlzK29mK1VTK2dpcmxzK3N0dWRpZWQrMjUr
eWVhcnMrYXBhcnQuJmFtcDtyZnQuanRpdGxlPVBlZGlhdHJpY3MmYW1wO3JmdC5h
dWxhc3Q9QW5kZXJzb24rU0UlMkMrRGFsbGFsK0dFJTJDK011c3QrQSZhbXA7cmZ0
LmF1PUFuZGVyc29uK1NFJTJDK0RhbGxhbCtHRSUyQytNdXN0K0EmYW1wO3JmdC5k
YXRlPUFwcmlsKzIwMDMmYW1wO3JmdC52b2x1bWU9MTExJmFtcDtyZnQuaXNzdWU9
NCZhbXA7cmZ0LnBhZ2VzPTg0NCVFMiU4MCU5Mzg1MCZhbXA7cmZ0X2lkPWluZm86
ZG9pLzEwLjE1NDIlMkZwZWRzLjExMS40Ljg0NCZhbXA7cmZ0X2lkPWluZm86cG1p
ZC8xMjY3MTEyMiZhbXA7cmZyX2lkPWluZm86c2lkL2VuLndpa2lwZWRpYS5vcmc6
TWVuYXJjaGUiPjxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+JiMxNjA7PC9z
cGFuPjwvc3Bhbj48L2xpPgo8bGkgaWQ9ImNpdGVfbm90ZS1DaHVtbGVhLTEwIj48
Yj48YSBocmVmPSIjY2l0ZV9yZWYtQ2h1bWxlYV8xMC0wIj5ePC9hPjwvYj4gPHNw
YW4gY2xhc3M9ImNpdGF0aW9uIEpvdXJuYWwiPkNodW1sZWEgV0MsIFNjaHViZXJ0
IENNLCBSb2NoZSBBRiwgPGk+ZXQgYWwuPC9pPiAoSmFudWFyeSAyMDAzKS4gIkFn
ZSBhdCBtZW5hcmNoZSBhbmQgcmFjaWFsIGNvbXBhcmlzb25zIGluIFVTIGdpcmxz
Ii4gPGk+UGVkaWF0cmljczwvaT4gPGI+MTExPC9iPiAoMSk6IDExMOKAkzMuIDxh
IGhyZWY9Ii93aWtpL0RpZ2l0YWxfb2JqZWN0X2lkZW50aWZpZXIiIHRpdGxlPSJE
aWdpdGFsIG9iamVjdCBpZGVudGlmaWVyIj5kb2k8L2E+OjxhIGhyZWY9Imh0dHA6
Ly9keC5kb2kub3JnLzEwLjE1NDIlMkZwZWRzLjExMS4xLjExMCIgY2xhc3M9ImV4
dGVybmFsIHRleHQiIHJlbD0ibm9mb2xsb3ciPjEwLjE1NDIvcGVkcy4xMTEuMS4x
MTA8L2E+LiA8YSBocmVmPSIvd2lraS9QdWJNZWRfSWRlbnRpZmllciIgdGl0bGU9
IlB1Yk1lZCBJZGVudGlmaWVyIiBjbGFzcz0ibXctcmVkaXJlY3QiPlBNSUQ8L2E+
JiMxNjA7PGEgaHJlZj0iaHR0cDovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1l
ZC8xMjUwOTU2MiIgY2xhc3M9ImV4dGVybmFsIHRleHQiIHJlbD0ibm9mb2xsb3ci
PjEyNTA5NTYyPC9hPi48L3NwYW4+PHNwYW4gY2xhc3M9IlozOTg4IiB0aXRsZT0i
Y3R4X3Zlcj1aMzkuODgtMjAwNCZhbXA7cmZ0X3ZhbF9mbXQ9aW5mbyUzQW9maSUy
RmZtdCUzQWtldiUzQW10eCUzQWpvdXJuYWwmYW1wO3JmdC5nZW5yZT1hcnRpY2xl
JmFtcDtyZnQuYXRpdGxlPUFnZSthdCttZW5hcmNoZSthbmQrcmFjaWFsK2NvbXBh
cmlzb25zK2luK1VTK2dpcmxzJmFtcDtyZnQuanRpdGxlPVBlZGlhdHJpY3MmYW1w
O3JmdC5hdWxhc3Q9Q2h1bWxlYStXQyUyQytTY2h1YmVydCtDTSUyQytSb2NoZStB
RiUyQyslMjclMjdldCthbC4lMjclMjcmYW1wO3JmdC5hdT1DaHVtbGVhK1dDJTJD
K1NjaHViZXJ0K0NNJTJDK1JvY2hlK0FGJTJDKyUyNyUyN2V0K2FsLiUyNyUyNyZh
bXA7cmZ0LmRhdGU9SmFudWFyeSsyMDAzJmFtcDtyZnQudm9sdW1lPTExMSZhbXA7
cmZ0Lmlzc3VlPTEmYW1wO3JmdC5wYWdlcz0xMTAlRTIlODAlOTMzJmFtcDtyZnRf
aWQ9aW5mbzpkb2kvMTAuMTU0MiUyRnBlZHMuMTExLjEuMTEwJmFtcDtyZnRfaWQ9
aW5mbzpwbWlkLzEyNTA5NTYyJmFtcDtyZnJfaWQ9aW5mbzpzaWQvZW4ud2lraXBl
ZGlhLm9yZzpNZW5hcmNoZSI+PHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4m
IzE2MDs8L3NwYW4+PC9zcGFuPjwvbGk+CjxsaSBpZD0iY2l0ZV9ub3RlLTExIj48
Yj48YSBocmVmPSIjY2l0ZV9yZWYtMTEiPl48L2E+PC9iPiBIYXJ0bWFuLCBIb2xs
eS4gR2lybHdvbmRlcjogRXZlcnkgR2lybCdzIEd1aWRlIHRvIHRoZSBGYW50YXN0
aWMgRmVhdHMsIENvb2wgUXVhbGl0aWVzLCBhbmQgUmVtYXJrYWJsZSBBYmlsaXRp
ZXMgb2YgV29tZW4gYW5kIEdpcmxzLiBCb3N0b246IEhvdWdodG9uIE1pZmZsaW4s
IDIwMDMuPC9saT4KPGxpIGlkPSJjaXRlX25vdGUtMTIiPjxiPjxhIGhyZWY9IiNj
aXRlX3JlZi0xMiI+XjwvYT48L2I+IFJ1dHRlciwgVmlyZ2luaWEgQmVhbmUuIFdv
bWFuIENoYW5naW5nIFdvbWFuOiBGZW1pbmluZSBQc3ljaG9sb2d5IFJlLUNvbmNl
aXZlZCBUaHJvdWdoIE15dGggYW5kIEV4cGVyaWVuY2UuIFtTYW4gRnJhbmNpc2Nv
LCBDYWxpZi5dOiBIYXJwZXJTYW5GcmFuY2lzY28sIDE5OTMuPC9saT4KPGxpIGlk
PSJjaXRlX25vdGUtMTMiPjxiPjxhIGhyZWY9IiNjaXRlX3JlZi0xMyI+XjwvYT48
L2I+IEJlbGwsIERpYW5lLCBNYXggQ2hhcmxlc3dvcnRoLCBGcmFuY29pc2UgRHVz
c2FydCwgYW5kIEhvd2FyZCBNb3JwaHkuICJBYm9yaWdpbmFsIFJlbGlnaW9ucyBp
biBBdXN0cmFsaWE6IEFuIEFudGhvbG9neSBvZiBSZWNlbnQgV3JpdGluZ3MuIEVk
aXRlZCBieSBNYXggQ2hhcmxlc3dvcnRoLCBGcmFuY29pc2UgRHVzc2FydCwgYW5k
IEhvd2FyZCBNb3JwaHkuIiBKb3VybmFsIG9mIHRoZSBBbWVyaWNhbiBBY2FkZW15
IG9mIFJlbGlnaW9uLiA3NS4gMyAoMjAwNyk6IDY5MS02OTQuPC9saT4KPC9vbD4K
PC9kaXY+CjxoMj48c3BhbiBjbGFzcz0iZWRpdHNlY3Rpb24iPls8YSBocmVmPSIv
dy9pbmRleC5waHA/dGl0bGU9TWVuYXJjaGUmYW1wO2FjdGlvbj1lZGl0JmFtcDtz
ZWN0aW9uPTEyIiB0aXRsZT0iRWRpdCBzZWN0aW9uOiBGdXJ0aGVyIHJlYWRpbmci
PmVkaXQ8L2E+XTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0i
RnVydGhlcl9yZWFkaW5nIj5GdXJ0aGVyIHJlYWRpbmc8L3NwYW4+PC9oMj4KPHVs
Pgo8bGk+PHNwYW4gY2xhc3M9ImNpdGF0aW9uIEpvdXJuYWwiPlF1aW5sYW4sIFIg
KDIwMDMpLiA8YSBocmVmPSJodHRwOi8vd3d3LmJzdS5lZHUvd2ViL3JxdWlubGFu
L1F1aW5sYW4lMjBFJmFtcDtIQiUyMDI0KDYpLnBkZiIgY2xhc3M9ImV4dGVybmFs
IHRleHQiIHJlbD0ibm9mb2xsb3ciPiJGYXRoZXIgYWJzZW5jZSwgcGFyZW50YWwg
Y2FyZSwgYW5kIGZlbWFsZSByZXByb2R1Y3RpdmUgZGV2ZWxvcG1lbnQiPC9hPi4g
PGk+RXZvbHV0aW9uIGFuZCBIdW1hbiBCZWhhdmlvcjwvaT4gPGI+MjQ8L2I+OiAz
NzYuIDxhIGhyZWY9Ii93aWtpL0RpZ2l0YWxfb2JqZWN0X2lkZW50aWZpZXIiIHRp
dGxlPSJEaWdpdGFsIG9iamVjdCBpZGVudGlmaWVyIj5kb2k8L2E+OjxhIGhyZWY9
Imh0dHA6Ly9keC5kb2kub3JnLzEwLjEwMTYlMkZTMTA5MC01MTM4JTI4MDMlMjkw
MDAzOS00IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgcmVsPSJub2ZvbGxvdyI+MTAu
MTAxNi9TMTA5MC01MTM4KDAzKTAwMDM5LTQ8L2E+PHNwYW4gY2xhc3M9InByaW50
b25seSI+LiA8YSBocmVmPSJodHRwOi8vd3d3LmJzdS5lZHUvd2ViL3JxdWlubGFu
L1F1aW5sYW4lMjBFJmFtcDtIQiUyMDI0KDYpLnBkZiIgY2xhc3M9ImV4dGVybmFs
IGZyZWUiIHJlbD0ibm9mb2xsb3ciPmh0dHA6Ly93d3cuYnN1LmVkdS93ZWIvcnF1
aW5sYW4vUXVpbmxhbiUyMEUmYW1wO0hCJTIwMjQoNikucGRmPC9hPjwvc3Bhbj4u
PC9zcGFuPjxzcGFuIGNsYXNzPSJaMzk4OCIgdGl0bGU9ImN0eF92ZXI9WjM5Ljg4
LTIwMDQmYW1wO3JmdF92YWxfZm10PWluZm8lM0FvZmklMkZmbXQlM0FrZXYlM0Ft
dHglM0Fqb3VybmFsJmFtcDtyZnQuZ2VucmU9YXJ0aWNsZSZhbXA7cmZ0LmF0aXRs
ZT1GYXRoZXIrYWJzZW5jZSUyQytwYXJlbnRhbCtjYXJlJTJDK2FuZCtmZW1hbGUr
cmVwcm9kdWN0aXZlK2RldmVsb3BtZW50JmFtcDtyZnQuanRpdGxlPUV2b2x1dGlv
bithbmQrSHVtYW4rQmVoYXZpb3ImYW1wO3JmdC5hdWxhc3Q9UXVpbmxhbiUyQytS
JmFtcDtyZnQuYXU9UXVpbmxhbiUyQytSJmFtcDtyZnQuZGF0ZT0yMDAzJmFtcDty
ZnQudm9sdW1lPTI0JmFtcDtyZnQucGFnZXM9Mzc2JmFtcDtyZnRfaWQ9aW5mbzpk
b2kvMTAuMTAxNiUyRlMxMDkwLTUxMzglMjgwMyUyOTAwMDM5LTQmYW1wO3JmdF9p
ZD1odHRwJTNBJTJGJTJGd3d3LmJzdS5lZHUlMkZ3ZWIlMkZycXVpbmxhbiUyRlF1
aW5sYW4lMjUyMEUlMjZIQiUyNTIwMjQlMjg2JTI5LnBkZiZhbXA7cmZyX2lkPWlu
Zm86c2lkL2VuLndpa2lwZWRpYS5vcmc6TWVuYXJjaGUiPjxzcGFuIHN0eWxlPSJk
aXNwbGF5OiBub25lOyI+JiMxNjA7PC9zcGFuPjwvc3Bhbj48L2xpPgo8L3VsPgo8
aDI+PHNwYW4gY2xhc3M9ImVkaXRzZWN0aW9uIj5bPGEgaHJlZj0iL3cvaW5kZXgu
cGhwP3RpdGxlPU1lbmFyY2hlJmFtcDthY3Rpb249ZWRpdCZhbXA7c2VjdGlvbj0x
MyIgdGl0bGU9IkVkaXQgc2VjdGlvbjogRXh0ZXJuYWwgbGlua3MiPmVkaXQ8L2E+
XTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im13LWhlYWRsaW5lIiBpZD0iRXh0ZXJuYWxf
bGlua3MiPkV4dGVybmFsIGxpbmtzPC9zcGFuPjwvaDI+Cjx1bD4KPGxpPjxhIGhy
ZWY9Imh0dHA6Ly93d3cuYmV0dGVydGhhbnNleGVkLm9yZy9jb250ZW50L215LWZp
cnN0LXBlcmlvZCIgY2xhc3M9ImV4dGVybmFsIHRleHQiIHJlbD0ibm9mb2xsb3ci
PkJldHRlciBUaGFuIFNleCBFZDogIk15IEZpcnN0IFBlcmlvZCI8L2E+PC9saT4K
PGxpPjxzcGFuIGNsYXNzPSJjaXRhdGlvbiBKb3VybmFsIj5HbHVja21hbiwgUEQ7
IEhhbnNvbiwgTUEgKEphbnVhcnkgMjAwNikuICJFdm9sdXRpb24sIGRldmVsb3Bt
ZW50IGFuZCB0aW1pbmcgb2YgcHViZXJ0eSIuIDxpPlRyZW5kcyBpbiBlbmRvY3Jp
bm9sb2d5IGFuZCBtZXRhYm9saXNtPC9pPiA8Yj4xNzwvYj4gKDEpOiA34oCTMTIu
IDxhIGhyZWY9Ii93aWtpL0RpZ2l0YWxfb2JqZWN0X2lkZW50aWZpZXIiIHRpdGxl
PSJEaWdpdGFsIG9iamVjdCBpZGVudGlmaWVyIj5kb2k8L2E+OjxhIGhyZWY9Imh0
dHA6Ly9keC5kb2kub3JnLzEwLjEwMTYlMkZqLnRlbS4yMDA1LjExLjAwNiIgY2xh
c3M9ImV4dGVybmFsIHRleHQiIHJlbD0ibm9mb2xsb3ciPjEwLjEwMTYvai50ZW0u
MjAwNS4xMS4wMDY8L2E+LiA8YSBocmVmPSIvd2lraS9JbnRlcm5hdGlvbmFsX1N0
YW5kYXJkX1NlcmlhbF9OdW1iZXIiIHRpdGxlPSJJbnRlcm5hdGlvbmFsIFN0YW5k
YXJkIFNlcmlhbCBOdW1iZXIiPklTU048L2E+JiMxNjA7PGEgaHJlZj0iaHR0cDov
L3d3dy53b3JsZGNhdC5vcmcvaXNzbi8xMDQzLTI3NjAiIGNsYXNzPSJleHRlcm5h
bCB0ZXh0IiByZWw9Im5vZm9sbG93Ij4xMDQzLTI3NjA8L2E+LiA8YSBocmVmPSIv
d2lraS9QdWJNZWRfSWRlbnRpZmllciIgdGl0bGU9IlB1Yk1lZCBJZGVudGlmaWVy
IiBjbGFzcz0ibXctcmVkaXJlY3QiPlBNSUQ8L2E+JiMxNjA7PGEgaHJlZj0iaHR0
cDovL3d3dy5uY2JpLm5sbS5uaWguZ292L3B1Ym1lZC8xNjMxMTA0MCIgY2xhc3M9
ImV4dGVybmFsIHRleHQiIHJlbD0ibm9mb2xsb3ciPjE2MzExMDQwPC9hPi48L3Nw
YW4+PHNwYW4gY2xhc3M9IlozOTg4IiB0aXRsZT0iY3R4X3Zlcj1aMzkuODgtMjAw
NCZhbXA7cmZ0X3ZhbF9mbXQ9aW5mbyUzQW9maSUyRmZtdCUzQWtldiUzQW10eCUz
QWpvdXJuYWwmYW1wO3JmdC5nZW5yZT1hcnRpY2xlJmFtcDtyZnQuYXRpdGxlPUV2
b2x1dGlvbiUyQytkZXZlbG9wbWVudCthbmQrdGltaW5nK29mK3B1YmVydHkmYW1w
O3JmdC5qdGl0bGU9VHJlbmRzK2luK2VuZG9jcmlub2xvZ3krYW5kK21ldGFib2xp
c20mYW1wO3JmdC5hdWxhc3Q9R2x1Y2ttYW4lMkMrUEQlM0IrSGFuc29uJTJDK01B
JmFtcDtyZnQuYXU9R2x1Y2ttYW4lMkMrUEQlM0IrSGFuc29uJTJDK01BJmFtcDty
ZnQuZGF0ZT1KYW51YXJ5KzIwMDYmYW1wO3JmdC52b2x1bWU9MTcmYW1wO3JmdC5p
c3N1ZT0xJmFtcDtyZnQucGFnZXM9NyVFMiU4MCU5MzEyJmFtcDtyZnRfaWQ9aW5m
bzpkb2kvMTAuMTAxNiUyRmoudGVtLjIwMDUuMTEuMDA2JmFtcDtyZnRfaWQ9aW5m
bzpwbWlkLzE2MzExMDQwJmFtcDtyZnQuaXNzbj0xMDQzLTI3NjAmYW1wO3Jmcl9p
ZD1pbmZvOnNpZC9lbi53aWtpcGVkaWEub3JnOk1lbmFyY2hlIj48c3BhbiBzdHls
ZT0iZGlzcGxheTogbm9uZTsiPiYjMTYwOzwvc3Bhbj48L3NwYW4+PC9saT4KPGxp
PjxhIGhyZWY9Imh0dHA6Ly93d3cubGl2ZXNjaWVuY2UuY29tL2h1bWFuYmlvbG9n
eS8wNjA3MTNfbWVuYXJjaGVfb25zZXQuaHRtbCIgY2xhc3M9ImV4dGVybmFsIGF1
dG9udW1iZXIiIHJlbD0ibm9mb2xsb3ciPlsxXTwvYT4gRGlzY3Vzc2VzIHNvbWUg
b2YgdGhlIHNvY2lhbCBpbmZsdWVuY2VzPC9saT4KPC91bD4KPHRhYmxlIGNsYXNz
PSJuYXZib3giIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iOyI+Cjx0cj4KPHRkIHN0
eWxlPSJwYWRkaW5nOjJweDsiPgo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNz
PSJub3dyYXBsaW5rcyBjb2xsYXBzaWJsZSBhdXRvY29sbGFwc2UiIHN0eWxlPSJ3
aWR0aDoxMDAlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6aW5oZXJpdDs7
Ij4KPHRyPgo8dGggc3R5bGU9IjsiIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gt
dGl0bGUiPgo8ZGl2IHN0eWxlPSJmbG9hdDpsZWZ0OyB3aWR0aDo2ZW07dGV4dC1h
bGlnbjpsZWZ0OyI+CjxkaXYgY2xhc3M9Im5vcHJpbnQgcGxhaW5saW5rcyBuYXZi
YXIiIHN0eWxlPSJiYWNrZ3JvdW5kOm5vbmU7IHBhZGRpbmc6MDsgZm9udC13ZWln
aHQ6bm9ybWFsOzs7Ym9yZGVyOm5vbmU7OyBmb250LXNpemU6eHgtc21hbGw7Ij48
YSBocmVmPSIvd2lraS9UZW1wbGF0ZTpNZW5zdHJ1YWxfY3ljbGUiIHRpdGxlPSJU
ZW1wbGF0ZTpNZW5zdHJ1YWwgY3ljbGUiPjxzcGFuIHRpdGxlPSJWaWV3IHRoaXMg
dGVtcGxhdGUiIHN0eWxlPSI7O2JvcmRlcjpub25lOyI+djwvc3Bhbj48L2E+JiMx
NjA7PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo4MCU7Ij7igKI8L3NwYW4+JiMxNjA7
PGEgaHJlZj0iL3dpa2kvVGVtcGxhdGVfdGFsazpNZW5zdHJ1YWxfY3ljbGUiIHRp
dGxlPSJUZW1wbGF0ZSB0YWxrOk1lbnN0cnVhbCBjeWNsZSI+PHNwYW4gdGl0bGU9
IkRpc2N1c3MgdGhpcyB0ZW1wbGF0ZSIgc3R5bGU9Ijs7Ym9yZGVyOm5vbmU7Ij5k
PC9zcGFuPjwvYT4mIzE2MDs8c3BhbiBzdHlsZT0iZm9udC1zaXplOjgwJTsiPuKA
ojwvc3Bhbj4mIzE2MDs8YSBocmVmPSJodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93
L2luZGV4LnBocD90aXRsZT1UZW1wbGF0ZTpNZW5zdHJ1YWxfY3ljbGUmYW1wO2Fj
dGlvbj1lZGl0IiBjbGFzcz0iZXh0ZXJuYWwgdGV4dCIgcmVsPSJub2ZvbGxvdyI+
PHNwYW4gdGl0bGU9IkVkaXQgdGhpcyB0ZW1wbGF0ZSIgc3R5bGU9Ijs7Ym9yZGVy
Om5vbmU7OyI+ZTwvc3Bhbj48L2E+PC9kaXY+CjwvZGl2Pgo8c3BhbiBjbGFzcz0i
IiBzdHlsZT0iZm9udC1zaXplOjExMCU7Ij48YSBocmVmPSIvd2lraS9NZW5zdHJ1
YWxfY3ljbGUiIHRpdGxlPSJNZW5zdHJ1YWwgY3ljbGUiPk1lbnN0cnVhbCBjeWNs
ZTwvYT48L3NwYW4+PC90aD4KPC90cj4KPHRyIHN0eWxlPSJoZWlnaHQ6MnB4OyI+
Cjx0ZD48L3RkPgo8L3RyPgo8dHI+Cjx0ZCBjbGFzcz0ibmF2Ym94LWdyb3VwIiBz
dHlsZT0iOzsiPkV2ZW50cyBhbmQgcGhhc2VzPC90ZD4KPHRkIHN0eWxlPSJ0ZXh0
LWFsaWduOmxlZnQ7Ym9yZGVyLWxlZnQtd2lkdGg6MnB4O2JvcmRlci1sZWZ0LXN0
eWxlOnNvbGlkO3dpZHRoOjEwMCU7cGFkZGluZzowcHg7YmFja2dyb3VuZC1jb2xv
cjogdHJhbnNwYXJlbnQ7OzsiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2Rk
Ij4KPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtIj48YSBocmVmPSIvd2lr
aS9NZW5zdHJ1YXRpb24iIHRpdGxlPSJNZW5zdHJ1YXRpb24iPk1lbnN0cnVhdGlv
bjwvYT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDsiPiYjMTYwO8K3PC9z
cGFuPiAgPGEgaHJlZj0iL3dpa2kvRm9sbGljdWxhcl9waGFzZSIgdGl0bGU9IkZv
bGxpY3VsYXIgcGhhc2UiPkZvbGxpY3VsYXIgcGhhc2U8L2E+PHNwYW4gc3R5bGU9
ImZvbnQtd2VpZ2h0OmJvbGQ7Ij4mIzE2MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93
aWtpL092dWxhdGlvbiIgdGl0bGU9Ik92dWxhdGlvbiI+T3Z1bGF0aW9uPC9hPjxz
cGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+JiMxNjA7wrc8L3NwYW4+ICA8
YSBocmVmPSIvd2lraS9MdXRlYWxfcGhhc2UiIHRpdGxlPSJMdXRlYWwgcGhhc2Ui
Pkx1dGVhbCBwaGFzZTwvYT48L2Rpdj4KPC90ZD4KPC90cj4KPHRyIHN0eWxlPSJo
ZWlnaHQ6MnB4Ij4KPHRkPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIGNsYXNzPSJuYXZi
b3gtZ3JvdXAiIHN0eWxlPSI7OyI+TGlmZSBzdGFnZXM8L3RkPgo8dGQgc3R5bGU9
InRleHQtYWxpZ246bGVmdDtib3JkZXItbGVmdC13aWR0aDoycHg7Ym9yZGVyLWxl
ZnQtc3R5bGU6c29saWQ7d2lkdGg6MTAwJTtwYWRkaW5nOjBweDtiYWNrZ3JvdW5k
LWNvbG9yOiB0cmFuc3BhcmVudDs7OyIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJv
eC1ldmVuIj4KPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtIj48c3Ryb25n
IGNsYXNzPSJzZWxmbGluayI+TWVuYXJjaGU8L3N0cm9uZz48c3BhbiBzdHlsZT0i
Zm9udC13ZWlnaHQ6Ym9sZDsiPiYjMTYwO8K3PC9zcGFuPiAgPGEgaHJlZj0iL3dp
a2kvTWVub3BhdXNlIiB0aXRsZT0iTWVub3BhdXNlIj5NZW5vcGF1c2U8L2E+PC9k
aXY+CjwvdGQ+CjwvdHI+Cjx0ciBzdHlsZT0iaGVpZ2h0OjJweCI+Cjx0ZD48L3Rk
Pgo8L3RyPgo8dHI+Cjx0ZCBjbGFzcz0ibmF2Ym94LWdyb3VwIiBzdHlsZT0iOzsi
PlRyYWNraW5nPC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ym9yZGVy
LWxlZnQtd2lkdGg6MnB4O2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO3dpZHRoOjEw
MCU7cGFkZGluZzowcHg7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Ozsi
IGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIj4KPGRpdiBzdHlsZT0icGFk
ZGluZzowZW0gMC4yNWVtIj48L2Rpdj4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBj
bGFzcz0ibm93cmFwbGlua3MgbmF2Ym94LXN1Ymdyb3VwIiBzdHlsZT0id2lkdGg6
MTAwJTs7OzsiPgo8dHI+Cjx0ZCBjbGFzcz0ibmF2Ym94LWdyb3VwIiBzdHlsZT0i
O3BhZGRpbmctbGVmdDowZW07cGFkZGluZy1yaWdodDowZW07OyI+CjxkaXYgc3R5
bGU9InBhZGRpbmc6MGVtIDAuNzVlbTsiPlNpZ25zPC9kaXY+CjwvdGQ+Cjx0ZCBz
dHlsZT0idGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1sZWZ0LXdpZHRoOjJweDtib3Jk
ZXItbGVmdC1zdHlsZTpzb2xpZDt3aWR0aDoxMDAlO3BhZGRpbmc6MHB4Ozs7IiBj
bGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCI+CjxkaXYgc3R5bGU9InBhZGRp
bmc6MGVtIDAuMjVlbSI+PGEgaHJlZj0iL3dpa2kvQmFzYWxfYm9keV90ZW1wZXJh
dHVyZSIgdGl0bGU9IkJhc2FsIGJvZHkgdGVtcGVyYXR1cmUiPkJhc2FsIGJvZHkg
dGVtcGVyYXR1cmU8L2E+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7Ij4m
IzE2MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93aWtpL0NlcnZpY2FsX211Y3VzIiB0
aXRsZT0iQ2VydmljYWwgbXVjdXMiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Q2Vydmlj
YWwgbXVjdXM8L2E+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7Ij4mIzE2
MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93aWtpL01pdHRlbHNjaG1lcnoiIHRpdGxl
PSJNaXR0ZWxzY2htZXJ6Ij5NaXR0ZWxzY2htZXJ6PC9hPjwvZGl2Pgo8L3RkPgo8
L3RyPgo8dHIgc3R5bGU9ImhlaWdodDoycHgiPgo8dGQ+PC90ZD4KPC90cj4KPHRy
Pgo8dGQgY2xhc3M9Im5hdmJveC1ncm91cCIgc3R5bGU9IjtwYWRkaW5nLWxlZnQ6
MGVtO3BhZGRpbmctcmlnaHQ6MGVtOzsiPgo8ZGl2IHN0eWxlPSJwYWRkaW5nOjBl
bSAwLjc1ZW07Ij5TeXN0ZW1zPC9kaXY+CjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1h
bGlnbjpsZWZ0O2JvcmRlci1sZWZ0LXdpZHRoOjJweDtib3JkZXItbGVmdC1zdHls
ZTpzb2xpZDt3aWR0aDoxMDAlO3BhZGRpbmc6MHB4Ozs7IiBjbGFzcz0ibmF2Ym94
LWxpc3QgbmF2Ym94LWV2ZW4iPgo8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1
ZW0iPjxhIGhyZWY9Ii93aWtpL0ZlcnRpbGl0eV9hd2FyZW5lc3MiIHRpdGxlPSJG
ZXJ0aWxpdHkgYXdhcmVuZXNzIj5GZXJ0aWxpdHkgYXdhcmVuZXNzPC9hPjxzcGFu
IHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+JiMxNjA7wrc8L3NwYW4+ICA8YSBo
cmVmPSIvd2lraS9DYWxlbmRhci1iYXNlZF9tZXRob2RzIiB0aXRsZT0iQ2FsZW5k
YXItYmFzZWQgbWV0aG9kcyIgY2xhc3M9Im13LXJlZGlyZWN0Ij5DYWxlbmRhci1i
YXNlZCBtZXRob2RzPC9hPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+
JiMxNjA7wrc8L3NwYW4+ICA8YSBocmVmPSIvd2lraS9CaWxsaW5nc19vdnVsYXRp
b25fbWV0aG9kIiB0aXRsZT0iQmlsbGluZ3Mgb3Z1bGF0aW9uIG1ldGhvZCI+Qmls
bGluZ3MgT3Z1bGF0aW9uIE1ldGhvZDwvYT48c3BhbiBzdHlsZT0iZm9udC13ZWln
aHQ6Ym9sZDsiPiYjMTYwO8K3PC9zcGFuPiAgPGEgaHJlZj0iL3dpa2kvQ3JlaWdo
dG9uX01vZGVsIiB0aXRsZT0iQ3JlaWdodG9uIE1vZGVsIiBjbGFzcz0ibXctcmVk
aXJlY3QiPkNyZWlnaHRvbiBNb2RlbDwvYT48L2Rpdj4KPC90ZD4KPC90cj4KPC90
YWJsZT4KPC90ZD4KPC90cj4KPHRyIHN0eWxlPSJoZWlnaHQ6MnB4Ij4KPHRkPjwv
dGQ+CjwvdHI+Cjx0cj4KPHRkIGNsYXNzPSJuYXZib3gtZ3JvdXAiIHN0eWxlPSI7
OyI+U3VwcHJlc3Npb248L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246bGVmdDti
b3JkZXItbGVmdC13aWR0aDoycHg7Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7d2lk
dGg6MTAwJTtwYWRkaW5nOjBweDtiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVu
dDs7OyIgY2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIj4KPGRpdiBzdHls
ZT0icGFkZGluZzowZW0gMC4yNWVtIj48YSBocmVmPSIvd2lraS9FeHRlbmRlZF9j
eWNsZV9jb21iaW5lZF9ob3Jtb25hbF9jb250cmFjZXB0aXZlIiB0aXRsZT0iRXh0
ZW5kZWQgY3ljbGUgY29tYmluZWQgaG9ybW9uYWwgY29udHJhY2VwdGl2ZSI+RXh0
ZW5kZWQgY3ljbGUgY29tYmluZWQgaG9ybW9uYWwgY29udHJhY2VwdGl2ZTwvYT48
c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDsiPiYjMTYwO8K3PC9zcGFuPiAg
PGEgaHJlZj0iL3dpa2kvTGFjdGF0aW9uYWxfYW1lbm9ycmhlYV9tZXRob2QiIHRp
dGxlPSJMYWN0YXRpb25hbCBhbWVub3JyaGVhIG1ldGhvZCI+TGFjdGF0aW9uYWwg
YW1lbm9ycmhlYSBtZXRob2Q8L2E+PC9kaXY+CjwvdGQ+CjwvdHI+Cjx0ciBzdHls
ZT0iaGVpZ2h0OjJweCI+Cjx0ZD48L3RkPgo8L3RyPgo8dHI+Cjx0ZCBjbGFzcz0i
bmF2Ym94LWdyb3VwIiBzdHlsZT0iOzsiPjxhIGhyZWY9Ii93aWtpL01lbnN0cnVh
bF9kaXNvcmRlciIgdGl0bGU9Ik1lbnN0cnVhbCBkaXNvcmRlciI+RGlzb3JkZXJz
PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1sZWZ0
LXdpZHRoOjJweDtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDt3aWR0aDoxMDAlO3Bh
ZGRpbmc6MHB4O2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ozs7IiBjbGFz
cz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCI+CjxkaXYgc3R5bGU9InBhZGRpbmc6
MGVtIDAuMjVlbSI+PGEgaHJlZj0iL3dpa2kvQW1lbm9ycmhvZWEiIHRpdGxlPSJB
bWVub3JyaG9lYSI+QW1lbm9ycmhvZWE8L2E+PHNwYW4gc3R5bGU9ImZvbnQtd2Vp
Z2h0OmJvbGQ7Ij4mIzE2MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93aWtpL0Fub3Z1
bGF0aW9uIiB0aXRsZT0iQW5vdnVsYXRpb24iPkFub3Z1bGF0aW9uPC9hPjxzcGFu
IHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+JiMxNjA7wrc8L3NwYW4+ICA8YSBo
cmVmPSIvd2lraS9EeXNtZW5vcnJoZWEiIHRpdGxlPSJEeXNtZW5vcnJoZWEiPkR5
c21lbm9ycmhlYTwvYT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDsiPiYj
MTYwO8K3PC9zcGFuPiAgPGEgaHJlZj0iL3dpa2kvSHlwb21lbm9ycmhlYSIgdGl0
bGU9Ikh5cG9tZW5vcnJoZWEiPkh5cG9tZW5vcnJoZWE8L2E+PHNwYW4gc3R5bGU9
ImZvbnQtd2VpZ2h0OmJvbGQ7Ij4mIzE2MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93
aWtpL0lycmVndWxhcl9tZW5zdHJ1YXRpb24iIHRpdGxlPSJJcnJlZ3VsYXIgbWVu
c3RydWF0aW9uIj5JcnJlZ3VsYXIgbWVuc3RydWF0aW9uPC9hPjxzcGFuIHN0eWxl
PSJmb250LXdlaWdodDpib2xkOyI+JiMxNjA7wrc8L3NwYW4+ICA8YSBocmVmPSIv
d2lraS9NZW5vbWV0cm9ycmhhZ2lhIiB0aXRsZT0iTWVub21ldHJvcnJoYWdpYSI+
TWVub21ldHJvcnJoYWdpYTwvYT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9s
ZDsiPiYjMTYwO8K3PC9zcGFuPiAgPGEgaHJlZj0iL3dpa2kvTWVub3JyaGFnaWEi
IHRpdGxlPSJNZW5vcnJoYWdpYSI+TWVub3JyaGFnaWE8L2E+PHNwYW4gc3R5bGU9
ImZvbnQtd2VpZ2h0OmJvbGQ7Ij4mIzE2MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93
aWtpL01ldHJvcnJoYWdpYSIgdGl0bGU9Ik1ldHJvcnJoYWdpYSI+TWV0cm9ycmhh
Z2lhPC9hPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+JiMxNjA7wrc8
L3NwYW4+ICA8YSBocmVmPSIvd2lraS9PbGlnb21lbm9ycmhlYSIgdGl0bGU9Ik9s
aWdvbWVub3JyaGVhIj5PbGlnb21lbm9ycmhlYTwvYT48L2Rpdj4KPC90ZD4KPC90
cj4KPHRyIHN0eWxlPSJoZWlnaHQ6MnB4Ij4KPHRkPjwvdGQ+CjwvdHI+Cjx0cj4K
PHRkIGNsYXNzPSJuYXZib3gtZ3JvdXAiIHN0eWxlPSI7OyI+UmVsYXRlZCBldmVu
dHM8L3RkPgo8dGQgc3R5bGU9InRleHQtYWxpZ246bGVmdDtib3JkZXItbGVmdC13
aWR0aDoycHg7Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7d2lkdGg6MTAwJTtwYWRk
aW5nOjBweDtiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDs7OyIgY2xhc3M9
Im5hdmJveC1saXN0IG5hdmJveC1ldmVuIj4KPGRpdiBzdHlsZT0icGFkZGluZzow
ZW0gMC4yNWVtIj48YSBocmVmPSIvd2lraS9Gb2xsaWN1bG9nZW5lc2lzIiB0aXRs
ZT0iRm9sbGljdWxvZ2VuZXNpcyI+Rm9sbGljdWxvZ2VuZXNpczwvYT48c3BhbiBz
dHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDsiPiYjMTYwO8K3PC9zcGFuPiAgPGEgaHJl
Zj0iL3dpa2kvTWNDbGludG9ja19lZmZlY3QiIHRpdGxlPSJNY0NsaW50b2NrIGVm
ZmVjdCI+TWNDbGludG9jayBlZmZlY3Q8L2E+PHNwYW4gc3R5bGU9ImZvbnQtd2Vp
Z2h0OmJvbGQ7Ij4mIzE2MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93aWtpL1ByZW1l
bnN0cnVhbF9zeW5kcm9tZSIgdGl0bGU9IlByZW1lbnN0cnVhbCBzeW5kcm9tZSI+
UHJlbWVuc3RydWFsIHN5bmRyb21lPC9hPiAvIDxhIGhyZWY9Ii93aWtpL1ByZW1l
bnN0cnVhbF9keXNwaG9yaWNfZGlzb3JkZXIiIHRpdGxlPSJQcmVtZW5zdHJ1YWwg
ZHlzcGhvcmljIGRpc29yZGVyIj5QcmVtZW5zdHJ1YWwgZHlzcGhvcmljIGRpc29y
ZGVyPC9hPjwvZGl2Pgo8L3RkPgo8L3RyPgo8dHIgc3R5bGU9ImhlaWdodDoycHgi
Pgo8dGQ+PC90ZD4KPC90cj4KPHRyPgo8dGQgY2xhc3M9Im5hdmJveC1ncm91cCIg
c3R5bGU9Ijs7Ij48YSBocmVmPSIvd2lraS9DdWx0dXJlX2FuZF9tZW5zdHJ1YXRp
b24iIHRpdGxlPSJDdWx0dXJlIGFuZCBtZW5zdHJ1YXRpb24iPkluIGN1bHR1cmUg
YW5kIHJlbGlnaW9uPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0
O2JvcmRlci1sZWZ0LXdpZHRoOjJweDtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDt3
aWR0aDoxMDAlO3BhZGRpbmc6MHB4O2JhY2tncm91bmQtY29sb3I6IHRyYW5zcGFy
ZW50Ozs7IiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCI+CjxkaXYgc3R5
bGU9InBhZGRpbmc6MGVtIDAuMjVlbSI+PGEgaHJlZj0iL3dpa2kvQ2hoYXVwYWRp
IiB0aXRsZT0iQ2hoYXVwYWRpIj5DaGhhdXBhZGk8L2E+PHNwYW4gc3R5bGU9ImZv
bnQtd2VpZ2h0OmJvbGQ7Ij4mIzE2MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93aWtp
L01lbnN0cnVhbF90YWJvbyIgdGl0bGU9Ik1lbnN0cnVhbCB0YWJvbyI+TWVuc3Ry
dWFsIHRhYm9vPC9hPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+JiMx
NjA7wrc8L3NwYW4+ICA8YSBocmVmPSIvd2lraS9OaWRkYWgiIHRpdGxlPSJOaWRk
YWgiPk5pZGRhaDwvYT48L2Rpdj4KPC90ZD4KPC90cj4KPHRyIHN0eWxlPSJoZWln
aHQ6MnB4OyI+Cjx0ZD48L3RkPgo8L3RyPgo8dHI+Cjx0ZCBjbGFzcz0ibmF2Ym94
LWFib3ZlYmVsb3ciIHN0eWxlPSI7YmFja2dyb3VuZDojQkJFRUJCOyIgY29sc3Bh
bj0iMiI+Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9Im5vd3JhcGxpbmtz
IG5hdmJveC1zdWJncm91cCIgc3R5bGU9IndpZHRoOjEwMCU7Ozs7Ij4KPHRyPgo8
dGQgY29sc3Bhbj0iMiIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzowcHg7Ozti
YWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOmluaGVyaXQ7IiBjbGFzcz0ibmF2
Ym94LWxpc3QgbmF2Ym94LW9kZCI+CjxkaXYgc3R5bGU9InBhZGRpbmc6MHB4OyI+
Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9Im5hdmJveC1jb2x1bW5zLXRh
YmxlIiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwMCU7Ij4KPHRyIHN0
eWxlPSJ2ZXJ0aWNhbC1hbGlnbjp0b3A7Ij4KPHRkIHN0eWxlPSJwYWRkaW5nOjBw
eDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOiNlZmVmZWY7Ozt0ZXh0LWFs
aWduOmNlbnRlcjtiYWNrZ3JvdW5kOiNCQkVFQkI7O3dpZHRoOjEwZW07Ij4KPGRp
dj4KPHA+PGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6TWVkaWNpbmVfbmF2cyIgdGl0
bGU9IlRlbXBsYXRlOk1lZGljaW5lIG5hdnMiPk08L2E+OiDimYAgPGEgaHJlZj0i
L3dpa2kvUmVwcm9kdWN0aXZlX3N5c3RlbSIgdGl0bGU9IlJlcHJvZHVjdGl2ZSBz
eXN0ZW0iPkZSUzwvYT48L3A+CjwvZGl2Pgo8L3RkPgo8dGQgc3R5bGU9ImJvcmRl
ci1sZWZ0OjJweCBzb2xpZCAjZmRmZGZkO3BhZGRpbmc6MHB4O3RleHQtYWxpZ246
Y2VudGVyO2JhY2tncm91bmQ6I2VmZWZlZjs7O3RleHQtYWxpZ246Y2VudGVyO2Jh
Y2tncm91bmQ6d2hpdGU7O3dpZHRoOjEwZW07Ij4KPGRpdj4KPHA+PGEgaHJlZj0i
L3dpa2kvVGVtcGxhdGU6RmVtYWxlX3JlcHJvZHVjdGl2ZV9zeXN0ZW0iIHRpdGxl
PSJUZW1wbGF0ZTpGZW1hbGUgcmVwcm9kdWN0aXZlIHN5c3RlbSI+YW5hdDwvYT4v
PGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6UmVwcm9kdWN0aXZlX3BoeXNpb2xvZ3ki
IHRpdGxlPSJUZW1wbGF0ZTpSZXByb2R1Y3RpdmUgcGh5c2lvbG9neSI+cGh5czwv
YT4vPGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6RGV2ZWxvcG1lbnRfb2ZfdXJpbmFy
eV9hbmRfcmVwcm9kdWN0aXZlX3N5c3RlbXMiIHRpdGxlPSJUZW1wbGF0ZTpEZXZl
bG9wbWVudCBvZiB1cmluYXJ5IGFuZCByZXByb2R1Y3RpdmUgc3lzdGVtcyI+ZGV2
cDwvYT48L3A+CjwvZGl2Pgo8L3RkPgo8dGQgc3R5bGU9ImJvcmRlci1sZWZ0OjJw
eCBzb2xpZCAjZmRmZGZkO3BhZGRpbmc6MHB4O3RleHQtYWxpZ246Y2VudGVyO2Jh
Y2tncm91bmQ6I2VmZWZlZjs7O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6
c2lsdmVyOzt3aWR0aDoxMGVtOyI+CjxkaXY+CjxwPjxhIGhyZWY9Ii93aWtpL1Rl
bXBsYXRlOkZlbWFsZV9kaXNlYXNlc19vZl90aGVfcGVsdmlzX2FuZF9nZW5pdGFs
cyIgdGl0bGU9IlRlbXBsYXRlOkZlbWFsZSBkaXNlYXNlcyBvZiB0aGUgcGVsdmlz
IGFuZCBnZW5pdGFscyI+bm9jbzwvYT4vPGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6
RmVtYWxlX2Nvbmdlbml0YWxfbWFsZm9ybWF0aW9uc19vZl9nZW5pdGFsX29yZ2Fu
cyIgdGl0bGU9IlRlbXBsYXRlOkZlbWFsZSBjb25nZW5pdGFsIG1hbGZvcm1hdGlv
bnMgb2YgZ2VuaXRhbCBvcmdhbnMiIGNsYXNzPSJtdy1yZWRpcmVjdCI+Y29uZzwv
YT4vPGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6RmVtYWxlX2dlbml0YWxfbmVvcGxh
c2lhIiB0aXRsZT0iVGVtcGxhdGU6RmVtYWxlIGdlbml0YWwgbmVvcGxhc2lhIj5u
cGxzPC9hPiwgPGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6UmVwcm9kdWN0aXZlX3N5
c3RlbV9zeW1wdG9tc19hbmRfc2lnbnMiIHRpdGxlPSJUZW1wbGF0ZTpSZXByb2R1
Y3RpdmUgc3lzdGVtIHN5bXB0b21zIGFuZCBzaWducyI+c3lzaTwvYT4vPGEgaHJl
Zj0iL3dpa2kvVGVtcGxhdGU6RXBvbnltb3VzX21lZGljYWxfc2lnbnNfZm9yX3Jl
cHJvZHVjdGl2ZV9zeXN0ZW0iIHRpdGxlPSJUZW1wbGF0ZTpFcG9ueW1vdXMgbWVk
aWNhbCBzaWducyBmb3IgcmVwcm9kdWN0aXZlIHN5c3RlbSI+ZXBvbjwvYT48L3A+
CjwvZGl2Pgo8L3RkPgo8dGQgc3R5bGU9ImJvcmRlci1sZWZ0OjJweCBzb2xpZCAj
ZmRmZGZkO3BhZGRpbmc6MHB4O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6
I2VmZWZlZjs7O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6I2NjZjs7d2lk
dGg6MTBlbTsiPgo8ZGl2Pgo8cD48YSBocmVmPSIvd2lraS9UZW1wbGF0ZTpGZW1h
bGVfZ2VuaXRhbF9wcm9jZWR1cmVzIiB0aXRsZT0iVGVtcGxhdGU6RmVtYWxlIGdl
bml0YWwgcHJvY2VkdXJlcyI+cHJvYzwvYT4vPGEgaHJlZj0iL3dpa2kvVGVtcGxh
dGU6QXNzaXN0ZWRfcmVwcm9kdWN0aXZlX3RlY2hub2xvZ3kiIHRpdGxlPSJUZW1w
bGF0ZTpBc3Npc3RlZCByZXByb2R1Y3RpdmUgdGVjaG5vbG9neSI+YXNzdDwvYT4s
IGRydWcgKDxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlOkd5bmVjb2xvZ2ljYWxfYW50
aS1pbmZlY3RpdmVzX2FuZF9hbnRpc2VwdGljcyIgdGl0bGU9IlRlbXBsYXRlOkd5
bmVjb2xvZ2ljYWwgYW50aS1pbmZlY3RpdmVzIGFuZCBhbnRpc2VwdGljcyI+RzE8
L2E+LzxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlOkJpcnRoX2NvbnRyb2xfbWV0aG9k
cyIgdGl0bGU9IlRlbXBsYXRlOkJpcnRoIGNvbnRyb2wgbWV0aG9kcyI+RzJCPC9h
Pi88YSBocmVmPSIvd2lraS9UZW1wbGF0ZTpFc3Ryb2dlbnNfYW5kX3Byb2dlc3Rv
Z2VucyIgdGl0bGU9IlRlbXBsYXRlOkVzdHJvZ2VucyBhbmQgcHJvZ2VzdG9nZW5z
Ij5HM0NEPC9hPik8L3A+CjwvZGl2Pgo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8L2Rp
dj4KPC90ZD4KPC90cj4KPC90YWJsZT4KPC90ZD4KPC90cj4KPC90YWJsZT4KPC90
ZD4KPC90cj4KPC90YWJsZT4KPHRhYmxlIGNsYXNzPSJuYXZib3giIGNlbGxzcGFj
aW5nPSIwIiBzdHlsZT0iOyI+Cjx0cj4KPHRkIHN0eWxlPSJwYWRkaW5nOjJweDsi
Pgo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJub3dyYXBsaW5rcyBjb2xs
YXBzaWJsZSBhdXRvY29sbGFwc2UiIHN0eWxlPSJ3aWR0aDoxMDAlO2JhY2tncm91
bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6aW5oZXJpdDs7Ij4KPHRyPgo8dGggc3R5bGU9
IjtiYWNrZ3JvdW5kOiNlZmVmZWYiIGNvbHNwYW49IjIiIGNsYXNzPSJuYXZib3gt
dGl0bGUiPgo8ZGl2IHN0eWxlPSJmbG9hdDpsZWZ0OyB3aWR0aDo2ZW07dGV4dC1h
bGlnbjpsZWZ0OyI+CjxkaXYgY2xhc3M9Im5vcHJpbnQgcGxhaW5saW5rcyBuYXZi
YXIiIHN0eWxlPSJiYWNrZ3JvdW5kOm5vbmU7IHBhZGRpbmc6MDsgZm9udC13ZWln
aHQ6bm9ybWFsOztiYWNrZ3JvdW5kOiNlZmVmZWY7Ym9yZGVyOm5vbmU7OyBmb250
LXNpemU6eHgtc21hbGw7Ij48YSBocmVmPSIvd2lraS9UZW1wbGF0ZTpSZXByb2R1
Y3RpdmVfcGh5c2lvbG9neSIgdGl0bGU9IlRlbXBsYXRlOlJlcHJvZHVjdGl2ZSBw
aHlzaW9sb2d5Ij48c3BhbiB0aXRsZT0iVmlldyB0aGlzIHRlbXBsYXRlIiBzdHls
ZT0iO2JhY2tncm91bmQ6I2VmZWZlZjtib3JkZXI6bm9uZTsiPnY8L3NwYW4+PC9h
PiYjMTYwOzxzcGFuIHN0eWxlPSJmb250LXNpemU6ODAlOyI+4oCiPC9zcGFuPiYj
MTYwOzxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlX3RhbGs6UmVwcm9kdWN0aXZlX3Bo
eXNpb2xvZ3kiIHRpdGxlPSJUZW1wbGF0ZSB0YWxrOlJlcHJvZHVjdGl2ZSBwaHlz
aW9sb2d5Ij48c3BhbiB0aXRsZT0iRGlzY3VzcyB0aGlzIHRlbXBsYXRlIiBzdHls
ZT0iO2JhY2tncm91bmQ6I2VmZWZlZjtib3JkZXI6bm9uZTsiPmQ8L3NwYW4+PC9h
PiYjMTYwOzxzcGFuIHN0eWxlPSJmb250LXNpemU6ODAlOyI+4oCiPC9zcGFuPiYj
MTYwOzxhIGhyZWY9Imh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3cvaW5kZXgucGhw
P3RpdGxlPVRlbXBsYXRlOlJlcHJvZHVjdGl2ZV9waHlzaW9sb2d5JmFtcDthY3Rp
b249ZWRpdCIgY2xhc3M9ImV4dGVybmFsIHRleHQiIHJlbD0ibm9mb2xsb3ciPjxz
cGFuIHRpdGxlPSJFZGl0IHRoaXMgdGVtcGxhdGUiIHN0eWxlPSI7YmFja2dyb3Vu
ZDojZWZlZmVmO2JvcmRlcjpub25lOzsiPmU8L3NwYW4+PC9hPjwvZGl2Pgo8L2Rp
dj4KPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImZvbnQtc2l6ZToxMTAlOyI+PGEgaHJl
Zj0iL3dpa2kvSHVtYW5fcGh5c2lvbG9neSIgdGl0bGU9Ikh1bWFuIHBoeXNpb2xv
Z3kiPkh1bWFuIHBoeXNpb2xvZ3k8L2E+IGFuZCA8YSBocmVmPSIvd2lraS9FbmRv
Y3Jpbm9sb2d5IiB0aXRsZT0iRW5kb2NyaW5vbG9neSI+ZW5kb2NyaW5vbG9neTwv
YT4gb2YgPGEgaHJlZj0iL3dpa2kvU2V4dWFsX3JlcHJvZHVjdGlvbiIgdGl0bGU9
IlNleHVhbCByZXByb2R1Y3Rpb24iPnNleHVhbCByZXByb2R1Y3Rpb248L2E+PC9z
cGFuPjwvdGg+CjwvdHI+Cjx0ciBzdHlsZT0iaGVpZ2h0OjJweCI+Cjx0ZD48L3Rk
Pgo8L3RyPgo8dHI+Cjx0ZCBjbGFzcz0ibmF2Ym94LWdyb3VwIiBzdHlsZT0iO2Jh
Y2tncm91bmQ6I0JCRUVCQjs7Ij48YSBocmVmPSIvd2lraS9NZW5zdHJ1YWxfY3lj
bGUiIHRpdGxlPSJNZW5zdHJ1YWwgY3ljbGUiPk1lbnN0cnVhbDwvYT4gYW5kIDxh
IGhyZWY9Ii93aWtpL0VzdHJvdXNfY3ljbGUiIHRpdGxlPSJFc3Ryb3VzIGN5Y2xl
Ij5lc3Ryb3VzIGN5Y2xlPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjps
ZWZ0O2JvcmRlci1sZWZ0LXdpZHRoOjJweDtib3JkZXItbGVmdC1zdHlsZTpzb2xp
ZDt3aWR0aDoxMDAlO3BhZGRpbmc6MHB4Ozs7IiBjbGFzcz0ibmF2Ym94LWxpc3Qg
bmF2Ym94LWV2ZW4iPgo8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW0iPjxh
IGhyZWY9Ii93aWtpL01lbnN0cnVhdGlvbiIgdGl0bGU9Ik1lbnN0cnVhdGlvbiI+
TWVuc3RydWF0aW9uPC9hPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+
JiMxNjA7wrc8L3NwYW4+ICA8YSBocmVmPSIvd2lraS9Gb2xsaWN1bGFyX3BoYXNl
IiB0aXRsZT0iRm9sbGljdWxhciBwaGFzZSI+Rm9sbGljdWxhciBwaGFzZTwvYT48
c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDsiPiYjMTYwO8K3PC9zcGFuPiAg
PGEgaHJlZj0iL3dpa2kvT3Z1bGF0aW9uIiB0aXRsZT0iT3Z1bGF0aW9uIj5PdnVs
YXRpb248L2E+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7Ij4mIzE2MDvC
tzwvc3Bhbj4gIDxhIGhyZWY9Ii93aWtpL0x1dGVhbF9waGFzZSIgdGl0bGU9Ikx1
dGVhbCBwaGFzZSI+THV0ZWFsIHBoYXNlPC9hPjwvZGl2Pgo8L3RkPgo8L3RyPgo8
dHIgc3R5bGU9ImhlaWdodDoycHgiPgo8dGQ+PC90ZD4KPC90cj4KPHRyPgo8dGQg
Y2xhc3M9Im5hdmJveC1ncm91cCIgc3R5bGU9IjtiYWNrZ3JvdW5kOiNCQkVFQkI7
OyI+PGEgaHJlZj0iL3dpa2kvR2FtZXRvZ2VuZXNpcyIgdGl0bGU9IkdhbWV0b2dl
bmVzaXMiPkdhbWV0b2dlbmVzaXM8L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFs
aWduOmxlZnQ7Ym9yZGVyLWxlZnQtd2lkdGg6MnB4O2JvcmRlci1sZWZ0LXN0eWxl
OnNvbGlkO3dpZHRoOjEwMCU7cGFkZGluZzowcHg7OzsiIGNsYXNzPSJuYXZib3gt
bGlzdCBuYXZib3gtb2RkIj4KPGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVt
Ij48YSBocmVmPSIvd2lraS9TcGVybWF0b2dlbmVzaXMiIHRpdGxlPSJTcGVybWF0
b2dlbmVzaXMiPlNwZXJtYXRvZ2VuZXNpczwvYT4gKDxhIGhyZWY9Ii93aWtpL1Nw
ZXJtYXRvZ29uaXVtIiB0aXRsZT0iU3Blcm1hdG9nb25pdW0iPnNwZXJtYXRvZ29u
aXVtPC9hPiwgPGEgaHJlZj0iL3dpa2kvU3Blcm1hdG9jeXRlIiB0aXRsZT0iU3Bl
cm1hdG9jeXRlIj5zcGVybWF0b2N5dGU8L2E+LCA8YSBocmVmPSIvd2lraS9TcGVy
bWF0aWQiIHRpdGxlPSJTcGVybWF0aWQiPnNwZXJtYXRpZDwvYT4sIDxhIGhyZWY9
Ii93aWtpL1NwZXJtIiB0aXRsZT0iU3Blcm0iPnNwZXJtPC9hPik8c3BhbiBzdHls
ZT0iZm9udC13ZWlnaHQ6Ym9sZDsiPiYjMTYwO8K3PC9zcGFuPiAgPGEgaHJlZj0i
L3dpa2kvT29nZW5lc2lzIiB0aXRsZT0iT29nZW5lc2lzIj5Pb2dlbmVzaXM8L2E+
ICg8YSBocmVmPSIvd2lraS9Pb2dvbml1bSIgdGl0bGU9Ik9vZ29uaXVtIj5vb2dv
bml1bTwvYT4sIDxhIGhyZWY9Ii93aWtpL09vY3l0ZSIgdGl0bGU9Ik9vY3l0ZSI+
b29jeXRlPC9hPiwgPGEgaHJlZj0iL3dpa2kvT290aWQiIHRpdGxlPSJPb3RpZCIg
Y2xhc3M9Im13LXJlZGlyZWN0Ij5vb3RpZDwvYT4sIDxhIGhyZWY9Ii93aWtpL092
dW0iIHRpdGxlPSJPdnVtIj5vdnVtPC9hPik8c3BhbiBzdHlsZT0iZm9udC13ZWln
aHQ6Ym9sZDsiPiYjMTYwO8K3PC9zcGFuPiAgPGEgaHJlZj0iL3dpa2kvR2VybV9j
ZWxsIiB0aXRsZT0iR2VybSBjZWxsIj5HZXJtIGNlbGw8L2E+ICg8YSBocmVmPSIv
d2lraS9Hb25vY3l0ZSIgdGl0bGU9Ikdvbm9jeXRlIj5nb25vY3l0ZTwvYT4sIDxh
IGhyZWY9Ii93aWtpL0dhbWV0ZSIgdGl0bGU9IkdhbWV0ZSI+Z2FtZXRlPC9hPik8
L2Rpdj4KPC90ZD4KPC90cj4KPHRyIHN0eWxlPSJoZWlnaHQ6MnB4Ij4KPHRkPjwv
dGQ+CjwvdHI+Cjx0cj4KPHRkIGNsYXNzPSJuYXZib3gtZ3JvdXAiIHN0eWxlPSI7
YmFja2dyb3VuZDojQkJFRUJCOzsiPjxhIGhyZWY9Ii93aWtpL0h1bWFuX3NleHVh
bF9hY3Rpdml0eSIgdGl0bGU9Ikh1bWFuIHNleHVhbCBhY3Rpdml0eSI+SHVtYW4g
c2V4dWFsIGJlaGF2aW9yPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjps
ZWZ0O2JvcmRlci1sZWZ0LXdpZHRoOjJweDtib3JkZXItbGVmdC1zdHlsZTpzb2xp
ZDt3aWR0aDoxMDAlO3BhZGRpbmc6MHB4Ozs7IiBjbGFzcz0ibmF2Ym94LWxpc3Qg
bmF2Ym94LWV2ZW4iPgo8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW0iPjxh
IGhyZWY9Ii93aWtpL1NleHVhbF9pbnRlcmNvdXJzZSIgdGl0bGU9IlNleHVhbCBp
bnRlcmNvdXJzZSI+U2V4dWFsIGludGVyY291cnNlPC9hPjxzcGFuIHN0eWxlPSJm
b250LXdlaWdodDpib2xkOyI+JiMxNjA7wrc8L3NwYW4+ICA8YSBocmVmPSIvd2lr
aS9NYXN0dXJiYXRpb24iIHRpdGxlPSJNYXN0dXJiYXRpb24iPk1hc3R1cmJhdGlv
bjwvYT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDsiPiYjMTYwO8K3PC9z
cGFuPiAgPGEgaHJlZj0iL3dpa2kvRXJlY3Rpb24iIHRpdGxlPSJFcmVjdGlvbiI+
RXJlY3Rpb248L2E+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7Ij4mIzE2
MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93aWtpL09yZ2FzbSIgdGl0bGU9Ik9yZ2Fz
bSI+T3JnYXNtPC9hPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+JiMx
NjA7wrc8L3NwYW4+ICA8YSBocmVmPSIvd2lraS9FamFjdWxhdGlvbiIgdGl0bGU9
IkVqYWN1bGF0aW9uIj5FamFjdWxhdGlvbjwvYT48c3BhbiBzdHlsZT0iZm9udC13
ZWlnaHQ6Ym9sZDsiPiYjMTYwO8K3PC9zcGFuPiAgPGEgaHJlZj0iL3dpa2kvSW5z
ZW1pbmF0aW9uIiB0aXRsZT0iSW5zZW1pbmF0aW9uIj5JbnNlbWluYXRpb248L2E+
PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7Ij4mIzE2MDvCtzwvc3Bhbj4g
IDxhIGhyZWY9Ii93aWtpL0ZlcnRpbGlzYXRpb24iIHRpdGxlPSJGZXJ0aWxpc2F0
aW9uIj5GZXJ0aWxpc2F0aW9uPC9hPi88YSBocmVmPSIvd2lraS9GZXJ0aWxpdHki
IHRpdGxlPSJGZXJ0aWxpdHkiPkZlcnRpbGl0eTwvYT48c3BhbiBzdHlsZT0iZm9u
dC13ZWlnaHQ6Ym9sZDsiPiYjMTYwO8K3PC9zcGFuPiAgPGEgaHJlZj0iL3dpa2kv
SW1wbGFudGF0aW9uIiB0aXRsZT0iSW1wbGFudGF0aW9uIj5JbXBsYW50YXRpb248
L2E+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7Ij4mIzE2MDvCtzwvc3Bh
bj4gIDxhIGhyZWY9Ii93aWtpL1ByZWduYW5jeSIgdGl0bGU9IlByZWduYW5jeSI+
UHJlZ25hbmN5PC9hPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+JiMx
NjA7wrc8L3NwYW4+ICA8YSBocmVmPSIvd2lraS9Qb3N0bmF0YWwiIHRpdGxlPSJQ
b3N0bmF0YWwiPlBvc3RwYXJ0dW0gcGVyaW9kPC9hPjxzcGFuIHN0eWxlPSJmb250
LXdlaWdodDpib2xkOyI+JiMxNjA7wrc8L3NwYW4+ICA8YSBocmVmPSIvd2lraS9N
ZWNoYW5pY3Nfb2Zfc2V4IiB0aXRsZT0iTWVjaGFuaWNzIG9mIHNleCIgY2xhc3M9
Im13LXJlZGlyZWN0Ij5NZWNoYW5pY3Mgb2Ygc2V4PC9hPjwvZGl2Pgo8L3RkPgo8
L3RyPgo8dHIgc3R5bGU9ImhlaWdodDoycHgiPgo8dGQ+PC90ZD4KPC90cj4KPHRy
Pgo8dGQgY2xhc3M9Im5hdmJveC1ncm91cCIgc3R5bGU9IjtiYWNrZ3JvdW5kOiNC
QkVFQkI7OyI+PGEgaHJlZj0iL3dpa2kvSHVtYW5fZGV2ZWxvcG1lbnRfKGJpb2xv
Z3kpIiB0aXRsZT0iSHVtYW4gZGV2ZWxvcG1lbnQgKGJpb2xvZ3kpIj5MaWZlIHNw
YW48L2E+PC90ZD4KPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7Ym9yZGVyLWxl
ZnQtd2lkdGg6MnB4O2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO3dpZHRoOjEwMCU7
cGFkZGluZzowcHg7OzsiIGNsYXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIj4K
PGRpdiBzdHlsZT0icGFkZGluZzowZW0gMC4yNWVtIj4KPHA+PGEgaHJlZj0iL3dp
a2kvUHJlbmF0YWxfZGV2ZWxvcG1lbnQiIHRpdGxlPSJQcmVuYXRhbCBkZXZlbG9w
bWVudCI+UHJlbmF0YWwgZGV2ZWxvcG1lbnQ8L2E+LzxhIGhyZWY9Ii93aWtpL1Nl
eHVhbF9kaW1vcnBoaXNtIiB0aXRsZT0iU2V4dWFsIGRpbW9ycGhpc20iPlNleHVh
bCBkaW1vcnBoaXNtPC9hPi88YSBocmVmPSIvd2lraS9TZXh1YWxfZGlmZmVyZW50
aWF0aW9uIiB0aXRsZT0iU2V4dWFsIGRpZmZlcmVudGlhdGlvbiI+U2V4dWFsIGRp
ZmZlcmVudGlhdGlvbjwvYT4gKDxhIGhyZWY9Ii93aWtpL0ZlbWluaXphdGlvbl8o
YmlvbG9neSkiIHRpdGxlPSJGZW1pbml6YXRpb24gKGJpb2xvZ3kpIj5GZW1pbml6
YXRpb248L2E+LCA8YSBocmVmPSIvd2lraS9WaXJpbGl6YXRpb24iIHRpdGxlPSJW
aXJpbGl6YXRpb24iPlZpcmlsaXphdGlvbjwvYT4pPHNwYW4gc3R5bGU9ImZvbnQt
d2VpZ2h0OmJvbGQ7Ij4mIzE2MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93aWtpL1B1
YmVydHkiIHRpdGxlPSJQdWJlcnR5Ij5QdWJlcnR5PC9hPiAoPGEgaHJlZj0iL3dp
a2kvR29uYWRhcmNoZSIgdGl0bGU9IkdvbmFkYXJjaGUiPkdvbmFkYXJjaGU8L2E+
LCA8YSBocmVmPSIvd2lraS9QdWJhcmNoZSIgdGl0bGU9IlB1YmFyY2hlIj5QdWJh
cmNoZTwvYT4sIDxzdHJvbmcgY2xhc3M9InNlbGZsaW5rIj5NZW5hcmNoZTwvc3Ry
b25nPiwgPGEgaHJlZj0iL3dpa2kvQWRyZW5hcmNoZSIgdGl0bGU9IkFkcmVuYXJj
aGUiPkFkcmVuYXJjaGU8L2E+KTxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xk
OyI+JiMxNjA7wrc8L3NwYW4+PC9wPgo8YSBocmVmPSIvd2lraS9NYXRlcm5hbF9h
Z2VfZWZmZWN0IiB0aXRsZT0iTWF0ZXJuYWwgYWdlIGVmZmVjdCIgY2xhc3M9Im13
LXJlZGlyZWN0Ij5NYXRlcm5hbCBhZ2U8L2E+JiMxNjA7LyA8YSBocmVmPSIvd2lr
aS9QYXRlcm5hbF9hZ2VfZWZmZWN0IiB0aXRsZT0iUGF0ZXJuYWwgYWdlIGVmZmVj
dCI+UGF0ZXJuYWwgYWdlPC9hPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xk
OyI+JiMxNjA7wrc8L3NwYW4+ICA8YSBocmVmPSIvd2lraS9DbGltYWN0ZXJpY18o
aHVtYW4pIiB0aXRsZT0iQ2xpbWFjdGVyaWMgKGh1bWFuKSI+Q2xpbWFjdGVyaWM8
L2E+ICg8YSBocmVmPSIvd2lraS9NZW5vcGF1c2UiIHRpdGxlPSJNZW5vcGF1c2Ui
Pk1lbm9wYXVzZTwvYT4sIDxhIGhyZWY9Ii93aWtpL0FuZHJvcGF1c2UiIHRpdGxl
PSJBbmRyb3BhdXNlIj5BbmRyb3BhdXNlPC9hPik8L2Rpdj4KPC90ZD4KPC90cj4K
PHRyIHN0eWxlPSJoZWlnaHQ6MnB4Ij4KPHRkPjwvdGQ+CjwvdHI+Cjx0cj4KPHRk
IGNsYXNzPSJuYXZib3gtZ3JvdXAiIHN0eWxlPSI7YmFja2dyb3VuZDojQkJFRUJC
OzsiPjxhIGhyZWY9Ii93aWtpL0VnZ18oYmlvbG9neSkiIHRpdGxlPSJFZ2cgKGJp
b2xvZ3kpIj5FZ2cgKGJpb2xvZ3kpPC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1h
bGlnbjpsZWZ0O2JvcmRlci1sZWZ0LXdpZHRoOjJweDtib3JkZXItbGVmdC1zdHls
ZTpzb2xpZDt3aWR0aDoxMDAlO3BhZGRpbmc6MHB4Ozs7IiBjbGFzcz0ibmF2Ym94
LWxpc3QgbmF2Ym94LWV2ZW4iPgo8ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1
ZW0iPjxhIGhyZWY9Ii93aWtpL092dW0iIHRpdGxlPSJPdnVtIj5PdnVtPC9hPjxz
cGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+JiMxNjA7wrc8L3NwYW4+ICA8
YSBocmVmPSIvd2lraS9Pdmlwb3NpdGlvbiIgdGl0bGU9Ik92aXBvc2l0aW9uIj5P
dmlwb3NpdGlvbjwvYT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDsiPiYj
MTYwO8K3PC9zcGFuPiAgPGEgaHJlZj0iL3dpa2kvT3ZpcGFyaXR5IiB0aXRsZT0i
T3ZpcGFyaXR5Ij5PdmlwYXJpdHk8L2E+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0
OmJvbGQ7Ij4mIzE2MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93aWtpL092b3Zpdmlw
YXJpdHkiIHRpdGxlPSJPdm92aXZpcGFyaXR5Ij5Pdm92aXZpcGFyaXR5PC9hPjxz
cGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyI+JiMxNjA7wrc8L3NwYW4+ICA8
YSBocmVmPSIvd2lraS9WaXZpcGFyeSIgdGl0bGU9IlZpdmlwYXJ5Ij5WaXZpcGFy
eTwvYT48L2Rpdj4KPC90ZD4KPC90cj4KPHRyIHN0eWxlPSJoZWlnaHQ6MnB4Ij4K
PHRkPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIGNsYXNzPSJuYXZib3gtZ3JvdXAiIHN0
eWxlPSI7YmFja2dyb3VuZDojQkJFRUJCOzsiPjxhIGhyZWY9Ii93aWtpL1JlcHJv
ZHVjdGl2ZV9lbmRvY3Jpbm9sb2d5X2FuZF9pbmZlcnRpbGl0eSIgdGl0bGU9IlJl
cHJvZHVjdGl2ZSBlbmRvY3Jpbm9sb2d5IGFuZCBpbmZlcnRpbGl0eSI+UmVwcm9k
dWN0aXZlIGVuZG9jcmlub2xvZ3k8YnIgLz4KYW5kIGluZmVydGlsaXR5PC9hPjwv
dGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1sZWZ0LXdpZHRo
OjJweDtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDt3aWR0aDoxMDAlO3BhZGRpbmc6
MHB4Ozs7IiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCI+CjxkaXYgc3R5
bGU9InBhZGRpbmc6MGVtIDAuMjVlbSI+PGEgaHJlZj0iL3dpa2kvSHlwb3RoYWxh
bWljLXBpdHVpdGFyeS1nb25hZGFsX2F4aXMiIHRpdGxlPSJIeXBvdGhhbGFtaWMt
cGl0dWl0YXJ5LWdvbmFkYWwgYXhpcyI+SHlwb3RoYWxhbWljLXBpdHVpdGFyeS1n
b25hZGFsIGF4aXM8L2E+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7Ij4m
IzE2MDvCtzwvc3Bhbj4gIDxhIGhyZWY9Ii93aWtpL0FuZHJvbG9neSIgdGl0bGU9
IkFuZHJvbG9neSI+QW5kcm9sb2d5PC9hPjxzcGFuIHN0eWxlPSJmb250LXdlaWdo
dDpib2xkOyI+JiMxNjA7wrc8L3NwYW4+ICA8YSBocmVmPSIvd2lraS9Ib3Jtb25l
IiB0aXRsZT0iSG9ybW9uZSI+SG9ybW9uZTwvYT48L2Rpdj4KPC90ZD4KPC90cj4K
PHRyIHN0eWxlPSJoZWlnaHQ6MnB4Ij4KPHRkPjwvdGQ+CjwvdHI+Cjx0cj4KPHRk
IGNsYXNzPSJuYXZib3gtZ3JvdXAiIHN0eWxlPSI7YmFja2dyb3VuZDojQkJFRUJC
OzsiPjxhIGhyZWY9Ii93aWtpL0JyZWFzdCIgdGl0bGU9IkJyZWFzdCI+QnJlYXN0
PC9hPjwvdGQ+Cjx0ZCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1sZWZ0
LXdpZHRoOjJweDtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDt3aWR0aDoxMDAlO3Bh
ZGRpbmc6MHB4Ozs7IiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LWV2ZW4iPgo8
ZGl2IHN0eWxlPSJwYWRkaW5nOjBlbSAwLjI1ZW0iPjxhIGhyZWY9Ii93aWtpL1Ro
ZWxhcmNoZSIgdGl0bGU9IlRoZWxhcmNoZSI+VGhlbGFyY2hlPC9hPjxzcGFuIHN0
eWxlPSJmb250LXdlaWdodDpib2xkOyI+JiMxNjA7wrc8L3NwYW4+ICA8YSBocmVm
PSIvd2lraS9MYWN0YXRpb24iIHRpdGxlPSJMYWN0YXRpb24iPkxhY3RhdGlvbjwv
YT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDsiPiYjMTYwO8K3PC9zcGFu
PiAgPGEgaHJlZj0iL3dpa2kvQnJlYXN0ZmVlZGluZyIgdGl0bGU9IkJyZWFzdGZl
ZWRpbmciPkJyZWFzdGZlZWRpbmc8L2E+PC9kaXY+CjwvdGQ+CjwvdHI+Cjx0ciBz
dHlsZT0iaGVpZ2h0OjJweDsiPgo8dGQ+PC90ZD4KPC90cj4KPHRyPgo8dGQgY2xh
c3M9Im5hdmJveC1hYm92ZWJlbG93IiBzdHlsZT0iO2JhY2tncm91bmQ6I0JCRUVC
QjsiIGNvbHNwYW49IjIiPgo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJu
b3dyYXBsaW5rcyBuYXZib3gtc3ViZ3JvdXAiIHN0eWxlPSJ3aWR0aDoxMDAlOzs7
OyI+Cjx0cj4KPHRkIGNvbHNwYW49IjIiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRp
bmc6MHB4Ozs7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjppbmhlcml0OyIg
Y2xhc3M9Im5hdmJveC1saXN0IG5hdmJveC1vZGQiPgo8ZGl2IHN0eWxlPSJwYWRk
aW5nOjBweDsiPgo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJuYXZib3gt
Y29sdW1ucy10YWJsZSIgc3R5bGU9InRleHQtYWxpZ246bGVmdDt3aWR0aDoxMDAl
OyI+Cjx0ciBzdHlsZT0idmVydGljYWwtYWxpZ246dG9wOyI+Cjx0ZCBzdHlsZT0i
cGFkZGluZzowcHg7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDojZWZlZmVm
Ozs7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDojQkJFRUJCOzt3aWR0aDox
MGVtOyI+CjxkaXY+CjxwPjxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlOk1lZGljaW5l
X25hdnMiIHRpdGxlPSJUZW1wbGF0ZTpNZWRpY2luZSBuYXZzIj5NPC9hPjog4pmA
IDxhIGhyZWY9Ii93aWtpL1JlcHJvZHVjdGl2ZV9zeXN0ZW0iIHRpdGxlPSJSZXBy
b2R1Y3RpdmUgc3lzdGVtIj5GUlM8L2E+PC9wPgo8L2Rpdj4KPC90ZD4KPHRkIHN0
eWxlPSJib3JkZXItbGVmdDoycHggc29saWQgI2ZkZmRmZDtwYWRkaW5nOjBweDt0
ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOiNlZmVmZWY7Ozt0ZXh0LWFsaWdu
OmNlbnRlcjtiYWNrZ3JvdW5kOndoaXRlOzt3aWR0aDoxMGVtOyI+CjxkaXY+Cjxw
PjxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlOkZlbWFsZV9yZXByb2R1Y3RpdmVfc3lz
dGVtIiB0aXRsZT0iVGVtcGxhdGU6RmVtYWxlIHJlcHJvZHVjdGl2ZSBzeXN0ZW0i
PmFuYXQ8L2E+LzxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlOlJlcHJvZHVjdGl2ZV9w
aHlzaW9sb2d5IiB0aXRsZT0iVGVtcGxhdGU6UmVwcm9kdWN0aXZlIHBoeXNpb2xv
Z3kiPnBoeXM8L2E+LzxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlOkRldmVsb3BtZW50
X29mX3VyaW5hcnlfYW5kX3JlcHJvZHVjdGl2ZV9zeXN0ZW1zIiB0aXRsZT0iVGVt
cGxhdGU6RGV2ZWxvcG1lbnQgb2YgdXJpbmFyeSBhbmQgcmVwcm9kdWN0aXZlIHN5
c3RlbXMiPmRldnA8L2E+PC9wPgo8L2Rpdj4KPC90ZD4KPHRkIHN0eWxlPSJib3Jk
ZXItbGVmdDoycHggc29saWQgI2ZkZmRmZDtwYWRkaW5nOjBweDt0ZXh0LWFsaWdu
OmNlbnRlcjtiYWNrZ3JvdW5kOiNlZmVmZWY7Ozt0ZXh0LWFsaWduOmNlbnRlcjti
YWNrZ3JvdW5kOnNpbHZlcjs7d2lkdGg6MTBlbTsiPgo8ZGl2Pgo8cD48YSBocmVm
PSIvd2lraS9UZW1wbGF0ZTpGZW1hbGVfZGlzZWFzZXNfb2ZfdGhlX3BlbHZpc19h
bmRfZ2VuaXRhbHMiIHRpdGxlPSJUZW1wbGF0ZTpGZW1hbGUgZGlzZWFzZXMgb2Yg
dGhlIHBlbHZpcyBhbmQgZ2VuaXRhbHMiPm5vY288L2E+LzxhIGhyZWY9Ii93aWtp
L1RlbXBsYXRlOkZlbWFsZV9jb25nZW5pdGFsX21hbGZvcm1hdGlvbnNfb2ZfZ2Vu
aXRhbF9vcmdhbnMiIHRpdGxlPSJUZW1wbGF0ZTpGZW1hbGUgY29uZ2VuaXRhbCBt
YWxmb3JtYXRpb25zIG9mIGdlbml0YWwgb3JnYW5zIiBjbGFzcz0ibXctcmVkaXJl
Y3QiPmNvbmc8L2E+LzxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlOkZlbWFsZV9nZW5p
dGFsX25lb3BsYXNpYSIgdGl0bGU9IlRlbXBsYXRlOkZlbWFsZSBnZW5pdGFsIG5l
b3BsYXNpYSI+bnBsczwvYT4sIDxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlOlJlcHJv
ZHVjdGl2ZV9zeXN0ZW1fc3ltcHRvbXNfYW5kX3NpZ25zIiB0aXRsZT0iVGVtcGxh
dGU6UmVwcm9kdWN0aXZlIHN5c3RlbSBzeW1wdG9tcyBhbmQgc2lnbnMiPnN5c2k8
L2E+LzxhIGhyZWY9Ii93aWtpL1RlbXBsYXRlOkVwb255bW91c19tZWRpY2FsX3Np
Z25zX2Zvcl9yZXByb2R1Y3RpdmVfc3lzdGVtIiB0aXRsZT0iVGVtcGxhdGU6RXBv
bnltb3VzIG1lZGljYWwgc2lnbnMgZm9yIHJlcHJvZHVjdGl2ZSBzeXN0ZW0iPmVw
b248L2E+PC9wPgo8L2Rpdj4KPC90ZD4KPHRkIHN0eWxlPSJib3JkZXItbGVmdDoy
cHggc29saWQgI2ZkZmRmZDtwYWRkaW5nOjBweDt0ZXh0LWFsaWduOmNlbnRlcjti
YWNrZ3JvdW5kOiNlZmVmZWY7Ozt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5k
OiNjY2Y7O3dpZHRoOjEwZW07Ij4KPGRpdj4KPHA+PGEgaHJlZj0iL3dpa2kvVGVt
cGxhdGU6RmVtYWxlX2dlbml0YWxfcHJvY2VkdXJlcyIgdGl0bGU9IlRlbXBsYXRl
OkZlbWFsZSBnZW5pdGFsIHByb2NlZHVyZXMiPnByb2M8L2E+LzxhIGhyZWY9Ii93
aWtpL1RlbXBsYXRlOkFzc2lzdGVkX3JlcHJvZHVjdGl2ZV90ZWNobm9sb2d5IiB0
aXRsZT0iVGVtcGxhdGU6QXNzaXN0ZWQgcmVwcm9kdWN0aXZlIHRlY2hub2xvZ3ki
PmFzc3Q8L2E+LCBkcnVnICg8YSBocmVmPSIvd2lraS9UZW1wbGF0ZTpHeW5lY29s
b2dpY2FsX2FudGktaW5mZWN0aXZlc19hbmRfYW50aXNlcHRpY3MiIHRpdGxlPSJU
ZW1wbGF0ZTpHeW5lY29sb2dpY2FsIGFudGktaW5mZWN0aXZlcyBhbmQgYW50aXNl
cHRpY3MiPkcxPC9hPi88YSBocmVmPSIvd2lraS9UZW1wbGF0ZTpCaXJ0aF9jb250
cm9sX21ldGhvZHMiIHRpdGxlPSJUZW1wbGF0ZTpCaXJ0aCBjb250cm9sIG1ldGhv
ZHMiPkcyQjwvYT4vPGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6RXN0cm9nZW5zX2Fu
ZF9wcm9nZXN0b2dlbnMiIHRpdGxlPSJUZW1wbGF0ZTpFc3Ryb2dlbnMgYW5kIHBy
b2dlc3RvZ2VucyI+RzNDRDwvYT4pPC9wPgo8L2Rpdj4KPC90ZD4KPC90cj4KPC90
YWJsZT4KPC9kaXY+CjwvdGQ+CjwvdHI+CjwvdGFibGU+Cjx0YWJsZSBjZWxsc3Bh
Y2luZz0iMCIgY2xhc3M9Im5vd3JhcGxpbmtzIG5hdmJveC1zdWJncm91cCIgc3R5
bGU9IndpZHRoOjEwMCU7Ozs7Ij4KPHRyPgo8dGQgY29sc3Bhbj0iMiIgc3R5bGU9
IndpZHRoOjEwMCU7cGFkZGluZzowcHg7OztiYWNrZ3JvdW5kOnRyYW5zcGFyZW50
O2NvbG9yOmluaGVyaXQ7IiBjbGFzcz0ibmF2Ym94LWxpc3QgbmF2Ym94LW9kZCI+
CjxkaXYgc3R5bGU9InBhZGRpbmc6MHB4OyI+Cjx0YWJsZSBjZWxsc3BhY2luZz0i
MCIgY2xhc3M9Im5hdmJveC1jb2x1bW5zLXRhYmxlIiBzdHlsZT0idGV4dC1hbGln
bjpsZWZ0O3dpZHRoOjEwMCU7Ij4KPHRyIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjp0
b3A7Ij4KPHRkIHN0eWxlPSJwYWRkaW5nOjBweDt0ZXh0LWFsaWduOmNlbnRlcjti
YWNrZ3JvdW5kOiNlZmVmZWY7Ozt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5k
OiNCQkVFQkI7O3dpZHRoOjEwZW07Ij4KPGRpdj4KPHA+PGEgaHJlZj0iL3dpa2kv
VGVtcGxhdGU6TWVkaWNpbmVfbmF2cyIgdGl0bGU9IlRlbXBsYXRlOk1lZGljaW5l
IG5hdnMiPk08L2E+OiDimYIgPGEgaHJlZj0iL3dpa2kvUmVwcm9kdWN0aXZlX3N5
c3RlbSIgdGl0bGU9IlJlcHJvZHVjdGl2ZSBzeXN0ZW0iPk1SUzwvYT48L3A+Cjwv
ZGl2Pgo8L3RkPgo8dGQgc3R5bGU9ImJvcmRlci1sZWZ0OjJweCBzb2xpZCAjZmRm
ZGZkO3BhZGRpbmc6MHB4O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6I2Vm
ZWZlZjs7O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6d2hpdGU7O3dpZHRo
OjEwZW07Ij4KPGRpdj4KPHA+PGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6TWFsZV9y
ZXByb2R1Y3RpdmVfc3lzdGVtIiB0aXRsZT0iVGVtcGxhdGU6TWFsZSByZXByb2R1
Y3RpdmUgc3lzdGVtIj5hbmF0PC9hPi88YSBocmVmPSIvd2lraS9UZW1wbGF0ZTpS
ZXByb2R1Y3RpdmVfcGh5c2lvbG9neSIgdGl0bGU9IlRlbXBsYXRlOlJlcHJvZHVj
dGl2ZSBwaHlzaW9sb2d5Ij5waHlzPC9hPi88YSBocmVmPSIvd2lraS9UZW1wbGF0
ZTpEZXZlbG9wbWVudF9vZl91cmluYXJ5X2FuZF9yZXByb2R1Y3RpdmVfc3lzdGVt
cyIgdGl0bGU9IlRlbXBsYXRlOkRldmVsb3BtZW50IG9mIHVyaW5hcnkgYW5kIHJl
cHJvZHVjdGl2ZSBzeXN0ZW1zIj5kZXZwPC9hPjwvcD4KPC9kaXY+CjwvdGQ+Cjx0
ZCBzdHlsZT0iYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICNmZGZkZmQ7cGFkZGluZzow
cHg7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDojZWZlZmVmOzs7dGV4dC1h
bGlnbjpjZW50ZXI7YmFja2dyb3VuZDpzaWx2ZXI7O3dpZHRoOjEwZW07Ij4KPGRp
dj4KPHA+PGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6TWFsZV9kaXNlYXNlc19vZl90
aGVfcGVsdmlzX2FuZF9nZW5pdGFscyIgdGl0bGU9IlRlbXBsYXRlOk1hbGUgZGlz
ZWFzZXMgb2YgdGhlIHBlbHZpcyBhbmQgZ2VuaXRhbHMiPm5vY288L2E+LzxhIGhy
ZWY9Ii93aWtpL1RlbXBsYXRlOk1hbGVfY29uZ2VuaXRhbF9tYWxmb3JtYXRpb25z
X29mX2dlbml0YWxfb3JnYW5zLF9pbmRldGVybWluYXRlX3NleF9hbmRfcHNldWRv
aGVybWFwaHJvZGl0aXNtIiB0aXRsZT0iVGVtcGxhdGU6TWFsZSBjb25nZW5pdGFs
IG1hbGZvcm1hdGlvbnMgb2YgZ2VuaXRhbCBvcmdhbnMsIGluZGV0ZXJtaW5hdGUg
c2V4IGFuZCBwc2V1ZG9oZXJtYXBocm9kaXRpc20iIGNsYXNzPSJtdy1yZWRpcmVj
dCI+Y29uZzwvYT4vPGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6TWFsZV9nZW5pdGFs
X25lb3BsYXNpYSIgdGl0bGU9IlRlbXBsYXRlOk1hbGUgZ2VuaXRhbCBuZW9wbGFz
aWEiPnR1bXI8L2E+LCA8YSBocmVmPSIvd2lraS9UZW1wbGF0ZTpSZXByb2R1Y3Rp
dmVfc3lzdGVtX3N5bXB0b21zX2FuZF9zaWducyIgdGl0bGU9IlRlbXBsYXRlOlJl
cHJvZHVjdGl2ZSBzeXN0ZW0gc3ltcHRvbXMgYW5kIHNpZ25zIj5zeXNpPC9hPi88
YSBocmVmPSIvd2lraS9UZW1wbGF0ZTpFcG9ueW1vdXNfbWVkaWNhbF9zaWduc19m
b3JfcmVwcm9kdWN0aXZlX3N5c3RlbSIgdGl0bGU9IlRlbXBsYXRlOkVwb255bW91
cyBtZWRpY2FsIHNpZ25zIGZvciByZXByb2R1Y3RpdmUgc3lzdGVtIj5lcG9uPC9h
PjwvcD4KPC9kaXY+CjwvdGQ+Cjx0ZCBzdHlsZT0iYm9yZGVyLWxlZnQ6MnB4IHNv
bGlkICNmZGZkZmQ7cGFkZGluZzowcHg7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dy
b3VuZDojZWZlZmVmOzs7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDojY2Nm
Ozt3aWR0aDoxMGVtOyI+CjxkaXY+CjxwPjxhIGhyZWY9Ii93aWtpL1RlbXBsYXRl
Ok1hbGVfZ2VuaXRhbF9wcm9jZWR1cmVzIiB0aXRsZT0iVGVtcGxhdGU6TWFsZSBn
ZW5pdGFsIHByb2NlZHVyZXMiPnByb2M8L2E+LCA8YSBocmVmPSIvd2lraS9BVENf
Y29kZV9HIiB0aXRsZT0iQVRDIGNvZGUgRyI+ZHJ1ZzwvYT4gKDxhIGhyZWY9Ii93
aWtpL1RlbXBsYXRlOkFuZHJvZ2VucyIgdGl0bGU9IlRlbXBsYXRlOkFuZHJvZ2Vu
cyI+RzNCPC9hPi88YSBocmVmPSIvd2lraS9UZW1wbGF0ZTpEcnVnc191c2VkX2lu
X2Jlbmlnbl9wcm9zdGF0aWNfaHlwZXJ0cm9waHkiIHRpdGxlPSJUZW1wbGF0ZTpE
cnVncyB1c2VkIGluIGJlbmlnbiBwcm9zdGF0aWMgaHlwZXJ0cm9waHkiPjRDPC9h
Pik8L3A+CjwvZGl2Pgo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8L2Rpdj4KPC90ZD4K
PC90cj4KPC90YWJsZT4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0ibm93
cmFwbGlua3MgbmF2Ym94LXN1Ymdyb3VwIiBzdHlsZT0id2lkdGg6MTAwJTs7Ozsi
Pgo8dHI+Cjx0ZCBjb2xzcGFuPSIyIiBzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5n
OjBweDs7O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6aW5oZXJpdDsiIGNs
YXNzPSJuYXZib3gtbGlzdCBuYXZib3gtb2RkIj4KPGRpdiBzdHlsZT0icGFkZGlu
ZzowcHg7Ij4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0ibmF2Ym94LWNv
bHVtbnMtdGFibGUiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJTsi
Pgo8dHIgc3R5bGU9InZlcnRpY2FsLWFsaWduOnRvcDsiPgo8dGQgc3R5bGU9InBh
ZGRpbmc6MHB4O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6I2VmZWZlZjs7
O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6TGluZW47O3dpZHRoOjEwZW07
Ij4KPGRpdj4KPHA+PGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6TWVkaWNpbmVfbmF2
cyIgdGl0bGU9IlRlbXBsYXRlOk1lZGljaW5lIG5hdnMiPk08L2E+OiA8YSBocmVm
PSIvd2lraS9CcmVhc3QiIHRpdGxlPSJCcmVhc3QiPkJSRTwvYT48L3A+CjwvZGl2
Pgo8L3RkPgo8dGQgc3R5bGU9ImJvcmRlci1sZWZ0OjJweCBzb2xpZCAjZmRmZGZk
O3BhZGRpbmc6MHB4O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6I2VmZWZl
Zjs7O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6d2hpdGU7O3dpZHRoOjEw
ZW07Ij4KPGRpdj4KPHA+PGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6QnJlYXN0X2Fu
YXRvbXkiIHRpdGxlPSJUZW1wbGF0ZTpCcmVhc3QgYW5hdG9teSI+YW5hdDwvYT4v
PGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6UmVwcm9kdWN0aXZlX3BoeXNpb2xvZ3ki
IHRpdGxlPSJUZW1wbGF0ZTpSZXByb2R1Y3RpdmUgcGh5c2lvbG9neSI+cGh5czwv
YT48L3A+CjwvZGl2Pgo8L3RkPgo8dGQgc3R5bGU9ImJvcmRlci1sZWZ0OjJweCBz
b2xpZCAjZmRmZGZkO3BhZGRpbmc6MHB4O3RleHQtYWxpZ246Y2VudGVyO2JhY2tn
cm91bmQ6I2VmZWZlZjs7O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6c2ls
dmVyOzt3aWR0aDoxMGVtOyI+CjxkaXY+CjxwPjxhIGhyZWY9Ii93aWtpL1RlbXBs
YXRlOkRpc2Vhc2VzX29mX3RoZV9icmVhc3QiIHRpdGxlPSJUZW1wbGF0ZTpEaXNl
YXNlcyBvZiB0aGUgYnJlYXN0Ij5ub2NvPC9hPi88YSBocmVmPSIvd2lraS9UZW1w
bGF0ZTpDb25nZW5pdGFsX21hbGZvcm1hdGlvbnNfYW5kX2RlZm9ybWF0aW9uc19v
Zl9icmVhc3QiIHRpdGxlPSJUZW1wbGF0ZTpDb25nZW5pdGFsIG1hbGZvcm1hdGlv
bnMgYW5kIGRlZm9ybWF0aW9ucyBvZiBicmVhc3QiPmNvbmc8L2E+LzxhIGhyZWY9
Ii93aWtpL1RlbXBsYXRlOkJyZWFzdF9uZW9wbGFzaWEiIHRpdGxlPSJUZW1wbGF0
ZTpCcmVhc3QgbmVvcGxhc2lhIiBjbGFzcz0ibXctcmVkaXJlY3QiPnR1bXI8L2E+
PC9wPgo8L2Rpdj4KPC90ZD4KPHRkIHN0eWxlPSJib3JkZXItbGVmdDoycHggc29s
aWQgI2ZkZmRmZDtwYWRkaW5nOjBweDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3Jv
dW5kOiNlZmVmZWY7Ozt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOiNjY2Y7
O3dpZHRoOjEwZW07Ij4KPGRpdj4KPHA+PGEgaHJlZj0iL3dpa2kvVGVtcGxhdGU6
QnJlYXN0X3Byb2NlZHVyZXMiIHRpdGxlPSJUZW1wbGF0ZTpCcmVhc3QgcHJvY2Vk
dXJlcyI+cHJvYzwvYT48L3A+CjwvZGl2Pgo8L3RkPgo8L3RyPgo8L3RhYmxlPgo8
L2Rpdj4KPC90ZD4KPC90cj4KPC90YWJsZT4KPC90ZD4KPC90cj4KPC90YWJsZT4K
PC90ZD4KPC90cj4KPC90YWJsZT4KCgo8IS0tIApOZXdQUCBsaW1pdCByZXBvcnQK
UHJlcHJvY2Vzc29yIG5vZGUgY291bnQ6IDEyNDg5LzEwMDAwMDAKUG9zdC1leHBh
bmQgaW5jbHVkZSBzaXplOiAxODQ1MTAvMjA0ODAwMCBieXRlcwpUZW1wbGF0ZSBh
cmd1bWVudCBzaXplOiA3NTYzMC8yMDQ4MDAwIGJ5dGVzCkV4cGVuc2l2ZSBwYXJz
ZXIgZnVuY3Rpb24gY291bnQ6IDgvNTAwCi0tPgoKPCEtLSBTYXZlZCBpbiBwYXJz
ZXIgY2FjaGUgd2l0aCBrZXkgZW53aWtpOnBjYWNoZTppZGhhc2g6MTgxODA1LTAh
MSEwIWRlZmF1bHQhIWVuITQgYW5kIHRpbWVzdGFtcCAyMDEwMTAwMjE3MjQ0MyAt
LT4KPGRpdiBjbGFzcz0icHJpbnRmb290ZXIiPgpSZXRyaWV2ZWQgZnJvbSAiPGEg
aHJlZj0iaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NZW5hcmNoZSI+aHR0
cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NZW5hcmNoZTwvYT4iPC9kaXY+CgkJ
CQk8IS0tIC9ib2R5dGV4dCAtLT4KCQkJCQkJCQk8IS0tIGNhdGxpbmtzIC0tPgoJ
CQkJPGRpdiBpZD0nY2F0bGlua3MnIGNsYXNzPSdjYXRsaW5rcyc+PGRpdiBpZD0i
bXctbm9ybWFsLWNhdGxpbmtzIj48YSBocmVmPSIvd2lraS9TcGVjaWFsOkNhdGVn
b3JpZXMiIHRpdGxlPSJTcGVjaWFsOkNhdGVnb3JpZXMiPkNhdGVnb3JpZXM8L2E+
OiA8c3BhbiBkaXI9J2x0cic+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6RGV2ZWxv
cG1lbnRhbF9iaW9sb2d5IiB0aXRsZT0iQ2F0ZWdvcnk6RGV2ZWxvcG1lbnRhbCBi
aW9sb2d5Ij5EZXZlbG9wbWVudGFsIGJpb2xvZ3k8L2E+PC9zcGFuPiB8IDxzcGFu
IGRpcj0nbHRyJz48YSBocmVmPSIvd2lraS9DYXRlZ29yeTpNZW5zdHJ1YWxfY3lj
bGUiIHRpdGxlPSJDYXRlZ29yeTpNZW5zdHJ1YWwgY3ljbGUiPk1lbnN0cnVhbCBj
eWNsZTwvYT48L3NwYW4+IHwgPHNwYW4gZGlyPSdsdHInPjxhIGhyZWY9Ii93aWtp
L0NhdGVnb3J5OlBlZGlhdHJpY3MiIHRpdGxlPSJDYXRlZ29yeTpQZWRpYXRyaWNz
Ij5QZWRpYXRyaWNzPC9hPjwvc3Bhbj4gfCA8c3BhbiBkaXI9J2x0cic+PGEgaHJl
Zj0iL3dpa2kvQ2F0ZWdvcnk6UHViZXJ0eSIgdGl0bGU9IkNhdGVnb3J5OlB1YmVy
dHkiPlB1YmVydHk8L2E+PC9zcGFuPiB8IDxzcGFuIGRpcj0nbHRyJz48YSBocmVm
PSIvd2lraS9DYXRlZ29yeTpTZXh1YWxpdHlfYW5kX2FnZSIgdGl0bGU9IkNhdGVn
b3J5OlNleHVhbGl0eSBhbmQgYWdlIj5TZXh1YWxpdHkgYW5kIGFnZTwvYT48L3Nw
YW4+PC9kaXY+PGRpdiBpZD0ibXctaGlkZGVuLWNhdGxpbmtzIiBjbGFzcz0ibXct
aGlkZGVuLWNhdHMtaGlkZGVuIj5IaWRkZW4gY2F0ZWdvcmllczogPHNwYW4gZGly
PSdsdHInPjxhIGhyZWY9Ii93aWtpL0NhdGVnb3J5OkFydGljbGVzX25lZWRpbmdf
YWRkaXRpb25hbF9yZWZlcmVuY2VzX2Zyb21fSnVseV8yMDEwIiB0aXRsZT0iQ2F0
ZWdvcnk6QXJ0aWNsZXMgbmVlZGluZyBhZGRpdGlvbmFsIHJlZmVyZW5jZXMgZnJv
bSBKdWx5IDIwMTAiPkFydGljbGVzIG5lZWRpbmcgYWRkaXRpb25hbCByZWZlcmVu
Y2VzIGZyb20gSnVseSAyMDEwPC9hPjwvc3Bhbj4gfCA8c3BhbiBkaXI9J2x0cic+
PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6QWxsX2FydGljbGVzX25lZWRpbmdfYWRk
aXRpb25hbF9yZWZlcmVuY2VzIiB0aXRsZT0iQ2F0ZWdvcnk6QWxsIGFydGljbGVz
IG5lZWRpbmcgYWRkaXRpb25hbCByZWZlcmVuY2VzIj5BbGwgYXJ0aWNsZXMgbmVl
ZGluZyBhZGRpdGlvbmFsIHJlZmVyZW5jZXM8L2E+PC9zcGFuPiB8IDxzcGFuIGRp
cj0nbHRyJz48YSBocmVmPSIvd2lraS9DYXRlZ29yeTpXaWtpcGVkaWFfYXJ0aWNs
ZXNfbmVlZGluZ19jbGVhbnVwX2Zyb21fSnVseV8yMDEwIiB0aXRsZT0iQ2F0ZWdv
cnk6V2lraXBlZGlhIGFydGljbGVzIG5lZWRpbmcgY2xlYW51cCBmcm9tIEp1bHkg
MjAxMCI+V2lraXBlZGlhIGFydGljbGVzIG5lZWRpbmcgY2xlYW51cCBmcm9tIEp1
bHkgMjAxMDwvYT48L3NwYW4+IHwgPHNwYW4gZGlyPSdsdHInPjxhIGhyZWY9Ii93
aWtpL0NhdGVnb3J5OkFsbF9hcnRpY2xlc19uZWVkaW5nX2NsZWFudXAiIHRpdGxl
PSJDYXRlZ29yeTpBbGwgYXJ0aWNsZXMgbmVlZGluZyBjbGVhbnVwIj5BbGwgYXJ0
aWNsZXMgbmVlZGluZyBjbGVhbnVwPC9hPjwvc3Bhbj4gfCA8c3BhbiBkaXI9J2x0
cic+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6QWxsX2FydGljbGVzX3dpdGhfdW5z
b3VyY2VkX3N0YXRlbWVudHMiIHRpdGxlPSJDYXRlZ29yeTpBbGwgYXJ0aWNsZXMg
d2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50cyI+QWxsIGFydGljbGVzIHdpdGggdW5z
b3VyY2VkIHN0YXRlbWVudHM8L2E+PC9zcGFuPiB8IDxzcGFuIGRpcj0nbHRyJz48
YSBocmVmPSIvd2lraS9DYXRlZ29yeTpBcnRpY2xlc193aXRoX3Vuc291cmNlZF9z
dGF0ZW1lbnRzX2Zyb21fTWF5XzIwMDgiIHRpdGxlPSJDYXRlZ29yeTpBcnRpY2xl
cyB3aXRoIHVuc291cmNlZCBzdGF0ZW1lbnRzIGZyb20gTWF5IDIwMDgiPkFydGlj
bGVzIHdpdGggdW5zb3VyY2VkIHN0YXRlbWVudHMgZnJvbSBNYXkgMjAwODwvYT48
L3NwYW4+IHwgPHNwYW4gZGlyPSdsdHInPjxhIGhyZWY9Ii93aWtpL0NhdGVnb3J5
OkFsbF9hY2N1cmFjeV9kaXNwdXRlcyIgdGl0bGU9IkNhdGVnb3J5OkFsbCBhY2N1
cmFjeSBkaXNwdXRlcyI+QWxsIGFjY3VyYWN5IGRpc3B1dGVzPC9hPjwvc3Bhbj4g
fCA8c3BhbiBkaXI9J2x0cic+PGEgaHJlZj0iL3dpa2kvQ2F0ZWdvcnk6QXJ0aWNs
ZXNfd2l0aF9kaXNwdXRlZF9zdGF0ZW1lbnRzX2Zyb21fTm92ZW1iZXJfMjAwOCIg
dGl0bGU9IkNhdGVnb3J5OkFydGljbGVzIHdpdGggZGlzcHV0ZWQgc3RhdGVtZW50
cyBmcm9tIE5vdmVtYmVyIDIwMDgiPkFydGljbGVzIHdpdGggZGlzcHV0ZWQgc3Rh
dGVtZW50cyBmcm9tIE5vdmVtYmVyIDIwMDg8L2E+PC9zcGFuPiB8IDxzcGFuIGRp
cj0nbHRyJz48YSBocmVmPSIvd2lraS9DYXRlZ29yeTpBcnRpY2xlc193aXRoX3Vu
c291cmNlZF9zdGF0ZW1lbnRzX2Zyb21fSnVseV8yMDEwIiB0aXRsZT0iQ2F0ZWdv
cnk6QXJ0aWNsZXMgd2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50cyBmcm9tIEp1bHkg
MjAxMCI+QXJ0aWNsZXMgd2l0aCB1bnNvdXJjZWQgc3RhdGVtZW50cyBmcm9tIEp1
bHkgMjAxMDwvYT48L3NwYW4+PC9kaXY+PC9kaXY+CQkJCTwhLS0gL2NhdGxpbmtz
IC0tPgoJCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ2aXN1YWxDbGVhciI+PC9kaXY+
CgkJCTwvZGl2PgoJCQk8IS0tIC9ib2R5Q29udGVudCAtLT4KCQk8L2Rpdj4KCQk8
IS0tIC9jb250ZW50IC0tPgoJCTwhLS0gaGVhZGVyIC0tPgoJCTxkaXYgaWQ9Im13
LWhlYWQiIGNsYXNzPSJub3ByaW50Ij4KCQkJCjwhLS0gMCAtLT4KPGRpdiBpZD0i
cC1wZXJzb25hbCIgY2xhc3M9IiI+Cgk8aDU+UGVyc29uYWwgdG9vbHM8L2g1PgoJ
PHVsPgoJCQkJCTxsaSAgaWQ9InB0LXByZWZzd2l0Y2gtbGluay1hbm9uIj48YSBo
cmVmPSJodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93L2luZGV4LnBocD90aXRsZT1T
cGVjaWFsOlVzYWJpbGl0eUluaXRpYXRpdmVQcmVmU3dpdGNoJmFtcDtmcm9tPU1l
bmFyY2hlIiB0aXRsZT0iTGVhcm4gYWJvdXQgbmV3IGZlYXR1cmVzIiBjbGFzcz0i
bm8tdGV4dC10cmFuc2Zvcm0iPk5ldyBmZWF0dXJlczwvYT48L2xpPgoJCQkJCTxs
aSAgaWQ9InB0LWxvZ2luIj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9U3Bl
Y2lhbDpVc2VyTG9naW4mYW1wO3JldHVybnRvPU1lbmFyY2hlIiB0aXRsZT0iWW91
IGFyZSBlbmNvdXJhZ2VkIHRvIGxvZyBpbjsgaG93ZXZlciwgaXQgaXMgbm90IG1h
bmRhdG9yeS4gW29dIiBhY2Nlc3NrZXk9Im8iPkxvZyBpbiAvIGNyZWF0ZSBhY2Nv
dW50PC9hPjwvbGk+CgkJCTwvdWw+CjwvZGl2PgoKPCEtLSAvMCAtLT4KCQkJPGRp
diBpZD0ibGVmdC1uYXZpZ2F0aW9uIj4KCQkJCQo8IS0tIDAgLS0+CjxkaXYgaWQ9
InAtbmFtZXNwYWNlcyIgY2xhc3M9InZlY3RvclRhYnMiPgoJPGg1Pk5hbWVzcGFj
ZXM8L2g1PgoJPHVsPgoJCQkJCTxsaSAgaWQ9ImNhLW5zdGFiLW1haW4iIGNsYXNz
PSJzZWxlY3RlZCI+PGEgaHJlZj0iL3dpa2kvTWVuYXJjaGUiICB0aXRsZT0iVmll
dyB0aGUgY29udGVudCBwYWdlIFtjXSIgYWNjZXNza2V5PSJjIj48c3Bhbj5BcnRp
Y2xlPC9zcGFuPjwvYT48L2xpPgoJCQkJCTxsaSAgaWQ9ImNhLXRhbGsiPjxhIGhy
ZWY9Ii93aWtpL1RhbGs6TWVuYXJjaGUiICB0aXRsZT0iRGlzY3Vzc2lvbiBhYm91
dCB0aGUgY29udGVudCBwYWdlIFt0XSIgYWNjZXNza2V5PSJ0Ij48c3Bhbj5EaXNj
dXNzaW9uPC9zcGFuPjwvYT48L2xpPgoJCQk8L3VsPgo8L2Rpdj4KCjwhLS0gLzAg
LS0+Cgo8IS0tIDEgLS0+CjxkaXYgaWQ9InAtdmFyaWFudHMiIGNsYXNzPSJ2ZWN0
b3JNZW51IGVtcHR5UG9ydGxldCI+CgkJPGg1PjxzcGFuPlZhcmlhbnRzPC9zcGFu
PjxhIGhyZWY9IiMiPjwvYT48L2g1PgoJPGRpdiBjbGFzcz0ibWVudSI+CgkJPHVs
PgoJCQkJCTwvdWw+Cgk8L2Rpdj4KPC9kaXY+Cgo8IS0tIC8xIC0tPgoJCQk8L2Rp
dj4KCQkJPGRpdiBpZD0icmlnaHQtbmF2aWdhdGlvbiI+CgkJCQkKPCEtLSAwIC0t
Pgo8ZGl2IGlkPSJwLXZpZXdzIiBjbGFzcz0idmVjdG9yVGFicyI+Cgk8aDU+Vmll
d3M8L2g1PgoJPHVsPgoJCQkJCTxsaSBpZD0iY2EtdmlldyIgY2xhc3M9InNlbGVj
dGVkIj48YSBocmVmPSIvd2lraS9NZW5hcmNoZSIgPjxzcGFuPlJlYWQ8L3NwYW4+
PC9hPjwvbGk+CgkJCQkJPGxpIGlkPSJjYS1lZGl0Ij48YSBocmVmPSIvdy9pbmRl
eC5waHA/dGl0bGU9TWVuYXJjaGUmYW1wO2FjdGlvbj1lZGl0IiAgdGl0bGU9Illv
dSBjYW4gZWRpdCB0aGlzIHBhZ2UuICYjMTA7UGxlYXNlIHVzZSB0aGUgcHJldmll
dyBidXR0b24gYmVmb3JlIHNhdmluZy4gW2VdIiBhY2Nlc3NrZXk9ImUiPjxzcGFu
PkVkaXQ8L3NwYW4+PC9hPjwvbGk+CgkJCQkJPGxpIGlkPSJjYS1oaXN0b3J5IiBj
bGFzcz0iY29sbGFwc2libGUgIj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0bGU9
TWVuYXJjaGUmYW1wO2FjdGlvbj1oaXN0b3J5IiAgdGl0bGU9IlBhc3QgdmVyc2lv
bnMgb2YgdGhpcyBwYWdlIFtoXSIgYWNjZXNza2V5PSJoIj48c3Bhbj5WaWV3IGhp
c3Rvcnk8L3NwYW4+PC9hPjwvbGk+CgkJCTwvdWw+CjwvZGl2PgoKPCEtLSAvMCAt
LT4KCjwhLS0gMSAtLT4KPGRpdiBpZD0icC1jYWN0aW9ucyIgY2xhc3M9InZlY3Rv
ck1lbnUgZW1wdHlQb3J0bGV0Ij4KCTxoNT48c3Bhbj5BY3Rpb25zPC9zcGFuPjxh
IGhyZWY9IiMiPjwvYT48L2g1PgoJPGRpdiBjbGFzcz0ibWVudSI+CgkJPHVsPgoJ
CQkJCTwvdWw+Cgk8L2Rpdj4KPC9kaXY+Cgo8IS0tIC8xIC0tPgoKPCEtLSAyIC0t
Pgo8ZGl2IGlkPSJwLXNlYXJjaCI+Cgk8aDU+PGxhYmVsIGZvcj0ic2VhcmNoSW5w
dXQiPlNlYXJjaDwvbGFiZWw+PC9oNT4KCTxmb3JtIGFjdGlvbj0iL3cvaW5kZXgu
cGhwIiBpZD0ic2VhcmNoZm9ybSI+CgkJPGlucHV0IHR5cGU9J2hpZGRlbicgbmFt
ZT0idGl0bGUiIHZhbHVlPSJTcGVjaWFsOlNlYXJjaCIvPgoJCQkJPGRpdiBpZD0i
c2ltcGxlU2VhcmNoIj4KCQkJPGlucHV0IGlkPSJzZWFyY2hJbnB1dCIgbmFtZT0i
c2VhcmNoIiB0eXBlPSJ0ZXh0IiAgdGl0bGU9IlNlYXJjaCBXaWtpcGVkaWEgW2Zd
IiBhY2Nlc3NrZXk9ImYiICB2YWx1ZT0iIiAvPgoJCQk8YnV0dG9uIGlkPSJzZWFy
Y2hCdXR0b24iIHR5cGU9J3N1Ym1pdCcgbmFtZT0nYnV0dG9uJyAgdGl0bGU9IlNl
YXJjaCBXaWtpcGVkaWEgZm9yIHRoaXMgdGV4dCI+PGltZyBzcmM9Imh0dHA6Ly9i
aXRzLndpa2ltZWRpYS5vcmcvc2tpbnMtMS41L3ZlY3Rvci9pbWFnZXMvc2VhcmNo
LWx0ci5wbmc/MjgzdSIgYWx0PSJTZWFyY2giIC8+PC9idXR0b24+CgkJPC9kaXY+
CgkJCTwvZm9ybT4KPC9kaXY+Cgo8IS0tIC8yIC0tPgoJCQk8L2Rpdj4KCQk8L2Rp
dj4KCQk8IS0tIC9oZWFkZXIgLS0+CgkJPCEtLSBwYW5lbCAtLT4KCQkJPGRpdiBp
ZD0ibXctcGFuZWwiIGNsYXNzPSJub3ByaW50Ij4KCQkJCTwhLS0gbG9nbyAtLT4K
CQkJCQk8ZGl2IGlkPSJwLWxvZ28iPjxhIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoaHR0cDovL3VwbG9hZC53aWtpbWVkaWEub3JnL3dpa2lwZWRpYS9jb21t
b25zL2QvZDYvV2lraXBlZGlhLWxvZ28tdjItZW4ucG5nKTsiIGhyZWY9Ii93aWtp
L01haW5fUGFnZSIgIHRpdGxlPSJWaXNpdCB0aGUgbWFpbiBwYWdlIj48L2E+PC9k
aXY+CgkJCQk8IS0tIC9sb2dvIC0tPgoJCQkJCjwhLS0gbmF2aWdhdGlvbiAtLT4K
PGRpdiBjbGFzcz0icG9ydGFsIiBpZD0ncC1uYXZpZ2F0aW9uJz4KCTxoNT5OYXZp
Z2F0aW9uPC9oNT4KCTxkaXYgY2xhc3M9ImJvZHkiPgoJCQkJPHVsPgoJCQkJCTxs
aSBpZD0ibi1tYWlucGFnZS1kZXNjcmlwdGlvbiI+PGEgaHJlZj0iL3dpa2kvTWFp
bl9QYWdlIiB0aXRsZT0iVmlzaXQgdGhlIG1haW4gcGFnZSBbel0iIGFjY2Vzc2tl
eT0ieiI+TWFpbiBwYWdlPC9hPjwvbGk+CgkJCQkJPGxpIGlkPSJuLWNvbnRlbnRz
Ij48YSBocmVmPSIvd2lraS9Qb3J0YWw6Q29udGVudHMiIHRpdGxlPSJHdWlkZXMg
dG8gYnJvd3NpbmcgV2lraXBlZGlhIj5Db250ZW50czwvYT48L2xpPgoJCQkJCTxs
aSBpZD0ibi1mZWF0dXJlZGNvbnRlbnQiPjxhIGhyZWY9Ii93aWtpL1BvcnRhbDpG
ZWF0dXJlZF9jb250ZW50IiB0aXRsZT0iRmVhdHVyZWQgY29udGVudCDigJQgdGhl
IGJlc3Qgb2YgV2lraXBlZGlhIj5GZWF0dXJlZCBjb250ZW50PC9hPjwvbGk+CgkJ
CQkJPGxpIGlkPSJuLWN1cnJlbnRldmVudHMiPjxhIGhyZWY9Ii93aWtpL1BvcnRh
bDpDdXJyZW50X2V2ZW50cyIgdGl0bGU9IkZpbmQgYmFja2dyb3VuZCBpbmZvcm1h
dGlvbiBvbiBjdXJyZW50IGV2ZW50cyI+Q3VycmVudCBldmVudHM8L2E+PC9saT4K
CQkJCQk8bGkgaWQ9Im4tcmFuZG9tcGFnZSI+PGEgaHJlZj0iL3dpa2kvU3BlY2lh
bDpSYW5kb20iIHRpdGxlPSJMb2FkIGEgcmFuZG9tIGFydGljbGUgW3hdIiBhY2Nl
c3NrZXk9IngiPlJhbmRvbSBhcnRpY2xlPC9hPjwvbGk+CgkJCQkJPGxpIGlkPSJu
LXZhcmlhYmxlcGFnZSIgY2xhc3M9ImFjdGl2ZSIgPjxhIGhyZWY9Ii93L2luZGV4
LnBocD90aXRsZT1TcGVjaWFsOlZhcmlhYmxlUGFnZSZhbXA7dXRtX3NvdXJjZT1k
b25hdGUmYW1wO3V0bV9tZWRpdW09c2lkZWJhciZhbXA7dXRtX2NhbXBhaWduPXNw
b250YW5lb3VzX2RvbmF0aW9uIj5Eb25hdGU8L2E+PC9saT4KCQkJCTwvdWw+CgkJ
CTwvZGl2Pgo8L2Rpdj4KCjwhLS0gL25hdmlnYXRpb24gLS0+Cgo8IS0tIFNFQVJD
SCAtLT4KCjwhLS0gL1NFQVJDSCAtLT4KCjwhLS0gaW50ZXJhY3Rpb24gLS0+Cjxk
aXYgY2xhc3M9InBvcnRhbCIgaWQ9J3AtaW50ZXJhY3Rpb24nPgoJPGg1PkludGVy
YWN0aW9uPC9oNT4KCTxkaXYgY2xhc3M9ImJvZHkiPgoJCQkJPHVsPgoJCQkJCTxs
aSBpZD0ibi1hYm91dHNpdGUiPjxhIGhyZWY9Ii93aWtpL1dpa2lwZWRpYTpBYm91
dCIgdGl0bGU9IkZpbmQgb3V0IGFib3V0IFdpa2lwZWRpYSI+QWJvdXQgV2lraXBl
ZGlhPC9hPjwvbGk+CgkJCQkJPGxpIGlkPSJuLXBvcnRhbCI+PGEgaHJlZj0iL3dp
a2kvV2lraXBlZGlhOkNvbW11bml0eV9wb3J0YWwiIHRpdGxlPSJBYm91dCB0aGUg
cHJvamVjdCwgd2hhdCB5b3UgY2FuIGRvLCB3aGVyZSB0byBmaW5kIHRoaW5ncyI+
Q29tbXVuaXR5IHBvcnRhbDwvYT48L2xpPgoJCQkJCTxsaSBpZD0ibi1yZWNlbnRj
aGFuZ2VzIj48YSBocmVmPSIvd2lraS9TcGVjaWFsOlJlY2VudENoYW5nZXMiIHRp
dGxlPSJUaGUgbGlzdCBvZiByZWNlbnQgY2hhbmdlcyBpbiB0aGUgd2lraSBbcl0i
IGFjY2Vzc2tleT0iciI+UmVjZW50IGNoYW5nZXM8L2E+PC9saT4KCQkJCQk8bGkg
aWQ9Im4tY29udGFjdCI+PGEgaHJlZj0iL3dpa2kvV2lraXBlZGlhOkNvbnRhY3Rf
dXMiIHRpdGxlPSJIb3cgdG8gY29udGFjdCBXaWtpcGVkaWEiPkNvbnRhY3QgV2lr
aXBlZGlhPC9hPjwvbGk+CgkJCQkJPGxpIGlkPSJuLWhlbHAiPjxhIGhyZWY9Ii93
aWtpL0hlbHA6Q29udGVudHMiIHRpdGxlPSJHdWlkYW5jZSBvbiBob3cgdG8gdXNl
IGFuZCBlZGl0IFdpa2lwZWRpYSI+SGVscDwvYT48L2xpPgoJCQkJPC91bD4KCQkJ
PC9kaXY+CjwvZGl2PgoKPCEtLSAvaW50ZXJhY3Rpb24gLS0+Cgo8IS0tIFRPT0xC
T1ggLS0+CjxkaXYgY2xhc3M9InBvcnRhbCIgaWQ9InAtdGIiPgoJPGg1PlRvb2xi
b3g8L2g1PgoJPGRpdiBjbGFzcz0iYm9keSI+CgkJPHVsPgoJCQkJCTxsaSBpZD0i
dC13aGF0bGlua3NoZXJlIj48YSBocmVmPSIvd2lraS9TcGVjaWFsOldoYXRMaW5r
c0hlcmUvTWVuYXJjaGUiIHRpdGxlPSJMaXN0IG9mIGFsbCBFbmdsaXNoIFdpa2lw
ZWRpYSBwYWdlcyBjb250YWluaW5nIGxpbmtzIHRvIHRoaXMgcGFnZSBbal0iIGFj
Y2Vzc2tleT0iaiI+V2hhdCBsaW5rcyBoZXJlPC9hPjwvbGk+CgkJCQkJCTxsaSBp
ZD0idC1yZWNlbnRjaGFuZ2VzbGlua2VkIj48YSBocmVmPSIvd2lraS9TcGVjaWFs
OlJlY2VudENoYW5nZXNMaW5rZWQvTWVuYXJjaGUiIHRpdGxlPSJSZWNlbnQgY2hh
bmdlcyBpbiBwYWdlcyBsaW5rZWQgZnJvbSB0aGlzIHBhZ2UgW2tdIiBhY2Nlc3Nr
ZXk9ImsiPlJlbGF0ZWQgY2hhbmdlczwvYT48L2xpPgoJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJCQkJCQkJCQkJCQkJCQkJPGxpIGlkPSJ0LXVwbG9hZCI+PGEgaHJlZj0i
L3dpa2kvV2lraXBlZGlhOlVwbG9hZCIgdGl0bGU9IlVwbG9hZCBmaWxlcyBbdV0i
IGFjY2Vzc2tleT0idSI+VXBsb2FkIGZpbGU8L2E+PC9saT4KCQkJCQkJCQkJCQk8
bGkgaWQ9InQtc3BlY2lhbHBhZ2VzIj48YSBocmVmPSIvd2lraS9TcGVjaWFsOlNw
ZWNpYWxQYWdlcyIgdGl0bGU9Ikxpc3Qgb2YgYWxsIHNwZWNpYWwgcGFnZXMgW3Fd
IiBhY2Nlc3NrZXk9InEiPlNwZWNpYWwgcGFnZXM8L2E+PC9saT4KCQkJCQkJCQkJ
CQk8bGkgaWQ9InQtcGVybWFsaW5rIj48YSBocmVmPSIvdy9pbmRleC5waHA/dGl0
bGU9TWVuYXJjaGUmYW1wO29sZGlkPTM4MTYxOTEzNiIgdGl0bGU9IlBlcm1hbmVu
dCBsaW5rIHRvIHRoaXMgcmV2aXNpb24gb2YgdGhlIHBhZ2UiPlBlcm1hbmVudCBs
aW5rPC9hPjwvbGk+CgkJCQk8bGkgaWQ9InQtY2l0ZSI+PGEgaHJlZj0iL3cvaW5k
ZXgucGhwP3RpdGxlPVNwZWNpYWw6Q2l0ZSZhbXA7cGFnZT1NZW5hcmNoZSZhbXA7
aWQ9MzgxNjE5MTM2IiB0aXRsZT0iSW5mb3JtYXRpb24gb24gaG93IHRvIGNpdGUg
dGhpcyBwYWdlIj5DaXRlIHRoaXMgcGFnZTwvYT48L2xpPgkJPC91bD4KCTwvZGl2
Pgo8L2Rpdj4KCjwhLS0gL1RPT0xCT1ggLS0+Cgo8IS0tIGNvbGwtcHJpbnRfZXhw
b3J0IC0tPgo8ZGl2IGNsYXNzPSJwb3J0YWwiIGlkPSdwLWNvbGwtcHJpbnRfZXhw
b3J0Jz4KCTxoNT5QcmludC9leHBvcnQ8L2g1PgoJPGRpdiBjbGFzcz0iYm9keSI+
CgkJCQk8dWwgaWQ9ImNvbGxlY3Rpb25Qb3J0bGV0TGlzdCI+PGxpIGlkPSJjb2xs
LWNyZWF0ZV9hX2Jvb2siPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT1TcGVj
aWFsOkJvb2smYW1wO2Jvb2tjbWQ9Ym9va19jcmVhdG9yJmFtcDtyZWZlcmVyPU1l
bmFyY2hlIiB0aXRsZT0iQ3JlYXRlIGEgYm9vayBvciBwYWdlIGNvbGxlY3Rpb24i
IHJlbD0ibm9mb2xsb3ciPkNyZWF0ZSBhIGJvb2s8L2E+PC9saT48bGkgaWQ9ImNv
bGwtZG93bmxvYWQtYXMtcmwiPjxhIGhyZWY9Ii93L2luZGV4LnBocD90aXRsZT1T
cGVjaWFsOkJvb2smYW1wO2Jvb2tjbWQ9cmVuZGVyX2FydGljbGUmYW1wO2FydHRp
dGxlPU1lbmFyY2hlJmFtcDtvbGRpZD0zODE2MTkxMzYmYW1wO3dyaXRlcj1ybCIg
dGl0bGU9IkRvd25sb2FkIGEgUERGIHZlcnNpb24gb2YgdGhpcyB3aWtpIHBhZ2Ui
IHJlbD0ibm9mb2xsb3ciPkRvd25sb2FkIGFzIFBERjwvYT48L2xpPjxsaSBpZD0i
dC1wcmludCI+PGEgaHJlZj0iL3cvaW5kZXgucGhwP3RpdGxlPU1lbmFyY2hlJmFt
cDtwcmludGFibGU9eWVzIiB0aXRsZT0iUHJpbnRhYmxlIHZlcnNpb24gb2YgdGhp
cyBwYWdlIFtwXSIgYWNjZXNza2V5PSJwIj5QcmludGFibGUgdmVyc2lvbjwvYT48
L2xpPjwvdWw+CQkJPC9kaXY+CjwvZGl2PgoKPCEtLSAvY29sbC1wcmludF9leHBv
cnQgLS0+Cgo8IS0tIExBTkdVQUdFUyAtLT4KPGRpdiBjbGFzcz0icG9ydGFsIiBp
ZD0icC1sYW5nIj4KCTxoNT5MYW5ndWFnZXM8L2g1PgoJPGRpdiBjbGFzcz0iYm9k
eSI+CgkJPHVsPgoJCQkJCTxsaSBjbGFzcz0iaW50ZXJ3aWtpLWFscyI+PGEgaHJl
Zj0iaHR0cDovL2Fscy53aWtpcGVkaWEub3JnL3dpa2kvTWVuYXJjaGUiIHRpdGxl
PSJNZW5hcmNoZSI+QWxlbWFubmlzY2g8L2E+PC9saT4KCQkJCQk8bGkgY2xhc3M9
ImludGVyd2lraS1hciI+PGEgaHJlZj0iaHR0cDovL2FyLndpa2lwZWRpYS5vcmcv
d2lraS8lRDglQTglRDglQUYlRDglQTFfJUQ4JUE3JUQ5JTg0JUQ4JUE1JUQ4JUFE
JUQ4JUE3JUQ4JUI2JUQ4JUE5IiB0aXRsZT0i2KjYr9ihINin2YTYpdit2KfYttip
Ij7Yp9mE2LnYsdio2YrYqTwvYT48L2xpPgoJCQkJCTxsaSBjbGFzcz0iaW50ZXJ3
aWtpLWJnIj48YSBocmVmPSJodHRwOi8vYmcud2lraXBlZGlhLm9yZy93aWtpLyVE
MCU5QyVEMCVCNSVEMCVCRCVEMCVCMCVEMSU4MCVEMSU4NSVEMCVCNSIgdGl0bGU9
ItCc0LXQvdCw0YDRhdC1Ij7QkdGK0LvQs9Cw0YDRgdC60Lg8L2E+PC9saT4KCQkJ
CQk8bGkgY2xhc3M9ImludGVyd2lraS1jYSI+PGEgaHJlZj0iaHR0cDovL2NhLndp
a2lwZWRpYS5vcmcvd2lraS9NZW5hcnF1aWEiIHRpdGxlPSJNZW5hcnF1aWEiPkNh
dGFsw6A8L2E+PC9saT4KCQkJCQk8bGkgY2xhc3M9ImludGVyd2lraS1jcyI+PGEg
aHJlZj0iaHR0cDovL2NzLndpa2lwZWRpYS5vcmcvd2lraS9NZW5hcmNoZSIgdGl0
bGU9Ik1lbmFyY2hlIj7EjGVza3k8L2E+PC9saT4KCQkJCQk8bGkgY2xhc3M9Imlu
dGVyd2lraS1kZSI+PGEgaHJlZj0iaHR0cDovL2RlLndpa2lwZWRpYS5vcmcvd2lr
aS9NZW5hcmNoZSIgdGl0bGU9Ik1lbmFyY2hlIj5EZXV0c2NoPC9hPjwvbGk+CgkJ
CQkJPGxpIGNsYXNzPSJpbnRlcndpa2ktZXMiPjxhIGhyZWY9Imh0dHA6Ly9lcy53
aWtpcGVkaWEub3JnL3dpa2kvTWVuYXJxdSVDMyVBRGEiIHRpdGxlPSJNZW5hcnF1
w61hIj5Fc3Bhw7FvbDwvYT48L2xpPgoJCQkJCTxsaSBjbGFzcz0iaW50ZXJ3aWtp
LWZyIj48YSBocmVmPSJodHRwOi8vZnIud2lraXBlZGlhLm9yZy93aWtpL00lQzMl
QTluYXJjaGUiIHRpdGxlPSJNw6luYXJjaGUiPkZyYW7Dp2FpczwvYT48L2xpPgoJ
CQkJCTxsaSBjbGFzcz0iaW50ZXJ3aWtpLWl0Ij48YSBocmVmPSJodHRwOi8vaXQu
d2lraXBlZGlhLm9yZy93aWtpL01lbmFyY2EiIHRpdGxlPSJNZW5hcmNhIj5JdGFs
aWFubzwvYT48L2xpPgoJCQkJCTxsaSBjbGFzcz0iaW50ZXJ3aWtpLWx0Ij48YSBo
cmVmPSJodHRwOi8vbHQud2lraXBlZGlhLm9yZy93aWtpL01lbmFyY2glQzQlOTci
IHRpdGxlPSJNZW5hcmNoxJciPkxpZXR1dmnFszwvYT48L2xpPgoJCQkJCTxsaSBj
bGFzcz0iaW50ZXJ3aWtpLW5sIj48YSBocmVmPSJodHRwOi8vbmwud2lraXBlZGlh
Lm9yZy93aWtpL01lbmFyY2hlIiB0aXRsZT0iTWVuYXJjaGUiPk5lZGVybGFuZHM8
L2E+PC9saT4KCQkJCQk8bGkgY2xhc3M9ImludGVyd2lraS1qYSI+PGEgaHJlZj0i
aHR0cDovL2phLndpa2lwZWRpYS5vcmcvd2lraS8lRTYlOUMlODglRTclQjUlOEMj
LkU1Ljg4LjlELkU2LkJELkFFIiB0aXRsZT0i5pyI57WMIj7ml6XmnKzoqp48L2E+
PC9saT4KCQkJCQk8bGkgY2xhc3M9ImludGVyd2lraS1wbCI+PGEgaHJlZj0iaHR0
cDovL3BsLndpa2lwZWRpYS5vcmcvd2lraS9NZW5hcmNoZSIgdGl0bGU9Ik1lbmFy
Y2hlIj5Qb2xza2k8L2E+PC9saT4KCQkJCQk8bGkgY2xhc3M9ImludGVyd2lraS1y
dSI+PGEgaHJlZj0iaHR0cDovL3J1Lndpa2lwZWRpYS5vcmcvd2lraS8lRDAlOUMl
RDAlQjUlRDAlQkQlRDAlQjAlRDElODAlRDElODUlRDAlQjUiIHRpdGxlPSLQnNC1
0L3QsNGA0YXQtSI+0KDRg9GB0YHQutC40Lk8L2E+PC9saT4KCQkJCQk8bGkgY2xh
c3M9ImludGVyd2lraS1zayI+PGEgaHJlZj0iaHR0cDovL3NrLndpa2lwZWRpYS5v
cmcvd2lraS9NZW5hcmNoJUMzJUE5IiB0aXRsZT0iTWVuYXJjaMOpIj5TbG92ZW7E
jWluYTwvYT48L2xpPgoJCQkJCTxsaSBjbGFzcz0iaW50ZXJ3aWtpLXNsIj48YSBo
cmVmPSJodHRwOi8vc2wud2lraXBlZGlhLm9yZy93aWtpL01lbmFyaGEiIHRpdGxl
PSJNZW5hcmhhIj5TbG92ZW7FocSNaW5hPC9hPjwvbGk+CgkJCQkJPGxpIGNsYXNz
PSJpbnRlcndpa2ktc3YiPjxhIGhyZWY9Imh0dHA6Ly9zdi53aWtpcGVkaWEub3Jn
L3dpa2kvTWVuYXJjaGUiIHRpdGxlPSJNZW5hcmNoZSI+U3ZlbnNrYTwvYT48L2xp
PgoJCQkJCTxsaSBjbGFzcz0iaW50ZXJ3aWtpLXRlIj48YSBocmVmPSJodHRwOi8v
dGUud2lraXBlZGlhLm9yZy93aWtpLyVFMCVCMCVCMCVFMCVCMCU5QyVFMCVCMCVC
OCVFMCVCMSU4RCVFMCVCMCVCNSVFMCVCMCVCMiIgdGl0bGU9IuCwsOCwnOCwuOCx
jeCwteCwsiI+4LCk4LGG4LCy4LGB4LCX4LGBPC9hPjwvbGk+CgkJCQkJPGxpIGNs
YXNzPSJpbnRlcndpa2ktemgiPjxhIGhyZWY9Imh0dHA6Ly96aC53aWtpcGVkaWEu
b3JnL3dpa2kvJUU1JTg4JTlEJUU2JUJEJUFFIiB0aXRsZT0i5Yid5r2uIj7kuK3m
loc8L2E+PC9saT4KCQkJCTwvdWw+Cgk8L2Rpdj4KPC9kaXY+Cgo8IS0tIC9MQU5H
VUFHRVMgLS0+CgkJCTwvZGl2PgoJCTwhLS0gL3BhbmVsIC0tPgoJCTwhLS0gZm9v
dGVyIC0tPgoJCTxkaXYgaWQ9ImZvb3RlciI+CgkJCQkJCQkJCQkJPHVsIGlkPSJm
b290ZXItaW5mbyI+CgkJCQkJCQkJCQkJCQkJCQkJPGxpIGlkPSJmb290ZXItaW5m
by1sYXN0bW9kIj4gVGhpcyBwYWdlIHdhcyBsYXN0IG1vZGlmaWVkIG9uIDI5IEF1
Z3VzdCAyMDEwIGF0IDAzOjIxLjxiciAvPjwvbGk+CgkJCQkJCQkJCQkJCQkJCQkJ
CQkJCQkJPGxpIGlkPSJmb290ZXItaW5mby1jb3B5cmlnaHQiPlRleHQgaXMgYXZh
aWxhYmxlIHVuZGVyIHRoZSA8YSByZWw9ImxpY2Vuc2UiIGhyZWY9Imh0dHA6Ly9l
bi53aWtpcGVkaWEub3JnL3dpa2kvV2lraXBlZGlhOlRleHRfb2ZfQ3JlYXRpdmVf
Q29tbW9uc19BdHRyaWJ1dGlvbi1TaGFyZUFsaWtlXzMuMF9VbnBvcnRlZF9MaWNl
bnNlIj5DcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLVNoYXJlQWxpa2UgTGlj
ZW5zZTwvYT48YSByZWw9ImxpY2Vuc2UiIGhyZWY9Imh0dHA6Ly9jcmVhdGl2ZWNv
bW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzMuMC8iIHN0eWxlPSJkaXNwbGF5Om5v
bmU7Ij48L2E+OwphZGRpdGlvbmFsIHRlcm1zIG1heSBhcHBseS4KU2VlIDxhIGhy
ZWY9Imh0dHA6Ly93aWtpbWVkaWFmb3VuZGF0aW9uLm9yZy93aWtpL1Rlcm1zX29m
X1VzZSI+VGVybXMgb2YgVXNlPC9hPiBmb3IgZGV0YWlscy48YnIvPgpXaWtpcGVk
aWEmcmVnOyBpcyBhIHJlZ2lzdGVyZWQgdHJhZGVtYXJrIG9mIHRoZSA8YSBocmVm
PSJodHRwOi8vd3d3Lndpa2ltZWRpYWZvdW5kYXRpb24ub3JnLyI+V2lraW1lZGlh
IEZvdW5kYXRpb24sIEluYy48L2E+LCBhIG5vbi1wcm9maXQgb3JnYW5pemF0aW9u
LjxiciAvPjwvbGk+PGxpIGNsYXNzPSJub3ByaW50Ij48YSBjbGFzcz0naW50ZXJu
YWwnIGhyZWY9Imh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2lraXBlZGlh
OkNvbnRhY3RfdXMiPkNvbnRhY3QgdXM8L2E+PC9saT4KCQkJCQkJCQkJCQkJCQkJ
PC91bD4KCQkJCQkJCQkJCQkJCQkJPHVsIGlkPSJmb290ZXItcGxhY2VzIj4KCQkJ
CQkJCQkJCQkJCQkJCQk8bGkgaWQ9ImZvb3Rlci1wbGFjZXMtcHJpdmFjeSI+PGEg
aHJlZj0iaHR0cDovL3dpa2ltZWRpYWZvdW5kYXRpb24ub3JnL3dpa2kvUHJpdmFj
eV9wb2xpY3kiIHRpdGxlPSJ3aWtpbWVkaWE6UHJpdmFjeSBwb2xpY3kiPlByaXZh
Y3kgcG9saWN5PC9hPjwvbGk+CgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPGxpIGlk
PSJmb290ZXItcGxhY2VzLWFib3V0Ij48YSBocmVmPSIvd2lraS9XaWtpcGVkaWE6
QWJvdXQiIHRpdGxlPSJXaWtpcGVkaWE6QWJvdXQiPkFib3V0IFdpa2lwZWRpYTwv
YT48L2xpPgoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxsaSBpZD0iZm9vdGVyLXBs
YWNlcy1kaXNjbGFpbWVyIj48YSBocmVmPSIvd2lraS9XaWtpcGVkaWE6R2VuZXJh
bF9kaXNjbGFpbWVyIiB0aXRsZT0iV2lraXBlZGlhOkdlbmVyYWwgZGlzY2xhaW1l
ciI+RGlzY2xhaW1lcnM8L2E+PC9saT4KCQkJCQkJCQkJCQkJCQkJPC91bD4KCQkJ
CQkJCQkJCTx1bCBpZD0iZm9vdGVyLWljb25zIiBjbGFzcz0ibm9wcmludCI+CgkJ
CQkJCQkJPGxpIGlkPSJmb290ZXItaWNvbi1wb3dlcmVkYnkiPjxhIGhyZWY9Imh0
dHA6Ly93d3cubWVkaWF3aWtpLm9yZy8iPjxpbWcgc3JjPSJodHRwOi8vYml0cy53
aWtpbWVkaWEub3JnL3NraW5zLTEuNS9jb21tb24vaW1hZ2VzL3Bvd2VyZWRieV9t
ZWRpYXdpa2lfODh4MzEucG5nIiBoZWlnaHQ9IjMxIiB3aWR0aD0iODgiIGFsdD0i
UG93ZXJlZCBieSBNZWRpYVdpa2kiIC8+PC9hPjwvbGk+CgkJCQkJCQkJCQkJCTxs
aSBpZD0iZm9vdGVyLWljb24tY29weXJpZ2h0Ij48YSBocmVmPSJodHRwOi8vd2lr
aW1lZGlhZm91bmRhdGlvbi5vcmcvIj48aW1nIHNyYz0iL2ltYWdlcy93aWtpbWVk
aWEtYnV0dG9uLnBuZyIgd2lkdGg9Ijg4IiBoZWlnaHQ9IjMxIiBhbHQ9Ildpa2lt
ZWRpYSBGb3VuZGF0aW9uIi8+PC9hPjwvbGk+CgkJCQkJCQk8L3VsPgoJCQk8ZGl2
IHN0eWxlPSJjbGVhcjpib3RoIj48L2Rpdj4KCQk8L2Rpdj4KCQk8IS0tIC9mb290
ZXIgLS0+CgkJPCEtLSBmaXhhbHBoYSAtLT4KCQk8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+IGlmICggd2luZG93LmlzTVNJRTU1ICkgZml4YWxwaGEoKTsg
PC9zY3JpcHQ+CgkJPCEtLSAvZml4YWxwaGEgLS0+CgkJCjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij5pZiAod2luZG93LnJ1bk9ubG9hZEhvb2spIHJ1bk9u
bG9hZEhvb2soKTs8L3NjcmlwdD4KCQk8IS0tIFNlcnZlZCBieSBzcnYyMzggaW4g
MC4wNTIgc2Vjcy4gLS0+CQkJPC9ib2R5Pgo8L2h0bWw+Cg==
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=favicon.ico
Content-Type: image/x-icon; name=favicon.ico
Content-Location: http://en.wikipedia.org/favicon.ico
Content-Transfer-Encoding: Base64
AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAA
AAAAAAAAEAAAAAAAAAAEAgQAhIOEAMjHyABIR0gA6ejpAGlqaQCpqKkAKCgoAPz9
/AAZGBkAmJiYANjZ2ABXWFcAent6ALm6uQA8OjwAiIiIiIiIiIiIiI4oiL6IiIiI
gzuIV4iIiIhndo53KIiIiB/WvXoYiIiIfEZfWBSIiIEGi/foqoiIgzuL84i9iIjp
GIoMiEHoiMkos3FojmiLlUipYliEWIF+iDe0GoRa7D6GPbjcu1yIiIiIiIiIiIiI
iIiIiIiIiIiIiIiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/page-base.pn
g?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAANQTFRF9vb2AAsjqgAAAApJREFUCB1j
YAAAAAIAAc/INeUAAAAASUVORK5CYII=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/border.png?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAANQTFRFp9f5cVVvXwAAAApJREFUCB1j
YAAAAAIAAc/INeUAAAAASUVORK5CYII=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/page-fade.pn
g?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAMAAACT+SJTAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFdQTFRF+fn49/f2+/v89vf3/v79/v3+
/v/++fj4/fz89/f4+fr5/f79/Pv8+Pn59/b2+/v7/f38+Pj4+vr5+vr7/Pz8+fn5
9vb29/j4+vr6/v7+/f399/f3////vR8U6wAAADxJREFUeNotwgcOgCAURMEnKnaw
Yr3/Od38kBm+zHObmoqBx8y07OIYiWxyyUrPITDRsHBKx2tKCgKJ9AOMswMINl/f
OQAAAABJRU5ErkJggg==
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/tab-break.pn
g?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAEAAAAuCAMAAADeMYNYAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGBQTFRFyuf7xeX6vuL6td76qtn5+vv7
9/n7rtr5/Pz84vH7sNv6weP60en7qNf56vX74PD77fb7zuj77/b8stz65/P78/j8
8ff83e/7uuD61ev79Pj75PL72Oz72+370+v7uN/6UiPZnwAAAD1JREFUeNpNwccB
gCAABMFFMaMIZkz9d+k9naH+LbTUxMJKZGRg1pMGz8bNxcGDI4AY7cjY9SVn0pZK
rfYfcHYCb27V9m8AAAAASUVORK5CYII=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/tab-normal-f
ade.png?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAMAAABw8qpSAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFpQTFRF/P3++fv9+vz+6vT46vP49/r9
+Pv9p9f57PT6+/z+7PT59vr98/j77vb69Pn89Pn76vL48ff67fT68ff77vX6/v//
9fr86PL4+/3+7/b68vf7/f7+/v7/////unDFUAAAADpJREFUeNrFwoURg0AAALDg
Li3SYvuvyR9LcInrZYvzcTzgrxIHUZDLNFa9QWs3+dh0Zl+lWiI1+iluKncJSLF7
CNkAAAAASUVORK5CYII=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/tab-current-
fade.png?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAEAAABkAQMAAAB94sgjAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAANQTFRF////p8QbyAAAAAxJREFUCB1j
YBgeAAAAyAABP2UdiQAAAABJRU5ErkJggg==
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/search-fade.
png?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAEAAAAQBAMAAAAlsQiEAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACpQTFRF9vf3/v/++fr5/Pv8+/v7/f38
+Pj4+fn59vb2+vr6/v7+/f399/f3////Hp8+5gAAACVJREFUCNdjaGBoYDjAkACE
BQwKDBMYHBgMGAIYNgDhAoYLDBcAdIAIAfO0JnYAAAAASUVORK5CYII=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/portal-break
.png?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAIwAAAABCAMAAAA7MLYKAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEtQTFRF29vb2tra4ODg6urq5OTk4uLi
6+vr7e3t7Ozs8PDw5+fn4+Pj4eHh3d3d39/f6Ojo5eXl6enp8fHx8/Pz8vLy7+/v
3Nzc2dnZ2NjYnErj7QAAAD1JREFUeNq0wQUBACAMALDj7hf6JyUFGxzEnYhC9GaN
PG1xVffGDErk/iCigLl1XV2xM49lfAxEaSM+AQYA9HMKuv4liFQAAAAASUVORK5C
YII=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/bullet-icon.
png?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAUAAAANCAMAAABW4lS6AAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRFAFKM////QIUK9QAAAAJ0Uk5T
/wDltzBKAAAAGklEQVR42mJgBAEGokgGBjBGBxBxsBqAAAMACHwALd5r8ygAAAAA
SUVORK5CYII=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/external-lin
k-ltr-icon.png?2
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGBQTFRF////AGb/AGbMmcz/M5nMZpnM
////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7feQVwAAAAd0Uk5T////////
ABpLA0YAAAA6SURBVHjaJMtBDgBABARBs4P/P3kbfZCKEE3aAmUFLVu5fCQfGQ7n
ciTV0GW9zp4Ds+B5SMcLfgEGADSKAPVZzedhAAAAAElFTkSuQmCC
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/user-icon.pn
g?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAoAAAALCAMAAABxsOwqAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGBQTFRF78mOboqv0K93R2uZ4a1a5rp2
N2mnMmGd/Pr4k6zMMFySTXWr2Jg157Vn4Zst9unUl6a836ZMr7CwooVQPXGwpLnW
5KQ/vMne+O/gXXiV6+zt5Orx1t7n7/Dwgpm5////xZOJMQAAACB0Uk5T////////
/////////////////////////////////wBcXBvtAAAAY0lEQVR42hzKSQKAIAwE
wWAMQUBBQdzN/38p0pepw4DI3vVzH0RADBCNpTOVYaZAxYefZaQyNZplqrXDeiTv
07EJ3C67uGR0F7yo9bAyYwSFrJ1iywoi19HW2gjPiy11fgIMAJ51Bh79zDO4AAAA
AElFTkSuQmCC
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=main-ltr.css
Content-Type: text/css; charset=UTF-8; name=main-ltr.css
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/main-ltr.css?283u
Content-Transfer-Encoding: 8bit
/*
* main-rtl.css is automatically generated using CSSJanus, a python script for
* creating RTL versions of otherwise LTR stylesheets.
*
* You may download the tool to rebuild this stylesheet
* http://code.google.com/p/cssjanus/
*
* An online version of this tool can be used at:
* http://cssjanus.commoner.com/
*
* The following command is used to generate the RTL version of this file
* ./cssjanus.py --swap_ltr_rtl_in_url < main-ltr.css > main-rtl.css
*
* Any rules which should not be flipped should be prepended with @noflip in
* a comment block.
*/
/* Framework */
html,
body {
height: 100%;
margin: 0;
padding: 0;
font-family: sans-serif;
font-size: 1em;
}
body {
background-color: #f3f3f3;
background-image: url(images/page-base.png?1);
}
/* Content */
#content {
margin-left: 10em;
padding: 1em;
background-image: url(images/border.png?1);
background-position: top left;
background-repeat: repeat-y;
background-color: white;
color: black;
}
/* Head */
#mw-page-base {
height: 5em;
background-color: white;
background-image: url(images/page-fade.png?1);
background-position: bottom left;
background-repeat: repeat-x;
}
#mw-head-base {
margin-top: -5em;
margin-left: 10em;
height: 5em;
background-image: url(images/border.png?1);
background-position: bottom left;
background-repeat: repeat-x;
}
div#mw-head {
position: absolute;
top: 0;
right: 0;
width: 100%;
}
div#mw-head h5 {
margin: 0;
padding: 0;
}
/* Hide empty portlets */
div.emptyPortlet {
display: none;
}
/* Personal */
#p-personal {
position: absolute;
top: 0;
padding-left: 10em;
right: 0.75em;
}
#p-personal h5 {
display: none;
}
#p-personal ul {
list-style: none;
margin: 0;
padding: 0;
}
/* @noflip */
#p-personal li {
line-height: 1.125em;
float: left;
}
/* This one flips! */
#p-personal li {
margin-left: 0.75em;
margin-top: 0.5em;
font-size: 0.75em;
white-space: nowrap;
}
/* Navigation Containers */
#left-navigation {
position: absolute;
left: 10em;
top: 2.5em;
}
#right-navigation {
float: right;
margin-top: 2.5em;
}
/* Navigation Labels */
div.vectorTabs h5,
div.vectorMenu h5 span {
display: none;
}
/* Namespaces and Views */
/* @noflip */
div.vectorTabs {
float: left;
height: 2.5em;
}
div.vectorTabs {
background-image: url(images/tab-break.png?1);
background-position: bottom left;
background-repeat: no-repeat;
padding-left: 1px;
}
/* @noflip */
div.vectorTabs ul {
float: left;
}
div.vectorTabs ul {
height: 100%;
list-style: none;
margin: 0;
padding: 0;
}
/* @noflip */
div.vectorTabs ul li {
float: left;
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
div.vectorTabs ul li {
line-height: 1.125em;
display: inline-block;
height: 100%;
margin: 0;
padding: 0;
background-color: #f3f3f3;
background-image: url(images/tab-normal-fade.png?1);
background-position: bottom left;
background-repeat: repeat-x;
white-space:nowrap;
}
/* IGNORED BY IE6 */
div.vectorTabs ul > li {
display: block;
}
div.vectorTabs li.selected {
background-image: url(images/tab-current-fade.png?1);
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
div.vectorTabs li a {
display: inline-block;
height: 2.5em;
padding-left: 0.4em;
padding-right: 0.4em;
background-image: url(images/tab-break.png?1);
background-position: bottom right;
background-repeat: no-repeat;
}
div.vectorTabs li a,
div.vectorTabs li a span {
color: #0645ad;
cursor: pointer;
}
div.vectorTabs li a span {
font-size: 0.8em;
}
/* IGNORED BY IE6 */
div.vectorTabs li > a {
display: block;
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
div.vectorTabs a span {
display: inline-block;
padding-top: 1.25em;
}
/* IGNORED BY IE6 */
/* @noflip */
div.vectorTabs a > span {
float: left;
display: block;
}
div.vectorTabs li.selected a,
div.vectorTabs li.selected a span,
div.vectorTabs li.selected a:visited
div.vectorTabs li.selected a:visited span {
color: #333333;
text-decoration: none;
}
div.vectorTabs li.new a,
div.vectorTabs li.new a span,
div.vectorTabs li.new a:visited,
div.vectorTabs li.new a:visited span {
color: #a55858;
}
/* Variants and Actions */
/* @noflip */
div.vectorMenu {
direction: ltr;
float: left;
background-image: url(images/arrow-down-icon.png?1);
background-position: 100% 60%;
background-repeat: no-repeat;
cursor: pointer;
}
/* @noflip */
body.rtl div.vectorMenu {
direction: rtl;
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
/* @noflip */
div#mw-head div.vectorMenu h5 {
float: left;
background-image: url(images/tab-break.png?1);
background-repeat: no-repeat;
}
/* IGNORED BY IE6 */
div#mw-head div.vectorMenu > h5 {
background-image: none;
}
div#mw-head div.vectorMenu h5 {
background-position: bottom left;
margin-left: -1px;
}
div#mw-head div.vectorMenu h4 {
display: inline-block;
float: left;
font-size: 0.8em;
padding-left: 0.5em;
padding-top: 1.375em;
font-weight: normal;
border: none;
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
/* @noflip */
div.vectorMenu h5 a {
display: inline-block;
width: 24px;
height: 2.5em;
text-decoration: none;
background-image: url(images/tab-break.png?1);
background-repeat: no-repeat;
}
div.vectorMenu h5 a{
background-position: bottom right;
}
/* IGNORED BY IE6 */
div.vectorMenu h5 > a {
display: block;
}
div.vectorMenu div.menu {
position: relative;
display: none;
clear: both;
text-align: left;
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
/* @noflip */
body.rtl div.vectorMenu div.menu {
margin-left: 24px;
}
/* IGNORED BY IE6 */
/* @noflip */
body.rtl div.vectorMenu > div.menu {
margin-left: auto;
}
/* Fixes old versions of FireFox */
/* @noflip */
body.rtl div.vectorMenu > div.menu,
x:-moz-any-link {
margin-left: 23px;
}
div.vectorMenu:hover div.menu {
display: block;
}
div.vectorMenu ul {
position: absolute;
background-color: white;
border: solid 1px silver;
border-top-width: 0;
list-style: none;
list-style-image: none;
list-style-type: none;
padding: 0;
margin: 0;
margin-left: -1px;
text-align: left;
}
/* Fixes old versions of FireFox */
div.vectorMenu ul,
x:-moz-any-link {
min-width: 5em;
}
/* Returns things back to normal in modern versions of FireFox */
div.vectorMenu ul,
x:-moz-any-link,
x:default {
min-width: 0;
}
div.vectorMenu li {
padding: 0;
margin: 0;
text-align: left;
line-height: 1em;
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
div.vectorMenu li a {
display: inline-block;
padding: 0.5em;
white-space: nowrap;
}
/* IGNORED BY IE6 */
div.vectorMenu li > a {
display: block;
}
div.vectorMenu li a {
color: #0645ad;
cursor: pointer;
font-size: 0.8em;
}
div.vectorMenu li.selected a,
div.vectorMenu li.selected a:visited {
color: #333333;
text-decoration: none;
}
/* Search */
#p-search h5 {
display: none;
}
/* @noflip */
#p-search {
float: left;
}
#p-search {
margin-right: 0.5em;
margin-left: 0.5em;
}
#p-search form,
#p-search input {
margin: 0;
margin-top: 0.4em;
}
#simpleSearch {
margin-top: 0.65em;
position: relative;
min-height: 1px; /* Gotta trigger hasLayout for IE7 */
border: solid 1px #AAAAAA;
background-color: white;
background-image: url(images/search-fade.png?1);
background-position: top left;
background-repeat: repeat-x;
}
#simpleSearch label {
font-size: 13px;
top: 0.25em;
}
div#simpleSearch .placeholder {
color: #999999;
}
div#simpleSearch input::-webkit-input-placeholder {
color: #999999;
}
div#simpleSearch input#searchInput {
margin: 0;
border-width: 0;
padding: 3px;
vertical-align: top;
font-size: 13px;
width: 14em;
background-color: transparent;
}
/* OVERRIDDEN BY COMPLIANT BROWSERS */
#simpleSearch button#searchButton {
padding: 0;
margin: 0 5px;
border: none;
cursor: pointer;
background-color: transparent;
font-size: x-small;
}
div#simpleSearch button#searchButton img {
border: none;
margin: 0;
padding: 0;
vertical-align: middle;
}
/* Panel */
div#mw-panel {
position: absolute;
top: 160px;
padding-top: 1em;
width: 10em;
left: 0;
}
div#mw-panel div.portal {
padding-bottom: 1.5em;
}
div#mw-panel div.portal h5 {
font-weight: normal;
color: #444444;
padding: 0.25em;
padding-top: 0;
padding-left: 1.75em;
cursor: default;
border: none;
font-size: 0.75em;
}
div#mw-panel div.portal div.body {
margin: 0;
padding-top: 0.5em;
margin-left: 1.25em;
background-image: url(images/portal-break.png?1);
background-repeat: no-repeat;
background-position: top left;
}
div#mw-panel div.portal div.body ul {
list-style: none;
list-style-image: none;
list-style-type: none;
padding: 0;
margin: 0;
}
div#mw-panel div.portal div.body ul li {
line-height: 1.125em;
padding: 0;
padding-bottom: 0.5em;
margin: 0;
overflow: hidden;
font-size: 0.75em;
}
div#mw-panel div.portal div.body ul li a {
color: #0645ad;
}
div#mw-panel div.portal div.body ul li a:visited {
color: #0b0080;
}
/* Footer */
#footer {
margin-left: 10em;
margin-top: 0;
padding: 0.75em;
background-image: url(images/border.png?1);
background-position: top left;
background-repeat: repeat-x;
}
#footer ul {
list-style: none;
list-style-image: none;
list-style-type: none;
margin: 0;
padding: 0;
}
#footer ul li {
margin: 0;
padding: 0;
padding-top: 0.5em;
padding-bottom: 0.5em;
color: #333333;
font-size: 0.7em;
}
#footer #footer-icons {
float: right;
}
/* @noflip */
body.ltr #footer #footer-places {
float: left;
}
#footer #footer-info li {
line-height: 1.4em;
}
#footer #footer-icons li {
float: left;
margin-left: 0.5em;
line-height: 2em;
}
#footer #footer-places li {
float: left;
margin-right: 1em;
line-height: 2em;
}
/* Logo */
#p-logo {
position: absolute;
top: -160px;
left: 0;
width: 10em;
height: 160px;
}
#p-logo a {
display: block;
width: 10em;
height: 160px;
background-repeat: no-repeat;
background-position: center center;
text-decoration: none;
}
/*
*
* The following code is highly modified from monobook. It would be nice if the
* preftoc id was more human readable like preferences-toc for instance,
* howerver this would require backporting the other skins.
*/
/* Preferences */
#preftoc {
/* Tabs */
width: 100%;
float: left;
clear: both;
margin: 0 !important;
padding: 0 !important;
background-image: url(images/preferences-break.png?1);
background-position: bottom left;
background-repeat: no-repeat;
}
#preftoc li {
/* Tab */
float: left;
margin: 0;
padding: 0;
padding-right: 1px;
height: 2.25em;
white-space: nowrap;
list-style-type: none;
list-style-image: none;
background-image: url(images/preferences-break.png?1);
background-position: bottom right;
background-repeat: no-repeat;
}
/* IGNORED BY IE6 */
#preftoc li:first-child {
margin-left: 1px;
}
#preftoc a,
#preftoc a:active {
display: inline-block;
position: relative;
color: #0645ad;
padding: 0.5em;
text-decoration: none;
background-image: none;
font-size: 0.9em;
}
#preftoc a:hover {
text-decoration: underline;
}
#preftoc li.selected a {
background-image: url(images/preferences-fade.png?1);
background-position: bottom;
background-repeat: repeat-x;
color: #333333;
text-decoration: none;
}
#preferences {
float: left;
width: 100%;
margin: 0;
margin-top: -2px;
clear: both;
border: solid 1px #cccccc;
background-color: #f9f9f9;
background-image: url(images/preferences-base.png?1);
}
#preferences fieldset.prefsection {
border: none;
padding: 0;
margin: 1em;
}
#preferences fieldset.prefsection fieldset {
border: none;
border-top: solid 1px #cccccc;
}
#preferences legend {
color: #666666;
}
#preferences fieldset.prefsection legend.mainLegend {
display: none;
}
#preferences td {
padding-left: 0.5em;
padding-right: 0.5em;
}
#preferences td.htmlform-tip {
font-size: x-small;
padding: .2em 2em;
color: #666666;
}
#preferences div.mw-prefs-buttons {
padding: 1em;
}
#preferences div.mw-prefs-buttons input {
margin-right: 0.25em;
}
/*
* Styles for the user login and create account forms
*/
#userlogin, #userloginForm {
border: solid 1px #cccccc;
padding: 1.2em;
margin: .5em;
float: left;
}
#userlogin {
min-width: 20em;
max-width: 90%;
width: 40em;
}
/*
*
* The following code is slightly modified from monobook
*
*/
#content {
line-height: 1.5em;
}
#bodyContent {
font-size: 0.8em;
}
/* Links */
a {
text-decoration: none;
color: #0645ad;
background: none;
}
a:visited {
color: #0b0080;
}
a:active {
color: #faa700;
}
a:hover {
text-decoration: underline;
}
a.stub {
color: #772233;
}
a.new, #p-personal a.new {
color: #ba0000;
}
a.new:visited, #p-personal a.new:visited {
color: #a55858;
}
/* Inline Elements */
img {
border: none;
vertical-align: middle;
}
hr {
height: 1px;
color: #aaa;
background-color: #aaa;
border: 0;
margin: .2em 0 .2em 0;
}
/* Structural Elements */
h1,
h2,
h3,
h4,
h5,
h6 {
color: black;
background: none;
font-weight: normal;
margin: 0;
padding-top: .5em;
padding-bottom: .17em;
border-bottom: 1px solid #aaa;
width: auto;
}
h1 { font-size: 188%; }
h1 .editsection { font-size: 53%; }
h2 { font-size: 150%; }
h2 .editsection { font-size: 67%; }
h3,
h4,
h5,
h6 {
border-bottom: none;
font-weight: bold;
}
h3 { font-size: 132%; }
h3 .editsection { font-size: 76%; font-weight: normal; }
h4 { font-size: 116%; }
h4 .editsection { font-size: 86%; font-weight: normal; }
h5 { font-size: 100%; }
h5 .editsection { font-weight: normal; }
h6 { font-size: 80%; }
h6 .editsection { font-size: 125%; font-weight: normal; }
p {
margin: .4em 0 .5em 0;
line-height: 1.5em;
}
p img {
margin: 0;
}
abbr,
acronym,
.explain {
border-bottom: 1px dotted black;
color: black;
background: none;
cursor: help;
}
q {
font-family: Times, "Times New Roman", serif;
font-style: italic;
}
/* Disabled for now
blockquote {
font-family: Times, "Times New Roman", serif;
font-style: italic;
}*/
pre, code, tt {
/*
* It's important for this rule to first reference an actual font name,
some browsers will render the monospace text
* too small otherwise, namely Firefox, Chrome and Safari
*/
font-family: monospace, "Courier New";
}
code {
background-color: #f9f9f9;
}
pre {
padding: 1em;
border: 1px dashed #2f6fab;
color: black;
background-color: #f9f9f9;
line-height: 1.1em;
}
ul {
line-height: 1.5em;
list-style-type: square;
margin: .3em 0 0 1.5em;
padding: 0;
list-style-image: url(images/bullet-icon.png?1);
}
ol {
line-height: 1.5em;
margin: .3em 0 0 3.2em;
padding: 0;
list-style-image: none;
}
li {
margin-bottom: .1em;
}
dt {
font-weight: bold;
margin-bottom: .1em;
}
dl {
margin-top: .2em;
margin-bottom: .5em;
}
dd {
line-height: 1.5em;
margin-left: 2em;
margin-bottom: .1em;
}
/* Tables */
table {
font-size: 100%;
color: black;
/* we don't want the bottom borders of <h2>s to be visible through
* floated tables */
background-color: white;
}
fieldset table {
/* but keep table layouts in forms clean... */
background: none;
}
/* Forms */
fieldset {
border: 1px solid #2f6fab;
margin: 1em 0 1em 0;
padding: 0 1em 1em;
line-height: 1.5em;
}
fieldset.nested {
margin: 0 0 0.5em 0;
padding: 0 0.5em 0.5em;
}
legend {
padding: .5em;
font-size: 95%;
}
form {
border: none;
margin: 0;
}
textarea {
width: 100%;
padding: .1em;
}
select {
vertical-align: top;
}
/* Table of Contents */
#toc,
.toc,
.mw-warning {
border: 1px solid #aaa;
background-color: #f9f9f9;
padding: 5px;
font-size: 95%;
}
#toc h2,
.toc h2 {
display: inline;
border: none;
padding: 0;
font-size: 100%;
font-weight: bold;
}
#toc #toctitle,
.toc #toctitle,
#toc .toctitle,
.toc .toctitle {
text-align: center;
}
#toc ul,
.toc ul {
list-style-type: none;
list-style-image: none;
margin-left: 0;
padding-left: 0;
text-align: left;
}
#toc ul ul,
.toc ul ul {
margin: 0 0 0 2em;
}
#toc .toctoggle,
.toc .toctoggle {
font-size: 94%;
}
/* Images */
div.floatright, table.floatright {
clear: right;
float: right;
position: relative;
margin: 0 0 .5em .5em;
border: 0;
}
div.floatright p { font-style: italic; }
div.floatleft, table.floatleft {
float: left;
clear: left;
position: relative;
margin: 0 .5em .5em 0;
border: 0;
}
div.floatleft p { font-style: italic; }
/* Thumbnails */
div.thumb {
margin-bottom: .5em;
border-style: solid;
border-color: white;
width: auto;
background-color: transparent;
}
div.thumbinner {
border: 1px solid #ccc;
padding: 3px !important;
background-color: #f9f9f9;
font-size: 94%;
text-align: center;
overflow: hidden;
}
html .thumbimage {
border: 1px solid #ccc;
}
html .thumbcaption {
border: none;
text-align: left;
line-height: 1.4em;
padding: 3px !important;
font-size: 94%;
}
div.magnify {
float: right;
border: none !important;
background: none !important;
}
div.magnify a, div.magnify img {
display: block;
border: none !important;
background: none !important;
}
/* @noflip */
div.tright {
clear: right;
float: right;
border-width: .5em 0 .8em 1.4em;
}
/* @noflip */
div.tleft {
float: left;
clear: left;
margin-right: .5em;
border-width: .5em 1.4em .8em 0;
}
img.thumbborder {
border: 1px solid #dddddd;
}
.hiddenStructure {
display: none;
}
/* Warning */
.mw-warning {
margin-left: 50px;
margin-right: 50px;
text-align: center;
}
/* User Message */
.usermessage {
background-color: #ffce7b;
border: 1px solid #ffa500;
color: black;
font-weight: bold;
margin: 2em 0 1em;
padding: .5em 1em;
vertical-align: middle;
}
/* Site Notice (includes notices from CentralNotice extension) */
#siteNotice {
position: relative;
text-align: center;
font-size: 0.8em;
margin: 0;
}
#localNotice {
margin-bottom: 0.9em;
}
/* Categories */
.catlinks {
border: 1px solid #aaa;
background-color: #f9f9f9;
padding: 5px;
margin-top: 1em;
clear: both;
}
/* Sub-navigation */
#siteSub {
display: none;
}
#jump-to-nav {
display: none;
}
#contentSub, #contentSub2 {
font-size: 84%;
line-height: 1.2em;
margin: 0 0 1.4em 1em;
color: #7d7d7d;
width: auto;
}
span.subpages {
display: block;
}
/* Emulate Center */
.center {
width: 100%;
text-align: center;
}
*.center * {
margin-left: auto;
margin-right: auto;
}
/* Small for tables and similar */
.small, .small * {
font-size: 94%;
}
table.small {
font-size: 100%;
}
/* Edge Cases for Content */
h1, h2 {
margin-bottom: .6em;
}
h3, h4, h5 {
margin-bottom: .3em;
}
#firstHeading {
padding-top: 0;
margin-top: 0;
padding-top: 0;
margin-bottom: 0.1em;
line-height: 1.2em;
font-size: 1.6em;
padding-bottom: 0;
}
#content a.external,
#content a[href ^="gopher://"] {
background: url(images/external-link-ltr-icon.png?2) center right no-rep
eat;
padding: 0 13px 0 0;
}
#content a[href ^="https://"],
.link-https {
background: url(images/lock-icon.png?2) center right no-repeat;
padding: 0 13px 0 0;
}
#content a[href ^="mailto:"],
.link-mailto {
background: url(images/mail-icon.png?2) center right no-repeat;
padding: 0 13px 0 0;
}
#content a[href ^="news://"] {
background: url(images/news-icon.png?2) center right no-repeat;
padding: 0 13px 0 0;
}
#content a[href ^="ftp://"],
.link-ftp {
background: url(images/file-icon.png?2) center right no-repeat;
padding: 0 13px 0 0;
}
#content a[href ^="irc://"],
#content a.extiw[href ^="irc://"],
.link-irc {
background: url(images/talk-icon.png?2) center right no-repeat;
padding: 0 13px 0 0;
}
#content a.external[href $=".ogg"], #content a.external[href $=".OGG"],
#content a.external[href $=".mid"], #content a.external[href $=".MID"],
#content a.external[href $=".midi"], #content a.external[href $=".MIDI"],
#content a.external[href $=".mp3"], #content a.external[href $=".MP3"],
#content a.external[href $=".wav"], #content a.external[href $=".WAV"],
#content a.external[href $=".wma"], #content a.external[href $=".WMA"],
.link-audio {
background: url("images/audio-icon.png?2") center right no-repeat;
padding: 0 13px 0 0;
}
#content a.external[href $=".ogm"], #content a.external[href $=".OGM"],
#content a.external[href $=".avi"], #content a.external[href $=".AVI"],
#content a.external[href $=".mpeg"], #content a.external[href $=".MPEG"],
#content a.external[href $=".mpg"], #content a.external[href $=".MPG"],
.link-video {
background: url("images/video-icon.png?2") center right no-repeat;
padding: 0 13px 0 0;
}
#content a.external[href $=".pdf"], #content a.external[href $=".PDF"],
#content a.external[href *=".pdf#"], #content a.external[href *=".PDF#"],
#content a.external[href *=".pdf?"], #content a.external[href *=".PDF?"],
.link-document {
background: url("images/document-icon.png?2") center right no-repeat;
padding: 0 13px 0 0;
}
/* Interwiki Styling (Disabled) */
#content a.extiw,
#content a.extiw:active {
color: #36b;
background: none;
padding: 0;
}
#content a.external {
color: #36b;
}
#content .printfooter {
display: none;
}
/* Icon for Usernames */
#pt-userpage,
#pt-anonuserpage,
#pt-login {
background: url(images/user-icon.png?1) left top no-repeat;
padding-left: 15px !important;
text-transform: none;
}
.toccolours {
border: 1px solid #aaa;
background-color: #f9f9f9;
padding: 5px;
font-size: 95%;
}
#bodyContent {
position: relative;
width: 100%;
}
#mw-js-message {
font-size: 0.8em;
}
div#bodyContent {
line-height: 1.5em;
}
/* Watch/Unwatch Icon Styling */
#ca-unwatch.icon,
#ca-watch.icon {
margin-right:1px;
}
#ca-unwatch.icon a,
#ca-watch.icon a {
margin: 0;
padding: 0;
outline: none;
display: block;
width: 26px;
height: 2.5em;
}
#ca-unwatch.icon a {
background-image: url(images/watch-icons.png?1);
background-position: -43px 60%;
}
#ca-watch.icon a {
background-image: url(images/watch-icons.png?1);
background-position: 5px 60%;
}
#ca-unwatch.icon a:hover {
background-image: url(images/watch-icons.png?1);
background-position: -67px 60%;
}
#ca-watch.icon a:hover {
background-image: url(images/watch-icons.png?1);
background-position: -19px 60%;
}
#ca-unwatch.icon a.loading,
#ca-watch.icon a.loading {
background-image: url(images/watch-icon-loading.gif?1);
background-position: center 60%;
}
#ca-unwatch.icon a span,
#ca-watch.icon a span {
display: none;
}
div.vectorTabs ul {
background-image:url(images/tab-break.png?1);
background-position:right bottom;
background-repeat:no-repeat;
}
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=shared.css
Content-Type: text/css; charset=UTF-8; name=shared.css
Content-Location: http://bits.wikimedia.org/skins-1.5/common/shared.css?283u
Content-Transfer-Encoding: 8bit
/**
* CSS in this file is used by *all* skins (that have any CSS at all). Be
* careful what you put in here, since what looks good in one skin may not in
* another, but don't ignore the poor non-Monobook users either.
*/
/* Colored watchlist and recent changes numbers */
.mw-plusminus-pos { color: #006400; } /* dark green */
.mw-plusminus-neg { color: #8b0000; } /* dark red */
.mw-plusminus-null { color: #aaa; } /* gray */
/* Comment and username portions of RC entries */
span.comment {
font-style: italic;
}
span.changedby {
font-size: 95%;
}
/* Math */
.texvc { direction: ltr; unicode-bidi: embed; }
img.tex { vertical-align: middle; }
span.texhtml { font-family: serif; }
/* add a bit of margin space between the preview and the toolbar */
/* this replaces the ugly <p><br /></p> we used to insert into the page source *
/
#wikiPreview.ontop { margin-bottom: 1em; }
/* Stop floats from intruding into edit area in previews */
#editform, #toolbar, #wpTextbox1 { clear: both; }
div#mw-js-message {
margin: 1em 5%;
padding: 0.5em 2.5%;
border: solid 1px #ddd;
background-color: #fcfcfc;
}
/* Edit section links */
.editsection {
float: right;
margin-left: 5px;
}
/**
* File histories
*/
h2#filehistory {
clear: both;
}
table.filehistory th,
table.filehistory td {
vertical-align:top;
}
table.filehistory th {
text-align: left;
}
table.filehistory td.mw-imagepage-filesize,
table.filehistory th.mw-imagepage-filesize {
white-space:nowrap;
}
table.filehistory td.filehistory-selected {
font-weight: bold;
}
/*
* rev_deleted stuff
*/
li span.deleted, span.history-deleted {
text-decoration: line-through;
color: #888;
font-style: italic;
}
/**
* Patrol stuff
*/
.not-patrolled {
background-color: #ffa;
}
.unpatrolled {
font-weight: bold;
color: red;
}
div.patrollink {
font-size: 75%;
text-align: right;
}
/**
* Forms
*/
body.ltr td.mw-label { text-align: right; }
body.ltr td.mw-input { text-align: left; }
body.ltr td.mw-submit { text-align: left; }
body.rtl td.mw-label { text-align: left; }
body.rtl td.mw-input { text-align: right; }
body.rtl td.mw-submit { text-align: right; }
td.mw-label { vertical-align: top; }
.prefsection td.mw-label { width: 20%; }
.prefsection table { width: 100%; }
td.mw-submit { white-space: nowrap; }
table.mw-htmlform-nolabel td.mw-label { width: 0 !important; }
tr.mw-htmlform-vertical-label td.mw-label {
text-align: left !important;
}
input#wpSummary {
width: 80%;
}
/**
* Image captions
*/
body.rtl .thumbcaption { text-align:right; }
body.rtl .magnify { float:left; }
body.ltr .thumbcaption { text-align:left; }
body.ltr .magnify { float:right; }
/**
* Hidden categories
*/
.mw-hidden-cats-hidden { display: none; }
.catlinks-allhidden { display: none; }
/* Convenience links to edit block, delete and protect reasons */
p.mw-ipb-conveniencelinks, p.mw-protect-editreasons,
p.mw-filedelete-editreasons, p.mw-delete-editreasons,
p.mw-revdel-editreasons {
font-size: 90%;
float: right;
}
/* Search results */
.searchresults {
}
.searchresults p {
margin-left: 0.4em;
margin-top: 1em;
margin-bottom: 1.2em;
}
div.searchresult {
font-size: 95%;
width:38em;
}
.mw-search-results {
margin-left: 0.4em;
}
.mw-search-results li {
padding-bottom: 1em;
list-style:none;
list-style-image:none;
}
.mw-search-results li a {
font-size: 108%;
}
.mw-search-result-data {
color: green;
font-size: 97%;
}
.mw-search-formheader {
background-color: #f3f3f3;
margin-top: 1em;
border: 1px solid silver;
}
.mw-search-formheader div.search-types {
float:left;
padding-left: 0.25em;
}
.rtl .mw-search-formheader div.search-types {
float: right;
}
.mw-search-formheader div.search-types ul {
margin: 0 !important;
padding: 0 !important;
list-style: none !important;
}
.mw-search-formheader div.search-types ul li {
float: left;
margin: 0;
padding: 0;
}
.mw-search-formheader div.search-types ul li a {
display: block;
padding: 0.5em;
}
.mw-search-formheader div.search-types ul li.current a {
color: #333333;
cursor: default;
}
.mw-search-formheader div.search-types ul li.current a:hover {
text-decoration: none;
}
.mw-search-formheader div.results-info {
float: right;
padding: 0.5em;
padding-right: 0.75em;
}
.mw-search-formheader div.results-info ul {
margin: 0 !important;
padding: 0 !important;
list-style: none !important;
}
.mw-search-formheader div.results-info ul li {
float: right;
margin: 0;
padding: 0;
}
fieldset#mw-searchoptions {
margin: 0;
padding-left: 0.75em !important;
padding-right: 0.75em !important;
padding-bottom: 0.5em !important;
padding-top: 0.5em !important;
border: none;
background-color: #f9f9f9;
border: 1px solid silver !important;
border-top-width: 0 !important;
}
fieldset#mw-searchoptions legend {
display: none;
}
fieldset#mw-searchoptions h4 {
padding: 0;
margin: 0;
float: left;
}
.rtl fieldset#mw-searchoptions h4 {
float: right;
}
fieldset#mw-searchoptions div#mw-search-togglebox {
float: right;
}
.rtl fieldset#mw-searchoptions div#mw-search-togglebox {
float: left;
}
fieldset#mw-searchoptions div#mw-search-togglebox label {
margin-right: 0.25em;
}
fieldset#mw-searchoptions div#mw-search-togglebox input {
margin-left: 0.25em;
}
fieldset#mw-searchoptions table {
float: left;
margin-right: 3em;
}
fieldset#mw-searchoptions table td {
padding-right: 1em;
}
.rtl fieldset#mw-searchoptions table td {
padding-left: 1em;
padding-right: 0;
}
body.rtl fieldset#mw-searchoptions table {
margin-right: 0;
margin-left: 3em;
float: right;
}
fieldset#mw-searchoptions div.divider {
clear: both;
border-bottom: 1px solid #DDDDDD;
padding-top: 0.5em;
margin-bottom: 0.5em;
}
td#mw-search-menu {
padding-left:6em;
font-size:85%;
}
div#mw-search-interwiki {
float: right;
width: 18em;
border-style: solid;
border-color: #AAAAAA;
border-width: 1px;
margin-top: 2ex;
}
.rtl div#mw-search-interwiki {
float: left;
}
div#mw-search-interwiki li {
font-size: 95%;
}
.mw-search-interwiki-more {
float: right;
font-size: 90%;
}
.rtl .mw-search-interwiki-more {
float: left;
}
div#mw-search-interwiki-caption {
text-align: center;
font-weight: bold;
font-size: 95%;
}
.mw-search-interwiki-project {
font-size: 97%;
text-align: left;
padding-left: 0.2em;
padding-right: 0.15em;
padding-bottom: 0.2em;
padding-top: 0.15em;
background-color:#ececec;
border-top:1px solid #BBBBBB;
}
.rtl .mw-search-interwiki-project {
text-align: right;
}
span.searchalttitle {
font-size: 95%;
}
div.searchdidyoumean {
font-size: 127%;
margin-top: 0.8em;
/* Note that this color won't affect the link, as desired. */
color: #c00;
}
div.searchdidyoumean em {
font-weight: bold;
}
.searchmatch {
font-weight: bold;
}
table#mw-search-top-table {
background-color: transparent;
}

/*
* Advanced PowerSearch box
*/
td#mw-search-togglebox {
text-align: right;
}
table#mw-search-powertable {
width:100%;
}
form#powersearch {
clear: both;
}

/*
* UserRights stuff
*/
.mw-userrights-disabled {
color: #888;
}
table.mw-userrights-groups * td,table.mw-userrights-groups * th {
padding-right: 1.5em;
}
/*
* OpenSearch ajax suggestions
*/
.os-suggest {
overflow: auto;
overflow-x: hidden;
position: absolute;
top: 0px;
left: 0px;
width: 0px;
background-color: white;
background-color: Window;
border-style: solid;
border-color: #AAAAAA;
border-width: 1px;
z-index:99;
font-size:95%;
}
table.os-suggest-results {
font-size: 95%;
cursor: pointer;
border: 0;
border-collapse: collapse;
width: 100%;
}
.os-suggest-result, .os-suggest-result-hl {
white-space: nowrap;
background-color: white;
background-color: Window;
color: black;
color: WindowText;
padding: 2px;
}
.os-suggest-result-hl,
.os-suggest-result-hl-webkit {
background-color: #4C59A6;
color: white;
}
.os-suggest-result-hl {
/* System colors are misimplemented in Safari 3.0 and earlier,
making highlighted text illegible... */
background-color: Highlight;
color: HighlightText;
}
.os-suggest-toggle {
position: relative;
left: 1ex;
font-size: 65%;
}
.os-suggest-toggle-def {
position: absolute;
top: 0px;
left: 0px;
font-size: 65%;
visibility: hidden;
}
/* Page history styling */
/* the auto-generated edit comments */
.autocomment { color: gray; }
#pagehistory .history-user {
margin-left: 0.4em;
margin-right: 0.2em;
}
#pagehistory span.minor { font-weight: bold; }
#pagehistory li { border: 1px solid white; }
#pagehistory li.selected {
background-color: #f9f9f9;
border: 1px dashed #aaa;
}
/** Generic minor/bot/newpage styling */
.newpage, .minor, .bot {
font-weight: bold;
}
/* Special:Contributions styling */
.mw-uctop {
font-weight: bold;
}
/* Special:ListGroupRights styling */
table.mw-listgrouprights-table tr {
vertical-align: top;
}
.listgrouprights-revoked { text-decoration: line-through; }
/* Special:Statistics styling */
td.mw-statistics-numbers {
text-align: right;
}
/* Special:SpecialPages styling */
h4.mw-specialpagesgroup {
background-color: #dcdcdc;
padding: 2px;
margin: .3em 0em 0em 0em;
}
.mw-specialpagerestricted {
font-weight: bold;
}
#shared-image-dup, #shared-image-conflict {
font-style: italic;
}
/* Special:EmailUser styling */
table.mw-emailuser-table {
width: 98%;
}
td#mw-emailuser-sender, td#mw-emailuser-recipient {
font-weight: bold;
}
/* Special:Allpages styling */
table.allpageslist {
background-color: transparent;
}
table.mw-allpages-table-form, table.mw-allpages-table-chunk {
background-color: transparent;
width: 100%;
}
td.mw-allpages-alphaindexline {
text-align: right;
}
td.mw-allpages-nav, p.mw-allpages-nav {
text-align: right;
font-size: smaller;
margin-bottom: 1em;
}
table.mw-allpages-table-form tr {
vertical-align: top;
}
/* Special:Prefixindex styling */
table#mw-prefixindex-list-table,
table#mw-prefixindex-nav-table {
width: 98%;
background-color: transparent;
}
td#mw-prefixindex-nav-form {
font-size: smaller;
margin-bottom: 1em;
text-align: right;
vertical-align: top;
}
/*
* Recreating deleted page warning
* Reupload file warning
* Page protection warning
* incl. log entries for these warnings
*/
div.mw-warning-with-logexcerpt {
padding: 3px;
margin-bottom: 3px;
border: 2px solid #2F6FAB;
clear: both;
}
div.mw-warning-with-logexcerpt ul li {
font-size: 90%;
}
/* (show/hide) revision deletion links */
span.mw-revdelundel-link,
strong.mw-revdelundel-link {
font-size: 90%;
}
span.mw-revdelundel-hidden,
input.mw-revdelundel-hidden {
visibility: hidden;
}
td.mw-revdel-checkbox, th.mw-revdel-checkbox {
padding-right: 10px;
text-align: center;
}
/* feed links */
a.feedlink {
background: url("images/feed-icon.png") center left no-repeat;
padding-left: 16px;
}
/* Plainlinks - this can be used to switch
* off special external link styling */
.plainlinks a {
background: none !important;
padding: 0 !important;
}
/* wikitable class for skinning normal tables */
table.wikitable {
margin: 1em 1em 1em 0;
background: #f9f9f9;
border: 1px #aaa solid;
border-collapse: collapse;
}
.wikitable th, .wikitable td {
border: 1px #aaa solid;
padding: 0.2em;
}
.wikitable th {
background: #f2f2f2;
text-align: center;
}
.wikitable caption {
font-weight: bold;
}
/* hide initially collapsed collapsable tables */
table.collapsed tr.collapsable {
display: none;
}
/* success and error messages */
.success {
color: green;
font-size: larger;
}
.error {
color: red;
font-size: larger;
}
.errorbox, .successbox {
font-size: larger;
border: 2px solid;
padding: .5em 1em;
float: left;
margin-bottom: 2em;
color: #000;
}
.errorbox {
border-color: red;
background-color: #fff2f2;
}
.successbox {
border-color: green;
background-color: #dfd;
}
.errorbox h2, .successbox h2 {
font-size: 1em;
font-weight: bold;
display: inline;
margin: 0 .5em 0 0;
border: none;
}
/* Note on preview page */
.previewnote {
color: #c00;
margin-bottom: 1em;
}
.previewnote p {
text-indent: 3em;
margin: 0.8em 0;
}
.visualClear {
clear: both;
}
#mw_trackbacks {
border: solid 1px #bbbbff;
background-color: #eeeeff;
padding: 0.2em;
}
/*
Table pager (e.g. Special:Imagelist)
- remove underlines from the navigation link
- collapse borders
- set the borders to outsets (similar to Special:Allmessages)
- remove line wrapping for all td and th, set background color
- restore line wrapping for the last two table cells (description and size)
*/
.TablePager { min-width: 80%; }
.TablePager_nav a { text-decoration: none; }
.TablePager { border-collapse: collapse; }
.TablePager, .TablePager td, .TablePager th {
border: 1px solid #aaaaaa;
padding: 0 0.15em 0 0.15em;
}
.TablePager th { background-color: #eeeeff }
.TablePager td { background-color: #ffffff }
.TablePager tr:hover td { background-color: #eeeeff }
.imagelist td, .imagelist th { white-space: nowrap }
.imagelist .TablePager_col_links { background-color: #eeeeff }
.imagelist .TablePager_col_img_description { white-space: normal }
.imagelist th.TablePager_sort { background-color: #ccccff }
/* Allmessages table */
#mw-allmessagestable .allmessages-customised td.am_default {
background-color: #fcffc4;
}
#mw-allmessagestable tr.allmessages-customised:hover td.am_default {
background-color: #faff90;
}
#mw-allmessagestable td.am_actual {
background-color: #e2ffe2;
}
#mw-allmessagestable tr.allmessages-customised:hover + tr.allmessages-customised
td.am_actual {
background-color: #b1ffb1;
}
/* filetoc */
ul#filetoc {
text-align: center;
border: 1px solid #aaaaaa;
background-color: #f9f9f9;
padding: 5px;
font-size: 95%;
margin-bottom: 0.5em;
margin-left: 0;
margin-right: 0;
}
#filetoc li {
display: inline;
list-style-type: none;
padding-right: 2em;
}
/* Classes for EXIF data display */
table.mw_metadata {
font-size: 0.8em;
margin-left: 0.5em;
margin-bottom: 0.5em;
width: 300px;
}
table.mw_metadata caption {
font-weight: bold;
}
table.mw_metadata th {
font-weight: normal;
}
table.mw_metadata td {
padding: 0.1em;
}
table.mw_metadata {
border: none;
border-collapse: collapse;
}
table.mw_metadata td, table.mw_metadata th {
text-align: center;
border: 1px solid #aaaaaa;
padding-left: 0.1em;
padding-right: 0.1em;
}
table.mw_metadata th {
background-color: #f9f9f9;
}
table.mw_metadata td {
background-color: #fcfcfc;
}
/* Galleries */
table.gallery {
border: 1px solid #ccc;
margin: 2px;
padding: 2px;
background-color: white;
}
table.gallery tr {
vertical-align: top;
}
table.gallery td {
vertical-align: top;
background-color: #f9f9f9;
border: solid 2px white;
}
table.gallery caption {
font-weight: bold;
}
div.gallerybox {
margin: 2px;
}
div.gallerybox div.thumb {
text-align: center;
border: 1px solid #ccc;
margin: 2px;
}
div.gallerytext {
overflow: hidden;
font-size: 94%;
padding: 2px 4px;
}
table.mw-enhanced-rc {
background: none;
border:0;
border-spacing:0;
}
td.mw-enhanced-rc {
white-space:nowrap;
padding:0;
vertical-align:top;
font-family:monospace
}
#mw-addcategory-prompt {
display: inline;
margin-left: 1em;
}
#mw-addcategory-prompt input {
margin-left: 0.5em;
margin-right: 0.5em;
}
.mw-remove-category {
padding: 8px;
background-image: url(images/remove.png);
background-position: center center;
background-repeat: no-repeat;
}
.mw-ajax-addcategory {
padding-left: 20px;
background-image: url(images/add.png);
background-position: left center;
background-repeat: no-repeat;
}
.mw-ajax-loader {
background-image: url(images/ajax-loader.gif);
background-position: center center;
background-repeat: no-repeat;
padding: 16px;
position: relative;
top: -16px;
}
.mw-small-spinner {
padding: 10px !important;
margin-right: 0.6em;
background-image: url(images/spinner.gif);
background-position: center center;
background-repeat: no-repeat;
}
/* Sort arrows added by SortableTables */
a.sortheader {
margin: 0 0.3em;
}
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=commonPrint.css
Content-Type: text/css; charset=UTF-8; name=commonPrint.css
Content-Location: http://bits.wikimedia.org/skins-1.5/common/commonPrint.css?283
u
Content-Transfer-Encoding: 8bit
/*
** MediaWiki Print style sheet for CSS2-capable browsers.
** Copyright Gabriel Wicke, http://www.aulinx.de/
**
** Derived from the plone (http://plone.org/) styles
** Copyright Alexander Limi
*/
/* Thanks to A List Apart (http://alistapart.com/) for useful extras */
a.stub,
a.new{ color:#ba0000; text-decoration:none; }
#toc {
/*border:1px solid #2f6fab;*/
border:1px solid #aaaaaa;
background-color:#f9f9f9;
padding:5px;
}
.tocindent {
margin-left: 2em;
}
.tocline {
margin-bottom: 0px;
}
/* images */
div.floatright {
float: right;
clear: right;
margin: 0;
position:relative;
border: 0.5em solid White;
border-width: 0.5em 0 0.8em 1.4em;
}
div.floatright p { font-style: italic;}
div.floatleft {
float: left;
margin: 0.3em 0.5em 0.5em 0;
position:relative;
border: 0.5em solid White;
border-width: 0.5em 1.4em 0.8em 0;
}
div.floatleft p { font-style: italic; }
/* thumbnails */
div.thumb {
margin-bottom: 0.5em;
border-style: solid; border-color: White;
width: auto;
overflow: hidden;
}
div.thumbinner {
border:1px solid #cccccc;
padding: 3px !important;
background-color:#f9f9f9;
font-size: 94%;
text-align: center;
}
html .thumbimage {
border:1px solid #cccccc;
}
html .thumbcaption {
border: none;
padding: 0.3em 0 0.1em 0;
}
div.magnify { display: none; }
div.tright {
float: right;
clear: right;
border-width: 0.5em 0 0.8em 1.4em;
}
div.tleft {
float: left;
margin-right:0.5em;
border-width: 0.5em 1.4em 0.8em 0;
}
img.thumbborder {
border: 1px solid #dddddd;
}
/* table standards */
table.rimage {
float:right;
width:1pt;
position:relative;
margin-left:1em;
margin-bottom:1em;
text-align:center;
}
body {
background: White;
/*font-size: 11pt !important;*/
color: Black;
margin: 0;
padding: 0;
}
.noprint,
div#jump-to-nav,
div.top,
div#column-one,
#colophon,
.editsection,
.toctoggle,
.tochidden,
div#f-poweredbyico,
div#f-copyrightico,
li#viewcount,
li#about,
li#disclaimer,
li#privacy,
#mw-hidden-catlinks {
/* Hides all the elements irrelevant for printing */
display: none;
}
ul {
list-style-type: square;
}
#content {
background: none;
border: none ! important;
padding: 0 ! important;
margin: 0 ! important;
}
#footer {
background : white;
color : black;
border-top: 1px solid black;
}
h1, h2, h3, h4, h5, h6 {
font-weight: bold;
}
p, .documentDescription {
margin: 1em 0 ! important;
line-height: 1.2em;
}
.tocindent p {
margin: 0 0 0 0 ! important;
}
pre {
border: 1pt dashed black;
white-space: pre;
font-size: 8pt;
overflow: auto;
padding: 1em 0;
background : white;
color : black;
}
table.listing,
table.listing td {
border: 1pt solid black;
border-collapse: collapse;
}
a {
color: Black !important;
background: none !important;
padding: 0 !important;
}
a:link, a:visited {
color: #520;
background: transparent;
text-decoration: underline;
}
#content a.external.text:after, #content a.external.autonumber:after {
/* Expand URLs for printing */
content: " (" attr(href) ") ";
}
#globalWrapper {
width: 100% !important;
min-width: 0 !important;
}
#content {
background : white;
color : black;
}
#column-content {
margin: 0 !important;
}
#column-content #content {
padding: 1em;
margin: 0 !important;
}
/* MSIE/Win doesn't understand 'inherit' */
a, a.external, a.new, a.stub {
color: black ! important;
text-decoration: none ! important;
}
/* Continue ... */
a, a.external, a.new, a.stub {
color: inherit ! important;
text-decoration: inherit ! important;
}
img { border: none; }
img.tex { vertical-align: middle; }
span.texhtml { font-family: serif; }
#siteNotice { display: none; }
div.gallerybox {
border: 1px solid #cccccc;
background-color:#f9f9f9;
width: 150px;
}
div.gallerytext {
overflow: visible;
}
/*
** Diff rendering
*/
table.diff { background:white; }
td.diff-otitle { background:#ffffff; }
td.diff-ntitle { background:#ffffff; }
td.diff-addedline {
background:#ccffcc;
font-size: smaller;
border: solid 2px black;
}
td.diff-deletedline {
background:#ffffaa;
font-size: smaller;
border: dotted 2px black;
}
td.diff-context {
background:#eeeeee;
font-size: smaller;
}
.diffchange {
color: silver;
font-weight: bold;
text-decoration: underline;
}
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/w/extensions/UsabilityInitiative/ima
ges/vector/collapsibleNav/portal-break.png?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAIwAAAABCAMAAAA7MLYKAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEtQTFRF29vb2tra4ODg6urq5OTk4uLi
6+vr7e3t7Ozs8PDw5+fn4+Pj4eHh3d3d39/f6Ojo5eXl6enp8fHx8/Pz8vLy7+/v
3Nzc2dnZ2NjYnErj7QAAAD1JREFUeNq0wQUBACAMALDj7hf6JyUFGxzEnYhC9GaN
PG1xVffGDErk/iCigLl1XV2xM49lfAxEaSM+AQYA9HMKuv4liFQAAAAASUVORK5C
YII=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/w/extensions/UsabilityInitiative/ima
ges/vector/collapsibleNav/arrow-down.png?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA9QTFRFeXl53d3dmpqasbGx////GU0i
EgAAAAV0Uk5T/////wD7tg5TAAAAK0lEQVQI12NwgQIG0hhCDAwMTCJAhqMCA4Mi
WEoIJABiOCooQhULi5BqMgB2bh4svs8t+QAAAABJRU5ErkJggg==
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://bits.wikimedia.org/w/extensions/UsabilityInitiative/ima
ges/vector/collapsibleNav/arrow-right.png?1
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAxQTFRF3d3deXl5////nZ2dQA6SoAAA
AAN0Uk5T//8A18oNQQAAADNJREFUeNpiYEIDDMQKMKALMDOgCTDCRWACcBG4AEwE
IcDITEAFuhnotmC4g4EEzwEEGAADqgHmQSPJKgAAAABJRU5ErkJggg==
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=combined.min.css
Content-Type: text/css; charset=UTF-8; name=combined.min.css
Content-Location: http://bits.wikimedia.org/w/extensions/UsabilityInitiative/css
/combined.min.css?117
Content-Transfer-Encoding: 8bit
.suggestions{
overflow:hidden;
position:absolute;
top:0px;
left:0px;
width:0px;
border:none;
z-index:99;
padding:0;
margin:-1px 0 0 0;
}
.suggestions-special{
position:relative;
background-color:Window;
font-size:0.8em;
cursor:pointer;
border:solid 1px #aaaaaa;
padding:0;
margin:0;
margin-top:-2px;
display:none;
padding:0.25em 0.25em;
line-height:1.25em;
}
.suggestions-results{
background-color:white;
background-color:Window;
font-size:0.8em;
cursor:pointer;
border:solid 1px #aaaaaa;
padding:0;
margin:0;
}
.suggestions-result{
color:black;
color:WindowText;
margin:0;
line-height:1.5em;
padding:0.01em 0.25em;
}
.suggestions-result-current{
background-color:#4C59A6;
background-color:Highlight;
color:white;
color:HighlightText;
}
.suggestions-special .special-label{
font-size:0.8em;
color:gray;
}
.suggestions-special .special-query{
color:black;
font-style:italic;
}
.suggestions-special .special-hover{
background-color:silver;
}
.suggestions-result-current .special-label,
.suggestions-result-current .special-query{
color:white;
color:HighlightText;
}
.autoellipsis-matched,
.highlight{
font-weight:bold;
}
#mw-panel.collapsible-nav div.portal{
background-image:url(../images/vector/collapsibleNav/portal-break.png?1);
background-position:left top;
background-repeat:no-repeat;
padding:0.25em 0 !important;
margin:-11px 9px 10px 11px;
}
body.rtl #mw-panel.collapsible-nav div.portal{
background-position:right top;
margin:-11px 11px 10px 9px;
}
#mw-panel.collapsible-nav div.portal h5{
color:#4D4D4D;
font-weight:normal;
background:url(../images/vector/collapsibleNav/arrow-down.png?1) 0 50% no-repeat
;
padding:4px 0 3px 1.5em;
margin-bottom:0px;
}
body.rtl #mw-panel.collapsible-nav div.portal h5{
background:url(../images/vector/collapsibleNav/arrow-down.png?1) 100% 50% no-rep
eat;
padding:4px 1.5em 3px 0;
}
#mw-panel.collapsible-nav div.collapsed h5{
color:#0645AD;
background:url(../images/vector/collapsibleNav/arrow-right.png?1) 0 50% no-repea
t;
margin-bottom:0px;
}
body.rtl #mw-panel.collapsible-nav div.collapsed h5{
background:url(../images/vector/collapsibleNav/arrow-left.png?1) 100% 50% no-rep
eat;
}
#mw-panel.collapsible-nav div h5:hover{
cursor:pointer;
text-decoration:none;
}
#mw-panel.collapsible-nav div.collapsed h5:hover{
text-decoration:underline;
}
#mw-panel.collapsible-nav div.portal div.body{
background:none !important;
padding-top:0px;
display:none;
}
#mw-panel.collapsible-nav div.persistent div.body{
display:block;
}
#mw-panel.collapsible-nav div.first h5{
display:none;
}
#mw-panel.collapsible-nav div.persistent h5{
background:none !important;
padding-left:0.7em;
cursor:default;
}
#mw-panel.collapsible-nav div.portal div.body ul li{
padding:0.25em 0;
}
#mw-panel.collapsible-nav div.first{
background-image:none;
margin-top:0px;
}
#mw-panel.collapsible-nav div.persistent div.body{
margin-left:0.5em;
}
body.rtl #mw-panel.collapsible-nav div.persistent div.body{
margin-left:0;
margin-right:0.5em;
}
form#editform{
margin:0;
padding:0;
}
#wpSummary,#wpSummaryLabel{
margin-bottom:1em;
}
.wikiEditor-ui textarea#wpTextbox1{
border:none;
padding:0;
margin:-1px;
line-height:1.5em;
}
.wikiEditor-ui .wikiEditor-ui-text > textarea#wpTextbox1{
margin:0;
}
.wikiEditor-ui{
float:left;
position:relative;
clear:both;
width:100%;
background-color:#E0EEf7;
border:solid silver 1px;
}
body.rtl .wikiEditor-ui{
float:right;
}
.wikiEditor-ui .wikiEditor-ui-bottom{
}
.wikiEditor-ui .wikiEditor-ui-text{
line-height:0;
}
.wikiEditor-ui .wikiEditor-ui-top{
position:relative;
border-bottom:solid silver 1px;
}
.wikiEditor-ui .wikiEditor-ui-left{
float:left;
width:100%;
}
body.rtl .wikiEditor-ui .wikiEditor-ui-left{
float:right;
}
.wikiEditor-ui .wikiEditor-ui-right{
float:right;
background:#F3F3F3;
overflow:hidden;
}
body.rtl .wikiEditor-ui .wikiEditor-ui-right{
float:left;
}
.wikiEditor-wikitext{
float:left;
width:100%;
}
.wikiEditor-ui-controls{
float:left;
width:100%;
background-color:white;
margin-top:-1px;
border-bottom:solid 1px silver;
}
.wikiEditor-ui-tabs{
float:left;
height:2.5em;
margin-left:-1px;
background-color:white;
border-left:solid 1px silver;
border-top:solid 1px silver;
}
.wikiEditor-ui-buttons{
float:right;
height:2.5em;
margin-right:-1px;
background-color:white;
padding-left:1em;
border-top:solid 1px white;
}
.wikiEditor-ui-buttons button{
margin-left:0.5em;
}
.wikiEditor-ui-tabs div{
float:left;
height:2.5em;
background-color:#f3f3f3;
border-right:solid 1px silver;
border-bottom:solid 1px silver;
}
.wikiEditor-ui-tabs div.current{
border-bottom:solid 1px white;
background-color:white;
}
.wikiEditor-ui-tabs div a{
display:inline-block;
padding:0 0.75em;
line-height:2.5em;
color:#0645AD;
}
.wikiEditor-ui-tabs div.current a{
color:#333333;
}
.wikiEditor-ui-tabs div.current a:hover{
text-decoration:none;
}
.wikiEditor-view-wikitext{
line-height:1em;
}
.wikiEditor-ui-loading{
background:#f3f3f3;
z-index:10;
position:absolute;
top:0;
left:0;
text-align:center;
height:100%;
width:100%;
border:1px solid silver;
margin:-1px;
}
.wikiEditor-ui-loading span{
display:block;
height:24px;
width:24px;
background:url( ../images/wikiEditor/toolbar/loading.gif ) 0 0 no-repeat;
text-indent:-9999px;
margin:0 auto;
}
.wikiEditor-toolbar-dialog table{
margin-top:0.75em;
}
.wikiEditor-toolbar-dialog table td{
padding:0.5em;
height:3em;
overflow:visible;
}
div.suggestions{
z-index:1099;
}
.wikiEditor-toolbar-dialog .ui-dialog-titlebar-close:hover{
text-decoration:none;
}
.wikiEditor-toolbar-dialog .ui-dialog-content .status-invalid input{
border:2px solid red;
padding:2px 1px;
}
.wikiEditor-toolbar-dialog .ui-dialog-titlebar{
padding:0.9em 1.4em 0.6em !important;
}
.wikiEditor-toolbar-dialog table td{
padding:0 !important;
}
.wikiEditor-toolbar-dialog .ui-dialog-buttonpane button{
-moz-border-radius:4px;
-webkit-border-radius:4px;
padding:0.2em 0.6em 0.15em !important;
margin:0.5em 0 0.5em 0.4em !important;
border:1px solid #a6a6a6 !important;
background:#f2f2f2 url( ../images/wikiEditor/dialogs/button_off.png?1) repeat-x
scroll 50% 100% !important;
}
.wikiEditor-toolbar-dialog .ui-dialog-buttonpane button:hover{
border-color:#6e7273;
background:#e1e1e1 url( ../images/wikiEditor/dialogs/button_over.png?1) repeat-x
scroll 50% 100% !important;
}
.wikiEditor-toolbar-dialog .ui-dialog-buttonpane button:active,
.wikiEditor-toolbar-dialog .ui-dialog-buttonpane button:focus{
border-color:#707271;
background:#bfbfbf url( ../images/wikiEditor/dialogs/button_down.png?1) repeat-x
scroll 50% 100% !important;
}
.wikiEditor-toolbar-dialog .ui-dialog-buttonpane button.disabled{
color:#7f7f7f;
border-color:#cccccc;
background:#f2f2f2 url( ../images/wikiEditor/dialogs/button_disabled.png?1) repe
at-x scroll 50% 100% !important;
}
.wikiEditor-toolbar-dialog .ui-dialog-buttonpane button::-moz-focus-inner{
border:0;
}
.wikiEditor-toolbar-dialog .ui-widget-header{
background:#f0f0f0 url( ../images/wikiEditor/dialogs/titlebar_fade.png?1) repeat
-x scroll 50% 100% !important;
}
.wikiEditor-toolbar-dialog .ui-icon-closethick{
background:url( ../images/wikiEditor/dialogs/close_x.png?1) no-repeat 50% 50% !i
mportant;
}
.wikiEditor-toolbar-dialog .ui-dialog-buttonpane{
margin-top:0 !important;
padding:0.3em 1.4em 0.5em 1.4em !important;
}
.wikiEditor-toolbar-dialog .ui-dialog-content fieldset{
border:none !important;
margin:0 !important;
padding:0 !important;
}
.wikiEditor-toolbar-dialog .ui-widget-header{
border-bottom:1px solid #6bc8f3 !important;
}
.wikiEditor-toolbar-dialog .ui-dialog-content input[type=text]{
-moz-box-sizing:border-box;
-ms-box-sizing:border-box;
-webkit-box-sizing:border-box;
-khtml-box-sizing:border-box;
}
.wikiEditor-toolbar-dialog .ui-dialog-content input[type="radio"],
.wikiEditor-toolbar-dialog .ui-dialog-content input[type="checkbox"]{
margin-left:0;
}
.wikiEditor-toolbar-dialog .ui-dialog-titlebar-close{
padding:0;
}
body.ltr .wikiEditor-toolbar-dialog .ui-dialog-titlebar-close{
right:0.9em;
}
.wikieditor-toolbar-field-wrapper{
padding:0 0 25px 0;
}
.wikieditor-toolbar-floated-field-wrapper{
float:left;
margin-right:2em;
}
.wikieditor-toolbar-dialog-hint{
color:#999999;
}
.wikiEditor-toolbar-dialog,
.wikiEditor-toolbar-dialog .ui-widget-content{
border:none !important;
}
#wikieditor-toolbar-table-dialog fieldset{
width:218px;
padding:0;
float:left;
}
body.rtl #wikieditor-toolbar-table-dialog fieldset{
float:right;
}
#wikieditor-toolbar-table-dialog .wikieditor-toolbar-table-preview-wrapper{
width:330px;
padding:0;
float:right;
}
body.rtl #wikieditor-toolbar-table-dialog .wikieditor-toolbar-table-preview-wrap
per{
float:left;
}
body.rtl .wikiEditor-toolbar-dialog .wikieditor-toolbar-table-preview-wrapper ta
ble{
margin-left:1em;
margin-right:0;
}
.wikieditor-toolbar-table-preview-content *{
cursor:default;
}
.wikiEditor-toolbar-dialog .wikieditor-toolbar-table-preview-wrapper table{
width:100% !important;
}
.wikiEditor-toolbar-dialog .wikieditor-toolbar-table-preview-content table td{
padding:10px 4px !important;
height:auto !important;
}
.wikiEditor-toolbar-dialog .wikieditor-toolbar-table-preview-content table th{
padding:7px 3px !important;
}
.wikieditor-toolbar-table-dimension-fields .wikieditor-toolbar-field-wrapper{
float:left;
margin-right:20px;
vertical-align:bottom;
}
body.rtl .wikieditor-toolbar-table-dimension-fields .wikieditor-toolbar-field-wr
apper{
float:right;
margin-right:0px;
margin-left:20px;
}
.wikiEditor-toolbar-dialog .ui-dialog-content{
padding:30px 20px 0 !important;
}
.wikieditor-toolbar-dialog-wrapper{
width:100%;
}
#wikieditor-toolbar-link-int-target-status{
float:right;
}
#wikieditor-toolbar-link-int-target,
#wikieditor-toolbar-link-int-text{
width:100%;
}
#wikieditor-toolbar-tool-link-int-target-label{
float:left;
line-height:1.7em;
}
#wikieditor-toolbar-link-int-target-status-loading{
line-height:1.7em;
}
#wikieditor-toolbar-link-int-target-status-exists,
#wikieditor-toolbar-link-int-target-status-notexists,
#wikieditor-toolbar-link-int-target-status-invalid,
#wikieditor-toolbar-link-int-target-status-external{
padding-left:30px;
background-position:0 50%;
background-repeat:no-repeat;
}
#wikieditor-toolbar-link-int-target-status-exists{
background-image:url( ../images/wikiEditor/dialogs/insert-link-exists.png?1);
}
#wikieditor-toolbar-link-int-target-status-notexists{
background-image:url( ../images/wikiEditor/dialogs/insert-link-notexists.png?1);
}
#wikieditor-toolbar-link-int-target-status-invalid{
background-image:url( ../images/wikiEditor/dialogs/insert-link-invalid.png?1);
}
#wikieditor-toolbar-link-int-target-status-external{
background-image:url( ../images/wikiEditor/dialogs/insert-link-external.png?1);
}
#wikieditor-toolbar-reference-dialog label{
float:left;
line-height:1.7em;
}
#wikieditor-toolbar-reference-text{
width:100%;
}
body.rtl .wikiEditor-toolbar-dialog .ui-dialog-buttonpane button{
float:left;
margin:0.5em 0.4em 0.5em 0 !important;
}
body.rtl .wikiEditor-toolbar-dialog .ui-dialog-titlebar-close{
left:0.9em;
right:auto;
}
body.rtl .wikiEditor-toolbar-dialog .ui-dialog-title{
float:right;
}
body.rtl #wikieditor-toolbar-link-int-target-status{
float:left;
}
body.rtl #wikieditor-toolbar-tool-link-int-target-label{
float:right;
}
body.rtl .wikieditor-toolbar-floated-field-wrapper{
float:right;
margin-right:0;
margin-left:2em;
}
body.rtl #wikieditor-toolbar-link-int-target-status-exists,
body.rtl #wikieditor-toolbar-link-int-target-status-notexists,
body.rtl #wikieditor-toolbar-link-int-target-status-invalid,
body.rtl #wikieditor-toolbar-link-int-target-status-external{
padding-left:0;
padding-right:30px;
background-position:100% 50%;
}
body.rtl #wikieditor-toolbar-link-int-target-status-external{
background-image:url( ../images/wikiEditor/dialogs/insert-link-external-rtl.png?
1);
}
body.rtl #wikieditor-toolbar-reference-dialog label{
float:right;
}
.wikiEditor-template-dialog-fields label{
text-transform:capitalize;
float:left;
width:25%;
line-height:2.25em;
}
.wikiEditor-template-dialog-fields textarea{
float:right;
width:70%;
line-height:1.5em;
height:1.5em;
}
.wikiEditor-template-dialog-fields .wikiEditor-template-dialog-field-wrapper{
padding:0.75em 0.33em;
border-bottom:dashed 1px silver;
clear:both;
}
.wikiEditor-template-dialog-fields .wikiEditor-template-dialog-field-wrapper:fir
st-child{
padding-top:0;
}
.wikiEditor-template-dialog-fields .wikiEditor-template-dialog-field-wrapper:las
t-child{
border-bottom:none;
}
.wikieditor-toolbar-table-dimension-fields:after,
.wikieditor-toolbar-dialog-wrapper:after{
visibility:hidden;
display:block;
font-size:0;
content:" ";
clear:both;
height:0;
}
.wikieditor-toolbar-table-dimension-fields,
.wikieditor-toolbar-dialog-wrapper{
display:inline-table;
}
* html .wikieditor-toolbar-table-dimension-fields,
* html .wikieditor-toolbar-dialog-wrapper{
height:1%;
}
.wikieditor-toolbar-table-dimension-fields,
.wikieditor-toolbar-dialog-wrapper{
display:block;
}
.wikiEditor-toolbar-dialog .ui-dialog-buttonpane{
border-top:1px solid #cccccc !important;
}
.wikiEditor-toolbar-dialog .ui-dialog-content{
padding-bottom:1em !important;
}
.wikiEditor-dialog-editoptions{
margin-top:15px;
}
.wikiEditor-publish-dialog-copywarn{
margin-top:0.5em;
}
.wikiEditor-publish-dialog-summary{
margin-top:1.5em;
}
.wikiEditor-publish-dialog-options{
margin-top:1.5em;
}
.wikiEditor-ui-toolbar{
position:relative;
width:100%;
}
.wikiEditor-ui-toolbar .sections{
float:left;
width:100%;
clear:both;
height:0;
}
body.rtl .wikiEditor-ui-toolbar .sections{
float:right;
}
.wikiEditor-ui-toolbar .sections .section{
display:none;
float:left;
width:100%;
border-top:solid 1px #DDDDDD;
background-color:#E0EEf7;
}
.wikiEditor-ui-toolbar{
background-image:url(../images/wikiEditor/toolbar/base.png?1);
background-position:left top;
background-repeat:repeat-x;
}
/*
.wikiEditor-ui-toolbar .toolbar{
background-image:url(../images/wikiEditor/toolbar/base.png?1);
background-position:left top;
}
*/
body.rtl .wikiEditor-ui-toolbar .sections .section{
float:right;
}
.wikiEditor-ui-toolbar .sections div .spinner{
display:none;
}
.wikiEditor-ui-toolbar .sections .loading .spinner{
display:block;
background-image:url(../images/wikiEditor/toolbar/loading.gif?2);
background-position:left center;
background-repeat:no-repeat;
padding-left:32px;
margin-left:0.5em;
height:32px;
float:left;
color:#666666;
}
body.rtl .wikiEditor-ui-toolbar .sections .loading .spinner{
background-position:right center;
padding-left:0;
padding-right:32px;
margin-left:0;
margin-right:0.5em;
float:right;
}
.wikiEditor-ui-toolbar .tabs,
.wikiEditor-ui-toolbar .section-main{
position:relative;
float:left;
height:26px;
}
body.rtl .wikiEditor-ui-toolbar .tabs,
body.rtl .wikiEditor-ui-toolbar .section-main{
float:right;
}
.wikiEditor-ui-toolbar .group{
float:left;
height:26px;
padding-right:6px;
border-right:solid 1px #DDDDDD;
margin:3px;
}
body.rtl .wikiEditor-ui-toolbar .group{
float:right;
padding-right:0;
padding-left:6px;
border-right:none;
border-left:solid 1px #DDDDDD;
}
.wikiEditor-ui-toolbar .group-search{
float:right;
padding:0 0 0 6px;
border-right:none;
border-left:1px solid #DDDDDD;
}
.wikiEditor-ui-toolbar .group-insert{
border-right:none;
}
body.rtl .wikiEditor-ui-toolbar .group-search{
float:left;
padding:0 6px 0 0;
border-left:none;
border-right:1px solid #DDDDDD;
}
body.rtl .wikiEditor-ui-toolbar .group-insert{
border-left:none;
}
.wikiEditor-toolbar-spritedButton{
background:url(../images/wikiEditor/toolbar/button-sprite.png?1) 0 0 no-repeat;
display:block;
float:left;
height:22px;
text-indent:-9999px;
width:22px;
padding:2px;
cursor:pointer;
overflow:hidden;
}
.wikiEditor-ui-toolbar .tabs{
list-style:none;
margin:3px;
}
.wikiEditor-ui-toolbar .tabs span.tab{
display:inline-block;
float:left;
line-height:26px;
}
.wikiEditor-ui-toolbar .tabs > span.tab{
display:block;
}
body.rtl .wikiEditor-ui-toolbar .tabs > span.tab{
float:right;
}
.wikiEditor-ui-toolbar .tabs span.tab a,
.wikiEditor-ui-toolbar .tabs span.tab a:visited{
display:inline-block;
float:left;
padding-left:18px;
padding-right:12px;
height:26px;
cursor:pointer;
color:#0645ad;
background-image:url(../images/wikiEditor/toolbar/arrow-right.png?1);
background-position:left center;
background-repeat:no-repeat;
}
body.rtl .wikiEditor-ui-toolbar .tabs span.tab a,
body.rtl .wikiEditor-ui-toolbar .tabs span.tab a:visited{
padding-left:12px;
padding-right:18px;
background-image:url(../images/wikiEditor/toolbar/arrow-left.png?1);
background-position:right center;
}
body.rtl .wikiEditor-ui-toolbar .tabs > span.tab > a,
body.rtl .wikiEditor-ui-toolbar .tabs > pan.tab > a:visited{
float:right;
}
.wikiEditor-ui-toolbar .tabs span.tab a.current,
.wikiEditor-ui-toolbar .tabs span.tab a.current:visited{
color:#333333;
background-image:url(../images/wikiEditor/toolbar/arrow-down.png?1);
}
body.rtl .wikiEditor-ui-toolbar .tabs span.tab a.current,
body.rtl .wikiEditor-ui-toolbar .tabs span.tab a.current:visited{
background-image:url(../images/wikiEditor/toolbar/arrow-down.png?1);
}
.wikiEditor-ui-toolbar .tabs span.tab a.current:hover{
text-decoration:none;
}
.wikiEditor-ui-toolbar .tabs span.tab a.loading{
background-image:url(../images/wikiEditor/toolbar/loading-small.gif?1) !importan
t;
}
.wikiEditor-ui-toolbar .group .label{
float:left;
border:0px;
height:22px;
line-height:22px;
margin:2px;
margin-left:5px;
margin-right:8px;
color:#777777;
cursor:default;
}
body.rtl .wikiEditor-ui-toolbar .group > .label{
float:right;
margin-left:8px;
margin-right:5px;
}
.wikiEditor-ui-toolbar .group img.tool{
float:left;
border:0px;
height:22px;
width:22px;
padding:2px;
cursor:pointer;
}
body.rtl .wikiEditor-ui-toolbar .group > img.tool{
float:right;
}
.wikiEditor-ui-toolbar .group .tool-select{
float:left;
margin:2px;
height:22px;
cursor:pointer;
border:solid 1px silver;
padding:0;
margin-right:0;
cursor:pointer;
background-color:#ffffff;
}
body.rtl .wikiEditor-ui-toolbar .group > .tool-select{
float:right;
}
.wikiEditor-ui-toolbar .group .tool-select .label{
background-image:url(../images/wikiEditor/toolbar/arrow-down.png?1);
background-position:center right;
background-repeat:no-repeat;
padding:0;
margin:0;
padding-left:4px;
padding-right:22px;
margin-right:4px;
cursor:pointer;
text-decoration:none;
color:#333333;
}
body.rtl .wikiEditor-ui-toolbar .group .tool-select .label{
background-position:center left;
padding-right:4px;
padding-left:22px;
margin-left:4px;
margin-right:0;
}
body.rtl .wikiEditor-ui-toolbar .group .tool-select .menu{
clear:both;
}
.wikiEditor-ui-toolbar .group .tool-select .menu .options{
position:absolute;
display:none;
margin-left:-1px;
border:solid 1px silver;
background-color:#ffffff;
}
body.rtl .wikiEditor-ui-toolbar .group .tool-select .menu{
margin-left:-1px;
margin-right:-1px;
}
.wikiEditor-ui-toolbar .group .tool-select .options {
margin-top:22px;
}
.wikiEditor-ui-toolbar .group .tool-select .options .option{
display:block;
padding:0.5em;
text-decoration:none;
color:black;
white-space:nowrap;
}
.wikiEditor-ui-toolbar .group .tool-select .options .option:hover{
background-color:#E0EEf7;
}
.wikiEditor-ui-toolbar .group .tool-select .options .option[rel=heading-2]{
font-size:150%;
font-weight:normal;
}
.wikiEditor-ui-toolbar .group .tool-select .options .option[rel=heading-3]{
font-size:132%;
font-weight:normal;
}
.wikiEditor-ui-toolbar .group .tool-select .options .option[rel=heading-4]{
font-size:116%;
font-weight:normal;
}
.wikiEditor-ui-toolbar .group .tool-select .options .option[rel=heading-5]{
font-size:100%;
font-weight:bold;
}
.wikiEditor-ui-toolbar .booklet .index{
float:left;
width:20%;
height:125px;
overflow:auto;
}
body.rtl .wikiEditor-ui-toolbar .booklet .index{
float:right;
}
.wikiEditor-ui-toolbar .booklet .index div{
padding:4px;
padding-left:6px;
cursor:pointer;
color:#0645ad;
}
body.rtl .wikiEditor-ui-toolbar .booklet .index div{
padding-left:4px;
padding-right:6px;
}
.wikiEditor-ui-toolbar .booklet .index .current{
background-color:#FAFAFA;
color:#333333;
cursor:default;
}
.wikiEditor-ui-toolbar .booklet .pages{
float:right;
width:80%;
height:125px;
overflow:auto;
background-color:#FAFAFA;
}
body.rtl .wikiEditor-ui-toolbar .booklet .pages{
float:left;
}
.wikiEditor-ui-toolbar .page-table table{
padding-left:5px;
padding-right:5px;
background:none;
}
.wikiEditor-ui-toolbar .page-table th{
color:#999999;
}
.wikiEditor-ui-toolbar .page-table td{
color:black;
border-top:solid 1px #EEEEEE;
}
.wikiEditor-ui-toolbar .page-table th,
.wikiEditor-ui-toolbar .page-table td{
text-align:left;
padding:5px;
margin:0px;
}
body.rtl .wikiEditor-ui-toolbar .page-table th,
body.rtl .wikiEditor-ui-toolbar .page-table td{
text-align:right;
}
.wikiEditor-ui-toolbar .section-help .page-table td.cell-syntax,
.wikiEditor-ui-toolbar .section-help .page-table td.syntax{
font-family:monospace;
}
.wikiEditor-ui-toolbar .section-help .page-table td.syntax,
.wikiEditor-ui-toolbar .section-help .page-table td.cell-syntax,
.wikiEditor-ui-toolbar .section-help .page-table td.cell-result,
.wikiEditor-ui-toolbar .section-help .page-table td.result{
width:40%;
}
.wikiEditor-ui-toolbar .section-help .page-table td.description,
.wikiEditor-ui-toolbar .section-help .page-table td.description{
width:20%;
}
.wikiEditor-ui-toolbar .page-characters div span{
border:solid 1px #DDDDDD;
padding:5px;
padding-left:8px;
padding-right:8px;
margin-left:5px;
margin-top:5px;
height:1em;
float:left;
display:block;
color:black;
text-decoration:none;
cursor:pointer;
font-family:monospace;
font-size:1.25em;
}
body.rtl .wikiEditor-ui-toolbar .page-characters > div > span,
.wikiEditor-ui-toolbar .page-characters div[dir=rtl] span{
direction:rtl;
float:right;
margin-left:0;
margin-right:5px;
}
.wikiEditor-ui-toolbar .page-characters div span:hover{
background-color:white;
text-decoration:none;
border-color:#a8d7f9;
}
.ui-widget table td.wikieditor-toolbar-table-preview-wrapper span{
padding:4px 6px 0px;
display:block;
}
.ui-widget table .wikieditor-toolbar-table-preview-frame{
width:340px;
background:#fff;
padding:10px;
overflow:hidden;
display:block;
position:relative;
}
.ui-widget table .wikieditor-toolbar-table-preview-content{
width:375px;
display:block;
}
.ui-widget table .wikieditor-toolbar-table-preview{
width:340px;
}
.ui-widget table td.wikieditor-toolbar-table-preview-wrapper{
background:#e5e5e5;
padding:10px;
}
.wikiEditor-preview-loading{
padding:1em;
background-color:white;
}
.wikiEditor-preview-loading span{
color:#666666;
}
.wikiEditor-preview-spinner{
padding-right:1em;
}
.wikiEditor-preview-contents{
padding:1em;
background-color:white;
}
#wikiEditor-0-preview-dialog .wikiEditor-ui-loading{
overflow:hidden;
border:none;
}
.ui-dialog .ui-dialog-buttonpane{
margin:0 !important;
}
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=jquery-ui-1.7.2.css
Content-Type: text/css; charset=UTF-8; name=jquery-ui-1.7.2.css
Content-Location: http://bits.wikimedia.org/w/extensions/UsabilityInitiative/css
/vector/jquery-ui-1.7.2.css?1.7.2y
Content-Transfer-Encoding: Quoted-Printable
/*
* jQuery UI CSS Framework
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt=
) licenses.
*/
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-he=
ight: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:after { content: "."; display: block; height: 0; cle=
ar: both; visibility: hidden; }
.ui-helper-clearfix { display: inline-block; }
/* required comment for clearfix to work in Opera \*/
* html .ui-helper-clearfix { height:1%; }
.ui-helper-clearfix { display:block; }
/* end clearfix */
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: =
absolute; opacity: 0; filter:Alpha(Opacity=3D0); }

/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }

/* Icons
----------------------------------*/
/* states and images */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; back=
ground-repeat: no-repeat; }

/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; h=
eight: 100%; }

/*
* jQuery UI CSS Framework
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt=
) licenses.
* To view and modify this theme, visit http://jqueryui.com/themeroller/?=
ffDefault=3Dsans-serif&fwDefault=3Dnormal&fsDefault=3D1em&cornerRadius=3D=
0&bgColorHeader=3De2eef6&bgTextureHeader=3D04_highlight_hard.png&bgImgOp=
acityHeader=3D100&borderColorHeader=3Dc0c0c0&fcHeader=3D333333&iconColor=
Header=3D333333&bgColorContent=3Dffffff&bgTextureContent=3D01_flat.png&b=
gImgOpacityContent=3D100&borderColorContent=3Dc0c0c0&fcContent=3D000000&=
iconColorContent=3D000000&bgColorDefault=3De2eef6&bgTextureDefault=3D04_=
highlight_hard.png&bgImgOpacityDefault=3D100&borderColorDefault=3Dc0c0c0=
&fcDefault=3D333333&iconColorDefault=3D333333&bgColorHover=3Dffffff&bgTe=
xtureHover=3D04_highlight_hard.png&bgImgOpacityHover=3D100&borderColorHo=
ver=3Dc0c0c0&fcHover=3D333333&iconColorHover=3D333333&bgColorActive=3Dff=
ffff&bgTextureActive=3D01_flat.png&bgImgOpacityActive=3D100&borderColorA=
ctive=3Dc0c0c0&fcActive=3D333333&iconColorActive=3D333333&bgColorHighlig=
ht=3Dfbf9ee&bgTextureHighlight=3D04_highlight_hard.png&bgImgOpacityHighl=
ight=3D55&borderColorHighlight=3Dfcefa1&fcHighlight=3D363636&iconColorHi=
ghlight=3D2e83ff&bgColorError=3Dfef1ec&bgTextureError=3D05_inset_soft.pn=
g&bgImgOpacityError=3D95&borderColorError=3Dcd0a0a&fcError=3Dcd0a0a&icon=
ColorError=3Dcd0a0a&bgColorOverlay=3D000000&bgTextureOverlay=3D01_flat.p=
ng&bgImgOpacityOverlay=3D0&opacityOverlay=3D75&bgColorShadow=3D000000&bg=
TextureShadow=3D01_flat.png&bgImgOpacityShadow=3D0&opacityShadow=3D30&th=
icknessShadow=3D8px&offsetTopShadow=3D-8px&offsetLeftShadow=3D-8px&corne=
rRadiusShadow=3D8px
*/

/* Component containers
----------------------------------*/
.ui-widget { font-family: sans-serif; font-size: 0.9em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget but=
ton { font-family: sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #c0c0c0; background: #ffffff url(=
images/ui-bg_flat_100_ffffff_40x100.png) 50% 50% repeat-x; color: #00000=
0; }
.ui-widget-content a { color: #000000; }
.ui-widget-header { border-bottom: 1px solid #c0c0c0; line-height: 1em; =
background: #e2eef6 url(images/ui-bg_highlight-hard_100_e2eef6_1x100.png=
) 50% 50% repeat-x; color: #333333; font-weight: bold; }
.ui-widget-header a { color: #333333; }
/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default { border: 1px so=
lid #c0c0c0; background: #e2eef6 url(images/ui-bg_highlight-hard_100_e2e=
ef6_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #333333; ou=
tline: none; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visit=
ed { color: #333333; text-decoration: none; outline: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .u=
i-widget-content .ui-state-focus { border: 1px solid #c0c0c0; background=
: #ffffff url(images/ui-bg_highlight-hard_100_ffffff_1x100.png) 50% 50% =
repeat-x; font-weight: normal; color: #333333; outline: none; }
.ui-state-hover a, .ui-state-hover a:hover { color: #333333; text-decora=
tion: none; outline: none; }
.ui-state-active, .ui-widget-content .ui-state-active { border: 1px soli=
d #c0c0c0; background: #ffffff url(images/ui-bg_flat_100_ffffff_40x100.p=
ng) 50% 50% repeat-x; font-weight: normal; color: #333333; outline: none=
; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited =
{ color: #333333; outline: none; text-decoration: none; }
/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px=
solid #fcefa1; background: #fbf9ee url(images/ui-bg_highlight-hard_55_f=
bf9ee_1x100.png) 50% top repeat-x; color: #363636; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color:=
#363636; }
.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #=
cd0a0a; background: #fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.=
png) 50% bottom repeat-x; color: #cd0a0a; }
.ui-state-error a, .ui-widget-content .ui-state-error a { color: #cd0a0a=
; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #=
cd0a0a; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35=
; filter:Alpha(Opacity=3D35); background-image: none; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-wei=
ght: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opac=
ity: .7; filter:Alpha(Opacity=3D70); font-weight: normal; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-ic=
ons_000000_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_00000=
0_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_333333=
_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_33333=
3_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: ur=
l(images/ui-icons_333333_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_333333_=
256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83=
ff_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-imag=
e: url(images/ui-icons_cd0a0a_256x240.png); }
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }

/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-tl { -moz-border-radius-topleft: 0; -webkit-border-top-left-r=
adius: 0; }
.ui-corner-tr { -moz-border-radius-topright: 0; -webkit-border-top-right=
-radius: 0; }
.ui-corner-bl { -moz-border-radius-bottomleft: 0; -webkit-border-bottom-=
left-radius: 0; }
.ui-corner-br { -moz-border-radius-bottomright: 0; -webkit-border-bottom=
-right-radius: 0; }
.ui-corner-top { -moz-border-radius-topleft: 0; -webkit-border-top-left-=
radius: 0; -moz-border-radius-topright: 0; -webkit-border-top-right-radi=
us: 0; }
.ui-corner-bottom { -moz-border-radius-bottomleft: 0; -webkit-border-bot=
tom-left-radius: 0; -moz-border-radius-bottomright: 0; -webkit-border-bo=
ttom-right-radius: 0; }
.ui-corner-right { -moz-border-radius-topright: 0; -webkit-border-top-r=
ight-radius: 0; -moz-border-radius-bottomright: 0; -webkit-border-bottom=
-right-radius: 0; }
.ui-corner-left { -moz-border-radius-topleft: 0; -webkit-border-top-left=
-radius: 0; -moz-border-radius-bottomleft: 0; -webkit-border-bottom-left=
-radius: 0; }
.ui-corner-all { -moz-border-radius: 0; -webkit-border-radius: 0; }
/* Overlays */
.ui-widget-overlay { background: #000000 url(images/ui-bg_flat_0_000000_=
40x100.png) 50% 50% repeat-x; opacity: .75;filter:Alpha(Opacity=3D75); }=
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #00=
0000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x; opacit=
y: .30;filter:Alpha(Opacity=3D30); -moz-border-radius: 8px; -webkit-bord=
er-radius: 8px; }/* Accordion
----------------------------------*/
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative=
; margin-top: 1px; zoom: 1; }
.ui-accordion .ui-accordion-li-fix { display: inline; }
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important;=
}
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; p=
adding: .5em .5em .5em 2.2em; }
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: =
.5em; top: 50%; margin-top: -8px; }
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0;=
margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; ove=
rflow: auto; display: none; }
.ui-accordion .ui-accordion-content-active { display: block; }/* Datepic=
ker
----------------------------------*/
.ui-datepicker { width: 17em; padding: .2em .2em 0; }
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0=
; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {=
position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-=
next-hover { top: 1px; }
.ui-datepicker .ui-datepicker-prev { left:2px; }
.ui-datepicker .ui-datepicker-next { right:2px; }
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-n=
ext span { display: block; position: absolute; left: 50%; margin-left: -=
8px; top: 50%; margin-top: -8px; }
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8e=
m; text-align: center; }
.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; =
margin:1px 0; }
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
.ui-datepicker select.ui-datepicker-month, =
.ui-datepicker select.ui-datepicker-year { width: 49%;}
.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: r=
ight; }
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: col=
lapse; margin:0 0 .4em; }
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight:=
bold; border: 0; }
.ui-datepicker td { border: 0; padding: 1px; }
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .=
2em; text-align: right; text-decoration: none; }
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margi=
n: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-b=
ottom: 0; }
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: =
.5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:aut=
o; overflow:visible; }
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { =
float:left; }
/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi { width:auto; }
.ui-datepicker-multi .ui-datepicker-group { float:left; }
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 au=
to .4em; }
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { b=
order-left-width:0; }
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {=
border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
.ui-datepicker-row-break { clear:both; width:100%; }
/* RTL support */
.ui-datepicker-rtl { direction: rtl; }
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }=
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }=
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-curren=
t { float:right; }
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { bor=
der-right-width:0; border-left-width:1px; }
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { b=
order-right-width:0; border-left-width:1px; }
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
display: none; /*sorry for IE5*/
display/**/: block; /*sorry for IE5*/
position: absolute; /*must have*/
z-index: -1; /*must have*/
filter: mask(); /*must have*/
top: -4px; /*must have*/
left: -4px; /*must have*/
width: 200px; /*must have*/
height: 200px; /*must have*/
}/* Dialog
----------------------------------*/
.ui-dialog { position: relative; padding: 0; width: 300px; }
.ui-dialog .ui-dialog-titlebar { padding: .75em; position: relative; }
.ui-dialog .ui-dialog-title { float: left; margin: 0; } =
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .75em;=
top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px;=
}
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px;=
}
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titleb=
ar-close:focus { padding: 0; }
.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background=
: none; overflow: auto; zoom: 1; }
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0=
0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em=
.4em; }
.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4e=
m .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.=
4em; width:auto; overflow:visible; }
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bot=
tom: 3px; }
.ui-draggable .ui-dialog-titlebar { cursor: move; }
/* Progressbar
----------------------------------*/
.ui-progressbar { height:2em; text-align: left; }
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Re=
sizable
----------------------------------*/
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 9999=
9; display: block;}
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-=
resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px;=
left: 0px; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5=
px; left: 0px; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; h=
eight: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; he=
ight: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: =
1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5p=
x; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5p=
x; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5=
px; top: -5px;}/* Slider
----------------------------------*/
.ui-slider { position: relative; text-align: left; }
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.=
2em; height: 1.2em; cursor: default; }
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size:=
.7em; display: block; border: 0; }
.ui-slider-horizontal { height: .8em; }
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em=
; }
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
.ui-slider-vertical { width: .8em; height: 100px; }
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; mar=
gin-bottom: -.6em; }
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs
----------------------------------*/
.ui-tabs { padding: .2em; zoom: 1; }
.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .=
2em .2em 0; }
.ui-tabs .ui-tabs-nav li { position: relative; float: left; border-botto=
m-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding=
: .5em 1em; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-=
bottom-width: 0; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui=
-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { curs=
or: text; }
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li=
.ui-tabs-selected a { cursor: pointer; } /* first selector in group seem=
s obsolete, but required to overcome bug in Opera applying cursor: text =
overall if defined elsewhere... */
.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-wid=
th: 0; background: none; }
.ui-tabs .ui-tabs-hide { display: none !important; }
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/gif
Content-Location: http://upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-
file_acrobat.gif
Content-Transfer-Encoding: Base64
R0lGODlhEAAQAMQfAOmNjMfHx9UqJ3Fvb9hoZqmpqbe3t96pqPn4+IeHh9ra2qRS
UOXl5dtFQ9i2turq6uDg4NTT0+7u7uzMy/DX15OTk9/Ew99+fa89PN+Yl/Hp6eLi
4vPz8/v7+////////yH5BAEAAB8ALAAAAAAQABAAAAWgoCeO5PidHhOtQWC8Reyh
EdLdOB5Usxd1HARnSOy0eD4gkUO5UHAJUaAjqVYBl8zjgYh6pg/J9mFpZBiMrsjQ
GaMZDQsEovYYEI/3hiEQWBQcA2scaBtzBxkZcRoDCB4FhBuGEBcOCg19GBePHJJz
CgQEDQQZBxgAjwiTChcNlSuBIhVpHBMNDRRiDxwKgo8JFQkCGAsJA8fHXiQAuCUj
IQA7
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=index.css
Content-Type: text/css; charset=UTF-8; name=index.css
Content-Location: http://en.wikipedia.org/w/index.php?title=MediaWiki:Common.css
&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400
Content-Transfer-Encoding: 8bit
/* <source lang="css"> */
/* Main page fixes */
#interwiki-completelist {
font-weight: bold;
}
body.page-Main_Page #ca-delete {
display: none !important;
}
body.page-Main_Page #mp-topbanner {
clear: both;
}
/* Edit window toolbar */
#toolbar {
height: 22px;
margin-bottom: 6px;
}
/* Margins for <ol> and <ul> */
#content ol, #content ul,
#mw_content ol, #mw_content ul {
margin-bottom: 0.5em;
}
/* Make the list of references in [[Template:Reflist]] smaller */
.references-small {
font-size: 90%;
}
/* Highlight clicked reference in blue to help navigation */
ol.references > li:target,
sup.reference:target,
span.citation:target {
background-color: #DEF;
}
/* Ensure refs in table headers and the like aren't bold or italic */
sup.reference {
font-weight: normal;
font-style: normal;
}

/* Styling for citations */


span.citation, cite {
font-style: normal;
word-wrap: break-word;
}
/* For linked citation numbers and document IDs, where
the number need not be shown on a screen or a handheld,
but should be included in the printed version
*/
@media screen, handheld {
span.citation *.printonly {
display: none;
}
}
/* Default skin for navigation boxes */
table.navbox { /* Navbox container style */
border: 1px solid #aaa;
width: 100%;
margin: auto;
clear: both;
font-size: 88%;
text-align: center;
padding: 1px;
}
table.navbox + table.navbox { /* Single pixel border between adjacent navboxes
*/
margin-top: -1px; /* (doesn't work for IE6, but that's okay)
*/
}
.navbox-title,
.navbox-abovebelow,
table.navbox th {
text-align: center; /* Title and above/below styles */
padding-left: 1em;
padding-right: 1em;
}
.navbox-group { /* Group style */
white-space: nowrap;
text-align: right;
font-weight: bold;
padding-left: 1em;
padding-right: 1em;
}
.navbox, .navbox-subgroup {
background: #fdfdfd; /* Background color */
}
.navbox-list {
border-color: #fdfdfd; /* Must match background color */
}
.navbox-title,
table.navbox th {
background: #ccccff; /* Level 1 color */
}
.navbox-abovebelow,
.navbox-group,
.navbox-subgroup .navbox-title {
background: #ddddff; /* Level 2 color */
}
.navbox-subgroup .navbox-group, .navbox-subgroup .navbox-abovebelow {
background: #e6e6ff; /* Level 3 color */
}
.navbox-even {
background: #f7f7f7; /* Even row striping */
}
.navbox-odd {
background: transparent; /* Odd row striping */
}
.collapseButton { /* 'show'/'hide' buttons created dynamically */
float: right; /* by the CollapsibleTables javascript in */
font-weight: normal; /* [[MediaWiki:Common.js]]are styled here */
text-align: right; /* so they can be customised. */
width: auto;
}
.navbox .collapseButton { /* In navboxes, the show/hide button balances */
width: 6em; /* the vde links from [[Template:Tnavbar]], */
} /* so they need to be the same width. */

/* Infobox template style */


.infobox {
border: 1px solid #aaa;
background-color: #f9f9f9;
color: black;
margin: 0.5em 0 0.5em 1em;
padding: 0.2em;
float: right;
clear: right;
}
.infobox td,
.infobox th {
vertical-align: top;
}
.infobox caption {
font-size: larger;
}
.infobox.bordered {
border-collapse: collapse;
}
.infobox.bordered td,
.infobox.bordered th {
border: 1px solid #aaa;
}
.infobox.bordered .borderless td,
.infobox.bordered .borderless th {
border: 0;
}
.infobox.sisterproject {
width: 20em;
font-size: 90%;
}
.infobox.standard-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
}
.infobox.standard-talk.bordered td,
.infobox.standard-talk.bordered th {
border: 1px solid #c0c090;
}
/* styles for bordered infobox with merged rows */
.infobox.bordered .mergedtoprow td,
.infobox.bordered .mergedtoprow th {
border: 0;
border-top: 1px solid #aaa;
border-right: 1px solid #aaa;
}
.infobox.bordered .mergedrow td,
.infobox.bordered .mergedrow th {
border: 0;
border-right: 1px solid #aaa;
}
/* Styles for geography infoboxes, eg countries,
country subdivisions, cities, etc. */
.infobox.geography {
text-align: left;
border-collapse: collapse;
line-height: 1.2em;
font-size: 90%;
}
.infobox.geography td,
.infobox.geography th {
border-top: solid 1px #aaa;
padding: 0.4em 0.6em 0.4em 0.6em;
}
.infobox.geography .mergedtoprow td,
.infobox.geography .mergedtoprow th {
border-top: solid 1px #aaa;
padding: 0.4em 0.6em 0.2em 0.6em;
}
.infobox.geography .mergedrow td,
.infobox.geography .mergedrow th {
border: 0;
padding: 0 0.6em 0.2em 0.6em;
}
.infobox.geography .mergedbottomrow td,
.infobox.geography .mergedbottomrow th {
border-top: 0;
border-bottom: solid 1px #aaa;
padding: 0 0.6em 0.4em 0.6em;
}
.infobox.geography .maptable td,
.infobox.geography .maptable th {
border: 0;
padding: 0;
}
/* Makes redirects appear in italics in categories and on [[Special:Allpages]] *
/
.redirect-in-category, .allpagesredirect {
font-style: italic;
}
/* Icons for medialist templates [[Template:Listen]],
[[Template:Multi-listen_start]], [[Template:Video]],
[[Template:Multi-video_start]]
*/
div.listenlist {
background:
url("http://upload.wikimedia.org/wikipedia/commons/3/3f/Gnome_speakernot
es_30px.png");
padding-left: 40px;
}
/* Style rules for media list templates */
div.medialist {
min-height: 50px;
margin: 1em;
background-position: top left;
background-repeat: no-repeat;
}
div.medialist ul {
list-style-type: none;
list-style-image: none;
margin: 0;
}
div.medialist ul li {
padding-bottom: 0.5em;
}
div.medialist ul li li {
font-size: 91%;
padding-bottom: 0;
}
/* Change the external link icon to an Adobe icon for all PDF files
in browsers that support these CSS selectors, like Mozilla and Opera */
#content a[href$=".pdf"].external,
#content a[href*=".pdf?"].external,
#content a[href*=".pdf#"].external,
#content a[href$=".PDF"].external,
#content a[href*=".PDF?"].external,
#content a[href*=".PDF#"].external,
#mw_content a[href$=".pdf"].external,
#mw_content a[href*=".pdf?"].external,
#mw_content a[href*=".pdf#"].external,
#mw_content a[href$=".PDF"].external,
#mw_content a[href*=".PDF?"].external,
#mw_content a[href*=".PDF#"].external {
background: url("http://upload.wikimedia.org/wikipedia/commons/2/23/Icons-mi
ni-file_acrobat.gif") center right no-repeat;
padding-right: 18px;
}
/* Change the external link icon to an Adobe icon anywhere the PDFlink class
is used (notably Template:PDFlink). This works in IE, unlike the above. */
#content span.PDFlink a,
#mw_content span.PDFlink a {
background: url("http://upload.wikimedia.org/wikipedia/commons/2/23/Icons-mi
ni-file_acrobat.gif") center right no-repeat;
padding-right: 18px;
}
/* Content in columns with CSS instead of tables [[Template:Columns]] */
div.columns-2 div.column {
float: left;
width: 50%;
min-width: 300px;
}
div.columns-3 div.column {
float: left;
width: 33.3%;
min-width: 200px;
}
div.columns-4 div.column {
float: left;
width: 25%;
min-width: 150px;
}
div.columns-5 div.column {
float: left;
width: 20%;
min-width: 120px;
}
/* Messagebox templates */
.messagebox {
border: 1px solid #aaa;
background-color: #f9f9f9;
width: 80%;
margin: 0 auto 1em auto;
padding: .2em;
}
.messagebox.merge {
border: 1px solid #c0b8cc;
background-color: #f0e5ff;
text-align: center;
}
.messagebox.cleanup {
border: 1px solid #9f9fff;
background-color: #efefff;
text-align: center;
}
.messagebox.standard-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
margin: 4px auto;
}
/* For old WikiProject banners inside banner shells. */
.mbox-inside .standard-talk,
.messagebox.nested-talk {
border: 1px solid #c0c090;
background-color: #f8eaba;
width: 100%;
margin: 2px 0;
padding: 2px;
}
.messagebox.small {
width: 238px;
font-size: 85%;
float: right;
clear: both;
margin: 0 0 1em 1em;
line-height: 1.25em;
}
.messagebox.small-talk {
width: 238px;
font-size: 85%;
float: right;
clear: both;
margin: 0 0 1em 1em;
line-height: 1.25em;
background: #F8EABA;
}

/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */


th.mbox-text, td.mbox-text { /* The message body cell(s) */
border: none;
padding: 0.25em 0.9em; /* 0.9em left/right */
width: 100%; /* Make all mboxes the same width regardless of text length
*/
}
td.mbox-image { /* The left image cell */
border: none;
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
text-align: center;
}
td.mbox-imageright { /* The right image cell */
border: none;
padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */
text-align: center;
}
td.mbox-empty-cell { /* An empty narrow cell */
border: none;
padding: 0px;
width: 1px;
}
/* Article message box styles */
table.ambox {
margin: 0px 10%; /* 10% = Will not overlap with other elements */
border: 1px solid #aaa;
border-left: 10px solid #1e90ff; /* Default "notice" blue */
background: #fbfbfb;
}
table.ambox + table.ambox { /* Single border between stacked boxes. */
margin-top: -1px;
}
.ambox th.mbox-text,
.ambox td.mbox-text { /* The message body cell(s) */
padding: 0.25em 0.5em; /* 0.5em left/right */
}
.ambox td.mbox-image { /* The left image cell */
padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */
}
.ambox td.mbox-imageright { /* The right image cell */
padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */
}
table.ambox-notice {
border-left: 10px solid #1e90ff; /* Blue */
}
table.ambox-speedy {
border-left: 10px solid #b22222; /* Red */
background: #fee; /* Pink */
}
table.ambox-delete {
border-left: 10px solid #b22222; /* Red */
}
table.ambox-content {
border-left: 10px solid #f28500; /* Orange */
}
table.ambox-style {
border-left: 10px solid #f4c430; /* Yellow */
}
table.ambox-move {
border-left: 10px solid #9932cc; /* Purple */
}
table.ambox-protection {
border-left: 10px solid #bba; /* Gray-gold */
}
/* Image message box styles */
table.imbox {
margin: 4px 10%;
border-collapse: collapse;
border: 3px solid #1e90ff; /* Default "notice" blue */
background: #fbfbfb;
}
.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */
margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */
}
.mbox-inside .imbox { /* For imboxes inside other templates. */
margin: 4px;
}
table.imbox-notice {
border: 3px solid #1e90ff; /* Blue */
}
table.imbox-speedy {
border: 3px solid #b22222; /* Red */
background: #fee; /* Pink */
}
table.imbox-delete {
border: 3px solid #b22222; /* Red */
}
table.imbox-content {
border: 3px solid #f28500; /* Orange */
}
table.imbox-style {
border: 3px solid #f4c430; /* Yellow */
}
table.imbox-move {
border: 3px solid #9932cc; /* Purple */
}
table.imbox-protection {
border: 3px solid #bba; /* Gray-gold */
}
table.imbox-license {
border: 3px solid #88a; /* Dark gray */
background: #f7f8ff; /* Light gray */
}
table.imbox-featured {
border: 3px solid #cba135; /* Brown-gold */
}
/* Category message box styles */
table.cmbox {
margin: 3px 10%;
border-collapse: collapse;
border: 1px solid #aaa;
background: #DFE8FF; /* Default "notice" blue */
}
table.cmbox-notice {
background: #D8E8FF; /* Blue */
}
table.cmbox-speedy {
margin-top: 4px;
margin-bottom: 4px;
border: 4px solid #b22222; /* Red */
background: #FFDBDB; /* Pink */
}
table.cmbox-delete {
background: #FFDBDB; /* Red */
}
table.cmbox-content {
background: #FFE7CE; /* Orange */
}
table.cmbox-style {
background: #FFF9DB; /* Yellow */
}
table.cmbox-move {
background: #E4D8FF; /* Purple */
}
table.cmbox-protection {
background: #EFEFE1; /* Gray-gold */
}
/* Other pages message box styles */
table.ombox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #aaa; /* Default "notice" gray */
background: #f9f9f9;
}
table.ombox-notice {
border: 1px solid #aaa; /* Gray */
}
table.ombox-speedy {
border: 2px solid #b22222; /* Red */
background: #fee; /* Pink */
}
table.ombox-delete {
border: 2px solid #b22222; /* Red */
}
table.ombox-content {
border: 1px solid #f28500; /* Orange */
}
table.ombox-style {
border: 1px solid #f4c430; /* Yellow */
}
table.ombox-move {
border: 1px solid #9932cc; /* Purple */
}
table.ombox-protection {
border: 2px solid #bba; /* Gray-gold */
}
/* Talk page message box styles */
table.tmbox {
margin: 4px 10%;
border-collapse: collapse;
border: 1px solid #c0c090; /* Default "notice" gray-brown */
background: #f8eaba;
}
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "med
iawiki" */
margin: 2px 0; /* class ensures that this declaration override
s other */
width: 100%; /* For Safari and Opera */ /* styles (including mbox-small
above) */
}
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */
line-height: 1.5em; /* also "nested", so reset styles that are */
font-size: 100%; /* set in "mbox-small" above. */
}
table.tmbox-speedy {
border: 2px solid #b22222; /* Red */
background: #fee; /* Pink */
}
table.tmbox-delete {
border: 2px solid #b22222; /* Red */
}
table.tmbox-content {
border: 2px solid #f28500; /* Orange */
}
table.tmbox-style {
border: 2px solid #f4c430; /* Yellow */
}
table.tmbox-move {
border: 2px solid #9932cc; /* Purple */
}
table.tmbox-protection,
table.tmbox-notice {
border: 1px solid #c0c090; /* Gray-brown */
}
/* Disambig and set index box styles */
table.dmbox {
clear: both;
margin: 0.9em 1em;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background: transparent;
}
/* Footer and header message box styles */
table.fmbox {
clear: both;
margin: 0.2em 0;
width: 100%;
border: 1px solid #aaa;
background: #f9f9f9; /* Default "system" gray */
}
table.fmbox-system {
background: #f9f9f9;
}
table.fmbox-warning {
border: 1px solid #bb7070; /* Dark pink */
background: #ffdbdb; /* Pink */
}
table.fmbox-editnotice {
background: transparent;
}
/* Div based "warning" style fmbox messages. */
div.mw-warning-with-logexcerpt,
div.mw-lag-warn-high,
div.mw-cascadeprotectedwarning,
div#mw-protect-cascadeon {
clear: both;
margin: 0.2em 0;
border: 1px solid #bb7070;
background: #ffdbdb;
padding: 0.25em 0.9em;
}
/* Div based "system" style fmbox messages.
Used in [[MediaWiki:Readonly lag]]. */
div.mw-lag-warn-normal,
div.fmbox-system {
clear: both;
margin: 0.2em 0;
border: 1px solid #aaa;
background: #f9f9f9;
padding: 0.25em 0.9em;
}
/* These mbox-small classes must be placed after all other
ambox/tmbox/ombox etc classes. "body.mediawiki" is so
they override "table.ambox + table.ambox" above. */
body.mediawiki table.mbox-small { /* For the "small=yes" option. */
clear: right;
float: right;
margin: 4px 0 4px 1em;
width: 238px;
font-size: 88%;
line-height: 1.25em;
}
body.mediawiki table.mbox-small-left { /* For the "small=left" option. */
margin: 4px 1em 4px 0;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}

/* Remove default styles for [[MediaWiki:Noarticletext]]. */


div.noarticletext {
border: none;
background: transparent;
padding: 0;
}
#wpSave {
font-weight: bold;
}
/* class hiddenStructure is defunct. See [[Wikipedia:hiddenStructure]] */
.hiddenStructure {
display: inline ! important;
color: #f00;
background-color: #0f0;
}
/* suppress missing interwiki image links where #ifexist cannot
be used due to high number of requests see .hidden-redlink on
http://meta.wikimedia.org/wiki/MediaWiki:Common.css
*/
.check-icon a.new {
display: none;
speak: none;
}
/* Removes underlines from links */
.nounderlines a {
text-decoration: none;
}
/* Remove underline from IPA links */
.IPA a:link, .IPA a:visited {
text-decoration: none;
}
/* Standard Navigationsleisten, aka box hiding thingy
from .de. Documentation at [[Wikipedia:NavFrame]]. */
div.NavFrame {
margin: 0;
padding: 4px;
border: 1px solid #aaa;
text-align: center;
border-collapse: collapse;
font-size: 95%;
}
div.NavFrame + div.NavFrame {
border-top-style: none;
border-top-style: hidden;
}
div.NavPic {
background-color: #fff;
margin: 0;
padding: 2px;
float: left;
}
div.NavFrame div.NavHead {
height: 1.6em;
font-weight: bold;
background-color: #ccf;
position: relative;
}
div.NavFrame p,
div.NavFrame div.NavContent,
div.NavFrame div.NavContent p {
font-size: 100%;
}
div.NavEnd {
margin: 0;
padding: 0;
line-height: 1px;
clear: both;
}
a.NavToggle {
position: absolute;
top: 0;
right: 3px;
font-weight: normal;
font-size: 90%;
}
/* Hatnotes and disambiguation notices */
.rellink,
.dablink {
font-style: italic;
padding-left: 2em;
margin-bottom: 0.5em;
}
.rellink i,
.dablink i {
font-style: normal;
}
/* Style for horizontal UL lists */
.horizontal ul {
padding: 0;
margin: 0;
}
.horizontal li {
padding: 0 0.6em 0 0.4em;
display: inline;
border-right: 1px solid;
}
.horizontal li:last-child {
border-right: none;
padding-right: 0;
}
/* Allow transcluded pages to display in lists rather than a table.
Compatible in Firefox; incompatible in IE6. */
.listify td { display: list-item; }
.listify tr { display: block; }
.listify table { display: block; }
/* Geographical coordinates defaults. See [[Template:Coord/link]]
for how these are used. The classes "geo", "longitude", and
"latitude" are used by the [[Geo microformat]].
*/
.geo-default, .geo-dms, .geo-dec { display: inline; }
.geo-nondefault, .geo-multi-punct { display: none; }
.longitude, .latitude { white-space: nowrap; }
/* When <div class="nonumtoc"> is used on the table of contents,
the ToC will display without numbers */
.nonumtoc .tocnumber { display: none; }
.nonumtoc #toc ul,
.nonumtoc .toc ul {
line-height: 1.5em;
list-style: none;
margin: .3em 0 0;
padding: 0;
}
.nonumtoc #toc ul ul,
.nonumtoc .toc ul ul {
margin: 0 0 0 2em;
}
/* Allow limiting of which header levels are shown in a TOC;
<div class="toclimit-3">, for instance, will limit to
showing ==headings== and ===headings=== but no further
(as long as there are no =headings= on the page, which
there shouldn't be according to the MoS).
*/
.toclimit-2 .toclevel-1 ul,
.toclimit-3 .toclevel-2 ul,
.toclimit-4 .toclevel-3 ul,
.toclimit-5 .toclevel-4 ul,
.toclimit-6 .toclevel-5 ul,
.toclimit-7 .toclevel-6 ul { display: none; }
/* Styling for Template:Quote */
blockquote.templatequote {
margin-top: 0;
}
blockquote.templatequote div.templatequotecite {
line-height: 1em;
text-align: left;
padding-left: 2em;
margin-top: 0;
}
blockquote.templatequote div.templatequotecite cite {
font-size: 85%;
}
div.user-block {
padding: 5px;
border: 1px solid #A9A9A9;
background-color: #FFEFD5;
}
/* Prevent line breaks in silly places:
1) Links when we don't want them to
2) Bold "links" to the page itself
2) HTML formulae
3) Ref tags with group names <ref group="Note"> --> "[Note 1]"
*/
.nowraplinks a,
.nowraplinks .selflink,
span.texhtml,
sup.reference a {
white-space: nowrap;
}
/* For template documentation */
.template-documentation {
clear: both;
margin: 1em 0 0 0;
border: 1px solid #aaa;
background-color: #ecfcf4;
padding: 1em;
}
.thumbinner {
min-width: 100px;
}
/* Inline divs in ImageMaps (code borrowed from de.wiki) */
.imagemap-inline div {
display: inline;
}
/* Increase the height of the image upload box */
#wpUploadDescription {
height: 13em;
}
/* Reduce line-height for <sup> and <sub> */
sup, sub {
line-height: 1em;
}
/* Remove white border from thumbnails */
div.thumb {
border: none;
}
div.tright {
border: none;
margin: 0.5em 0 0.8em 1.4em;
}
div.tleft {
border: none;
margin: 0.5em 1.4em 0.8em 0;
}
/* Makes the background of a framed image white instead of gray. */
/* Only visible with transparent images. */
div.thumb img.thumbimage {
background-color: #fff;
}
/* The backgrounds for galleries. */
#content .gallerybox div.thumb {
background-color: #F9F9F9; /* Light gray padding */
}
/* Put a chequered background behind images, only visible if they have transpare
ncy */
.gallerybox .thumb img,
#file img {
background: white url("http://upload.wikimedia.org/wikipedia/commons/5/5d/Ch
ecker-16x16.png") repeat;
}
/* But not on articles, user pages, portals or with opt-out. */
.ns-0 .gallerybox .thumb img,
.ns-2 .gallerybox .thumb img,
.ns-100 .gallerybox .thumb img,
.nochecker .gallerybox .thumb img {
background: white;
}
/* Prevent floating boxes from overlapping any category listings,
file histories, edit previews, and edit [Show changes] views */
#mw-subcategories, #mw-pages, #mw-category-media,
#filehistory, #wikiPreview, #wikiDiff {
clear: both;
}
/* Selectively hide headers in WikiProject banners */
.wpb .wpb-header { display: none; }
.wpbs-inner .wpb .wpb-header { display: block; } /* for IE */
.wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */
.wpbs-inner .wpb-outside { display: none; } /* hide things that should
only display outside shells */
/* Styling for Abuse Filter tags */
.mw-tag-markers {
font-family:sans-serif;
font-style:italic;
font-size:90%;
}
/* Fix so <tt>, <code> and <pre> tags get normal text size also in
some versions of Firefox, Safari, Konqueror, Chrome etc.
Remove once r65391 is live. */
tt, code, pre {
font-family: monospace, sans-serif;
}
/* Remove bullets when there are multiple edit page warnings */
ul.permissions-errors > li {
list-style: none;
}
ul.permissions-errors {
margin: 0;
}
/* No linewrap on the labels of the login/signup page */
body.page-Special_UserLogin .mw-label label,
body.page-Special_UserLogin_signup .mw-label label { white-space : nowrap; }
/* Fix an alignment issue with oggplayer when rendered as center */
.center .ogg-player-options ul {
margin: 0.3em 0px 0px 1.5em;
}
/* </source> */
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=index.css
Content-Type: text/css; charset=UTF-8; name=index.css
Content-Location: http://en.wikipedia.org/w/index.php?title=MediaWiki:Print.css&
usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400
Content-Transfer-Encoding: 8bit
/* <source lang="css"> */
/* Do not print:
1: When in mainspace: Article message boxes,
navboxes, sister project boxes, disambig links,
and items marked as metadata.
2: Privacy, about, disclaimer, redirect and section edit links.
3: Show/hide toggles for collapsible items.
4: Items marked as noprint.
*/
.ns-0 .ambox,
.ns-0 .navbox,
.ns-0 .infobox.sisterproject,
.ns-0 .dablink,
.ns-0 .metadata,
#footer-places,
.editlink,
span.collapseButton, a.NavToggle,
.noprint {
display: none;
}
/* Add formatting to make sure that "external references" from templates
like [[Template:Ref]] do not get URL expansion, not even when printed.
The anchor itself has class "external autonumber" and the url expansion
is inserted when printing (see the common printing style sheet at
http://en.wikipedia.org/skins-1.5/common/commonPrint.css) using the
":after" pseudo-element of CSS. Also hide in <cite> elements.
*/
#content cite a.external.text:after,
.nourlexpansion a.external.text:after,
.nourlexpansion a.external.autonumber:after {
display: none !important;
}
/* Uncollapse collapsible tables/divs.
The proper way to do this for tables is to use display:table-row,
but this is not supported by all browsers, so use display:block as fallback.
*/
table.collapsible tr, div.NavPic, div.NavContent {
display: block !important;
}
table.collapsible tr {
display: table-row !important;
}
/* Hiding some items when printing with Simple skin */
.skin-simple div#column-one,
.skin-simple div#f-poweredbyico,
.skin-simple div#f-copyrightico,
.skin-simple .editsection {
display: none;
}
/* wikitable class for skinning normal tables */
table.wikitable {
margin: 1em 1em 1em 0;
border: 1px #aaa solid;
border-collapse: collapse;
}
.wikitable th, .wikitable td {
border: 1px #aaa solid;
padding: 0.2em;
}
.wikitable th {
text-align: center;
background: #F2F2F2;
font-weight: bold;
}
.wikitable caption {
font-weight: bold;
}
/* </source> */
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=index.css
Content-Type: text/css; charset=UTF-8; name=index.css
Content-Location: http://en.wikipedia.org/w/index.php?title=MediaWiki:Handheld.c
ss&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400
Content-Transfer-Encoding: 8bit
/* Flatten the main page table layout */
table.layout,
table.layout tbody,
table.layout tr,
table.layout th,
table.layout td,
#mp-topbanner,
#mp-topbanner tbody,
#mp-topbanner tr,
#mp-topbanner th,
#mp-topbanner td,
#mp-upper,
#mp-upper tbody,
#mp-upper tr,
#mp-upper th,
#mp-upper td,
#mp-tfp,
#mp-tfp tbody,
#mp-tfp tr,
#mp-tfp th,
#mp-tfp td {
display: block !important;
width: 100% !important;
}
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=index.css
Content-Type: text/css; charset=UTF-8; name=index.css
Content-Location: http://en.wikipedia.org/w/index.php?title=MediaWiki:Vector.css
&usemsgcache=yes&ctype=text%2Fcss&smaxage=2678400&action=raw&maxage=2678400
Content-Transfer-Encoding: 8bit
/* <source lang="css"> */
/* The following are Vector bugfixes */
/* Temporary fix until [[bugzilla:19567]] is addressed */
#siteNotice div { margin: 0; }
#siteNotice div.expanded table.siteNoticeUser { margin-bottom: 1em; }
/* [[bugzilla:20276]] */
input#wpSummary {
width:100%;
}
/* end bugfixes */
/* Don't display some stuff on the main page */
body.page-Main_Page #deleteconfirm,
body.page-Main_Page #t-cite,
body.page-Main_Page #footer-info-lastmod,
body.page-Main_Page #siteSub,
body.page-Main_Page #contentSub,
body.page-Main_Page h1.firstHeading {
display: none !important;
}
body.page-Main_Page #mp-topbanner {
margin-top: 0 !important;
}
#coordinates {
position: absolute;
top: 0em;
right: 0em;
float: right;
margin: 0.0em;
padding: 0.0em;
line-height: 1.5em;
text-align: right;
text-indent: 0;
font-size: 85%;
text-transform: none;
white-space: nowrap;
}
/* For positioning icons at top-right, used in Templates
"Spoken Article" and "Featured Article" */
div.topicon {
position: absolute;
top: -2em;
margin-right: -10px;
display: block !important;
}
/* FR topicon position */
div.flaggedrevs_short {
position: absolute;
top: -3em;
right: 55px;
z-index: 1;
margin-left: 0;
/* Because this is not yet a topicon, we emulate it's behavior, this ensure com
patibility with edit lead section gadget */
margin-right: -10px;
}
/* Menu over FR box */
div.vectorMenu div {
z-index: 2;
}
/* Display "From Wikipedia, the free encyclopedia" */
#siteSub {
display: inline;
font-size: 92%;
font-weight: normal;
}
/* {{tl|Link GA}} */
#mw-panel div.portal div.body ul li.GA {
background: url("http://upload.wikimedia.org/wikipedia/commons/4/42/Monobook-b
ullet-ga.png") no-repeat 0% 0%;
margin-left: -10px;
padding-left: 10px;
}
/* {{tl|Link FA}} */
#mw-panel div.portal div.body ul li.FA {
background: url("http://upload.wikimedia.org/wikipedia/commons/d/d4/Monobook-b
ullet-star.png") no-repeat 0% 0%;
margin-left: -10px;
padding-left: 10px;
}
#siteNotice .notice-all {
margin-bottom: 1em !important;
margin-right: 2px !important;
}
/* Adjust font-size for inline HTML generated TeX formulae */
.texhtml {
font-size: 125%;
line-height: 1.5em;
}
/* Blue instead of yellow padlock for secure links. */
#bodyContent a.external[href ^="https://"],
.link-https {
background: url("http://upload.wikimedia.org/wikipedia/en/0/00/Lock_icon_blue.
gif") center right no-repeat;
padding-right: 16px;
}
/* </source> */
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=index.css
Content-Type: text/css; charset=UTF-8; name=index.css
Content-Location: http://en.wikipedia.org/w/index.php?title=-&action=raw&maxage=
2678400&gen=css
Content-Transfer-Encoding: 8bit
/* generated user stylesheet */
a.new, #quickbar a.new { color: #CC2200; }
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=wikibits.js
Content-Type: application/x-javascript; charset=UTF-8; name=wikibits.js
Content-Location: http://bits.wikimedia.org/skins-1.5/common/wikibits.js?283u
Content-Transfer-Encoding: Base64
Ly8gTWVkaWFXaWtpIEphdmFTY3JpcHQgc3VwcG9ydCBmdW5jdGlvbnMKCnZhciBj
bGllbnRQQyA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTsgLy8g
R2V0IGNsaWVudCBpbmZvCnZhciBpc19nZWNrbyA9IC9nZWNrby8udGVzdCggY2xp
ZW50UEMgKSAmJgoJIS9raHRtbHxzcG9vZmVyfG5ldHNjYXBlXC83XC4wLy50ZXN0
KGNsaWVudFBDKTsKdmFyIHdlYmtpdF9tYXRjaCA9IGNsaWVudFBDLm1hdGNoKC9h
cHBsZXdlYmtpdFwvKFxkKykvKTsKaWYgKHdlYmtpdF9tYXRjaCkgewoJdmFyIGlz
X3NhZmFyaSA9IGNsaWVudFBDLmluZGV4T2YoJ2FwcGxld2Via2l0JykgIT0gLTEg
JiYKCQljbGllbnRQQy5pbmRleE9mKCdzcG9vZmVyJykgPT0gLTE7Cgl2YXIgaXNf
c2FmYXJpX3dpbiA9IGlzX3NhZmFyaSAmJiBjbGllbnRQQy5pbmRleE9mKCd3aW5k
b3dzJykgIT0gLTE7Cgl2YXIgd2Via2l0X3ZlcnNpb24gPSBwYXJzZUludCh3ZWJr
aXRfbWF0Y2hbMV0pOwp9Ci8vIEZvciBhY2Nlc3NrZXlzOyBub3RlIHRoYXQgRkYz
KyBpcyBpbmNsdWRlZCBoZXJlIQp2YXIgaXNfZmYyID0gL2ZpcmVmb3hcL1syLTld
fG1pbmVmaWVsZFwvMy8udGVzdCggY2xpZW50UEMgKTsKdmFyIGZmMl9idWdzID0g
L2ZpcmVmb3hcLzIvLnRlc3QoIGNsaWVudFBDICk7Ci8vIFRoZXNlIGFyZW4ndCB1
c2VkIGhlcmUsIGJ1dCBzb21lIGN1c3RvbSBzY3JpcHRzIHJlbHkgb24gdGhlbQp2
YXIgaXNfZmYyX3dpbiA9IGlzX2ZmMiAmJiBjbGllbnRQQy5pbmRleE9mKCd3aW5k
b3dzJykgIT0gLTE7CnZhciBpc19mZjJfeDExID0gaXNfZmYyICYmIGNsaWVudFBD
LmluZGV4T2YoJ3gxMScpICE9IC0xOwppZiAoY2xpZW50UEMuaW5kZXhPZignb3Bl
cmEnKSAhPSAtMSkgewoJdmFyIGlzX29wZXJhID0gdHJ1ZTsKCXZhciBpc19vcGVy
YV9wcmVzZXZlbiA9IHdpbmRvdy5vcGVyYSAmJiAhZG9jdW1lbnQuY2hpbGROb2Rl
czsKCXZhciBpc19vcGVyYV9zZXZlbiA9IHdpbmRvdy5vcGVyYSAmJiBkb2N1bWVu
dC5jaGlsZE5vZGVzOwoJdmFyIGlzX29wZXJhXzk1ID0gL29wZXJhXC8oOVwuWzUt
OV18WzEtOV1bMC05XSkvLnRlc3QoIGNsaWVudFBDICk7Cgl2YXIgb3BlcmE2X2J1
Z3MgPSBpc19vcGVyYV9wcmVzZXZlbjsKCXZhciBvcGVyYTdfYnVncyA9IGlzX29w
ZXJhX3NldmVuICYmICFpc19vcGVyYV85NTsKCXZhciBvcGVyYTk1X2J1Z3MgPSAv
b3BlcmFcLyg5XC41KS8udGVzdCggY2xpZW50UEMgKTsKfQovLyBBcyByZWNvbW1l
bmRlZCBieSA8aHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5
L21zNTM3NTA5LmFzcHg+LAovLyBhdm9pZGluZyBmYWxzZSBwb3NpdGl2ZXMgZnJv
bSBtb3JvbmljIGV4dGVuc2lvbnMgdGhhdCBhcHBlbmQgdG8gdGhlIElFIFVBCi8v
IHN0cmluZyAoYnVnIDIzMTcxKQp2YXIgaWU2X2J1Z3MgPSBmYWxzZTsKaWYgKCAv
TVNJRSAoWzAtOV17MSx9W1wuMC05XXswLH0pLy5leGVjKCBjbGllbnRQQyApICE9
IG51bGwKJiYgcGFyc2VGbG9hdCggUmVnRXhwLiQxICkgPD0gNi4wICkgewoJaWU2
X2J1Z3MgPSB0cnVlOwp9CgovLyBHbG9iYWwgZXh0ZXJuYWwgb2JqZWN0cyB1c2Vk
IGJ5IHRoaXMgc2NyaXB0LgovKmV4dGVybiB0YSwgc3R5bGVwYXRoLCBza2luICov
CgovLyBhZGQgYW55IG9ubG9hZCBmdW5jdGlvbnMgaW4gdGhpcyBob29rIChwbGVh
c2UgZG9uJ3QgaGFyZC1jb2RlIGFueSBldmVudHMgaW4gdGhlIHhodG1sIHNvdXJj
ZSkKdmFyIGRvbmVPbmxvYWRIb29rOwoKaWYgKCF3aW5kb3cub25sb2FkRnVuY3Rz
KSB7Cgl2YXIgb25sb2FkRnVuY3RzID0gW107Cn0KCmZ1bmN0aW9uIGFkZE9ubG9h
ZEhvb2soIGhvb2tGdW5jdCApIHsKCS8vIEFsbG93cyBhZGQtb24gc2NyaXB0cyB0
byBhZGQgb25sb2FkIGZ1bmN0aW9ucwoJaWYoICFkb25lT25sb2FkSG9vayApIHsK
CQlvbmxvYWRGdW5jdHNbb25sb2FkRnVuY3RzLmxlbmd0aF0gPSBob29rRnVuY3Q7
Cgl9IGVsc2UgewoJCWhvb2tGdW5jdCgpOyAgLy8gYnVnIGluIE1TSUUgc2NyaXB0
IGxvYWRpbmcKCX0KfQoKZnVuY3Rpb24gaG9va0V2ZW50KCBob29rTmFtZSwgaG9v
a0Z1bmN0ICkgewoJYWRkSGFuZGxlciggd2luZG93LCBob29rTmFtZSwgaG9va0Z1
bmN0ICk7Cn0KCmZ1bmN0aW9uIGltcG9ydFNjcmlwdCggcGFnZSApIHsKCS8vIFRP
RE86IG1pZ2h0IHdhbnQgdG8gaW50cm9kdWNlIGEgdXRpbGl0eSBmdW5jdGlvbiB0
byBtYXRjaCB3ZlVybGVuY29kZSgpIGluIFBIUAoJdmFyIHVyaSA9IHdnU2NyaXB0
ICsgJz90aXRsZT0nICsKCQllbmNvZGVVUklDb21wb25lbnQocGFnZS5yZXBsYWNl
KC8gL2csJ18nKSkucmVwbGFjZSgvJTJGL2lnLCcvJykucmVwbGFjZSgvJTNBL2ln
LCc6JykgKwoJCScmYWN0aW9uPXJhdyZjdHlwZT10ZXh0L2phdmFzY3JpcHQnOwoJ
cmV0dXJuIGltcG9ydFNjcmlwdFVSSSggdXJpICk7Cn0KCnZhciBsb2FkZWRTY3Jp
cHRzID0ge307IC8vIGluY2x1ZGVkLXNjcmlwdHMgdHJhY2tlcgpmdW5jdGlvbiBp
bXBvcnRTY3JpcHRVUkkoIHVybCApIHsKCWlmICggbG9hZGVkU2NyaXB0c1t1cmxd
ICkgewoJCXJldHVybiBudWxsOwoJfQoJbG9hZGVkU2NyaXB0c1t1cmxdID0gdHJ1
ZTsKCXZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3NjcmlwdCcgKTsK
CXMuc2V0QXR0cmlidXRlKCAnc3JjJywgdXJsICk7CglzLnNldEF0dHJpYnV0ZSgg
J3R5cGUnLCAndGV4dC9qYXZhc2NyaXB0JyApOwoJZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZCggcyApOwoJcmV0dXJu
IHM7Cn0KCmZ1bmN0aW9uIGltcG9ydFN0eWxlc2hlZXQoIHBhZ2UgKSB7CglyZXR1
cm4gaW1wb3J0U3R5bGVzaGVldFVSSSggd2dTY3JpcHQgKyAnP2FjdGlvbj1yYXcm
Y3R5cGU9dGV4dC9jc3MmdGl0bGU9JyArIGVuY29kZVVSSUNvbXBvbmVudCggcGFn
ZS5yZXBsYWNlKC8gL2csJ18nKSApICk7Cn0KCmZ1bmN0aW9uIGltcG9ydFN0eWxl
c2hlZXRVUkkoIHVybCwgbWVkaWEgKSB7Cgl2YXIgbCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoICdsaW5rJyApOwoJbC50eXBlID0gJ3RleHQvY3NzJzsKCWwucmVs
ID0gJ3N0eWxlc2hlZXQnOwoJbC5ocmVmID0gdXJsOwoJaWYoIG1lZGlhICkgewoJ
CWwubWVkaWEgPSBtZWRpYTsKCX0KCWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoIGwgKTsKCXJldHVybiBsOwp9Cgpm
dW5jdGlvbiBhcHBlbmRDU1MoIHRleHQgKSB7Cgl2YXIgcyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoICdzdHlsZScgKTsKCXMudHlwZSA9ICd0ZXh0L2Nzcyc7Cglz
LnJlbCA9ICdzdHlsZXNoZWV0JzsKCWlmICggcy5zdHlsZVNoZWV0ICkgewoJCXMu
c3R5bGVTaGVldC5jc3NUZXh0ID0gdGV4dDsgLy8gSUUKCX0gZWxzZSB7CgkJcy5h
cHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIHRleHQgKyAnJyAp
ICk7IC8vIFNhZmFyaSBzb21ldGltZXMgYm9ya3Mgb24gbnVsbAoJfQoJZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZCgg
cyApOwoJcmV0dXJuIHM7Cn0KCi8vIFNwZWNpYWwgc3R5bGVzaGVldCBsaW5rcyBm
b3IgTW9ub2Jvb2sgb25seSAoc2VlIGJ1ZyAxNDcxNykKaWYgKCB0eXBlb2Ygc3R5
bGVwYXRoICE9ICd1bmRlZmluZWQnICYmIHNraW4gPT0gJ21vbm9ib29rJyApIHsK
CWlmICggb3BlcmE2X2J1Z3MgKSB7CgkJaW1wb3J0U3R5bGVzaGVldFVSSSggc3R5
bGVwYXRoICsgJy8nICsgc2tpbiArICcvT3BlcmE2Rml4ZXMuY3NzJyApOwoJfSBl
bHNlIGlmICggb3BlcmE3X2J1Z3MgKSB7CgkJaW1wb3J0U3R5bGVzaGVldFVSSSgg
c3R5bGVwYXRoICsgJy8nICsgc2tpbiArICcvT3BlcmE3Rml4ZXMuY3NzJyApOwoJ
fSBlbHNlIGlmICggb3BlcmE5NV9idWdzICkgewoJCWltcG9ydFN0eWxlc2hlZXRV
UkkoIHN0eWxlcGF0aCArICcvJyArIHNraW4gKyAnL09wZXJhOUZpeGVzLmNzcycg
KTsKCX0gZWxzZSBpZiAoIGZmMl9idWdzICkgewoJCWltcG9ydFN0eWxlc2hlZXRV
UkkoIHN0eWxlcGF0aCArICcvJyArIHNraW4gKyAnL0ZGMkZpeGVzLmNzcycgKTsK
CX0KfQoKCmlmICggd2dCcmVha0ZyYW1lcyApIHsKCS8vIFVuLXRyYXAgdXMgZnJv
bSBmcmFtZXNldHMKCWlmICggd2luZG93LnRvcCAhPSB3aW5kb3cgKSB7CgkJd2lu
ZG93LnRvcC5sb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbjsKCX0KfQoKZnVuY3Rp
b24gc2hvd1RvY1RvZ2dsZSgpIHsKCWlmICggZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUgKSB7CgkJLy8gVXNlcyBET00gY2FsbHMgdG8gYXZvaWQgZG9jdW1lbnQud3Jp
dGUgKyBYSFRNTCBpc3N1ZXMKCgkJdmFyIGxpbmtIb2xkZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCggJ3RvY3RpdGxlJyApOwoJCXZhciBleGlzdGluZ0xpbmsg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ3RvZ2dsZWxpbmsnICk7CgkJaWYg
KCAhbGlua0hvbGRlciB8fCBleGlzdGluZ0xpbmsgKSB7CgkJCS8vIERvbid0IGFk
ZCB0aGUgdG9nZ2xlIGxpbmsgdHdpY2UKCQkJcmV0dXJuOwoJCX0KCgkJdmFyIG91
dGVyU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdzcGFuJyApOwoJCW91
dGVyU3Bhbi5jbGFzc05hbWUgPSAndG9jdG9nZ2xlJzsKCgkJdmFyIHRvZ2dsZUxp
bmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAnYScgKTsKCQl0b2dnbGVMaW5r
LmlkID0gJ3RvZ2dsZWxpbmsnOwoJCXRvZ2dsZUxpbmsuY2xhc3NOYW1lID0gJ2lu
dGVybmFsJzsKCQl0b2dnbGVMaW5rLmhyZWYgPSAnIyc7CgkJYWRkQ2xpY2tIYW5k
bGVyKCB0b2dnbGVMaW5rLCBmdW5jdGlvbiggZXZ0ICkgeyB0b2dnbGVUb2MoKTsg
cmV0dXJuIGtpbGxFdnQoIGV2dCApOyB9ICk7CgkJCgkJdG9nZ2xlTGluay5hcHBl
bmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIHRvY0hpZGVUZXh0ICkg
KTsKCgkJb3V0ZXJTcGFuLmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSggJ1snICkgKTsKCQlvdXRlclNwYW4uYXBwZW5kQ2hpbGQoIHRvZ2dsZUxp
bmsgKTsKCQlvdXRlclNwYW4uYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCAnXScgKSApOwoKCQlsaW5rSG9sZGVyLmFwcGVuZENoaWxkKCBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSggJyAnICkgKTsKCQlsaW5rSG9sZGVyLmFwcGVu
ZENoaWxkKCBvdXRlclNwYW4gKTsKCgkJdmFyIGNvb2tpZVBvcyA9IGRvY3VtZW50
LmNvb2tpZS5pbmRleE9mKCAiaGlkZXRvYz0iICk7CgkJaWYgKCBjb29raWVQb3Mg
PiAtMSAmJiBkb2N1bWVudC5jb29raWUuY2hhckF0KCBjb29raWVQb3MgKyA4ICkg
PT0gMSApIHsKCQkJdG9nZ2xlVG9jKCk7CgkJfQoJfQp9CgpmdW5jdGlvbiBjaGFu
Z2VUZXh0KCBlbCwgbmV3VGV4dCApIHsKCS8vIFNhZmFyaSB3b3JrIGFyb3VuZAoJ
aWYgKCBlbC5pbm5lclRleHQgKSB7CgkJZWwuaW5uZXJUZXh0ID0gbmV3VGV4dDsK
CX0gZWxzZSBpZiAoIGVsLmZpcnN0Q2hpbGQgJiYgZWwuZmlyc3RDaGlsZC5ub2Rl
VmFsdWUgKSB7CgkJZWwuZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSBuZXdUZXh0OwoJ
fQp9CgpmdW5jdGlvbiBraWxsRXZ0KCBldnQgKSB7CglldnQgPSBldnQgfHwgd2lu
ZG93LmV2ZW50IHx8IHdpbmRvdy5FdmVudDsgLy8gVzNDLCBJRSwgTmV0c2NhcGUK
CWlmICggdHlwZW9mICggZXZ0LnByZXZlbnREZWZhdWx0ICkgIT0gJ3VuZGVmaW5l
ZCcgKSB7CgkJZXZ0LnByZXZlbnREZWZhdWx0KCk7IC8vIERvbid0IGZvbGxvdyB0
aGUgbGluawoJCWV2dC5zdG9wUHJvcGFnYXRpb24oKTsKCX0gZWxzZSB7CgkJZXZ0
LmNhbmNlbEJ1YmJsZSA9IHRydWU7IC8vIElFCgl9CglyZXR1cm4gZmFsc2U7IC8v
IERvbid0IGZvbGxvdyB0aGUgbGluayAoSUUpCn0KCmZ1bmN0aW9uIHRvZ2dsZVRv
YygpIHsKCXZhciB0b2NtYWluID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICd0
b2MnICk7Cgl2YXIgdG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvYycp
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd1bCcpWzBdOwoJdmFyIHRvZ2dsZUxpbmsg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ3RvZ2dsZWxpbmsnICk7CgoJaWYg
KCB0b2MgJiYgdG9nZ2xlTGluayAmJiB0b2Muc3R5bGUuZGlzcGxheSA9PSAnbm9u
ZScgKSB7CgkJY2hhbmdlVGV4dCggdG9nZ2xlTGluaywgdG9jSGlkZVRleHQgKTsK
CQl0b2Muc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CgkJZG9jdW1lbnQuY29va2ll
ID0gImhpZGV0b2M9MCI7CgkJdG9jbWFpbi5jbGFzc05hbWUgPSAndG9jJzsKCX0g
ZWxzZSB7CgkJY2hhbmdlVGV4dCggdG9nZ2xlTGluaywgdG9jU2hvd1RleHQgKTsK
CQl0b2Muc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQlkb2N1bWVudC5jb29raWUg
PSAiaGlkZXRvYz0xIjsKCQl0b2NtYWluLmNsYXNzTmFtZSA9ICd0b2MgdG9jaGlk
ZGVuJzsKCX0KfQoKdmFyIG13RWRpdEJ1dHRvbnMgPSBbXTsKdmFyIG13Q3VzdG9t
RWRpdEJ1dHRvbnMgPSBbXTsgLy8gZWcgdG8gYWRkIGluIE1lZGlhV2lraTpDb21t
b24uanMKCmZ1bmN0aW9uIGVzY2FwZVF1b3RlcyggdGV4dCApIHsKCXZhciByZSA9
IG5ldyBSZWdFeHAoICInIiwgImciICk7Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKCBy
ZSwgIlxcJyIgKTsKCXJlID0gbmV3IFJlZ0V4cCggIlxcbiIsICJnIiApOwoJdGV4
dCA9IHRleHQucmVwbGFjZSggcmUsICJcXG4iICk7CglyZXR1cm4gZXNjYXBlUXVv
dGVzSFRNTCggdGV4dCApOwp9CgpmdW5jdGlvbiBlc2NhcGVRdW90ZXNIVE1MKCB0
ZXh0ICkgewoJdmFyIHJlID0gbmV3IFJlZ0V4cCggJyYnLCAiZyIgKTsKCXRleHQg
PSB0ZXh0LnJlcGxhY2UoIHJlLCAiJmFtcDsiICk7CglyZSA9IG5ldyBSZWdFeHAo
ICciJywgImciICk7Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKCByZSwgIiZxdW90OyIg
KTsKCXJlID0gbmV3IFJlZ0V4cCggJzwnLCAiZyIgKTsKCXRleHQgPSB0ZXh0LnJl
cGxhY2UoIHJlLCAiJmx0OyIgKTsKCXJlID0gbmV3IFJlZ0V4cCggJz4nLCAiZyIg
KTsKCXRleHQgPSB0ZXh0LnJlcGxhY2UoIHJlLCAiJmd0OyIgKTsKCXJldHVybiB0
ZXh0Owp9CgovKioKICogU2V0IHRoZSBhY2Nlc3NrZXkgcHJlZml4IGJhc2VkIG9u
IGJyb3dzZXIgZGV0ZWN0aW9uLgogKi8KdmFyIHRvb2x0aXBBY2Nlc3NLZXlQcmVm
aXggPSAnYWx0LSc7CmlmICggaXNfb3BlcmEgKSB7Cgl0b29sdGlwQWNjZXNzS2V5
UHJlZml4ID0gJ3NoaWZ0LWVzYy0nOwp9IGVsc2UgaWYgKCAhaXNfc2FmYXJpX3dp
biAmJiBpc19zYWZhcmkgJiYgd2Via2l0X3ZlcnNpb24gPiA1MjYgKSB7Cgl0b29s
dGlwQWNjZXNzS2V5UHJlZml4ID0gJ2N0cmwtYWx0LSc7Cn0gZWxzZSBpZiAoICFp
c19zYWZhcmlfd2luICYmICggaXNfc2FmYXJpCgkJfHwgY2xpZW50UEMuaW5kZXhP
ZignbWFjJykgIT0gLTEKCQl8fCBjbGllbnRQQy5pbmRleE9mKCdrb25xdWVyb3In
KSAhPSAtMSApICkgewoJdG9vbHRpcEFjY2Vzc0tleVByZWZpeCA9ICdjdHJsLSc7
Cn0gZWxzZSBpZiAoIGlzX2ZmMiApIHsKCXRvb2x0aXBBY2Nlc3NLZXlQcmVmaXgg
PSAnYWx0LXNoaWZ0LSc7Cn0KdmFyIHRvb2x0aXBBY2Nlc3NLZXlSZWdleHAgPSAv
XFsoY3RybC0pPyhhbHQtKT8oc2hpZnQtKT8oZXNjLSk/KC4pXF0kLzsKCi8qKgog
KiBBZGQgdGhlIGFwcHJvcHJpYXRlIHByZWZpeCB0byB0aGUgYWNjZXNza2V5IHNo
b3duIGluIHRoZSB0b29sdGlwLgogKiBJZiB0aGUgbm9kZUxpc3QgcGFyYW1ldGVy
IGlzIGdpdmVuLCBvbmx5IHRob3NlIG5vZGVzIGFyZSB1cGRhdGVkOwogKiBvdGhl
cndpc2UsIGFsbCB0aGUgbm9kZXMgdGhhdCB3aWxsIHByb2JhYmx5IGhhdmUgYWNj
ZXNza2V5cyBieQogKiBkZWZhdWx0IGFyZSB1cGRhdGVkLgogKgogKiBAcGFyYW0g
QXJyYXkgbm9kZUxpc3QgLS0gbGlzdCBvZiBlbGVtZW50cyB0byB1cGRhdGUKICov
CmZ1bmN0aW9uIHVwZGF0ZVRvb2x0aXBBY2Nlc3NLZXlzKCBub2RlTGlzdCApIHsK
CWlmICggIW5vZGVMaXN0ICkgewoJCS8vIFJhdGhlciB0aGFuIHNjYW4gYWxsIGxp
bmtzIG9uIHRoZSB3aG9sZSBwYWdlLCB3ZSBjYW4ganVzdCBzY2FuIHRoZXNlCgkJ
Ly8gY29udGFpbmVycyB3aGljaCBjb250YWluIHRoZSByZWxldmFudCBsaW5rcy4g
VGhpcyBpcyByZWFsbHkganVzdCBhbgoJCS8vIG9wdGltaXphdGlvbiB0ZWNobmlx
dWUuCgkJdmFyIGxpbmtDb250YWluZXJzID0gWwoJCQknY29sdW1uLW9uZScsIC8v
IE1vbm9ib29rIGFuZCBNb2Rlcm4KCQkJJ213LWhlYWQnLCAnbXctcGFuZWwnLCAn
cC1sb2dvJyAvLyBWZWN0b3IKCQldOwoJCWZvciAoIHZhciBpIGluIGxpbmtDb250
YWluZXJzICkgewoJCQl2YXIgbGlua0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCBsaW5rQ29udGFpbmVyc1tpXSApOwoJCQlpZiAoIGxpbmtDb250
YWluZXIgKSB7CgkJCQl1cGRhdGVUb29sdGlwQWNjZXNzS2V5cyggbGlua0NvbnRh
aW5lci5nZXRFbGVtZW50c0J5VGFnTmFtZSggJ2EnICkgKTsKCQkJfQoJCX0KCQkv
LyB0aGVzZSBhcmUgcmFyZSBlbm91Z2ggdGhhdCBubyBzdWNoIG9wdGltaXphdGlv
biBpcyBuZWVkZWQKCQl1cGRhdGVUb29sdGlwQWNjZXNzS2V5cyggZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoICdpbnB1dCcgKSApOwoJCXVwZGF0ZVRvb2x0
aXBBY2Nlc3NLZXlzKCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSggJ2xh
YmVsJyApICk7CgkJcmV0dXJuOwoJfQoKCWZvciAoIHZhciBpID0gMDsgaSA8IG5v
ZGVMaXN0Lmxlbmd0aDsgaSsrICkgewoJCXZhciBlbGVtZW50ID0gbm9kZUxpc3Rb
aV07CgkJdmFyIHRpcCA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCAndGl0bGUnICk7
CgkJaWYgKCB0aXAgJiYgdG9vbHRpcEFjY2Vzc0tleVJlZ2V4cC5leGVjKCB0aXAg
KSApIHsKCQkJdGlwID0gdGlwLnJlcGxhY2UodG9vbHRpcEFjY2Vzc0tleVJlZ2V4
cCwKCQkJCQkgICdbJyArIHRvb2x0aXBBY2Nlc3NLZXlQcmVmaXggKyAiJDVdIik7
CgkJCWVsZW1lbnQuc2V0QXR0cmlidXRlKCAndGl0bGUnLCB0aXAgKTsKCQl9Cgl9
Cn0KCi8qKgogKiBBZGQgYSBsaW5rIHRvIG9uZSBvZiB0aGUgcG9ydGxldCBtZW51
cyBvbiB0aGUgcGFnZSwgaW5jbHVkaW5nOgogKgogKiBwLWNhY3Rpb25zOiBDb250
ZW50IGFjdGlvbnMgKHNob3duIGFzIHRhYnMgYWJvdmUgdGhlIG1haW4gY29udGVu
dCBpbiBNb25vYm9vaykKICogcC1wZXJzb25hbDogUGVyc29uYWwgdG9vbHMgKHNo
b3duIGF0IHRoZSB0b3AgcmlnaHQgb2YgdGhlIHBhZ2UgaW4gTW9ub2Jvb2spCiAq
IHAtbmF2aWdhdGlvbjogTmF2aWdhdGlvbgogKiBwLXRiOiBUb29sYm94CiAqCiAq
IFRoaXMgZnVuY3Rpb24gZXhpc3RzIGZvciB0aGUgY29udmVuaWVuY2Ugb2YgY3Vz
dG9tIEpTIGF1dGhvcnMuICBBbGwKICogYnV0IHRoZSBmaXJzdCB0aHJlZSBwYXJh
bWV0ZXJzIGFyZSBvcHRpb25hbCwgdGhvdWdoIHByb3ZpZGluZyBhdAogKiBsZWFz
dCBhbiBpZCBhbmQgYSB0b29sdGlwIGlzIHJlY29tbWVuZGVkLgogKgogKiBCeSBk
ZWZhdWx0IHRoZSBuZXcgbGluayB3aWxsIGJlIGFkZGVkIHRvIHRoZSBlbmQgb2Yg
dGhlIGxpc3QuICBUbwogKiBhZGQgdGhlIGxpbmsgYmVmb3JlIGEgZ2l2ZW4gZXhp
c3RpbmcgaXRlbSwgcGFzcyB0aGUgRE9NIG5vZGUgb2YKICogdGhhdCBpdGVtIChl
YXNpbHkgb2J0YWluZWQgd2l0aCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgpKSBh
cyB0aGUKICogbmV4dG5vZGUgcGFyYW1ldGVyOyB0byBhZGQgdGhlIGxpbmsgX2Fm
dGVyXyBhbiBleGlzdGluZyBpdGVtLCBwYXNzCiAqIHRoZSBub2RlJ3MgbmV4dFNp
YmxpbmcgaW5zdGVhZC4KICoKICogQHBhcmFtIFN0cmluZyBwb3J0bGV0IC0tIGlk
IG9mIHRoZSB0YXJnZXQgcG9ydGxldCAoInAtY2FjdGlvbnMiLCAicC1wZXJzb25h
bCIsICJwLW5hdmlnYXRpb24iIG9yICJwLXRiIikKICogQHBhcmFtIFN0cmluZyBo
cmVmIC0tIGxpbmsgVVJMCiAqIEBwYXJhbSBTdHJpbmcgdGV4dCAtLSBsaW5rIHRl
eHQgKHdpbGwgYmUgYXV0b21hdGljYWxseSBsb3dlcmNhc2VkIGJ5IENTUyBmb3Ig
cC1jYWN0aW9ucyBpbiBNb25vYm9vaykKICogQHBhcmFtIFN0cmluZyBpZCAtLSBp
ZCBvZiB0aGUgbmV3IGl0ZW0sIHNob3VsZCBiZSB1bmlxdWUgYW5kIHByZWZlcmFi
bHkgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgcHJlZml4ICgiY2EtIiwgInB0LSIsICJu
LSIgb3IgInQtIikKICogQHBhcmFtIFN0cmluZyB0b29sdGlwIC0tIHRleHQgdG8g
c2hvdyB3aGVuIGhvdmVyaW5nIG92ZXIgdGhlIGxpbmssIHdpdGhvdXQgYWNjZXNz
a2V5IHN1ZmZpeAogKiBAcGFyYW0gU3RyaW5nIGFjY2Vzc2tleSAtLSBhY2Nlc3Nr
ZXkgdG8gYWN0aXZhdGUgdGhpcyBsaW5rIChvbmUgY2hhcmFjdGVyLCB0cnkgdG8g
YXZvaWQgY29uZmxpY3RzKQogKiBAcGFyYW0gTm9kZSBuZXh0bm9kZSAtLSB0aGUg
RE9NIG5vZGUgYmVmb3JlIHdoaWNoIHRoZSBuZXcgaXRlbSBzaG91bGQgYmUgYWRk
ZWQsIHNob3VsZCBiZSBhbm90aGVyIGl0ZW0gaW4gdGhlIHNhbWUgbGlzdAogKgog
KiBAcmV0dXJuIE5vZGUgLS0gdGhlIERPTSBub2RlIG9mIHRoZSBuZXcgaXRlbSAo
YW4gTEkgZWxlbWVudCkgb3IgbnVsbAogKi8KZnVuY3Rpb24gYWRkUG9ydGxldExp
bmsoIHBvcnRsZXQsIGhyZWYsIHRleHQsIGlkLCB0b29sdGlwLCBhY2Nlc3NrZXks
IG5leHRub2RlICkgewoJdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCggcG9ydGxldCApOwoJaWYgKCAhcm9vdCApIHsKCQlyZXR1cm4gbnVsbDsKCX0K
CXZhciBub2RlID0gcm9vdC5nZXRFbGVtZW50c0J5VGFnTmFtZSggJ3VsJyApWzBd
OwoJaWYgKCAhbm9kZSApIHsKCQlyZXR1cm4gbnVsbDsKCX0KCgkvLyB1bmhpZGUg
cG9ydGxldCBpZiBpdCB3YXMgaGlkZGVuIGJlZm9yZQoJcm9vdC5jbGFzc05hbWUg
PSByb290LmNsYXNzTmFtZS5yZXBsYWNlKCAvKF58ICllbXB0eVBvcnRsZXQoIHwk
KS8sICIkMiIgKTsKCgl2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ICdzcGFuJyApOwoJc3Bhbi5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIHRleHQgKSApOwoKCXZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCggJ2EnICk7CglsaW5rLmFwcGVuZENoaWxkKCBzcGFuICk7CglsaW5rLmhy
ZWYgPSBocmVmOwoKCXZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgg
J2xpJyApOwoJaXRlbS5hcHBlbmRDaGlsZCggbGluayApOwoJaWYgKCBpZCApIHsK
CQlpdGVtLmlkID0gaWQ7Cgl9CgoJaWYgKCBhY2Nlc3NrZXkgKSB7CgkJbGluay5z
ZXRBdHRyaWJ1dGUoICdhY2Nlc3NrZXknLCBhY2Nlc3NrZXkgKTsKCQl0b29sdGlw
ICs9ICcgWycgKyBhY2Nlc3NrZXkgKyAnXSc7Cgl9CglpZiAoIHRvb2x0aXAgKSB7
CgkJbGluay5zZXRBdHRyaWJ1dGUoICd0aXRsZScsIHRvb2x0aXAgKTsKCX0KCWlm
ICggYWNjZXNza2V5ICYmIHRvb2x0aXAgKSB7CgkJdXBkYXRlVG9vbHRpcEFjY2Vz
c0tleXMoIG5ldyBBcnJheSggbGluayApICk7Cgl9CgoJaWYgKCBuZXh0bm9kZSAm
JiBuZXh0bm9kZS5wYXJlbnROb2RlID09IG5vZGUgKSB7CgkJbm9kZS5pbnNlcnRC
ZWZvcmUoIGl0ZW0sIG5leHRub2RlICk7Cgl9IGVsc2UgewoJCW5vZGUuYXBwZW5k
Q2hpbGQoIGl0ZW0gKTsgIC8vIElFIGNvbXBhdGliaWxpdHkgKD8pCgl9CgoJcmV0
dXJuIGl0ZW07Cn0KCmZ1bmN0aW9uIGdldElubmVyVGV4dCggZWwgKSB7CglpZiAo
IHR5cGVvZiBlbCA9PSAnc3RyaW5nJyApIHsKCQlyZXR1cm4gZWw7Cgl9CglpZiAo
IHR5cGVvZiBlbCA9PSAndW5kZWZpbmVkJyApIHsKCQlyZXR1cm4gZWw7Cgl9Cglp
ZiAoIGVsLnRleHRDb250ZW50ICkgewoJCXJldHVybiBlbC50ZXh0Q29udGVudDsg
Ly8gbm90IG5lZWRlZCBidXQgaXQgaXMgZmFzdGVyCgl9CglpZiAoIGVsLmlubmVy
VGV4dCApIHsKCQlyZXR1cm4gZWwuaW5uZXJUZXh0OyAvLyBJRSBkb2Vzbid0IGhh
dmUgdGV4dENvbnRlbnQKCX0KCXZhciBzdHIgPSAnJzsKCgl2YXIgY3MgPSBlbC5j
aGlsZE5vZGVzOwoJdmFyIGwgPSBjcy5sZW5ndGg7Cglmb3IgKCB2YXIgaSA9IDA7
IGkgPCBsOyBpKysgKSB7CgkJc3dpdGNoICggY3NbaV0ubm9kZVR5cGUgKSB7CgkJ
CWNhc2UgMTogLy8gRUxFTUVOVF9OT0RFCgkJCQlzdHIgKz0gdHNfZ2V0SW5uZXJU
ZXh0KCBjc1tpXSApOwoJCQkJYnJlYWs7CgkJCWNhc2UgMzoJLy8gVEVYVF9OT0RF
CgkJCQlzdHIgKz0gY3NbaV0ubm9kZVZhbHVlOwoJCQkJYnJlYWs7CgkJfQoJfQoJ
cmV0dXJuIHN0cjsKfQoKLyogRHVtbXkgZm9yIGRlcHJlY2F0ZWQgZnVuY3Rpb24g
Ki8KZnVuY3Rpb24gYWtleXR0KCBkb0lkICkgewp9Cgp2YXIgY2hlY2tib3hlczsK
dmFyIGxhc3RDaGVja2JveDsKCmZ1bmN0aW9uIHNldHVwQ2hlY2tib3hTaGlmdENs
aWNrKCkgewoJY2hlY2tib3hlcyA9IFtdOwoJbGFzdENoZWNrYm94ID0gbnVsbDsK
CXZhciBpbnB1dHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSggJ2lu
cHV0JyApOwoJYWRkQ2hlY2tib3hDbGlja0hhbmRsZXJzKCBpbnB1dHMgKTsKfQoK
ZnVuY3Rpb24gYWRkQ2hlY2tib3hDbGlja0hhbmRsZXJzKCBpbnB1dHMsIHN0YXJ0
ICkgewoJaWYgKCAhc3RhcnQgKSB7CgkJc3RhcnQgPSAwOwoJfQoKCXZhciBmaW5p
c2ggPSBzdGFydCArIDI1MDsKCWlmICggZmluaXNoID4gaW5wdXRzLmxlbmd0aCAp
IHsKCQlmaW5pc2ggPSBpbnB1dHMubGVuZ3RoOwoJfQoKCWZvciAoIHZhciBpID0g
c3RhcnQ7IGkgPCBmaW5pc2g7IGkrKyApIHsKCQl2YXIgY2IgPSBpbnB1dHNbaV07
CgkJaWYgKCAhY2IudHlwZSB8fCBjYi50eXBlLnRvTG93ZXJDYXNlKCkgIT0gJ2No
ZWNrYm94JyB8fCAoICcgJyArIGNiLmNsYXNzTmFtZSArICcgJyApLmluZGV4T2Yo
ICcgbm9zaGlmdHNlbGVjdCAnICkgICE9IC0xICkgewoJCQljb250aW51ZTsKCQl9
CgkJdmFyIGVuZCA9IGNoZWNrYm94ZXMubGVuZ3RoOwoJCWNoZWNrYm94ZXNbZW5k
XSA9IGNiOwoJCWNiLmluZGV4ID0gZW5kOwoJCWNiLm9uY2xpY2sgPSBjaGVja2Jv
eENsaWNrSGFuZGxlcjsKCX0KCglpZiAoIGZpbmlzaCA8IGlucHV0cy5sZW5ndGgg
KSB7CgkJc2V0VGltZW91dCggZnVuY3Rpb24oKSB7CgkJCWFkZENoZWNrYm94Q2xp
Y2tIYW5kbGVycyggaW5wdXRzLCBmaW5pc2ggKTsKCQl9LCAyMDAgKTsKCX0KfQoK
ZnVuY3Rpb24gY2hlY2tib3hDbGlja0hhbmRsZXIoIGUgKSB7CglpZiAoIHR5cGVv
ZiBlID09ICd1bmRlZmluZWQnICkgewoJCWUgPSB3aW5kb3cuZXZlbnQ7Cgl9Cglp
ZiAoICFlLnNoaWZ0S2V5IHx8IGxhc3RDaGVja2JveCA9PT0gbnVsbCApIHsKCQls
YXN0Q2hlY2tib3ggPSB0aGlzLmluZGV4OwoJCXJldHVybiB0cnVlOwoJfQoJdmFy
IGVuZFN0YXRlID0gdGhpcy5jaGVja2VkOwoJdmFyIHN0YXJ0LCBmaW5pc2g7Cglp
ZiAoIHRoaXMuaW5kZXggPCBsYXN0Q2hlY2tib3ggKSB7CgkJc3RhcnQgPSB0aGlz
LmluZGV4ICsgMTsKCQlmaW5pc2ggPSBsYXN0Q2hlY2tib3g7Cgl9IGVsc2UgewoJ
CXN0YXJ0ID0gbGFzdENoZWNrYm94OwoJCWZpbmlzaCA9IHRoaXMuaW5kZXggLSAx
OwoJfQoJZm9yICggdmFyIGkgPSBzdGFydDsgaSA8PSBmaW5pc2g7ICsraSApIHsK
CQljaGVja2JveGVzW2ldLmNoZWNrZWQgPSBlbmRTdGF0ZTsKCQlpZiggaSA+IHN0
YXJ0ICYmIHR5cGVvZiBjaGVja2JveGVzW2ldLm9uY2hhbmdlID09ICdmdW5jdGlv
bicgKSB7CgkJCWNoZWNrYm94ZXNbaV0ub25jaGFuZ2UoKTsgLy8gZmlyZSB0cmln
Z2VycwoJCX0KCX0KCWxhc3RDaGVja2JveCA9IHRoaXMuaW5kZXg7CglyZXR1cm4g
dHJ1ZTsKfQoKCi8qCglXcml0dGVuIGJ5IEpvbmF0aGFuIFNub29rLCBodHRwOi8v
d3d3LnNub29rLmNhL2pvbmF0aGFuCglBZGQtb25zIGJ5IFJvYmVydCBOeW1hbiwg
aHR0cDovL3d3dy5yb2JlcnRueW1hbi5jb20KCUF1dGhvciBzYXlzICJUaGUgY3Jl
ZGl0IGNvbW1lbnQgaXMgYWxsIGl0IHRha2VzLCBubyBsaWNlbnNlLiBHbyBjcmF6
eSB3aXRoIGl0ITotKSIKCUZyb20gaHR0cDovL3d3dy5yb2JlcnRueW1hbi5jb20v
MjAwNS8xMS8wNy90aGUtdWx0aW1hdGUtZ2V0ZWxlbWVudHNieWNsYXNzbmFtZS8K
Ki8KZnVuY3Rpb24gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggb0VsbSwgc3RyVGFn
TmFtZSwgb0NsYXNzTmFtZXMgKSB7Cgl2YXIgYXJyUmV0dXJuRWxlbWVudHMgPSBu
ZXcgQXJyYXkoKTsKCWlmICggdHlwZW9mKCBvRWxtLmdldEVsZW1lbnRzQnlDbGFz
c05hbWUgKSA9PSAnZnVuY3Rpb24nICkgewoJCS8qIFVzZSBhIG5hdGl2ZSBpbXBs
ZW1lbnRhdGlvbiB3aGVyZSBwb3NzaWJsZSBGRjMsIFNhZjMuMiwgT3BlcmEgOS41
ICovCgkJdmFyIGFyck5hdGl2ZVJldHVybiA9IG9FbG0uZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZSggb0NsYXNzTmFtZXMgKTsKCQlpZiAoIHN0clRhZ05hbWUgPT0gJyon
ICkgewoJCQlyZXR1cm4gYXJyTmF0aXZlUmV0dXJuOwoJCX0KCQlmb3IgKCB2YXIg
aCA9IDA7IGggPCBhcnJOYXRpdmVSZXR1cm4ubGVuZ3RoOyBoKysgKSB7CgkJCWlm
KCBhcnJOYXRpdmVSZXR1cm5baF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpID09IHN0
clRhZ05hbWUudG9Mb3dlckNhc2UoKSApIHsKCQkJCWFyclJldHVybkVsZW1lbnRz
W2FyclJldHVybkVsZW1lbnRzLmxlbmd0aF0gPSBhcnJOYXRpdmVSZXR1cm5baF07
CgkJCX0KCQl9CgkJcmV0dXJuIGFyclJldHVybkVsZW1lbnRzOwoJfQoJdmFyIGFy
ckVsZW1lbnRzID0gKCBzdHJUYWdOYW1lID09ICcqJyAmJiBvRWxtLmFsbCApID8g
b0VsbS5hbGwgOiBvRWxtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCBzdHJUYWdOYW1l
ICk7Cgl2YXIgYXJyUmVnRXhwQ2xhc3NOYW1lcyA9IG5ldyBBcnJheSgpOwoJaWYo
IHR5cGVvZiBvQ2xhc3NOYW1lcyA9PSAnb2JqZWN0JyApIHsKCQlmb3IoIHZhciBp
ID0gMDsgaSA8IG9DbGFzc05hbWVzLmxlbmd0aDsgaSsrICkgewoJCQlhcnJSZWdF
eHBDbGFzc05hbWVzW2FyclJlZ0V4cENsYXNzTmFtZXMubGVuZ3RoXSA9CgkJCQlu
ZXcgUmVnRXhwKCIoXnxcXHMpIiArIG9DbGFzc05hbWVzW2ldLnJlcGxhY2UoL1wt
L2csICJcXC0iKSArICIoXFxzfCQpIik7CgkJfQoJfSBlbHNlIHsKCQlhcnJSZWdF
eHBDbGFzc05hbWVzW2FyclJlZ0V4cENsYXNzTmFtZXMubGVuZ3RoXSA9CgkJCW5l
dyBSZWdFeHAoIihefFxccykiICsgb0NsYXNzTmFtZXMucmVwbGFjZSgvXC0vZywg
IlxcLSIpICsgIihcXHN8JCkiKTsKCX0KCXZhciBvRWxlbWVudDsKCXZhciBiTWF0
Y2hlc0FsbDsKCWZvciggdmFyIGogPSAwOyBqIDwgYXJyRWxlbWVudHMubGVuZ3Ro
OyBqKysgKSB7CgkJb0VsZW1lbnQgPSBhcnJFbGVtZW50c1tqXTsKCQliTWF0Y2hl
c0FsbCA9IHRydWU7CgkJZm9yKCB2YXIgayA9IDA7IGsgPCBhcnJSZWdFeHBDbGFz
c05hbWVzLmxlbmd0aDsgaysrICkgewoJCQlpZiggIWFyclJlZ0V4cENsYXNzTmFt
ZXNba10udGVzdCggb0VsZW1lbnQuY2xhc3NOYW1lICkgKSB7CgkJCQliTWF0Y2hl
c0FsbCA9IGZhbHNlOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgkJaWYoIGJNYXRjaGVz
QWxsICkgewoJCQlhcnJSZXR1cm5FbGVtZW50c1thcnJSZXR1cm5FbGVtZW50cy5s
ZW5ndGhdID0gb0VsZW1lbnQ7CgkJfQoJfQoJcmV0dXJuICggYXJyUmV0dXJuRWxl
bWVudHMgKTsKfQoKZnVuY3Rpb24gcmVkaXJlY3RUb0ZyYWdtZW50KCBmcmFnbWVu
dCApIHsKCXZhciBtYXRjaCA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0Fw
cGxlV2ViS2l0XC8oXGQrKS8pOwoJaWYgKCBtYXRjaCApIHsKCQl2YXIgd2ViS2l0
VmVyc2lvbiA9IHBhcnNlSW50KCBtYXRjaFsxXSApOwoJCWlmICggd2ViS2l0VmVy
c2lvbiA8IDQyMCApIHsKCQkJLy8gUmVsZWFzZWQgU2FmYXJpIHcvIFdlYktpdCA0
MTguOS4xIG1lc3NlcyB1cCBob3JyaWJseQoJCQkvLyBOaWdodGxpZXMgb2YgNDIw
KyBhcmUgb2sKCQkJcmV0dXJuOwoJCX0KCX0KCWlmICggaXNfZ2Vja28gKSB7CgkJ
Ly8gTW96aWxsYSBuZWVkcyB0byB3YWl0IHVudGlsIGFmdGVyIGxvYWQsIG90aGVy
d2lzZSB0aGUgd2luZG93IGRvZXNuJ3Qgc2Nyb2xsCgkJYWRkT25sb2FkSG9vayhm
dW5jdGlvbigpIHsKCQkJaWYgKCB3aW5kb3cubG9jYXRpb24uaGFzaCA9PSAnJyAp
IHsKCQkJCXdpbmRvdy5sb2NhdGlvbi5oYXNoID0gZnJhZ21lbnQ7CgkJCX0KCQl9
KTsKCX0gZWxzZSB7CgkJaWYgKCB3aW5kb3cubG9jYXRpb24uaGFzaCA9PSAnJyAp
IHsKCQkJd2luZG93LmxvY2F0aW9uLmhhc2ggPSBmcmFnbWVudDsKCQl9Cgl9Cn0K
Ci8qCiAqIFRhYmxlIHNvcnRpbmcgc2NyaXB0IGJhc2VkIG9uIG9uZSAoYykgMTk5
Ny0yMDA2IFN0dWFydCBMYW5ncmlkZ2UgYW5kIEpvb3N0CiAqIGRlIFZhbGs6CiAq
IGh0dHA6Ly93d3cuam9vc3RkZXZhbGsubmwvY29kZS9zb3J0YWJsZS10YWJsZS8K
ICogaHR0cDovL3d3dy5rcnlvZ2VuaXgub3JnL2NvZGUvYnJvd3Nlci9zb3J0dGFi
bGUvCiAqCiAqIEB0b2RvIGRvbid0IGJyZWFrIG9uIGNvbHNwYW5zL3Jvd3NwYW5z
IChidWcgODAyOCkKICogQHRvZG8gbGFuZ3VhZ2Utc3BlY2lmaWMgZGlnaXQgZ3Jv
dXBpbmcvZGVjaW1hbHMgKGJ1ZyA4MDYzKQogKiBAdG9kbyBzdXBwb3J0IGFsbCBh
Y2NlcHRlZCBkYXRlIGZvcm1hdHMgKGJ1ZyA4MjI2KQogKi8KCnZhciB0c19pbWFn
ZV9wYXRoID0gc3R5bGVwYXRoICsgJy9jb21tb24vaW1hZ2VzLyc7CnZhciB0c19p
bWFnZV91cCA9ICdzb3J0X3VwLmdpZic7CnZhciB0c19pbWFnZV9kb3duID0gJ3Nv
cnRfZG93bi5naWYnOwp2YXIgdHNfaW1hZ2Vfbm9uZSA9ICdzb3J0X25vbmUuZ2lm
JzsKdmFyIHRzX2V1cm9wZWFuZGF0ZSA9IHdnQ29udGVudExhbmd1YWdlICE9ICdl
bic7IC8vIFRoZSBub24tQW1lcmljYW4taW5jbGluZWQgY2FuIGNoYW5nZSB0byAi
dHJ1ZSIKdmFyIHRzX2FsdGVybmF0ZV9yb3dfY29sb3JzID0gZmFsc2U7CnZhciB0
c19udW1iZXJfdHJhbnNmb3JtX3RhYmxlID0gbnVsbDsKdmFyIHRzX251bWJlcl9y
ZWdleCA9IG51bGw7CgpmdW5jdGlvbiBzb3J0YWJsZXNfaW5pdCgpIHsKCXZhciBp
ZG51bSA9IDA7CgkvLyBGaW5kIGFsbCB0YWJsZXMgd2l0aCBjbGFzcyBzb3J0YWJs
ZSBhbmQgbWFrZSB0aGVtIHNvcnRhYmxlCgl2YXIgdGFibGVzID0gZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSggZG9jdW1lbnQsICd0YWJsZScsICdzb3J0YWJsZScgKTsK
CWZvciAoIHZhciB0aSA9IDA7IHRpIDwgdGFibGVzLmxlbmd0aCA7IHRpKysgKSB7
CgkJaWYgKCAhdGFibGVzW3RpXS5pZCApIHsKCQkJdGFibGVzW3RpXS5zZXRBdHRy
aWJ1dGUoICdpZCcsICdzb3J0YWJsZV90YWJsZV9pZF8nICsgaWRudW0gKTsKCQkJ
KytpZG51bTsKCQl9CgkJdHNfbWFrZVNvcnRhYmxlKCB0YWJsZXNbdGldICk7Cgl9
Cn0KCmZ1bmN0aW9uIHRzX21ha2VTb3J0YWJsZSggdGFibGUgKSB7Cgl2YXIgZmly
c3RSb3c7CglpZiAoIHRhYmxlLnJvd3MgJiYgdGFibGUucm93cy5sZW5ndGggPiAw
ICkgewoJCWlmICggdGFibGUudEhlYWQgJiYgdGFibGUudEhlYWQucm93cy5sZW5n
dGggPiAwICkgewoJCQlmaXJzdFJvdyA9IHRhYmxlLnRIZWFkLnJvd3NbdGFibGUu
dEhlYWQucm93cy5sZW5ndGgtMV07CgkJfSBlbHNlIHsKCQkJZmlyc3RSb3cgPSB0
YWJsZS5yb3dzWzBdOwoJCX0KCX0KCWlmICggIWZpcnN0Um93ICkgewoJCXJldHVy
bjsKCX0KCgkvLyBXZSBoYXZlIGEgZmlyc3Qgcm93OiBhc3N1bWUgaXQncyB0aGUg
aGVhZGVyLCBhbmQgbWFrZSBpdHMgY29udGVudHMgY2xpY2thYmxlIGxpbmtzCglm
b3IgKCB2YXIgaSA9IDA7IGkgPCBmaXJzdFJvdy5jZWxscy5sZW5ndGg7IGkrKyAp
IHsKCQl2YXIgY2VsbCA9IGZpcnN0Um93LmNlbGxzW2ldOwoJCWlmICggKCcgJyAr
IGNlbGwuY2xhc3NOYW1lICsgJyAnKS5pbmRleE9mKCcgdW5zb3J0YWJsZSAnKSA9
PSAtMSApIHsKCQkJY2VsbC5pbm5lckhUTUwgKz0gJzxhIGhyZWY9IiMiIGNsYXNz
PSJzb3J0aGVhZGVyIiAnCgkJCQkrICdvbmNsaWNrPSJ0c19yZXNvcnRUYWJsZSh0
aGlzKTtyZXR1cm4gZmFsc2U7Ij4nCgkJCQkrICc8c3BhbiBjbGFzcz0ic29ydGFy
cm93Ij4nCgkJCQkrICc8aW1nIHNyYz0iJwoJCQkJKyB0c19pbWFnZV9wYXRoCgkJ
CQkrIHRzX2ltYWdlX25vbmUKCQkJCSsgJyIgYWx0PSImZGFycjsiLz48L3NwYW4+
PC9hPic7CgkJfQoJfQoJaWYgKCB0c19hbHRlcm5hdGVfcm93X2NvbG9ycyApIHsK
CQl0c19hbHRlcm5hdGUoIHRhYmxlICk7Cgl9Cn0KCmZ1bmN0aW9uIHRzX2dldElu
bmVyVGV4dCggZWwgKSB7CglyZXR1cm4gZ2V0SW5uZXJUZXh0KCBlbCApOwp9Cgpm
dW5jdGlvbiB0c19yZXNvcnRUYWJsZSggbG5rICkgewoJLy8gZ2V0IHRoZSBzcGFu
Cgl2YXIgc3BhbiA9IGxuay5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3BhbicpWzBd
OwoKCXZhciB0ZCA9IGxuay5wYXJlbnROb2RlOwoJdmFyIHRyID0gdGQucGFyZW50
Tm9kZTsKCXZhciBjb2x1bW4gPSB0ZC5jZWxsSW5kZXg7CgoJdmFyIHRhYmxlID0g
dHIucGFyZW50Tm9kZTsKCXdoaWxlICggdGFibGUgJiYgISggdGFibGUudGFnTmFt
ZSAmJiB0YWJsZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ3RhYmxlJyApICkg
ewoJCXRhYmxlID0gdGFibGUucGFyZW50Tm9kZTsKCX0KCWlmICggIXRhYmxlICkg
ewoJCXJldHVybjsKCX0KCglpZiAoIHRhYmxlLnJvd3MubGVuZ3RoIDw9IDEgKSB7
CgkJcmV0dXJuOwoJfQoKCS8vIEdlbmVyYXRlIHRoZSBudW1iZXIgdHJhbnNmb3Jt
IHRhYmxlIGlmIGl0J3Mgbm90IGRvbmUgYWxyZWFkeQoJaWYgKCB0c19udW1iZXJf
dHJhbnNmb3JtX3RhYmxlID09PSBudWxsICkgewoJCXRzX2luaXRUcmFuc2Zvcm1U
YWJsZSgpOwoJfQoKCS8vIFdvcmsgb3V0IGEgdHlwZSBmb3IgdGhlIGNvbHVtbgoJ
Ly8gU2tpcCB0aGUgZmlyc3Qgcm93IGlmIHRoYXQncyB3aGVyZSB0aGUgaGVhZGlu
Z3MgYXJlCgl2YXIgcm93U3RhcnQgPSAoIHRhYmxlLnRIZWFkICYmIHRhYmxlLnRI
ZWFkLnJvd3MubGVuZ3RoID4gMCA/IDAgOiAxICk7CgoJdmFyIGl0bSA9ICcnOwoJ
Zm9yICggdmFyIGkgPSByb3dTdGFydDsgaSA8IHRhYmxlLnJvd3MubGVuZ3RoOyBp
KysgKSB7CgkJaWYgKCB0YWJsZS5yb3dzW2ldLmNlbGxzLmxlbmd0aCA+IGNvbHVt
biApIHsKCQkJaXRtID0gdHNfZ2V0SW5uZXJUZXh0KHRhYmxlLnJvd3NbaV0uY2Vs
bHNbY29sdW1uXSk7CgkJCWl0bSA9IGl0bS5yZXBsYWNlKC9eW1xzXHhhMF0rLywg
JycpLnJlcGxhY2UoL1tcc1x4YTBdKyQvLCAnJyk7CgkJCWlmICggaXRtICE9ICcn
ICkgewoJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9CgoJLy8gVE9ETzogYnVnIDgyMjYs
IGxvY2FsaXNlZCBkYXRlIGZvcm1hdHMKCXZhciBzb3J0Zm4gPSB0c19zb3J0X2dl
bmVyaWM7Cgl2YXIgcHJlcHJvY2Vzc29yID0gdHNfdG9Mb3dlckNhc2U7CglpZiAo
IC9eXGRcZFtcLy4gLV1bYS16QS1aXXszfVtcLy4gLV1cZFxkXGRcZCQvLnRlc3Qo
IGl0bSApICkgewoJCXByZXByb2Nlc3NvciA9IHRzX2RhdGVUb1NvcnRLZXk7Cgl9
IGVsc2UgaWYgKCAvXlxkXGRbXC8uLV1cZFxkW1wvLi1dXGRcZFxkXGQkLy50ZXN0
KCBpdG0gKSApIHsKCQlwcmVwcm9jZXNzb3IgPSB0c19kYXRlVG9Tb3J0S2V5OwoJ
fSBlbHNlIGlmICggL15cZFxkW1wvLi1dXGRcZFtcLy4tXVxkXGQkLy50ZXN0KCBp
dG0gKSApIHsKCQlwcmVwcm9jZXNzb3IgPSB0c19kYXRlVG9Tb3J0S2V5OwoJCS8v
IChtaW51cyBzaWduKShbcG91bmQgZG9sbGFyIGV1cm8geWVuIGN1cnJlbmN5XXxj
ZW50cykKCX0gZWxzZSBpZiAoIC8oXihbLVx1MjIxMl0gKik/W1x1MDBhMyRcdTIw
YWNcdTAwYTRcdTAwYTVdfFx1MDBhMiQpLy50ZXN0KCBpdG0gKSApIHsKCQlwcmVw
cm9jZXNzb3IgPSB0c19jdXJyZW5jeVRvU29ydEtleTsKCX0gZWxzZSBpZiAoIHRz
X251bWJlcl9yZWdleC50ZXN0KCBpdG0gKSApIHsKCQlwcmVwcm9jZXNzb3IgPSB0
c19wYXJzZUZsb2F0OwoJfQoKCXZhciByZXZlcnNlID0gKCBzcGFuLmdldEF0dHJp
YnV0ZSggJ3NvcnRkaXInICkgPT0gJ2Rvd24nICk7CgoJdmFyIG5ld1Jvd3MgPSBu
ZXcgQXJyYXkoKTsKCXZhciBzdGF0aWNSb3dzID0gbmV3IEFycmF5KCk7Cglmb3Ig
KCB2YXIgaiA9IHJvd1N0YXJ0OyBqIDwgdGFibGUucm93cy5sZW5ndGg7IGorKyAp
IHsKCQl2YXIgcm93ID0gdGFibGUucm93c1tqXTsKCQlpZiggKCcgJyArIHJvdy5j
bGFzc05hbWUgKyAnICcpLmluZGV4T2YoJyB1bnNvcnRhYmxlICcpIDwgMCApIHsK
CQkJdmFyIGtleVRleHQgPSB0c19nZXRJbm5lclRleHQoIHJvdy5jZWxsc1tjb2x1
bW5dICk7CgkJCWlmKCBrZXlUZXh0ID09PSB1bmRlZmluZWQgKSB7CgkJCQlrZXlU
ZXh0ID0gJyc7IAoJCQl9CgkJCXZhciBvbGRJbmRleCA9ICggcmV2ZXJzZSA/IC1q
IDogaiApOwoJCQl2YXIgcHJlcHJvY2Vzc2VkID0gcHJlcHJvY2Vzc29yKCBrZXlU
ZXh0LnJlcGxhY2UoL15bXHNceGEwXSsvLCAnJykucmVwbGFjZSgvW1xzXHhhMF0r
JC8sICcnKSApOwoKCQkJbmV3Um93c1tuZXdSb3dzLmxlbmd0aF0gPSBuZXcgQXJy
YXkoIHJvdywgcHJlcHJvY2Vzc2VkLCBvbGRJbmRleCApOwoJCX0gZWxzZSB7CgkJ
CXN0YXRpY1Jvd3Nbc3RhdGljUm93cy5sZW5ndGhdID0gbmV3IEFycmF5KCByb3cs
IGZhbHNlLCBqLXJvd1N0YXJ0ICk7CgkJfQoJfQoKCW5ld1Jvd3Muc29ydCggc29y
dGZuICk7CgoJdmFyIGFycm93SFRNTDsKCWlmICggcmV2ZXJzZSApIHsKCQlhcnJv
d0hUTUwgPSAnPGltZyBzcmM9IicgKyB0c19pbWFnZV9wYXRoICsgdHNfaW1hZ2Vf
ZG93biArICciIGFsdD0iJmRhcnI7Ii8+JzsKCQluZXdSb3dzLnJldmVyc2UoKTsK
CQlzcGFuLnNldEF0dHJpYnV0ZSggJ3NvcnRkaXInLCAndXAnICk7Cgl9IGVsc2Ug
ewoJCWFycm93SFRNTCA9ICc8aW1nIHNyYz0iJyArIHRzX2ltYWdlX3BhdGggKyB0
c19pbWFnZV91cCArICciIGFsdD0iJnVhcnI7Ii8+JzsKCQlzcGFuLnNldEF0dHJp
YnV0ZSggJ3NvcnRkaXInLCAnZG93bicgKTsKCX0KCglmb3IgKCB2YXIgaSA9IDA7
IGkgPCBzdGF0aWNSb3dzLmxlbmd0aDsgaSsrICkgewoJCXZhciByb3cgPSBzdGF0
aWNSb3dzW2ldOwoJCW5ld1Jvd3Muc3BsaWNlKCByb3dbMl0sIDAsIHJvdyApOwoJ
fQoKCS8vIFdlIGFwcGVuZENoaWxkIHJvd3MgdGhhdCBhbHJlYWR5IGV4aXN0IHRv
IHRoZSB0Ym9keSwgc28gaXQgbW92ZXMgdGhlbSByYXRoZXIgdGhhbiBjcmVhdGlu
ZyBuZXcgb25lcwoJLy8gZG9uJ3QgZG8gc29ydGJvdHRvbSByb3dzCglmb3IgKCB2
YXIgaSA9IDA7IGkgPCBuZXdSb3dzLmxlbmd0aDsgaSsrICkgewoJCWlmICggKCAn
ICcgKyBuZXdSb3dzW2ldWzBdLmNsYXNzTmFtZSArICcgJykuaW5kZXhPZignIHNv
cnRib3R0b20gJykgPT0gLTEgKSB7CgkJCXRhYmxlLnRCb2RpZXNbMF0uYXBwZW5k
Q2hpbGQoIG5ld1Jvd3NbaV1bMF0gKTsKCQl9Cgl9CgkvLyBkbyBzb3J0Ym90dG9t
IHJvd3Mgb25seQoJZm9yICggdmFyIGkgPSAwOyBpIDwgbmV3Um93cy5sZW5ndGg7
IGkrKyApIHsKCQlpZiAoICggJyAnICsgbmV3Um93c1tpXVswXS5jbGFzc05hbWUg
KyAnICcpLmluZGV4T2YoJyBzb3J0Ym90dG9tICcpICE9IC0xICkgewoJCQl0YWJs
ZS50Qm9kaWVzWzBdLmFwcGVuZENoaWxkKCBuZXdSb3dzW2ldWzBdICk7CgkJfQoJ
fQoKCS8vIERlbGV0ZSBhbnkgb3RoZXIgYXJyb3dzIHRoZXJlIG1heSBiZSBzaG93
aW5nCgl2YXIgc3BhbnMgPSBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCB0ciwgJ3Nw
YW4nLCAnc29ydGFycm93JyApOwoJZm9yICggdmFyIGkgPSAwOyBpIDwgc3BhbnMu
bGVuZ3RoOyBpKysgKSB7CgkJc3BhbnNbaV0uaW5uZXJIVE1MID0gJzxpbWcgc3Jj
PSInICsgdHNfaW1hZ2VfcGF0aCArIHRzX2ltYWdlX25vbmUgKyAnIiBhbHQ9IiZk
YXJyOyIvPic7Cgl9CglzcGFuLmlubmVySFRNTCA9IGFycm93SFRNTDsKCglpZiAo
IHRzX2FsdGVybmF0ZV9yb3dfY29sb3JzICkgewoJCXRzX2FsdGVybmF0ZSggdGFi
bGUgKTsKCX0KfQoKZnVuY3Rpb24gdHNfaW5pdFRyYW5zZm9ybVRhYmxlKCkgewoJ
aWYgKCB0eXBlb2Ygd2dTZXBhcmF0b3JUcmFuc2Zvcm1UYWJsZSA9PSAndW5kZWZp
bmVkJwoJCQl8fCAoIHdnU2VwYXJhdG9yVHJhbnNmb3JtVGFibGVbMF0gPT0gJycg
JiYgd2dEaWdpdFRyYW5zZm9ybVRhYmxlWzJdID09ICcnICkgKQoJewoJCWRpZ2l0
Q2xhc3MgPSAiWzAtOSwuXSI7CgkJdHNfbnVtYmVyX3RyYW5zZm9ybV90YWJsZSA9
IGZhbHNlOwoJfSBlbHNlIHsKCQl0c19udW1iZXJfdHJhbnNmb3JtX3RhYmxlID0g
e307CgkJLy8gVW5wYWNrIHRoZSB0cmFuc2Zvcm0gdGFibGUKCQkvLyBTZXBhcmF0
b3JzCgkJYXNjaWkgPSB3Z1NlcGFyYXRvclRyYW5zZm9ybVRhYmxlWzBdLnNwbGl0
KCJcdCIpOwoJCWxvY2FsaXNlZCA9IHdnU2VwYXJhdG9yVHJhbnNmb3JtVGFibGVb
MV0uc3BsaXQoIlx0Iik7CgkJZm9yICggdmFyIGkgPSAwOyBpIDwgYXNjaWkubGVu
Z3RoOyBpKysgKSB7CgkJCXRzX251bWJlcl90cmFuc2Zvcm1fdGFibGVbbG9jYWxp
c2VkW2ldXSA9IGFzY2lpW2ldOwoJCX0KCQkvLyBEaWdpdHMKCQlhc2NpaSA9IHdn
RGlnaXRUcmFuc2Zvcm1UYWJsZVswXS5zcGxpdCgiXHQiKTsKCQlsb2NhbGlzZWQg
PSB3Z0RpZ2l0VHJhbnNmb3JtVGFibGVbMV0uc3BsaXQoIlx0Iik7CgkJZm9yICgg
dmFyIGkgPSAwOyBpIDwgYXNjaWkubGVuZ3RoOyBpKysgKSB7CgkJCXRzX251bWJl
cl90cmFuc2Zvcm1fdGFibGVbbG9jYWxpc2VkW2ldXSA9IGFzY2lpW2ldOwoJCX0K
CgkJLy8gQ29uc3RydWN0IHJlZ2V4IGZvciBudW1iZXIgaWRlbnRpZmljYXRpb24K
CQlkaWdpdHMgPSBbJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAn
NycsICc4JywgJzknLCAnLCcsICdcXC4nXTsKCQltYXhEaWdpdExlbmd0aCA9IDE7
CgkJZm9yICggdmFyIGRpZ2l0IGluIHRzX251bWJlcl90cmFuc2Zvcm1fdGFibGUg
KSB7CgkJCS8vIEVzY2FwZSByZWdleCBtZXRhY2hhcmFjdGVycwoJCQlkaWdpdHMu
cHVzaCgKCQkJCWRpZ2l0LnJlcGxhY2UoIC9bXFxcXCRcKlwrXD9cLlwoXClcfFx7
XH1cW1xdXC1dLywKCQkJCQlmdW5jdGlvbiggcyApIHsgcmV0dXJuICdcXCcgKyBz
OyB9ICkKCQkJKTsKCQkJaWYgKCBkaWdpdC5sZW5ndGggPiBtYXhEaWdpdExlbmd0
aCApIHsKCQkJCW1heERpZ2l0TGVuZ3RoID0gZGlnaXQubGVuZ3RoOwoJCQl9CgkJ
fQoJCWlmICggbWF4RGlnaXRMZW5ndGggPiAxICkgewoJCQlkaWdpdENsYXNzID0g
J1snICsgZGlnaXRzLmpvaW4oICcnLCBkaWdpdHMgKSArICddJzsKCQl9IGVsc2Ug
ewoJCQlkaWdpdENsYXNzID0gJygnICsgZGlnaXRzLmpvaW4oICd8JywgZGlnaXRz
ICkgKyAnKSc7CgkJfQoJfQoKCS8vIFdlIGFsbG93IGEgdHJhaWxpbmcgcGVyY2Vu
dCBzaWduLCB3aGljaCB3ZSBqdXN0IHN0cmlwLiAgVGhpcyB3b3JrcyBmaW5lCgkv
LyBpZiBwZXJjZW50cyBhbmQgcmVndWxhciBudW1iZXJzIGFyZW4ndCBiZWluZyBt
aXhlZC4KCXRzX251bWJlcl9yZWdleCA9IG5ldyBSZWdFeHAoCgkJIl4oIiArCgkJ
CSJbLStcdTIyMTJdP1swLTldWzAtOSxdKihcXC5bMC05LF0qKT8oRVstK1x1MjIx
Ml0/WzAtOV1bMC05LF0qKT8iICsgLy8gRm9ydHJhbi1zdHlsZSBzY2llbnRpZmlj
CgkJCSJ8IiArCgkJCSJbLStcdTIyMTJdPyIgKyBkaWdpdENsYXNzICsgIislPyIg
KyAvLyBHZW5lcmljIGxvY2FsaXNlZAoJCSIpJCIsICJpIgoJKTsKfQoKZnVuY3Rp
b24gdHNfdG9Mb3dlckNhc2UoIHMgKSB7CglyZXR1cm4gcy50b0xvd2VyQ2FzZSgp
Owp9CgpmdW5jdGlvbiB0c19kYXRlVG9Tb3J0S2V5KCBkYXRlICkgewoJLy8geTJr
IG5vdGVzOiB0d28gZGlnaXQgeWVhcnMgbGVzcyB0aGFuIDUwIGFyZSB0cmVhdGVk
IGFzIDIwWFgsIGdyZWF0ZXIgdGhhbiA1MCBhcmUgdHJlYXRlZCBhcyAxOVhYCglp
ZiAoIGRhdGUubGVuZ3RoID09IDExICkgewoJCXN3aXRjaCAoIGRhdGUuc3Vic3Ry
KCAzLCAzICkudG9Mb3dlckNhc2UoKSApIHsKCQkJY2FzZSAnamFuJzoKCQkJCXZh
ciBtb250aCA9ICcwMSc7CgkJCQlicmVhazsKCQkJY2FzZSAnZmViJzoKCQkJCXZh
ciBtb250aCA9ICcwMic7CgkJCQlicmVhazsKCQkJY2FzZSAnbWFyJzoKCQkJCXZh
ciBtb250aCA9ICcwMyc7CgkJCQlicmVhazsKCQkJY2FzZSAnYXByJzoKCQkJCXZh
ciBtb250aCA9ICcwNCc7CgkJCQlicmVhazsKCQkJY2FzZSAnbWF5JzoKCQkJCXZh
ciBtb250aCA9ICcwNSc7CgkJCQlicmVhazsKCQkJY2FzZSAnanVuJzoKCQkJCXZh
ciBtb250aCA9ICcwNic7CgkJCQlicmVhazsKCQkJY2FzZSAnanVsJzoKCQkJCXZh
ciBtb250aCA9ICcwNyc7CgkJCQlicmVhazsKCQkJY2FzZSAnYXVnJzoKCQkJCXZh
ciBtb250aCA9ICcwOCc7CgkJCQlicmVhazsKCQkJY2FzZSAnc2VwJzoKCQkJCXZh
ciBtb250aCA9ICcwOSc7CgkJCQlicmVhazsKCQkJY2FzZSAnb2N0JzoKCQkJCXZh
ciBtb250aCA9ICcxMCc7CgkJCQlicmVhazsKCQkJY2FzZSAnbm92JzoKCQkJCXZh
ciBtb250aCA9ICcxMSc7CgkJCQlicmVhazsKCQkJY2FzZSAnZGVjJzoKCQkJCXZh
ciBtb250aCA9ICcxMic7CgkJCQlicmVhazsKCQkJLy8gZGVmYXVsdDogdmFyIG1v
bnRoID0gJzAwJzsKCQl9CgkJcmV0dXJuIGRhdGUuc3Vic3RyKCA3LCA0ICkgKyBt
b250aCArIGRhdGUuc3Vic3RyKCAwLCAyICk7Cgl9IGVsc2UgaWYgKCBkYXRlLmxl
bmd0aCA9PSAxMCApIHsKCQlpZiAoIHRzX2V1cm9wZWFuZGF0ZSA9PSBmYWxzZSAp
IHsKCQkJcmV0dXJuIGRhdGUuc3Vic3RyKCA2LCA0ICkgKyBkYXRlLnN1YnN0cigg
MCwgMiApICsgZGF0ZS5zdWJzdHIoIDMsIDIgKTsKCQl9IGVsc2UgewoJCQlyZXR1
cm4gZGF0ZS5zdWJzdHIoIDYsIDQgKSArIGRhdGUuc3Vic3RyKCAzLCAyICkgKyBk
YXRlLnN1YnN0ciggMCwgMiApOwoJCX0KCX0gZWxzZSBpZiAoIGRhdGUubGVuZ3Ro
ID09IDggKSB7CgkJeXIgPSBkYXRlLnN1YnN0ciggNiwgMiApOwoJCWlmICggcGFy
c2VJbnQoIHlyICkgPCA1MCApIHsKCQkJeXIgPSAnMjAnICsgeXI7CgkJfSBlbHNl
IHsKCQkJeXIgPSAnMTknICsgeXI7CgkJfQoJCWlmICggdHNfZXVyb3BlYW5kYXRl
ID09IHRydWUgKSB7CgkJCXJldHVybiB5ciArIGRhdGUuc3Vic3RyKCAzLCAyICkg
KyBkYXRlLnN1YnN0ciggMCwgMiApOwoJCX0gZWxzZSB7CgkJCXJldHVybiB5ciAr
IGRhdGUuc3Vic3RyKCAwLCAyICkgKyBkYXRlLnN1YnN0ciggMywgMiApOwoJCX0K
CX0KCXJldHVybiAnMDAwMDAwMDAnOwp9CgpmdW5jdGlvbiB0c19wYXJzZUZsb2F0
KCBzICkgewoJaWYgKCAhcyApIHsKCQlyZXR1cm4gMDsKCX0KCWlmICggdHNfbnVt
YmVyX3RyYW5zZm9ybV90YWJsZSAhPSBmYWxzZSApIHsKCQl2YXIgbmV3TnVtID0g
JycsIGM7CgoJCWZvciAoIHZhciBwID0gMDsgcCA8IHMubGVuZ3RoOyBwKysgKSB7
CgkJCWMgPSBzLmNoYXJBdCggcCApOwoJCQlpZiAoIGMgaW4gdHNfbnVtYmVyX3Ry
YW5zZm9ybV90YWJsZSApIHsKCQkJCW5ld051bSArPSB0c19udW1iZXJfdHJhbnNm
b3JtX3RhYmxlW2NdOwoJCQl9IGVsc2UgewoJCQkJbmV3TnVtICs9IGM7CgkJCX0K
CQl9CgkJcyA9IG5ld051bTsKCX0KCW51bSA9IHBhcnNlRmxvYXQoIHMucmVwbGFj
ZSgvWywgXS9nLCAnJykucmVwbGFjZSgiXHUyMjEyIiwgJy0nKSApOwoJcmV0dXJu
ICggaXNOYU4oIG51bSApID8gLUluZmluaXR5IDogbnVtICk7Cn0KCmZ1bmN0aW9u
IHRzX2N1cnJlbmN5VG9Tb3J0S2V5KCBzICkgewoJcmV0dXJuIHRzX3BhcnNlRmxv
YXQocy5yZXBsYWNlKC9bXi1cdTIyMTIwLTkuLF0vZywnJykpOwp9CgpmdW5jdGlv
biB0c19zb3J0X2dlbmVyaWMoIGEsIGIgKSB7CglyZXR1cm4gYVsxXSA8IGJbMV0g
PyAtMSA6IGFbMV0gPiBiWzFdID8gMSA6IGFbMl0gLSBiWzJdOwp9CgpmdW5jdGlv
biB0c19hbHRlcm5hdGUoIHRhYmxlICkgewoJLy8gVGFrZSBvYmplY3QgdGFibGUg
YW5kIGdldCBhbGwgaXQncyB0Ym9kaWVzLgoJdmFyIHRhYmxlQm9kaWVzID0gdGFi
bGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoICd0Ym9keScgKTsKCS8vIExvb3AgdGhy
b3VnaCB0aGVzZSB0Ym9kaWVzCglmb3IgKCB2YXIgaSA9IDA7IGkgPCB0YWJsZUJv
ZGllcy5sZW5ndGg7IGkrKyApIHsKCQkvLyBUYWtlIHRoZSB0Ym9keSwgYW5kIGdl
dCBhbGwgaXQncyByb3dzCgkJdmFyIHRhYmxlUm93cyA9IHRhYmxlQm9kaWVzW2ld
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCAndHInICk7CgkJLy8gTG9vcCB0aHJvdWdo
IHRoZXNlIHJvd3MKCQkvLyBTdGFydCBhdCAxIGJlY2F1c2Ugd2Ugd2FudCB0byBs
ZWF2ZSB0aGUgaGVhZGluZyByb3cgdW50b3VjaGVkCgkJZm9yICggdmFyIGogPSAw
OyBqIDwgdGFibGVSb3dzLmxlbmd0aDsgaisrICkgewoJCQkvLyBDaGVjayBpZiBq
IGlzIGV2ZW4sIGFuZCBhcHBseSBjbGFzc2VzIGZvciBib3RoIHBvc3NpYmxlIHJl
c3VsdHMKCQkJdmFyIG9sZENsYXNzZXMgPSB0YWJsZVJvd3Nbal0uY2xhc3NOYW1l
LnNwbGl0KCcgJyk7CgkJCXZhciBuZXdDbGFzc05hbWUgPSAnJzsKCQkJZm9yICgg
dmFyIGsgPSAwOyBrIDwgb2xkQ2xhc3Nlcy5sZW5ndGg7IGsrKyApIHsKCQkJCWlm
ICggb2xkQ2xhc3Nlc1trXSAhPSAnJyAmJiBvbGRDbGFzc2VzW2tdICE9ICdldmVu
JyAmJiBvbGRDbGFzc2VzW2tdICE9ICdvZGQnICkgewoJCQkJCW5ld0NsYXNzTmFt
ZSArPSBvbGRDbGFzc2VzW2tdICsgJyAnOwoJCQkJfQoJCQl9CgkJCXRhYmxlUm93
c1tqXS5jbGFzc05hbWUgPSBuZXdDbGFzc05hbWUgKyAoIGogJSAyID09IDAgPyAn
ZXZlbicgOiAnb2RkJyApOwoJCX0KCX0KfQoKLyoKICogRW5kIG9mIHRhYmxlIHNv
cnRpbmcgY29kZQogKi8KCgovKioKICogQWRkIGEgY3V0ZSBsaXR0bGUgYm94IGF0
IHRoZSB0b3Agb2YgdGhlIHNjcmVlbiB0byBpbmZvcm0gdGhlIHVzZXIgb2YKICog
c29tZXRoaW5nLCByZXBsYWNpbmcgYW55IHByZWV4aXN0aW5nIG1lc3NhZ2UuCiAq
CiAqIEBwYXJhbSBTdHJpbmcgLW9yLSBEb20gT2JqZWN0IG1lc3NhZ2UgSFRNTCB0
byBiZSBwdXQgaW5zaWRlIHRoZSByaWdodCBkaXYKICogQHBhcmFtIFN0cmluZyBj
bGFzc05hbWUgICBVc2VkIGluIGFkZGluZyBhIGNsYXNzOyBzaG91bGQgYmUgZGlm
ZmVyZW50IGZvciBlYWNoCiAqICAgY2FsbCB0byBhbGxvdyBDU1MvSlMgdG8gaGlk
ZSBkaWZmZXJlbnQgYm94ZXMuICBudWxsID0gbm8gY2xhc3MgdXNlZC4KICogQHJl
dHVybiBCb29sZWFuICAgICAgIFRydWUgb24gc3VjY2VzcywgZmFsc2Ugb24gZmFp
bHVyZQogKi8KZnVuY3Rpb24ganNNc2coIG1lc3NhZ2UsIGNsYXNzTmFtZSApIHsK
CWlmICggIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkICkgewoJCXJldHVybiBmYWxz
ZTsKCX0KCS8vIFdlIHNwZWNpYWwtY2FzZSBza2luIHN0cnVjdHVyZXMgcHJvdmlk
ZWQgYnkgdGhlIHNvZnR3YXJlLiAgU2tpbnMgdGhhdAoJLy8gY2hvb3NlIHRvIGFi
YW5kb24gb3Igc2lnbmlmaWNhbnRseSBtb2RpZnkgb3VyIGZvcm1hdHRpbmcgY2Fu
IGp1c3QgZGVmaW5lCgkvLyBhbiBtdy1qcy1tZXNzYWdlIGRpdiB0byBzdGFydCB3
aXRoLgoJdmFyIG1lc3NhZ2VEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgg
J213LWpzLW1lc3NhZ2UnICk7CglpZiAoICFtZXNzYWdlRGl2ICkgewoJCW1lc3Nh
Z2VEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAnZGl2JyApOwoJCWlmICgg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdjb2x1bW4tY29udGVudCcgKQoJCSYm
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnY29udGVudCcgKSApIHsKCQkJLy8g
TW9ub0Jvb2ssIHByZXN1bWFibHkKCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ICdjb250ZW50JyApLmluc2VydEJlZm9yZSgKCQkJCW1lc3NhZ2VEaXYsCgkJCQlk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2NvbnRlbnQnICkuZmlyc3RDaGlsZAoJ
CQkpOwoJCX0gZWxzZSBpZiAoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnY29u
dGVudCcgKQoJCSYmIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnYXJ0aWNsZScg
KSApIHsKCQkJLy8gTm9uLU1vbm9ib29rIGJ1dCBzdGlsbCByZWNvZ25pemFibGUg
KG9sZC1zdHlsZSkKCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdhcnRpY2xl
JykuaW5zZXJ0QmVmb3JlKAoJCQkJbWVzc2FnZURpdiwKCQkJCWRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCAnYXJ0aWNsZScgKS5maXJzdENoaWxkCgkJCSk7CgkJfSBl
bHNlIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0KCgltZXNzYWdlRGl2LnNldEF0
dHJpYnV0ZSggJ2lkJywgJ213LWpzLW1lc3NhZ2UnICk7CgltZXNzYWdlRGl2LnN0
eWxlLmRpc3BsYXkgPSAnYmxvY2snOwoJaWYoIGNsYXNzTmFtZSApIHsKCQltZXNz
YWdlRGl2LnNldEF0dHJpYnV0ZSggJ2NsYXNzJywgJ213LWpzLW1lc3NhZ2UtJyAr
IGNsYXNzTmFtZSApOwoJfQoKCWlmICggdHlwZW9mIG1lc3NhZ2UgPT09ICdvYmpl
Y3QnICkgewoJCXdoaWxlICggbWVzc2FnZURpdi5oYXNDaGlsZE5vZGVzKCkgKSB7
IC8vIFJlbW92ZSBvbGQgY29udGVudAoJCQltZXNzYWdlRGl2LnJlbW92ZUNoaWxk
KCBtZXNzYWdlRGl2LmZpcnN0Q2hpbGQgKTsKCQl9CgkJbWVzc2FnZURpdi5hcHBl
bmRDaGlsZCggbWVzc2FnZSApOyAvLyBBcHBlbmQgbmV3IGNvbnRlbnQKCX0gZWxz
ZSB7CgkJbWVzc2FnZURpdi5pbm5lckhUTUwgPSBtZXNzYWdlOwoJfQoJcmV0dXJu
IHRydWU7Cn0KCi8qKgogKiBJbmplY3QgYSBjdXRlIGxpdHRsZSBwcm9ncmVzcyBz
cGlubmVyIGFmdGVyIHRoZSBzcGVjaWZpZWQgZWxlbWVudAogKgogKiBAcGFyYW0g
ZWxlbWVudCBFbGVtZW50IHRvIGluamVjdCBhZnRlcgogKiBAcGFyYW0gaWQgSWRl
bnRpZmllciBzdHJpbmcgKGZvciB1c2Ugd2l0aCByZW1vdmVTcGlubmVyKCksIGJl
bG93KQogKi8KZnVuY3Rpb24gaW5qZWN0U3Bpbm5lciggZWxlbWVudCwgaWQgKSB7
Cgl2YXIgc3Bpbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICdpbWcnICk7
CglzcGlubmVyLmlkID0gJ213LXNwaW5uZXItJyArIGlkOwoJc3Bpbm5lci5zcmMg
PSBzdHlsZXBhdGggKyAnL2NvbW1vbi9pbWFnZXMvc3Bpbm5lci5naWYnOwoJc3Bp
bm5lci5hbHQgPSBzcGlubmVyLnRpdGxlID0gJy4uLic7CglpZiggZWxlbWVudC5u
ZXh0U2libGluZyApIHsKCQllbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3Jl
KCBzcGlubmVyLCBlbGVtZW50Lm5leHRTaWJsaW5nICk7Cgl9IGVsc2UgewoJCWVs
ZW1lbnQucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCggc3Bpbm5lciApOwoJfQp9Cgov
KioKICogUmVtb3ZlIGEgcHJvZ3Jlc3Mgc3Bpbm5lciBhZGRlZCB3aXRoIGluamVj
dFNwaW5uZXIoKQogKgogKiBAcGFyYW0gaWQgSWRlbnRpZmllciBzdHJpbmcKICov
CmZ1bmN0aW9uIHJlbW92ZVNwaW5uZXIoIGlkICkgewoJdmFyIHNwaW5uZXIgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ213LXNwaW5uZXItJyArIGlkICk7Cglp
Ziggc3Bpbm5lciApIHsKCQlzcGlubmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
IHNwaW5uZXIgKTsKCX0KfQoKZnVuY3Rpb24gcnVuT25sb2FkSG9vaygpIHsKCS8v
IGRvbid0IHJ1biBhbnl0aGluZyBiZWxvdyB0aGlzIGZvciBub24tZG9tIGJyb3dz
ZXJzCglpZiAoIGRvbmVPbmxvYWRIb29rIHx8ICEoIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkICYmIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lICkgKSB7CgkJ
cmV0dXJuOwoJfQoKCS8vIHNldCB0aGlzIGJlZm9yZSBydW5uaW5nIGFueSBob29r
cywgc2luY2UgYW55IGVycm9ycyBiZWxvdwoJLy8gbWlnaHQgY2F1c2UgdGhlIGZ1
bmN0aW9uIHRvIHRlcm1pbmF0ZSBwcmVtYXR1cmVseQoJZG9uZU9ubG9hZEhvb2sg
PSB0cnVlOwoKCXVwZGF0ZVRvb2x0aXBBY2Nlc3NLZXlzKCBudWxsICk7CglzZXR1
cENoZWNrYm94U2hpZnRDbGljaygpOwoJc29ydGFibGVzX2luaXQoKTsKCgkvLyBS
dW4gYW55IGFkZGVkLW9uIGZ1bmN0aW9ucwoJZm9yICggdmFyIGkgPSAwOyBpIDwg
b25sb2FkRnVuY3RzLmxlbmd0aDsgaSsrICkgewoJCW9ubG9hZEZ1bmN0c1tpXSgp
OwoJfQp9CgovKioKICogQWRkIGFuIGV2ZW50IGhhbmRsZXIgdG8gYW4gZWxlbWVu
dAogKgogKiBAcGFyYW0gRWxlbWVudCBlbGVtZW50IEVsZW1lbnQgdG8gYWRkIGhh
bmRsZXIgdG8KICogQHBhcmFtIFN0cmluZyBhdHRhY2ggRXZlbnQgdG8gYXR0YWNo
IHRvCiAqIEBwYXJhbSBjYWxsYWJsZSBoYW5kbGVyIEV2ZW50IGhhbmRsZXIgY2Fs
bGJhY2sKICovCmZ1bmN0aW9uIGFkZEhhbmRsZXIoIGVsZW1lbnQsIGF0dGFjaCwg
aGFuZGxlciApIHsKCWlmKCB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciApIHsKCQll
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIGF0dGFjaCwgaGFuZGxlciwgZmFsc2Ug
KTsKCX0gZWxzZSBpZiggd2luZG93LmF0dGFjaEV2ZW50ICkgewoJCWVsZW1lbnQu
YXR0YWNoRXZlbnQoICdvbicgKyBhdHRhY2gsIGhhbmRsZXIgKTsKCX0KfQoKLyoq
CiAqIEFkZCBhIGNsaWNrIGV2ZW50IGhhbmRsZXIgdG8gYW4gZWxlbWVudAogKgog
KiBAcGFyYW0gRWxlbWVudCBlbGVtZW50IEVsZW1lbnQgdG8gYWRkIGhhbmRsZXIg
dG8KICogQHBhcmFtIGNhbGxhYmxlIGhhbmRsZXIgRXZlbnQgaGFuZGxlciBjYWxs
YmFjawogKi8KZnVuY3Rpb24gYWRkQ2xpY2tIYW5kbGVyKCBlbGVtZW50LCBoYW5k
bGVyICkgewoJYWRkSGFuZGxlciggZWxlbWVudCwgJ2NsaWNrJywgaGFuZGxlciAp
Owp9CgovKioKICogUmVtb3ZlcyBhbiBldmVudCBoYW5kbGVyIGZyb20gYW4gZWxl
bWVudAogKgogKiBAcGFyYW0gRWxlbWVudCBlbGVtZW50IEVsZW1lbnQgdG8gcmVt
b3ZlIGhhbmRsZXIgZnJvbQogKiBAcGFyYW0gU3RyaW5nIHJlbW92ZSBFdmVudCB0
byByZW1vdmUKICogQHBhcmFtIGNhbGxhYmxlIGhhbmRsZXIgRXZlbnQgaGFuZGxl
ciBjYWxsYmFjayB0byByZW1vdmUKICovCmZ1bmN0aW9uIHJlbW92ZUhhbmRsZXIo
IGVsZW1lbnQsIHJlbW92ZSwgaGFuZGxlciApIHsKCWlmKCB3aW5kb3cucmVtb3Zl
RXZlbnRMaXN0ZW5lciApIHsKCQllbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIo
IHJlbW92ZSwgaGFuZGxlciwgZmFsc2UgKTsKCX0gZWxzZSBpZiggd2luZG93LmRl
dGFjaEV2ZW50ICkgewoJCWVsZW1lbnQuZGV0YWNoRXZlbnQoICdvbicgKyByZW1v
dmUsIGhhbmRsZXIgKTsKCX0KfQovLyBub3RlOiBhbGwgc2tpbnMgc2hvdWxkIGNh
bGwgcnVuT25sb2FkSG9vaygpIGF0IHRoZSBlbmQgb2YgaHRtbCBvdXRwdXQsCi8v
ICAgICAgc28gdGhlIGJlbG93IHNob3VsZCBiZSByZWR1bmRhbnQuIEl0J3MgdGhl
cmUganVzdCBpbiBjYXNlLgpob29rRXZlbnQoICdsb2FkJywgcnVuT25sb2FkSG9v
ayApOwoKaWYgKCBpZTZfYnVncyApIHsKCWltcG9ydFNjcmlwdFVSSSggc3R5bGVw
YXRoICsgJy9jb21tb24vSUVGaXhlcy5qcycgKTsKfQoKLy8gRm9yIGZ1dHVyZSB1
c2UuCm13ID0ge307CgoK
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=jquery.min.js
Content-Type: application/x-javascript; charset=UTF-8; name=jquery.min.js
Content-Location: http://bits.wikimedia.org/skins-1.5/common/jquery.min.js?283u
Content-Transfer-Encoding: Base64
CihmdW5jdGlvbigpe3Zhcgp3aW5kb3c9dGhpcyx1bmRlZmluZWQsX2pRdWVyeT13
aW5kb3cualF1ZXJ5LF8kPXdpbmRvdy4kLGpRdWVyeT13aW5kb3cualF1ZXJ5PXdp
bmRvdy4kPWZ1bmN0aW9uKHNlbGVjdG9yLGNvbnRleHQpe3JldHVybiBuZXcgalF1
ZXJ5LmZuLmluaXQoc2VsZWN0b3IsY29udGV4dCk7fSxxdWlja0V4cHI9L15bXjxd
Kig8KC58XHMpKz4pW14+XSokfF4jKFtcdy1dKykkLyxpc1NpbXBsZT0vXi5bXjoj
XFtcLixdKiQvO2pRdWVyeS5mbj1qUXVlcnkucHJvdG90eXBlPXtpbml0OmZ1bmN0
aW9uKHNlbGVjdG9yLGNvbnRleHQpe3NlbGVjdG9yPXNlbGVjdG9yfHxkb2N1bWVu
dDtpZihzZWxlY3Rvci5ub2RlVHlwZSl7dGhpc1swXT1zZWxlY3Rvcjt0aGlzLmxl
bmd0aD0xO3RoaXMuY29udGV4dD1zZWxlY3RvcjtyZXR1cm4gdGhpczt9CmlmKHR5
cGVvZiBzZWxlY3Rvcj09PSJzdHJpbmciKXt2YXIgbWF0Y2g9cXVpY2tFeHByLmV4
ZWMoc2VsZWN0b3IpO2lmKG1hdGNoJiYobWF0Y2hbMV18fCFjb250ZXh0KSl7aWYo
bWF0Y2hbMV0pCnNlbGVjdG9yPWpRdWVyeS5jbGVhbihbbWF0Y2hbMV1dLGNvbnRl
eHQpO2Vsc2V7dmFyIGVsZW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobWF0Y2hb
M10pO2lmKGVsZW0mJmVsZW0uaWQhPW1hdGNoWzNdKQpyZXR1cm4galF1ZXJ5KCku
ZmluZChzZWxlY3Rvcik7dmFyIHJldD1qUXVlcnkoZWxlbXx8W10pO3JldC5jb250
ZXh0PWRvY3VtZW50O3JldC5zZWxlY3Rvcj1zZWxlY3RvcjtyZXR1cm4gcmV0O319
ZWxzZQpyZXR1cm4galF1ZXJ5KGNvbnRleHQpLmZpbmQoc2VsZWN0b3IpO31lbHNl
IGlmKGpRdWVyeS5pc0Z1bmN0aW9uKHNlbGVjdG9yKSkKcmV0dXJuIGpRdWVyeShk
b2N1bWVudCkucmVhZHkoc2VsZWN0b3IpO2lmKHNlbGVjdG9yLnNlbGVjdG9yJiZz
ZWxlY3Rvci5jb250ZXh0KXt0aGlzLnNlbGVjdG9yPXNlbGVjdG9yLnNlbGVjdG9y
O3RoaXMuY29udGV4dD1zZWxlY3Rvci5jb250ZXh0O30KcmV0dXJuIHRoaXMuc2V0
QXJyYXkoalF1ZXJ5LmlzQXJyYXkoc2VsZWN0b3IpP3NlbGVjdG9yOmpRdWVyeS5t
YWtlQXJyYXkoc2VsZWN0b3IpKTt9LHNlbGVjdG9yOiIiLGpxdWVyeToiMS4zLjIi
LHNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGg7fSxnZXQ6ZnVuY3Rp
b24obnVtKXtyZXR1cm4gbnVtPT09dW5kZWZpbmVkP0FycmF5LnByb3RvdHlwZS5z
bGljZS5jYWxsKHRoaXMpOnRoaXNbbnVtXTt9LHB1c2hTdGFjazpmdW5jdGlvbihl
bGVtcyxuYW1lLHNlbGVjdG9yKXt2YXIgcmV0PWpRdWVyeShlbGVtcyk7cmV0LnBy
ZXZPYmplY3Q9dGhpcztyZXQuY29udGV4dD10aGlzLmNvbnRleHQ7aWYobmFtZT09
PSJmaW5kIikKcmV0LnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrKHRoaXMuc2VsZWN0
b3I/IiAiOiIiKStzZWxlY3RvcjtlbHNlIGlmKG5hbWUpCnJldC5zZWxlY3Rvcj10
aGlzLnNlbGVjdG9yKyIuIituYW1lKyIoIitzZWxlY3RvcisiKSI7cmV0dXJuIHJl
dDt9LHNldEFycmF5OmZ1bmN0aW9uKGVsZW1zKXt0aGlzLmxlbmd0aD0wO0FycmF5
LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMsZWxlbXMpO3JldHVybiB0aGlzO30s
ZWFjaDpmdW5jdGlvbihjYWxsYmFjayxhcmdzKXtyZXR1cm4galF1ZXJ5LmVhY2go
dGhpcyxjYWxsYmFjayxhcmdzKTt9LGluZGV4OmZ1bmN0aW9uKGVsZW0pe3JldHVy
biBqUXVlcnkuaW5BcnJheShlbGVtJiZlbGVtLmpxdWVyeT9lbGVtWzBdOmVsZW0s
dGhpcyk7fSxhdHRyOmZ1bmN0aW9uKG5hbWUsdmFsdWUsdHlwZSl7dmFyIG9wdGlv
bnM9bmFtZTtpZih0eXBlb2YgbmFtZT09PSJzdHJpbmciKQppZih2YWx1ZT09PXVu
ZGVmaW5lZCkKcmV0dXJuIHRoaXNbMF0mJmpRdWVyeVt0eXBlfHwiYXR0ciJdKHRo
aXNbMF0sbmFtZSk7ZWxzZXtvcHRpb25zPXt9O29wdGlvbnNbbmFtZV09dmFsdWU7
fQpyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpe2ZvcihuYW1lIGluIG9wdGlv
bnMpCmpRdWVyeS5hdHRyKHR5cGU/dGhpcy5zdHlsZTp0aGlzLG5hbWUsalF1ZXJ5
LnByb3AodGhpcyxvcHRpb25zW25hbWVdLHR5cGUsaSxuYW1lKSk7fSk7fSxjc3M6
ZnVuY3Rpb24oa2V5LHZhbHVlKXtpZigoa2V5PT0nd2lkdGgnfHxrZXk9PSdoZWln
aHQnKSYmcGFyc2VGbG9hdCh2YWx1ZSk8MCkKdmFsdWU9dW5kZWZpbmVkO3JldHVy
biB0aGlzLmF0dHIoa2V5LHZhbHVlLCJjdXJDU1MiKTt9LHRleHQ6ZnVuY3Rpb24o
dGV4dCl7aWYodHlwZW9mIHRleHQhPT0ib2JqZWN0IiYmdGV4dCE9bnVsbCkKcmV0
dXJuIHRoaXMuZW1wdHkoKS5hcHBlbmQoKHRoaXNbMF0mJnRoaXNbMF0ub3duZXJE
b2N1bWVudHx8ZG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKHRleHQpKTt2YXIgcmV0
PSIiO2pRdWVyeS5lYWNoKHRleHR8fHRoaXMsZnVuY3Rpb24oKXtqUXVlcnkuZWFj
aCh0aGlzLmNoaWxkTm9kZXMsZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVUeXBlIT04
KQpyZXQrPXRoaXMubm9kZVR5cGUhPTE/dGhpcy5ub2RlVmFsdWU6alF1ZXJ5LmZu
LnRleHQoW3RoaXNdKTt9KTt9KTtyZXR1cm4gcmV0O30sd3JhcEFsbDpmdW5jdGlv
bihodG1sKXtpZih0aGlzWzBdKXt2YXIgd3JhcD1qUXVlcnkoaHRtbCx0aGlzWzBd
Lm93bmVyRG9jdW1lbnQpLmNsb25lKCk7aWYodGhpc1swXS5wYXJlbnROb2RlKQp3
cmFwLmluc2VydEJlZm9yZSh0aGlzWzBdKTt3cmFwLm1hcChmdW5jdGlvbigpe3Zh
ciBlbGVtPXRoaXM7d2hpbGUoZWxlbS5maXJzdENoaWxkKQplbGVtPWVsZW0uZmly
c3RDaGlsZDtyZXR1cm4gZWxlbTt9KS5hcHBlbmQodGhpcyk7fQpyZXR1cm4gdGhp
czt9LHdyYXBJbm5lcjpmdW5jdGlvbihodG1sKXtyZXR1cm4gdGhpcy5lYWNoKGZ1
bmN0aW9uKCl7alF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkud3JhcEFsbChodG1sKTt9
KTt9LHdyYXA6ZnVuY3Rpb24oaHRtbCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlv
bigpe2pRdWVyeSh0aGlzKS53cmFwQWxsKGh0bWwpO30pO30sYXBwZW5kOmZ1bmN0
aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLHRydWUsZnVuY3Rp
b24oZWxlbSl7aWYodGhpcy5ub2RlVHlwZT09MSkKdGhpcy5hcHBlbmRDaGlsZChl
bGVtKTt9KTt9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5p
cChhcmd1bWVudHMsdHJ1ZSxmdW5jdGlvbihlbGVtKXtpZih0aGlzLm5vZGVUeXBl
PT0xKQp0aGlzLmluc2VydEJlZm9yZShlbGVtLHRoaXMuZmlyc3RDaGlsZCk7fSk7
fSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVu
dHMsZmFsc2UsZnVuY3Rpb24oZWxlbSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJl
Zm9yZShlbGVtLHRoaXMpO30pO30sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
cy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2UsZnVuY3Rpb24oZWxlbSl7dGhpcy5w
YXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtLHRoaXMubmV4dFNpYmxpbmcpO30p
O30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8alF1ZXJ5
KFtdKTt9LHB1c2g6W10ucHVzaCxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGlj
ZSxmaW5kOmZ1bmN0aW9uKHNlbGVjdG9yKXtpZih0aGlzLmxlbmd0aD09PTEpe3Zh
ciByZXQ9dGhpcy5wdXNoU3RhY2soW10sImZpbmQiLHNlbGVjdG9yKTtyZXQubGVu
Z3RoPTA7alF1ZXJ5LmZpbmQoc2VsZWN0b3IsdGhpc1swXSxyZXQpO3JldHVybiBy
ZXQ7fWVsc2V7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGpRdWVyeS51bmlxdWUoalF1
ZXJ5Lm1hcCh0aGlzLGZ1bmN0aW9uKGVsZW0pe3JldHVybiBqUXVlcnkuZmluZChz
ZWxlY3RvcixlbGVtKTt9KSksImZpbmQiLHNlbGVjdG9yKTt9fSxjbG9uZTpmdW5j
dGlvbihldmVudHMpe3ZhciByZXQ9dGhpcy5tYXAoZnVuY3Rpb24oKXtpZighalF1
ZXJ5LnN1cHBvcnQubm9DbG9uZUV2ZW50JiYhalF1ZXJ5LmlzWE1MRG9jKHRoaXMp
KXt2YXIgaHRtbD10aGlzLm91dGVySFRNTDtpZighaHRtbCl7dmFyIGRpdj10aGlz
Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZGl2LmFwcGVuZENo
aWxkKHRoaXMuY2xvbmVOb2RlKHRydWUpKTtodG1sPWRpdi5pbm5lckhUTUw7fQpy
ZXR1cm4galF1ZXJ5LmNsZWFuKFtodG1sLnJlcGxhY2UoLyBqUXVlcnlcZCs9Iig/
OlxkK3xudWxsKSIvZywiIikucmVwbGFjZSgvXlxzKi8sIiIpXSlbMF07fWVsc2UK
cmV0dXJuIHRoaXMuY2xvbmVOb2RlKHRydWUpO30pO2lmKGV2ZW50cz09PXRydWUp
e3ZhciBvcmlnPXRoaXMuZmluZCgiKiIpLmFuZFNlbGYoKSxpPTA7cmV0LmZpbmQo
IioiKS5hbmRTZWxmKCkuZWFjaChmdW5jdGlvbigpe2lmKHRoaXMubm9kZU5hbWUh
PT1vcmlnW2ldLm5vZGVOYW1lKQpyZXR1cm47dmFyIGV2ZW50cz1qUXVlcnkuZGF0
YShvcmlnW2ldLCJldmVudHMiKTtmb3IodmFyIHR5cGUgaW4gZXZlbnRzKXtmb3Io
dmFyIGhhbmRsZXIgaW4gZXZlbnRzW3R5cGVdKXtqUXVlcnkuZXZlbnQuYWRkKHRo
aXMsdHlwZSxldmVudHNbdHlwZV1baGFuZGxlcl0sZXZlbnRzW3R5cGVdW2hhbmRs
ZXJdLmRhdGEpO319CmkrKzt9KTt9CnJldHVybiByZXQ7fSxmaWx0ZXI6ZnVuY3Rp
b24oc2VsZWN0b3Ipe3JldHVybiB0aGlzLnB1c2hTdGFjayhqUXVlcnkuaXNGdW5j
dGlvbihzZWxlY3RvcikmJmpRdWVyeS5ncmVwKHRoaXMsZnVuY3Rpb24oZWxlbSxp
KXtyZXR1cm4gc2VsZWN0b3IuY2FsbChlbGVtLGkpO30pfHxqUXVlcnkubXVsdGlG
aWx0ZXIoc2VsZWN0b3IsalF1ZXJ5LmdyZXAodGhpcyxmdW5jdGlvbihlbGVtKXty
ZXR1cm4gZWxlbS5ub2RlVHlwZT09PTE7fSkpLCJmaWx0ZXIiLHNlbGVjdG9yKTt9
LGNsb3Nlc3Q6ZnVuY3Rpb24oc2VsZWN0b3Ipe3ZhciBwb3M9alF1ZXJ5LmV4cHIu
bWF0Y2guUE9TLnRlc3Qoc2VsZWN0b3IpP2pRdWVyeShzZWxlY3Rvcik6bnVsbCxj
bG9zZXI9MDtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgY3VyPXRoaXM7
d2hpbGUoY3VyJiZjdXIub3duZXJEb2N1bWVudCl7aWYocG9zP3Bvcy5pbmRleChj
dXIpPi0xOmpRdWVyeShjdXIpLmlzKHNlbGVjdG9yKSl7alF1ZXJ5LmRhdGEoY3Vy
LCJjbG9zZXN0IixjbG9zZXIpO3JldHVybiBjdXI7fQpjdXI9Y3VyLnBhcmVudE5v
ZGU7Y2xvc2VyKys7fX0pO30sbm90OmZ1bmN0aW9uKHNlbGVjdG9yKXtpZih0eXBl
b2Ygc2VsZWN0b3I9PT0ic3RyaW5nIikKaWYoaXNTaW1wbGUudGVzdChzZWxlY3Rv
cikpCnJldHVybiB0aGlzLnB1c2hTdGFjayhqUXVlcnkubXVsdGlGaWx0ZXIoc2Vs
ZWN0b3IsdGhpcyx0cnVlKSwibm90IixzZWxlY3Rvcik7ZWxzZQpzZWxlY3Rvcj1q
UXVlcnkubXVsdGlGaWx0ZXIoc2VsZWN0b3IsdGhpcyk7dmFyIGlzQXJyYXlMaWtl
PXNlbGVjdG9yLmxlbmd0aCYmc2VsZWN0b3Jbc2VsZWN0b3IubGVuZ3RoLTFdIT09
dW5kZWZpbmVkJiYhc2VsZWN0b3Iubm9kZVR5cGU7cmV0dXJuIHRoaXMuZmlsdGVy
KGZ1bmN0aW9uKCl7cmV0dXJuIGlzQXJyYXlMaWtlP2pRdWVyeS5pbkFycmF5KHRo
aXMsc2VsZWN0b3IpPDA6dGhpcyE9c2VsZWN0b3I7fSk7fSxhZGQ6ZnVuY3Rpb24o
c2VsZWN0b3Ipe3JldHVybiB0aGlzLnB1c2hTdGFjayhqUXVlcnkudW5pcXVlKGpR
dWVyeS5tZXJnZSh0aGlzLmdldCgpLHR5cGVvZiBzZWxlY3Rvcj09PSJzdHJpbmci
P2pRdWVyeShzZWxlY3Rvcik6alF1ZXJ5Lm1ha2VBcnJheShzZWxlY3RvcikpKSk7
fSxpczpmdW5jdGlvbihzZWxlY3Rvcil7cmV0dXJuISFzZWxlY3RvciYmalF1ZXJ5
Lm11bHRpRmlsdGVyKHNlbGVjdG9yLHRoaXMpLmxlbmd0aD4wO30saGFzQ2xhc3M6
ZnVuY3Rpb24oc2VsZWN0b3Ipe3JldHVybiEhc2VsZWN0b3ImJnRoaXMuaXMoIi4i
K3NlbGVjdG9yKTt9LHZhbDpmdW5jdGlvbih2YWx1ZSl7aWYodmFsdWU9PT11bmRl
ZmluZWQpe3ZhciBlbGVtPXRoaXNbMF07aWYoZWxlbSl7aWYoalF1ZXJ5Lm5vZGVO
YW1lKGVsZW0sJ29wdGlvbicpKQpyZXR1cm4oZWxlbS5hdHRyaWJ1dGVzLnZhbHVl
fHx7fSkuc3BlY2lmaWVkP2VsZW0udmFsdWU6ZWxlbS50ZXh0O2lmKGpRdWVyeS5u
b2RlTmFtZShlbGVtLCJzZWxlY3QiKSl7dmFyIGluZGV4PWVsZW0uc2VsZWN0ZWRJ
bmRleCx2YWx1ZXM9W10sb3B0aW9ucz1lbGVtLm9wdGlvbnMsb25lPWVsZW0udHlw
ZT09InNlbGVjdC1vbmUiO2lmKGluZGV4PDApCnJldHVybiBudWxsO2Zvcih2YXIg
aT1vbmU/aW5kZXg6MCxtYXg9b25lP2luZGV4KzE6b3B0aW9ucy5sZW5ndGg7aTxt
YXg7aSsrKXt2YXIgb3B0aW9uPW9wdGlvbnNbaV07aWYob3B0aW9uLnNlbGVjdGVk
KXt2YWx1ZT1qUXVlcnkob3B0aW9uKS52YWwoKTtpZihvbmUpCnJldHVybiB2YWx1
ZTt2YWx1ZXMucHVzaCh2YWx1ZSk7fX0KcmV0dXJuIHZhbHVlczt9CnJldHVybihl
bGVtLnZhbHVlfHwiIikucmVwbGFjZSgvXHIvZywiIik7fQpyZXR1cm4gdW5kZWZp
bmVkO30KaWYodHlwZW9mIHZhbHVlPT09Im51bWJlciIpCnZhbHVlKz0nJztyZXR1
cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlVHlwZSE9MSkKcmV0
dXJuO2lmKGpRdWVyeS5pc0FycmF5KHZhbHVlKSYmL3JhZGlvfGNoZWNrYm94Ly50
ZXN0KHRoaXMudHlwZSkpCnRoaXMuY2hlY2tlZD0oalF1ZXJ5LmluQXJyYXkodGhp
cy52YWx1ZSx2YWx1ZSk+PTB8fGpRdWVyeS5pbkFycmF5KHRoaXMubmFtZSx2YWx1
ZSk+PTApO2Vsc2UgaWYoalF1ZXJ5Lm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2
YXIgdmFsdWVzPWpRdWVyeS5tYWtlQXJyYXkodmFsdWUpO2pRdWVyeSgib3B0aW9u
Iix0aGlzKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZD0oalF1ZXJ5Lmlu
QXJyYXkodGhpcy52YWx1ZSx2YWx1ZXMpPj0wfHxqUXVlcnkuaW5BcnJheSh0aGlz
LnRleHQsdmFsdWVzKT49MCk7fSk7aWYoIXZhbHVlcy5sZW5ndGgpCnRoaXMuc2Vs
ZWN0ZWRJbmRleD0tMTt9ZWxzZQp0aGlzLnZhbHVlPXZhbHVlO30pO30saHRtbDpm
dW5jdGlvbih2YWx1ZSl7cmV0dXJuIHZhbHVlPT09dW5kZWZpbmVkPyh0aGlzWzBd
P3RoaXNbMF0uaW5uZXJIVE1MLnJlcGxhY2UoLyBqUXVlcnlcZCs9Iig/OlxkK3xu
dWxsKSIvZywiIik6bnVsbCk6dGhpcy5lbXB0eSgpLmFwcGVuZCh2YWx1ZSk7fSxy
ZXBsYWNlV2l0aDpmdW5jdGlvbih2YWx1ZSl7cmV0dXJuIHRoaXMuYWZ0ZXIodmFs
dWUpLnJlbW92ZSgpO30sZXE6ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMuc2xpY2Uo
aSwraSsxKTt9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNr
KEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksInNs
aWNlIixBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLmpvaW4o
IiwiKSk7fSxtYXA6ZnVuY3Rpb24oY2FsbGJhY2spe3JldHVybiB0aGlzLnB1c2hT
dGFjayhqUXVlcnkubWFwKHRoaXMsZnVuY3Rpb24oZWxlbSxpKXtyZXR1cm4gY2Fs
bGJhY2suY2FsbChlbGVtLGksZWxlbSk7fSkpO30sYW5kU2VsZjpmdW5jdGlvbigp
e3JldHVybiB0aGlzLmFkZCh0aGlzLnByZXZPYmplY3QpO30sZG9tTWFuaXA6ZnVu
Y3Rpb24oYXJncyx0YWJsZSxjYWxsYmFjayl7aWYodGhpc1swXSl7dmFyIGZyYWdt
ZW50PSh0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHRoaXNbMF0pLmNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQoKSxzY3JpcHRzPWpRdWVyeS5jbGVhbihhcmdzLCh0aGlzWzBd
Lm93bmVyRG9jdW1lbnR8fHRoaXNbMF0pLGZyYWdtZW50KSxmaXJzdD1mcmFnbWVu
dC5maXJzdENoaWxkO2lmKGZpcnN0KQpmb3IodmFyIGk9MCxsPXRoaXMubGVuZ3Ro
O2k8bDtpKyspCmNhbGxiYWNrLmNhbGwocm9vdCh0aGlzW2ldLGZpcnN0KSx0aGlz
Lmxlbmd0aD4xfHxpPjA/ZnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpOmZyYWdtZW50
KTtpZihzY3JpcHRzKQpqUXVlcnkuZWFjaChzY3JpcHRzLGV2YWxTY3JpcHQpO30K
cmV0dXJuIHRoaXM7ZnVuY3Rpb24gcm9vdChlbGVtLGN1cil7cmV0dXJuIHRhYmxl
JiZqUXVlcnkubm9kZU5hbWUoZWxlbSwidGFibGUiKSYmalF1ZXJ5Lm5vZGVOYW1l
KGN1ciwidHIiKT8oZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVsw
XXx8ZWxlbS5hcHBlbmRDaGlsZChlbGVtLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgidGJvZHkiKSkpOmVsZW07fX19O2pRdWVyeS5mbi5pbml0LnByb3RvdHlw
ZT1qUXVlcnkuZm47ZnVuY3Rpb24gZXZhbFNjcmlwdChpLGVsZW0pe2lmKGVsZW0u
c3JjKQpqUXVlcnkuYWpheCh7dXJsOmVsZW0uc3JjLGFzeW5jOmZhbHNlLGRhdGFU
eXBlOiJzY3JpcHQifSk7ZWxzZQpqUXVlcnkuZ2xvYmFsRXZhbChlbGVtLnRleHR8
fGVsZW0udGV4dENvbnRlbnR8fGVsZW0uaW5uZXJIVE1MfHwiIik7aWYoZWxlbS5w
YXJlbnROb2RlKQplbGVtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbSk7fQpm
dW5jdGlvbiBub3coKXtyZXR1cm4rbmV3IERhdGU7fQpqUXVlcnkuZXh0ZW5kPWpR
dWVyeS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgdGFyZ2V0PWFyZ3VtZW50c1sw
XXx8e30saT0xLGxlbmd0aD1hcmd1bWVudHMubGVuZ3RoLGRlZXA9ZmFsc2Usb3B0
aW9ucztpZih0eXBlb2YgdGFyZ2V0PT09ImJvb2xlYW4iKXtkZWVwPXRhcmdldDt0
YXJnZXQ9YXJndW1lbnRzWzFdfHx7fTtpPTI7fQppZih0eXBlb2YgdGFyZ2V0IT09
Im9iamVjdCImJiFqUXVlcnkuaXNGdW5jdGlvbih0YXJnZXQpKQp0YXJnZXQ9e307
aWYobGVuZ3RoPT1pKXt0YXJnZXQ9dGhpczstLWk7fQpmb3IoO2k8bGVuZ3RoO2kr
KykKaWYoKG9wdGlvbnM9YXJndW1lbnRzW2ldKSE9bnVsbCkKZm9yKHZhciBuYW1l
IGluIG9wdGlvbnMpe3ZhciBzcmM9dGFyZ2V0W25hbWVdLGNvcHk9b3B0aW9uc1tu
YW1lXTtpZih0YXJnZXQ9PT1jb3B5KQpjb250aW51ZTtpZihkZWVwJiZjb3B5JiZ0
eXBlb2YgY29weT09PSJvYmplY3QiJiYhY29weS5ub2RlVHlwZSkKdGFyZ2V0W25h
bWVdPWpRdWVyeS5leHRlbmQoZGVlcCxzcmN8fChjb3B5Lmxlbmd0aCE9bnVsbD9b
XTp7fSksY29weSk7ZWxzZSBpZihjb3B5IT09dW5kZWZpbmVkKQp0YXJnZXRbbmFt
ZV09Y29weTt9CnJldHVybiB0YXJnZXQ7fTt2YXIgZXhjbHVkZT0vei0/aW5kZXh8
Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWlnaHQvaSxkZWZhdWx0
Vmlldz1kb2N1bWVudC5kZWZhdWx0Vmlld3x8e30sdG9TdHJpbmc9T2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZztqUXVlcnkuZXh0ZW5kKHtub0NvbmZsaWN0OmZ1bmN0
aW9uKGRlZXApe3dpbmRvdy4kPV8kO2lmKGRlZXApCndpbmRvdy5qUXVlcnk9X2pR
dWVyeTtyZXR1cm4galF1ZXJ5O30saXNGdW5jdGlvbjpmdW5jdGlvbihvYmope3Jl
dHVybiB0b1N0cmluZy5jYWxsKG9iaik9PT0iW29iamVjdCBGdW5jdGlvbl0iO30s
aXNBcnJheTpmdW5jdGlvbihvYmope3JldHVybiB0b1N0cmluZy5jYWxsKG9iaik9
PT0iW29iamVjdCBBcnJheV0iO30saXNYTUxEb2M6ZnVuY3Rpb24oZWxlbSl7cmV0
dXJuIGVsZW0ubm9kZVR5cGU9PT05JiZlbGVtLmRvY3VtZW50RWxlbWVudC5ub2Rl
TmFtZSE9PSJIVE1MInx8ISFlbGVtLm93bmVyRG9jdW1lbnQmJmpRdWVyeS5pc1hN
TERvYyhlbGVtLm93bmVyRG9jdW1lbnQpO30sZ2xvYmFsRXZhbDpmdW5jdGlvbihk
YXRhKXtpZihkYXRhJiYvXFMvLnRlc3QoZGF0YSkpe3ZhciBoZWFkPWRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudCxzY3JpcHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0
Iik7c2NyaXB0LnR5cGU9InRleHQvamF2YXNjcmlwdCI7aWYoalF1ZXJ5LnN1cHBv
cnQuc2NyaXB0RXZhbCkKc2NyaXB0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKGRhdGEpKTtlbHNlCnNjcmlwdC50ZXh0PWRhdGE7aGVhZC5pbnNl
cnRCZWZvcmUoc2NyaXB0LGhlYWQuZmlyc3RDaGlsZCk7aGVhZC5yZW1vdmVDaGls
ZChzY3JpcHQpO319LG5vZGVOYW1lOmZ1bmN0aW9uKGVsZW0sbmFtZSl7cmV0dXJu
IGVsZW0ubm9kZU5hbWUmJmVsZW0ubm9kZU5hbWUudG9VcHBlckNhc2UoKT09bmFt
ZS50b1VwcGVyQ2FzZSgpO30sZWFjaDpmdW5jdGlvbihvYmplY3QsY2FsbGJhY2ss
YXJncyl7dmFyIG5hbWUsaT0wLGxlbmd0aD1vYmplY3QubGVuZ3RoO2lmKGFyZ3Mp
e2lmKGxlbmd0aD09PXVuZGVmaW5lZCl7Zm9yKG5hbWUgaW4gb2JqZWN0KQppZihj
YWxsYmFjay5hcHBseShvYmplY3RbbmFtZV0sYXJncyk9PT1mYWxzZSkKYnJlYWs7
fWVsc2UKZm9yKDtpPGxlbmd0aDspCmlmKGNhbGxiYWNrLmFwcGx5KG9iamVjdFtp
KytdLGFyZ3MpPT09ZmFsc2UpCmJyZWFrO31lbHNle2lmKGxlbmd0aD09PXVuZGVm
aW5lZCl7Zm9yKG5hbWUgaW4gb2JqZWN0KQppZihjYWxsYmFjay5jYWxsKG9iamVj
dFtuYW1lXSxuYW1lLG9iamVjdFtuYW1lXSk9PT1mYWxzZSkKYnJlYWs7fWVsc2UK
Zm9yKHZhciB2YWx1ZT1vYmplY3RbMF07aTxsZW5ndGgmJmNhbGxiYWNrLmNhbGwo
dmFsdWUsaSx2YWx1ZSkhPT1mYWxzZTt2YWx1ZT1vYmplY3RbKytpXSl7fX0KcmV0
dXJuIG9iamVjdDt9LHByb3A6ZnVuY3Rpb24oZWxlbSx2YWx1ZSx0eXBlLGksbmFt
ZSl7aWYoalF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpKQp2YWx1ZT12YWx1ZS5jYWxs
KGVsZW0saSk7cmV0dXJuIHR5cGVvZiB2YWx1ZT09PSJudW1iZXIiJiZ0eXBlPT0i
Y3VyQ1NTIiYmIWV4Y2x1ZGUudGVzdChuYW1lKT92YWx1ZSsicHgiOnZhbHVlO30s
Y2xhc3NOYW1lOnthZGQ6ZnVuY3Rpb24oZWxlbSxjbGFzc05hbWVzKXtqUXVlcnku
ZWFjaCgoY2xhc3NOYW1lc3x8IiIpLnNwbGl0KC9ccysvKSxmdW5jdGlvbihpLGNs
YXNzTmFtZSl7aWYoZWxlbS5ub2RlVHlwZT09MSYmIWpRdWVyeS5jbGFzc05hbWUu
aGFzKGVsZW0uY2xhc3NOYW1lLGNsYXNzTmFtZSkpCmVsZW0uY2xhc3NOYW1lKz0o
ZWxlbS5jbGFzc05hbWU/IiAiOiIiKStjbGFzc05hbWU7fSk7fSxyZW1vdmU6ZnVu
Y3Rpb24oZWxlbSxjbGFzc05hbWVzKXtpZihlbGVtLm5vZGVUeXBlPT0xKQplbGVt
LmNsYXNzTmFtZT1jbGFzc05hbWVzIT09dW5kZWZpbmVkP2pRdWVyeS5ncmVwKGVs
ZW0uY2xhc3NOYW1lLnNwbGl0KC9ccysvKSxmdW5jdGlvbihjbGFzc05hbWUpe3Jl
dHVybiFqUXVlcnkuY2xhc3NOYW1lLmhhcyhjbGFzc05hbWVzLGNsYXNzTmFtZSk7
fSkuam9pbigiICIpOiIiO30saGFzOmZ1bmN0aW9uKGVsZW0sY2xhc3NOYW1lKXty
ZXR1cm4gZWxlbSYmalF1ZXJ5LmluQXJyYXkoY2xhc3NOYW1lLChlbGVtLmNsYXNz
TmFtZXx8ZWxlbSkudG9TdHJpbmcoKS5zcGxpdCgvXHMrLykpPi0xO319LHN3YXA6
ZnVuY3Rpb24oZWxlbSxvcHRpb25zLGNhbGxiYWNrKXt2YXIgb2xkPXt9O2Zvcih2
YXIgbmFtZSBpbiBvcHRpb25zKXtvbGRbbmFtZV09ZWxlbS5zdHlsZVtuYW1lXTtl
bGVtLnN0eWxlW25hbWVdPW9wdGlvbnNbbmFtZV07fQpjYWxsYmFjay5jYWxsKGVs
ZW0pO2Zvcih2YXIgbmFtZSBpbiBvcHRpb25zKQplbGVtLnN0eWxlW25hbWVdPW9s
ZFtuYW1lXTt9LGNzczpmdW5jdGlvbihlbGVtLG5hbWUsZm9yY2UsZXh0cmEpe2lm
KG5hbWU9PSJ3aWR0aCJ8fG5hbWU9PSJoZWlnaHQiKXt2YXIgdmFsLHByb3BzPXtw
b3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToi
YmxvY2sifSx3aGljaD1uYW1lPT0id2lkdGgiP1siTGVmdCIsIlJpZ2h0Il06WyJU
b3AiLCJCb3R0b20iXTtmdW5jdGlvbiBnZXRXSCgpe3ZhbD1uYW1lPT0id2lkdGgi
P2VsZW0ub2Zmc2V0V2lkdGg6ZWxlbS5vZmZzZXRIZWlnaHQ7aWYoZXh0cmE9PT0i
Ym9yZGVyIikKcmV0dXJuO2pRdWVyeS5lYWNoKHdoaWNoLGZ1bmN0aW9uKCl7aWYo
IWV4dHJhKQp2YWwtPXBhcnNlRmxvYXQoalF1ZXJ5LmN1ckNTUyhlbGVtLCJwYWRk
aW5nIit0aGlzLHRydWUpKXx8MDtpZihleHRyYT09PSJtYXJnaW4iKQp2YWwrPXBh
cnNlRmxvYXQoalF1ZXJ5LmN1ckNTUyhlbGVtLCJtYXJnaW4iK3RoaXMsdHJ1ZSkp
fHwwO2Vsc2UKdmFsLT1wYXJzZUZsb2F0KGpRdWVyeS5jdXJDU1MoZWxlbSwiYm9y
ZGVyIit0aGlzKyJXaWR0aCIsdHJ1ZSkpfHwwO30pO30KaWYoZWxlbS5vZmZzZXRX
aWR0aCE9PTApCmdldFdIKCk7ZWxzZQpqUXVlcnkuc3dhcChlbGVtLHByb3BzLGdl
dFdIKTtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLnJvdW5kKHZhbCkpO30KcmV0dXJu
IGpRdWVyeS5jdXJDU1MoZWxlbSxuYW1lLGZvcmNlKTt9LGN1ckNTUzpmdW5jdGlv
bihlbGVtLG5hbWUsZm9yY2Upe3ZhciByZXQsc3R5bGU9ZWxlbS5zdHlsZTtpZihu
YW1lPT0ib3BhY2l0eSImJiFqUXVlcnkuc3VwcG9ydC5vcGFjaXR5KXtyZXQ9alF1
ZXJ5LmF0dHIoc3R5bGUsIm9wYWNpdHkiKTtyZXR1cm4gcmV0PT0iIj8iMSI6cmV0
O30KaWYobmFtZS5tYXRjaCgvZmxvYXQvaSkpCm5hbWU9c3R5bGVGbG9hdDtpZigh
Zm9yY2UmJnN0eWxlJiZzdHlsZVtuYW1lXSkKcmV0PXN0eWxlW25hbWVdO2Vsc2Ug
aWYoZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSl7aWYobmFtZS5tYXRjaCgv
ZmxvYXQvaSkpCm5hbWU9ImZsb2F0IjtuYW1lPW5hbWUucmVwbGFjZSgvKFtBLVpd
KS9nLCItJDEiKS50b0xvd2VyQ2FzZSgpO3RyeXt2YXIgY29tcHV0ZWRTdHlsZT1k
ZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW0sbnVsbCk7fWNhdGNoKGUp
e30KaWYoY29tcHV0ZWRTdHlsZSkKcmV0PWNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZShuYW1lKTtpZihuYW1lPT0ib3BhY2l0eSImJnJldD09IiIpCnJldD0i
MSI7fWVsc2UgaWYoZWxlbS5jdXJyZW50U3R5bGUpe3ZhciBjYW1lbENhc2U9bmFt
ZS5yZXBsYWNlKC9cLShcdykvZyxmdW5jdGlvbihhbGwsbGV0dGVyKXtyZXR1cm4g
bGV0dGVyLnRvVXBwZXJDYXNlKCk7fSk7cmV0PWVsZW0uY3VycmVudFN0eWxlW25h
bWVdfHxlbGVtLmN1cnJlbnRTdHlsZVtjYW1lbENhc2VdO2lmKCEvXlxkKyhweCk/
JC9pLnRlc3QocmV0KSYmL15cZC8udGVzdChyZXQpKXt2YXIgbGVmdD1zdHlsZS5s
ZWZ0LHJzTGVmdD1lbGVtLnJ1bnRpbWVTdHlsZS5sZWZ0O2VsZW0ucnVudGltZVN0
eWxlLmxlZnQ9ZWxlbS5jdXJyZW50U3R5bGUubGVmdDtzdHlsZS5sZWZ0PXJldHx8
MDtyZXQ9c3R5bGUucGl4ZWxMZWZ0KyJweCI7c3R5bGUubGVmdD1sZWZ0O2VsZW0u
cnVudGltZVN0eWxlLmxlZnQ9cnNMZWZ0O319CnJldHVybiByZXQ7fSxjbGVhbjpm
dW5jdGlvbihlbGVtcyxjb250ZXh0LGZyYWdtZW50KXtjb250ZXh0PWNvbnRleHR8
fGRvY3VtZW50O2lmKHR5cGVvZiBjb250ZXh0LmNyZWF0ZUVsZW1lbnQ9PT0idW5k
ZWZpbmVkIikKY29udGV4dD1jb250ZXh0Lm93bmVyRG9jdW1lbnR8fGNvbnRleHRb
MF0mJmNvbnRleHRbMF0ub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQ7aWYoIWZyYWdt
ZW50JiZlbGVtcy5sZW5ndGg9PT0xJiZ0eXBlb2YgZWxlbXNbMF09PT0ic3RyaW5n
Iil7dmFyIG1hdGNoPS9ePChcdyspXHMqXC8/PiQvLmV4ZWMoZWxlbXNbMF0pO2lm
KG1hdGNoKQpyZXR1cm5bY29udGV4dC5jcmVhdGVFbGVtZW50KG1hdGNoWzFdKV07
fQp2YXIgcmV0PVtdLHNjcmlwdHM9W10sZGl2PWNvbnRleHQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7alF1ZXJ5LmVhY2goZWxlbXMsZnVuY3Rpb24oaSxlbGVtKXtpZih0
eXBlb2YgZWxlbT09PSJudW1iZXIiKQplbGVtKz0nJztpZighZWxlbSkKcmV0dXJu
O2lmKHR5cGVvZiBlbGVtPT09InN0cmluZyIpe2VsZW09ZWxlbS5yZXBsYWNlKC8o
PChcdyspW14+XSo/KVwvPi9nLGZ1bmN0aW9uKGFsbCxmcm9udCx0YWcpe3JldHVy
biB0YWcubWF0Y2goL14oYWJicnxicnxjb2x8aW1nfGlucHV0fGxpbmt8bWV0YXxw
YXJhbXxocnxhcmVhfGVtYmVkKSQvaSk/YWxsOmZyb250KyI+PC8iK3RhZysiPiI7
fSk7dmFyIHRhZ3M9ZWxlbS5yZXBsYWNlKC9eXHMrLywiIikuc3Vic3RyaW5nKDAs
MTApLnRvTG93ZXJDYXNlKCk7dmFyIHdyYXA9IXRhZ3MuaW5kZXhPZigiPG9wdCIp
JiZbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJd
fHwhdGFncy5pbmRleE9mKCI8bGVnIikmJlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVs
ZHNldD4iXXx8dGFncy5tYXRjaCgvXjwodGhlYWR8dGJvZHl8dGZvb3R8Y29sZ3xj
YXApLykmJlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXXx8IXRhZ3MuaW5kZXhPZigi
PHRyIikmJlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXXx8
KCF0YWdzLmluZGV4T2YoIjx0ZCIpfHwhdGFncy5pbmRleE9mKCI8dGgiKSkmJlsz
LCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXXx8
IXRhZ3MuaW5kZXhPZigiPGNvbCIpJiZbMiwiPHRhYmxlPjx0Ym9keT48L3Rib2R5
Pjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il18fCFqUXVlcnkuc3Vw
cG9ydC5odG1sU2VyaWFsaXplJiZbMSwiZGl2PGRpdj4iLCI8L2Rpdj4iXXx8WzAs
IiIsIiJdO2Rpdi5pbm5lckhUTUw9d3JhcFsxXStlbGVtK3dyYXBbMl07d2hpbGUo
d3JhcFswXS0tKQpkaXY9ZGl2Lmxhc3RDaGlsZDtpZighalF1ZXJ5LnN1cHBvcnQu
dGJvZHkpe3ZhciBoYXNCb2R5PS88dGJvZHkvaS50ZXN0KGVsZW0pLHRib2R5PSF0
YWdzLmluZGV4T2YoIjx0YWJsZSIpJiYhaGFzQm9keT9kaXYuZmlyc3RDaGlsZCYm
ZGl2LmZpcnN0Q2hpbGQuY2hpbGROb2Rlczp3cmFwWzFdPT0iPHRhYmxlPiImJiFo
YXNCb2R5P2Rpdi5jaGlsZE5vZGVzOltdO2Zvcih2YXIgaj10Ym9keS5sZW5ndGgt
MTtqPj0wOy0taikKaWYoalF1ZXJ5Lm5vZGVOYW1lKHRib2R5W2pdLCJ0Ym9keSIp
JiYhdGJvZHlbal0uY2hpbGROb2Rlcy5sZW5ndGgpCnRib2R5W2pdLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQodGJvZHlbal0pO30KaWYoIWpRdWVyeS5zdXBwb3J0Lmxl
YWRpbmdXaGl0ZXNwYWNlJiYvXlxzLy50ZXN0KGVsZW0pKQpkaXYuaW5zZXJ0QmVm
b3JlKGNvbnRleHQuY3JlYXRlVGV4dE5vZGUoZWxlbS5tYXRjaCgvXlxzKi8pWzBd
KSxkaXYuZmlyc3RDaGlsZCk7ZWxlbT1qUXVlcnkubWFrZUFycmF5KGRpdi5jaGls
ZE5vZGVzKTt9CmlmKGVsZW0ubm9kZVR5cGUpCnJldC5wdXNoKGVsZW0pO2Vsc2UK
cmV0PWpRdWVyeS5tZXJnZShyZXQsZWxlbSk7fSk7aWYoZnJhZ21lbnQpe2Zvcih2
YXIgaT0wO3JldFtpXTtpKyspe2lmKGpRdWVyeS5ub2RlTmFtZShyZXRbaV0sInNj
cmlwdCIpJiYoIXJldFtpXS50eXBlfHxyZXRbaV0udHlwZS50b0xvd2VyQ2FzZSgp
PT09InRleHQvamF2YXNjcmlwdCIpKXtzY3JpcHRzLnB1c2gocmV0W2ldLnBhcmVu
dE5vZGU/cmV0W2ldLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocmV0W2ldKTpyZXRb
aV0pO31lbHNle2lmKHJldFtpXS5ub2RlVHlwZT09PTEpCnJldC5zcGxpY2UuYXBw
bHkocmV0LFtpKzEsMF0uY29uY2F0KGpRdWVyeS5tYWtlQXJyYXkocmV0W2ldLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSkpKTtmcmFnbWVudC5hcHBlbmRD
aGlsZChyZXRbaV0pO319CnJldHVybiBzY3JpcHRzO30KcmV0dXJuIHJldDt9LGF0
dHI6ZnVuY3Rpb24oZWxlbSxuYW1lLHZhbHVlKXtpZighZWxlbXx8ZWxlbS5ub2Rl
VHlwZT09M3x8ZWxlbS5ub2RlVHlwZT09OCkKcmV0dXJuIHVuZGVmaW5lZDt2YXIg
bm90eG1sPSFqUXVlcnkuaXNYTUxEb2MoZWxlbSksc2V0PXZhbHVlIT09dW5kZWZp
bmVkO25hbWU9bm90eG1sJiZqUXVlcnkucHJvcHNbbmFtZV18fG5hbWU7aWYoZWxl
bS50YWdOYW1lKXt2YXIgc3BlY2lhbD0vaHJlZnxzcmN8c3R5bGUvLnRlc3QobmFt
ZSk7aWYobmFtZT09InNlbGVjdGVkIiYmZWxlbS5wYXJlbnROb2RlKQplbGVtLnBh
cmVudE5vZGUuc2VsZWN0ZWRJbmRleDtpZihuYW1lIGluIGVsZW0mJm5vdHhtbCYm
IXNwZWNpYWwpe2lmKHNldCl7aWYobmFtZT09InR5cGUiJiZqUXVlcnkubm9kZU5h
bWUoZWxlbSwiaW5wdXQiKSYmZWxlbS5wYXJlbnROb2RlKQp0aHJvdyJ0eXBlIHBy
b3BlcnR5IGNhbid0IGJlIGNoYW5nZWQiO2VsZW1bbmFtZV09dmFsdWU7fQppZihq
UXVlcnkubm9kZU5hbWUoZWxlbSwiZm9ybSIpJiZlbGVtLmdldEF0dHJpYnV0ZU5v
ZGUobmFtZSkpCnJldHVybiBlbGVtLmdldEF0dHJpYnV0ZU5vZGUobmFtZSkubm9k
ZVZhbHVlO2lmKG5hbWU9PSJ0YWJJbmRleCIpe3ZhciBhdHRyaWJ1dGVOb2RlPWVs
ZW0uZ2V0QXR0cmlidXRlTm9kZSgidGFiSW5kZXgiKTtyZXR1cm4gYXR0cmlidXRl
Tm9kZSYmYXR0cmlidXRlTm9kZS5zcGVjaWZpZWQ/YXR0cmlidXRlTm9kZS52YWx1
ZTplbGVtLm5vZGVOYW1lLm1hdGNoKC8oYnV0dG9ufGlucHV0fG9iamVjdHxzZWxl
Y3R8dGV4dGFyZWEpL2kpPzA6ZWxlbS5ub2RlTmFtZS5tYXRjaCgvXihhfGFyZWEp
JC9pKSYmZWxlbS5ocmVmPzA6dW5kZWZpbmVkO30KcmV0dXJuIGVsZW1bbmFtZV07
fQppZighalF1ZXJ5LnN1cHBvcnQuc3R5bGUmJm5vdHhtbCYmbmFtZT09InN0eWxl
IikKcmV0dXJuIGpRdWVyeS5hdHRyKGVsZW0uc3R5bGUsImNzc1RleHQiLHZhbHVl
KTtpZihzZXQpCmVsZW0uc2V0QXR0cmlidXRlKG5hbWUsIiIrdmFsdWUpO3ZhciBh
dHRyPSFqUXVlcnkuc3VwcG9ydC5ocmVmTm9ybWFsaXplZCYmbm90eG1sJiZzcGVj
aWFsP2VsZW0uZ2V0QXR0cmlidXRlKG5hbWUsMik6ZWxlbS5nZXRBdHRyaWJ1dGUo
bmFtZSk7cmV0dXJuIGF0dHI9PT1udWxsP3VuZGVmaW5lZDphdHRyO30KaWYoIWpR
dWVyeS5zdXBwb3J0Lm9wYWNpdHkmJm5hbWU9PSJvcGFjaXR5Iil7aWYoc2V0KXtl
bGVtLnpvb209MTtlbGVtLmZpbHRlcj0oZWxlbS5maWx0ZXJ8fCIiKS5yZXBsYWNl
KC9hbHBoYVwoW14pXSpcKS8sIiIpKwoocGFyc2VJbnQodmFsdWUpKycnPT0iTmFO
Ij8iIjoiYWxwaGEob3BhY2l0eT0iK3ZhbHVlKjEwMCsiKSIpO30KcmV0dXJuIGVs
ZW0uZmlsdGVyJiZlbGVtLmZpbHRlci5pbmRleE9mKCJvcGFjaXR5PSIpPj0wPyhw
YXJzZUZsb2F0KGVsZW0uZmlsdGVyLm1hdGNoKC9vcGFjaXR5PShbXildKikvKVsx
XSkvMTAwKSsnJzoiIjt9Cm5hbWU9bmFtZS5yZXBsYWNlKC8tKFthLXpdKS9pZyxm
dW5jdGlvbihhbGwsbGV0dGVyKXtyZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7
fSk7aWYoc2V0JiZ2YWx1ZSE9J05hTnB4JyYmdmFsdWUhPSdudWxscHgnKQplbGVt
W25hbWVdPXZhbHVlO3JldHVybiBlbGVtW25hbWVdO30sdHJpbTpmdW5jdGlvbih0
ZXh0KXtyZXR1cm4odGV4dHx8IiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKTt9
LG1ha2VBcnJheTpmdW5jdGlvbihhcnJheSl7dmFyIHJldD1bXTtpZihhcnJheSE9
bnVsbCl7dmFyIGk9YXJyYXkubGVuZ3RoO2lmKGk9PW51bGx8fHR5cGVvZiBhcnJh
eT09PSJzdHJpbmcifHxqUXVlcnkuaXNGdW5jdGlvbihhcnJheSl8fGFycmF5LnNl
dEludGVydmFsKQpyZXRbMF09YXJyYXk7ZWxzZQp3aGlsZShpKQpyZXRbLS1pXT1h
cnJheVtpXTt9CnJldHVybiByZXQ7fSxpbkFycmF5OmZ1bmN0aW9uKGVsZW0sYXJy
YXkpe2Zvcih2YXIgaT0wLGxlbmd0aD1hcnJheS5sZW5ndGg7aTxsZW5ndGg7aSsr
KQppZihhcnJheVtpXT09PWVsZW0pCnJldHVybiBpO3JldHVybi0xO30sbWVyZ2U6
ZnVuY3Rpb24oZmlyc3Qsc2Vjb25kKXt2YXIgaT0wLGVsZW0scG9zPWZpcnN0Lmxl
bmd0aDtpZighalF1ZXJ5LnN1cHBvcnQuZ2V0QWxsKXt3aGlsZSgoZWxlbT1zZWNv
bmRbaSsrXSkhPW51bGwpCmlmKGVsZW0ubm9kZVR5cGUhPTgpCmZpcnN0W3Bvcysr
XT1lbGVtO31lbHNlCndoaWxlKChlbGVtPXNlY29uZFtpKytdKSE9bnVsbCkKZmly
c3RbcG9zKytdPWVsZW07cmV0dXJuIGZpcnN0O30sdW5pcXVlOmZ1bmN0aW9uKGFy
cmF5KXt2YXIgcmV0PVtdLGRvbmU9e307dHJ5e2Zvcih2YXIgaT0wLGxlbmd0aD1h
cnJheS5sZW5ndGg7aTxsZW5ndGg7aSsrKXt2YXIgaWQ9alF1ZXJ5LmRhdGEoYXJy
YXlbaV0pO2lmKCFkb25lW2lkXSl7ZG9uZVtpZF09dHJ1ZTtyZXQucHVzaChhcnJh
eVtpXSk7fX19Y2F0Y2goZSl7cmV0PWFycmF5O30KcmV0dXJuIHJldDt9LGdyZXA6
ZnVuY3Rpb24oZWxlbXMsY2FsbGJhY2ssaW52KXt2YXIgcmV0PVtdO2Zvcih2YXIg
aT0wLGxlbmd0aD1lbGVtcy5sZW5ndGg7aTxsZW5ndGg7aSsrKQppZighaW52IT0h
Y2FsbGJhY2soZWxlbXNbaV0saSkpCnJldC5wdXNoKGVsZW1zW2ldKTtyZXR1cm4g
cmV0O30sbWFwOmZ1bmN0aW9uKGVsZW1zLGNhbGxiYWNrKXt2YXIgcmV0PVtdO2Zv
cih2YXIgaT0wLGxlbmd0aD1lbGVtcy5sZW5ndGg7aTxsZW5ndGg7aSsrKXt2YXIg
dmFsdWU9Y2FsbGJhY2soZWxlbXNbaV0saSk7aWYodmFsdWUhPW51bGwpCnJldFty
ZXQubGVuZ3RoXT12YWx1ZTt9CnJldHVybiByZXQuY29uY2F0LmFwcGx5KFtdLHJl
dCk7fX0pO3ZhciB1c2VyQWdlbnQ9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2Vy
Q2FzZSgpO2pRdWVyeS5icm93c2VyPXt2ZXJzaW9uOih1c2VyQWdlbnQubWF0Y2go
Ly4rKD86cnZ8aXR8cmF8aWUpW1wvOiBdKFtcZC5dKykvKXx8WzAsJzAnXSlbMV0s
c2FmYXJpOi93ZWJraXQvLnRlc3QodXNlckFnZW50KSxvcGVyYTovb3BlcmEvLnRl
c3QodXNlckFnZW50KSxtc2llOi9tc2llLy50ZXN0KHVzZXJBZ2VudCkmJiEvb3Bl
cmEvLnRlc3QodXNlckFnZW50KSxtb3ppbGxhOi9tb3ppbGxhLy50ZXN0KHVzZXJB
Z2VudCkmJiEvKGNvbXBhdGlibGV8d2Via2l0KS8udGVzdCh1c2VyQWdlbnQpfTtq
UXVlcnkuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGVsZW0pe3JldHVybiBlbGVtLnBh
cmVudE5vZGU7fSxwYXJlbnRzOmZ1bmN0aW9uKGVsZW0pe3JldHVybiBqUXVlcnku
ZGlyKGVsZW0sInBhcmVudE5vZGUiKTt9LG5leHQ6ZnVuY3Rpb24oZWxlbSl7cmV0
dXJuIGpRdWVyeS5udGgoZWxlbSwyLCJuZXh0U2libGluZyIpO30scHJldjpmdW5j
dGlvbihlbGVtKXtyZXR1cm4galF1ZXJ5Lm50aChlbGVtLDIsInByZXZpb3VzU2li
bGluZyIpO30sbmV4dEFsbDpmdW5jdGlvbihlbGVtKXtyZXR1cm4galF1ZXJ5LmRp
cihlbGVtLCJuZXh0U2libGluZyIpO30scHJldkFsbDpmdW5jdGlvbihlbGVtKXty
ZXR1cm4galF1ZXJ5LmRpcihlbGVtLCJwcmV2aW91c1NpYmxpbmciKTt9LHNpYmxp
bmdzOmZ1bmN0aW9uKGVsZW0pe3JldHVybiBqUXVlcnkuc2libGluZyhlbGVtLnBh
cmVudE5vZGUuZmlyc3RDaGlsZCxlbGVtKTt9LGNoaWxkcmVuOmZ1bmN0aW9uKGVs
ZW0pe3JldHVybiBqUXVlcnkuc2libGluZyhlbGVtLmZpcnN0Q2hpbGQpO30sY29u
dGVudHM6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGpRdWVyeS5ub2RlTmFtZShlbGVt
LCJpZnJhbWUiKT9lbGVtLmNvbnRlbnREb2N1bWVudHx8ZWxlbS5jb250ZW50V2lu
ZG93LmRvY3VtZW50OmpRdWVyeS5tYWtlQXJyYXkoZWxlbS5jaGlsZE5vZGVzKTt9
fSxmdW5jdGlvbihuYW1lLGZuKXtqUXVlcnkuZm5bbmFtZV09ZnVuY3Rpb24oc2Vs
ZWN0b3Ipe3ZhciByZXQ9alF1ZXJ5Lm1hcCh0aGlzLGZuKTtpZihzZWxlY3RvciYm
dHlwZW9mIHNlbGVjdG9yPT0ic3RyaW5nIikKcmV0PWpRdWVyeS5tdWx0aUZpbHRl
cihzZWxlY3RvcixyZXQpO3JldHVybiB0aGlzLnB1c2hTdGFjayhqUXVlcnkudW5p
cXVlKHJldCksbmFtZSxzZWxlY3Rvcik7fTt9KTtqUXVlcnkuZWFjaCh7YXBwZW5k
VG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJl
Zm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0
aCJ9LGZ1bmN0aW9uKG5hbWUsb3JpZ2luYWwpe2pRdWVyeS5mbltuYW1lXT1mdW5j
dGlvbihzZWxlY3Rvcil7dmFyIHJldD1bXSxpbnNlcnQ9alF1ZXJ5KHNlbGVjdG9y
KTtmb3IodmFyIGk9MCxsPWluc2VydC5sZW5ndGg7aTxsO2krKyl7dmFyIGVsZW1z
PShpPjA/dGhpcy5jbG9uZSh0cnVlKTp0aGlzKS5nZXQoKTtqUXVlcnkuZm5bb3Jp
Z2luYWxdLmFwcGx5KGpRdWVyeShpbnNlcnRbaV0pLGVsZW1zKTtyZXQ9cmV0LmNv
bmNhdChlbGVtcyk7fQpyZXR1cm4gdGhpcy5wdXNoU3RhY2socmV0LG5hbWUsc2Vs
ZWN0b3IpO307fSk7alF1ZXJ5LmVhY2goe3JlbW92ZUF0dHI6ZnVuY3Rpb24obmFt
ZSl7alF1ZXJ5LmF0dHIodGhpcyxuYW1lLCIiKTtpZih0aGlzLm5vZGVUeXBlPT0x
KQp0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTt9LGFkZENsYXNzOmZ1bmN0aW9u
KGNsYXNzTmFtZXMpe2pRdWVyeS5jbGFzc05hbWUuYWRkKHRoaXMsY2xhc3NOYW1l
cyk7fSxyZW1vdmVDbGFzczpmdW5jdGlvbihjbGFzc05hbWVzKXtqUXVlcnkuY2xh
c3NOYW1lLnJlbW92ZSh0aGlzLGNsYXNzTmFtZXMpO30sdG9nZ2xlQ2xhc3M6ZnVu
Y3Rpb24oY2xhc3NOYW1lcyxzdGF0ZSl7aWYodHlwZW9mIHN0YXRlIT09ImJvb2xl
YW4iKQpzdGF0ZT0halF1ZXJ5LmNsYXNzTmFtZS5oYXModGhpcyxjbGFzc05hbWVz
KTtqUXVlcnkuY2xhc3NOYW1lW3N0YXRlPyJhZGQiOiJyZW1vdmUiXSh0aGlzLGNs
YXNzTmFtZXMpO30scmVtb3ZlOmZ1bmN0aW9uKHNlbGVjdG9yKXtpZighc2VsZWN0
b3J8fGpRdWVyeS5maWx0ZXIoc2VsZWN0b3IsW3RoaXNdKS5sZW5ndGgpe2pRdWVy
eSgiKiIsdGhpcykuYWRkKFt0aGlzXSkuZWFjaChmdW5jdGlvbigpe2pRdWVyeS5l
dmVudC5yZW1vdmUodGhpcyk7alF1ZXJ5LnJlbW92ZURhdGEodGhpcyk7fSk7aWYo
dGhpcy5wYXJlbnROb2RlKQp0aGlzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhp
cyk7fX0sZW1wdHk6ZnVuY3Rpb24oKXtqUXVlcnkodGhpcykuY2hpbGRyZW4oKS5y
ZW1vdmUoKTt3aGlsZSh0aGlzLmZpcnN0Q2hpbGQpCnRoaXMucmVtb3ZlQ2hpbGQo
dGhpcy5maXJzdENoaWxkKTt9fSxmdW5jdGlvbihuYW1lLGZuKXtqUXVlcnkuZm5b
bmFtZV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZuLGFyZ3VtZW50cyk7
fTt9KTtmdW5jdGlvbiBudW0oZWxlbSxwcm9wKXtyZXR1cm4gZWxlbVswXSYmcGFy
c2VJbnQoalF1ZXJ5LmN1ckNTUyhlbGVtWzBdLHByb3AsdHJ1ZSksMTApfHwwO30K
dmFyIGV4cGFuZG89ImpRdWVyeSIrbm93KCksdXVpZD0wLHdpbmRvd0RhdGE9e307
alF1ZXJ5LmV4dGVuZCh7Y2FjaGU6e30sZGF0YTpmdW5jdGlvbihlbGVtLG5hbWUs
ZGF0YSl7ZWxlbT1lbGVtPT13aW5kb3c/d2luZG93RGF0YTplbGVtO3ZhciBpZD1l
bGVtW2V4cGFuZG9dO2lmKCFpZCkKaWQ9ZWxlbVtleHBhbmRvXT0rK3V1aWQ7aWYo
bmFtZSYmIWpRdWVyeS5jYWNoZVtpZF0pCmpRdWVyeS5jYWNoZVtpZF09e307aWYo
ZGF0YSE9PXVuZGVmaW5lZCkKalF1ZXJ5LmNhY2hlW2lkXVtuYW1lXT1kYXRhO3Jl
dHVybiBuYW1lP2pRdWVyeS5jYWNoZVtpZF1bbmFtZV06aWQ7fSxyZW1vdmVEYXRh
OmZ1bmN0aW9uKGVsZW0sbmFtZSl7ZWxlbT1lbGVtPT13aW5kb3c/d2luZG93RGF0
YTplbGVtO3ZhciBpZD1lbGVtW2V4cGFuZG9dO2lmKG5hbWUpe2lmKGpRdWVyeS5j
YWNoZVtpZF0pe2RlbGV0ZSBqUXVlcnkuY2FjaGVbaWRdW25hbWVdO25hbWU9IiI7
Zm9yKG5hbWUgaW4galF1ZXJ5LmNhY2hlW2lkXSkKYnJlYWs7aWYoIW5hbWUpCmpR
dWVyeS5yZW1vdmVEYXRhKGVsZW0pO319ZWxzZXt0cnl7ZGVsZXRlIGVsZW1bZXhw
YW5kb107fWNhdGNoKGUpe2lmKGVsZW0ucmVtb3ZlQXR0cmlidXRlKQplbGVtLnJl
bW92ZUF0dHJpYnV0ZShleHBhbmRvKTt9CmRlbGV0ZSBqUXVlcnkuY2FjaGVbaWRd
O319LHF1ZXVlOmZ1bmN0aW9uKGVsZW0sdHlwZSxkYXRhKXtpZihlbGVtKXt0eXBl
PSh0eXBlfHwiZngiKSsicXVldWUiO3ZhciBxPWpRdWVyeS5kYXRhKGVsZW0sdHlw
ZSk7aWYoIXF8fGpRdWVyeS5pc0FycmF5KGRhdGEpKQpxPWpRdWVyeS5kYXRhKGVs
ZW0sdHlwZSxqUXVlcnkubWFrZUFycmF5KGRhdGEpKTtlbHNlIGlmKGRhdGEpCnEu
cHVzaChkYXRhKTt9CnJldHVybiBxO30sZGVxdWV1ZTpmdW5jdGlvbihlbGVtLHR5
cGUpe3ZhciBxdWV1ZT1qUXVlcnkucXVldWUoZWxlbSx0eXBlKSxmbj1xdWV1ZS5z
aGlmdCgpO2lmKCF0eXBlfHx0eXBlPT09ImZ4IikKZm49cXVldWVbMF07aWYoZm4h
PT11bmRlZmluZWQpCmZuLmNhbGwoZWxlbSk7fX0pO2pRdWVyeS5mbi5leHRlbmQo
e2RhdGE6ZnVuY3Rpb24oa2V5LHZhbHVlKXt2YXIgcGFydHM9a2V5LnNwbGl0KCIu
Iik7cGFydHNbMV09cGFydHNbMV0/Ii4iK3BhcnRzWzFdOiIiO2lmKHZhbHVlPT09
dW5kZWZpbmVkKXt2YXIgZGF0YT10aGlzLnRyaWdnZXJIYW5kbGVyKCJnZXREYXRh
IitwYXJ0c1sxXSsiISIsW3BhcnRzWzBdXSk7aWYoZGF0YT09PXVuZGVmaW5lZCYm
dGhpcy5sZW5ndGgpCmRhdGE9alF1ZXJ5LmRhdGEodGhpc1swXSxrZXkpO3JldHVy
biBkYXRhPT09dW5kZWZpbmVkJiZwYXJ0c1sxXT90aGlzLmRhdGEocGFydHNbMF0p
OmRhdGE7fWVsc2UKcmV0dXJuIHRoaXMudHJpZ2dlcigic2V0RGF0YSIrcGFydHNb
MV0rIiEiLFtwYXJ0c1swXSx2YWx1ZV0pLmVhY2goZnVuY3Rpb24oKXtqUXVlcnku
ZGF0YSh0aGlzLGtleSx2YWx1ZSk7fSk7fSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGtl
eSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2pRdWVyeS5yZW1vdmVEYXRh
KHRoaXMsa2V5KTt9KTt9LHF1ZXVlOmZ1bmN0aW9uKHR5cGUsZGF0YSl7aWYodHlw
ZW9mIHR5cGUhPT0ic3RyaW5nIil7ZGF0YT10eXBlO3R5cGU9ImZ4Ijt9CmlmKGRh
dGE9PT11bmRlZmluZWQpCnJldHVybiBqUXVlcnkucXVldWUodGhpc1swXSx0eXBl
KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHF1ZXVlPWpRdWVyeS5x
dWV1ZSh0aGlzLHR5cGUsZGF0YSk7aWYodHlwZT09ImZ4IiYmcXVldWUubGVuZ3Ro
PT0xKQpxdWV1ZVswXS5jYWxsKHRoaXMpO30pO30sZGVxdWV1ZTpmdW5jdGlvbih0
eXBlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7alF1ZXJ5LmRlcXVldWUo
dGhpcyx0eXBlKTt9KTt9fSk7KGZ1bmN0aW9uKCl7dmFyIGNodW5rZXI9LygoPzpc
KCg/OlwoW14oKV0rXCl8W14oKV0rKStcKXxcWyg/OlxbW15bXF1dKlxdfFsnIl1b
XiciXSpbJyJdfFteW1xdJyJdKykrXF18XFwufFteID4rfiwoXFtcXF0rKSt8Wz4r
fl0pKFxzKixccyopPy9nLGRvbmU9MCx0b1N0cmluZz1PYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nO3ZhciBTaXp6bGU9ZnVuY3Rpb24oc2VsZWN0b3IsY29udGV4dCxy
ZXN1bHRzLHNlZWQpe3Jlc3VsdHM9cmVzdWx0c3x8W107Y29udGV4dD1jb250ZXh0
fHxkb2N1bWVudDtpZihjb250ZXh0Lm5vZGVUeXBlIT09MSYmY29udGV4dC5ub2Rl
VHlwZSE9PTkpCnJldHVybltdO2lmKCFzZWxlY3Rvcnx8dHlwZW9mIHNlbGVjdG9y
IT09InN0cmluZyIpe3JldHVybiByZXN1bHRzO30KdmFyIHBhcnRzPVtdLG0sc2V0
LGNoZWNrU2V0LGNoZWNrLG1vZGUsZXh0cmEscHJ1bmU9dHJ1ZTtjaHVua2VyLmxh
c3RJbmRleD0wO3doaWxlKChtPWNodW5rZXIuZXhlYyhzZWxlY3RvcikpIT09bnVs
bCl7cGFydHMucHVzaChtWzFdKTtpZihtWzJdKXtleHRyYT1SZWdFeHAucmlnaHRD
b250ZXh0O2JyZWFrO319CmlmKHBhcnRzLmxlbmd0aD4xJiZvcmlnUE9TLmV4ZWMo
c2VsZWN0b3IpKXtpZihwYXJ0cy5sZW5ndGg9PT0yJiZFeHByLnJlbGF0aXZlW3Bh
cnRzWzBdXSl7c2V0PXBvc1Byb2Nlc3MocGFydHNbMF0rcGFydHNbMV0sY29udGV4
dCk7fWVsc2V7c2V0PUV4cHIucmVsYXRpdmVbcGFydHNbMF1dP1tjb250ZXh0XTpT
aXp6bGUocGFydHMuc2hpZnQoKSxjb250ZXh0KTt3aGlsZShwYXJ0cy5sZW5ndGgp
e3NlbGVjdG9yPXBhcnRzLnNoaWZ0KCk7aWYoRXhwci5yZWxhdGl2ZVtzZWxlY3Rv
cl0pCnNlbGVjdG9yKz1wYXJ0cy5zaGlmdCgpO3NldD1wb3NQcm9jZXNzKHNlbGVj
dG9yLHNldCk7fX19ZWxzZXt2YXIgcmV0PXNlZWQ/e2V4cHI6cGFydHMucG9wKCks
c2V0Om1ha2VBcnJheShzZWVkKX06U2l6emxlLmZpbmQocGFydHMucG9wKCkscGFy
dHMubGVuZ3RoPT09MSYmY29udGV4dC5wYXJlbnROb2RlP2NvbnRleHQucGFyZW50
Tm9kZTpjb250ZXh0LGlzWE1MKGNvbnRleHQpKTtzZXQ9U2l6emxlLmZpbHRlcihy
ZXQuZXhwcixyZXQuc2V0KTtpZihwYXJ0cy5sZW5ndGg+MCl7Y2hlY2tTZXQ9bWFr
ZUFycmF5KHNldCk7fWVsc2V7cHJ1bmU9ZmFsc2U7fQp3aGlsZShwYXJ0cy5sZW5n
dGgpe3ZhciBjdXI9cGFydHMucG9wKCkscG9wPWN1cjtpZighRXhwci5yZWxhdGl2
ZVtjdXJdKXtjdXI9IiI7fWVsc2V7cG9wPXBhcnRzLnBvcCgpO30KaWYocG9wPT1u
dWxsKXtwb3A9Y29udGV4dDt9CkV4cHIucmVsYXRpdmVbY3VyXShjaGVja1NldCxw
b3AsaXNYTUwoY29udGV4dCkpO319CmlmKCFjaGVja1NldCl7Y2hlY2tTZXQ9c2V0
O30KaWYoIWNoZWNrU2V0KXt0aHJvdyJTeW50YXggZXJyb3IsIHVucmVjb2duaXpl
ZCBleHByZXNzaW9uOiAiKyhjdXJ8fHNlbGVjdG9yKTt9CmlmKHRvU3RyaW5nLmNh
bGwoY2hlY2tTZXQpPT09IltvYmplY3QgQXJyYXldIil7aWYoIXBydW5lKXtyZXN1
bHRzLnB1c2guYXBwbHkocmVzdWx0cyxjaGVja1NldCk7fWVsc2UgaWYoY29udGV4
dC5ub2RlVHlwZT09PTEpe2Zvcih2YXIgaT0wO2NoZWNrU2V0W2ldIT1udWxsO2kr
Kyl7aWYoY2hlY2tTZXRbaV0mJihjaGVja1NldFtpXT09PXRydWV8fGNoZWNrU2V0
W2ldLm5vZGVUeXBlPT09MSYmY29udGFpbnMoY29udGV4dCxjaGVja1NldFtpXSkp
KXtyZXN1bHRzLnB1c2goc2V0W2ldKTt9fX1lbHNle2Zvcih2YXIgaT0wO2NoZWNr
U2V0W2ldIT1udWxsO2krKyl7aWYoY2hlY2tTZXRbaV0mJmNoZWNrU2V0W2ldLm5v
ZGVUeXBlPT09MSl7cmVzdWx0cy5wdXNoKHNldFtpXSk7fX19fWVsc2V7bWFrZUFy
cmF5KGNoZWNrU2V0LHJlc3VsdHMpO30KaWYoZXh0cmEpe1NpenpsZShleHRyYSxj
b250ZXh0LHJlc3VsdHMsc2VlZCk7aWYoc29ydE9yZGVyKXtoYXNEdXBsaWNhdGU9
ZmFsc2U7cmVzdWx0cy5zb3J0KHNvcnRPcmRlcik7aWYoaGFzRHVwbGljYXRlKXtm
b3IodmFyIGk9MTtpPHJlc3VsdHMubGVuZ3RoO2krKyl7aWYocmVzdWx0c1tpXT09
PXJlc3VsdHNbaS0xXSl7cmVzdWx0cy5zcGxpY2UoaS0tLDEpO319fX19CnJldHVy
biByZXN1bHRzO307U2l6emxlLm1hdGNoZXM9ZnVuY3Rpb24oZXhwcixzZXQpe3Jl
dHVybiBTaXp6bGUoZXhwcixudWxsLG51bGwsc2V0KTt9O1NpenpsZS5maW5kPWZ1
bmN0aW9uKGV4cHIsY29udGV4dCxpc1hNTCl7dmFyIHNldCxtYXRjaDtpZighZXhw
cil7cmV0dXJuW107fQpmb3IodmFyIGk9MCxsPUV4cHIub3JkZXIubGVuZ3RoO2k8
bDtpKyspe3ZhciB0eXBlPUV4cHIub3JkZXJbaV0sbWF0Y2g7aWYoKG1hdGNoPUV4
cHIubWF0Y2hbdHlwZV0uZXhlYyhleHByKSkpe3ZhciBsZWZ0PVJlZ0V4cC5sZWZ0
Q29udGV4dDtpZihsZWZ0LnN1YnN0cihsZWZ0Lmxlbmd0aC0xKSE9PSJcXCIpe21h
dGNoWzFdPShtYXRjaFsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO3NldD1FeHBy
LmZpbmRbdHlwZV0obWF0Y2gsY29udGV4dCxpc1hNTCk7aWYoc2V0IT1udWxsKXtl
eHByPWV4cHIucmVwbGFjZShFeHByLm1hdGNoW3R5cGVdLCIiKTticmVhazt9fX19
CmlmKCFzZXQpe3NldD1jb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIik7
fQpyZXR1cm57c2V0OnNldCxleHByOmV4cHJ9O307U2l6emxlLmZpbHRlcj1mdW5j
dGlvbihleHByLHNldCxpbnBsYWNlLG5vdCl7dmFyIG9sZD1leHByLHJlc3VsdD1b
XSxjdXJMb29wPXNldCxtYXRjaCxhbnlGb3VuZCxpc1hNTEZpbHRlcj1zZXQmJnNl
dFswXSYmaXNYTUwoc2V0WzBdKTt3aGlsZShleHByJiZzZXQubGVuZ3RoKXtmb3Io
dmFyIHR5cGUgaW4gRXhwci5maWx0ZXIpe2lmKChtYXRjaD1FeHByLm1hdGNoW3R5
cGVdLmV4ZWMoZXhwcikpIT1udWxsKXt2YXIgZmlsdGVyPUV4cHIuZmlsdGVyW3R5
cGVdLGZvdW5kLGl0ZW07YW55Rm91bmQ9ZmFsc2U7aWYoY3VyTG9vcD09cmVzdWx0
KXtyZXN1bHQ9W107fQppZihFeHByLnByZUZpbHRlclt0eXBlXSl7bWF0Y2g9RXhw
ci5wcmVGaWx0ZXJbdHlwZV0obWF0Y2gsY3VyTG9vcCxpbnBsYWNlLHJlc3VsdCxu
b3QsaXNYTUxGaWx0ZXIpO2lmKCFtYXRjaCl7YW55Rm91bmQ9Zm91bmQ9dHJ1ZTt9
ZWxzZSBpZihtYXRjaD09PXRydWUpe2NvbnRpbnVlO319CmlmKG1hdGNoKXtmb3Io
dmFyIGk9MDsoaXRlbT1jdXJMb29wW2ldKSE9bnVsbDtpKyspe2lmKGl0ZW0pe2Zv
dW5kPWZpbHRlcihpdGVtLG1hdGNoLGksY3VyTG9vcCk7dmFyIHBhc3M9bm90XiEh
Zm91bmQ7aWYoaW5wbGFjZSYmZm91bmQhPW51bGwpe2lmKHBhc3Mpe2FueUZvdW5k
PXRydWU7fWVsc2V7Y3VyTG9vcFtpXT1mYWxzZTt9fWVsc2UgaWYocGFzcyl7cmVz
dWx0LnB1c2goaXRlbSk7YW55Rm91bmQ9dHJ1ZTt9fX19CmlmKGZvdW5kIT09dW5k
ZWZpbmVkKXtpZighaW5wbGFjZSl7Y3VyTG9vcD1yZXN1bHQ7fQpleHByPWV4cHIu
cmVwbGFjZShFeHByLm1hdGNoW3R5cGVdLCIiKTtpZighYW55Rm91bmQpe3JldHVy
bltdO30KYnJlYWs7fX19CmlmKGV4cHI9PW9sZCl7aWYoYW55Rm91bmQ9PW51bGwp
e3Rocm93IlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIr
ZXhwcjt9ZWxzZXticmVhazt9fQpvbGQ9ZXhwcjt9CnJldHVybiBjdXJMb29wO307
dmFyIEV4cHI9U2l6emxlLnNlbGVjdG9ycz17b3JkZXI6WyJJRCIsIk5BTUUiLCJU
QUciXSxtYXRjaDp7SUQ6LyMoKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKykv
LENMQVNTOi9cLigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKS8sTkFNRTov
XFtuYW1lPVsnIl0qKCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspWyciXSpc
XS8sQVRUUjovXFtccyooKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKylccyoo
PzooXFM/PSlccyooWyciXSopKC4qPylcM3wpXHMqXF0vLFRBRzovXigoPzpbXHdc
dTAwYzAtXHVGRkZGXCpfLV18XFwuKSspLyxDSElMRDovOihvbmx5fG50aHxsYXN0
fGZpcnN0KS1jaGlsZCg/OlwoKGV2ZW58b2RkfFtcZG4rLV0qKVwpKT8vLFBPUzov
OihudGh8ZXF8Z3R8bHR8Zmlyc3R8bGFzdHxldmVufG9kZCkoPzpcKChcZCopXCkp
Pyg/PVteLV18JCkvLFBTRVVETzovOigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxc
LikrKSg/OlwoKFsnIl0qKSgoPzpcKFteXCldK1wpfFteXDJcKFwpXSopKylcMlwp
KT8vfSxhdHRyTWFwOnsiY2xhc3MiOiJjbGFzc05hbWUiLCJmb3IiOiJodG1sRm9y
In0sYXR0ckhhbmRsZTp7aHJlZjpmdW5jdGlvbihlbGVtKXtyZXR1cm4gZWxlbS5n
ZXRBdHRyaWJ1dGUoImhyZWYiKTt9fSxyZWxhdGl2ZTp7IisiOmZ1bmN0aW9uKGNo
ZWNrU2V0LHBhcnQsaXNYTUwpe3ZhciBpc1BhcnRTdHI9dHlwZW9mIHBhcnQ9PT0i
c3RyaW5nIixpc1RhZz1pc1BhcnRTdHImJiEvXFcvLnRlc3QocGFydCksaXNQYXJ0
U3RyTm90VGFnPWlzUGFydFN0ciYmIWlzVGFnO2lmKGlzVGFnJiYhaXNYTUwpe3Bh
cnQ9cGFydC50b1VwcGVyQ2FzZSgpO30KZm9yKHZhciBpPTAsbD1jaGVja1NldC5s
ZW5ndGgsZWxlbTtpPGw7aSsrKXtpZigoZWxlbT1jaGVja1NldFtpXSkpe3doaWxl
KChlbGVtPWVsZW0ucHJldmlvdXNTaWJsaW5nKSYmZWxlbS5ub2RlVHlwZSE9PTEp
e30KY2hlY2tTZXRbaV09aXNQYXJ0U3RyTm90VGFnfHxlbGVtJiZlbGVtLm5vZGVO
YW1lPT09cGFydD9lbGVtfHxmYWxzZTplbGVtPT09cGFydDt9fQppZihpc1BhcnRT
dHJOb3RUYWcpe1NpenpsZS5maWx0ZXIocGFydCxjaGVja1NldCx0cnVlKTt9fSwi
PiI6ZnVuY3Rpb24oY2hlY2tTZXQscGFydCxpc1hNTCl7dmFyIGlzUGFydFN0cj10
eXBlb2YgcGFydD09PSJzdHJpbmciO2lmKGlzUGFydFN0ciYmIS9cVy8udGVzdChw
YXJ0KSl7cGFydD1pc1hNTD9wYXJ0OnBhcnQudG9VcHBlckNhc2UoKTtmb3IodmFy
IGk9MCxsPWNoZWNrU2V0Lmxlbmd0aDtpPGw7aSsrKXt2YXIgZWxlbT1jaGVja1Nl
dFtpXTtpZihlbGVtKXt2YXIgcGFyZW50PWVsZW0ucGFyZW50Tm9kZTtjaGVja1Nl
dFtpXT1wYXJlbnQubm9kZU5hbWU9PT1wYXJ0P3BhcmVudDpmYWxzZTt9fX1lbHNl
e2Zvcih2YXIgaT0wLGw9Y2hlY2tTZXQubGVuZ3RoO2k8bDtpKyspe3ZhciBlbGVt
PWNoZWNrU2V0W2ldO2lmKGVsZW0pe2NoZWNrU2V0W2ldPWlzUGFydFN0cj9lbGVt
LnBhcmVudE5vZGU6ZWxlbS5wYXJlbnROb2RlPT09cGFydDt9fQppZihpc1BhcnRT
dHIpe1NpenpsZS5maWx0ZXIocGFydCxjaGVja1NldCx0cnVlKTt9fX0sIiI6ZnVu
Y3Rpb24oY2hlY2tTZXQscGFydCxpc1hNTCl7dmFyIGRvbmVOYW1lPWRvbmUrKyxj
aGVja0ZuPWRpckNoZWNrO2lmKCFwYXJ0Lm1hdGNoKC9cVy8pKXt2YXIgbm9kZUNo
ZWNrPXBhcnQ9aXNYTUw/cGFydDpwYXJ0LnRvVXBwZXJDYXNlKCk7Y2hlY2tGbj1k
aXJOb2RlQ2hlY2s7fQpjaGVja0ZuKCJwYXJlbnROb2RlIixwYXJ0LGRvbmVOYW1l
LGNoZWNrU2V0LG5vZGVDaGVjayxpc1hNTCk7fSwifiI6ZnVuY3Rpb24oY2hlY2tT
ZXQscGFydCxpc1hNTCl7dmFyIGRvbmVOYW1lPWRvbmUrKyxjaGVja0ZuPWRpckNo
ZWNrO2lmKHR5cGVvZiBwYXJ0PT09InN0cmluZyImJiFwYXJ0Lm1hdGNoKC9cVy8p
KXt2YXIgbm9kZUNoZWNrPXBhcnQ9aXNYTUw/cGFydDpwYXJ0LnRvVXBwZXJDYXNl
KCk7Y2hlY2tGbj1kaXJOb2RlQ2hlY2s7fQpjaGVja0ZuKCJwcmV2aW91c1NpYmxp
bmciLHBhcnQsZG9uZU5hbWUsY2hlY2tTZXQsbm9kZUNoZWNrLGlzWE1MKTt9fSxm
aW5kOntJRDpmdW5jdGlvbihtYXRjaCxjb250ZXh0LGlzWE1MKXtpZih0eXBlb2Yg
Y29udGV4dC5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhaXNYTUwpe3Zh
ciBtPWNvbnRleHQuZ2V0RWxlbWVudEJ5SWQobWF0Y2hbMV0pO3JldHVybiBtP1tt
XTpbXTt9fSxOQU1FOmZ1bmN0aW9uKG1hdGNoLGNvbnRleHQsaXNYTUwpe2lmKHR5
cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlOYW1lIT09InVuZGVmaW5lZCIpe3Zh
ciByZXQ9W10scmVzdWx0cz1jb250ZXh0LmdldEVsZW1lbnRzQnlOYW1lKG1hdGNo
WzFdKTtmb3IodmFyIGk9MCxsPXJlc3VsdHMubGVuZ3RoO2k8bDtpKyspe2lmKHJl
c3VsdHNbaV0uZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1tYXRjaFsxXSl7cmV0LnB1
c2gocmVzdWx0c1tpXSk7fX0KcmV0dXJuIHJldC5sZW5ndGg9PT0wP251bGw6cmV0
O319LFRBRzpmdW5jdGlvbihtYXRjaCxjb250ZXh0KXtyZXR1cm4gY29udGV4dC5n
ZXRFbGVtZW50c0J5VGFnTmFtZShtYXRjaFsxXSk7fX0scHJlRmlsdGVyOntDTEFT
UzpmdW5jdGlvbihtYXRjaCxjdXJMb29wLGlucGxhY2UscmVzdWx0LG5vdCxpc1hN
TCl7bWF0Y2g9IiAiK21hdGNoWzFdLnJlcGxhY2UoL1xcL2csIiIpKyIgIjtpZihp
c1hNTCl7cmV0dXJuIG1hdGNoO30KZm9yKHZhciBpPTAsZWxlbTsoZWxlbT1jdXJM
b29wW2ldKSE9bnVsbDtpKyspe2lmKGVsZW0pe2lmKG5vdF4oZWxlbS5jbGFzc05h
bWUmJigiICIrZWxlbS5jbGFzc05hbWUrIiAiKS5pbmRleE9mKG1hdGNoKT49MCkp
e2lmKCFpbnBsYWNlKQpyZXN1bHQucHVzaChlbGVtKTt9ZWxzZSBpZihpbnBsYWNl
KXtjdXJMb29wW2ldPWZhbHNlO319fQpyZXR1cm4gZmFsc2U7fSxJRDpmdW5jdGlv
bihtYXRjaCl7cmV0dXJuIG1hdGNoWzFdLnJlcGxhY2UoL1xcL2csIiIpO30sVEFH
OmZ1bmN0aW9uKG1hdGNoLGN1ckxvb3Ape2Zvcih2YXIgaT0wO2N1ckxvb3BbaV09
PT1mYWxzZTtpKyspe30KcmV0dXJuIGN1ckxvb3BbaV0mJmlzWE1MKGN1ckxvb3Bb
aV0pP21hdGNoWzFdOm1hdGNoWzFdLnRvVXBwZXJDYXNlKCk7fSxDSElMRDpmdW5j
dGlvbihtYXRjaCl7aWYobWF0Y2hbMV09PSJudGgiKXt2YXIgdGVzdD0vKC0/KShc
ZCopbigoPzpcK3wtKT9cZCopLy5leGVjKG1hdGNoWzJdPT0iZXZlbiImJiIybiJ8
fG1hdGNoWzJdPT0ib2RkIiYmIjJuKzEifHwhL1xELy50ZXN0KG1hdGNoWzJdKSYm
IjBuKyIrbWF0Y2hbMl18fG1hdGNoWzJdKTttYXRjaFsyXT0odGVzdFsxXSsodGVz
dFsyXXx8MSkpLTA7bWF0Y2hbM109dGVzdFszXS0wO30KbWF0Y2hbMF09ZG9uZSsr
O3JldHVybiBtYXRjaDt9LEFUVFI6ZnVuY3Rpb24obWF0Y2gsY3VyTG9vcCxpbnBs
YWNlLHJlc3VsdCxub3QsaXNYTUwpe3ZhciBuYW1lPW1hdGNoWzFdLnJlcGxhY2Uo
L1xcL2csIiIpO2lmKCFpc1hNTCYmRXhwci5hdHRyTWFwW25hbWVdKXttYXRjaFsx
XT1FeHByLmF0dHJNYXBbbmFtZV07fQppZihtYXRjaFsyXT09PSJ+PSIpe21hdGNo
WzRdPSIgIittYXRjaFs0XSsiICI7fQpyZXR1cm4gbWF0Y2g7fSxQU0VVRE86ZnVu
Y3Rpb24obWF0Y2gsY3VyTG9vcCxpbnBsYWNlLHJlc3VsdCxub3Qpe2lmKG1hdGNo
WzFdPT09Im5vdCIpe2lmKG1hdGNoWzNdLm1hdGNoKGNodW5rZXIpLmxlbmd0aD4x
fHwvXlx3Ly50ZXN0KG1hdGNoWzNdKSl7bWF0Y2hbM109U2l6emxlKG1hdGNoWzNd
LG51bGwsbnVsbCxjdXJMb29wKTt9ZWxzZXt2YXIgcmV0PVNpenpsZS5maWx0ZXIo
bWF0Y2hbM10sY3VyTG9vcCxpbnBsYWNlLHRydWVebm90KTtpZighaW5wbGFjZSl7
cmVzdWx0LnB1c2guYXBwbHkocmVzdWx0LHJldCk7fQpyZXR1cm4gZmFsc2U7fX1l
bHNlIGlmKEV4cHIubWF0Y2guUE9TLnRlc3QobWF0Y2hbMF0pfHxFeHByLm1hdGNo
LkNISUxELnRlc3QobWF0Y2hbMF0pKXtyZXR1cm4gdHJ1ZTt9CnJldHVybiBtYXRj
aDt9LFBPUzpmdW5jdGlvbihtYXRjaCl7bWF0Y2gudW5zaGlmdCh0cnVlKTtyZXR1
cm4gbWF0Y2g7fX0sZmlsdGVyczp7ZW5hYmxlZDpmdW5jdGlvbihlbGVtKXtyZXR1
cm4gZWxlbS5kaXNhYmxlZD09PWZhbHNlJiZlbGVtLnR5cGUhPT0iaGlkZGVuIjt9
LGRpc2FibGVkOmZ1bmN0aW9uKGVsZW0pe3JldHVybiBlbGVtLmRpc2FibGVkPT09
dHJ1ZTt9LGNoZWNrZWQ6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGVsZW0uY2hlY2tl
ZD09PXRydWU7fSxzZWxlY3RlZDpmdW5jdGlvbihlbGVtKXtlbGVtLnBhcmVudE5v
ZGUuc2VsZWN0ZWRJbmRleDtyZXR1cm4gZWxlbS5zZWxlY3RlZD09PXRydWU7fSxw
YXJlbnQ6ZnVuY3Rpb24oZWxlbSl7cmV0dXJuISFlbGVtLmZpcnN0Q2hpbGQ7fSxl
bXB0eTpmdW5jdGlvbihlbGVtKXtyZXR1cm4hZWxlbS5maXJzdENoaWxkO30saGFz
OmZ1bmN0aW9uKGVsZW0saSxtYXRjaCl7cmV0dXJuISFTaXp6bGUobWF0Y2hbM10s
ZWxlbSkubGVuZ3RoO30saGVhZGVyOmZ1bmN0aW9uKGVsZW0pe3JldHVybi9oXGQv
aS50ZXN0KGVsZW0ubm9kZU5hbWUpO30sdGV4dDpmdW5jdGlvbihlbGVtKXtyZXR1
cm4idGV4dCI9PT1lbGVtLnR5cGU7fSxyYWRpbzpmdW5jdGlvbihlbGVtKXtyZXR1
cm4icmFkaW8iPT09ZWxlbS50eXBlO30sY2hlY2tib3g6ZnVuY3Rpb24oZWxlbSl7
cmV0dXJuImNoZWNrYm94Ij09PWVsZW0udHlwZTt9LGZpbGU6ZnVuY3Rpb24oZWxl
bSl7cmV0dXJuImZpbGUiPT09ZWxlbS50eXBlO30scGFzc3dvcmQ6ZnVuY3Rpb24o
ZWxlbSl7cmV0dXJuInBhc3N3b3JkIj09PWVsZW0udHlwZTt9LHN1Ym1pdDpmdW5j
dGlvbihlbGVtKXtyZXR1cm4ic3VibWl0Ij09PWVsZW0udHlwZTt9LGltYWdlOmZ1
bmN0aW9uKGVsZW0pe3JldHVybiJpbWFnZSI9PT1lbGVtLnR5cGU7fSxyZXNldDpm
dW5jdGlvbihlbGVtKXtyZXR1cm4icmVzZXQiPT09ZWxlbS50eXBlO30sYnV0dG9u
OmZ1bmN0aW9uKGVsZW0pe3JldHVybiJidXR0b24iPT09ZWxlbS50eXBlfHxlbGVt
Lm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT0iQlVUVE9OIjt9LGlucHV0OmZ1bmN0
aW9uKGVsZW0pe3JldHVybi9pbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uL2ku
dGVzdChlbGVtLm5vZGVOYW1lKTt9fSxzZXRGaWx0ZXJzOntmaXJzdDpmdW5jdGlv
bihlbGVtLGkpe3JldHVybiBpPT09MDt9LGxhc3Q6ZnVuY3Rpb24oZWxlbSxpLG1h
dGNoLGFycmF5KXtyZXR1cm4gaT09PWFycmF5Lmxlbmd0aC0xO30sZXZlbjpmdW5j
dGlvbihlbGVtLGkpe3JldHVybiBpJTI9PT0wO30sb2RkOmZ1bmN0aW9uKGVsZW0s
aSl7cmV0dXJuIGklMj09PTE7fSxsdDpmdW5jdGlvbihlbGVtLGksbWF0Y2gpe3Jl
dHVybiBpPG1hdGNoWzNdLTA7fSxndDpmdW5jdGlvbihlbGVtLGksbWF0Y2gpe3Jl
dHVybiBpPm1hdGNoWzNdLTA7fSxudGg6ZnVuY3Rpb24oZWxlbSxpLG1hdGNoKXty
ZXR1cm4gbWF0Y2hbM10tMD09aTt9LGVxOmZ1bmN0aW9uKGVsZW0saSxtYXRjaCl7
cmV0dXJuIG1hdGNoWzNdLTA9PWk7fX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24o
ZWxlbSxtYXRjaCxpLGFycmF5KXt2YXIgbmFtZT1tYXRjaFsxXSxmaWx0ZXI9RXhw
ci5maWx0ZXJzW25hbWVdO2lmKGZpbHRlcil7cmV0dXJuIGZpbHRlcihlbGVtLGks
bWF0Y2gsYXJyYXkpO31lbHNlIGlmKG5hbWU9PT0iY29udGFpbnMiKXtyZXR1cm4o
ZWxlbS50ZXh0Q29udGVudHx8ZWxlbS5pbm5lclRleHR8fCIiKS5pbmRleE9mKG1h
dGNoWzNdKT49MDt9ZWxzZSBpZihuYW1lPT09Im5vdCIpe3ZhciBub3Q9bWF0Y2hb
M107Zm9yKHZhciBpPTAsbD1ub3QubGVuZ3RoO2k8bDtpKyspe2lmKG5vdFtpXT09
PWVsZW0pe3JldHVybiBmYWxzZTt9fQpyZXR1cm4gdHJ1ZTt9fSxDSElMRDpmdW5j
dGlvbihlbGVtLG1hdGNoKXt2YXIgdHlwZT1tYXRjaFsxXSxub2RlPWVsZW07c3dp
dGNoKHR5cGUpe2Nhc2Unb25seSc6Y2FzZSdmaXJzdCc6d2hpbGUobm9kZT1ub2Rl
LnByZXZpb3VzU2libGluZyl7aWYobm9kZS5ub2RlVHlwZT09PTEpcmV0dXJuIGZh
bHNlO30KaWYodHlwZT09J2ZpcnN0JylyZXR1cm4gdHJ1ZTtub2RlPWVsZW07Y2Fz
ZSdsYXN0Jzp3aGlsZShub2RlPW5vZGUubmV4dFNpYmxpbmcpe2lmKG5vZGUubm9k
ZVR5cGU9PT0xKXJldHVybiBmYWxzZTt9CnJldHVybiB0cnVlO2Nhc2UnbnRoJzp2
YXIgZmlyc3Q9bWF0Y2hbMl0sbGFzdD1tYXRjaFszXTtpZihmaXJzdD09MSYmbGFz
dD09MCl7cmV0dXJuIHRydWU7fQp2YXIgZG9uZU5hbWU9bWF0Y2hbMF0scGFyZW50
PWVsZW0ucGFyZW50Tm9kZTtpZihwYXJlbnQmJihwYXJlbnQuc2l6Y2FjaGUhPT1k
b25lTmFtZXx8IWVsZW0ubm9kZUluZGV4KSl7dmFyIGNvdW50PTA7Zm9yKG5vZGU9
cGFyZW50LmZpcnN0Q2hpbGQ7bm9kZTtub2RlPW5vZGUubmV4dFNpYmxpbmcpe2lm
KG5vZGUubm9kZVR5cGU9PT0xKXtub2RlLm5vZGVJbmRleD0rK2NvdW50O319CnBh
cmVudC5zaXpjYWNoZT1kb25lTmFtZTt9CnZhciBkaWZmPWVsZW0ubm9kZUluZGV4
LWxhc3Q7aWYoZmlyc3Q9PTApe3JldHVybiBkaWZmPT0wO31lbHNle3JldHVybihk
aWZmJWZpcnN0PT0wJiZkaWZmL2ZpcnN0Pj0wKTt9fX0sSUQ6ZnVuY3Rpb24oZWxl
bSxtYXRjaCl7cmV0dXJuIGVsZW0ubm9kZVR5cGU9PT0xJiZlbGVtLmdldEF0dHJp
YnV0ZSgiaWQiKT09PW1hdGNoO30sVEFHOmZ1bmN0aW9uKGVsZW0sbWF0Y2gpe3Jl
dHVybihtYXRjaD09PSIqIiYmZWxlbS5ub2RlVHlwZT09PTEpfHxlbGVtLm5vZGVO
YW1lPT09bWF0Y2g7fSxDTEFTUzpmdW5jdGlvbihlbGVtLG1hdGNoKXtyZXR1cm4o
IiAiKyhlbGVtLmNsYXNzTmFtZXx8ZWxlbS5nZXRBdHRyaWJ1dGUoImNsYXNzIikp
KyIgIikuaW5kZXhPZihtYXRjaCk+LTE7fSxBVFRSOmZ1bmN0aW9uKGVsZW0sbWF0
Y2gpe3ZhciBuYW1lPW1hdGNoWzFdLHJlc3VsdD1FeHByLmF0dHJIYW5kbGVbbmFt
ZV0/RXhwci5hdHRySGFuZGxlW25hbWVdKGVsZW0pOmVsZW1bbmFtZV0hPW51bGw/
ZWxlbVtuYW1lXTplbGVtLmdldEF0dHJpYnV0ZShuYW1lKSx2YWx1ZT1yZXN1bHQr
IiIsdHlwZT1tYXRjaFsyXSxjaGVjaz1tYXRjaFs0XTtyZXR1cm4gcmVzdWx0PT1u
dWxsP3R5cGU9PT0iIT0iOnR5cGU9PT0iPSI/dmFsdWU9PT1jaGVjazp0eXBlPT09
Iio9Ij92YWx1ZS5pbmRleE9mKGNoZWNrKT49MDp0eXBlPT09In49Ij8oIiAiK3Zh
bHVlKyIgIikuaW5kZXhPZihjaGVjayk+PTA6IWNoZWNrP3ZhbHVlJiZyZXN1bHQh
PT1mYWxzZTp0eXBlPT09IiE9Ij92YWx1ZSE9Y2hlY2s6dHlwZT09PSJePSI/dmFs
dWUuaW5kZXhPZihjaGVjayk9PT0wOnR5cGU9PT0iJD0iP3ZhbHVlLnN1YnN0cih2
YWx1ZS5sZW5ndGgtY2hlY2subGVuZ3RoKT09PWNoZWNrOnR5cGU9PT0ifD0iP3Zh
bHVlPT09Y2hlY2t8fHZhbHVlLnN1YnN0cigwLGNoZWNrLmxlbmd0aCsxKT09PWNo
ZWNrKyItIjpmYWxzZTt9LFBPUzpmdW5jdGlvbihlbGVtLG1hdGNoLGksYXJyYXkp
e3ZhciBuYW1lPW1hdGNoWzJdLGZpbHRlcj1FeHByLnNldEZpbHRlcnNbbmFtZV07
aWYoZmlsdGVyKXtyZXR1cm4gZmlsdGVyKGVsZW0saSxtYXRjaCxhcnJheSk7fX19
fTt2YXIgb3JpZ1BPUz1FeHByLm1hdGNoLlBPUztmb3IodmFyIHR5cGUgaW4gRXhw
ci5tYXRjaCl7RXhwci5tYXRjaFt0eXBlXT1SZWdFeHAoRXhwci5tYXRjaFt0eXBl
XS5zb3VyY2UrLyg/IVteXFtdKlxdKSg/IVteXChdKlwpKS8uc291cmNlKTt9CnZh
ciBtYWtlQXJyYXk9ZnVuY3Rpb24oYXJyYXkscmVzdWx0cyl7YXJyYXk9QXJyYXku
cHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyYXkpO2lmKHJlc3VsdHMpe3Jlc3VsdHMu
cHVzaC5hcHBseShyZXN1bHRzLGFycmF5KTtyZXR1cm4gcmVzdWx0czt9CnJldHVy
biBhcnJheTt9O3RyeXtBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2Rlcyk7fWNhdGNoKGUpe21ha2VBcnJh
eT1mdW5jdGlvbihhcnJheSxyZXN1bHRzKXt2YXIgcmV0PXJlc3VsdHN8fFtdO2lm
KHRvU3RyaW5nLmNhbGwoYXJyYXkpPT09IltvYmplY3QgQXJyYXldIil7QXJyYXku
cHJvdG90eXBlLnB1c2guYXBwbHkocmV0LGFycmF5KTt9ZWxzZXtpZih0eXBlb2Yg
YXJyYXkubGVuZ3RoPT09Im51bWJlciIpe2Zvcih2YXIgaT0wLGw9YXJyYXkubGVu
Z3RoO2k8bDtpKyspe3JldC5wdXNoKGFycmF5W2ldKTt9fWVsc2V7Zm9yKHZhciBp
PTA7YXJyYXlbaV07aSsrKXtyZXQucHVzaChhcnJheVtpXSk7fX19CnJldHVybiBy
ZXQ7fTt9CnZhciBzb3J0T3JkZXI7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtzb3J0T3JkZXI9ZnVuY3Rpb24oYSxi
KXt2YXIgcmV0PWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmND8tMTphPT09
Yj8wOjE7aWYocmV0PT09MCl7aGFzRHVwbGljYXRlPXRydWU7fQpyZXR1cm4gcmV0
O307fWVsc2UgaWYoInNvdXJjZUluZGV4ImluIGRvY3VtZW50LmRvY3VtZW50RWxl
bWVudCl7c29ydE9yZGVyPWZ1bmN0aW9uKGEsYil7dmFyIHJldD1hLnNvdXJjZUlu
ZGV4LWIuc291cmNlSW5kZXg7aWYocmV0PT09MCl7aGFzRHVwbGljYXRlPXRydWU7
fQpyZXR1cm4gcmV0O307fWVsc2UgaWYoZG9jdW1lbnQuY3JlYXRlUmFuZ2Upe3Nv
cnRPcmRlcj1mdW5jdGlvbihhLGIpe3ZhciBhUmFuZ2U9YS5vd25lckRvY3VtZW50
LmNyZWF0ZVJhbmdlKCksYlJhbmdlPWIub3duZXJEb2N1bWVudC5jcmVhdGVSYW5n
ZSgpO2FSYW5nZS5zZWxlY3ROb2RlKGEpO2FSYW5nZS5jb2xsYXBzZSh0cnVlKTti
UmFuZ2Uuc2VsZWN0Tm9kZShiKTtiUmFuZ2UuY29sbGFwc2UodHJ1ZSk7dmFyIHJl
dD1hUmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlLlNUQVJUX1RPX0VO
RCxiUmFuZ2UpO2lmKHJldD09PTApe2hhc0R1cGxpY2F0ZT10cnVlO30KcmV0dXJu
IHJldDt9O30KKGZ1bmN0aW9uKCl7dmFyIGZvcm09ZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZm9ybSIpLGlkPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO2Zv
cm0uaW5uZXJIVE1MPSI8aW5wdXQgbmFtZT0nIitpZCsiJy8+Ijt2YXIgcm9vdD1k
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7cm9vdC5pbnNlcnRCZWZvcmUoZm9ybSxy
b290LmZpcnN0Q2hpbGQpO2lmKCEhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
KXtFeHByLmZpbmQuSUQ9ZnVuY3Rpb24obWF0Y2gsY29udGV4dCxpc1hNTCl7aWYo
dHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQhPT0idW5kZWZpbmVkIiYmIWlz
WE1MKXt2YXIgbT1jb250ZXh0LmdldEVsZW1lbnRCeUlkKG1hdGNoWzFdKTtyZXR1
cm4gbT9tLmlkPT09bWF0Y2hbMV18fHR5cGVvZiBtLmdldEF0dHJpYnV0ZU5vZGUh
PT0idW5kZWZpbmVkIiYmbS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLm5vZGVWYWx1
ZT09PW1hdGNoWzFdP1ttXTp1bmRlZmluZWQ6W107fX07RXhwci5maWx0ZXIuSUQ9
ZnVuY3Rpb24oZWxlbSxtYXRjaCl7dmFyIG5vZGU9dHlwZW9mIGVsZW0uZ2V0QXR0
cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZlbGVtLmdldEF0dHJpYnV0ZU5vZGUo
ImlkIik7cmV0dXJuIGVsZW0ubm9kZVR5cGU9PT0xJiZub2RlJiZub2RlLm5vZGVW
YWx1ZT09PW1hdGNoO307fQpyb290LnJlbW92ZUNoaWxkKGZvcm0pO30pKCk7KGZ1
bmN0aW9uKCl7dmFyIGRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtk
aXYuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIikpO2lmKGRp
di5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aD4wKXtFeHByLmZpbmQu
VEFHPWZ1bmN0aW9uKG1hdGNoLGNvbnRleHQpe3ZhciByZXN1bHRzPWNvbnRleHQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUobWF0Y2hbMV0pO2lmKG1hdGNoWzFdPT09Iioi
KXt2YXIgdG1wPVtdO2Zvcih2YXIgaT0wO3Jlc3VsdHNbaV07aSsrKXtpZihyZXN1
bHRzW2ldLm5vZGVUeXBlPT09MSl7dG1wLnB1c2gocmVzdWx0c1tpXSk7fX0KcmVz
dWx0cz10bXA7fQpyZXR1cm4gcmVzdWx0czt9O30KZGl2LmlubmVySFRNTD0iPGEg
aHJlZj0nIyc+PC9hPiI7aWYoZGl2LmZpcnN0Q2hpbGQmJnR5cGVvZiBkaXYuZmly
c3RDaGlsZC5nZXRBdHRyaWJ1dGUhPT0idW5kZWZpbmVkIiYmZGl2LmZpcnN0Q2hp
bGQuZ2V0QXR0cmlidXRlKCJocmVmIikhPT0iIyIpe0V4cHIuYXR0ckhhbmRsZS5o
cmVmPWZ1bmN0aW9uKGVsZW0pe3JldHVybiBlbGVtLmdldEF0dHJpYnV0ZSgiaHJl
ZiIsMik7fTt9fSkoKTtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKShmdW5j
dGlvbigpe3ZhciBvbGRTaXp6bGU9U2l6emxlLGRpdj1kb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTtkaXYuaW5uZXJIVE1MPSI8cCBjbGFzcz0nVEVTVCc+PC9w
PiI7aWYoZGl2LnF1ZXJ5U2VsZWN0b3JBbGwmJmRpdi5xdWVyeVNlbGVjdG9yQWxs
KCIuVEVTVCIpLmxlbmd0aD09PTApe3JldHVybjt9ClNpenpsZT1mdW5jdGlvbihx
dWVyeSxjb250ZXh0LGV4dHJhLHNlZWQpe2NvbnRleHQ9Y29udGV4dHx8ZG9jdW1l
bnQ7aWYoIXNlZWQmJmNvbnRleHQubm9kZVR5cGU9PT05JiYhaXNYTUwoY29udGV4
dCkpe3RyeXtyZXR1cm4gbWFrZUFycmF5KGNvbnRleHQucXVlcnlTZWxlY3RvckFs
bChxdWVyeSksZXh0cmEpO31jYXRjaChlKXt9fQpyZXR1cm4gb2xkU2l6emxlKHF1
ZXJ5LGNvbnRleHQsZXh0cmEsc2VlZCk7fTtTaXp6bGUuZmluZD1vbGRTaXp6bGUu
ZmluZDtTaXp6bGUuZmlsdGVyPW9sZFNpenpsZS5maWx0ZXI7U2l6emxlLnNlbGVj
dG9ycz1vbGRTaXp6bGUuc2VsZWN0b3JzO1NpenpsZS5tYXRjaGVzPW9sZFNpenps
ZS5tYXRjaGVzO30pKCk7aWYoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05h
bWUpKGZ1bmN0aW9uKCl7dmFyIGRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTtkaXYuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSd0ZXN0IGUnPjwvZGl2Pjxk
aXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7aWYoZGl2LmdldEVsZW1lbnRzQnlDbGFz
c05hbWUoImUiKS5sZW5ndGg9PT0wKQpyZXR1cm47ZGl2Lmxhc3RDaGlsZC5jbGFz
c05hbWU9ImUiO2lmKGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJlIikubGVu
Z3RoPT09MSkKcmV0dXJuO0V4cHIub3JkZXIuc3BsaWNlKDEsMCwiQ0xBU1MiKTtF
eHByLmZpbmQuQ0xBU1M9ZnVuY3Rpb24obWF0Y2gsY29udGV4dCxpc1hNTCl7aWYo
dHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PSJ1bmRlZmlu
ZWQiJiYhaXNYTUwpe3JldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05h
bWUobWF0Y2hbMV0pO319O30pKCk7ZnVuY3Rpb24gZGlyTm9kZUNoZWNrKGRpcixj
dXIsZG9uZU5hbWUsY2hlY2tTZXQsbm9kZUNoZWNrLGlzWE1MKXt2YXIgc2liRGly
PWRpcj09InByZXZpb3VzU2libGluZyImJiFpc1hNTDtmb3IodmFyIGk9MCxsPWNo
ZWNrU2V0Lmxlbmd0aDtpPGw7aSsrKXt2YXIgZWxlbT1jaGVja1NldFtpXTtpZihl
bGVtKXtpZihzaWJEaXImJmVsZW0ubm9kZVR5cGU9PT0xKXtlbGVtLnNpemNhY2hl
PWRvbmVOYW1lO2VsZW0uc2l6c2V0PWk7fQplbGVtPWVsZW1bZGlyXTt2YXIgbWF0
Y2g9ZmFsc2U7d2hpbGUoZWxlbSl7aWYoZWxlbS5zaXpjYWNoZT09PWRvbmVOYW1l
KXttYXRjaD1jaGVja1NldFtlbGVtLnNpenNldF07YnJlYWs7fQppZihlbGVtLm5v
ZGVUeXBlPT09MSYmIWlzWE1MKXtlbGVtLnNpemNhY2hlPWRvbmVOYW1lO2VsZW0u
c2l6c2V0PWk7fQppZihlbGVtLm5vZGVOYW1lPT09Y3VyKXttYXRjaD1lbGVtO2Jy
ZWFrO30KZWxlbT1lbGVtW2Rpcl07fQpjaGVja1NldFtpXT1tYXRjaDt9fX0KZnVu
Y3Rpb24gZGlyQ2hlY2soZGlyLGN1cixkb25lTmFtZSxjaGVja1NldCxub2RlQ2hl
Y2ssaXNYTUwpe3ZhciBzaWJEaXI9ZGlyPT0icHJldmlvdXNTaWJsaW5nIiYmIWlz
WE1MO2Zvcih2YXIgaT0wLGw9Y2hlY2tTZXQubGVuZ3RoO2k8bDtpKyspe3ZhciBl
bGVtPWNoZWNrU2V0W2ldO2lmKGVsZW0pe2lmKHNpYkRpciYmZWxlbS5ub2RlVHlw
ZT09PTEpe2VsZW0uc2l6Y2FjaGU9ZG9uZU5hbWU7ZWxlbS5zaXpzZXQ9aTt9CmVs
ZW09ZWxlbVtkaXJdO3ZhciBtYXRjaD1mYWxzZTt3aGlsZShlbGVtKXtpZihlbGVt
LnNpemNhY2hlPT09ZG9uZU5hbWUpe21hdGNoPWNoZWNrU2V0W2VsZW0uc2l6c2V0
XTticmVhazt9CmlmKGVsZW0ubm9kZVR5cGU9PT0xKXtpZighaXNYTUwpe2VsZW0u
c2l6Y2FjaGU9ZG9uZU5hbWU7ZWxlbS5zaXpzZXQ9aTt9CmlmKHR5cGVvZiBjdXIh
PT0ic3RyaW5nIil7aWYoZWxlbT09PWN1cil7bWF0Y2g9dHJ1ZTticmVhazt9fWVs
c2UgaWYoU2l6emxlLmZpbHRlcihjdXIsW2VsZW1dKS5sZW5ndGg+MCl7bWF0Y2g9
ZWxlbTticmVhazt9fQplbGVtPWVsZW1bZGlyXTt9CmNoZWNrU2V0W2ldPW1hdGNo
O319fQp2YXIgY29udGFpbnM9ZG9jdW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRp
b24/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlv
bihiKSYxNjt9OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEhPT1iJiYoYS5jb250YWlu
cz9hLmNvbnRhaW5zKGIpOnRydWUpO307dmFyIGlzWE1MPWZ1bmN0aW9uKGVsZW0p
e3JldHVybiBlbGVtLm5vZGVUeXBlPT09OSYmZWxlbS5kb2N1bWVudEVsZW1lbnQu
bm9kZU5hbWUhPT0iSFRNTCJ8fCEhZWxlbS5vd25lckRvY3VtZW50JiZpc1hNTChl
bGVtLm93bmVyRG9jdW1lbnQpO307dmFyIHBvc1Byb2Nlc3M9ZnVuY3Rpb24oc2Vs
ZWN0b3IsY29udGV4dCl7dmFyIHRtcFNldD1bXSxsYXRlcj0iIixtYXRjaCxyb290
PWNvbnRleHQubm9kZVR5cGU/W2NvbnRleHRdOmNvbnRleHQ7d2hpbGUoKG1hdGNo
PUV4cHIubWF0Y2guUFNFVURPLmV4ZWMoc2VsZWN0b3IpKSl7bGF0ZXIrPW1hdGNo
WzBdO3NlbGVjdG9yPXNlbGVjdG9yLnJlcGxhY2UoRXhwci5tYXRjaC5QU0VVRE8s
IiIpO30Kc2VsZWN0b3I9RXhwci5yZWxhdGl2ZVtzZWxlY3Rvcl0/c2VsZWN0b3Ir
IioiOnNlbGVjdG9yO2Zvcih2YXIgaT0wLGw9cm9vdC5sZW5ndGg7aTxsO2krKyl7
U2l6emxlKHNlbGVjdG9yLHJvb3RbaV0sdG1wU2V0KTt9CnJldHVybiBTaXp6bGUu
ZmlsdGVyKGxhdGVyLHRtcFNldCk7fTtqUXVlcnkuZmluZD1TaXp6bGU7alF1ZXJ5
LmZpbHRlcj1TaXp6bGUuZmlsdGVyO2pRdWVyeS5leHByPVNpenpsZS5zZWxlY3Rv
cnM7alF1ZXJ5LmV4cHJbIjoiXT1qUXVlcnkuZXhwci5maWx0ZXJzO1NpenpsZS5z
ZWxlY3RvcnMuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oZWxlbSl7cmV0dXJuIGVs
ZW0ub2Zmc2V0V2lkdGg9PT0wfHxlbGVtLm9mZnNldEhlaWdodD09PTA7fTtTaXp6
bGUuc2VsZWN0b3JzLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihlbGVtKXtyZXR1
cm4gZWxlbS5vZmZzZXRXaWR0aD4wfHxlbGVtLm9mZnNldEhlaWdodD4wO307U2l6
emxlLnNlbGVjdG9ycy5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKGVsZW0pe3Jl
dHVybiBqUXVlcnkuZ3JlcChqUXVlcnkudGltZXJzLGZ1bmN0aW9uKGZuKXtyZXR1
cm4gZWxlbT09PWZuLmVsZW07fSkubGVuZ3RoO307alF1ZXJ5Lm11bHRpRmlsdGVy
PWZ1bmN0aW9uKGV4cHIsZWxlbXMsbm90KXtpZihub3Qpe2V4cHI9Ijpub3QoIitl
eHByKyIpIjt9CnJldHVybiBTaXp6bGUubWF0Y2hlcyhleHByLGVsZW1zKTt9O2pR
dWVyeS5kaXI9ZnVuY3Rpb24oZWxlbSxkaXIpe3ZhciBtYXRjaGVkPVtdLGN1cj1l
bGVtW2Rpcl07d2hpbGUoY3VyJiZjdXIhPWRvY3VtZW50KXtpZihjdXIubm9kZVR5
cGU9PTEpCm1hdGNoZWQucHVzaChjdXIpO2N1cj1jdXJbZGlyXTt9CnJldHVybiBt
YXRjaGVkO307alF1ZXJ5Lm50aD1mdW5jdGlvbihjdXIscmVzdWx0LGRpcixlbGVt
KXtyZXN1bHQ9cmVzdWx0fHwxO3ZhciBudW09MDtmb3IoO2N1cjtjdXI9Y3VyW2Rp
cl0pCmlmKGN1ci5ub2RlVHlwZT09MSYmKytudW09PXJlc3VsdCkKYnJlYWs7cmV0
dXJuIGN1cjt9O2pRdWVyeS5zaWJsaW5nPWZ1bmN0aW9uKG4sZWxlbSl7dmFyIHI9
W107Zm9yKDtuO249bi5uZXh0U2libGluZyl7aWYobi5ub2RlVHlwZT09MSYmbiE9
ZWxlbSkKci5wdXNoKG4pO30KcmV0dXJuIHI7fTtyZXR1cm47d2luZG93LlNpenps
ZT1TaXp6bGU7fSkoKTtqUXVlcnkuZXZlbnQ9e2FkZDpmdW5jdGlvbihlbGVtLHR5
cGVzLGhhbmRsZXIsZGF0YSl7aWYoZWxlbS5ub2RlVHlwZT09M3x8ZWxlbS5ub2Rl
VHlwZT09OCkKcmV0dXJuO2lmKGVsZW0uc2V0SW50ZXJ2YWwmJmVsZW0hPXdpbmRv
dykKZWxlbT13aW5kb3c7aWYoIWhhbmRsZXIuZ3VpZCkKaGFuZGxlci5ndWlkPXRo
aXMuZ3VpZCsrO2lmKGRhdGEhPT11bmRlZmluZWQpe3ZhciBmbj1oYW5kbGVyO2hh
bmRsZXI9dGhpcy5wcm94eShmbik7aGFuZGxlci5kYXRhPWRhdGE7fQp2YXIgZXZl
bnRzPWpRdWVyeS5kYXRhKGVsZW0sImV2ZW50cyIpfHxqUXVlcnkuZGF0YShlbGVt
LCJldmVudHMiLHt9KSxoYW5kbGU9alF1ZXJ5LmRhdGEoZWxlbSwiaGFuZGxlIil8
fGpRdWVyeS5kYXRhKGVsZW0sImhhbmRsZSIsZnVuY3Rpb24oKXtyZXR1cm4gdHlw
ZW9mIGpRdWVyeSE9PSJ1bmRlZmluZWQiJiYhalF1ZXJ5LmV2ZW50LnRyaWdnZXJl
ZD9qUXVlcnkuZXZlbnQuaGFuZGxlLmFwcGx5KGFyZ3VtZW50cy5jYWxsZWUuZWxl
bSxhcmd1bWVudHMpOnVuZGVmaW5lZDt9KTtoYW5kbGUuZWxlbT1lbGVtO2pRdWVy
eS5lYWNoKHR5cGVzLnNwbGl0KC9ccysvKSxmdW5jdGlvbihpbmRleCx0eXBlKXt2
YXIgbmFtZXNwYWNlcz10eXBlLnNwbGl0KCIuIik7dHlwZT1uYW1lc3BhY2VzLnNo
aWZ0KCk7aGFuZGxlci50eXBlPW5hbWVzcGFjZXMuc2xpY2UoKS5zb3J0KCkuam9p
bigiLiIpO3ZhciBoYW5kbGVycz1ldmVudHNbdHlwZV07aWYoalF1ZXJ5LmV2ZW50
LnNwZWNpYWxBbGxbdHlwZV0pCmpRdWVyeS5ldmVudC5zcGVjaWFsQWxsW3R5cGVd
LnNldHVwLmNhbGwoZWxlbSxkYXRhLG5hbWVzcGFjZXMpO2lmKCFoYW5kbGVycyl7
aGFuZGxlcnM9ZXZlbnRzW3R5cGVdPXt9O2lmKCFqUXVlcnkuZXZlbnQuc3BlY2lh
bFt0eXBlXXx8alF1ZXJ5LmV2ZW50LnNwZWNpYWxbdHlwZV0uc2V0dXAuY2FsbChl
bGVtLGRhdGEsbmFtZXNwYWNlcyk9PT1mYWxzZSl7aWYoZWxlbS5hZGRFdmVudExp
c3RlbmVyKQplbGVtLmFkZEV2ZW50TGlzdGVuZXIodHlwZSxoYW5kbGUsZmFsc2Up
O2Vsc2UgaWYoZWxlbS5hdHRhY2hFdmVudCkKZWxlbS5hdHRhY2hFdmVudCgib24i
K3R5cGUsaGFuZGxlKTt9fQpoYW5kbGVyc1toYW5kbGVyLmd1aWRdPWhhbmRsZXI7
alF1ZXJ5LmV2ZW50Lmdsb2JhbFt0eXBlXT10cnVlO30pO2VsZW09bnVsbDt9LGd1
aWQ6MSxnbG9iYWw6e30scmVtb3ZlOmZ1bmN0aW9uKGVsZW0sdHlwZXMsaGFuZGxl
cil7aWYoZWxlbS5ub2RlVHlwZT09M3x8ZWxlbS5ub2RlVHlwZT09OCkKcmV0dXJu
O3ZhciBldmVudHM9alF1ZXJ5LmRhdGEoZWxlbSwiZXZlbnRzIikscmV0LGluZGV4
O2lmKGV2ZW50cyl7aWYodHlwZXM9PT11bmRlZmluZWR8fCh0eXBlb2YgdHlwZXM9
PT0ic3RyaW5nIiYmdHlwZXMuY2hhckF0KDApPT0iLiIpKQpmb3IodmFyIHR5cGUg
aW4gZXZlbnRzKQp0aGlzLnJlbW92ZShlbGVtLHR5cGUrKHR5cGVzfHwiIikpO2Vs
c2V7aWYodHlwZXMudHlwZSl7aGFuZGxlcj10eXBlcy5oYW5kbGVyO3R5cGVzPXR5
cGVzLnR5cGU7fQpqUXVlcnkuZWFjaCh0eXBlcy5zcGxpdCgvXHMrLyksZnVuY3Rp
b24oaW5kZXgsdHlwZSl7dmFyIG5hbWVzcGFjZXM9dHlwZS5zcGxpdCgiLiIpO3R5
cGU9bmFtZXNwYWNlcy5zaGlmdCgpO3ZhciBuYW1lc3BhY2U9UmVnRXhwKCIoXnxc
XC4pIituYW1lc3BhY2VzLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwuIikrIihc
XC58JCkiKTtpZihldmVudHNbdHlwZV0pe2lmKGhhbmRsZXIpCmRlbGV0ZSBldmVu
dHNbdHlwZV1baGFuZGxlci5ndWlkXTtlbHNlCmZvcih2YXIgaGFuZGxlIGluIGV2
ZW50c1t0eXBlXSkKaWYobmFtZXNwYWNlLnRlc3QoZXZlbnRzW3R5cGVdW2hhbmRs
ZV0udHlwZSkpCmRlbGV0ZSBldmVudHNbdHlwZV1baGFuZGxlXTtpZihqUXVlcnku
ZXZlbnQuc3BlY2lhbEFsbFt0eXBlXSkKalF1ZXJ5LmV2ZW50LnNwZWNpYWxBbGxb
dHlwZV0udGVhcmRvd24uY2FsbChlbGVtLG5hbWVzcGFjZXMpO2ZvcihyZXQgaW4g
ZXZlbnRzW3R5cGVdKWJyZWFrO2lmKCFyZXQpe2lmKCFqUXVlcnkuZXZlbnQuc3Bl
Y2lhbFt0eXBlXXx8alF1ZXJ5LmV2ZW50LnNwZWNpYWxbdHlwZV0udGVhcmRvd24u
Y2FsbChlbGVtLG5hbWVzcGFjZXMpPT09ZmFsc2Upe2lmKGVsZW0ucmVtb3ZlRXZl
bnRMaXN0ZW5lcikKZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsalF1ZXJ5
LmRhdGEoZWxlbSwiaGFuZGxlIiksZmFsc2UpO2Vsc2UgaWYoZWxlbS5kZXRhY2hF
dmVudCkKZWxlbS5kZXRhY2hFdmVudCgib24iK3R5cGUsalF1ZXJ5LmRhdGEoZWxl
bSwiaGFuZGxlIikpO30KcmV0PW51bGw7ZGVsZXRlIGV2ZW50c1t0eXBlXTt9fX0p
O30KZm9yKHJldCBpbiBldmVudHMpYnJlYWs7aWYoIXJldCl7dmFyIGhhbmRsZT1q
UXVlcnkuZGF0YShlbGVtLCJoYW5kbGUiKTtpZihoYW5kbGUpaGFuZGxlLmVsZW09
bnVsbDtqUXVlcnkucmVtb3ZlRGF0YShlbGVtLCJldmVudHMiKTtqUXVlcnkucmVt
b3ZlRGF0YShlbGVtLCJoYW5kbGUiKTt9fX0sdHJpZ2dlcjpmdW5jdGlvbihldmVu
dCxkYXRhLGVsZW0sYnViYmxpbmcpe3ZhciB0eXBlPWV2ZW50LnR5cGV8fGV2ZW50
O2lmKCFidWJibGluZyl7ZXZlbnQ9dHlwZW9mIGV2ZW50PT09Im9iamVjdCI/ZXZl
bnRbZXhwYW5kb10/ZXZlbnQ6alF1ZXJ5LmV4dGVuZChqUXVlcnkuRXZlbnQodHlw
ZSksZXZlbnQpOmpRdWVyeS5FdmVudCh0eXBlKTtpZih0eXBlLmluZGV4T2YoIiEi
KT49MCl7ZXZlbnQudHlwZT10eXBlPXR5cGUuc2xpY2UoMCwtMSk7ZXZlbnQuZXhj
bHVzaXZlPXRydWU7fQppZighZWxlbSl7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7
aWYodGhpcy5nbG9iYWxbdHlwZV0pCmpRdWVyeS5lYWNoKGpRdWVyeS5jYWNoZSxm
dW5jdGlvbigpe2lmKHRoaXMuZXZlbnRzJiZ0aGlzLmV2ZW50c1t0eXBlXSkKalF1
ZXJ5LmV2ZW50LnRyaWdnZXIoZXZlbnQsZGF0YSx0aGlzLmhhbmRsZS5lbGVtKTt9
KTt9CmlmKCFlbGVtfHxlbGVtLm5vZGVUeXBlPT0zfHxlbGVtLm5vZGVUeXBlPT04
KQpyZXR1cm4gdW5kZWZpbmVkO2V2ZW50LnJlc3VsdD11bmRlZmluZWQ7ZXZlbnQu
dGFyZ2V0PWVsZW07ZGF0YT1qUXVlcnkubWFrZUFycmF5KGRhdGEpO2RhdGEudW5z
aGlmdChldmVudCk7fQpldmVudC5jdXJyZW50VGFyZ2V0PWVsZW07dmFyIGhhbmRs
ZT1qUXVlcnkuZGF0YShlbGVtLCJoYW5kbGUiKTtpZihoYW5kbGUpCmhhbmRsZS5h
cHBseShlbGVtLGRhdGEpO2lmKCghZWxlbVt0eXBlXXx8KGpRdWVyeS5ub2RlTmFt
ZShlbGVtLCdhJykmJnR5cGU9PSJjbGljayIpKSYmZWxlbVsib24iK3R5cGVdJiZl
bGVtWyJvbiIrdHlwZV0uYXBwbHkoZWxlbSxkYXRhKT09PWZhbHNlKQpldmVudC5y
ZXN1bHQ9ZmFsc2U7aWYoIWJ1YmJsaW5nJiZlbGVtW3R5cGVdJiYhZXZlbnQuaXNE
ZWZhdWx0UHJldmVudGVkKCkmJiEoalF1ZXJ5Lm5vZGVOYW1lKGVsZW0sJ2EnKSYm
dHlwZT09ImNsaWNrIikpe3RoaXMudHJpZ2dlcmVkPXRydWU7dHJ5e2VsZW1bdHlw
ZV0oKTt9Y2F0Y2goZSl7fX0KdGhpcy50cmlnZ2VyZWQ9ZmFsc2U7aWYoIWV2ZW50
LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3ZhciBwYXJlbnQ9ZWxlbS5wYXJlbnRO
b2RlfHxlbGVtLm93bmVyRG9jdW1lbnQ7aWYocGFyZW50KQpqUXVlcnkuZXZlbnQu
dHJpZ2dlcihldmVudCxkYXRhLHBhcmVudCx0cnVlKTt9fSxoYW5kbGU6ZnVuY3Rp
b24oZXZlbnQpe3ZhciBhbGwsaGFuZGxlcnM7ZXZlbnQ9YXJndW1lbnRzWzBdPWpR
dWVyeS5ldmVudC5maXgoZXZlbnR8fHdpbmRvdy5ldmVudCk7ZXZlbnQuY3VycmVu
dFRhcmdldD10aGlzO3ZhciBuYW1lc3BhY2VzPWV2ZW50LnR5cGUuc3BsaXQoIi4i
KTtldmVudC50eXBlPW5hbWVzcGFjZXMuc2hpZnQoKTthbGw9IW5hbWVzcGFjZXMu
bGVuZ3RoJiYhZXZlbnQuZXhjbHVzaXZlO3ZhciBuYW1lc3BhY2U9UmVnRXhwKCIo
XnxcXC4pIituYW1lc3BhY2VzLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwuIikr
IihcXC58JCkiKTtoYW5kbGVycz0oalF1ZXJ5LmRhdGEodGhpcywiZXZlbnRzIil8
fHt9KVtldmVudC50eXBlXTtmb3IodmFyIGogaW4gaGFuZGxlcnMpe3ZhciBoYW5k
bGVyPWhhbmRsZXJzW2pdO2lmKGFsbHx8bmFtZXNwYWNlLnRlc3QoaGFuZGxlci50
eXBlKSl7ZXZlbnQuaGFuZGxlcj1oYW5kbGVyO2V2ZW50LmRhdGE9aGFuZGxlci5k
YXRhO3ZhciByZXQ9aGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYocmV0
IT09dW5kZWZpbmVkKXtldmVudC5yZXN1bHQ9cmV0O2lmKHJldD09PWZhbHNlKXtl
dmVudC5wcmV2ZW50RGVmYXVsdCgpO2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpO319
CmlmKGV2ZW50LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkpCmJyZWFr
O319fSxwcm9wczoiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUgYnViYmxlcyBi
dXR0b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkgY3RybEtl
eSBjdXJyZW50VGFyZ2V0IGRhdGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVsZW1l
bnQgaGFuZGxlciBrZXlDb2RlIG1ldGFLZXkgbmV3VmFsdWUgb3JpZ2luYWxUYXJn
ZXQgcGFnZVggcGFnZVkgcHJldlZhbHVlIHJlbGF0ZWROb2RlIHJlbGF0ZWRUYXJn
ZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNyY0VsZW1lbnQgdGFyZ2V0IHRv
RWxlbWVudCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIgIiksZml4OmZ1
bmN0aW9uKGV2ZW50KXtpZihldmVudFtleHBhbmRvXSkKcmV0dXJuIGV2ZW50O3Zh
ciBvcmlnaW5hbEV2ZW50PWV2ZW50O2V2ZW50PWpRdWVyeS5FdmVudChvcmlnaW5h
bEV2ZW50KTtmb3IodmFyIGk9dGhpcy5wcm9wcy5sZW5ndGgscHJvcDtpOyl7cHJv
cD10aGlzLnByb3BzWy0taV07ZXZlbnRbcHJvcF09b3JpZ2luYWxFdmVudFtwcm9w
XTt9CmlmKCFldmVudC50YXJnZXQpCmV2ZW50LnRhcmdldD1ldmVudC5zcmNFbGVt
ZW50fHxkb2N1bWVudDtpZihldmVudC50YXJnZXQubm9kZVR5cGU9PTMpCmV2ZW50
LnRhcmdldD1ldmVudC50YXJnZXQucGFyZW50Tm9kZTtpZighZXZlbnQucmVsYXRl
ZFRhcmdldCYmZXZlbnQuZnJvbUVsZW1lbnQpCmV2ZW50LnJlbGF0ZWRUYXJnZXQ9
ZXZlbnQuZnJvbUVsZW1lbnQ9PWV2ZW50LnRhcmdldD9ldmVudC50b0VsZW1lbnQ6
ZXZlbnQuZnJvbUVsZW1lbnQ7aWYoZXZlbnQucGFnZVg9PW51bGwmJmV2ZW50LmNs
aWVudFghPW51bGwpe3ZhciBkb2M9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGJv
ZHk9ZG9jdW1lbnQuYm9keTtldmVudC5wYWdlWD1ldmVudC5jbGllbnRYKyhkb2Mm
JmRvYy5zY3JvbGxMZWZ0fHxib2R5JiZib2R5LnNjcm9sbExlZnR8fDApLShkb2Mu
Y2xpZW50TGVmdHx8MCk7ZXZlbnQucGFnZVk9ZXZlbnQuY2xpZW50WSsoZG9jJiZk
b2Muc2Nyb2xsVG9wfHxib2R5JiZib2R5LnNjcm9sbFRvcHx8MCktKGRvYy5jbGll
bnRUb3B8fDApO30KaWYoIWV2ZW50LndoaWNoJiYoKGV2ZW50LmNoYXJDb2RlfHxl
dmVudC5jaGFyQ29kZT09PTApP2V2ZW50LmNoYXJDb2RlOmV2ZW50LmtleUNvZGUp
KQpldmVudC53aGljaD1ldmVudC5jaGFyQ29kZXx8ZXZlbnQua2V5Q29kZTtpZigh
ZXZlbnQubWV0YUtleSYmZXZlbnQuY3RybEtleSkKZXZlbnQubWV0YUtleT1ldmVu
dC5jdHJsS2V5O2lmKCFldmVudC53aGljaCYmZXZlbnQuYnV0dG9uKQpldmVudC53
aGljaD0oZXZlbnQuYnV0dG9uJjE/MTooZXZlbnQuYnV0dG9uJjI/MzooZXZlbnQu
YnV0dG9uJjQ/MjowKSkpO3JldHVybiBldmVudDt9LHByb3h5OmZ1bmN0aW9uKGZu
LHByb3h5KXtwcm94eT1wcm94eXx8ZnVuY3Rpb24oKXtyZXR1cm4gZm4uYXBwbHko
dGhpcyxhcmd1bWVudHMpO307cHJveHkuZ3VpZD1mbi5ndWlkPWZuLmd1aWR8fHBy
b3h5Lmd1aWR8fHRoaXMuZ3VpZCsrO3JldHVybiBwcm94eTt9LHNwZWNpYWw6e3Jl
YWR5OntzZXR1cDpiaW5kUmVhZHksdGVhcmRvd246ZnVuY3Rpb24oKXt9fX0sc3Bl
Y2lhbEFsbDp7bGl2ZTp7c2V0dXA6ZnVuY3Rpb24oc2VsZWN0b3IsbmFtZXNwYWNl
cyl7alF1ZXJ5LmV2ZW50LmFkZCh0aGlzLG5hbWVzcGFjZXNbMF0sbGl2ZUhhbmRs
ZXIpO30sdGVhcmRvd246ZnVuY3Rpb24obmFtZXNwYWNlcyl7aWYobmFtZXNwYWNl
cy5sZW5ndGgpe3ZhciByZW1vdmU9MCxuYW1lPVJlZ0V4cCgiKF58XFwuKSIrbmFt
ZXNwYWNlc1swXSsiKFxcLnwkKSIpO2pRdWVyeS5lYWNoKChqUXVlcnkuZGF0YSh0
aGlzLCJldmVudHMiKS5saXZlfHx7fSksZnVuY3Rpb24oKXtpZihuYW1lLnRlc3Qo
dGhpcy50eXBlKSkKcmVtb3ZlKys7fSk7aWYocmVtb3ZlPDEpCmpRdWVyeS5ldmVu
dC5yZW1vdmUodGhpcyxuYW1lc3BhY2VzWzBdLGxpdmVIYW5kbGVyKTt9fX19fTtq
UXVlcnkuRXZlbnQ9ZnVuY3Rpb24oc3JjKXtpZighdGhpcy5wcmV2ZW50RGVmYXVs
dCkKcmV0dXJuIG5ldyBqUXVlcnkuRXZlbnQoc3JjKTtpZihzcmMmJnNyYy50eXBl
KXt0aGlzLm9yaWdpbmFsRXZlbnQ9c3JjO3RoaXMudHlwZT1zcmMudHlwZTt9ZWxz
ZQp0aGlzLnR5cGU9c3JjO3RoaXMudGltZVN0YW1wPW5vdygpO3RoaXNbZXhwYW5k
b109dHJ1ZTt9O2Z1bmN0aW9uIHJldHVybkZhbHNlKCl7cmV0dXJuIGZhbHNlO30K
ZnVuY3Rpb24gcmV0dXJuVHJ1ZSgpe3JldHVybiB0cnVlO30KalF1ZXJ5LkV2ZW50
LnByb3RvdHlwZT17cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmlzRGVm
YXVsdFByZXZlbnRlZD1yZXR1cm5UcnVlO3ZhciBlPXRoaXMub3JpZ2luYWxFdmVu
dDtpZighZSkKcmV0dXJuO2lmKGUucHJldmVudERlZmF1bHQpCmUucHJldmVudERl
ZmF1bHQoKTtlLnJldHVyblZhbHVlPWZhbHNlO30sc3RvcFByb3BhZ2F0aW9uOmZ1
bmN0aW9uKCl7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1yZXR1cm5UcnVlO3Zh
ciBlPXRoaXMub3JpZ2luYWxFdmVudDtpZighZSkKcmV0dXJuO2lmKGUuc3RvcFBy
b3BhZ2F0aW9uKQplLnN0b3BQcm9wYWdhdGlvbigpO2UuY2FuY2VsQnViYmxlPXRy
dWU7fSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlz
SW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPXJldHVyblRydWU7dGhpcy5zdG9w
UHJvcGFnYXRpb24oKTt9LGlzRGVmYXVsdFByZXZlbnRlZDpyZXR1cm5GYWxzZSxp
c1Byb3BhZ2F0aW9uU3RvcHBlZDpyZXR1cm5GYWxzZSxpc0ltbWVkaWF0ZVByb3Bh
Z2F0aW9uU3RvcHBlZDpyZXR1cm5GYWxzZX07dmFyIHdpdGhpbkVsZW1lbnQ9ZnVu
Y3Rpb24oZXZlbnQpe3ZhciBwYXJlbnQ9ZXZlbnQucmVsYXRlZFRhcmdldDt3aGls
ZShwYXJlbnQmJnBhcmVudCE9dGhpcykKdHJ5e3BhcmVudD1wYXJlbnQucGFyZW50
Tm9kZTt9CmNhdGNoKGUpe3BhcmVudD10aGlzO30KaWYocGFyZW50IT10aGlzKXtl
dmVudC50eXBlPWV2ZW50LmRhdGE7alF1ZXJ5LmV2ZW50LmhhbmRsZS5hcHBseSh0
aGlzLGFyZ3VtZW50cyk7fX07alF1ZXJ5LmVhY2goe21vdXNlb3ZlcjonbW91c2Vl
bnRlcicsbW91c2VvdXQ6J21vdXNlbGVhdmUnfSxmdW5jdGlvbihvcmlnLGZpeCl7
alF1ZXJ5LmV2ZW50LnNwZWNpYWxbZml4XT17c2V0dXA6ZnVuY3Rpb24oKXtqUXVl
cnkuZXZlbnQuYWRkKHRoaXMsb3JpZyx3aXRoaW5FbGVtZW50LGZpeCk7fSx0ZWFy
ZG93bjpmdW5jdGlvbigpe2pRdWVyeS5ldmVudC5yZW1vdmUodGhpcyxvcmlnLHdp
dGhpbkVsZW1lbnQpO319O30pO2pRdWVyeS5mbi5leHRlbmQoe2JpbmQ6ZnVuY3Rp
b24odHlwZSxkYXRhLGZuKXtyZXR1cm4gdHlwZT09InVubG9hZCI/dGhpcy5vbmUo
dHlwZSxkYXRhLGZuKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtqUXVlcnkuZXZlbnQu
YWRkKHRoaXMsdHlwZSxmbnx8ZGF0YSxmbiYmZGF0YSk7fSk7fSxvbmU6ZnVuY3Rp
b24odHlwZSxkYXRhLGZuKXt2YXIgb25lPWpRdWVyeS5ldmVudC5wcm94eShmbnx8
ZGF0YSxmdW5jdGlvbihldmVudCl7alF1ZXJ5KHRoaXMpLnVuYmluZChldmVudCxv
bmUpO3JldHVybihmbnx8ZGF0YSkuYXBwbHkodGhpcyxhcmd1bWVudHMpO30pO3Jl
dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtqUXVlcnkuZXZlbnQuYWRkKHRoaXMs
dHlwZSxvbmUsZm4mJmRhdGEpO30pO30sdW5iaW5kOmZ1bmN0aW9uKHR5cGUsZm4p
e3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtqUXVlcnkuZXZlbnQucmVtb3Zl
KHRoaXMsdHlwZSxmbik7fSk7fSx0cmlnZ2VyOmZ1bmN0aW9uKHR5cGUsZGF0YSl7
cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2pRdWVyeS5ldmVudC50cmlnZ2Vy
KHR5cGUsZGF0YSx0aGlzKTt9KTt9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKHR5
cGUsZGF0YSl7aWYodGhpc1swXSl7dmFyIGV2ZW50PWpRdWVyeS5FdmVudCh0eXBl
KTtldmVudC5wcmV2ZW50RGVmYXVsdCgpO2V2ZW50LnN0b3BQcm9wYWdhdGlvbigp
O2pRdWVyeS5ldmVudC50cmlnZ2VyKGV2ZW50LGRhdGEsdGhpc1swXSk7cmV0dXJu
IGV2ZW50LnJlc3VsdDt9fSx0b2dnbGU6ZnVuY3Rpb24oZm4pe3ZhciBhcmdzPWFy
Z3VtZW50cyxpPTE7d2hpbGUoaTxhcmdzLmxlbmd0aCkKalF1ZXJ5LmV2ZW50LnBy
b3h5KGZuLGFyZ3NbaSsrXSk7cmV0dXJuIHRoaXMuY2xpY2soalF1ZXJ5LmV2ZW50
LnByb3h5KGZuLGZ1bmN0aW9uKGV2ZW50KXt0aGlzLmxhc3RUb2dnbGU9KHRoaXMu
bGFzdFRvZ2dsZXx8MCklaTtldmVudC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBh
cmdzW3RoaXMubGFzdFRvZ2dsZSsrXS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fGZh
bHNlO30pKTt9LGhvdmVyOmZ1bmN0aW9uKGZuT3Zlcixmbk91dCl7cmV0dXJuIHRo
aXMubW91c2VlbnRlcihmbk92ZXIpLm1vdXNlbGVhdmUoZm5PdXQpO30scmVhZHk6
ZnVuY3Rpb24oZm4pe2JpbmRSZWFkeSgpO2lmKGpRdWVyeS5pc1JlYWR5KQpmbi5j
YWxsKGRvY3VtZW50LGpRdWVyeSk7ZWxzZQpqUXVlcnkucmVhZHlMaXN0LnB1c2go
Zm4pO3JldHVybiB0aGlzO30sbGl2ZTpmdW5jdGlvbih0eXBlLGZuKXt2YXIgcHJv
eHk9alF1ZXJ5LmV2ZW50LnByb3h5KGZuKTtwcm94eS5ndWlkKz10aGlzLnNlbGVj
dG9yK3R5cGU7alF1ZXJ5KGRvY3VtZW50KS5iaW5kKGxpdmVDb252ZXJ0KHR5cGUs
dGhpcy5zZWxlY3RvciksdGhpcy5zZWxlY3Rvcixwcm94eSk7cmV0dXJuIHRoaXM7
fSxkaWU6ZnVuY3Rpb24odHlwZSxmbil7alF1ZXJ5KGRvY3VtZW50KS51bmJpbmQo
bGl2ZUNvbnZlcnQodHlwZSx0aGlzLnNlbGVjdG9yKSxmbj97Z3VpZDpmbi5ndWlk
K3RoaXMuc2VsZWN0b3IrdHlwZX06bnVsbCk7cmV0dXJuIHRoaXM7fX0pO2Z1bmN0
aW9uIGxpdmVIYW5kbGVyKGV2ZW50KXt2YXIgY2hlY2s9UmVnRXhwKCIoXnxcXC4p
IitldmVudC50eXBlKyIoXFwufCQpIiksc3RvcD10cnVlLGVsZW1zPVtdO2pRdWVy
eS5lYWNoKGpRdWVyeS5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0
aW9uKGksZm4pe2lmKGNoZWNrLnRlc3QoZm4udHlwZSkpe3ZhciBlbGVtPWpRdWVy
eShldmVudC50YXJnZXQpLmNsb3Nlc3QoZm4uZGF0YSlbMF07aWYoZWxlbSkKZWxl
bXMucHVzaCh7ZWxlbTplbGVtLGZuOmZufSk7fX0pO2VsZW1zLnNvcnQoZnVuY3Rp
b24oYSxiKXtyZXR1cm4galF1ZXJ5LmRhdGEoYS5lbGVtLCJjbG9zZXN0IiktalF1
ZXJ5LmRhdGEoYi5lbGVtLCJjbG9zZXN0Iik7fSk7alF1ZXJ5LmVhY2goZWxlbXMs
ZnVuY3Rpb24oKXtpZih0aGlzLmZuLmNhbGwodGhpcy5lbGVtLGV2ZW50LHRoaXMu
Zm4uZGF0YSk9PT1mYWxzZSkKcmV0dXJuKHN0b3A9ZmFsc2UpO30pO3JldHVybiBz
dG9wO30KZnVuY3Rpb24gbGl2ZUNvbnZlcnQodHlwZSxzZWxlY3Rvcil7cmV0dXJu
WyJsaXZlIix0eXBlLHNlbGVjdG9yLnJlcGxhY2UoL1wuL2csImAiKS5yZXBsYWNl
KC8gL2csInwiKV0uam9pbigiLiIpO30KalF1ZXJ5LmV4dGVuZCh7aXNSZWFkeTpm
YWxzZSxyZWFkeUxpc3Q6W10scmVhZHk6ZnVuY3Rpb24oKXtpZighalF1ZXJ5Lmlz
UmVhZHkpe2pRdWVyeS5pc1JlYWR5PXRydWU7aWYoalF1ZXJ5LnJlYWR5TGlzdCl7
alF1ZXJ5LmVhY2goalF1ZXJ5LnJlYWR5TGlzdCxmdW5jdGlvbigpe3RoaXMuY2Fs
bChkb2N1bWVudCxqUXVlcnkpO30pO2pRdWVyeS5yZWFkeUxpc3Q9bnVsbDt9CmpR
dWVyeShkb2N1bWVudCkudHJpZ2dlckhhbmRsZXIoInJlYWR5Iik7fX19KTt2YXIg
cmVhZHlCb3VuZD1mYWxzZTtmdW5jdGlvbiBiaW5kUmVhZHkoKXtpZihyZWFkeUJv
dW5kKXJldHVybjtyZWFkeUJvdW5kPXRydWU7aWYoZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcil7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExv
YWRlZCIsZnVuY3Rpb24oKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJE
T01Db250ZW50TG9hZGVkIixhcmd1bWVudHMuY2FsbGVlLGZhbHNlKTtqUXVlcnku
cmVhZHkoKTt9LGZhbHNlKTt9ZWxzZSBpZihkb2N1bWVudC5hdHRhY2hFdmVudCl7
ZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsZnVuY3Rp
b24oKXtpZihkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil7ZG9jdW1l
bnQuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsYXJndW1lbnRzLmNh
bGxlZSk7alF1ZXJ5LnJlYWR5KCk7fX0pO2lmKGRvY3VtZW50LmRvY3VtZW50RWxl
bWVudC5kb1Njcm9sbCYmd2luZG93PT13aW5kb3cudG9wKShmdW5jdGlvbigpe2lm
KGpRdWVyeS5pc1JlYWR5KXJldHVybjt0cnl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LmRvU2Nyb2xsKCJsZWZ0Iik7fWNhdGNoKGVycm9yKXtzZXRUaW1lb3V0KGFy
Z3VtZW50cy5jYWxsZWUsMCk7cmV0dXJuO30KalF1ZXJ5LnJlYWR5KCk7fSkoKTt9
CmpRdWVyeS5ldmVudC5hZGQod2luZG93LCJsb2FkIixqUXVlcnkucmVhZHkpO30K
alF1ZXJ5LmVhY2goKCJibHVyLGZvY3VzLGxvYWQscmVzaXplLHNjcm9sbCx1bmxv
YWQsY2xpY2ssZGJsY2xpY2ssIisibW91c2Vkb3duLG1vdXNldXAsbW91c2Vtb3Zl
LG1vdXNlb3Zlcixtb3VzZW91dCxtb3VzZWVudGVyLG1vdXNlbGVhdmUsIisiY2hh
bmdlLHNlbGVjdCxzdWJtaXQsa2V5ZG93bixrZXlwcmVzcyxrZXl1cCxlcnJvciIp
LnNwbGl0KCIsIiksZnVuY3Rpb24oaSxuYW1lKXtqUXVlcnkuZm5bbmFtZV09ZnVu
Y3Rpb24oZm4pe3JldHVybiBmbj90aGlzLmJpbmQobmFtZSxmbik6dGhpcy50cmln
Z2VyKG5hbWUpO307fSk7alF1ZXJ5KHdpbmRvdykuYmluZCgndW5sb2FkJyxmdW5j
dGlvbigpe2Zvcih2YXIgaWQgaW4galF1ZXJ5LmNhY2hlKQppZihpZCE9MSYmalF1
ZXJ5LmNhY2hlW2lkXS5oYW5kbGUpCmpRdWVyeS5ldmVudC5yZW1vdmUoalF1ZXJ5
LmNhY2hlW2lkXS5oYW5kbGUuZWxlbSk7fSk7KGZ1bmN0aW9uKCl7alF1ZXJ5LnN1
cHBvcnQ9e307dmFyIHJvb3Q9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHNjcmlw
dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxkaXY9ZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2IiksaWQ9InNjcmlwdCIrKG5ldyBEYXRlKS5nZXRU
aW1lKCk7ZGl2LnN0eWxlLmRpc3BsYXk9Im5vbmUiO2Rpdi5pbm5lckhUTUw9JyAg
IDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPSIvYSIgc3R5bGU9ImNvbG9y
OnJlZDtmbG9hdDpsZWZ0O29wYWNpdHk6LjU7Ij5hPC9hPjxzZWxlY3Q+PG9wdGlv
bj50ZXh0PC9vcHRpb24+PC9zZWxlY3Q+PG9iamVjdD48cGFyYW0vPjwvb2JqZWN0
Pic7dmFyIGFsbD1kaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxhPWRpdi5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdO2lmKCFhbGx8fCFhbGwubGVuZ3Ro
fHwhYSl7cmV0dXJuO30KalF1ZXJ5LnN1cHBvcnQ9e2xlYWRpbmdXaGl0ZXNwYWNl
OmRpdi5maXJzdENoaWxkLm5vZGVUeXBlPT0zLHRib2R5OiFkaXYuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoInRib2R5IikubGVuZ3RoLG9iamVjdEFsbDohIWRpdi5nZXRF
bGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uZ2V0RWxlbWVudHNCeVRhZ05h
bWUoIioiKS5sZW5ndGgsaHRtbFNlcmlhbGl6ZTohIWRpdi5nZXRFbGVtZW50c0J5
VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KGEuZ2V0QXR0
cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDphLmdldEF0dHJpYnV0ZSgi
aHJlZiIpPT09Ii9hIixvcGFjaXR5OmEuc3R5bGUub3BhY2l0eT09PSIwLjUiLGNz
c0Zsb2F0OiEhYS5zdHlsZS5jc3NGbG9hdCxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xv
bmVFdmVudDp0cnVlLGJveE1vZGVsOm51bGx9O3NjcmlwdC50eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiO3RyeXtzY3JpcHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIndpbmRvdy4iK2lkKyI9MTsiKSk7fWNhdGNoKGUpe30Kcm9vdC5p
bnNlcnRCZWZvcmUoc2NyaXB0LHJvb3QuZmlyc3RDaGlsZCk7aWYod2luZG93W2lk
XSl7alF1ZXJ5LnN1cHBvcnQuc2NyaXB0RXZhbD10cnVlO2RlbGV0ZSB3aW5kb3db
aWRdO30Kcm9vdC5yZW1vdmVDaGlsZChzY3JpcHQpO2lmKGRpdi5hdHRhY2hFdmVu
dCYmZGl2LmZpcmVFdmVudCl7ZGl2LmF0dGFjaEV2ZW50KCJvbmNsaWNrIixmdW5j
dGlvbigpe2pRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVFdmVudD1mYWxzZTtkaXYuZGV0
YWNoRXZlbnQoIm9uY2xpY2siLGFyZ3VtZW50cy5jYWxsZWUpO30pO2Rpdi5jbG9u
ZU5vZGUodHJ1ZSkuZmlyZUV2ZW50KCJvbmNsaWNrIik7fQpqUXVlcnkoZnVuY3Rp
b24oKXt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Rpdi5z
dHlsZS53aWR0aD1kaXYuc3R5bGUucGFkZGluZ0xlZnQ9IjFweCI7ZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChkaXYpO2pRdWVyeS5ib3hNb2RlbD1qUXVlcnkuc3Vw
cG9ydC5ib3hNb2RlbD1kaXYub2Zmc2V0V2lkdGg9PT0yO2RvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoZGl2KS5zdHlsZS5kaXNwbGF5PSdub25lJzt9KTt9KSgpO3Zh
ciBzdHlsZUZsb2F0PWpRdWVyeS5zdXBwb3J0LmNzc0Zsb2F0PyJjc3NGbG9hdCI6
InN0eWxlRmxvYXQiO2pRdWVyeS5wcm9wcz17ImZvciI6Imh0bWxGb3IiLCJjbGFz
cyI6ImNsYXNzTmFtZSIsImZsb2F0IjpzdHlsZUZsb2F0LGNzc0Zsb2F0OnN0eWxl
RmxvYXQsc3R5bGVGbG9hdDpzdHlsZUZsb2F0LHJlYWRvbmx5OiJyZWFkT25seSIs
bWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIs
cm93c3Bhbjoicm93U3BhbiIsdGFiaW5kZXg6InRhYkluZGV4In07alF1ZXJ5LmZu
LmV4dGVuZCh7X2xvYWQ6alF1ZXJ5LmZuLmxvYWQsbG9hZDpmdW5jdGlvbih1cmws
cGFyYW1zLGNhbGxiYWNrKXtpZih0eXBlb2YgdXJsIT09InN0cmluZyIpCnJldHVy
biB0aGlzLl9sb2FkKHVybCk7dmFyIG9mZj11cmwuaW5kZXhPZigiICIpO2lmKG9m
Zj49MCl7dmFyIHNlbGVjdG9yPXVybC5zbGljZShvZmYsdXJsLmxlbmd0aCk7dXJs
PXVybC5zbGljZSgwLG9mZik7fQp2YXIgdHlwZT0iR0VUIjtpZihwYXJhbXMpCmlm
KGpRdWVyeS5pc0Z1bmN0aW9uKHBhcmFtcykpe2NhbGxiYWNrPXBhcmFtcztwYXJh
bXM9bnVsbDt9ZWxzZSBpZih0eXBlb2YgcGFyYW1zPT09Im9iamVjdCIpe3BhcmFt
cz1qUXVlcnkucGFyYW0ocGFyYW1zKTt0eXBlPSJQT1NUIjt9CnZhciBzZWxmPXRo
aXM7alF1ZXJ5LmFqYXgoe3VybDp1cmwsdHlwZTp0eXBlLGRhdGFUeXBlOiJodG1s
IixkYXRhOnBhcmFtcyxjb21wbGV0ZTpmdW5jdGlvbihyZXMsc3RhdHVzKXtpZihz
dGF0dXM9PSJzdWNjZXNzInx8c3RhdHVzPT0ibm90bW9kaWZpZWQiKQpzZWxmLmh0
bWwoc2VsZWN0b3I/alF1ZXJ5KCI8ZGl2Lz4iKS5hcHBlbmQocmVzLnJlc3BvbnNl
VGV4dC5yZXBsYWNlKC88c2NyaXB0KC58XHMpKj9cL3NjcmlwdD4vZywiIikpLmZp
bmQoc2VsZWN0b3IpOnJlcy5yZXNwb25zZVRleHQpO2lmKGNhbGxiYWNrKQpzZWxm
LmVhY2goY2FsbGJhY2ssW3Jlcy5yZXNwb25zZVRleHQsc3RhdHVzLHJlc10pO319
KTtyZXR1cm4gdGhpczt9LHNlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiBqUXVl
cnkucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKTt9LHNlcmlhbGl6ZUFycmF5
OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRo
aXMuZWxlbWVudHM/alF1ZXJ5Lm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlz
O30pLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWUmJiF0aGlzLmRp
c2FibGVkJiYodGhpcy5jaGVja2VkfHwvc2VsZWN0fHRleHRhcmVhL2kudGVzdCh0
aGlzLm5vZGVOYW1lKXx8L3RleHR8aGlkZGVufHBhc3N3b3JkfHNlYXJjaC9pLnRl
c3QodGhpcy50eXBlKSk7fSkubWFwKGZ1bmN0aW9uKGksZWxlbSl7dmFyIHZhbD1q
UXVlcnkodGhpcykudmFsKCk7cmV0dXJuIHZhbD09bnVsbD9udWxsOmpRdWVyeS5p
c0FycmF5KHZhbCk/alF1ZXJ5Lm1hcCh2YWwsZnVuY3Rpb24odmFsLGkpe3JldHVy
bntuYW1lOmVsZW0ubmFtZSx2YWx1ZTp2YWx9O30pOntuYW1lOmVsZW0ubmFtZSx2
YWx1ZTp2YWx9O30pLmdldCgpO319KTtqUXVlcnkuZWFjaCgiYWpheFN0YXJ0LGFq
YXhTdG9wLGFqYXhDb21wbGV0ZSxhamF4RXJyb3IsYWpheFN1Y2Nlc3MsYWpheFNl
bmQiLnNwbGl0KCIsIiksZnVuY3Rpb24oaSxvKXtqUXVlcnkuZm5bb109ZnVuY3Rp
b24oZil7cmV0dXJuIHRoaXMuYmluZChvLGYpO307fSk7dmFyIGpzYz1ub3coKTtq
UXVlcnkuZXh0ZW5kKHtnZXQ6ZnVuY3Rpb24odXJsLGRhdGEsY2FsbGJhY2ssdHlw
ZSl7aWYoalF1ZXJ5LmlzRnVuY3Rpb24oZGF0YSkpe2NhbGxiYWNrPWRhdGE7ZGF0
YT1udWxsO30KcmV0dXJuIGpRdWVyeS5hamF4KHt0eXBlOiJHRVQiLHVybDp1cmws
ZGF0YTpkYXRhLHN1Y2Nlc3M6Y2FsbGJhY2ssZGF0YVR5cGU6dHlwZX0pO30sZ2V0
U2NyaXB0OmZ1bmN0aW9uKHVybCxjYWxsYmFjayl7cmV0dXJuIGpRdWVyeS5nZXQo
dXJsLG51bGwsY2FsbGJhY2ssInNjcmlwdCIpO30sZ2V0SlNPTjpmdW5jdGlvbih1
cmwsZGF0YSxjYWxsYmFjayl7cmV0dXJuIGpRdWVyeS5nZXQodXJsLGRhdGEsY2Fs
bGJhY2ssImpzb24iKTt9LHBvc3Q6ZnVuY3Rpb24odXJsLGRhdGEsY2FsbGJhY2ss
dHlwZSl7aWYoalF1ZXJ5LmlzRnVuY3Rpb24oZGF0YSkpe2NhbGxiYWNrPWRhdGE7
ZGF0YT17fTt9CnJldHVybiBqUXVlcnkuYWpheCh7dHlwZToiUE9TVCIsdXJsOnVy
bCxkYXRhOmRhdGEsc3VjY2VzczpjYWxsYmFjayxkYXRhVHlwZTp0eXBlfSk7fSxh
amF4U2V0dXA6ZnVuY3Rpb24oc2V0dGluZ3Mpe2pRdWVyeS5leHRlbmQoalF1ZXJ5
LmFqYXhTZXR0aW5ncyxzZXR0aW5ncyk7fSxhamF4U2V0dGluZ3M6e3VybDpsb2Nh
dGlvbi5ocmVmLGdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsY29udGVudFR5cGU6ImFw
cGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIscHJvY2Vzc0RhdGE6dHJ1
ZSxhc3luYzp0cnVlLHhocjpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuQWN0aXZl
WE9iamVjdD9uZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKTpu
ZXcgWE1MSHR0cFJlcXVlc3QoKTt9LGFjY2VwdHM6e3htbDoiYXBwbGljYXRpb24v
eG1sLCB0ZXh0L3htbCIsaHRtbDoidGV4dC9odG1sIixzY3JpcHQ6InRleHQvamF2
YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCIsanNvbjoiYXBwbGljYXRp
b24vanNvbiwgdGV4dC9qYXZhc2NyaXB0Iix0ZXh0OiJ0ZXh0L3BsYWluIixfZGVm
YXVsdDoiKi8qIn19LGxhc3RNb2RpZmllZDp7fSxhamF4OmZ1bmN0aW9uKHMpe3M9
alF1ZXJ5LmV4dGVuZCh0cnVlLHMsalF1ZXJ5LmV4dGVuZCh0cnVlLHt9LGpRdWVy
eS5hamF4U2V0dGluZ3MscykpO3ZhciBqc29ucCxqc3JlPS89XD8oJnwkKS9nLHN0
YXR1cyxkYXRhLHR5cGU9cy50eXBlLnRvVXBwZXJDYXNlKCk7aWYocy5kYXRhJiZz
LnByb2Nlc3NEYXRhJiZ0eXBlb2Ygcy5kYXRhIT09InN0cmluZyIpCnMuZGF0YT1q
UXVlcnkucGFyYW0ocy5kYXRhKTtpZihzLmRhdGFUeXBlPT0ianNvbnAiKXtpZih0
eXBlPT0iR0VUIil7aWYoIXMudXJsLm1hdGNoKGpzcmUpKQpzLnVybCs9KHMudXJs
Lm1hdGNoKC9cPy8pPyImIjoiPyIpKyhzLmpzb25wfHwiY2FsbGJhY2siKSsiPT8i
O31lbHNlIGlmKCFzLmRhdGF8fCFzLmRhdGEubWF0Y2goanNyZSkpCnMuZGF0YT0o
cy5kYXRhP3MuZGF0YSsiJiI6IiIpKyhzLmpzb25wfHwiY2FsbGJhY2siKSsiPT8i
O3MuZGF0YVR5cGU9Impzb24iO30KaWYocy5kYXRhVHlwZT09Impzb24iJiYocy5k
YXRhJiZzLmRhdGEubWF0Y2goanNyZSl8fHMudXJsLm1hdGNoKGpzcmUpKSl7anNv
bnA9Impzb25wIitqc2MrKztpZihzLmRhdGEpCnMuZGF0YT0ocy5kYXRhKyIiKS5y
ZXBsYWNlKGpzcmUsIj0iK2pzb25wKyIkMSIpO3MudXJsPXMudXJsLnJlcGxhY2Uo
anNyZSwiPSIranNvbnArIiQxIik7cy5kYXRhVHlwZT0ic2NyaXB0Ijt3aW5kb3db
anNvbnBdPWZ1bmN0aW9uKHRtcCl7ZGF0YT10bXA7c3VjY2VzcygpO2NvbXBsZXRl
KCk7d2luZG93W2pzb25wXT11bmRlZmluZWQ7dHJ5e2RlbGV0ZSB3aW5kb3dbanNv
bnBdO31jYXRjaChlKXt9CmlmKGhlYWQpCmhlYWQucmVtb3ZlQ2hpbGQoc2NyaXB0
KTt9O30KaWYocy5kYXRhVHlwZT09InNjcmlwdCImJnMuY2FjaGU9PW51bGwpCnMu
Y2FjaGU9ZmFsc2U7aWYocy5jYWNoZT09PWZhbHNlJiZ0eXBlPT0iR0VUIil7dmFy
IHRzPW5vdygpO3ZhciByZXQ9cy51cmwucmVwbGFjZSgvKFw/fCYpXz0uKj8oJnwk
KS8sIiQxXz0iK3RzKyIkMiIpO3MudXJsPXJldCsoKHJldD09cy51cmwpPyhzLnVy
bC5tYXRjaCgvXD8vKT8iJiI6Ij8iKSsiXz0iK3RzOiIiKTt9CmlmKHMuZGF0YSYm
dHlwZT09IkdFVCIpe3MudXJsKz0ocy51cmwubWF0Y2goL1w/Lyk/IiYiOiI/Iikr
cy5kYXRhO3MuZGF0YT1udWxsO30KaWYocy5nbG9iYWwmJiFqUXVlcnkuYWN0aXZl
KyspCmpRdWVyeS5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKTt2YXIgcGFydHM9
L14oXHcrOik/XC9cLyhbXlwvPyNdKykvLmV4ZWMocy51cmwpO2lmKHMuZGF0YVR5
cGU9PSJzY3JpcHQiJiZ0eXBlPT0iR0VUIiYmcGFydHMmJihwYXJ0c1sxXSYmcGFy
dHNbMV0hPWxvY2F0aW9uLnByb3RvY29sfHxwYXJ0c1syXSE9bG9jYXRpb24uaG9z
dCkpe3ZhciBoZWFkPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFk
IilbMF07dmFyIHNjcmlwdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQi
KTtzY3JpcHQuc3JjPXMudXJsO2lmKHMuc2NyaXB0Q2hhcnNldCkKc2NyaXB0LmNo
YXJzZXQ9cy5zY3JpcHRDaGFyc2V0O2lmKCFqc29ucCl7dmFyIGRvbmU9ZmFsc2U7
c2NyaXB0Lm9ubG9hZD1zY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9u
KCl7aWYoIWRvbmUmJighdGhpcy5yZWFkeVN0YXRlfHx0aGlzLnJlYWR5U3RhdGU9
PSJsb2FkZWQifHx0aGlzLnJlYWR5U3RhdGU9PSJjb21wbGV0ZSIpKXtkb25lPXRy
dWU7c3VjY2VzcygpO2NvbXBsZXRlKCk7c2NyaXB0Lm9ubG9hZD1zY3JpcHQub25y
ZWFkeXN0YXRlY2hhbmdlPW51bGw7aGVhZC5yZW1vdmVDaGlsZChzY3JpcHQpO319
O30KaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO3JldHVybiB1bmRlZmluZWQ7fQp2
YXIgcmVxdWVzdERvbmU9ZmFsc2U7dmFyIHhocj1zLnhocigpO2lmKHMudXNlcm5h
bWUpCnhoci5vcGVuKHR5cGUscy51cmwscy5hc3luYyxzLnVzZXJuYW1lLHMucGFz
c3dvcmQpO2Vsc2UKeGhyLm9wZW4odHlwZSxzLnVybCxzLmFzeW5jKTt0cnl7aWYo
cy5kYXRhKQp4aHIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixzLmNv
bnRlbnRUeXBlKTtpZihzLmlmTW9kaWZpZWQpCnhoci5zZXRSZXF1ZXN0SGVhZGVy
KCJJZi1Nb2RpZmllZC1TaW5jZSIsalF1ZXJ5Lmxhc3RNb2RpZmllZFtzLnVybF18
fCJUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIpO3hoci5zZXRSZXF1ZXN0
SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTt4aHIu
c2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixzLmRhdGFUeXBlJiZzLmFjY2VwdHNb
cy5kYXRhVHlwZV0/cy5hY2NlcHRzW3MuZGF0YVR5cGVdKyIsICovKiI6cy5hY2Nl
cHRzLl9kZWZhdWx0KTt9Y2F0Y2goZSl7fQppZihzLmJlZm9yZVNlbmQmJnMuYmVm
b3JlU2VuZCh4aHIscyk9PT1mYWxzZSl7aWYocy5nbG9iYWwmJiEtLWpRdWVyeS5h
Y3RpdmUpCmpRdWVyeS5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpO3hoci5hYm9y
dCgpO3JldHVybiBmYWxzZTt9CmlmKHMuZ2xvYmFsKQpqUXVlcnkuZXZlbnQudHJp
Z2dlcigiYWpheFNlbmQiLFt4aHIsc10pO3ZhciBvbnJlYWR5c3RhdGVjaGFuZ2U9
ZnVuY3Rpb24oaXNUaW1lb3V0KXtpZih4aHIucmVhZHlTdGF0ZT09MCl7aWYoaXZh
bCl7Y2xlYXJJbnRlcnZhbChpdmFsKTtpdmFsPW51bGw7aWYocy5nbG9iYWwmJiEt
LWpRdWVyeS5hY3RpdmUpCmpRdWVyeS5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIp
O319ZWxzZSBpZighcmVxdWVzdERvbmUmJnhociYmKHhoci5yZWFkeVN0YXRlPT00
fHxpc1RpbWVvdXQ9PSJ0aW1lb3V0Iikpe3JlcXVlc3REb25lPXRydWU7aWYoaXZh
bCl7Y2xlYXJJbnRlcnZhbChpdmFsKTtpdmFsPW51bGw7fQpzdGF0dXM9aXNUaW1l
b3V0PT0idGltZW91dCI/InRpbWVvdXQiOiFqUXVlcnkuaHR0cFN1Y2Nlc3MoeGhy
KT8iZXJyb3IiOnMuaWZNb2RpZmllZCYmalF1ZXJ5Lmh0dHBOb3RNb2RpZmllZCh4
aHIscy51cmwpPyJub3Rtb2RpZmllZCI6InN1Y2Nlc3MiO2lmKHN0YXR1cz09InN1
Y2Nlc3MiKXt0cnl7ZGF0YT1qUXVlcnkuaHR0cERhdGEoeGhyLHMuZGF0YVR5cGUs
cyk7fWNhdGNoKGUpe3N0YXR1cz0icGFyc2VyZXJyb3IiO319CmlmKHN0YXR1cz09
InN1Y2Nlc3MiKXt2YXIgbW9kUmVzO3RyeXttb2RSZXM9eGhyLmdldFJlc3BvbnNl
SGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7fWNhdGNoKGUpe30KaWYocy5pZk1vZGlm
aWVkJiZtb2RSZXMpCmpRdWVyeS5sYXN0TW9kaWZpZWRbcy51cmxdPW1vZFJlcztp
ZighanNvbnApCnN1Y2Nlc3MoKTt9ZWxzZQpqUXVlcnkuaGFuZGxlRXJyb3Iocyx4
aHIsc3RhdHVzKTtjb21wbGV0ZSgpO2lmKGlzVGltZW91dCkKeGhyLmFib3J0KCk7
aWYocy5hc3luYykKeGhyPW51bGw7fX07aWYocy5hc3luYyl7dmFyIGl2YWw9c2V0
SW50ZXJ2YWwob25yZWFkeXN0YXRlY2hhbmdlLDEzKTtpZihzLnRpbWVvdXQ+MCkK
c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHhociYmIXJlcXVlc3REb25lKQpvbnJl
YWR5c3RhdGVjaGFuZ2UoInRpbWVvdXQiKTt9LHMudGltZW91dCk7fQp0cnl7eGhy
LnNlbmQocy5kYXRhKTt9Y2F0Y2goZSl7alF1ZXJ5LmhhbmRsZUVycm9yKHMseGhy
LG51bGwsZSk7fQppZighcy5hc3luYykKb25yZWFkeXN0YXRlY2hhbmdlKCk7ZnVu
Y3Rpb24gc3VjY2Vzcygpe2lmKHMuc3VjY2VzcykKcy5zdWNjZXNzKGRhdGEsc3Rh
dHVzKTtpZihzLmdsb2JhbCkKalF1ZXJ5LmV2ZW50LnRyaWdnZXIoImFqYXhTdWNj
ZXNzIixbeGhyLHNdKTt9CmZ1bmN0aW9uIGNvbXBsZXRlKCl7aWYocy5jb21wbGV0
ZSkKcy5jb21wbGV0ZSh4aHIsc3RhdHVzKTtpZihzLmdsb2JhbCkKalF1ZXJ5LmV2
ZW50LnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3hocixzXSk7aWYocy5nbG9iYWwm
JiEtLWpRdWVyeS5hY3RpdmUpCmpRdWVyeS5ldmVudC50cmlnZ2VyKCJhamF4U3Rv
cCIpO30KcmV0dXJuIHhocjt9LGhhbmRsZUVycm9yOmZ1bmN0aW9uKHMseGhyLHN0
YXR1cyxlKXtpZihzLmVycm9yKXMuZXJyb3IoeGhyLHN0YXR1cyxlKTtpZihzLmds
b2JhbCkKalF1ZXJ5LmV2ZW50LnRyaWdnZXIoImFqYXhFcnJvciIsW3hocixzLGVd
KTt9LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKHhocil7dHJ5e3JldHVy
biF4aHIuc3RhdHVzJiZsb2NhdGlvbi5wcm90b2NvbD09ImZpbGU6Inx8KHhoci5z
dGF0dXM+PTIwMCYmeGhyLnN0YXR1czwzMDApfHx4aHIuc3RhdHVzPT0zMDR8fHho
ci5zdGF0dXM9PTEyMjM7fWNhdGNoKGUpe30KcmV0dXJuIGZhbHNlO30saHR0cE5v
dE1vZGlmaWVkOmZ1bmN0aW9uKHhocix1cmwpe3RyeXt2YXIgeGhyUmVzPXhoci5n
ZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpO3JldHVybiB4aHIuc3Rh
dHVzPT0zMDR8fHhoclJlcz09alF1ZXJ5Lmxhc3RNb2RpZmllZFt1cmxdO31jYXRj
aChlKXt9CnJldHVybiBmYWxzZTt9LGh0dHBEYXRhOmZ1bmN0aW9uKHhocix0eXBl
LHMpe3ZhciBjdD14aHIuZ2V0UmVzcG9uc2VIZWFkZXIoImNvbnRlbnQtdHlwZSIp
LHhtbD10eXBlPT0ieG1sInx8IXR5cGUmJmN0JiZjdC5pbmRleE9mKCJ4bWwiKT49
MCxkYXRhPXhtbD94aHIucmVzcG9uc2VYTUw6eGhyLnJlc3BvbnNlVGV4dDtpZih4
bWwmJmRhdGEuZG9jdW1lbnRFbGVtZW50LnRhZ05hbWU9PSJwYXJzZXJlcnJvciIp
CnRocm93InBhcnNlcmVycm9yIjtpZihzJiZzLmRhdGFGaWx0ZXIpCmRhdGE9cy5k
YXRhRmlsdGVyKGRhdGEsdHlwZSk7aWYodHlwZW9mIGRhdGE9PT0ic3RyaW5nIil7
aWYodHlwZT09InNjcmlwdCIpCmpRdWVyeS5nbG9iYWxFdmFsKGRhdGEpO2lmKHR5
cGU9PSJqc29uIikKZGF0YT13aW5kb3dbImV2YWwiXSgiKCIrZGF0YSsiKSIpO30K
cmV0dXJuIGRhdGE7fSxwYXJhbTpmdW5jdGlvbihhKXt2YXIgcz1bXTtmdW5jdGlv
biBhZGQoa2V5LHZhbHVlKXtzW3MubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQo
a2V5KSsnPScrZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTt9O2lmKGpRdWVyeS5p
c0FycmF5KGEpfHxhLmpxdWVyeSkKalF1ZXJ5LmVhY2goYSxmdW5jdGlvbigpe2Fk
ZCh0aGlzLm5hbWUsdGhpcy52YWx1ZSk7fSk7ZWxzZQpmb3IodmFyIGogaW4gYSkK
aWYoalF1ZXJ5LmlzQXJyYXkoYVtqXSkpCmpRdWVyeS5lYWNoKGFbal0sZnVuY3Rp
b24oKXthZGQoaix0aGlzKTt9KTtlbHNlCmFkZChqLGpRdWVyeS5pc0Z1bmN0aW9u
KGFbal0pP2Fbal0oKTphW2pdKTtyZXR1cm4gcy5qb2luKCImIikucmVwbGFjZSgv
JTIwL2csIisiKTt9fSk7dmFyIGVsZW1kaXNwbGF5PXt9LHRpbWVySWQsZnhBdHRy
cz1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5n
VG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFy
Z2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0
eSJdXTtmdW5jdGlvbiBnZW5GeCh0eXBlLG51bSl7dmFyIG9iaj17fTtqUXVlcnku
ZWFjaChmeEF0dHJzLmNvbmNhdC5hcHBseShbXSxmeEF0dHJzLnNsaWNlKDAsbnVt
KSksZnVuY3Rpb24oKXtvYmpbdGhpc109dHlwZTt9KTtyZXR1cm4gb2JqO30KalF1
ZXJ5LmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihzcGVlZCxjYWxsYmFjayl7aWYo
c3BlZWQpe3JldHVybiB0aGlzLmFuaW1hdGUoZ2VuRngoInNob3ciLDMpLHNwZWVk
LGNhbGxiYWNrKTt9ZWxzZXtmb3IodmFyIGk9MCxsPXRoaXMubGVuZ3RoO2k8bDtp
Kyspe3ZhciBvbGQ9alF1ZXJ5LmRhdGEodGhpc1tpXSwib2xkZGlzcGxheSIpO3Ro
aXNbaV0uc3R5bGUuZGlzcGxheT1vbGR8fCIiO2lmKGpRdWVyeS5jc3ModGhpc1tp
XSwiZGlzcGxheSIpPT09Im5vbmUiKXt2YXIgdGFnTmFtZT10aGlzW2ldLnRhZ05h
bWUsZGlzcGxheTtpZihlbGVtZGlzcGxheVt0YWdOYW1lXSl7ZGlzcGxheT1lbGVt
ZGlzcGxheVt0YWdOYW1lXTt9ZWxzZXt2YXIgZWxlbT1qUXVlcnkoIjwiK3RhZ05h
bWUrIiAvPiIpLmFwcGVuZFRvKCJib2R5Iik7ZGlzcGxheT1lbGVtLmNzcygiZGlz
cGxheSIpO2lmKGRpc3BsYXk9PT0ibm9uZSIpCmRpc3BsYXk9ImJsb2NrIjtlbGVt
LnJlbW92ZSgpO2VsZW1kaXNwbGF5W3RhZ05hbWVdPWRpc3BsYXk7fQpqUXVlcnku
ZGF0YSh0aGlzW2ldLCJvbGRkaXNwbGF5IixkaXNwbGF5KTt9fQpmb3IodmFyIGk9
MCxsPXRoaXMubGVuZ3RoO2k8bDtpKyspe3RoaXNbaV0uc3R5bGUuZGlzcGxheT1q
UXVlcnkuZGF0YSh0aGlzW2ldLCJvbGRkaXNwbGF5Iil8fCIiO30KcmV0dXJuIHRo
aXM7fX0saGlkZTpmdW5jdGlvbihzcGVlZCxjYWxsYmFjayl7aWYoc3BlZWQpe3Jl
dHVybiB0aGlzLmFuaW1hdGUoZ2VuRngoImhpZGUiLDMpLHNwZWVkLGNhbGxiYWNr
KTt9ZWxzZXtmb3IodmFyIGk9MCxsPXRoaXMubGVuZ3RoO2k8bDtpKyspe3ZhciBv
bGQ9alF1ZXJ5LmRhdGEodGhpc1tpXSwib2xkZGlzcGxheSIpO2lmKCFvbGQmJm9s
ZCE9PSJub25lIikKalF1ZXJ5LmRhdGEodGhpc1tpXSwib2xkZGlzcGxheSIsalF1
ZXJ5LmNzcyh0aGlzW2ldLCJkaXNwbGF5IikpO30KZm9yKHZhciBpPTAsbD10aGlz
Lmxlbmd0aDtpPGw7aSsrKXt0aGlzW2ldLnN0eWxlLmRpc3BsYXk9Im5vbmUiO30K
cmV0dXJuIHRoaXM7fX0sX3RvZ2dsZTpqUXVlcnkuZm4udG9nZ2xlLHRvZ2dsZTpm
dW5jdGlvbihmbixmbjIpe3ZhciBib29sPXR5cGVvZiBmbj09PSJib29sZWFuIjty
ZXR1cm4galF1ZXJ5LmlzRnVuY3Rpb24oZm4pJiZqUXVlcnkuaXNGdW5jdGlvbihm
bjIpP3RoaXMuX3RvZ2dsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6Zm49PW51bGx8
fGJvb2w/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHN0YXRlPWJvb2w/Zm46alF1
ZXJ5KHRoaXMpLmlzKCI6aGlkZGVuIik7alF1ZXJ5KHRoaXMpW3N0YXRlPyJzaG93
IjoiaGlkZSJdKCk7fSk6dGhpcy5hbmltYXRlKGdlbkZ4KCJ0b2dnbGUiLDMpLGZu
LGZuMik7fSxmYWRlVG86ZnVuY3Rpb24oc3BlZWQsdG8sY2FsbGJhY2spe3JldHVy
biB0aGlzLmFuaW1hdGUoe29wYWNpdHk6dG99LHNwZWVkLGNhbGxiYWNrKTt9LGFu
aW1hdGU6ZnVuY3Rpb24ocHJvcCxzcGVlZCxlYXNpbmcsY2FsbGJhY2spe3ZhciBv
cHRhbGw9alF1ZXJ5LnNwZWVkKHNwZWVkLGVhc2luZyxjYWxsYmFjayk7cmV0dXJu
IHRoaXNbb3B0YWxsLnF1ZXVlPT09ZmFsc2U/ImVhY2giOiJxdWV1ZSJdKGZ1bmN0
aW9uKCl7dmFyIG9wdD1qUXVlcnkuZXh0ZW5kKHt9LG9wdGFsbCkscCxoaWRkZW49
dGhpcy5ub2RlVHlwZT09MSYmalF1ZXJ5KHRoaXMpLmlzKCI6aGlkZGVuIiksc2Vs
Zj10aGlzO2ZvcihwIGluIHByb3Ape2lmKHByb3BbcF09PSJoaWRlIiYmaGlkZGVu
fHxwcm9wW3BdPT0ic2hvdyImJiFoaWRkZW4pCnJldHVybiBvcHQuY29tcGxldGUu
Y2FsbCh0aGlzKTtpZigocD09ImhlaWdodCJ8fHA9PSJ3aWR0aCIpJiZ0aGlzLnN0
eWxlKXtvcHQuZGlzcGxheT1qUXVlcnkuY3NzKHRoaXMsImRpc3BsYXkiKTtvcHQu
b3ZlcmZsb3c9dGhpcy5zdHlsZS5vdmVyZmxvdzt9fQppZihvcHQub3ZlcmZsb3ch
PW51bGwpCnRoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7b3B0LmN1ckFuaW09
alF1ZXJ5LmV4dGVuZCh7fSxwcm9wKTtqUXVlcnkuZWFjaChwcm9wLGZ1bmN0aW9u
KG5hbWUsdmFsKXt2YXIgZT1uZXcgalF1ZXJ5LmZ4KHNlbGYsb3B0LG5hbWUpO2lm
KC90b2dnbGV8c2hvd3xoaWRlLy50ZXN0KHZhbCkpCmVbdmFsPT0idG9nZ2xlIj9o
aWRkZW4/InNob3ciOiJoaWRlIjp2YWxdKHByb3ApO2Vsc2V7dmFyIHBhcnRzPXZh
bC50b1N0cmluZygpLm1hdGNoKC9eKFsrLV09KT8oW1xkKy0uXSspKC4qKSQvKSxz
dGFydD1lLmN1cih0cnVlKXx8MDtpZihwYXJ0cyl7dmFyIGVuZD1wYXJzZUZsb2F0
KHBhcnRzWzJdKSx1bml0PXBhcnRzWzNdfHwicHgiO2lmKHVuaXQhPSJweCIpe3Nl
bGYuc3R5bGVbbmFtZV09KGVuZHx8MSkrdW5pdDtzdGFydD0oKGVuZHx8MSkvZS5j
dXIodHJ1ZSkpKnN0YXJ0O3NlbGYuc3R5bGVbbmFtZV09c3RhcnQrdW5pdDt9Cmlm
KHBhcnRzWzFdKQplbmQ9KChwYXJ0c1sxXT09Ii09Ij8tMToxKSplbmQpK3N0YXJ0
O2UuY3VzdG9tKHN0YXJ0LGVuZCx1bml0KTt9ZWxzZQplLmN1c3RvbShzdGFydCx2
YWwsIiIpO319KTtyZXR1cm4gdHJ1ZTt9KTt9LHN0b3A6ZnVuY3Rpb24oY2xlYXJR
dWV1ZSxnb3RvRW5kKXt2YXIgdGltZXJzPWpRdWVyeS50aW1lcnM7aWYoY2xlYXJR
dWV1ZSkKdGhpcy5xdWV1ZShbXSk7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zm9yKHZh
ciBpPXRpbWVycy5sZW5ndGgtMTtpPj0wO2ktLSkKaWYodGltZXJzW2ldLmVsZW09
PXRoaXMpe2lmKGdvdG9FbmQpCnRpbWVyc1tpXSh0cnVlKTt0aW1lcnMuc3BsaWNl
KGksMSk7fX0pO2lmKCFnb3RvRW5kKQp0aGlzLmRlcXVldWUoKTtyZXR1cm4gdGhp
czt9fSk7alF1ZXJ5LmVhY2goe3NsaWRlRG93bjpnZW5GeCgic2hvdyIsMSksc2xp
ZGVVcDpnZW5GeCgiaGlkZSIsMSksc2xpZGVUb2dnbGU6Z2VuRngoInRvZ2dsZSIs
MSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlk
ZSJ9fSxmdW5jdGlvbihuYW1lLHByb3BzKXtqUXVlcnkuZm5bbmFtZV09ZnVuY3Rp
b24oc3BlZWQsY2FsbGJhY2spe3JldHVybiB0aGlzLmFuaW1hdGUocHJvcHMsc3Bl
ZWQsY2FsbGJhY2spO307fSk7alF1ZXJ5LmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24o
c3BlZWQsZWFzaW5nLGZuKXt2YXIgb3B0PXR5cGVvZiBzcGVlZD09PSJvYmplY3Qi
P3NwZWVkOntjb21wbGV0ZTpmbnx8IWZuJiZlYXNpbmd8fGpRdWVyeS5pc0Z1bmN0
aW9uKHNwZWVkKSYmc3BlZWQsZHVyYXRpb246c3BlZWQsZWFzaW5nOmZuJiZlYXNp
bmd8fGVhc2luZyYmIWpRdWVyeS5pc0Z1bmN0aW9uKGVhc2luZykmJmVhc2luZ307
b3B0LmR1cmF0aW9uPWpRdWVyeS5meC5vZmY/MDp0eXBlb2Ygb3B0LmR1cmF0aW9u
PT09Im51bWJlciI/b3B0LmR1cmF0aW9uOmpRdWVyeS5meC5zcGVlZHNbb3B0LmR1
cmF0aW9uXXx8alF1ZXJ5LmZ4LnNwZWVkcy5fZGVmYXVsdDtvcHQub2xkPW9wdC5j
b21wbGV0ZTtvcHQuY29tcGxldGU9ZnVuY3Rpb24oKXtpZihvcHQucXVldWUhPT1m
YWxzZSkKalF1ZXJ5KHRoaXMpLmRlcXVldWUoKTtpZihqUXVlcnkuaXNGdW5jdGlv
bihvcHQub2xkKSkKb3B0Lm9sZC5jYWxsKHRoaXMpO307cmV0dXJuIG9wdDt9LGVh
c2luZzp7bGluZWFyOmZ1bmN0aW9uKHAsbixmaXJzdE51bSxkaWZmKXtyZXR1cm4g
Zmlyc3ROdW0rZGlmZipwO30sc3dpbmc6ZnVuY3Rpb24ocCxuLGZpcnN0TnVtLGRp
ZmYpe3JldHVybigoLU1hdGguY29zKHAqTWF0aC5QSSkvMikrMC41KSpkaWZmK2Zp
cnN0TnVtO319LHRpbWVyczpbXSxmeDpmdW5jdGlvbihlbGVtLG9wdGlvbnMscHJv
cCl7dGhpcy5vcHRpb25zPW9wdGlvbnM7dGhpcy5lbGVtPWVsZW07dGhpcy5wcm9w
PXByb3A7aWYoIW9wdGlvbnMub3JpZykKb3B0aW9ucy5vcmlnPXt9O319KTtqUXVl
cnkuZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlv
bnMuc3RlcCkKdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5u
b3csdGhpcyk7KGpRdWVyeS5meC5zdGVwW3RoaXMucHJvcF18fGpRdWVyeS5meC5z
dGVwLl9kZWZhdWx0KSh0aGlzKTtpZigodGhpcy5wcm9wPT0iaGVpZ2h0Inx8dGhp
cy5wcm9wPT0id2lkdGgiKSYmdGhpcy5lbGVtLnN0eWxlKQp0aGlzLmVsZW0uc3R5
bGUuZGlzcGxheT0iYmxvY2siO30sY3VyOmZ1bmN0aW9uKGZvcmNlKXtpZih0aGlz
LmVsZW1bdGhpcy5wcm9wXSE9bnVsbCYmKCF0aGlzLmVsZW0uc3R5bGV8fHRoaXMu
ZWxlbS5zdHlsZVt0aGlzLnByb3BdPT1udWxsKSkKcmV0dXJuIHRoaXMuZWxlbVt0
aGlzLnByb3BdO3ZhciByPXBhcnNlRmxvYXQoalF1ZXJ5LmNzcyh0aGlzLmVsZW0s
dGhpcy5wcm9wLGZvcmNlKSk7cmV0dXJuIHImJnI+LTEwMDAwP3I6cGFyc2VGbG9h
dChqUXVlcnkuY3VyQ1NTKHRoaXMuZWxlbSx0aGlzLnByb3ApKXx8MDt9LGN1c3Rv
bTpmdW5jdGlvbihmcm9tLHRvLHVuaXQpe3RoaXMuc3RhcnRUaW1lPW5vdygpO3Ro
aXMuc3RhcnQ9ZnJvbTt0aGlzLmVuZD10bzt0aGlzLnVuaXQ9dW5pdHx8dGhpcy51
bml0fHwicHgiO3RoaXMubm93PXRoaXMuc3RhcnQ7dGhpcy5wb3M9dGhpcy5zdGF0
ZT0wO3ZhciBzZWxmPXRoaXM7ZnVuY3Rpb24gdChnb3RvRW5kKXtyZXR1cm4gc2Vs
Zi5zdGVwKGdvdG9FbmQpO30KdC5lbGVtPXRoaXMuZWxlbTtpZih0KCkmJmpRdWVy
eS50aW1lcnMucHVzaCh0KSYmIXRpbWVySWQpe3RpbWVySWQ9c2V0SW50ZXJ2YWwo
ZnVuY3Rpb24oKXt2YXIgdGltZXJzPWpRdWVyeS50aW1lcnM7Zm9yKHZhciBpPTA7
aTx0aW1lcnMubGVuZ3RoO2krKykKaWYoIXRpbWVyc1tpXSgpKQp0aW1lcnMuc3Bs
aWNlKGktLSwxKTtpZighdGltZXJzLmxlbmd0aCl7Y2xlYXJJbnRlcnZhbCh0aW1l
cklkKTt0aW1lcklkPXVuZGVmaW5lZDt9fSwxMyk7fX0sc2hvdzpmdW5jdGlvbigp
e3RoaXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF09alF1ZXJ5LmF0dHIodGhpcy5l
bGVtLnN0eWxlLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlz
LmN1c3RvbSh0aGlzLnByb3A9PSJ3aWR0aCJ8fHRoaXMucHJvcD09ImhlaWdodCI/
MTowLHRoaXMuY3VyKCkpO2pRdWVyeSh0aGlzLmVsZW0pLnNob3coKTt9LGhpZGU6
ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWpRdWVyeS5h
dHRyKHRoaXMuZWxlbS5zdHlsZSx0aGlzLnByb3ApO3RoaXMub3B0aW9ucy5oaWRl
PXRydWU7dGhpcy5jdXN0b20odGhpcy5jdXIoKSwwKTt9LHN0ZXA6ZnVuY3Rpb24o
Z290b0VuZCl7dmFyIHQ9bm93KCk7aWYoZ290b0VuZHx8dD49dGhpcy5vcHRpb25z
LmR1cmF0aW9uK3RoaXMuc3RhcnRUaW1lKXt0aGlzLm5vdz10aGlzLmVuZDt0aGlz
LnBvcz10aGlzLnN0YXRlPTE7dGhpcy51cGRhdGUoKTt0aGlzLm9wdGlvbnMuY3Vy
QW5pbVt0aGlzLnByb3BdPXRydWU7dmFyIGRvbmU9dHJ1ZTtmb3IodmFyIGkgaW4g
dGhpcy5vcHRpb25zLmN1ckFuaW0pCmlmKHRoaXMub3B0aW9ucy5jdXJBbmltW2ld
IT09dHJ1ZSkKZG9uZT1mYWxzZTtpZihkb25lKXtpZih0aGlzLm9wdGlvbnMuZGlz
cGxheSE9bnVsbCl7dGhpcy5lbGVtLnN0eWxlLm92ZXJmbG93PXRoaXMub3B0aW9u
cy5vdmVyZmxvdzt0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT10aGlzLm9wdGlvbnMu
ZGlzcGxheTtpZihqUXVlcnkuY3NzKHRoaXMuZWxlbSwiZGlzcGxheSIpPT0ibm9u
ZSIpCnRoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayI7fQppZih0aGlzLm9w
dGlvbnMuaGlkZSkKalF1ZXJ5KHRoaXMuZWxlbSkuaGlkZSgpO2lmKHRoaXMub3B0
aW9ucy5oaWRlfHx0aGlzLm9wdGlvbnMuc2hvdykKZm9yKHZhciBwIGluIHRoaXMu
b3B0aW9ucy5jdXJBbmltKQpqUXVlcnkuYXR0cih0aGlzLmVsZW0uc3R5bGUscCx0
aGlzLm9wdGlvbnMub3JpZ1twXSk7dGhpcy5vcHRpb25zLmNvbXBsZXRlLmNhbGwo
dGhpcy5lbGVtKTt9CnJldHVybiBmYWxzZTt9ZWxzZXt2YXIgbj10LXRoaXMuc3Rh
cnRUaW1lO3RoaXMuc3RhdGU9bi90aGlzLm9wdGlvbnMuZHVyYXRpb247dGhpcy5w
b3M9alF1ZXJ5LmVhc2luZ1t0aGlzLm9wdGlvbnMuZWFzaW5nfHwoalF1ZXJ5LmVh
c2luZy5zd2luZz8ic3dpbmciOiJsaW5lYXIiKV0odGhpcy5zdGF0ZSxuLDAsMSx0
aGlzLm9wdGlvbnMuZHVyYXRpb24pO3RoaXMubm93PXRoaXMuc3RhcnQrKCh0aGlz
LmVuZC10aGlzLnN0YXJ0KSp0aGlzLnBvcyk7dGhpcy51cGRhdGUoKTt9CnJldHVy
biB0cnVlO319O2pRdWVyeS5leHRlbmQoalF1ZXJ5LmZ4LHtzcGVlZHM6e3Nsb3c6
NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0eTpmdW5jdGlv
bihmeCl7alF1ZXJ5LmF0dHIoZnguZWxlbS5zdHlsZSwib3BhY2l0eSIsZngubm93
KTt9LF9kZWZhdWx0OmZ1bmN0aW9uKGZ4KXtpZihmeC5lbGVtLnN0eWxlJiZmeC5l
bGVtLnN0eWxlW2Z4LnByb3BdIT1udWxsKQpmeC5lbGVtLnN0eWxlW2Z4LnByb3Bd
PWZ4Lm5vdytmeC51bml0O2Vsc2UKZnguZWxlbVtmeC5wcm9wXT1meC5ub3c7fX19
KTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImdldEJvdW5kaW5nQ2xpZW50
UmVjdCJdKQpqUXVlcnkuZm4ub2Zmc2V0PWZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0p
cmV0dXJue3RvcDowLGxlZnQ6MH07aWYodGhpc1swXT09PXRoaXNbMF0ub3duZXJE
b2N1bWVudC5ib2R5KXJldHVybiBqUXVlcnkub2Zmc2V0LmJvZHlPZmZzZXQodGhp
c1swXSk7dmFyIGJveD10aGlzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGRv
Yz10aGlzWzBdLm93bmVyRG9jdW1lbnQsYm9keT1kb2MuYm9keSxkb2NFbGVtPWRv
Yy5kb2N1bWVudEVsZW1lbnQsY2xpZW50VG9wPWRvY0VsZW0uY2xpZW50VG9wfHxi
b2R5LmNsaWVudFRvcHx8MCxjbGllbnRMZWZ0PWRvY0VsZW0uY2xpZW50TGVmdHx8
Ym9keS5jbGllbnRMZWZ0fHwwLHRvcD1ib3gudG9wKyhzZWxmLnBhZ2VZT2Zmc2V0
fHxqUXVlcnkuYm94TW9kZWwmJmRvY0VsZW0uc2Nyb2xsVG9wfHxib2R5LnNjcm9s
bFRvcCktY2xpZW50VG9wLGxlZnQ9Ym94LmxlZnQrKHNlbGYucGFnZVhPZmZzZXR8
fGpRdWVyeS5ib3hNb2RlbCYmZG9jRWxlbS5zY3JvbGxMZWZ0fHxib2R5LnNjcm9s
bExlZnQpLWNsaWVudExlZnQ7cmV0dXJue3RvcDp0b3AsbGVmdDpsZWZ0fTt9O2Vs
c2UKalF1ZXJ5LmZuLm9mZnNldD1mdW5jdGlvbigpe2lmKCF0aGlzWzBdKXJldHVy
bnt0b3A6MCxsZWZ0OjB9O2lmKHRoaXNbMF09PT10aGlzWzBdLm93bmVyRG9jdW1l
bnQuYm9keSlyZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KHRoaXNbMF0p
O2pRdWVyeS5vZmZzZXQuaW5pdGlhbGl6ZWR8fGpRdWVyeS5vZmZzZXQuaW5pdGlh
bGl6ZSgpO3ZhciBlbGVtPXRoaXNbMF0sb2Zmc2V0UGFyZW50PWVsZW0ub2Zmc2V0
UGFyZW50LHByZXZPZmZzZXRQYXJlbnQ9ZWxlbSxkb2M9ZWxlbS5vd25lckRvY3Vt
ZW50LGNvbXB1dGVkU3R5bGUsZG9jRWxlbT1kb2MuZG9jdW1lbnRFbGVtZW50LGJv
ZHk9ZG9jLmJvZHksZGVmYXVsdFZpZXc9ZG9jLmRlZmF1bHRWaWV3LHByZXZDb21w
dXRlZFN0eWxlPWRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWxlbSxudWxs
KSx0b3A9ZWxlbS5vZmZzZXRUb3AsbGVmdD1lbGVtLm9mZnNldExlZnQ7d2hpbGUo
KGVsZW09ZWxlbS5wYXJlbnROb2RlKSYmZWxlbSE9PWJvZHkmJmVsZW0hPT1kb2NF
bGVtKXtjb21wdXRlZFN0eWxlPWRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUo
ZWxlbSxudWxsKTt0b3AtPWVsZW0uc2Nyb2xsVG9wLGxlZnQtPWVsZW0uc2Nyb2xs
TGVmdDtpZihlbGVtPT09b2Zmc2V0UGFyZW50KXt0b3ArPWVsZW0ub2Zmc2V0VG9w
LGxlZnQrPWVsZW0ub2Zmc2V0TGVmdDtpZihqUXVlcnkub2Zmc2V0LmRvZXNOb3RB
ZGRCb3JkZXImJiEoalF1ZXJ5Lm9mZnNldC5kb2VzQWRkQm9yZGVyRm9yVGFibGVB
bmRDZWxscyYmL150KGFibGV8ZHxoKSQvaS50ZXN0KGVsZW0udGFnTmFtZSkpKQp0
b3ArPXBhcnNlSW50KGNvbXB1dGVkU3R5bGUuYm9yZGVyVG9wV2lkdGgsMTApfHww
LGxlZnQrPXBhcnNlSW50KGNvbXB1dGVkU3R5bGUuYm9yZGVyTGVmdFdpZHRoLDEw
KXx8MDtwcmV2T2Zmc2V0UGFyZW50PW9mZnNldFBhcmVudCxvZmZzZXRQYXJlbnQ9
ZWxlbS5vZmZzZXRQYXJlbnQ7fQppZihqUXVlcnkub2Zmc2V0LnN1YnRyYWN0c0Jv
cmRlckZvck92ZXJmbG93Tm90VmlzaWJsZSYmY29tcHV0ZWRTdHlsZS5vdmVyZmxv
dyE9PSJ2aXNpYmxlIikKdG9wKz1wYXJzZUludChjb21wdXRlZFN0eWxlLmJvcmRl
clRvcFdpZHRoLDEwKXx8MCxsZWZ0Kz1wYXJzZUludChjb21wdXRlZFN0eWxlLmJv
cmRlckxlZnRXaWR0aCwxMCl8fDA7cHJldkNvbXB1dGVkU3R5bGU9Y29tcHV0ZWRT
dHlsZTt9CmlmKHByZXZDb21wdXRlZFN0eWxlLnBvc2l0aW9uPT09InJlbGF0aXZl
Inx8cHJldkNvbXB1dGVkU3R5bGUucG9zaXRpb249PT0ic3RhdGljIikKdG9wKz1i
b2R5Lm9mZnNldFRvcCxsZWZ0Kz1ib2R5Lm9mZnNldExlZnQ7aWYocHJldkNvbXB1
dGVkU3R5bGUucG9zaXRpb249PT0iZml4ZWQiKQp0b3ArPU1hdGgubWF4KGRvY0Vs
ZW0uc2Nyb2xsVG9wLGJvZHkuc2Nyb2xsVG9wKSxsZWZ0Kz1NYXRoLm1heChkb2NF
bGVtLnNjcm9sbExlZnQsYm9keS5zY3JvbGxMZWZ0KTtyZXR1cm57dG9wOnRvcCxs
ZWZ0OmxlZnR9O307alF1ZXJ5Lm9mZnNldD17aW5pdGlhbGl6ZTpmdW5jdGlvbigp
e2lmKHRoaXMuaW5pdGlhbGl6ZWQpcmV0dXJuO3ZhciBib2R5PWRvY3VtZW50LmJv
ZHksY29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLGlubmVy
RGl2LGNoZWNrRGl2LHRhYmxlLHRkLHJ1bGVzLHByb3AsYm9keU1hcmdpblRvcD1i
b2R5LnN0eWxlLm1hcmdpblRvcCxodG1sPSc8ZGl2IHN0eWxlPSJwb3NpdGlvbjph
YnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFyZ2luOjA7Ym9yZGVyOjVweCBzb2xpZCAj
MDAwO3BhZGRpbmc6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDsiPjxkaXY+PC9kaXY+
PC9kaXY+PHRhYmxlIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0
OjA7bWFyZ2luOjA7Ym9yZGVyOjVweCBzb2xpZCAjMDAwO3BhZGRpbmc6MDt3aWR0
aDoxcHg7aGVpZ2h0OjFweDsiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0i
MCI+PHRyPjx0ZD48L3RkPjwvdHI+PC90YWJsZT4nO3J1bGVzPXtwb3NpdGlvbjon
YWJzb2x1dGUnLHRvcDowLGxlZnQ6MCxtYXJnaW46MCxib3JkZXI6MCx3aWR0aDon
MXB4JyxoZWlnaHQ6JzFweCcsdmlzaWJpbGl0eTonaGlkZGVuJ307Zm9yKHByb3Ag
aW4gcnVsZXMpY29udGFpbmVyLnN0eWxlW3Byb3BdPXJ1bGVzW3Byb3BdO2NvbnRh
aW5lci5pbm5lckhUTUw9aHRtbDtib2R5Lmluc2VydEJlZm9yZShjb250YWluZXIs
Ym9keS5maXJzdENoaWxkKTtpbm5lckRpdj1jb250YWluZXIuZmlyc3RDaGlsZCxj
aGVja0Rpdj1pbm5lckRpdi5maXJzdENoaWxkLHRkPWlubmVyRGl2Lm5leHRTaWJs
aW5nLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDt0aGlzLmRvZXNOb3RBZGRCb3JkZXI9
KGNoZWNrRGl2Lm9mZnNldFRvcCE9PTUpO3RoaXMuZG9lc0FkZEJvcmRlckZvclRh
YmxlQW5kQ2VsbHM9KHRkLm9mZnNldFRvcD09PTUpO2lubmVyRGl2LnN0eWxlLm92
ZXJmbG93PSdoaWRkZW4nLGlubmVyRGl2LnN0eWxlLnBvc2l0aW9uPSdyZWxhdGl2
ZSc7dGhpcy5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGU9KGNo
ZWNrRGl2Lm9mZnNldFRvcD09PS01KTtib2R5LnN0eWxlLm1hcmdpblRvcD0nMXB4
Jzt0aGlzLmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0PShib2R5Lm9m
ZnNldFRvcD09PTApO2JvZHkuc3R5bGUubWFyZ2luVG9wPWJvZHlNYXJnaW5Ub3A7
Ym9keS5yZW1vdmVDaGlsZChjb250YWluZXIpO3RoaXMuaW5pdGlhbGl6ZWQ9dHJ1
ZTt9LGJvZHlPZmZzZXQ6ZnVuY3Rpb24oYm9keSl7alF1ZXJ5Lm9mZnNldC5pbml0
aWFsaXplZHx8alF1ZXJ5Lm9mZnNldC5pbml0aWFsaXplKCk7dmFyIHRvcD1ib2R5
Lm9mZnNldFRvcCxsZWZ0PWJvZHkub2Zmc2V0TGVmdDtpZihqUXVlcnkub2Zmc2V0
LmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0KQp0b3ArPXBhcnNlSW50
KGpRdWVyeS5jdXJDU1MoYm9keSwnbWFyZ2luVG9wJyx0cnVlKSwxMCl8fDAsbGVm
dCs9cGFyc2VJbnQoalF1ZXJ5LmN1ckNTUyhib2R5LCdtYXJnaW5MZWZ0Jyx0cnVl
KSwxMCl8fDA7cmV0dXJue3RvcDp0b3AsbGVmdDpsZWZ0fTt9fTtqUXVlcnkuZm4u
ZXh0ZW5kKHtwb3NpdGlvbjpmdW5jdGlvbigpe3ZhciBsZWZ0PTAsdG9wPTAscmVz
dWx0cztpZih0aGlzWzBdKXt2YXIgb2Zmc2V0UGFyZW50PXRoaXMub2Zmc2V0UGFy
ZW50KCksb2Zmc2V0PXRoaXMub2Zmc2V0KCkscGFyZW50T2Zmc2V0PS9eYm9keXxo
dG1sJC9pLnRlc3Qob2Zmc2V0UGFyZW50WzBdLnRhZ05hbWUpP3t0b3A6MCxsZWZ0
OjB9Om9mZnNldFBhcmVudC5vZmZzZXQoKTtvZmZzZXQudG9wLT1udW0odGhpcywn
bWFyZ2luVG9wJyk7b2Zmc2V0LmxlZnQtPW51bSh0aGlzLCdtYXJnaW5MZWZ0Jyk7
cGFyZW50T2Zmc2V0LnRvcCs9bnVtKG9mZnNldFBhcmVudCwnYm9yZGVyVG9wV2lk
dGgnKTtwYXJlbnRPZmZzZXQubGVmdCs9bnVtKG9mZnNldFBhcmVudCwnYm9yZGVy
TGVmdFdpZHRoJyk7cmVzdWx0cz17dG9wOm9mZnNldC50b3AtcGFyZW50T2Zmc2V0
LnRvcCxsZWZ0Om9mZnNldC5sZWZ0LXBhcmVudE9mZnNldC5sZWZ0fTt9CnJldHVy
biByZXN1bHRzO30sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7dmFyIG9mZnNldFBh
cmVudD10aGlzWzBdLm9mZnNldFBhcmVudHx8ZG9jdW1lbnQuYm9keTt3aGlsZShv
ZmZzZXRQYXJlbnQmJighL15ib2R5fGh0bWwkL2kudGVzdChvZmZzZXRQYXJlbnQu
dGFnTmFtZSkmJmpRdWVyeS5jc3Mob2Zmc2V0UGFyZW50LCdwb3NpdGlvbicpPT0n
c3RhdGljJykpCm9mZnNldFBhcmVudD1vZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50
O3JldHVybiBqUXVlcnkob2Zmc2V0UGFyZW50KTt9fSk7alF1ZXJ5LmVhY2goWydM
ZWZ0JywnVG9wJ10sZnVuY3Rpb24oaSxuYW1lKXt2YXIgbWV0aG9kPSdzY3JvbGwn
K25hbWU7alF1ZXJ5LmZuW21ldGhvZF09ZnVuY3Rpb24odmFsKXtpZighdGhpc1sw
XSlyZXR1cm4gbnVsbDtyZXR1cm4gdmFsIT09dW5kZWZpbmVkP3RoaXMuZWFjaChm
dW5jdGlvbigpe3RoaXM9PXdpbmRvd3x8dGhpcz09ZG9jdW1lbnQ/d2luZG93LnNj
cm9sbFRvKCFpP3ZhbDpqUXVlcnkod2luZG93KS5zY3JvbGxMZWZ0KCksaT92YWw6
alF1ZXJ5KHdpbmRvdykuc2Nyb2xsVG9wKCkpOnRoaXNbbWV0aG9kXT12YWw7fSk6
dGhpc1swXT09d2luZG93fHx0aGlzWzBdPT1kb2N1bWVudD9zZWxmW2k/J3BhZ2VZ
T2Zmc2V0JzoncGFnZVhPZmZzZXQnXXx8alF1ZXJ5LmJveE1vZGVsJiZkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnRbbWV0aG9kXXx8ZG9jdW1lbnQuYm9keVttZXRob2Rd
OnRoaXNbMF1bbWV0aG9kXTt9O30pO2pRdWVyeS5lYWNoKFsiSGVpZ2h0IiwiV2lk
dGgiXSxmdW5jdGlvbihpLG5hbWUpe3ZhciB0bD1pPyJMZWZ0IjoiVG9wIixicj1p
PyJSaWdodCI6IkJvdHRvbSIsbG93ZXI9bmFtZS50b0xvd2VyQ2FzZSgpO2pRdWVy
eS5mblsiaW5uZXIiK25hbWVdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbMF0/alF1
ZXJ5LmNzcyh0aGlzWzBdLGxvd2VyLGZhbHNlLCJwYWRkaW5nIik6bnVsbDt9O2pR
dWVyeS5mblsib3V0ZXIiK25hbWVdPWZ1bmN0aW9uKG1hcmdpbil7cmV0dXJuIHRo
aXNbMF0/alF1ZXJ5LmNzcyh0aGlzWzBdLGxvd2VyLGZhbHNlLG1hcmdpbj8ibWFy
Z2luIjoiYm9yZGVyIik6bnVsbDt9O3ZhciB0eXBlPW5hbWUudG9Mb3dlckNhc2Uo
KTtqUXVlcnkuZm5bdHlwZV09ZnVuY3Rpb24oc2l6ZSl7cmV0dXJuIHRoaXNbMF09
PXdpbmRvdz9kb2N1bWVudC5jb21wYXRNb2RlPT0iQ1NTMUNvbXBhdCImJmRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IituYW1lXXx8ZG9jdW1lbnQuYm9k
eVsiY2xpZW50IituYW1lXTp0aGlzWzBdPT1kb2N1bWVudD9NYXRoLm1heChkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrbmFtZV0sZG9jdW1lbnQuYm9k
eVsic2Nyb2xsIituYW1lXSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbInNjcm9s
bCIrbmFtZV0sZG9jdW1lbnQuYm9keVsib2Zmc2V0IituYW1lXSxkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnRbIm9mZnNldCIrbmFtZV0pOnNpemU9PT11bmRlZmluZWQ/
KHRoaXMubGVuZ3RoP2pRdWVyeS5jc3ModGhpc1swXSx0eXBlKTpudWxsKTp0aGlz
LmNzcyh0eXBlLHR5cGVvZiBzaXplPT09InN0cmluZyI/c2l6ZTpzaXplKyJweCIp
O307fSk7fSkoKTskaj1qUXVlcnkubm9Db25mbGljdCgpOw==
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=ajax.js
Content-Type: application/x-javascript; charset=UTF-8; name=ajax.js
Content-Location: http://bits.wikimedia.org/skins-1.5/common/ajax.js?283u
Content-Transfer-Encoding: Base64
Ly8gcmVtb3RlIHNjcmlwdGluZyBsaWJyYXJ5Ci8vIChjKSBjb3B5cmlnaHQgMjAw
NSBtb2Rlcm5tZXRob2QsIGluYwp2YXIgc2FqYXhfZGVidWdfbW9kZSA9IGZhbHNl
Owp2YXIgc2FqYXhfcmVxdWVzdF90eXBlID0gIkdFVCI7CgovKioKKiBpZiBzYWph
eF9kZWJ1Z19tb2RlIGlzIHRydWUsIHRoaXMgZnVuY3Rpb24gb3V0cHV0cyBnaXZl
biB0aGUgbWVzc2FnZSBpbnRvIAoqIHRoZSBlbGVtZW50IHdpdGggaWQgPSBzYWph
eF9kZWJ1ZzsgaWYgbm8gc3VjaCBlbGVtZW50IGV4aXN0cyBpbiB0aGUgZG9jdW1l
bnQsIAoqIGl0IGlzIGluamVjdGVkLgoqLwpmdW5jdGlvbiBzYWpheF9kZWJ1Zyh0
ZXh0KSB7CglpZiAoIXNhamF4X2RlYnVnX21vZGUpIHJldHVybiBmYWxzZTsKCgl2
YXIgZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhamF4X2RlYnVnJyk7CgoJ
aWYgKCFlKSB7CgkJZT0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwoJCWUu
Y2xhc3NOYW1lPSAnc2FqYXhfZGVidWcnOwoJCWUuaWQ9ICdzYWpheF9kZWJ1Zyc7
CgoJCXZhciBiPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIp
WzBdOwoKCQlpZiAoYi5maXJzdENoaWxkKSBiLmluc2VydEJlZm9yZShlLCBiLmZp
cnN0Q2hpbGQpOwoJCWVsc2UgYi5hcHBlbmRDaGlsZChlKTsKCX0KCgl2YXIgbT0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgltLmFwcGVuZENoaWxkKCBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggdGV4dCApICk7CgoJZS5hcHBlbmRDaGls
ZCggbSApOwoKCXJldHVybiB0cnVlOwp9CgovKioKKiBjb21wYXRpYmlsaXR5IHdy
YXBwZXIgZm9yIGNyZWF0aW5nIGEgbmV3IFhNTEh0dHBSZXF1ZXN0IG9iamVjdC4K
Ki8KZnVuY3Rpb24gc2FqYXhfaW5pdF9vYmplY3QoKSB7CglzYWpheF9kZWJ1Zygi
c2FqYXhfaW5pdF9vYmplY3QoKSBjYWxsZWQuLiIpCgl2YXIgQTsKCXRyeSB7CgkJ
Ly8gVHJ5IHRoZSBuZXcgc3R5bGUgYmVmb3JlIEFjdGl2ZVggc28gd2UgZG9uJ3QK
CQkvLyB1bm5lY2Vzc2FyaWx5IHRyaWdnZXIgd2FybmluZ3MgaW4gSUUgNyB3aGVu
CgkJLy8gc2V0IHRvIHByb21wdCBhYm91dCBBY3RpdmVYIHVzYWdlCgkJQSA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOwoJfSBjYXRjaCAoZSkgewoJCXRyeSB7CgkJCUE9
bmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7CgkJfSBjYXRjaCAo
ZSkgewoJCQl0cnkgewoJCQkJQT1uZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0
LlhNTEhUVFAiKTsKCQkJfSBjYXRjaCAob2MpIHsKCQkJCUE9bnVsbDsKCQkJfQoJ
CX0KCX0KCWlmICghQSkKCQlzYWpheF9kZWJ1ZygiQ291bGQgbm90IGNyZWF0ZSBj
b25uZWN0aW9uIG9iamVjdC4iKTsKCglyZXR1cm4gQTsKfQoKLyoqCiogUGVyZm9y
bSBhbiBhamF4IGNhbGwgdG8gbWVkaWF3aWtpLiBDYWxscyBhcmUgaGFuZGVsZWQg
YnkgQWpheERpc3BhdGNoZXIucGhwCiogICBmdW5jX25hbWUgLSB0aGUgbmFtZSBv
ZiB0aGUgZnVuY3Rpb24gdG8gY2FsbC4gTXVzdCBiZSByZWdpc3RlcmVkIGluICR3
Z0FqYXhFeHBvcnRMaXN0CiogICBhcmdzIC0gYW4gYXJyYXkgb2YgYXJndW1lbnRz
IHRvIHRoYXQgZnVuY3Rpb24KKiAgIHRhcmdldCAtIHRoZSB0YXJnZXQgdGhhdCB3
aWxsIGhhbmRsZSB0aGUgcmVzdWx0IG9mIHRoZSBjYWxsLiBJZiB0aGlzIGlzIGEg
ZnVuY3Rpb24sCiogICAgICAgICAgICBpZiB3aWxsIGJlIGNhbGxlZCB3aXRoIHRo
ZSBYTUxIdHRwUmVxdWVzdCBhcyBhIHBhcmFtZXRlcjsgaWYgaXQncyBhbiBpbnB1
dAoqICAgICAgICAgICAgZWxlbWVudCwgaXRzIHZhbHVlIHdpbGwgYmUgc2V0IHRv
IHRoZSByZXN1bHRUZXh0OyBpZiBpdCdzIGFub3RoZXIgdHlwZSBvZgoqICAgICAg
ICAgICAgZWxlbWVudCwgaXRzIGlubmVySFRNTCB3aWxsIGJlIHNldCB0byB0aGUg
cmVzdWx0VGV4dC4KKgoqIEV4YW1wbGU6CiogICAgc2FqYXhfZG9fY2FsbCgnZG9G
b28nLCBbMSwgMiwgM10sIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaG93Rm9v
IikpOwoqCiogVGhpcyB3aWxsIGNhbGwgdGhlIGRvRm9vIGZ1bmN0aW9uIHZpYSBN
ZWRpYVdpa2kncyBBamF4RGlzcGF0Y2hlciwgd2l0aAoqICgxLCAyLCAzKSBhcyB0
aGUgcGFyYW1ldGVyIGxpc3QsIGFuZCB3aWxsIHNob3cgdGhlIHJlc3VsdCBpbiB0
aGUgZWxlbWVudAoqIHdpdGggaWQgPSBzaG93Rm9vCiovCmZ1bmN0aW9uIHNhamF4
X2RvX2NhbGwoZnVuY19uYW1lLCBhcmdzLCB0YXJnZXQpIHsKCXZhciBpLCB4LCBu
OwoJdmFyIHVyaTsKCXZhciBwb3N0X2RhdGE7Cgl1cmkgPSB3Z1NlcnZlciArCgkJ
KCh3Z1NjcmlwdCA9PSBudWxsKSA/ICh3Z1NjcmlwdFBhdGggKyAiL2luZGV4LnBo
cCIpIDogd2dTY3JpcHQpICsKCQkiP2FjdGlvbj1hamF4IjsKCWlmIChzYWpheF9y
ZXF1ZXN0X3R5cGUgPT0gIkdFVCIpIHsKCQlpZiAodXJpLmluZGV4T2YoIj8iKSA9
PSAtMSkKCQkJdXJpID0gdXJpICsgIj9ycz0iICsgZW5jb2RlVVJJQ29tcG9uZW50
KGZ1bmNfbmFtZSk7CgkJZWxzZQoJCQl1cmkgPSB1cmkgKyAiJnJzPSIgKyBlbmNv
ZGVVUklDb21wb25lbnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJn
cy5sZW5ndGg7IGkrKykKCQkJdXJpID0gdXJpICsgIiZyc2FyZ3NbXT0iICsgZW5j
b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJCS8vdXJpID0gdXJpICsgIiZyc3Ju
ZD0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJcG9zdF9kYXRhID0gbnVsbDsK
CX0gZWxzZSB7CgkJcG9zdF9kYXRhID0gInJzPSIgKyBlbmNvZGVVUklDb21wb25l
bnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkr
KykKCQkJcG9zdF9kYXRhID0gcG9zdF9kYXRhICsgIiZyc2FyZ3NbXT0iICsgZW5j
b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJfQoJeCA9IHNhamF4X2luaXRfb2Jq
ZWN0KCk7CglpZiAoIXgpIHsKCQlhbGVydCgiQUpBWCBub3Qgc3VwcG9ydGVkIik7
CgkJcmV0dXJuIGZhbHNlOwoJfQoKCXRyeSB7CgkJeC5vcGVuKHNhamF4X3JlcXVl
c3RfdHlwZSwgdXJpLCB0cnVlKTsKCX0gY2F0Y2ggKGUpIHsKCQlpZiAod2luZG93
LmxvY2F0aW9uLmhvc3RuYW1lID09ICJsb2NhbGhvc3QiKSB7CgkJCWFsZXJ0KCJZ
b3VyIGJyb3dzZXIgYmxvY2tzIFhNTEh0dHBSZXF1ZXN0IHRvICdsb2NhbGhvc3Qn
LCB0cnkgdXNpbmcgYSByZWFsIGhvc3RuYW1lIGZvciBkZXZlbG9wbWVudC90ZXN0
aW5nLiIpOwoJCX0KCQl0aHJvdyBlOwoJfQoJaWYgKHNhamF4X3JlcXVlc3RfdHlw
ZSA9PSAiUE9TVCIpIHsKCQl4LnNldFJlcXVlc3RIZWFkZXIoIk1ldGhvZCIsICJQ
T1NUICIgKyB1cmkgKyAiIEhUVFAvMS4xIik7CgkJeC5zZXRSZXF1ZXN0SGVhZGVy
KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNv
ZGVkIik7Cgl9Cgl4LnNldFJlcXVlc3RIZWFkZXIoIlByYWdtYSIsICJjYWNoZT15
ZXMiKTsKCXguc2V0UmVxdWVzdEhlYWRlcigiQ2FjaGUtQ29udHJvbCIsICJuby10
cmFuc2Zvcm0iKTsKCXgub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7
CgkJaWYgKHgucmVhZHlTdGF0ZSAhPSA0KQoJCQlyZXR1cm47CgoJCXNhamF4X2Rl
YnVnKCJyZWNlaXZlZCAoIiArIHguc3RhdHVzICsgIiAiICsgeC5zdGF0dXNUZXh0
ICsgIikgIiArIHgucmVzcG9uc2VUZXh0KTsKCgkJLy9pZiAoeC5zdGF0dXMgIT0g
MjAwKQoJCS8vCWFsZXJ0KCJFcnJvcjogIiArIHguc3RhdHVzICsgIiAiICsgeC5z
dGF0dXNUZXh0ICsgIjogIiArIHgucmVzcG9uc2VUZXh0KTsKCQkvL2Vsc2UKCgkJ
aWYgKCB0eXBlb2YoIHRhcmdldCApID09ICdmdW5jdGlvbicgKSB7CgkJCXRhcmdl
dCggeCApOwoJCX0KCQllbHNlIGlmICggdHlwZW9mKCB0YXJnZXQgKSA9PSAnb2Jq
ZWN0JyApIHsKCQkJaWYgKCB0YXJnZXQudGFnTmFtZSA9PSAnSU5QVVQnICkgewoJ
CQkJaWYgKHguc3RhdHVzID09IDIwMCkgdGFyZ2V0LnZhbHVlPSB4LnJlc3BvbnNl
VGV4dDsKCQkJCS8vZWxzZSBhbGVydCgiRXJyb3I6ICIgKyB4LnN0YXR1cyArICIg
IiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIpIik7
CgkJCX0KCQkJZWxzZSB7CgkJCQlpZiAoeC5zdGF0dXMgPT0gMjAwKSB0YXJnZXQu
aW5uZXJIVE1MID0geC5yZXNwb25zZVRleHQ7CgkJCQllbHNlIHRhcmdldC5pbm5l
ckhUTUw9ICI8ZGl2IGNsYXNzPSdlcnJvcic+RXJyb3I6ICIgKyB4LnN0YXR1cyAr
ICIgIiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIp
PC9kaXY+IjsKCQkJfQoJCX0KCQllbHNlIHsKCQkJYWxlcnQoImJhZCB0YXJnZXQg
Zm9yIHNhamF4X2RvX2NhbGw6IG5vdCBhIGZ1bmN0aW9uIG9yIG9iamVjdDogIiAr
IHRhcmdldCk7CgkJfQoKCQlyZXR1cm47Cgl9CgoJc2FqYXhfZGVidWcoZnVuY19u
YW1lICsgIiB1cmkgPSAiICsgdXJpICsgIiAvIHBvc3QgPSAiICsgcG9zdF9kYXRh
KTsKCXguc2VuZChwb3N0X2RhdGEpOwoJc2FqYXhfZGVidWcoZnVuY19uYW1lICsg
IiB3YWl0aW5nLi4iKTsKCWRlbGV0ZSB4OwoKCXJldHVybiB0cnVlOwp9CgovKioK
ICogQHJldHVybiBib29sZWFuIHdoZXRoZXIgdGhlIGJyb3dzZXIgc3VwcG9ydHMg
WE1MSHR0cFJlcXVlc3QKICovCmZ1bmN0aW9uIHdmU3VwcG9ydHNBamF4KCkgewoJ
dmFyIHJlcXVlc3QgPSBzYWpheF9pbml0X29iamVjdCgpOwoJdmFyIHN1cHBvcnRz
QWpheCA9IHJlcXVlc3QgPyB0cnVlIDogZmFsc2U7CglkZWxldGUgcmVxdWVzdDsK
CXJldHVybiBzdXBwb3J0c0FqYXg7Cn0KCg==
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=mwsuggest.js
Content-Type: application/x-javascript; charset=UTF-8; name=mwsuggest.js
Content-Location: http://bits.wikimedia.org/skins-1.5/common/mwsuggest.js?283u
Content-Transfer-Encoding: Base64
LyoKICogT3BlblNlYXJjaCBhamF4IHN1Z2dlc3Rpb24gZW5naW5lIGZvciBNZWRp
YVdpa2kKICoKICogdXNlcyBjb3JlIE1lZGlhV2lraSBvcGVuIHNlYXJjaCBzdXBw
b3J0IHRvIGZldGNoIHN1Z2dlc3Rpb25zCiAqIGFuZCBzaG93IHRoZW0gYmVsb3cg
c2VhcmNoIGJveGVzIGFuZCBvdGhlciBpbnB1dHMKICoKICogYnkgUm9iZXJ0IFN0
b2puaWMgKEFwcmlsIDIwMDgpCiAqLwoKLy8gc2VhcmNoX2JveF9pZCAtPiBSZXN1
bHRzIG9iamVjdAp2YXIgb3NfbWFwID0ge307Ci8vIGNhY2hlZCBkYXRhLCB1cmwg
LT4ganNvbl90ZXh0CnZhciBvc19jYWNoZSA9IHt9OwovLyBnbG9iYWwgdmFyaWFi
bGVzIGZvciBzdWdnZXN0X2tleXByZXNzCnZhciBvc19jdXJfa2V5cHJlc3NlZCA9
IDA7CnZhciBvc19rZXlwcmVzc2VkX2NvdW50ID0gMDsKLy8gdHlwZTogVGltZXIK
dmFyIG9zX3RpbWVyID0gbnVsbDsKLy8gdGllIG1vdXNlZG93bi91cCBldmVudHMK
dmFyIG9zX21vdXNlX3ByZXNzZWQgPSBmYWxzZTsKdmFyIG9zX21vdXNlX251bSA9
IC0xOwovLyBpZiB0cnVlLCB0aGUgbGFzdCBjaGFuZ2Ugd2FzIG1hZGUgYnkgbW91
c2UgKGFuZCBub3Qga2V5Ym9hcmQpCnZhciBvc19tb3VzZV9tb3ZlZCA9IGZhbHNl
OwovLyBkZWxheSBiZXR3ZWVuIGtleXByZXNzIGFuZCBzdWdnZXN0aW9uIChpbiBt
cykKdmFyIG9zX3NlYXJjaF90aW1lb3V0ID0gMjUwOwovLyB0aGVzZSBwYWlycyBv
ZiBpbnB1dHMvZm9ybXMgd2lsbCBiZSBhdXRvbG9hZGVkIGF0IHN0YXJ0dXAKdmFy
IG9zX2F1dG9sb2FkX2lucHV0cyA9IG5ldyBBcnJheSgnc2VhcmNoSW5wdXQnLCAn
c2VhcmNoSW5wdXQyJywgJ3Bvd2VyU2VhcmNoVGV4dCcsICdzZWFyY2hUZXh0Jyk7
CnZhciBvc19hdXRvbG9hZF9mb3JtcyA9IG5ldyBBcnJheSgnc2VhcmNoZm9ybScs
ICdzZWFyY2hmb3JtMicsICdwb3dlcnNlYXJjaCcsICdzZWFyY2gnICk7Ci8vIGlm
IHdlIHN0b3BwZWQgdGhlIHNlcnZpY2UKdmFyIG9zX2lzX3N0b3BwZWQgPSBmYWxz
ZTsKLy8gbWF4IGxpbmVzIHRvIHNob3cgaW4gc3VnZ2VzdCB0YWJsZQp2YXIgb3Nf
bWF4X2xpbmVzX3Blcl9zdWdnZXN0ID0gNzsKLy8gbnVtYmVyIG9mIHN0ZXBzIHRv
IGFuaW1hdGUgZXhwYW5zaW9uL2NvbnRyYWN0aW9uIG9mIGNvbnRhaW5lciB3aWR0
aAp2YXIgb3NfYW5pbWF0aW9uX3N0ZXBzID0gNjsKLy8gbnVtIG9mIHBpeGVscyBv
ZiBzbWFsbGVzdCBzdGVwCnZhciBvc19hbmltYXRpb25fbWluX3N0ZXAgPSAyOwov
LyBkZWxheSBiZXR3ZWVuIHN0ZXBzIChpbiBtcykKdmFyIG9zX2FuaW1hdGlvbl9k
ZWxheSA9IDMwOwovLyBtYXggd2lkdGggb2YgY29udGFpbmVyIGluIHBlcmNlbnQg
b2Ygbm9ybWFsIHNpemUgKDEgPT0gMTAwJSkKdmFyIG9zX2NvbnRhaW5lcl9tYXhf
d2lkdGggPSAyOwovLyBjdXJyZW50bHkgYWN0aXZlIGFuaW1hdGlvbiB0aW1lcgp2
YXIgb3NfYW5pbWF0aW9uX3RpbWVyID0gbnVsbDsKLyoqCiAqIDxkYXRhbGlzdD4g
aXMgYSBuZXcgSFRNTDUgZWxlbWVudCB0aGF0IGFsbG93cyB5b3UgdG8gbWFudWFs
bHkgc3VwcGx5CiAqIHN1Z2dlc3Rpb24gbGlzdHMgYW5kIGhhdmUgdGhlbSByZW5k
ZXJlZCBhY2NvcmRpbmcgdG8gdGhlIHJpZ2h0IHBsYXRmb3JtCiAqIGNvbnZlbnRp
b25zLiAgSG93ZXZlciwgdGhlIG9ubHkgc2hpcHBpbmcgYnJvd3NlciBhcyBvZiBl
YXJseSAyMDEwIGlzIE9wZXJhLAogKiBhbmQgdGhhdCBoYXMgYSBmYXRhbCBwcm9i
bGVtOiB0aGUgc3VnZ2VzdGlvbiBsYWdzIGJlaGluZCB3aGF0IHRoZSB1c2VyIHR5
cGVzCiAqIGJ5IG9uZSBrZXlwcmVzcy4gIChSZXBvcnRlZCBhcyBEU0stMjc2ODcw
IHRvIE9wZXJhJ3Mgc2VjcmV0IGJ1ZyB0cmFja2VyLikKICogVGhlIGNvZGUgaGVy
ZSBvdGhlcndpc2Ugc2VlbXMgdG8gd29yaywgdGhvdWdoLCBzbyB0aGlzIGNhbiBi
ZSBmbGlwcGVkIG9uCiAqIChtYXliZSB3aXRoIGEgVUEgY2hlY2spIHdoZW4gc29t
ZSBicm93c2VyIGhhcyBhIGJldHRlciBpbXBsZW1lbnRhdGlvbi4KICovCi8vIHZh
ciBvc191c2VfZGF0YWxpc3QgPSAnbGlzdCcgaW4gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCggJ2lucHV0JyApOwp2YXIgb3NfdXNlX2RhdGFsaXN0ID0gZmFsc2U7Cgov
KiogVGltZW91dCB0aW1lciBjbGFzcyB0aGF0IHdpbGwgZmV0Y2ggdGhlIHJlc3Vs
dHMgKi8KZnVuY3Rpb24gb3NfVGltZXIoIGlkLCByLCBxdWVyeSApIHsKCXRoaXMu
aWQgPSBpZDsKCXRoaXMuciA9IHI7Cgl0aGlzLnF1ZXJ5ID0gcXVlcnk7Cn0KCi8q
KiBQcm9wZXJ0eSBjbGFzcyBmb3Igc2luZ2xlIHNlYXJjaCBib3ggKi8KZnVuY3Rp
b24gb3NfUmVzdWx0cyggbmFtZSwgZm9ybW5hbWUgKSB7Cgl0aGlzLnNlYXJjaGZv
cm0gPSBmb3JtbmFtZTsgLy8gaWQgb2YgdGhlIHNlYXJjaGZvcm0KCXRoaXMuc2Vh
cmNoYm94ID0gbmFtZTsgLy8gaWQgb2YgdGhlIHNlYXJjaGJveAoJdGhpcy5jb250
YWluZXIgPSBuYW1lICsgJ1N1Z2dlc3QnOyAvLyBkaXYgdGhhdCBob2xkcyByZXN1
bHRzCgl0aGlzLnJlc3VsdFRhYmxlID0gbmFtZSArICdSZXN1bHQnOyAvLyBpZCBi
YXNlIGZvciB0aGUgcmVzdWx0IHRhYmxlICgrbnVtID0gdGFibGUgcm93KQoJdGhp
cy5yZXN1bHRUZXh0ID0gbmFtZSArICdSZXN1bHRUZXh0JzsgLy8gaWQgYmFzZSBm
b3IgdGhlIHNwYW5zIHdpdGhpbiByZXN1bHQgdGFibGVzICgrbnVtKQoJdGhpcy50
b2dnbGUgPSBuYW1lICsgJ1RvZ2dsZSc7IC8vIGRpdiB0aGF0IGhhcyB0aGUgdG9n
Z2xlIChlbmFibGUvZGlzYWJsZSkgbGluawoJdGhpcy5xdWVyeSA9IG51bGw7IC8v
IGxhc3QgcHJvY2Vzc2VkIHF1ZXJ5Cgl0aGlzLnJlc3VsdHMgPSBudWxsOyAgLy8g
cGFyc2VkIHRpdGxlcwoJdGhpcy5yZXN1bHRDb3VudCA9IDA7IC8vIG51bWJlciBv
ZiByZXN1bHRzCgl0aGlzLm9yaWdpbmFsID0gbnVsbDsgLy8gcXVlcnkgdGhhdCB1
c2VyIGVudGVyZWQKCXRoaXMuc2VsZWN0ZWQgPSAtMTsgLy8gd2hpY2ggcmVzdWx0
IGlzIHNlbGVjdGVkCgl0aGlzLmNvbnRhaW5lckNvdW50ID0gMDsgLy8gbnVtYmVy
IG9mIHJlc3VsdHMgdmlzaWJsZSBpbiBjb250YWluZXIKCXRoaXMuY29udGFpbmVy
Um93ID0gMDsgLy8gaGVpZ2h0IG9mIHJlc3VsdCBmaWVsZCBpbiB0aGUgY29udGFp
bmVyCgl0aGlzLmNvbnRhaW5lclRvdGFsID0gMDsgLy8gdG90YWwgaGVpZ2h0IG9m
IHRoZSBjb250YWluZXIgd2lsbCBhbGwgcmVzdWx0cwoJdGhpcy52aXNpYmxlID0g
ZmFsc2U7IC8vIGlmIGNvbnRhaW5lciBpcyB2aXNpYmxlCgl0aGlzLnN0YXlIaWRk
ZW4gPSBmYWxzZTsgLy8gZG9uJ3QgdHJ5IHRvIHNob3cgaWYgbG9zdCBmb2N1cwp9
CgovKiogVGltZXIgdXNlciB0byBhbmltYXRlIGV4cGFuc2lvbi9jb250cmFjdGlv
biBvZiBjb250YWluZXIgd2lkdGggKi8KZnVuY3Rpb24gb3NfQW5pbWF0aW9uVGlt
ZXIoIHIsIHRhcmdldCApIHsKCXRoaXMuciA9IHI7Cgl2YXIgY3VycmVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKHIuY29udGFpbmVyKS5vZmZzZXRXaWR0aDsK
CXRoaXMuaW5jID0gTWF0aC5yb3VuZCggKCB0YXJnZXQgLSBjdXJyZW50ICkgLyBv
c19hbmltYXRpb25fc3RlcHMgKTsKCWlmKCB0aGlzLmluYyA8IG9zX2FuaW1hdGlv
bl9taW5fc3RlcCAmJiB0aGlzLmluYyA+PTAgKSB7CgkJdGhpcy5pbmMgPSBvc19h
bmltYXRpb25fbWluX3N0ZXA7IC8vIG1pbmltYWwgYW5pbWF0aW9uIHN0ZXAKCX0K
CWlmKCB0aGlzLmluYyA+IC1vc19hbmltYXRpb25fbWluX3N0ZXAgJiYgdGhpcy5p
bmMgPCAwICkgewoJCXRoaXMuaW5jID0gLW9zX2FuaW1hdGlvbl9taW5fc3RlcDsK
CX0KCXRoaXMudGFyZ2V0ID0gdGFyZ2V0Owp9CgovKioqKioqKioqKioqKioqKioq
CiAqIEluaXRpYWxpemF0aW9uCiAqKioqKioqKioqKioqKioqKiovCgovKiogSW5p
dGlhbGl6YXRpb24sIGNhbGwgdXBvbiBwYWdlIG9ubG9hZCAqLwpmdW5jdGlvbiBv
c19NV1N1Z2dlc3RJbml0KCkgewoJZm9yKCBpID0gMDsgaSA8IG9zX2F1dG9sb2Fk
X2lucHV0cy5sZW5ndGg7IGkrKyApIHsKCQl2YXIgaWQgPSBvc19hdXRvbG9hZF9p
bnB1dHNbaV07CgkJdmFyIGZvcm0gPSBvc19hdXRvbG9hZF9mb3Jtc1tpXTsKCQll
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIGlkICk7CgkJaWYoIGVs
ZW1lbnQgIT0gbnVsbCApIHsKCQkJb3NfaW5pdEhhbmRsZXJzKCBpZCwgZm9ybSwg
ZWxlbWVudCApOwoJCX0KCX0KfQoKLyoqIEluaXQgUmVzdWx0IG9iamVjdHMgYW5k
IGV2ZW50IGhhbmRsZXJzICovCmZ1bmN0aW9uIG9zX2luaXRIYW5kbGVycyggbmFt
ZSwgZm9ybW5hbWUsIGVsZW1lbnQgKSB7Cgl2YXIgciA9IG5ldyBvc19SZXN1bHRz
KCBuYW1lLCBmb3JtbmFtZSApOwoJLy8gZXZlbnQgaGFuZGxlcgoJb3NfaG9va0V2
ZW50KCBlbGVtZW50LCAna2V5dXAnLCBmdW5jdGlvbiggZXZlbnQgKSB7IG9zX2V2
ZW50S2V5dXAoIGV2ZW50ICk7IH0gKTsKCW9zX2hvb2tFdmVudCggZWxlbWVudCwg
J2tleWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKSB7IG9zX2V2ZW50S2V5ZG93bigg
ZXZlbnQgKTsgfSApOwoJb3NfaG9va0V2ZW50KCBlbGVtZW50LCAna2V5cHJlc3Mn
LCBmdW5jdGlvbiggZXZlbnQgKSB7IG9zX2V2ZW50S2V5cHJlc3MoIGV2ZW50ICk7
IH0gKTsKCWlmICggIW9zX3VzZV9kYXRhbGlzdCApIHsKCQkvLyBUaGVzZSBhcmUg
bmVlZGVkIGZvciB0aGUgZGl2IGhhY2sgdG8gaGlkZSBpdCBpZiB0aGUgdXNlciBi
bHVycy4KCQlvc19ob29rRXZlbnQoIGVsZW1lbnQsICdibHVyJywgZnVuY3Rpb24o
IGV2ZW50ICkgeyBvc19ldmVudEJsdXIoIGV2ZW50ICk7IH0gKTsKCQlvc19ob29r
RXZlbnQoIGVsZW1lbnQsICdmb2N1cycsIGZ1bmN0aW9uKCBldmVudCApIHsgb3Nf
ZXZlbnRGb2N1cyggZXZlbnQgKTsgfSApOwoJCS8vIFdlIGRvbid0IHdhbnQgYnJv
d3NlciBhdXRvLXN1Z2dlc3Rpb25zIGludGVyZmVyaW5nIHdpdGggb3VyIGRpdiwg
YnV0CgkJLy8gYXV0b2NvbXBsZXRlIG11c3QgYmUgb24gZm9yIGRhdGFsaXN0IHRv
IHdvcmsgKGF0IGxlYXN0IGluIE9wZXJhCgkJLy8gMTAuMTApLgoJCWVsZW1lbnQu
c2V0QXR0cmlidXRlKCAnYXV0b2NvbXBsZXRlJywgJ29mZicgKTsKCX0KCS8vIHN0
b3BwaW5nIGhhbmRsZXIKCW9zX2hvb2tFdmVudCggZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIGZvcm1uYW1lICksICdzdWJtaXQnLCBmdW5jdGlvbiggZXZlbnQgKSB7
IHJldHVybiBvc19ldmVudE9uc3VibWl0KCBldmVudCApOyB9ICk7Cglvc19tYXBb
bmFtZV0gPSByOwoJLy8gdG9nZ2xlIGxpbmsKCWlmKCBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCggci50b2dnbGUgKSA9PSBudWxsICkgewoJCS8vIFRPRE86IGRpc2Fi
bGUgdGhpcyB3aGlsZSB3ZSBmaWd1cmUgb3V0IGEgd2F5IGZvciB0aGlzIHRvIHdv
cmsgaW4gYWxsIGJyb3dzZXJzCgkJLyogaWYoIG5hbWUgPT0gJ3NlYXJjaElucHV0
JyApIHsKCQkJLy8gc3BlY2lhbCBjYXNlOiBwbGFjZSBhYm92ZSB0aGUgbWFpbiBz
ZWFyY2ggYm94CgkJCXZhciB0ID0gb3NfY3JlYXRlVG9nZ2xlKCByLCAnb3Mtc3Vn
Z2VzdC10b2dnbGUnICk7CgkJCXZhciBzZWFyY2hCb2R5ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoICdzZWFyY2hCb2R5JyApOwoJCQl2YXIgZmlyc3QgPSBzZWFy
Y2hCb2R5LnBhcmVudE5vZGUuZmlyc3RDaGlsZC5uZXh0U2libGluZy5hcHBlbmRD
aGlsZCh0KTsKCQl9IGVsc2UgewoJCQkvLyBkZWZhdWx0OiBwbGFjZSBiZWxvdyBz
ZWFyY2ggYm94IHRvIHRoZSByaWdodAoJCQl2YXIgdCA9IG9zX2NyZWF0ZVRvZ2ds
ZSggciwgJ29zLXN1Z2dlc3QtdG9nZ2xlLWRlZicgKTsKCQkJdmFyIHRvcCA9IGVs
ZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQ7CgkJCXZhciBs
ZWZ0ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aDsK
CQkJdC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CgkJCXQuc3R5bGUudG9w
ID0gdG9wICsgJ3B4JzsKCQkJdC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7CgkJ
CWVsZW1lbnQucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCggdCApOwoJCQkvLyBvbmx5
IG5vdyB3aWR0aCBnZXRzIGNhbGN1bGF0ZWQsIHNoaWZ0IHJpZ2h0CgkJCWxlZnQg
LT0gdC5vZmZzZXRXaWR0aDsKCQkJdC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7
CgkJCXQuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJzsKCQl9ICovCgl9Cgp9
CgpmdW5jdGlvbiBvc19ob29rRXZlbnQoIGVsZW1lbnQsIGhvb2tOYW1lLCBob29r
RnVuY3QgKSB7CglpZiAoIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lciApIHsKCQll
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIGhvb2tOYW1lLCBob29rRnVuY3QsIGZh
bHNlICk7Cgl9IGVsc2UgaWYgKCB3aW5kb3cuYXR0YWNoRXZlbnQgKSB7CgkJZWxl
bWVudC5hdHRhY2hFdmVudCggJ29uJyArIGhvb2tOYW1lLCBob29rRnVuY3QgKTsK
CX0KfQoKLyoqKioqKioqKioqKioqKioqKioqCiAqICBLZXlib2FyZCBldmVudHMK
ICoqKioqKioqKioqKioqKioqKioqLwoKLyoqIEV2ZW50IGhhbmRsZXIgdGhhdCB3
aWxsIGZldGNoIHJlc3VsdHMgb24ga2V5dXAgKi8KZnVuY3Rpb24gb3NfZXZlbnRL
ZXl1cCggZSApIHsKCXZhciB0YXJnID0gb3NfZ2V0VGFyZ2V0KCBlICk7Cgl2YXIg
ciA9IG9zX21hcFt0YXJnLmlkXTsKCWlmKCByID09IG51bGwgKSB7CgkJcmV0dXJu
OyAvLyBub3Qgb3VyIGV2ZW50Cgl9CgoJLy8gc29tZSBicm93c2VycyB3b24ndCBn
ZW5lcmF0ZSBrZXlwcmVzc2VkIGZvciBhcnJvdyBrZXlzLCBjYXRjaCBpdAoJaWYo
IG9zX2tleXByZXNzZWRfY291bnQgPT0gMCApIHsKCQlvc19wcm9jZXNzS2V5KCBy
LCBvc19jdXJfa2V5cHJlc3NlZCwgdGFyZyApOwoJfQoJdmFyIHF1ZXJ5ID0gdGFy
Zy52YWx1ZTsKCW9zX2ZldGNoUmVzdWx0cyggciwgcXVlcnksIG9zX3NlYXJjaF90
aW1lb3V0ICk7Cn0KCi8qKiBjYXRjaCBhcnJvd3MgdXAvZG93biBhbmQgZXNjYXBl
IHRvIGhpZGUgdGhlIHN1Z2dlc3Rpb25zICovCmZ1bmN0aW9uIG9zX3Byb2Nlc3NL
ZXkoIHIsIGtleXByZXNzZWQsIHRhcmcgKSB7CglpZiAoIGtleXByZXNzZWQgPT0g
NDAgJiYgIXIudmlzaWJsZSAmJiBvc190aW1lciA9PSBudWxsICkgewoJCS8vIElm
IHRoZSB1c2VyIGhpdHMgdGhlIGRvd24gYXJyb3csIGZldGNoIHJlc3VsdHMgaW1t
ZWRpYXRlbHkgaWYgbm9uZQoJCS8vIGFyZSBhbHJlYWR5IGRpc3BsYXllZC4KCQly
LnF1ZXJ5ID0gJyc7CgkJb3NfZmV0Y2hSZXN1bHRzKCByLCB0YXJnLnZhbHVlLCAw
ICk7Cgl9CgkvLyBPdGhlcndpc2UsIGlmIHdlJ3JlIG5vdCB1c2luZyBkYXRhbGlz
dCwgd2UgbmVlZCB0byBoYW5kbGUgc2Nyb2xsaW5nIGFuZAoJLy8gc28gb24uCglp
ZiAoIG9zX3VzZV9kYXRhbGlzdCApIHsKCQlyZXR1cm47Cgl9CglpZiAoIGtleXBy
ZXNzZWQgPT0gNDAgKSB7IC8vIEFycm93IERvd24KCQlpZiAoIHIudmlzaWJsZSAp
IHsKCQkJb3NfY2hhbmdlSGlnaGxpZ2h0KCByLCByLnNlbGVjdGVkLCByLnNlbGVj
dGVkICsgMSwgdHJ1ZSApOwoJCX0KCX0gZWxzZSBpZiAoIGtleXByZXNzZWQgPT0g
MzggKSB7IC8vIEFycm93IFVwCgkJaWYgKCByLnZpc2libGUgKSB7CgkJCW9zX2No
YW5nZUhpZ2hsaWdodCggciwgci5zZWxlY3RlZCwgci5zZWxlY3RlZCAtIDEsIHRy
dWUgKTsKCQl9Cgl9IGVsc2UgaWYoIGtleXByZXNzZWQgPT0gMjcgKSB7IC8vIEVz
Y2FwZQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCByLnNlYXJjaGJveCApLnZh
bHVlID0gci5vcmlnaW5hbDsKCQlyLnF1ZXJ5ID0gci5vcmlnaW5hbDsKCQlvc19o
aWRlUmVzdWx0cyggciApOwoJfSBlbHNlIGlmKCByLnF1ZXJ5ICE9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCByLnNlYXJjaGJveCApLnZhbHVlICkgewoJCS8vIG9z
X2hpZGVSZXN1bHRzKCByICk7IC8vIGRvbid0IHNob3cgb2xkIHN1Z2dlc3Rpb25z
Cgl9Cn0KCi8qKiBXaGVuIGtleXMgaXMgaGVsZCBkb3duIHVzZSBhIHRpbWVyIHRv
IG91dHB1dCByZWd1bGFyIGV2ZW50cyAqLwpmdW5jdGlvbiBvc19ldmVudEtleXBy
ZXNzKCBlICkgewoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoIGUgKTsKCXZhciBy
ID0gb3NfbWFwW3RhcmcuaWRdOwoJaWYoIHIgPT0gbnVsbCApIHsKCQlyZXR1cm47
IC8vIG5vdCBvdXIgZXZlbnQKCX0KCgl2YXIga2V5cHJlc3NlZCA9IG9zX2N1cl9r
ZXlwcmVzc2VkOwoKCW9zX2tleXByZXNzZWRfY291bnQrKzsKCW9zX3Byb2Nlc3NL
ZXkoIHIsIGtleXByZXNzZWQsIHRhcmcgKTsKfQoKLyoqIENhdGNoIHRoZSBrZXkg
Y29kZSAoRmlyZWZveCBidWcpICovCmZ1bmN0aW9uIG9zX2V2ZW50S2V5ZG93bigg
ZSApIHsKCWlmICggIWUgKSB7CgkJZSA9IHdpbmRvdy5ldmVudDsKCX0KCXZhciB0
YXJnID0gb3NfZ2V0VGFyZ2V0KCBlICk7Cgl2YXIgciA9IG9zX21hcFt0YXJnLmlk
XTsKCWlmKCByID09IG51bGwgKSB7CgkJcmV0dXJuOyAvLyBub3Qgb3VyIGV2ZW50
Cgl9CgoJb3NfbW91c2VfbW92ZWQgPSBmYWxzZTsKCglvc19jdXJfa2V5cHJlc3Nl
ZCA9ICggZS5rZXlDb2RlID09IHVuZGVmaW5lZCApID8gZS53aGljaCA6IGUua2V5
Q29kZTsKCW9zX2tleXByZXNzZWRfY291bnQgPSAwOwp9CgoKLyoqIFdoZW4gdGhl
IGZvcm0gaXMgc3VibWl0dGVkIGhpZGUgZXZlcnl0aGluZywgY2FuY2VsIHVwZGF0
ZXMuLi4gKi8KZnVuY3Rpb24gb3NfZXZlbnRPbnN1Ym1pdCggZSApIHsKCXZhciB0
YXJnID0gb3NfZ2V0VGFyZ2V0KCBlICk7CgoJb3NfaXNfc3RvcHBlZCA9IHRydWU7
CgkvLyBraWxsIHRpbWVkIHJlcXVlc3RzCglpZiggb3NfdGltZXIgIT0gbnVsbCAm
JiBvc190aW1lci5pZCAhPSBudWxsICkgewoJCWNsZWFyVGltZW91dCggb3NfdGlt
ZXIuaWQgKTsKCQlvc190aW1lciA9IG51bGw7Cgl9CgkvLyBIaWRlIGFsbCBzdWdn
ZXN0aW9ucwoJZm9yKCBpID0gMDsgaSA8IG9zX2F1dG9sb2FkX2lucHV0cy5sZW5n
dGg7IGkrKyApIHsKCQl2YXIgciA9IG9zX21hcFtvc19hdXRvbG9hZF9pbnB1dHNb
aV1dOwoJCWlmKCByICE9IG51bGwgKSB7CgkJCXZhciBiID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIHIuc2VhcmNoZm9ybSApOwoJCQlpZiggYiAhPSBudWxsICYm
IGIgPT0gdGFyZyApIHsKCQkJCS8vIHNldCBxdWVyeSB2YWx1ZSBzbyB0aGUgaGFu
ZGxlciB3b24ndCB0cnkgdG8gZmV0Y2ggYWRkaXRpb25hbCByZXN1bHRzCgkJCQly
LnF1ZXJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIHIuc2VhcmNoYm94ICku
dmFsdWU7CgkJCX0KCQkJb3NfaGlkZVJlc3VsdHMoIHIgKTsKCQl9Cgl9CglyZXR1
cm4gdHJ1ZTsKfQoKCgovKiogSGlkZSByZXN1bHRzIGZyb20gdGhlIHVzZXIsIGVp
dGhlciBtYWtpbmcgdGhlIGRpdiB2aXNpYmlsaXR5PWhpZGRlbiBvcgogKiBkZXRh
Y2hpbmcgdGhlIGRhdGFsaXN0IGZyb20gdGhlIGlucHV0LiAqLwpmdW5jdGlvbiBv
c19oaWRlUmVzdWx0cyggciApIHsKCWlmICggb3NfdXNlX2RhdGFsaXN0ICkgewoJ
CWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCByLnNlYXJjaGJveCApLnNldEF0dHJp
YnV0ZSggJ2xpc3QnLCAnJyApOwoJfSBlbHNlIHsKCQl2YXIgYyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCByLmNvbnRhaW5lciApOwoJCWlmICggYyAhPSBudWxs
ICkgewoJCQljLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJzsKCQl9Cgl9Cgly
LnZpc2libGUgPSBmYWxzZTsKCXIuc2VsZWN0ZWQgPSAtMTsKfQoKZnVuY3Rpb24g
b3NfZGVjb2RlVmFsdWUoIHZhbHVlICkgewoJaWYgKCBkZWNvZGVVUklDb21wb25l
bnQgKSB7CgkJcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCggdmFsdWUgKTsKCX0K
CWlmKCB1bmVzY2FwZSApIHsKCQlyZXR1cm4gdW5lc2NhcGUoIHZhbHVlICk7Cgl9
CglyZXR1cm4gbnVsbDsKfQoKZnVuY3Rpb24gb3NfZW5jb2RlUXVlcnkoIHZhbHVl
ICkgewoJaWYgKCBlbmNvZGVVUklDb21wb25lbnQgKSB7CgkJcmV0dXJuIGVuY29k
ZVVSSUNvbXBvbmVudCggdmFsdWUgKTsKCX0KCWlmKCBlc2NhcGUgKSB7CgkJcmV0
dXJuIGVzY2FwZSggdmFsdWUgKTsKCX0KCXJldHVybiBudWxsOwp9CgovKiogSGFu
ZGxlcyBkYXRhIGZyb20gWE1MSHR0cFJlcXVlc3QsIGFuZCB1cGRhdGVzIHRoZSBz
dWdnZXN0IHJlc3VsdHMgKi8KZnVuY3Rpb24gb3NfdXBkYXRlUmVzdWx0cyggciwg
cXVlcnksIHRleHQsIGNhY2hlS2V5ICkgewoJb3NfY2FjaGVbY2FjaGVLZXldID0g
dGV4dDsKCXIucXVlcnkgPSBxdWVyeTsKCXIub3JpZ2luYWwgPSBxdWVyeTsKCWlm
KCB0ZXh0ID09ICcnICkgewoJCXIucmVzdWx0cyA9IG51bGw7CgkJci5yZXN1bHRD
b3VudCA9IDA7CgkJb3NfaGlkZVJlc3VsdHMoIHIgKTsKCX0gZWxzZSB7CgkJdHJ5
IHsKCQkJdmFyIHAgPSBldmFsKCAnKCcgKyB0ZXh0ICsgJyknICk7IC8vIHNpbXBs
ZSBqc29uIHBhcnNlLCBjb3VsZCBkbyBhIHNhZmVyIG9uZQoJCQlpZiggcC5sZW5n
dGggPCAyIHx8IHBbMV0ubGVuZ3RoID09IDAgKSB7CgkJCQlyLnJlc3VsdHMgPSBu
dWxsOwoJCQkJci5yZXN1bHRDb3VudCA9IDA7CgkJCQlvc19oaWRlUmVzdWx0cygg
ciApOwoJCQkJcmV0dXJuOwoJCQl9CgkJCWlmICggb3NfdXNlX2RhdGFsaXN0ICkg
ewoJCQkJb3Nfc2V0dXBEYXRhbGlzdCggciwgcFsxXSApOwoJCQl9IGVsc2UgewoJ
CQkJb3Nfc2V0dXBEaXYoIHIsIHBbMV0gKTsKCQkJfQoJCX0gY2F0Y2goIGUgKSB7
CgkJCS8vIGJhZCByZXNwb25zZSBmcm9tIHNlcnZlciBvciBzdWNoCgkJCW9zX2hp
ZGVSZXN1bHRzKCByICk7CgkJCW9zX2NhY2hlW2NhY2hlS2V5XSA9IG51bGw7CgkJ
fQoJfQp9CgovKioKICogQ3JlYXRlIGFuZCBwb3B1bGF0ZSBhIDxkYXRhbGlzdD4u
CiAqCiAqIEBwYXJhbSByICAgICAgIG9zX1Jlc3VsdCBvYmplY3QKICogQHBhcmFt
IHJlc3VsdHMgQXJyYXkgb2YgdGhlIG5ldyByZXN1bHRzIHRvIHJlcGxhY2UgZXhp
c3Rpbmcgb25lcwogKi8KZnVuY3Rpb24gb3Nfc2V0dXBEYXRhbGlzdCggciwgcmVz
dWx0cyApIHsKCXZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIHIuc2Vh
cmNoYm94ICk7Cgl2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCByLmNv
bnRhaW5lciApOwoJaWYgKCBjID09IG51bGwgKSB7CgkJYyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoICdkYXRhbGlzdCcgKTsKCQljLnNldEF0dHJpYnV0ZSggJ2lk
Jywgci5jb250YWluZXIgKTsKCQlkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKCBj
ICk7Cgl9IGVsc2UgewoJCWMuaW5uZXJIVE1MID0gJyc7Cgl9CglzLnNldEF0dHJp
YnV0ZSggJ2xpc3QnLCByLmNvbnRhaW5lciApOwoKCXIucmVzdWx0cyA9IG5ldyBB
cnJheSgpOwoJci5yZXN1bHRDb3VudCA9IHJlc3VsdHMubGVuZ3RoOwoJci52aXNp
YmxlID0gdHJ1ZTsKCWZvciAoIGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7IGkr
KyApIHsKCQl2YXIgdGl0bGUgPSBvc19kZWNvZGVWYWx1ZSggcmVzdWx0c1tpXSAp
OwoJCXZhciBvcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAnb3B0aW9uJyAp
OwoJCW9wdC52YWx1ZSA9IHRpdGxlOwoJCXIucmVzdWx0c1tpXSA9IHRpdGxlOwoJ
CWMuYXBwZW5kQ2hpbGQoIG9wdCApOwoJfQp9CgovKiogRmV0Y2ggbmFtZXNwYWNl
cyBmcm9tIGNoZWNrYm94ZXMgb3IgaGlkZGVuIGZpZWxkcyBpbiB0aGUgc2VhcmNo
IGZvcm0sCiAgICBpZiBub25lIGRlZmluZWQgdXNlIHdnU2VhcmNoTmFtZXNwYWNl
cyBnbG9iYWwgKi8KZnVuY3Rpb24gb3NfZ2V0TmFtZXNwYWNlcyggciApIHsKCXZh
ciBuYW1lc3BhY2VzID0gJyc7Cgl2YXIgZWxlbWVudHMgPSBkb2N1bWVudC5mb3Jt
c1tyLnNlYXJjaGZvcm1dLmVsZW1lbnRzOwoJZm9yKCBpID0gMDsgaSA8IGVsZW1l
bnRzLmxlbmd0aDsgaSsrICkgewoJCXZhciBuYW1lID0gZWxlbWVudHNbaV0ubmFt
ZTsKCQlpZiggdHlwZW9mIG5hbWUgIT0gJ3VuZGVmaW5lZCcgJiYgbmFtZS5sZW5n
dGggPiAyICYmIG5hbWVbMF0gPT0gJ24nICYmCgkJCW5hbWVbMV0gPT0gJ3MnICYm
ICgKCQkJCSggZWxlbWVudHNbaV0udHlwZSA9PSAnY2hlY2tib3gnICYmIGVsZW1l
bnRzW2ldLmNoZWNrZWQgKSB8fAoJCQkJKCBlbGVtZW50c1tpXS50eXBlID09ICdo
aWRkZW4nICYmIGVsZW1lbnRzW2ldLnZhbHVlID09ICcxJyApCgkJCSkKCQkpIHsK
CQkJaWYoIG5hbWVzcGFjZXMgIT0gJycgKSB7CgkJCQluYW1lc3BhY2VzICs9ICd8
JzsKCQkJfQoJCQluYW1lc3BhY2VzICs9IG5hbWUuc3Vic3RyaW5nKCAyICk7CgkJ
fQoJfQoJaWYoIG5hbWVzcGFjZXMgPT0gJycgKSB7CgkJbmFtZXNwYWNlcyA9IHdn
U2VhcmNoTmFtZXNwYWNlcy5qb2luKCd8Jyk7Cgl9CglyZXR1cm4gbmFtZXNwYWNl
czsKfQoKLyoqIFVwZGF0ZSByZXN1bHRzIGlmIHVzZXIgaGFzbid0IGFscmVhZHkg
dHlwZWQgc29tZXRoaW5nIGVsc2UgKi8KZnVuY3Rpb24gb3NfdXBkYXRlSWZSZWxl
dmFudCggciwgcXVlcnksIHRleHQsIGNhY2hlS2V5ICkgewoJdmFyIHQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCggci5zZWFyY2hib3ggKTsKCWlmKCB0ICE9IG51
bGwgJiYgdC52YWx1ZSA9PSBxdWVyeSApIHsgLy8gY2hlY2sgaWYgcmVzcG9uc2Ug
aXMgc3RpbGwgcmVsZXZhbnQKCQlvc191cGRhdGVSZXN1bHRzKCByLCBxdWVyeSwg
dGV4dCwgY2FjaGVLZXkgKTsKCX0KCXIucXVlcnkgPSBxdWVyeTsKfQoKLyoqIEZl
dGNoIHJlc3VsdHMgYWZ0ZXIgc29tZSB0aW1lb3V0ICovCmZ1bmN0aW9uIG9zX2Rl
bGF5ZWRGZXRjaCgpIHsKCWlmKCBvc190aW1lciA9PSBudWxsICkgewoJCXJldHVy
bjsKCX0KCXZhciByID0gb3NfdGltZXIucjsKCXZhciBxdWVyeSA9IG9zX3RpbWVy
LnF1ZXJ5OwoJb3NfdGltZXIgPSBudWxsOwoJdmFyIHBhdGggPSB3Z01XU3VnZ2Vz
dFRlbXBsYXRlLnJlcGxhY2UoICJ7bmFtZXNwYWNlc30iLCBvc19nZXROYW1lc3Bh
Y2VzKCByICkgKQoJCQkJCQkJCQkucmVwbGFjZSggIntkYm5hbWV9Iiwgd2dEQm5h
bWUgKQoJCQkJCQkJCQkucmVwbGFjZSggIntzZWFyY2hUZXJtc30iLCBvc19lbmNv
ZGVRdWVyeSggcXVlcnkgKSApOwoKCS8vIHRyeSB0byBnZXQgZnJvbSBjYWNoZSwg
aWYgbm90IGZldGNoIHVzaW5nIGFqYXgKCXZhciBjYWNoZWQgPSBvc19jYWNoZVtw
YXRoXTsKCWlmKCBjYWNoZWQgIT0gbnVsbCAmJiBjYWNoZWQgIT0gdW5kZWZpbmVk
ICkgewoJCW9zX3VwZGF0ZUlmUmVsZXZhbnQoIHIsIHF1ZXJ5LCBjYWNoZWQsIHBh
dGggKTsKCX0gZWxzZSB7CgkJdmFyIHhtbGh0dHAgPSBzYWpheF9pbml0X29iamVj
dCgpOwoJCWlmKCB4bWxodHRwICkgewoJCQl0cnkgewoJCQkJeG1saHR0cC5vcGVu
KCAnR0VUJywgcGF0aCwgdHJ1ZSApOwoJCQkJeG1saHR0cC5vbnJlYWR5c3RhdGVj
aGFuZ2UgPSBmdW5jdGlvbigpIHsKCQkJCQlpZiAoIHhtbGh0dHAucmVhZHlTdGF0
ZSA9PSA0ICYmIHR5cGVvZiBvc191cGRhdGVJZlJlbGV2YW50ID09ICdmdW5jdGlv
bicgKSB7CgkJCQkJCW9zX3VwZGF0ZUlmUmVsZXZhbnQoIHIsIHF1ZXJ5LCB4bWxo
dHRwLnJlc3BvbnNlVGV4dCwgcGF0aCApOwoJCQkJCX0KCQkJCX07CgkJCQl4bWxo
dHRwLnNlbmQoIG51bGwgKTsKCQkJfSBjYXRjaCAoIGUgKSB7CgkJCQlpZiAoIHdp
bmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PSAnbG9jYWxob3N0JyApIHsKCQkJCQlh
bGVydCggIllvdXIgYnJvd3NlciBibG9ja3MgWE1MSHR0cFJlcXVlc3QgdG8gJ2xv
Y2FsaG9zdCcsIHRyeSB1c2luZyBhIHJlYWwgaG9zdG5hbWUgZm9yIGRldmVsb3Bt
ZW50L3Rlc3RpbmcuIiApOwoJCQkJfQoJCQkJdGhyb3cgZTsKCQkJfQoJCX0KCX0K
fQoKLyoqIEluaXQgdGltZWQgdXBkYXRlIHZpYSBvc19kZWxheWVkVXBkYXRlKCkg
Ki8KZnVuY3Rpb24gb3NfZmV0Y2hSZXN1bHRzKCByLCBxdWVyeSwgdGltZW91dCAp
IHsKCWlmKCBxdWVyeSA9PSAnJyApIHsKCQlyLnF1ZXJ5ID0gJyc7CgkJb3NfaGlk
ZVJlc3VsdHMoIHIgKTsKCQlyZXR1cm47Cgl9IGVsc2UgaWYoIHF1ZXJ5ID09IHIu
cXVlcnkgKSB7CgkJcmV0dXJuOyAvLyBubyBjaGFuZ2UKCX0KCglvc19pc19zdG9w
cGVkID0gZmFsc2U7IC8vIG1ha2Ugc3VyZSB3ZSdyZSBydW5uaW5nCgoJLy8gY2Fu
Y2VsIGFueSBwZW5kaW5nIGZldGNoZXMKCWlmKCBvc190aW1lciAhPSBudWxsICYm
IG9zX3RpbWVyLmlkICE9IG51bGwgKSB7CgkJY2xlYXJUaW1lb3V0KCBvc190aW1l
ci5pZCApOwoJfQoJLy8gc2NoZWR1bGUgZGVsYXllZCBmZXRjaGluZyBvZiByZXN1
bHRzCglpZiggdGltZW91dCAhPSAwICkgewoJCW9zX3RpbWVyID0gbmV3IG9zX1Rp
bWVyKCBzZXRUaW1lb3V0KCAib3NfZGVsYXllZEZldGNoKCkiLCB0aW1lb3V0ICks
IHIsIHF1ZXJ5ICk7Cgl9IGVsc2UgewoJCW9zX3RpbWVyID0gbmV3IG9zX1RpbWVy
KCBudWxsLCByLCBxdWVyeSApOwoJCW9zX2RlbGF5ZWRGZXRjaCgpOyAvLyBkbyBp
dCBub3chCgl9Cn0KCi8qKiBGaW5kIGV2ZW50IHRhcmdldCAqLwpmdW5jdGlvbiBv
c19nZXRUYXJnZXQoIGUgKSB7CglpZiAoICFlICkgewoJCWUgPSB3aW5kb3cuZXZl
bnQ7Cgl9CglpZiAoIGUudGFyZ2V0ICkgewoJCXJldHVybiBlLnRhcmdldDsKCX0g
ZWxzZSBpZiAoIGUuc3JjRWxlbWVudCApIHsKCQlyZXR1cm4gZS5zcmNFbGVtZW50
OwoJfSBlbHNlIHsKCQlyZXR1cm4gbnVsbDsKCX0KfQoKLyoqIENoZWNrIGlmIHgg
aXMgYSB2YWxpZCBpbnRlZ2VyICovCmZ1bmN0aW9uIG9zX2lzTnVtYmVyKCB4ICkg
ewoJaWYoIHggPT0gJycgfHwgaXNOYU4oIHggKSApIHsKCQlyZXR1cm4gZmFsc2U7
Cgl9Cglmb3IoIHZhciBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKysgKSB7CgkJdmFy
IGMgPSB4LmNoYXJBdCggaSApOwoJCWlmKCAhKCBjID49ICcwJyAmJiBjIDw9ICc5
JyApICkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJfQoJcmV0dXJuIHRydWU7Cn0K
Ci8qKiBDYWxsIHRoaXMgdG8gZW5hYmxlIHN1Z2dlc3Rpb25zIG9uIGlucHV0IChp
ZD1pbnB1dElkKSwgb24gYSBmb3JtIChuYW1lPWZvcm1OYW1lKSAqLwpmdW5jdGlv
biBvc19lbmFibGVTdWdnZXN0aW9uc09uKCBpbnB1dElkLCBmb3JtTmFtZSApIHsK
CW9zX2luaXRIYW5kbGVycyggaW5wdXRJZCwgZm9ybU5hbWUsIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCBpbnB1dElkICkgKTsKfQoKLyoqIENhbGwgdGhpcyB0byBk
aXNhYmxlIHN1Z2dlc3Rpb3Mgb24gaW5wdXQgYm94IChpZD1pbnB1dElkKSAqLwpm
dW5jdGlvbiBvc19kaXNhYmxlU3VnZ2VzdGlvbnNPbiggaW5wdXRJZCApIHsKCXIg
PSBvc19tYXBbaW5wdXRJZF07CglpZiggciAhPSBudWxsICkgewoJCS8vIGNhbmNl
bC9oaWRlIHJlc3VsdHMKCQlvc190aW1lciA9IG51bGw7CgkJb3NfaGlkZVJlc3Vs
dHMoIHIgKTsKCQkvLyB0dXJuIGF1dG9jb21wbGV0ZSBvbiAhCgkJZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIGlucHV0SWQgKS5zZXRBdHRyaWJ1dGUoICdhdXRvY29t
cGxldGUnLCAnb24nICk7CgkJLy8gcmVtb3ZlIGRlc2NyaXB0b3IKCQlvc19tYXBb
aW5wdXRJZF0gPSBudWxsOwoJfQoKCS8vIFJlbW92ZSB0aGUgZWxlbWVudCBmcm9t
IHRoZSBvc19hdXRvbG9hZF8qIGFycmF5cwoJdmFyIGluZGV4ID0gb3NfYXV0b2xv
YWRfaW5wdXRzLmluZGV4T2YoIGlucHV0SWQgKTsKCWlmICggaW5kZXggPj0gMCAp
IHsKCQlvc19hdXRvbG9hZF9pbnB1dHNbaW5kZXhdID0gb3NfYXV0b2xvYWRfZm9y
bXNbaW5kZXhdID0gJyc7Cgl9Cn0KCi8qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKICogRGl2LW9ubHkgZnVuY3Rpb25zIChp
cnJlbGV2YW50IGZvciBkYXRhbGlzdCkKICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qKiBFdmVudDogbG9zcyBvZiBm
b2N1cyBvZiBpbnB1dCBib3ggKi8KZnVuY3Rpb24gb3NfZXZlbnRCbHVyKCBlICkg
ewoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoIGUgKTsKCXZhciByID0gb3NfbWFw
W3RhcmcuaWRdOwoJaWYoIHIgPT0gbnVsbCApIHsKCQlyZXR1cm47IC8vIG5vdCBv
dXIgZXZlbnQKCX0KCWlmKCAhb3NfbW91c2VfcHJlc3NlZCApIHsKCQlvc19oaWRl
UmVzdWx0cyggciApOwoJCS8vIGZvcmNlIGNhbnZhcyB0byBzdGF5IGhpZGRlbgoJ
CXIuc3RheUhpZGRlbiA9IHRydWU7CgkJLy8gY2FuY2VsIGFueSBwZW5kaW5nIGZl
dGNoZXMKCQlpZiggb3NfdGltZXIgIT0gbnVsbCAmJiBvc190aW1lci5pZCAhPSBu
dWxsICkgewoJCQljbGVhclRpbWVvdXQoIG9zX3RpbWVyLmlkICk7CgkJfQoJCW9z
X3RpbWVyID0gbnVsbDsKCX0KfQoKLyoqIEV2ZW50OiBmb2N1cyAoY2F0Y2ggb25s
eSB3aGVuIHN0b3BwZWQpICovCmZ1bmN0aW9uIG9zX2V2ZW50Rm9jdXMoIGUgKSB7
Cgl2YXIgdGFyZyA9IG9zX2dldFRhcmdldCggZSApOwoJdmFyIHIgPSBvc19tYXBb
dGFyZy5pZF07CglpZiggciA9PSBudWxsICkgewoJCXJldHVybjsgLy8gbm90IG91
ciBldmVudAoJfQoJci5zdGF5SGlkZGVuID0gZmFsc2U7Cn0KCi8qKgogKiBDcmVh
dGUgYW5kIHBvcHVsYXRlIGEgPGRpdj4sIGZvciBub24tPGRhdGFsaXN0Pi1zdXBw
b3J0aW5nIGJyb3dzZXJzLgogKgogKiBAcGFyYW0gciAgICAgICBvc19SZXN1bHQg
b2JqZWN0CiAqIEBwYXJhbSByZXN1bHRzIEFycmF5IG9mIHRoZSBuZXcgcmVzdWx0
cyB0byByZXBsYWNlIGV4aXN0aW5nIG9uZXMKICovCmZ1bmN0aW9uIG9zX3NldHVw
RGl2KCByLCByZXN1bHRzICkgewoJdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCggci5jb250YWluZXIgKTsKCWlmICggYyA9PSBudWxsICkgewoJCWMgPSBv
c19jcmVhdGVDb250YWluZXIoIHIgKTsKCX0KCWMuaW5uZXJIVE1MID0gb3NfY3Jl
YXRlUmVzdWx0VGFibGUoIHIsIHJlc3VsdHMgKTsKCS8vIGluaXQgY29udGFpbmVy
IHRhYmxlIHNpemVzCgl2YXIgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBy
LnJlc3VsdFRhYmxlICk7CglyLmNvbnRhaW5lclRvdGFsID0gdC5vZmZzZXRIZWln
aHQ7CglyLmNvbnRhaW5lclJvdyA9IHQub2Zmc2V0SGVpZ2h0IC8gci5yZXN1bHRD
b3VudDsKCW9zX2ZpdENvbnRhaW5lciggciApOwoJb3NfdHJpbVJlc3VsdFRleHQo
IHIgKTsKCW9zX3Nob3dSZXN1bHRzKCByICk7Cn0KCi8qKiBDcmVhdGUgdGhlIHJl
c3VsdCB0YWJsZSB0byBiZSBwbGFjZWQgaW4gdGhlIGNvbnRhaW5lciBkaXYgKi8K
ZnVuY3Rpb24gb3NfY3JlYXRlUmVzdWx0VGFibGUoIHIsIHJlc3VsdHMgKSB7Cgl2
YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCByLmNvbnRhaW5lciApOwoJ
dmFyIHdpZHRoID0gYy5vZmZzZXRXaWR0aCAtIG9zX29wZXJhV2lkdGhGaXgoIGMu
b2Zmc2V0V2lkdGggKTsKCXZhciBodG1sID0gJzx0YWJsZSBjbGFzcz0ib3Mtc3Vn
Z2VzdC1yZXN1bHRzIiBpZD0iJyArIHIucmVzdWx0VGFibGUgKyAnIiBzdHlsZT0i
d2lkdGg6ICcgKyB3aWR0aCArICdweDsiPic7CglyLnJlc3VsdHMgPSBuZXcgQXJy
YXkoKTsKCXIucmVzdWx0Q291bnQgPSByZXN1bHRzLmxlbmd0aDsKCWZvciggaSA9
IDA7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrICkgewoJCXZhciB0aXRsZSA9IG9z
X2RlY29kZVZhbHVlKCByZXN1bHRzW2ldICk7CgkJci5yZXN1bHRzW2ldID0gdGl0
bGU7CgkJaHRtbCArPSAnPHRyPjx0ZCBjbGFzcz0ib3Mtc3VnZ2VzdC1yZXN1bHQi
IGlkPSInICsgci5yZXN1bHRUYWJsZSArIGkgKyAnIj48c3BhbiBpZD0iJyArIHIu
cmVzdWx0VGV4dCArIGkgKyAnIj4nICsgdGl0bGUgKyAnPC9zcGFuPjwvdGQ+PC90
cj4nOwoJfQoJaHRtbCArPSAnPC90YWJsZT4nOwoJcmV0dXJuIGh0bWw7Cn0KCi8q
KiBTaG93IHJlc3VsdHMgZGl2ICovCmZ1bmN0aW9uIG9zX3Nob3dSZXN1bHRzKCBy
ICkgewoJaWYoIG9zX2lzX3N0b3BwZWQgKSB7CgkJcmV0dXJuOwoJfQoJaWYoIHIu
c3RheUhpZGRlbiApIHsKCQlyZXR1cm47Cgl9Cglvc19maXRDb250YWluZXIoIHIg
KTsKCXZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIHIuY29udGFpbmVy
ICk7CglyLnNlbGVjdGVkID0gLTE7CglpZiggYyAhPSBudWxsICkgewoJCWMuc2Ny
b2xsVG9wID0gMDsKCQljLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7CgkJ
ci52aXNpYmxlID0gdHJ1ZTsKCX0KfQoKZnVuY3Rpb24gb3Nfb3BlcmFXaWR0aEZp
eCggeCApIHsKCS8vIEZvciBicm93c2VycyB0aGF0IGRvbid0IHVuZGVyc3RhbmQg
b3ZlcmZsb3cteCwgZXN0aW1hdGUgc2Nyb2xsYmFyIHdpZHRoCglpZiggdHlwZW9m
IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3dYICE9ICdzdHJpbmcnICkgewoJ
CXJldHVybiAzMDsKCX0KCXJldHVybiAwOwp9CgovKiogQnJvd2VyLWRlcGVuZGVu
dCBmdW5jdGlvbnMgdG8gZmluZCB3aW5kb3cgaW5uZXIgc2l6ZSwgYW5kIHNjcm9s
bCBzdGF0dXMgKi8KZnVuY3Rpb24gZl9jbGllbnRXaWR0aCgpIHsKCXJldHVybiBm
X2ZpbHRlclJlc3VsdHMoCgkJd2luZG93LmlubmVyV2lkdGggPyB3aW5kb3cuaW5u
ZXJXaWR0aCA6IDAsCgkJZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ID8gZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDogMCwKCQlkb2N1bWVudC5i
b2R5ID8gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCA6IDAKCSk7Cn0KCmZ1bmN0
aW9uIGZfY2xpZW50SGVpZ2h0KCkgewoJcmV0dXJuIGZfZmlsdGVyUmVzdWx0cygK
CQl3aW5kb3cuaW5uZXJIZWlnaHQgPyB3aW5kb3cuaW5uZXJIZWlnaHQgOiAwLAoJ
CWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA/IGRvY3VtZW50LmRvY3VtZW50RWxl
bWVudC5jbGllbnRIZWlnaHQgOiAwLAoJCWRvY3VtZW50LmJvZHkgPyBkb2N1bWVu
dC5ib2R5LmNsaWVudEhlaWdodCA6IDAKCSk7Cn0KCmZ1bmN0aW9uIGZfc2Nyb2xs
TGVmdCgpIHsKCXJldHVybiBmX2ZpbHRlclJlc3VsdHMoCgkJd2luZG93LnBhZ2VY
T2Zmc2V0ID8gd2luZG93LnBhZ2VYT2Zmc2V0IDogMCwKCQlkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVm
dCA6IDAsCgkJZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVm
dCA6IDAKCSk7Cn0KCmZ1bmN0aW9uIGZfc2Nyb2xsVG9wKCkgewoJcmV0dXJuIGZf
ZmlsdGVyUmVzdWx0cygKCQl3aW5kb3cucGFnZVlPZmZzZXQgPyB3aW5kb3cucGFn
ZVlPZmZzZXQgOiAwLAoJCWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCA/IGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgOiAwLAoJCWRvY3VtZW50LmJv
ZHkgPyBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA6IDAKCSk7Cn0KCmZ1bmN0aW9u
IGZfZmlsdGVyUmVzdWx0cyggbl93aW4sIG5fZG9jZWwsIG5fYm9keSApIHsKCXZh
ciBuX3Jlc3VsdCA9IG5fd2luID8gbl93aW4gOiAwOwoJaWYgKCBuX2RvY2VsICYm
ICggIW5fcmVzdWx0IHx8ICggbl9yZXN1bHQgPiBuX2RvY2VsICkgKSApIHsKCQlu
X3Jlc3VsdCA9IG5fZG9jZWw7Cgl9CglyZXR1cm4gbl9ib2R5ICYmICggIW5fcmVz
dWx0IHx8ICggbl9yZXN1bHQgPiBuX2JvZHkgKSApID8gbl9ib2R5IDogbl9yZXN1
bHQ7Cn0KCi8qKiBHZXQgdGhlIGhlaWdodCBhdmFpbGFibGUgZm9yIHRoZSByZXN1
bHRzIGNvbnRhaW5lciAqLwpmdW5jdGlvbiBvc19hdmFpbGFibGVIZWlnaHQoIHIg
KSB7Cgl2YXIgYWJzVG9wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIHIuY29u
dGFpbmVyICkuc3R5bGUudG9wOwoJdmFyIHB4ID0gYWJzVG9wLmxhc3RJbmRleE9m
KCAncHgnICk7CglpZiggcHggPiAwICkgewoJCWFic1RvcCA9IGFic1RvcC5zdWJz
dHJpbmcoIDAsIHB4ICk7Cgl9CglyZXR1cm4gZl9jbGllbnRIZWlnaHQoKSAtICgg
YWJzVG9wIC0gZl9zY3JvbGxUb3AoKSApOwp9CgovKiogR2V0IGVsZW1lbnQgYWJz
b2x1dGUgcG9zaXRpb24ge2xlZnQsdG9wfSAqLwpmdW5jdGlvbiBvc19nZXRFbGVt
ZW50UG9zaXRpb24oIGVsZW1JRCApIHsKCXZhciBvZmZzZXRUcmFpbCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCBlbGVtSUQgKTsKCXZhciBvZmZzZXRMZWZ0ID0g
MDsKCXZhciBvZmZzZXRUb3AgPSAwOwoJd2hpbGUgKCBvZmZzZXRUcmFpbCApIHsK
CQlvZmZzZXRMZWZ0ICs9IG9mZnNldFRyYWlsLm9mZnNldExlZnQ7CgkJb2Zmc2V0
VG9wICs9IG9mZnNldFRyYWlsLm9mZnNldFRvcDsKCQlvZmZzZXRUcmFpbCA9IG9m
ZnNldFRyYWlsLm9mZnNldFBhcmVudDsKCX0KCWlmICggbmF2aWdhdG9yLnVzZXJB
Z2VudC5pbmRleE9mKCdNYWMnKSAhPSAtMSAmJiB0eXBlb2YgZG9jdW1lbnQuYm9k
eS5sZWZ0TWFyZ2luICE9ICd1bmRlZmluZWQnICkgewoJCW9mZnNldExlZnQgKz0g
ZG9jdW1lbnQuYm9keS5sZWZ0TWFyZ2luOwoJCW9mZnNldFRvcCArPSBkb2N1bWVu
dC5ib2R5LnRvcE1hcmdpbjsKCX0KCXJldHVybiB7IGxlZnQ6b2Zmc2V0TGVmdCwg
dG9wOm9mZnNldFRvcCB9Owp9CgovKiogQ3JlYXRlIHRoZSBjb250YWluZXIgZGl2
IHRoYXQgd2lsbCBob2xkIHRoZSBzdWdnZXN0ZWQgdGl0bGVzICovCmZ1bmN0aW9u
IG9zX2NyZWF0ZUNvbnRhaW5lciggciApIHsKCXZhciBjID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCggJ2RpdicgKTsKCXZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIHIuc2VhcmNoYm94ICk7Cgl2YXIgcG9zID0gb3NfZ2V0RWxlbWVudFBv
c2l0aW9uKCByLnNlYXJjaGJveCApOwoJdmFyIGxlZnQgPSBwb3MubGVmdDsKCXZh
ciB0b3AgPSBwb3MudG9wICsgcy5vZmZzZXRIZWlnaHQ7CgljLmNsYXNzTmFtZSA9
ICdvcy1zdWdnZXN0JzsKCWMuc2V0QXR0cmlidXRlKCAnaWQnLCByLmNvbnRhaW5l
ciApOwoJZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCggYyApOwoKCS8vIGR5bmFt
aWNhbGx5IGdlbmVyYXRlZCBzdHlsZSBwYXJhbXMKCS8vIElFIHdvcmthcm91bmQs
IGNhbm5vdCBleHBsaWNpdGVseSBzZXQgInN0eWxlIiBhdHRyaWJ1dGUKCWMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCggci5jb250YWluZXIgKTsKCWMuc3R5bGUu
dG9wID0gdG9wICsgJ3B4JzsKCWMuc3R5bGUubGVmdCA9IGxlZnQgKyAncHgnOwoJ
Yy5zdHlsZS53aWR0aCA9IHMub2Zmc2V0V2lkdGggKyAncHgnOwoKCS8vIG1vdXNl
IGV2ZW50IGhhbmRsZXJzCgljLm9ubW91c2VvdmVyID0gZnVuY3Rpb24oIGV2ZW50
ICkgeyBvc19ldmVudE1vdXNlb3Zlciggci5zZWFyY2hib3gsIGV2ZW50ICk7IH07
CgljLm9ubW91c2Vtb3ZlID0gZnVuY3Rpb24oIGV2ZW50ICkgeyBvc19ldmVudE1v
dXNlbW92ZSggci5zZWFyY2hib3gsIGV2ZW50ICk7IH07CgljLm9ubW91c2Vkb3du
ID0gZnVuY3Rpb24oIGV2ZW50ICkgeyByZXR1cm4gb3NfZXZlbnRNb3VzZWRvd24o
IHIuc2VhcmNoYm94LCBldmVudCApOyB9OwoJYy5vbm1vdXNldXAgPSBmdW5jdGlv
biggZXZlbnQgKSB7IG9zX2V2ZW50TW91c2V1cCggci5zZWFyY2hib3gsIGV2ZW50
ICk7IH07CglyZXR1cm4gYzsKfQoKLyoqIGNoYW5nZSBjb250YWluZXIgaGVpZ2h0
IHRvIGZpdCB0byBzY3JlZW4gKi8KZnVuY3Rpb24gb3NfZml0Q29udGFpbmVyKCBy
ICkgewoJdmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggci5jb250YWlu
ZXIgKTsKCXZhciBoID0gb3NfYXZhaWxhYmxlSGVpZ2h0KCByICkgLSAyMDsKCXZh
ciBpbmMgPSByLmNvbnRhaW5lclJvdzsKCWggPSBwYXJzZUludCggaCAvIGluYyAp
ICogaW5jOwoJaWYoIGggPCAoIDIgKiBpbmMgKSAmJiByLnJlc3VsdENvdW50ID4g
MSApIHsgLy8gbWluOiB0d28gcmVzdWx0cwoJCWggPSAyICogaW5jOwoJfQoJaWYo
ICggaCAvIGluYyApID4gb3NfbWF4X2xpbmVzX3Blcl9zdWdnZXN0ICkgewoJCWgg
PSBpbmMgKiBvc19tYXhfbGluZXNfcGVyX3N1Z2dlc3Q7Cgl9CglpZiggaCA8IHIu
Y29udGFpbmVyVG90YWwgKSB7CgkJYy5zdHlsZS5oZWlnaHQgPSBoICsgJ3B4JzsK
CQlyLmNvbnRhaW5lckNvdW50ID0gcGFyc2VJbnQoIE1hdGgucm91bmQoIGggLyBp
bmMgKSApOwoJfSBlbHNlIHsKCQljLnN0eWxlLmhlaWdodCA9IHIuY29udGFpbmVy
VG90YWwgKyAncHgnOwoJCXIuY29udGFpbmVyQ291bnQgPSByLnJlc3VsdENvdW50
OwoJfQp9CgovKiogSWYgc29tZSBlbnRyaWVzIGFyZSBsb25nZXIgdGhhbiB0aGUg
Ym94LCByZXBsYWNlIHRleHQgd2l0aCAiLi4uIiAqLwpmdW5jdGlvbiBvc190cmlt
UmVzdWx0VGV4dCggciApIHsKCS8vIGZpbmQgbWF4IHdpZHRoLCBmaXJzdCBzZWUg
aWYgd2UgY291bGQgZXhwYW5kIHRoZSBjb250YWluZXIgdG8gZml0IGl0Cgl2YXIg
bWF4VyA9IDA7Cglmb3IoIHZhciBpID0gMDsgaSA8IHIucmVzdWx0Q291bnQ7IGkr
KyApIHsKCQl2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCByLnJlc3Vs
dFRleHQgKyBpICk7CgkJaWYoIGUub2Zmc2V0V2lkdGggPiBtYXhXICkgewoJCQlt
YXhXID0gZS5vZmZzZXRXaWR0aDsKCQl9Cgl9Cgl2YXIgdyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCByLmNvbnRhaW5lciApLm9mZnNldFdpZHRoOwoJdmFyIGZp
eCA9IDA7CglpZiggci5jb250YWluZXJDb3VudCA8IHIucmVzdWx0Q291bnQgKSB7
CgkJZml4ID0gMjA7IC8vIGdpdmUgMjBweCBmb3Igc2Nyb2xsYmFyCgl9IGVsc2Ug
ewoJCWZpeCA9IG9zX29wZXJhV2lkdGhGaXgoIHcgKTsKCX0KCWlmKCBmaXggPCA0
ICkgewoJCWZpeCA9IDQ7IC8vIGJhc2ljIHBhZGRpbmcKCX0KCW1heFcgKz0gZml4
OwoKCS8vIHJlc2l6ZSBjb250YWluZXIgdG8gZml0IG1vcmUgZGF0YSBpZiBwZXJt
aXR0ZWQKCXZhciBub3JtVyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCByLnNl
YXJjaGJveCApLm9mZnNldFdpZHRoOwoJdmFyIHByb3AgPSBtYXhXIC8gbm9ybVc7
CglpZiggcHJvcCA+IG9zX2NvbnRhaW5lcl9tYXhfd2lkdGggKSB7CgkJcHJvcCA9
IG9zX2NvbnRhaW5lcl9tYXhfd2lkdGg7Cgl9IGVsc2UgaWYoIHByb3AgPCAxICkg
ewoJCXByb3AgPSAxOwoJfQoJdmFyIG5ld1cgPSBNYXRoLnJvdW5kKCBub3JtVyAq
IHByb3AgKTsKCWlmKCB3ICE9IG5ld1cgKSB7CgkJdyA9IG5ld1c7CgkJaWYoIG9z
X2FuaW1hdGlvbl90aW1lciAhPSBudWxsICkgewoJCQljbGVhckludGVydmFsKCBv
c19hbmltYXRpb25fdGltZXIuaWQgKTsKCQl9CgkJb3NfYW5pbWF0aW9uX3RpbWVy
ID0gbmV3IG9zX0FuaW1hdGlvblRpbWVyKCByLCB3ICk7CgkJb3NfYW5pbWF0aW9u
X3RpbWVyLmlkID0gc2V0SW50ZXJ2YWwoICJvc19hbmltYXRlQ2hhbmdlV2lkdGgo
KSIsIG9zX2FuaW1hdGlvbl9kZWxheSApOwoJCXcgLT0gZml4OyAvLyB0aGlzIG11
Y2ggaXMgcmVzZXJ2ZWQKCX0KCgkvLyB0cmltIHJlc3VsdHMKCWlmKCB3IDwgMTAg
KSB7CgkJcmV0dXJuOwoJfQoJZm9yKCB2YXIgaSA9IDA7IGkgPCByLnJlc3VsdENv
dW50OyBpKysgKSB7CgkJdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgg
ci5yZXN1bHRUZXh0ICsgaSApOwoJCXZhciByZXBsYWNlID0gMTsKCQl2YXIgbGFz
dFcgPSBlLm9mZnNldFdpZHRoICsgMTsKCQl2YXIgaXRlcmF0aW9uID0gMDsKCQl2
YXIgY2hhbmdlZFRleHQgPSBmYWxzZTsKCQl3aGlsZSggZS5vZmZzZXRXaWR0aCA+
IHcgJiYgKCBlLm9mZnNldFdpZHRoIDwgbGFzdFcgfHwgaXRlcmF0aW9uIDwgMiAp
ICkgewoJCQljaGFuZ2VkVGV4dCA9IHRydWU7CgkJCWxhc3RXID0gZS5vZmZzZXRX
aWR0aDsKCQkJdmFyIGwgPSBlLmlubmVySFRNTDsKCQkJZS5pbm5lckhUTUwgPSBs
LnN1YnN0cmluZyggMCwgbC5sZW5ndGggLSByZXBsYWNlICkgKyAnLi4uJzsKCQkJ
aXRlcmF0aW9uKys7CgkJCXJlcGxhY2UgPSA0OyAvLyBob3cgbWFueSBjaGFycyB0
byByZXBsYWNlCgkJfQoJCWlmKCBjaGFuZ2VkVGV4dCApIHsKCQkJLy8gc2hvdyBo
aW50IGZvciB0cmltbWVkIHRpdGxlcwoJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCggci5yZXN1bHRUYWJsZSArIGkgKS5zZXRBdHRyaWJ1dGUoICd0aXRsZScsIHIu
cmVzdWx0c1tpXSApOwoJCX0KCX0KfQoKLyoqIEludm9rZWQgb24gdGltZXIgdG8g
YW5pbWF0ZSBjaGFuZ2UgaW4gY29udGFpbmVyIHdpZHRoICovCmZ1bmN0aW9uIG9z
X2FuaW1hdGVDaGFuZ2VXaWR0aCgpIHsKCXZhciByID0gb3NfYW5pbWF0aW9uX3Rp
bWVyLnI7Cgl2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCByLmNvbnRh
aW5lciApOwoJdmFyIHcgPSBjLm9mZnNldFdpZHRoOwoJdmFyIG5vcm1XID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIHIuc2VhcmNoYm94ICkub2Zmc2V0V2lkdGg7
Cgl2YXIgbm9ybUwgPSBvc19nZXRFbGVtZW50UG9zaXRpb24oIHIuc2VhcmNoYm94
ICkubGVmdDsKCXZhciBpbmMgPSBvc19hbmltYXRpb25fdGltZXIuaW5jOwoJdmFy
IHRhcmdldCA9IG9zX2FuaW1hdGlvbl90aW1lci50YXJnZXQ7Cgl2YXIgbncgPSB3
ICsgaW5jOwoJaWYoICggaW5jID4gMCAmJiBudyA+PSB0YXJnZXQgKSB8fCAoIGlu
YyA8PSAwICYmIG53IDw9IHRhcmdldCApICkgewoJCS8vIGZpbmlzaGVkICEKCQlj
LnN0eWxlLndpZHRoID0gdGFyZ2V0ICsgJ3B4JzsKCQljbGVhckludGVydmFsKCBv
c19hbmltYXRpb25fdGltZXIuaWQgKTsKCQlvc19hbmltYXRpb25fdGltZXIgPSBu
dWxsOwoJfSBlbHNlIHsKCQkvLyBpbi1wcm9ncmVzcwoJCWMuc3R5bGUud2lkdGgg
PSBudyArICdweCc7CgkJaWYoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXIg
PT0gJ3J0bCcgKSB7CgkJCWMuc3R5bGUubGVmdCA9ICggbm9ybUwgKyBub3JtVyAr
ICggdGFyZ2V0IC0gbncgKSAtIG9zX2FuaW1hdGlvbl90aW1lci50YXJnZXQgLSAx
ICkgKyAncHgnOwoJCX0KCX0KfQoKLyoqIENoYW5nZSB0aGUgaGlnaGxpZ2h0ZWQg
cm93IChpLmUuIHN1Z2dlc3Rpb24pLCBmcm9tIHBvc2l0aW9uIGN1ciB0byBuZXh0
ICovCmZ1bmN0aW9uIG9zX2NoYW5nZUhpZ2hsaWdodCggciwgY3VyLCBuZXh0LCB1
cGRhdGVTZWFyY2hCb3ggKSB7CglpZiAoIG5leHQgPj0gci5yZXN1bHRDb3VudCAp
IHsKCQluZXh0ID0gci5yZXN1bHRDb3VudCAtIDE7Cgl9CglpZiAoIG5leHQgPCAt
MSApIHsKCQluZXh0ID0gLTE7Cgl9CglyLnNlbGVjdGVkID0gbmV4dDsKCWlmICgg
Y3VyID09IG5leHQgKSB7CgkJcmV0dXJuOyAvLyBub3RoaW5nIHRvIGRvLgoJfQoK
CWlmKCBjdXIgPj0gMCApIHsKCQl2YXIgY3VyUm93ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIHIucmVzdWx0VGFibGUgKyBjdXIgKTsKCQlpZiggY3VyUm93ICE9
IG51bGwgKSB7CgkJCWN1clJvdy5jbGFzc05hbWUgPSAnb3Mtc3VnZ2VzdC1yZXN1
bHQnOwoJCX0KCX0KCXZhciBuZXdUZXh0OwoJaWYoIG5leHQgPj0gMCApIHsKCQl2
YXIgbmV4dFJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCByLnJlc3VsdFRh
YmxlICsgbmV4dCApOwoJCWlmKCBuZXh0Um93ICE9IG51bGwgKSB7CgkJCW5leHRS
b3cuY2xhc3NOYW1lID0gb3NfSGlnaGxpZ2h0Q2xhc3MoKTsKCQl9CgkJbmV3VGV4
dCA9IHIucmVzdWx0c1tuZXh0XTsKCX0gZWxzZSB7CgkJbmV3VGV4dCA9IHIub3Jp
Z2luYWw7Cgl9CgoJLy8gYWRqdXN0IHRoZSBzY3JvbGxiYXIgaWYgYW55CglpZigg
ci5jb250YWluZXJDb3VudCA8IHIucmVzdWx0Q291bnQgKSB7CgkJdmFyIGMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCggci5jb250YWluZXIgKTsKCQl2YXIgdlN0
YXJ0ID0gYy5zY3JvbGxUb3AgLyByLmNvbnRhaW5lclJvdzsKCQl2YXIgdkVuZCA9
IHZTdGFydCArIHIuY29udGFpbmVyQ291bnQ7CgkJaWYoIG5leHQgPCB2U3RhcnQg
KSB7CgkJCWMuc2Nyb2xsVG9wID0gbmV4dCAqIHIuY29udGFpbmVyUm93OwoJCX0g
ZWxzZSBpZiggbmV4dCA+PSB2RW5kICkgewoJCQljLnNjcm9sbFRvcCA9ICggbmV4
dCAtIHIuY29udGFpbmVyQ291bnQgKyAxICkgKiByLmNvbnRhaW5lclJvdzsKCQl9
Cgl9CgoJLy8gdXBkYXRlIHRoZSBjb250ZW50cyBvZiB0aGUgc2VhcmNoIGJveAoJ
aWYoIHVwZGF0ZVNlYXJjaEJveCApIHsKCQlvc191cGRhdGVTZWFyY2hRdWVyeSgg
ciwgbmV3VGV4dCApOwoJfQp9CgpmdW5jdGlvbiBvc19IaWdobGlnaHRDbGFzcygp
IHsKCXZhciBtYXRjaCA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0FwcGxl
V2ViS2l0XC8oXGQrKS8pOwoJaWYgKCBtYXRjaCApIHsKCQl2YXIgd2ViS2l0VmVy
c2lvbiA9IHBhcnNlSW50KCBtYXRjaFsxXSApOwoJCWlmICggd2ViS2l0VmVyc2lv
biA8IDUyMyApIHsKCQkJLy8gQ1NTIHN5c3RlbSBoaWdobGlnaHQgY29sb3JzIGJy
b2tlbiBvbiBvbGQgU2FmYXJpCgkJCS8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MTI5CgkJCS8vIFNhZmFyaSAzLjAuNCwgMy4xIGtu
b3duIG9rCgkJCXJldHVybiAnb3Mtc3VnZ2VzdC1yZXN1bHQtaGwtd2Via2l0JzsK
CQl9Cgl9CglyZXR1cm4gJ29zLXN1Z2dlc3QtcmVzdWx0LWhsJzsKfQoKZnVuY3Rp
b24gb3NfdXBkYXRlU2VhcmNoUXVlcnkoIHIsIG5ld1RleHQgKSB7Cglkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCggci5zZWFyY2hib3ggKS52YWx1ZSA9IG5ld1RleHQ7
CglyLnF1ZXJ5ID0gbmV3VGV4dDsKfQoKCi8qKioqKioqKioqKioqKioqKioqKgog
KiAgTW91c2UgZXZlbnRzCiAqKioqKioqKioqKioqKioqKioqKi8KCi8qKiBNb3Vz
ZSBvdmVyIHRoZSBjb250YWluZXIgKi8KZnVuY3Rpb24gb3NfZXZlbnRNb3VzZW92
ZXIoIHNyY0lkLCBlICkgewoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoIGUgKTsK
CXZhciByID0gb3NfbWFwW3NyY0lkXTsKCWlmKCByID09IG51bGwgfHwgIW9zX21v
dXNlX21vdmVkICkgewoJCXJldHVybjsgLy8gbm90IG91ciBldmVudAoJfQoJdmFy
IG51bSA9IG9zX2dldE51bWJlclN1ZmZpeCggdGFyZy5pZCApOwoJaWYoIG51bSA+
PSAwICkgewoJCW9zX2NoYW5nZUhpZ2hsaWdodCggciwgci5zZWxlY3RlZCwgbnVt
LCBmYWxzZSApOwoJfQp9CgovKiBHZXQgcm93IHdoZXJlIHRoZSBldmVudCBvY2N1
cmVkIChmcm9tIGl0cyBpZCkgKi8KZnVuY3Rpb24gb3NfZ2V0TnVtYmVyU3VmZml4
KCBpZCApIHsKCXZhciBudW0gPSBpZC5zdWJzdHJpbmcoIGlkLmxlbmd0aCAtIDIg
KTsKCWlmKCAhKCBudW0uY2hhckF0KCAwICkgPj0gJzAnICYmIG51bS5jaGFyQXQo
IDAgKSA8PSAnOScgKSApIHsKCQludW0gPSBudW0uc3Vic3RyaW5nKCAxICk7Cgl9
CglpZiggb3NfaXNOdW1iZXIoIG51bSApICkgewoJCXJldHVybiBwYXJzZUludCgg
bnVtICk7Cgl9IGVsc2UgewoJCXJldHVybiAtMTsKCX0KfQoKLyoqIFNhdmUgbW91
c2UgbW92ZSBhcyBsYXN0IGFjdGlvbiAqLwpmdW5jdGlvbiBvc19ldmVudE1vdXNl
bW92ZSggc3JjSWQsIGUgKSB7Cglvc19tb3VzZV9tb3ZlZCA9IHRydWU7Cn0KCi8q
KiBNb3VzZSBidXR0b24gaGVsZCBkb3duLCByZWdpc3RlciBwb3NzaWJsZSBjbGlj
ayAqLwpmdW5jdGlvbiBvc19ldmVudE1vdXNlZG93biggc3JjSWQsIGUgKSB7Cgl2
YXIgdGFyZyA9IG9zX2dldFRhcmdldCggZSApOwoJdmFyIHIgPSBvc19tYXBbc3Jj
SWRdOwoJaWYoIHIgPT0gbnVsbCApIHsKCQlyZXR1cm47IC8vIG5vdCBvdXIgZXZl
bnQKCX0KCXZhciBudW0gPSBvc19nZXROdW1iZXJTdWZmaXgoIHRhcmcuaWQgKTsK
Cglvc19tb3VzZV9wcmVzc2VkID0gdHJ1ZTsKCWlmKCBudW0gPj0gMCApIHsKCQlv
c19tb3VzZV9udW0gPSBudW07CgkJLy8gb3NfdXBkYXRlU2VhcmNoUXVlcnkoIHIs
IHIucmVzdWx0c1tudW1dICk7Cgl9CgkvLyBrZWVwIHRoZSBmb2N1cyBvbiB0aGUg
c2VhcmNoIGZpZWxkCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggci5zZWFyY2hi
b3ggKS5mb2N1cygpOwoKCXJldHVybiBmYWxzZTsgLy8gcHJldmVudHMgc2VsZWN0
aW9uCn0KCi8qKiBNb3VzZSBidXR0b24gcmVsZWFzZWQsIGNoZWNrIGZvciBjbGlj
ayBvbiBzb21lIHJvdyAqLwpmdW5jdGlvbiBvc19ldmVudE1vdXNldXAoIHNyY0lk
LCBlICkgewoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoIGUgKTsKCXZhciByID0g
b3NfbWFwW3NyY0lkXTsKCWlmKCByID09IG51bGwgKSB7CgkJcmV0dXJuOyAvLyBu
b3Qgb3VyIGV2ZW50Cgl9Cgl2YXIgbnVtID0gb3NfZ2V0TnVtYmVyU3VmZml4KCB0
YXJnLmlkICk7CgoJaWYoIG51bSA+PSAwICYmIG9zX21vdXNlX251bSA9PSBudW0g
KSB7CgkJb3NfdXBkYXRlU2VhcmNoUXVlcnkoIHIsIHIucmVzdWx0c1tudW1dICk7
CgkJb3NfaGlkZVJlc3VsdHMoIHIgKTsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCggci5zZWFyY2hmb3JtICkuc3VibWl0KCk7Cgl9Cglvc19tb3VzZV9wcmVzc2Vk
ID0gZmFsc2U7CgkvLyBrZWVwIHRoZSBmb2N1cyBvbiB0aGUgc2VhcmNoIGZpZWxk
Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggci5zZWFyY2hib3ggKS5mb2N1cygp
Owp9CgovKiogVG9nZ2xlIHN0dWZmIHNlZW1zIHRvIGJlIGRlYWQgY29kZT8gKi8K
Ci8qKiBSZXR1cm4gdGhlIHNwYW4gZWxlbWVudCB0aGF0IGNvbnRhaW5zIHRoZSB0
b2dnbGUgbGluayAqLwpmdW5jdGlvbiBvc19jcmVhdGVUb2dnbGUoIHIsIGNsYXNz
TmFtZSApIHsKCXZhciB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggJ3NwYW4n
ICk7Cgl0LmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKCXQuc2V0QXR0cmlidXRlKCAn
aWQnLCByLnRvZ2dsZSApOwoJdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCAnYScgKTsKCWxpbmsuc2V0QXR0cmlidXRlKCAnaHJlZicsICdqYXZhc2Ny
aXB0OnZvaWQoMCk7JyApOwoJbGluay5vbmNsaWNrID0gZnVuY3Rpb24oKSB7IG9z
X3RvZ2dsZSggci5zZWFyY2hib3gsIHIuc2VhcmNoZm9ybSApOyB9OwoJdmFyIG1z
ZyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCB3Z01XU3VnZ2VzdE1lc3NhZ2Vz
WzBdICk7CglsaW5rLmFwcGVuZENoaWxkKCBtc2cgKTsKCXQuYXBwZW5kQ2hpbGQo
IGxpbmsgKTsKCXJldHVybiB0Owp9CgovKiogQ2FsbCB3aGVuIHVzZXIgY2xpY2tz
IG9uIHNvbWUgb2YgdGhlIHRvZ2dsZSBsaW5rcyAqLwpmdW5jdGlvbiBvc190b2dn
bGUoIGlucHV0SWQsIGZvcm1OYW1lICkgewoJciA9IG9zX21hcFtpbnB1dElkXTsK
CXZhciBtc2cgPSAnJzsKCWlmKCByID09IG51bGwgKSB7CgkJb3NfZW5hYmxlU3Vn
Z2VzdGlvbnNPbiggaW5wdXRJZCwgZm9ybU5hbWUgKTsKCQlyID0gb3NfbWFwW2lu
cHV0SWRdOwoJCW1zZyA9IHdnTVdTdWdnZXN0TWVzc2FnZXNbMF07Cgl9IGVsc2V7
CgkJb3NfZGlzYWJsZVN1Z2dlc3Rpb25zT24oIGlucHV0SWQsIGZvcm1OYW1lICk7
CgkJbXNnID0gd2dNV1N1Z2dlc3RNZXNzYWdlc1sxXTsKCX0KCS8vIGNoYW5nZSBt
ZXNzYWdlCgl2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCByLnRv
Z2dsZSApLmZpcnN0Q2hpbGQ7CglsaW5rLnJlcGxhY2VDaGlsZCggZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIG1zZyApLCBsaW5rLmZpcnN0Q2hpbGQgKTsKfQoKaG9v
a0V2ZW50KCAnbG9hZCcsIG9zX01XU3VnZ2VzdEluaXQgKTsK
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=MobileRedirect.js
Content-Type: application/x-javascript; charset=UTF-8; name=MobileRedirect.js
Content-Location: http://bits.wikimedia.org/w/extensions/WikimediaMobile/MobileR
edirect.js?2.2
Content-Transfer-Encoding: Base64
LyoqIE1vYmlsZSBSZWRpcmVjdCBIZWxwZXIKICoKICogIFJlZGlyZWN0cyB0byBh
IHdpa2ltZWRpYS1tb2JpbGUgaW5zdGFsbGF0aW9uIGZvciB2aWV3ZXJzIG9uIGlQ
aG9uZSwgaVBvZCAKICogIFRvdWNoLCBQYWxtIFByZSwgYW5kIEFuZHJvaWQgZGV2
aWNlcy4KICoKICogIFlvdSBjYW4gdHVybiBvZmYgdGhlIHJlZGlyZWN0IGJ5IHNl
dHRpbmcgdGhlIGNvb2tpZSAic3RvcE1vYmlsZVJlZGlyZWN0PXRydWUiCiAqLwpp
ZiAoIC8oQW5kcm9pZHxpUGhvbmV8aVBvZHx3ZWJPU3xOZXRGcm9udHxPcGVyYSBN
aW5pfFNFTUMtQnJvd3NlcnxQbGF5U3RhdGlvbiBQb3J0YWJsZXxOaW50ZW5kbyBX
aWl8QmxhY2tCZXJyeSkvCgkudGVzdCggbmF2aWdhdG9yLnVzZXJBZ2VudCApICkK
ewoJKGZ1bmN0aW9uICgpIHsKCQlmdW5jdGlvbiBoYXZlU3RvcENvb2tpZSgpIHsK
CQkJcmV0dXJuIChkb2N1bWVudC5jb29raWUuaW5kZXhPZigic3RvcE1vYmlsZVJl
ZGlyZWN0PXRydWUiKSA+PSAwKTsKCQl9CgoJCWZ1bmN0aW9uIGdldE1vYmlsZVVy
bCgpIHsKCQkJdmFyIG1haW5QYWdlID0gd2dNYWluUGFnZVRpdGxlLnJlcGxhY2Uo
LyAvZywgJ18nKTsKCQkJdmFyIHVybCA9IHdnV2lraW1lZGlhTW9iaWxlVXJsICsg
Jy8nOwoJCQlpZiAod2dQYWdlTmFtZSA9PSBtYWluUGFnZSkgewoJCQkJdXJsICs9
ICc6OkhvbWUnOyAvLyBTcGVjaWFsIGNhc2UKCQkJfSBlbHNlIHsKCQkJCXVybCAr
PSBlbmNvZGVVUklDb21wb25lbnQod2dQYWdlTmFtZSkucmVwbGFjZSgnJTJGJywn
LycpLnJlcGxhY2UoJyUzQScsJzonKTsKCQkJfQoJCQl1cmwgKz0gJz93YXNSZWRp
cmVjdGVkPXRydWUnOwoJCQlyZXR1cm4gdXJsOwoJCX0KCgkJLy8gRG9uJ3QgcmVk
aXJlY3QgaWYgd2UgaGF2ZSB0aGUgc3RvcCBjb29raWUKCQlpZiAoaGF2ZVN0b3BD
b29raWUoKSkgcmV0dXJuOwoKCQkvLyBEb24ndCByZWRpcmVjdCBzcGVjaWFsIHBh
Z2VzCgkJaWYgKHdnTmFtZXNwYWNlTnVtYmVyIDwgMCkgcmV0dXJuOwoKCQkvLyBE
b24ndCByZWRpcmVjdCBVUkxzIHRoYXQgYXJlbid0IHNpbXBsZSBwYWdlIHZpZXdz
CgkJaWYgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCAmJiBkb2N1bWVudC5sb2Nh
dGlvbi5zZWFyY2gubGVuZ3RoID4gMCkgewoJCQl2YXIgcGFyYW1zID0gZG9jdW1l
bnQubG9jYXRpb24uc2VhcmNoLnN1YnN0cigxKS5zcGxpdCgnJicpOwoJCQlmb3Ig
KHZhciBpID0gMDsgaSA8IHBhcmFtcy5sZW5ndGg7IGkrKykgewoJCQkJdmFyIHBh
cmFtUGFydHMgPSBwYXJhbXNbaV0uc3BsaXQoJz0nKTsKCQkJCWlmIChwYXJhbVBh
cnRzLmxlbmd0aCAmJiBwYXJhbVBhcnRzWzBdICE9ICd0aXRsZScpIHsKCQkJCQly
ZXR1cm47CgkJCQl9CgkJCX0KCQl9CgoJCWRvY3VtZW50LmxvY2F0aW9uID0gZ2V0
TW9iaWxlVXJsKCk7Cgl9KSgpOwp9Cg==
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=plugins.combined.min.js
Content-Type: application/x-javascript; charset=UTF-8; name=plugins.combined.min
.js
Content-Location: http://bits.wikimedia.org/w/extensions/UsabilityInitiative/js/
plugins.combined.min.js?283u
Content-Transfer-Encoding: Base64
CmlmKHR5cGVvZiBtdz09J3VuZGVmaW5lZCcpe213PXt9O30KbXcudXNhYmlsaXR5
PXsnbWVzc2FnZXMnOnt9fQptdy51c2FiaWxpdHkubG9hZD1mdW5jdGlvbihkZXBz
LGNhbGxiYWNrKXt2YXIgbmVlZEpVST1mYWxzZTtmb3IodmFyIGk9MDtpPGRlcHMu
bGVuZ3RoJiYhbmVlZEpVSTtpKyspe2lmKGRlcHNbaV09PSckai51aScpe25lZWRK
VUk9dHJ1ZTt9fQppZihuZWVkSlVJJiZ0eXBlb2YgJGoudWk9PSd1bmRlZmluZWQn
KXskai5nZXRTY3JpcHQod2dTY3JpcHRQYXRoKycvZXh0ZW5zaW9ucy9Vc2FiaWxp
dHlJbml0aWF0aXZlL2pzL2pzMnN0b3BnYXAvanVpLmNvbWJpbmVkLm1pbi5qcycs
Y2FsbGJhY2spO31lbHNle2NhbGxiYWNrKCk7fX07bXcudXNhYmlsaXR5LmFkZE1l
c3NhZ2VzPWZ1bmN0aW9uKG1lc3NhZ2VzKXtmb3IodmFyIGtleSBpbiBtZXNzYWdl
cyl7dGhpcy5tZXNzYWdlc1trZXldPW1lc3NhZ2VzW2tleV07fX07bXcudXNhYmls
aXR5LmdldE1zZz1mdW5jdGlvbihrZXksYXJncyl7aWYoIShrZXkgaW4gdGhpcy5t
ZXNzYWdlcykpe3JldHVybidbJytrZXkrJ10nO30KdmFyIG1zZz10aGlzLm1lc3Nh
Z2VzW2tleV07aWYodHlwZW9mIGFyZ3M9PSdvYmplY3QnfHx0eXBlb2YgYXJncz09
J2FycmF5Jyl7Zm9yKHZhciBhcmdLZXkgaW4gYXJncyl7bXNnPW1zZy5yZXBsYWNl
KCdcJCcrKHBhcnNlSW50KGFyZ0tleSkrMSksYXJnc1thcmdLZXldKTt9fWVsc2Ug
aWYodHlwZW9mIGFyZ3M9PSdzdHJpbmcnfHx0eXBlb2YgYXJncz09J251bWJlcicp
e21zZz1tc2cucmVwbGFjZSgnJDEnLGFyZ3MpO30KcmV0dXJuIG1zZzt9O213LnVz
YWJpbGl0eS50ZXN0QnJvd3Nlcj1mdW5jdGlvbihtYXApe3ZhciBicm93c2VyPW1h
cFskaignYm9keScpLmlzKCcucnRsJyk/J3J0bCc6J2x0ciddWyRqLmJyb3dzZXIu
bmFtZV07aWYodHlwZW9mIGJyb3dzZXI9PSdib29sZWFuJyl7cmV0dXJuIGJyb3dz
ZXI7fQppZih0eXBlb2YgYnJvd3NlciE9PSdvYmplY3QnKXtyZXR1cm4gdHJ1ZTt9
CmZvcih2YXIgY29uZGl0aW9uIGluIGJyb3dzZXIpe3ZhciBvcD1icm93c2VyW2Nv
bmRpdGlvbl1bMF07dmFyIHZhbD1icm93c2VyW2NvbmRpdGlvbl1bMV07aWYodmFs
PT09ZmFsc2Upe3JldHVybiBmYWxzZTt9ZWxzZSBpZih0eXBlb2YgdmFsPT0nc3Ry
aW5nJyl7aWYoIShldmFsKCckai5icm93c2VyLnZlcnNpb24nK29wKyciJyt2YWwr
JyInKSkpe3JldHVybiBmYWxzZTt9fWVsc2UgaWYodHlwZW9mIHZhbD09J251bWJl
cicpe2lmKCEoZXZhbCgnJGouYnJvd3Nlci52ZXJzaW9uTnVtYmVyJytvcCt2YWwp
KSl7cmV0dXJuIGZhbHNlO319fQpyZXR1cm4gdHJ1ZTt9O213LnVzYWJpbGl0eS5n
ZXRNYXhUYWJJbmRleD1mdW5jdGlvbigpe3ZhciBtYXhUST0wOyRqKCdbdGFiaW5k
ZXhdJykuZWFjaChmdW5jdGlvbigpe3ZhciB0aT1wYXJzZUludCgkaih0aGlzKS5h
dHRyKCd0YWJpbmRleCcpKTtpZih0aT5tYXhUSSl7bWF4VEk9dGk7fX0pO3JldHVy
biBtYXhUSTt9OyhmdW5jdGlvbigkKXskLndoaWxlQXN5bmM9ZnVuY3Rpb24ob3B0
cykKe3ZhciBkZWxheT1NYXRoLmFicyhvcHRzLmRlbGF5KXx8MTAsYnVsaz1pc05h
TihvcHRzLmJ1bGspPzUwMDpNYXRoLmFicyhvcHRzLmJ1bGspLHRlc3Q9b3B0cy50
ZXN0fHxmdW5jdGlvbigpe3JldHVybiB0cnVlO30sbG9vcD1vcHRzLmxvb3B8fGZ1
bmN0aW9uKCl7fSxlbmQ9b3B0cy5lbmR8fGZ1bmN0aW9uKCl7fTsoZnVuY3Rpb24o
KXt2YXIgdD1mYWxzZSxiZWdpbj1uZXcgRGF0ZSgpO3doaWxlKHQ9dGVzdCgpKQp7
bG9vcCgpO2lmKGJ1bGs9PT0wfHwobmV3IERhdGUoKS1iZWdpbik+YnVsaykKe2Jy
ZWFrO319CmlmKHQpCntzZXRUaW1lb3V0KGFyZ3VtZW50cy5jYWxsZWUsZGVsYXkp
O30KZWxzZQp7ZW5kKCk7fX0pKCk7fQokLmVhY2hBc3luYz1mdW5jdGlvbihhcnJh
eSxvcHRzKQp7dmFyIGk9MCxsPWFycmF5Lmxlbmd0aCxsb29wPW9wdHMubG9vcHx8
ZnVuY3Rpb24oKXt9OyQud2hpbGVBc3luYygkLmV4dGVuZChvcHRzLHt0ZXN0OmZ1
bmN0aW9uKCl7cmV0dXJuIGk8bDt9LGxvb3A6ZnVuY3Rpb24oKQp7dmFyIHZhbD1h
cnJheVtpXTtyZXR1cm4gbG9vcC5jYWxsKHZhbCxpKyssdmFsKTt9fSkpO30KJC5m
bi5lYWNoQXN5bmM9ZnVuY3Rpb24ob3B0cykKeyQuZWFjaEFzeW5jKHRoaXMsb3B0
cyk7cmV0dXJuIHRoaXM7fX0pKGpRdWVyeSk7KGZ1bmN0aW9uKCQpe3ZhciBjYWNo
ZT17fTt2YXIgbWF0Y2hUZXh0Q2FjaGU9e307JC5mbi5hdXRvRWxsaXBzaXM9ZnVu
Y3Rpb24ob3B0aW9ucyl7b3B0aW9ucz0kLmV4dGVuZCh7J3Bvc2l0aW9uJzonY2Vu
dGVyJywndG9vbHRpcCc6ZmFsc2UsJ3Jlc3RvcmVUZXh0JzpmYWxzZSwnaGFzU3Bh
bic6ZmFsc2UsJ21hdGNoVGV4dCc6bnVsbH0sb3B0aW9ucyk7JCh0aGlzKS5lYWNo
KGZ1bmN0aW9uKCl7dmFyICR0aGlzPSQodGhpcyk7aWYob3B0aW9ucy5yZXN0b3Jl
VGV4dCl7aWYoISR0aGlzLmRhdGEoJ2F1dG9FbGxpcHNpcy5vcmlnaW5hbFRleHQn
KSl7JHRoaXMuZGF0YSgnYXV0b0VsbGlwc2lzLm9yaWdpbmFsVGV4dCcsJHRoaXMu
dGV4dCgpKTt9ZWxzZXskdGhpcy50ZXh0KCR0aGlzLmRhdGEoJ2F1dG9FbGxpcHNp
cy5vcmlnaW5hbFRleHQnKSk7fX0KdmFyICRjb250YWluZXI9JHRoaXM7dmFyICR0
cmltbWFibGVUZXh0PW51bGw7dmFyICRwcm90ZWN0ZWRUZXh0PW51bGw7aWYob3B0
aW9ucy5oYXNTcGFuKXskdHJpbW1hYmxlVGV4dD0kdGhpcy5jaGlsZHJlbihvcHRp
b25zLnNlbGVjdG9yKTt9ZWxzZXskdHJpbW1hYmxlVGV4dD0kKCc8c3BhbiAvPicp
LmNzcygnd2hpdGVTcGFjZScsJ25vd3JhcCcpLnRleHQoJHRoaXMudGV4dCgpKTsk
dGhpcy5lbXB0eSgpLmFwcGVuZCgkdHJpbW1hYmxlVGV4dCk7fQp2YXIgdGV4dD0k
Y29udGFpbmVyLnRleHQoKTt2YXIgdHJpbW1hYmxlVGV4dD0kdHJpbW1hYmxlVGV4
dC50ZXh0KCk7dmFyIHc9JGNvbnRhaW5lci53aWR0aCgpO3ZhciBwdz0kcHJvdGVj
dGVkVGV4dD8kcHJvdGVjdGVkVGV4dC53aWR0aCgpOjA7aWYoISh0ZXh0IGluIGNh
Y2hlKSl7Y2FjaGVbdGV4dF09e307fQppZihvcHRpb25zLm1hdGNoVGV4dCYmISh0
ZXh0IGluIG1hdGNoVGV4dENhY2hlKSl7bWF0Y2hUZXh0Q2FjaGVbdGV4dF09e307
fQppZihvcHRpb25zLm1hdGNoVGV4dCYmIShvcHRpb25zLm1hdGNoVGV4dCBpbiBt
YXRjaFRleHRDYWNoZVt0ZXh0XSkpe21hdGNoVGV4dENhY2hlW3RleHRdW29wdGlv
bnMubWF0Y2hUZXh0XT17fTt9CmlmKCFvcHRpb25zLm1hdGNoVGV4dCYmdyBpbiBj
YWNoZVt0ZXh0XSl7JGNvbnRhaW5lci5odG1sKGNhY2hlW3RleHRdW3ddKTtpZihv
cHRpb25zLnRvb2x0aXApCiRjb250YWluZXIuYXR0cigndGl0bGUnLHRleHQpO3Jl
dHVybjt9CmlmKG9wdGlvbnMubWF0Y2hUZXh0JiZvcHRpb25zLm1hdGNoVGV4dCBp
biBtYXRjaFRleHRDYWNoZVt0ZXh0XSYmdyBpbiBtYXRjaFRleHRDYWNoZVt0ZXh0
XVtvcHRpb25zLm1hdGNoVGV4dF0peyRjb250YWluZXIuaHRtbChtYXRjaFRleHRD
YWNoZVt0ZXh0XVtvcHRpb25zLm1hdGNoVGV4dF1bd10pO2lmKG9wdGlvbnMudG9v
bHRpcCkKJGNvbnRhaW5lci5hdHRyKCd0aXRsZScsdGV4dCk7cmV0dXJuO30KaWYo
JHRyaW1tYWJsZVRleHQud2lkdGgoKStwdz53KXtzd2l0Y2gob3B0aW9ucy5wb3Np
dGlvbil7Y2FzZSdyaWdodCc6dmFyIGw9MCxyPXRyaW1tYWJsZVRleHQubGVuZ3Ro
O2Rve3ZhciBtPU1hdGguY2VpbCgobCtyKS8yKTskdHJpbW1hYmxlVGV4dC50ZXh0
KHRyaW1tYWJsZVRleHQuc3Vic3RyKDAsbSkrJy4uLicpO2lmKCR0cmltbWFibGVU
ZXh0LndpZHRoKCkrcHc+dyl7cj1tLTE7fWVsc2V7bD1tO319d2hpbGUobDxyKTsk
dHJpbW1hYmxlVGV4dC50ZXh0KHRyaW1tYWJsZVRleHQuc3Vic3RyKDAsbCkrJy4u
LicpO2JyZWFrO2Nhc2UnY2VudGVyJzp2YXIgaT1bTWF0aC5yb3VuZCh0cmltbWFi
bGVUZXh0Lmxlbmd0aC8yKSxNYXRoLnJvdW5kKHRyaW1tYWJsZVRleHQubGVuZ3Ro
LzIpXTt2YXIgc2lkZT0xO3doaWxlKCR0cmltbWFibGVUZXh0Lm91dGVyV2lkdGgo
KStwdz53JiZpWzBdPjApeyR0cmltbWFibGVUZXh0LnRleHQodHJpbW1hYmxlVGV4
dC5zdWJzdHIoMCxpWzBdKSsnLi4uJyt0cmltbWFibGVUZXh0LnN1YnN0cihpWzFd
KSk7aWYoc2lkZT09MCl7aVswXS0tO3NpZGU9MTt9ZWxzZXtpWzFdKys7c2lkZT0w
O319CmJyZWFrO2Nhc2UnbGVmdCc6dmFyIHI9MDt3aGlsZSgkdHJpbW1hYmxlVGV4
dC5vdXRlcldpZHRoKCkrcHc+dyYmcjx0cmltbWFibGVUZXh0Lmxlbmd0aCl7JHRy
aW1tYWJsZVRleHQudGV4dCgnLi4uJyt0cmltbWFibGVUZXh0LnN1YnN0cihyKSk7
cisrO30KYnJlYWs7fX0KaWYob3B0aW9ucy50b29sdGlwKXskY29udGFpbmVyLmF0
dHIoJ3RpdGxlJyx0ZXh0KTt9CmlmKG9wdGlvbnMubWF0Y2hUZXh0KXskY29udGFp
bmVyLmhpZ2hsaWdodFRleHQob3B0aW9ucy5tYXRjaFRleHQpO21hdGNoVGV4dENh
Y2hlW3RleHRdW29wdGlvbnMubWF0Y2hUZXh0XVt3XT0kY29udGFpbmVyLmh0bWwo
KTt9ZWxzZXtjYWNoZVt0ZXh0XVt3XT0kY29udGFpbmVyLmh0bWwoKTt9fSk7fTt9
KShqUXVlcnkpOyhmdW5jdGlvbigkKXskLmJyb3dzZXJUZXN0PWZ1bmN0aW9uKGEs
eil7dmFyIHU9J3Vua25vd24nLHg9J1gnLG09ZnVuY3Rpb24ocixoKXtmb3IodmFy
IGk9MDtpPGgubGVuZ3RoO2k9aSsxKXtyPXIucmVwbGFjZShoW2ldWzBdLGhbaV1b
MV0pO30KcmV0dXJuIHI7fSxjPWZ1bmN0aW9uKGksYSxiLGMpe3ZhciByPXtuYW1l
Om0oKGEuZXhlYyhpKXx8W3UsdV0pWzFdLGIpfTtyW3IubmFtZV09dHJ1ZTtyLnZl
cnNpb249KGMuZXhlYyhpKXx8W3gseCx4LHhdKVszXTtpZihyLm5hbWUubWF0Y2go
L3NhZmFyaS8pJiZyLnZlcnNpb24+NDAwKXtyLnZlcnNpb249JzIuMCc7fQppZihy
Lm5hbWU9PT0ncHJlc3RvJyl7ci52ZXJzaW9uPSgkLmJyb3dzZXIudmVyc2lvbj45
LjI3KT8nZnV0aGFyayc6J2xpbmVhcl9iJzt9CmlmKHIubmFtZT09PSdvcGVyYScm
JiQuYnJvd3Nlci52ZXJzaW9uPj05Ljgpe3IudmVyc2lvbj1pLm1hdGNoKC92ZXJz
aW9uXC8oWzAtOVwuXSopL2kpWzFdfHwxMDt9CnIudmVyc2lvbk51bWJlcj1wYXJz
ZUZsb2F0KHIudmVyc2lvbiwxMCl8fDA7ci52ZXJzaW9uWD0oci52ZXJzaW9uIT09
eCk/KHIudmVyc2lvbisnJykuc3Vic3RyKDAsMSk6eDtyLmNsYXNzTmFtZT1yLm5h
bWUrci52ZXJzaW9uWDtyZXR1cm4gcjt9O2E9KGEubWF0Y2goL09wZXJhfE5hdmln
YXRvcnxNaW5lZmllbGR8S0hUTUx8Q2hyb21lfFBMQVlTVEFUSU9OIDMvKT9tKGEs
W1svKEZpcmVmb3h8TVNJRXxLSFRNTCxcc2xpa2Vcc0dlY2tvfEtvbnF1ZXJvcikv
LCcnXSxbJ0Nocm9tZSBTYWZhcmknLCdDaHJvbWUnXSxbJ0tIVE1MJywnS29ucXVl
cm9yJ10sWydNaW5lZmllbGQnLCdGaXJlZm94J10sWydOYXZpZ2F0b3InLCdOZXRz
Y2FwZSddLFsnUExBWVNUQVRJT04gMycsJ1BTMyddXSk6YSkudG9Mb3dlckNhc2Uo
KTskLmJyb3dzZXI9JC5leHRlbmQoKCF6KT8kLmJyb3dzZXI6e30sYyhhLC8oY2Ft
aW5vfGNocm9tZXxmaXJlZm94fG5ldHNjYXBlfGtvbnF1ZXJvcnxseW54fG1zaWV8
b3BlcmF8c2FmYXJpfGlwb2R8aXBob25lfGJsYWNrYmVycnl8cHMzfGRvY29tbykv
LFtdLC8oY2FtaW5vfGNocm9tZXxmaXJlZm94fG5ldHNjYXBlfG5ldHNjYXBlNnxv
cGVyYXx2ZXJzaW9ufGtvbnF1ZXJvcnxseW54fG1zaWV8c2FmYXJpfHBzMykoXC98
XDs/XHN8KShbYS16MC05XC5cK10qPykoXDt8ZGV2fHJlbHxcKXxcc3wkKS8pKTsk
LmxheW91dD1jKGEsLyhnZWNrb3xrb25xdWVyb3J8bXNpZXxvcGVyYXx3ZWJraXQp
LyxbWydrb25xdWVyb3InLCdraHRtbCddLFsnbXNpZScsJ3RyaWRlbnQnXSxbJ29w
ZXJhJywncHJlc3RvJ11dLC8oYXBwbGV3ZWJraXR8cnZ8a29ucXVlcm9yfG1zaWUp
KFw6fFwvfFxzKShbYS16MC05XC5dKj8pKFw7fFwpfFxzKS8pOyQub3M9e25hbWU6
KC8od2lufG1hY3xsaW51eHxzdW5vc3xzb2xhcmlzfGlwaG9uZSkvLmV4ZWMobmF2
aWdhdG9yLnBsYXRmb3JtLnRvTG93ZXJDYXNlKCkpfHxbdV0pWzBdLnJlcGxhY2Uo
J3N1bm9zJywnc29sYXJpcycpfTtpZigheil7JCgnaHRtbCcpLmFkZENsYXNzKFsk
Lm9zLm5hbWUsJC5icm93c2VyLm5hbWUsJC5icm93c2VyLmNsYXNzTmFtZSwkLmxh
eW91dC5uYW1lLCQubGF5b3V0LmNsYXNzTmFtZV0uam9pbignICcpKTt9fTskLmJy
b3dzZXJUZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO30pKGpRdWVyeSk7KGZ1bmN0
aW9uKCQpeyQuZm4uY29sbGFwc2libGVUYWJzPWZ1bmN0aW9uKCQkb3B0aW9ucyl7
aWYoIXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciAkc2V0dGluZ3M9JC5leHRl
bmQoe30sJC5jb2xsYXBzaWJsZVRhYnMuZGVmYXVsdHMsJCRvcHRpb25zKTt0aGlz
LmVhY2goZnVuY3Rpb24oKXt2YXIgJHRoaXM9JCh0aGlzKTskLmNvbGxhcHNpYmxl
VGFicy5pbnN0YW5jZXM9KCQuY29sbGFwc2libGVUYWJzLmluc3RhbmNlcy5sZW5n
dGg9PTA/JHRoaXM6JC5jb2xsYXBzaWJsZVRhYnMuaW5zdGFuY2VzLmFkZCgkdGhp
cykpOyR0aGlzLmRhdGEoJ2NvbGxhcHNpYmxlVGFic1NldHRpbmdzJywkc2V0dGlu
Z3MpOyR0aGlzLmNoaWxkcmVuKCRzZXR0aW5ncy5jb2xsYXBzaWJsZSkuZWFjaChm
dW5jdGlvbigpeyQuY29sbGFwc2libGVUYWJzLmFkZERhdGEoJCh0aGlzKSk7fSk7
fSk7aWYoISQuY29sbGFwc2libGVUYWJzLmJvdW5kRXZlbnQpeyQod2luZG93KS5k
ZWxheWVkQmluZCgnNTAwJywncmVzaXplJyxmdW5jdGlvbigpeyQuY29sbGFwc2li
bGVUYWJzLmhhbmRsZVJlc2l6ZSgpO30pO30KJC5jb2xsYXBzaWJsZVRhYnMuaGFu
ZGxlUmVzaXplKCk7cmV0dXJuIHRoaXM7fTskLmNvbGxhcHNpYmxlVGFicz17aW5z
dGFuY2VzOltdLGJvdW5kRXZlbnQ6bnVsbCxkZWZhdWx0czp7ZXhwYW5kZWRDb250
YWluZXI6JyNwLXZpZXdzIHVsJyxjb2xsYXBzZWRDb250YWluZXI6JyNwLWNhY3Rp
b25zIHVsJyxjb2xsYXBzaWJsZTonbGkuY29sbGFwc2libGUnLHNoaWZ0aW5nOmZh
bHNlLGV4cGFuZENvbmRpdGlvbjpmdW5jdGlvbihlbGVXaWR0aCl7cmV0dXJuKCQo
JyNsZWZ0LW5hdmlnYXRpb24nKS5wb3NpdGlvbigpLmxlZnQrJCgnI2xlZnQtbmF2
aWdhdGlvbicpLndpZHRoKCkpPCgkKCcjcmlnaHQtbmF2aWdhdGlvbicpLnBvc2l0
aW9uKCkubGVmdC1lbGVXaWR0aCk7fSxjb2xsYXBzZUNvbmRpdGlvbjpmdW5jdGlv
bigpe3JldHVybigkKCcjbGVmdC1uYXZpZ2F0aW9uJykucG9zaXRpb24oKS5sZWZ0
KyQoJyNsZWZ0LW5hdmlnYXRpb24nKS53aWR0aCgpKT4kKCcjcmlnaHQtbmF2aWdh
dGlvbicpLnBvc2l0aW9uKCkubGVmdDt9fSxhZGREYXRhOmZ1bmN0aW9uKCRjb2xs
YXBzaWJsZSl7dmFyICRzZXR0aW5ncz0kY29sbGFwc2libGUucGFyZW50KCkuZGF0
YSgnY29sbGFwc2libGVUYWJzU2V0dGluZ3MnKTskY29sbGFwc2libGUuZGF0YSgn
Y29sbGFwc2libGVUYWJzU2V0dGluZ3MnLHsnZXhwYW5kZWRDb250YWluZXInOiRz
ZXR0aW5ncy5leHBhbmRlZENvbnRhaW5lciwnY29sbGFwc2VkQ29udGFpbmVyJzok
c2V0dGluZ3MuY29sbGFwc2VkQ29udGFpbmVyLCdleHBhbmRlZFdpZHRoJzokY29s
bGFwc2libGUud2lkdGgoKSwncHJldkVsZW1lbnQnOiRjb2xsYXBzaWJsZS5wcmV2
KCl9KTt9LGdldFNldHRpbmdzOmZ1bmN0aW9uKCRjb2xsYXBzaWJsZSl7dmFyICRz
ZXR0aW5ncz0kY29sbGFwc2libGUuZGF0YSgnY29sbGFwc2libGVUYWJzU2V0dGlu
Z3MnKTtpZih0eXBlb2YgJHNldHRpbmdzPT0ndW5kZWZpbmVkJyl7JC5jb2xsYXBz
aWJsZVRhYnMuYWRkRGF0YSgkY29sbGFwc2libGUpOyRzZXR0aW5ncz0kY29sbGFw
c2libGUuZGF0YSgnY29sbGFwc2libGVUYWJzU2V0dGluZ3MnKTt9CnJldHVybiAk
c2V0dGluZ3M7fSxoYW5kbGVSZXNpemU6ZnVuY3Rpb24oZSl7JC5jb2xsYXBzaWJs
ZVRhYnMuaW5zdGFuY2VzLmVhY2goZnVuY3Rpb24oKXt2YXIgJHRoaXM9JCh0aGlz
KSxkYXRhPSQuY29sbGFwc2libGVUYWJzLmdldFNldHRpbmdzKCR0aGlzKTtpZihk
YXRhLnNoaWZ0aW5nKXJldHVybjtpZigkdGhpcy5jaGlsZHJlbihkYXRhLmNvbGxh
cHNpYmxlKS5sZW5ndGg+MCYmZGF0YS5jb2xsYXBzZUNvbmRpdGlvbigpKXskdGhp
cy50cmlnZ2VyKCJiZWZvcmVUYWJDb2xsYXBzZSIpOyQuY29sbGFwc2libGVUYWJz
Lm1vdmVUb0NvbGxhcHNlZCgkdGhpcy5jaGlsZHJlbihkYXRhLmNvbGxhcHNpYmxl
Kyc6bGFzdCcpKTt9CmlmKCQoZGF0YS5jb2xsYXBzZWRDb250YWluZXIrJyAnK2Rh
dGEuY29sbGFwc2libGUpLmxlbmd0aD4wJiZkYXRhLmV4cGFuZENvbmRpdGlvbigk
LmNvbGxhcHNpYmxlVGFicy5nZXRTZXR0aW5ncygkKGRhdGEuY29sbGFwc2VkQ29u
dGFpbmVyKS5jaGlsZHJlbihkYXRhLmNvbGxhcHNpYmxlKyI6Zmlyc3QiKSkuZXhw
YW5kZWRXaWR0aCkpeyR0aGlzLnRyaWdnZXIoImJlZm9yZVRhYkV4cGFuZCIpOyQu
Y29sbGFwc2libGVUYWJzLm1vdmVUb0V4cGFuZGVkKGRhdGEuY29sbGFwc2VkQ29u
dGFpbmVyKyIgIitkYXRhLmNvbGxhcHNpYmxlKyc6Zmlyc3QnKTt9fSk7fSxtb3Zl
VG9Db2xsYXBzZWQ6ZnVuY3Rpb24oZWxlKXt2YXIgJG1vdmluZz0kKGVsZSk7dmFy
IGRhdGE9JC5jb2xsYXBzaWJsZVRhYnMuZ2V0U2V0dGluZ3MoJG1vdmluZyk7dmFy
IGRhdGFFeHA9JC5jb2xsYXBzaWJsZVRhYnMuZ2V0U2V0dGluZ3MoZGF0YS5leHBh
bmRlZENvbnRhaW5lcik7ZGF0YUV4cC5zaGlmdGluZz10cnVlOyRtb3ZpbmcucmVt
b3ZlKCkucHJlcGVuZFRvKGRhdGEuY29sbGFwc2VkQ29udGFpbmVyKS5kYXRhKCdj
b2xsYXBzaWJsZVRhYnNTZXR0aW5ncycsZGF0YSk7ZGF0YUV4cC5zaGlmdGluZz1m
YWxzZTskLmNvbGxhcHNpYmxlVGFicy5oYW5kbGVSZXNpemUoKTt9LG1vdmVUb0V4
cGFuZGVkOmZ1bmN0aW9uKGVsZSl7dmFyICRtb3Zpbmc9JChlbGUpO3ZhciBkYXRh
PSQuY29sbGFwc2libGVUYWJzLmdldFNldHRpbmdzKCRtb3ZpbmcpO3ZhciBkYXRh
RXhwPSQuY29sbGFwc2libGVUYWJzLmdldFNldHRpbmdzKGRhdGEuZXhwYW5kZWRD
b250YWluZXIpO2RhdGFFeHAuc2hpZnRpbmc9dHJ1ZTskbW92aW5nLnJlbW92ZSgp
Lmluc2VydEFmdGVyKGRhdGEucHJldkVsZW1lbnQpLmRhdGEoJ2NvbGxhcHNpYmxl
VGFic1NldHRpbmdzJyxkYXRhKTtkYXRhRXhwLnNoaWZ0aW5nPWZhbHNlOyQuY29s
bGFwc2libGVUYWJzLmhhbmRsZVJlc2l6ZSgpO319O30pKGpRdWVyeSk7KGZ1bmN0
aW9uKGpRdWVyeSl7alF1ZXJ5LmVhY2goWydiYWNrZ3JvdW5kQ29sb3InLCdib3Jk
ZXJCb3R0b21Db2xvcicsJ2JvcmRlckxlZnRDb2xvcicsJ2JvcmRlclJpZ2h0Q29s
b3InLCdib3JkZXJUb3BDb2xvcicsJ2NvbG9yJywnb3V0bGluZUNvbG9yJ10sZnVu
Y3Rpb24oaSxhdHRyKXtqUXVlcnkuZnguc3RlcFthdHRyXT1mdW5jdGlvbihmeCl7
aWYoZnguc3RhdGU9PTApe2Z4LnN0YXJ0PWdldENvbG9yKGZ4LmVsZW0sYXR0cik7
ZnguZW5kPWdldFJHQihmeC5lbmQpO30KZnguZWxlbS5zdHlsZVthdHRyXT0icmdi
KCIrW01hdGgubWF4KE1hdGgubWluKHBhcnNlSW50KChmeC5wb3MqKGZ4LmVuZFsw
XS1meC5zdGFydFswXSkpK2Z4LnN0YXJ0WzBdKSwyNTUpLDApLE1hdGgubWF4KE1h
dGgubWluKHBhcnNlSW50KChmeC5wb3MqKGZ4LmVuZFsxXS1meC5zdGFydFsxXSkp
K2Z4LnN0YXJ0WzFdKSwyNTUpLDApLE1hdGgubWF4KE1hdGgubWluKHBhcnNlSW50
KChmeC5wb3MqKGZ4LmVuZFsyXS1meC5zdGFydFsyXSkpK2Z4LnN0YXJ0WzJdKSwy
NTUpLDApXS5qb2luKCIsIikrIikiO319KTtmdW5jdGlvbiBnZXRSR0IoY29sb3Ip
e3ZhciByZXN1bHQ7aWYoY29sb3ImJmNvbG9yLmNvbnN0cnVjdG9yPT1BcnJheSYm
Y29sb3IubGVuZ3RoPT0zKQpyZXR1cm4gY29sb3I7aWYocmVzdWx0PS9yZ2JcKFxz
KihbMC05XXsxLDN9KVxzKixccyooWzAtOV17MSwzfSlccyosXHMqKFswLTldezEs
M30pXHMqXCkvLmV4ZWMoY29sb3IpKQpyZXR1cm5bcGFyc2VJbnQocmVzdWx0WzFd
KSxwYXJzZUludChyZXN1bHRbMl0pLHBhcnNlSW50KHJlc3VsdFszXSldO2lmKHJl
c3VsdD0vcmdiXChccyooWzAtOV0rKD86XC5bMC05XSspPylcJVxzKixccyooWzAt
OV0rKD86XC5bMC05XSspPylcJVxzKixccyooWzAtOV0rKD86XC5bMC05XSspPylc
JVxzKlwpLy5leGVjKGNvbG9yKSkKcmV0dXJuW3BhcnNlRmxvYXQocmVzdWx0WzFd
KSoyLjU1LHBhcnNlRmxvYXQocmVzdWx0WzJdKSoyLjU1LHBhcnNlRmxvYXQocmVz
dWx0WzNdKSoyLjU1XTtpZihyZXN1bHQ9LyMoW2EtZkEtRjAtOV17Mn0pKFthLWZB
LUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkvLmV4ZWMoY29sb3IpKQpyZXR1cm5b
cGFyc2VJbnQocmVzdWx0WzFdLDE2KSxwYXJzZUludChyZXN1bHRbMl0sMTYpLHBh
cnNlSW50KHJlc3VsdFszXSwxNildO2lmKHJlc3VsdD0vIyhbYS1mQS1GMC05XSko
W2EtZkEtRjAtOV0pKFthLWZBLUYwLTldKS8uZXhlYyhjb2xvcikpCnJldHVybltw
YXJzZUludChyZXN1bHRbMV0rcmVzdWx0WzFdLDE2KSxwYXJzZUludChyZXN1bHRb
Ml0rcmVzdWx0WzJdLDE2KSxwYXJzZUludChyZXN1bHRbM10rcmVzdWx0WzNdLDE2
KV07cmV0dXJuIGNvbG9yc1tqUXVlcnkudHJpbShjb2xvcikudG9Mb3dlckNhc2Uo
KV07fQpmdW5jdGlvbiBnZXRDb2xvcihlbGVtLGF0dHIpe3ZhciBjb2xvcjtkb3tj
b2xvcj1qUXVlcnkuY3VyQ1NTKGVsZW0sYXR0cik7aWYoY29sb3IhPScnJiZjb2xv
ciE9J3RyYW5zcGFyZW50J3x8alF1ZXJ5Lm5vZGVOYW1lKGVsZW0sImJvZHkiKSkK
YnJlYWs7YXR0cj0iYmFja2dyb3VuZENvbG9yIjt9d2hpbGUoZWxlbT1lbGVtLnBh
cmVudE5vZGUpO3JldHVybiBnZXRSR0IoY29sb3IpO307dmFyIGNvbG9ycz17YXF1
YTpbMCwyNTUsMjU1XSxhenVyZTpbMjQwLDI1NSwyNTVdLGJlaWdlOlsyNDUsMjQ1
LDIyMF0sYmxhY2s6WzAsMCwwXSxibHVlOlswLDAsMjU1XSxicm93bjpbMTY1LDQy
LDQyXSxjeWFuOlswLDI1NSwyNTVdLGRhcmtibHVlOlswLDAsMTM5XSxkYXJrY3lh
bjpbMCwxMzksMTM5XSxkYXJrZ3JleTpbMTY5LDE2OSwxNjldLGRhcmtncmVlbjpb
MCwxMDAsMF0sZGFya2toYWtpOlsxODksMTgzLDEwN10sZGFya21hZ2VudGE6WzEz
OSwwLDEzOV0sZGFya29saXZlZ3JlZW46Wzg1LDEwNyw0N10sZGFya29yYW5nZTpb
MjU1LDE0MCwwXSxkYXJrb3JjaGlkOlsxNTMsNTAsMjA0XSxkYXJrcmVkOlsxMzks
MCwwXSxkYXJrc2FsbW9uOlsyMzMsMTUwLDEyMl0sZGFya3Zpb2xldDpbMTQ4LDAs
MjExXSxmdWNoc2lhOlsyNTUsMCwyNTVdLGdvbGQ6WzI1NSwyMTUsMF0sZ3JlZW46
WzAsMTI4LDBdLGluZGlnbzpbNzUsMCwxMzBdLGtoYWtpOlsyNDAsMjMwLDE0MF0s
bGlnaHRibHVlOlsxNzMsMjE2LDIzMF0sbGlnaHRjeWFuOlsyMjQsMjU1LDI1NV0s
bGlnaHRncmVlbjpbMTQ0LDIzOCwxNDRdLGxpZ2h0Z3JleTpbMjExLDIxMSwyMTFd
LGxpZ2h0cGluazpbMjU1LDE4MiwxOTNdLGxpZ2h0eWVsbG93OlsyNTUsMjU1LDIy
NF0sbGltZTpbMCwyNTUsMF0sbWFnZW50YTpbMjU1LDAsMjU1XSxtYXJvb246WzEy
OCwwLDBdLG5hdnk6WzAsMCwxMjhdLG9saXZlOlsxMjgsMTI4LDBdLG9yYW5nZTpb
MjU1LDE2NSwwXSxwaW5rOlsyNTUsMTkyLDIwM10scHVycGxlOlsxMjgsMCwxMjhd
LHZpb2xldDpbMTI4LDAsMTI4XSxyZWQ6WzI1NSwwLDBdLHNpbHZlcjpbMTkyLDE5
MiwxOTJdLHdoaXRlOlsyNTUsMjU1LDI1NV0seWVsbG93OlsyNTUsMjU1LDBdfTt9
KShqUXVlcnkpO2pRdWVyeS5jb29raWU9ZnVuY3Rpb24obmFtZSx2YWx1ZSxvcHRp
b25zKXtpZih0eXBlb2YgdmFsdWUhPSd1bmRlZmluZWQnKXtvcHRpb25zPW9wdGlv
bnN8fHt9O2lmKHZhbHVlPT09bnVsbCl7dmFsdWU9Jyc7b3B0aW9ucy5leHBpcmVz
PS0xO30KdmFyIGV4cGlyZXM9Jyc7aWYob3B0aW9ucy5leHBpcmVzJiYodHlwZW9m
IG9wdGlvbnMuZXhwaXJlcz09J251bWJlcid8fG9wdGlvbnMuZXhwaXJlcy50b1VU
Q1N0cmluZykpe3ZhciBkYXRlO2lmKHR5cGVvZiBvcHRpb25zLmV4cGlyZXM9PSdu
dW1iZXInKXtkYXRlPW5ldyBEYXRlKCk7ZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGlt
ZSgpKyhvcHRpb25zLmV4cGlyZXMqMjQqNjAqNjAqMTAwMCkpO31lbHNle2RhdGU9
b3B0aW9ucy5leHBpcmVzO30KZXhwaXJlcz0nOyBleHBpcmVzPScrZGF0ZS50b1VU
Q1N0cmluZygpO30KdmFyIHBhdGg9b3B0aW9ucy5wYXRoPyc7IHBhdGg9Jysob3B0
aW9ucy5wYXRoKTonJzt2YXIgZG9tYWluPW9wdGlvbnMuZG9tYWluPyc7IGRvbWFp
bj0nKyhvcHRpb25zLmRvbWFpbik6Jyc7dmFyIHNlY3VyZT1vcHRpb25zLnNlY3Vy
ZT8nOyBzZWN1cmUnOicnO2RvY3VtZW50LmNvb2tpZT1bbmFtZSwnPScsZW5jb2Rl
VVJJQ29tcG9uZW50KHZhbHVlKSxleHBpcmVzLHBhdGgsZG9tYWluLHNlY3VyZV0u
am9pbignJyk7fWVsc2V7dmFyIGNvb2tpZVZhbHVlPW51bGw7aWYoZG9jdW1lbnQu
Y29va2llJiZkb2N1bWVudC5jb29raWUhPScnKXt2YXIgY29va2llcz1kb2N1bWVu
dC5jb29raWUuc3BsaXQoJzsnKTtmb3IodmFyIGk9MDtpPGNvb2tpZXMubGVuZ3Ro
O2krKyl7dmFyIGNvb2tpZT1qUXVlcnkudHJpbShjb29raWVzW2ldKTtpZihjb29r
aWUuc3Vic3RyaW5nKDAsbmFtZS5sZW5ndGgrMSk9PShuYW1lKyc9Jykpe2Nvb2tp
ZVZhbHVlPWRlY29kZVVSSUNvbXBvbmVudChjb29raWUuc3Vic3RyaW5nKG5hbWUu
bGVuZ3RoKzEpKTticmVhazt9fX0KcmV0dXJuIGNvb2tpZVZhbHVlO319OyhmdW5j
dGlvbigkKXtmdW5jdGlvbiBlbmNvZGVFdmVudChldmVudCl7cmV0dXJuIGV2ZW50
LnJlcGxhY2UoLy0vZywnLS0nKS5yZXBsYWNlKC8gL2csJy0nKTt9CiQuZm4uZXh0
ZW5kKHtkZWxheWVkQmluZDpmdW5jdGlvbih0aW1lb3V0LGV2ZW50LGRhdGEsY2Fs
bGJhY2spe3ZhciBlbmNFdmVudD1lbmNvZGVFdmVudChldmVudCk7cmV0dXJuIHRo
aXMuZWFjaChmdW5jdGlvbigpe3ZhciB0aGF0PXRoaXM7aWYoISgkKHRoaXMpLmRh
dGEoJ19kZWxheWVkQmluZEJvdW5kLScrZW5jRXZlbnQrJy0nK3RpbWVvdXQpKSl7
JCh0aGlzKS5kYXRhKCdfZGVsYXllZEJpbmRCb3VuZC0nK2VuY0V2ZW50KyctJyt0
aW1lb3V0LHRydWUpOyQodGhpcykuYmluZChldmVudCxmdW5jdGlvbigpe3ZhciB0
aW1lcklEPSQodGhpcykuZGF0YSgnX2RlbGF5ZWRCaW5kVGltZXJJRC0nK2VuY0V2
ZW50KyctJyt0aW1lb3V0KTtpZih0eXBlb2YgdGltZXJJRCE9J3VuZGVmaW5lZCcp
CmNsZWFyVGltZW91dCh0aW1lcklEKTt0aW1lcklEPXNldFRpbWVvdXQoZnVuY3Rp
b24oKXskKHRoYXQpLnRyaWdnZXIoJ19kZWxheWVkQmluZC0nK2VuY0V2ZW50Kyct
Jyt0aW1lb3V0KTt9LHRpbWVvdXQpOyQodGhpcykuZGF0YSgnX2RlbGF5ZWRCaW5k
VGltZXJJRC0nK2VuY0V2ZW50KyctJyt0aW1lb3V0LHRpbWVySUQpO30pO30KJCh0
aGlzKS5iaW5kKCdfZGVsYXllZEJpbmQtJytlbmNFdmVudCsnLScrdGltZW91dCxk
YXRhLGNhbGxiYWNrKTt9KTt9LGRlbGF5ZWRCaW5kQ2FuY2VsOmZ1bmN0aW9uKHRp
bWVvdXQsZXZlbnQpe3ZhciBlbmNFdmVudD1lbmNvZGVFdmVudChldmVudCk7cmV0
dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0aW1lcklEPSQodGhpcykuZGF0
YSgnX2RlbGF5ZWRCaW5kVGltZXJJRC0nK2VuY0V2ZW50KyctJyt0aW1lb3V0KTtp
Zih0eXBlb2YgdGltZXJJRCE9J3VuZGVmaW5lZCcpCmNsZWFyVGltZW91dCh0aW1l
cklEKTt9KTt9LGRlbGF5ZWRCaW5kVW5iaW5kOmZ1bmN0aW9uKHRpbWVvdXQsZXZl
bnQsY2FsbGJhY2spe3ZhciBlbmNFdmVudD1lbmNvZGVFdmVudChldmVudCk7cmV0
dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeyQodGhpcykudW5iaW5kKCdfZGVsYXll
ZEJpbmQtJytlbmNFdmVudCsnLScrdGltZW91dCxjYWxsYmFjayk7fSk7fX0pO30p
KGpRdWVyeSk7KGZ1bmN0aW9uKCQpeyQuaGlnaGxpZ2h0VGV4dD17c3BsaXRBbmRI
aWdobGlnaHQ6ZnVuY3Rpb24obm9kZSxwYXQpe3ZhciBwYXRBcnJheT1wYXQuc3Bs
aXQoIiAiKTtmb3IodmFyIGk9MDtpPHBhdEFycmF5Lmxlbmd0aDtpKyspe2lmKHBh
dEFycmF5W2ldLmxlbmd0aD09MCljb250aW51ZTskLmhpZ2hsaWdodFRleHQuaW5u
ZXJIaWdobGlnaHQobm9kZSxwYXRBcnJheVtpXSk7fQpyZXR1cm4gbm9kZTt9LGlu
bmVySGlnaGxpZ2h0OmZ1bmN0aW9uKG5vZGUscGF0KXtpZihub2RlLm5vZGVUeXBl
PT0zKXt2YXIgcG9zPW5vZGUuZGF0YS5zZWFyY2gobmV3IFJlZ0V4cCgiXFxiIitS
ZWdFeHAuZXNjYXBlKHBhdCksImkiKSk7aWYocG9zPj0wKXt2YXIgc3Bhbm5vZGU9
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO3NwYW5ub2RlLmNsYXNzTmFt
ZT0naGlnaGxpZ2h0Jzt2YXIgbWlkZGxlYml0PW5vZGUuc3BsaXRUZXh0KHBvcyk7
bWlkZGxlYml0LnNwbGl0VGV4dChwYXQubGVuZ3RoKTt2YXIgbWlkZGxlY2xvbmU9
bWlkZGxlYml0LmNsb25lTm9kZSh0cnVlKTtzcGFubm9kZS5hcHBlbmRDaGlsZCht
aWRkbGVjbG9uZSk7bWlkZGxlYml0LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHNw
YW5ub2RlLG1pZGRsZWJpdCk7fX1lbHNlIGlmKG5vZGUubm9kZVR5cGU9PTEmJm5v
ZGUuY2hpbGROb2RlcyYmIS8oc2NyaXB0fHN0eWxlKS9pLnRlc3Qobm9kZS50YWdO
YW1lKSYmIShub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09J3NwYW4nJiZub2Rl
LmNsYXNzTmFtZS5tYXRjaCgvXGJoaWdobGlnaHQvKSkpe2Zvcih2YXIgaT0wO2k8
bm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsrK2kpeyQuaGlnaGxpZ2h0VGV4dC5pbm5l
ckhpZ2hsaWdodChub2RlLmNoaWxkTm9kZXNbaV0scGF0KTt9fX19OyQuZm4uaGln
aGxpZ2h0VGV4dD1mdW5jdGlvbihtYXRjaFN0cmluZyl7cmV0dXJuICQodGhpcyku
ZWFjaChmdW5jdGlvbigpe3ZhciAkdGhpcz0kKHRoaXMpOyR0aGlzLmRhdGEoJ2hp
Z2hsaWdodFRleHQnLHtvcmlnaW5hbFRleHQ6JHRoaXMudGV4dCgpfSk7JC5oaWdo
bGlnaHRUZXh0LnNwbGl0QW5kSGlnaGxpZ2h0KHRoaXMsbWF0Y2hTdHJpbmcpO30p
O307fSkoalF1ZXJ5KTsoZnVuY3Rpb24oJCl7JC5zdWdnZXN0aW9ucz17Y2FuY2Vs
OmZ1bmN0aW9uKGNvbnRleHQpe2lmKGNvbnRleHQuZGF0YS50aW1lcklEIT1udWxs
KXtjbGVhclRpbWVvdXQoY29udGV4dC5kYXRhLnRpbWVySUQpO30KaWYodHlwZW9m
IGNvbnRleHQuY29uZmlnLmNhbmNlbD09J2Z1bmN0aW9uJyl7Y29udGV4dC5jb25m
aWcuY2FuY2VsLmNhbGwoY29udGV4dC5kYXRhLiR0ZXh0Ym94KTt9fSxyZXN0b3Jl
OmZ1bmN0aW9uKGNvbnRleHQpe2NvbnRleHQuZGF0YS4kdGV4dGJveC52YWwoY29u
dGV4dC5kYXRhLnByZXZUZXh0KTt9LHVwZGF0ZTpmdW5jdGlvbihjb250ZXh0LGRl
bGF5ZWQpe2Z1bmN0aW9uIG1heWJlRmV0Y2goKXtpZihjb250ZXh0LmRhdGEuJHRl
eHRib3gudmFsKCkhPT1jb250ZXh0LmRhdGEucHJldlRleHQpe2NvbnRleHQuZGF0
YS5wcmV2VGV4dD1jb250ZXh0LmRhdGEuJHRleHRib3gudmFsKCk7aWYodHlwZW9m
IGNvbnRleHQuY29uZmlnLmZldGNoPT0nZnVuY3Rpb24nKXtjb250ZXh0LmNvbmZp
Zy5mZXRjaC5jYWxsKGNvbnRleHQuZGF0YS4kdGV4dGJveCxjb250ZXh0LmRhdGEu
JHRleHRib3gudmFsKCkpO319fQppZihjb250ZXh0LmRhdGEudGltZXJJRCE9bnVs
bCl7Y2xlYXJUaW1lb3V0KGNvbnRleHQuZGF0YS50aW1lcklEKTt9CmlmKGRlbGF5
ZWQpe2NvbnRleHQuZGF0YS50aW1lcklEPXNldFRpbWVvdXQobWF5YmVGZXRjaCxj
b250ZXh0LmNvbmZpZy5kZWxheSk7fWVsc2V7bWF5YmVGZXRjaCgpO30KJC5zdWdn
ZXN0aW9ucy5zcGVjaWFsKGNvbnRleHQpO30sc3BlY2lhbDpmdW5jdGlvbihjb250
ZXh0KXtpZih0eXBlb2YgY29udGV4dC5jb25maWcuc3BlY2lhbC5yZW5kZXI9PSdm
dW5jdGlvbicpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXskc3BlY2lhbD1jb250ZXh0
LmRhdGEuJGNvbnRhaW5lci5maW5kKCcuc3VnZ2VzdGlvbnMtc3BlY2lhbCcpO2Nv
bnRleHQuY29uZmlnLnNwZWNpYWwucmVuZGVyLmNhbGwoJHNwZWNpYWwsY29udGV4
dC5kYXRhLiR0ZXh0Ym94LnZhbCgpKTt9LDEpO319LGNvbmZpZ3VyZTpmdW5jdGlv
bihjb250ZXh0LHByb3BlcnR5LHZhbHVlKXtzd2l0Y2gocHJvcGVydHkpe2Nhc2Un
ZmV0Y2gnOmNhc2UnY2FuY2VsJzpjYXNlJ3NwZWNpYWwnOmNhc2UncmVzdWx0Jzpj
YXNlJyRyZWdpb24nOmNvbnRleHQuY29uZmlnW3Byb3BlcnR5XT12YWx1ZTticmVh
aztjYXNlJ3N1Z2dlc3Rpb25zJzpjb250ZXh0LmNvbmZpZ1twcm9wZXJ0eV09dmFs
dWU7aWYodHlwZW9mIGNvbnRleHQuZGF0YSE9PSd1bmRlZmluZWQnKXtpZihjb250
ZXh0LmRhdGEuJHRleHRib3gudmFsKCkubGVuZ3RoPT0wKXtjb250ZXh0LmRhdGEu
JGNvbnRhaW5lci5oaWRlKCk7fWVsc2V7Y29udGV4dC5kYXRhLiRjb250YWluZXIu
c2hvdygpO3ZhciBuZXdDU1M9eyd0b3AnOmNvbnRleHQuY29uZmlnLiRyZWdpb24u
b2Zmc2V0KCkudG9wK2NvbnRleHQuY29uZmlnLiRyZWdpb24ub3V0ZXJIZWlnaHQo
KSwnYm90dG9tJzonYXV0bycsJ3dpZHRoJzpjb250ZXh0LmNvbmZpZy4kcmVnaW9u
Lm91dGVyV2lkdGgoKSwnaGVpZ2h0JzonYXV0byd9CmlmKGNvbnRleHQuY29uZmln
LnBvc2l0aW9uRnJvbUxlZnQpe25ld0NTU1snbGVmdCddPWNvbnRleHQuY29uZmln
LiRyZWdpb24ub2Zmc2V0KCkubGVmdDtuZXdDU1NbJ3JpZ2h0J109J2F1dG8nO31l
bHNle25ld0NTU1snbGVmdCddPSdhdXRvJztuZXdDU1NbJ3JpZ2h0J109JCgnYm9k
eScpLndpZHRoKCktKGNvbnRleHQuY29uZmlnLiRyZWdpb24ub2Zmc2V0KCkubGVm
dCtjb250ZXh0LmNvbmZpZy4kcmVnaW9uLm91dGVyV2lkdGgoKSk7fQpjb250ZXh0
LmRhdGEuJGNvbnRhaW5lci5jc3MobmV3Q1NTKTt2YXIgJHJlc3VsdHM9Y29udGV4
dC5kYXRhLiRjb250YWluZXIuY2hpbGRyZW4oJy5zdWdnZXN0aW9ucy1yZXN1bHRz
Jyk7JHJlc3VsdHMuZW1wdHkoKTt2YXIgZXhwV2lkdGg9LTE7dmFyICRhdXRvRWxs
aXBzZU1lPSQoW10pO3ZhciBtYXRjaGVkVGV4dD1udWxsO2Zvcih2YXIgaT0wO2k8
Y29udGV4dC5jb25maWcuc3VnZ2VzdGlvbnMubGVuZ3RoO2krKyl7dmFyIHRleHQ9
Y29udGV4dC5jb25maWcuc3VnZ2VzdGlvbnNbaV07dmFyICRyZXN1bHQ9JCgnPGRp
diAvPicpLmFkZENsYXNzKCdzdWdnZXN0aW9ucy1yZXN1bHQnKS5hdHRyKCdyZWwn
LGkpLmRhdGEoJ3RleHQnLGNvbnRleHQuY29uZmlnLnN1Z2dlc3Rpb25zW2ldKS5t
b3VzZW1vdmUoZnVuY3Rpb24oZSl7Y29udGV4dC5kYXRhLnNlbGVjdGVkV2l0aE1v
dXNlPXRydWU7JC5zdWdnZXN0aW9ucy5oaWdobGlnaHQoY29udGV4dCwkKHRoaXMp
LmNsb3Nlc3QoJy5zdWdnZXN0aW9ucy1yZXN1bHRzIGRpdicpLGZhbHNlKTt9KS5h
cHBlbmRUbygkcmVzdWx0cyk7aWYodHlwZW9mIGNvbnRleHQuY29uZmlnLnJlc3Vs
dC5yZW5kZXI9PSdmdW5jdGlvbicpe2NvbnRleHQuY29uZmlnLnJlc3VsdC5yZW5k
ZXIuY2FsbCgkcmVzdWx0LGNvbnRleHQuY29uZmlnLnN1Z2dlc3Rpb25zW2ldKTt9
ZWxzZXtpZihjb250ZXh0LmNvbmZpZy5oaWdobGlnaHRJbnB1dCl7bWF0Y2hlZFRl
eHQ9Y29udGV4dC5kYXRhLnByZXZUZXh0O30KJHJlc3VsdC5hcHBlbmQoJCgnPHNw
YW4gLz4nKS5jc3MoJ3doaXRlU3BhY2UnLCdub3dyYXAnKS50ZXh0KHRleHQpKTt2
YXIgJHNwYW49JHJlc3VsdC5jaGlsZHJlbignc3BhbicpO2lmKCRzcGFuLm91dGVy
V2lkdGgoKT4kcmVzdWx0LndpZHRoKCkmJiRzcGFuLm91dGVyV2lkdGgoKT5leHBX
aWR0aCl7ZXhwV2lkdGg9JHNwYW4ub3V0ZXJXaWR0aCgpKyhjb250ZXh0LmRhdGEu
JGNvbnRhaW5lci53aWR0aCgpLSRzcGFuLnBhcmVudCgpLndpZHRoKCkpO30KJGF1
dG9FbGxpcHNlTWU9JGF1dG9FbGxpcHNlTWUuYWRkKCRyZXN1bHQpO319CmlmKGV4
cFdpZHRoPmNvbnRleHQuZGF0YS4kY29udGFpbmVyLndpZHRoKCkpe3ZhciBtYXhX
aWR0aD1jb250ZXh0LmNvbmZpZy5tYXhFeHBhbmRGYWN0b3IqY29udGV4dC5kYXRh
LiR0ZXh0Ym94LndpZHRoKCk7Y29udGV4dC5kYXRhLiRjb250YWluZXIud2lkdGgo
TWF0aC5taW4oZXhwV2lkdGgsbWF4V2lkdGgpKTt9CiRhdXRvRWxsaXBzZU1lLmF1
dG9FbGxpcHNpcyh7aGFzU3Bhbjp0cnVlLHRvb2x0aXA6dHJ1ZSxtYXRjaFRleHQ6
bWF0Y2hlZFRleHR9KTt9fQpicmVhaztjYXNlJ21heFJvd3MnOmNvbnRleHQuY29u
ZmlnW3Byb3BlcnR5XT1NYXRoLm1heCgxLE1hdGgubWluKDEwMCx2YWx1ZSkpO2Jy
ZWFrO2Nhc2UnZGVsYXknOmNvbnRleHQuY29uZmlnW3Byb3BlcnR5XT1NYXRoLm1h
eCgwLE1hdGgubWluKDEyMDAsdmFsdWUpKTticmVhaztjYXNlJ21heEV4cGFuZEZh
Y3Rvcic6Y29udGV4dC5jb25maWdbcHJvcGVydHldPU1hdGgubWF4KDEsdmFsdWUp
O2JyZWFrO2Nhc2Unc3VibWl0T25DbGljayc6Y2FzZSdwb3NpdGlvbkZyb21MZWZ0
JzpjYXNlJ2hpZ2hsaWdodElucHV0Jzpjb250ZXh0LmNvbmZpZ1twcm9wZXJ0eV09
dmFsdWU/dHJ1ZTpmYWxzZTticmVhazt9fSxoaWdobGlnaHQ6ZnVuY3Rpb24oY29u
dGV4dCxyZXN1bHQsdXBkYXRlVGV4dGJveCl7dmFyIHNlbGVjdGVkPWNvbnRleHQu
ZGF0YS4kY29udGFpbmVyLmZpbmQoJy5zdWdnZXN0aW9ucy1yZXN1bHQtY3VycmVu
dCcpO2lmKCFyZXN1bHQuZ2V0fHxzZWxlY3RlZC5nZXQoMCkhPXJlc3VsdC5nZXQo
MCkpe2lmKHJlc3VsdD09J3ByZXYnKXtpZihzZWxlY3RlZC5pcygnLnN1Z2dlc3Rp
b25zLXNwZWNpYWwnKSl7cmVzdWx0PWNvbnRleHQuZGF0YS4kY29udGFpbmVyLmZp
bmQoJy5zdWdnZXN0aW9ucy1yZXN1bHQ6bGFzdCcpfWVsc2V7cmVzdWx0PXNlbGVj
dGVkLnByZXYoKTtpZihzZWxlY3RlZC5sZW5ndGg9PTApe2lmKGNvbnRleHQuZGF0
YS4kY29udGFpbmVyLmZpbmQoJy5zdWdnZXN0aW9ucy1zcGVjaWFsJykuaHRtbCgp
IT0iIil7cmVzdWx0PWNvbnRleHQuZGF0YS4kY29udGFpbmVyLmZpbmQoJy5zdWdn
ZXN0aW9ucy1zcGVjaWFsJyk7fWVsc2V7cmVzdWx0PWNvbnRleHQuZGF0YS4kY29u
dGFpbmVyLmZpbmQoJy5zdWdnZXN0aW9ucy1yZXN1bHRzIGRpdjpsYXN0Jyk7fX19
fWVsc2UgaWYocmVzdWx0PT0nbmV4dCcpe2lmKHNlbGVjdGVkLmxlbmd0aD09MCl7
cmVzdWx0PWNvbnRleHQuZGF0YS4kY29udGFpbmVyLmZpbmQoJy5zdWdnZXN0aW9u
cy1yZXN1bHRzIGRpdjpmaXJzdCcpO2lmKHJlc3VsdC5sZW5ndGg9PTAmJmNvbnRl
eHQuZGF0YS4kY29udGFpbmVyLmZpbmQoJy5zdWdnZXN0aW9ucy1zcGVjaWFsJyku
aHRtbCgpIT0iIil7cmVzdWx0PWNvbnRleHQuZGF0YS4kY29udGFpbmVyLmZpbmQo
Jy5zdWdnZXN0aW9ucy1zcGVjaWFsJyk7fX1lbHNle3Jlc3VsdD1zZWxlY3RlZC5u
ZXh0KCk7aWYoc2VsZWN0ZWQuaXMoJy5zdWdnZXN0aW9ucy1zcGVjaWFsJykpe3Jl
c3VsdD0kKFtdKTt9ZWxzZSBpZihyZXN1bHQubGVuZ3RoPT0wJiZjb250ZXh0LmRh
dGEuJGNvbnRhaW5lci5maW5kKCcuc3VnZ2VzdGlvbnMtc3BlY2lhbCcpLmh0bWwo
KSE9IiIpe3Jlc3VsdD1jb250ZXh0LmRhdGEuJGNvbnRhaW5lci5maW5kKCcuc3Vn
Z2VzdGlvbnMtc3BlY2lhbCcpO319fQpzZWxlY3RlZC5yZW1vdmVDbGFzcygnc3Vn
Z2VzdGlvbnMtcmVzdWx0LWN1cnJlbnQnKTtyZXN1bHQuYWRkQ2xhc3MoJ3N1Z2dl
c3Rpb25zLXJlc3VsdC1jdXJyZW50Jyk7fQppZih1cGRhdGVUZXh0Ym94KXtpZihy
ZXN1bHQubGVuZ3RoPT0wfHxyZXN1bHQuaXMoJy5zdWdnZXN0aW9ucy1zcGVjaWFs
JykpeyQuc3VnZ2VzdGlvbnMucmVzdG9yZShjb250ZXh0KTt9ZWxzZXtjb250ZXh0
LmRhdGEuJHRleHRib3gudmFsKHJlc3VsdC5kYXRhKCd0ZXh0JykpO2NvbnRleHQu
ZGF0YS4kdGV4dGJveC5jaGFuZ2UoKTt9CmNvbnRleHQuZGF0YS4kdGV4dGJveC50
cmlnZ2VyKCdjaGFuZ2UnKTt9fSxrZXlwcmVzczpmdW5jdGlvbihlLGNvbnRleHQs
a2V5KXt2YXIgd2FzVmlzaWJsZT1jb250ZXh0LmRhdGEuJGNvbnRhaW5lci5pcygn
OnZpc2libGUnKTt2YXIgcHJldmVudERlZmF1bHQ9ZmFsc2U7c3dpdGNoKGtleSl7
Y2FzZSA0MDppZih3YXNWaXNpYmxlKXskLnN1Z2dlc3Rpb25zLmhpZ2hsaWdodChj
b250ZXh0LCduZXh0Jyx0cnVlKTtjb250ZXh0LmRhdGEuc2VsZWN0ZWRXaXRoTW91
c2U9ZmFsc2U7fWVsc2V7JC5zdWdnZXN0aW9ucy51cGRhdGUoY29udGV4dCxmYWxz
ZSk7fQpwcmV2ZW50RGVmYXVsdD10cnVlO2JyZWFrO2Nhc2UgMzg6aWYod2FzVmlz
aWJsZSl7JC5zdWdnZXN0aW9ucy5oaWdobGlnaHQoY29udGV4dCwncHJldicsdHJ1
ZSk7Y29udGV4dC5kYXRhLnNlbGVjdGVkV2l0aE1vdXNlPWZhbHNlO30KcHJldmVu
dERlZmF1bHQ9d2FzVmlzaWJsZTticmVhaztjYXNlIDI3OmNvbnRleHQuZGF0YS4k
Y29udGFpbmVyLmhpZGUoKTskLnN1Z2dlc3Rpb25zLnJlc3RvcmUoY29udGV4dCk7
JC5zdWdnZXN0aW9ucy5jYW5jZWwoY29udGV4dCk7Y29udGV4dC5kYXRhLiR0ZXh0
Ym94LnRyaWdnZXIoJ2NoYW5nZScpO3ByZXZlbnREZWZhdWx0PXdhc1Zpc2libGU7
YnJlYWs7Y2FzZSAxMzpjb250ZXh0LmRhdGEuJGNvbnRhaW5lci5oaWRlKCk7cHJl
dmVudERlZmF1bHQ9d2FzVmlzaWJsZTtzZWxlY3RlZD1jb250ZXh0LmRhdGEuJGNv
bnRhaW5lci5maW5kKCcuc3VnZ2VzdGlvbnMtcmVzdWx0LWN1cnJlbnQnKTtpZihz
ZWxlY3RlZC5zaXplKCk9PTB8fGNvbnRleHQuZGF0YS5zZWxlY3RlZFdpdGhNb3Vz
ZSl7JC5zdWdnZXN0aW9ucy5jYW5jZWwoY29udGV4dCk7Y29udGV4dC5jb25maWcu
JHJlZ2lvbi5jbG9zZXN0KCdmb3JtJykuc3VibWl0KCk7fWVsc2UgaWYoc2VsZWN0
ZWQuaXMoJy5zdWdnZXN0aW9ucy1zcGVjaWFsJykpe2lmKHR5cGVvZiBjb250ZXh0
LmNvbmZpZy5zcGVjaWFsLnNlbGVjdD09J2Z1bmN0aW9uJyl7Y29udGV4dC5jb25m
aWcuc3BlY2lhbC5zZWxlY3QuY2FsbChzZWxlY3RlZCxjb250ZXh0LmRhdGEuJHRl
eHRib3gpO319ZWxzZXtpZih0eXBlb2YgY29udGV4dC5jb25maWcucmVzdWx0LnNl
bGVjdD09J2Z1bmN0aW9uJyl7JC5zdWdnZXN0aW9ucy5oaWdobGlnaHQoY29udGV4
dCxzZWxlY3RlZCx0cnVlKTtjb250ZXh0LmNvbmZpZy5yZXN1bHQuc2VsZWN0LmNh
bGwoc2VsZWN0ZWQsY29udGV4dC5kYXRhLiR0ZXh0Ym94KTt9ZWxzZXskLnN1Z2dl
c3Rpb25zLmhpZ2hsaWdodChjb250ZXh0LHNlbGVjdGVkLHRydWUpO319CmJyZWFr
O2RlZmF1bHQ6JC5zdWdnZXN0aW9ucy51cGRhdGUoY29udGV4dCx0cnVlKTticmVh
azt9CmlmKHByZXZlbnREZWZhdWx0KXtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9w
SW1tZWRpYXRlUHJvcGFnYXRpb24oKTt9fX07JC5mbi5zdWdnZXN0aW9ucz1mdW5j
dGlvbigpe3ZhciByZXR1cm5WYWx1ZT1udWxsO3ZhciBhcmdzPWFyZ3VtZW50czsk
KHRoaXMpLmVhY2goZnVuY3Rpb24oKXt2YXIgY29udGV4dD0kKHRoaXMpLmRhdGEo
J3N1Z2dlc3Rpb25zLWNvbnRleHQnKTtpZih0eXBlb2YgY29udGV4dD09J3VuZGVm
aW5lZCd8fGNvbnRleHQ9PW51bGwpe2NvbnRleHQ9e2NvbmZpZzp7J2ZldGNoJzpm
dW5jdGlvbigpe30sJ2NhbmNlbCc6ZnVuY3Rpb24oKXt9LCdzcGVjaWFsJzp7fSwn
cmVzdWx0Jzp7fSwnJHJlZ2lvbic6JCh0aGlzKSwnc3VnZ2VzdGlvbnMnOltdLCdt
YXhSb3dzJzo3LCdkZWxheSc6MTIwLCdzdWJtaXRPbkNsaWNrJzpmYWxzZSwnbWF4
RXhwYW5kRmFjdG9yJzozLCdwb3NpdGlvbkZyb21MZWZ0Jzp0cnVlLCdoaWdobGln
aHRJbnB1dCc6ZmFsc2V9fTt9CmlmKGFyZ3MubGVuZ3RoPjApe2lmKHR5cGVvZiBh
cmdzWzBdPT0nb2JqZWN0Jyl7Zm9yKHZhciBrZXkgaW4gYXJnc1swXSl7JC5zdWdn
ZXN0aW9ucy5jb25maWd1cmUoY29udGV4dCxrZXksYXJnc1swXVtrZXldKTt9fWVs
c2UgaWYodHlwZW9mIGFyZ3NbMF09PSdzdHJpbmcnKXtpZihhcmdzLmxlbmd0aD4x
KXskLnN1Z2dlc3Rpb25zLmNvbmZpZ3VyZShjb250ZXh0LGFyZ3NbMF0sYXJnc1sx
XSk7fWVsc2UgaWYocmV0dXJuVmFsdWU9PW51bGwpe3JldHVyblZhbHVlPShhcmdz
WzBdaW4gY29udGV4dC5jb25maWc/dW5kZWZpbmVkOmNvbnRleHQuY29uZmlnW2Fy
Z3NbMF1dKTt9fX0KaWYodHlwZW9mIGNvbnRleHQuZGF0YT09J3VuZGVmaW5lZCcp
e2NvbnRleHQuZGF0YT17J3RpbWVySUQnOm51bGwsJ3ByZXZUZXh0JzpudWxsLCd2
aXNpYmxlUmVzdWx0cyc6MCwnbW91c2VEb3duT24nOiQoW10pLCckdGV4dGJveCc6
JCh0aGlzKSwnc2VsZWN0ZWRXaXRoTW91c2UnOmZhbHNlfTt2YXIgbmV3Q1NTPXsn
dG9wJzpNYXRoLnJvdW5kKGNvbnRleHQuZGF0YS4kdGV4dGJveC5vZmZzZXQoKS50
b3ArY29udGV4dC5kYXRhLiR0ZXh0Ym94Lm91dGVySGVpZ2h0KCkpLCd3aWR0aCc6
Y29udGV4dC5kYXRhLiR0ZXh0Ym94Lm91dGVyV2lkdGgoKSwnZGlzcGxheSc6J25v
bmUnfQppZihjb250ZXh0LmNvbmZpZy5wb3NpdGlvbkZyb21MZWZ0KXtuZXdDU1Nb
J2xlZnQnXT1jb250ZXh0LmNvbmZpZy4kcmVnaW9uLm9mZnNldCgpLmxlZnQ7bmV3
Q1NTWydyaWdodCddPSdhdXRvJzt9ZWxzZXtuZXdDU1NbJ2xlZnQnXT0nYXV0byc7
bmV3Q1NTWydyaWdodCddPSQoJ2JvZHknKS53aWR0aCgpLShjb250ZXh0LmNvbmZp
Zy4kcmVnaW9uLm9mZnNldCgpLmxlZnQrY29udGV4dC5jb25maWcuJHJlZ2lvbi5v
dXRlcldpZHRoKCkpO30KY29udGV4dC5kYXRhLiRjb250YWluZXI9JCgnPGRpdiAv
PicpLmNzcyhuZXdDU1MpLmFkZENsYXNzKCdzdWdnZXN0aW9ucycpLmFwcGVuZCgk
KCc8ZGl2IC8+JykuYWRkQ2xhc3MoJ3N1Z2dlc3Rpb25zLXJlc3VsdHMnKS5tb3Vz
ZWRvd24oZnVuY3Rpb24oZSl7Y29udGV4dC5kYXRhLm1vdXNlRG93bk9uPSQoZS50
YXJnZXQpLmNsb3Nlc3QoJy5zdWdnZXN0aW9ucy1yZXN1bHRzIGRpdicpO30pLm1v
dXNldXAoZnVuY3Rpb24oZSl7dmFyICRyZXN1bHQ9JChlLnRhcmdldCkuY2xvc2Vz
dCgnLnN1Z2dlc3Rpb25zLXJlc3VsdHMgZGl2Jyk7dmFyICRvdGhlcj1jb250ZXh0
LmRhdGEubW91c2VEb3duT247Y29udGV4dC5kYXRhLm1vdXNlRG93bk9uPSQoW10p
O2lmKCRyZXN1bHQuZ2V0KDApIT0kb3RoZXIuZ2V0KDApKXtyZXR1cm47fQokLnN1
Z2dlc3Rpb25zLmhpZ2hsaWdodChjb250ZXh0LCRyZXN1bHQsdHJ1ZSk7Y29udGV4
dC5kYXRhLiRjb250YWluZXIuaGlkZSgpO2lmKHR5cGVvZiBjb250ZXh0LmNvbmZp
Zy5yZXN1bHQuc2VsZWN0PT0nZnVuY3Rpb24nKXtjb250ZXh0LmNvbmZpZy5yZXN1
bHQuc2VsZWN0LmNhbGwoJHJlc3VsdCxjb250ZXh0LmRhdGEuJHRleHRib3gpO30K
Y29udGV4dC5kYXRhLiR0ZXh0Ym94LmZvY3VzKCk7fSkpLmFwcGVuZCgkKCc8ZGl2
IC8+JykuYWRkQ2xhc3MoJ3N1Z2dlc3Rpb25zLXNwZWNpYWwnKS5tb3VzZWRvd24o
ZnVuY3Rpb24oZSl7Y29udGV4dC5kYXRhLm1vdXNlRG93bk9uPSQoZS50YXJnZXQp
LmNsb3Nlc3QoJy5zdWdnZXN0aW9ucy1zcGVjaWFsJyk7fSkubW91c2V1cChmdW5j
dGlvbihlKXt2YXIgJHNwZWNpYWw9JChlLnRhcmdldCkuY2xvc2VzdCgnLnN1Z2dl
c3Rpb25zLXNwZWNpYWwnKTt2YXIgJG90aGVyPWNvbnRleHQuZGF0YS5tb3VzZURv
d25Pbjtjb250ZXh0LmRhdGEubW91c2VEb3duT249JChbXSk7aWYoJHNwZWNpYWwu
Z2V0KDApIT0kb3RoZXIuZ2V0KDApKXtyZXR1cm47fQpjb250ZXh0LmRhdGEuJGNv
bnRhaW5lci5oaWRlKCk7aWYodHlwZW9mIGNvbnRleHQuY29uZmlnLnNwZWNpYWwu
c2VsZWN0PT0nZnVuY3Rpb24nKXtjb250ZXh0LmNvbmZpZy5zcGVjaWFsLnNlbGVj
dC5jYWxsKCRzcGVjaWFsLGNvbnRleHQuZGF0YS4kdGV4dGJveCk7fQpjb250ZXh0
LmRhdGEuJHRleHRib3guZm9jdXMoKTt9KS5tb3VzZW1vdmUoZnVuY3Rpb24oZSl7
Y29udGV4dC5kYXRhLnNlbGVjdGVkV2l0aE1vdXNlPXRydWU7JC5zdWdnZXN0aW9u
cy5oaWdobGlnaHQoY29udGV4dCwkKGUudGFyZ2V0KS5jbG9zZXN0KCcuc3VnZ2Vz
dGlvbnMtc3BlY2lhbCcpLGZhbHNlKTt9KSkuYXBwZW5kVG8oJCgnYm9keScpKTsk
KHRoaXMpLmF0dHIoJ2F1dG9jb21wbGV0ZScsJ29mZicpLmtleWRvd24oZnVuY3Rp
b24oZSl7Y29udGV4dC5kYXRhLmtleXByZXNzZWQ9KGUua2V5Q29kZT09dW5kZWZp
bmVkKT9lLndoaWNoOmUua2V5Q29kZTtjb250ZXh0LmRhdGEua2V5cHJlc3NlZENv
dW50PTA7c3dpdGNoKGNvbnRleHQuZGF0YS5rZXlwcmVzc2VkKXtjYXNlIDQwOmUu
cHJldmVudERlZmF1bHQoKTtlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO2Jy
ZWFrO2Nhc2UgMzg6Y2FzZSAyNzpjYXNlIDEzOmlmKGNvbnRleHQuZGF0YS4kY29u
dGFpbmVyLmlzKCc6dmlzaWJsZScpKXtlLnByZXZlbnREZWZhdWx0KCk7ZS5zdG9w
SW1tZWRpYXRlUHJvcGFnYXRpb24oKTt9fX0pLmtleXByZXNzKGZ1bmN0aW9uKGUp
e2NvbnRleHQuZGF0YS5rZXlwcmVzc2VkQ291bnQrKzskLnN1Z2dlc3Rpb25zLmtl
eXByZXNzKGUsY29udGV4dCxjb250ZXh0LmRhdGEua2V5cHJlc3NlZCk7fSkua2V5
dXAoZnVuY3Rpb24oZSl7aWYoY29udGV4dC5kYXRhLmtleXByZXNzZWRDb3VudD09
MCl7JC5zdWdnZXN0aW9ucy5rZXlwcmVzcyhlLGNvbnRleHQsY29udGV4dC5kYXRh
LmtleXByZXNzZWQpO319KS5ibHVyKGZ1bmN0aW9uKCl7aWYoY29udGV4dC5kYXRh
Lm1vdXNlRG93bk9uLmxlbmd0aD4wKXtyZXR1cm47fQpjb250ZXh0LmRhdGEuJGNv
bnRhaW5lci5oaWRlKCk7JC5zdWdnZXN0aW9ucy5jYW5jZWwoY29udGV4dCk7fSk7
fQokKHRoaXMpLmRhdGEoJ3N1Z2dlc3Rpb25zLWNvbnRleHQnLGNvbnRleHQpO30p
O3JldHVybiByZXR1cm5WYWx1ZSE9PW51bGw/cmV0dXJuVmFsdWU6JCh0aGlzKTt9
O30pKGpRdWVyeSk7KGZ1bmN0aW9uKCQpeyQuZm4udGV4dFNlbGVjdGlvbj1mdW5j
dGlvbihjb21tYW5kLG9wdGlvbnMpe3ZhciBmbj17Z2V0Q29udGVudHM6ZnVuY3Rp
b24oKXtyZXR1cm4gdGhpcy52YWwoKTt9LGdldFNlbGVjdGlvbjpmdW5jdGlvbigp
e3ZhciBlPXRoaXMuZ2V0KDApO3ZhciByZXR2YWw9Jyc7aWYoJChlKS5pcygnOmhp
ZGRlbicpKXt9ZWxzZSBpZihkb2N1bWVudC5zZWxlY3Rpb24mJmRvY3VtZW50LnNl
bGVjdGlvbi5jcmVhdGVSYW5nZSl7ZS5mb2N1cygpO3ZhciByYW5nZT1kb2N1bWVu
dC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTtyZXR2YWw9cmFuZ2UudGV4dDt9ZWxz
ZSBpZihlLnNlbGVjdGlvblN0YXJ0fHxlLnNlbGVjdGlvblN0YXJ0PT0nMCcpe3Jl
dHZhbD1lLnZhbHVlLnN1YnN0cmluZyhlLnNlbGVjdGlvblN0YXJ0LGUuc2VsZWN0
aW9uRW5kKTt9CnJldHVybiByZXR2YWw7fSxlbmNhcHN1bGF0ZVNlbGVjdGlvbjpm
dW5jdGlvbihvcHRpb25zKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZnVu
Y3Rpb24gY2hlY2tTZWxlY3RlZFRleHQoKXtpZighc2VsVGV4dCl7c2VsVGV4dD1v
cHRpb25zLnBlcmk7aXNTYW1wbGU9dHJ1ZTt9ZWxzZSBpZihvcHRpb25zLnJlcGxh
Y2Upe3NlbFRleHQ9b3B0aW9ucy5wZXJpO31lbHNlIGlmKHNlbFRleHQuY2hhckF0
KHNlbFRleHQubGVuZ3RoLTEpPT0nICcpe3NlbFRleHQ9c2VsVGV4dC5zdWJzdHJp
bmcoMCxzZWxUZXh0Lmxlbmd0aC0xKTtvcHRpb25zLnBvc3QrPScgJzt9fQp2YXIg
aXNTYW1wbGU9ZmFsc2U7aWYodGhpcy5zdHlsZS5kaXNwbGF5PT0nbm9uZScpe31l
bHNlIGlmKHRoaXMuc2VsZWN0aW9uU3RhcnR8fHRoaXMuc2VsZWN0aW9uU3RhcnQ9
PScwJyl7JCh0aGlzKS5mb2N1cygpO3ZhciBzZWxUZXh0PSQodGhpcykudGV4dFNl
bGVjdGlvbignZ2V0U2VsZWN0aW9uJyk7dmFyIHN0YXJ0UG9zPXRoaXMuc2VsZWN0
aW9uU3RhcnQ7dmFyIGVuZFBvcz10aGlzLnNlbGVjdGlvbkVuZDt2YXIgc2Nyb2xs
VG9wPXRoaXMuc2Nyb2xsVG9wO2NoZWNrU2VsZWN0ZWRUZXh0KCk7aWYob3B0aW9u
cy5vd25saW5lKXtpZihzdGFydFBvcyE9MCYmdGhpcy52YWx1ZS5jaGFyQXQoc3Rh
cnRQb3MtMSkhPSJcbiIpe29wdGlvbnMucHJlPSJcbiIrb3B0aW9ucy5wcmU7fQpp
Zih0aGlzLnZhbHVlLmNoYXJBdChlbmRQb3MpIT0iXG4iKXtvcHRpb25zLnBvc3Qr
PSJcbiI7fX0KdGhpcy52YWx1ZT10aGlzLnZhbHVlLnN1YnN0cmluZygwLHN0YXJ0
UG9zKStvcHRpb25zLnByZStzZWxUZXh0K29wdGlvbnMucG9zdCsKdGhpcy52YWx1
ZS5zdWJzdHJpbmcoZW5kUG9zLHRoaXMudmFsdWUubGVuZ3RoKTt0aGlzLnNjcm9s
bFRvcD1zY3JvbGxUb3A7aWYod2luZG93Lm9wZXJhKXtvcHRpb25zLnByZT1vcHRp
b25zLnByZS5yZXBsYWNlKC9ccj9cbi9nLCJcclxuIik7c2VsVGV4dD1zZWxUZXh0
LnJlcGxhY2UoL1xyP1xuL2csIlxyXG4iKTtvcHRpb25zLnBvc3Q9b3B0aW9ucy5w
b3N0LnJlcGxhY2UoL1xyP1xuL2csIlxyXG4iKTt9CmlmKGlzU2FtcGxlJiZvcHRp
b25zLnNlbGVjdFBlcmkpe3RoaXMuc2VsZWN0aW9uU3RhcnQ9c3RhcnRQb3Mrb3B0
aW9ucy5wcmUubGVuZ3RoO3RoaXMuc2VsZWN0aW9uRW5kPXN0YXJ0UG9zK29wdGlv
bnMucHJlLmxlbmd0aCtzZWxUZXh0Lmxlbmd0aDt9ZWxzZXt0aGlzLnNlbGVjdGlv
blN0YXJ0PXN0YXJ0UG9zK29wdGlvbnMucHJlLmxlbmd0aCtzZWxUZXh0Lmxlbmd0
aCsKb3B0aW9ucy5wb3N0Lmxlbmd0aDt0aGlzLnNlbGVjdGlvbkVuZD10aGlzLnNl
bGVjdGlvblN0YXJ0O319ZWxzZSBpZihkb2N1bWVudC5zZWxlY3Rpb24mJmRvY3Vt
ZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSl7JCh0aGlzKS5mb2N1cygpO2lmKGNv
bnRleHQpe2NvbnRleHQuZm4ucmVzdG9yZVN0dWZmRm9ySUUoKTt9CnZhciBzZWxU
ZXh0PSQodGhpcykudGV4dFNlbGVjdGlvbignZ2V0U2VsZWN0aW9uJyk7dmFyIHNj
cm9sbFRvcD10aGlzLnNjcm9sbFRvcDt2YXIgcmFuZ2U9ZG9jdW1lbnQuc2VsZWN0
aW9uLmNyZWF0ZVJhbmdlKCk7aWYob3B0aW9ucy5vd25saW5lJiZyYW5nZS5tb3Zl
U3RhcnQpe3ZhciByYW5nZTI9ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdl
KCk7cmFuZ2UyLmNvbGxhcHNlKCk7cmFuZ2UyLm1vdmVTdGFydCgnY2hhcmFjdGVy
JywtMSk7aWYocmFuZ2UyLnRleHQhPSJcciImJnJhbmdlMi50ZXh0IT0iXG4iJiZy
YW5nZTIudGV4dCE9IiIpe29wdGlvbnMucHJlPSJcbiIrb3B0aW9ucy5wcmU7fQp2
YXIgcmFuZ2UzPWRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO3Jhbmdl
My5jb2xsYXBzZShmYWxzZSk7cmFuZ2UzLm1vdmVFbmQoJ2NoYXJhY3RlcicsMSk7
aWYocmFuZ2UzLnRleHQhPSJcciImJnJhbmdlMy50ZXh0IT0iXG4iJiZyYW5nZTMu
dGV4dCE9IiIpe29wdGlvbnMucG9zdCs9IlxuIjt9fQpjaGVja1NlbGVjdGVkVGV4
dCgpO3JhbmdlLnRleHQ9b3B0aW9ucy5wcmUrc2VsVGV4dCtvcHRpb25zLnBvc3Q7
aWYoaXNTYW1wbGUmJm9wdGlvbnMuc2VsZWN0UGVyaSYmcmFuZ2UubW92ZVN0YXJ0
KXtyYW5nZS5tb3ZlU3RhcnQoJ2NoYXJhY3RlcicsLW9wdGlvbnMucG9zdC5sZW5n
dGgtc2VsVGV4dC5sZW5ndGgpO3JhbmdlLm1vdmVFbmQoJ2NoYXJhY3RlcicsLW9w
dGlvbnMucG9zdC5sZW5ndGgpO30KcmFuZ2Uuc2VsZWN0KCk7dGhpcy5zY3JvbGxU
b3A9c2Nyb2xsVG9wO30KJCh0aGlzKS50cmlnZ2VyKCdlbmNhcHN1bGF0ZVNlbGVj
dGlvbicsW29wdGlvbnMucHJlLG9wdGlvbnMucGVyaSxvcHRpb25zLnBvc3Qsb3B0
aW9ucy5vd25saW5lLG9wdGlvbnMucmVwbGFjZV0pO30pO30sZ2V0Q2FyZXRQb3Np
dGlvbjpmdW5jdGlvbihvcHRpb25zKXtmdW5jdGlvbiBnZXRDYXJldChlKXt2YXIg
Y2FyZXRQb3M9MCxlbmRQb3M9MDtpZigkLmJyb3dzZXIubXNpZSl7dmFyIHByZUZp
bmlzaGVkPWZhbHNlO3ZhciBwZXJpRmluaXNoZWQ9ZmFsc2U7dmFyIHBvc3RGaW5p
c2hlZD1mYWxzZTt2YXIgcHJlVGV4dCxyYXdQcmVUZXh0LHBlcmlUZXh0O3ZhciBy
YXdQZXJpVGV4dCxwb3N0VGV4dCxyYXdQb3N0VGV4dDt2YXIgcGVyaVJhbmdlPWRv
Y3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpLmR1cGxpY2F0ZSgpO3ZhciBw
cmVSYW5nZT1kb2N1bWVudC5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpO3ByZVJhbmdl
Lm1vdmVUb0VsZW1lbnRUZXh0KGUpO3ByZVJhbmdlLnNldEVuZFBvaW50KCJFbmRU
b1N0YXJ0IixwZXJpUmFuZ2UpO3ZhciBwb3N0UmFuZ2U9ZG9jdW1lbnQuYm9keS5j
cmVhdGVUZXh0UmFuZ2UoKTtwb3N0UmFuZ2UubW92ZVRvRWxlbWVudFRleHQoZSk7
cG9zdFJhbmdlLnNldEVuZFBvaW50KCJTdGFydFRvRW5kIixwZXJpUmFuZ2UpO3By
ZVRleHQ9cmF3UHJlVGV4dD1wcmVSYW5nZS50ZXh0O3BlcmlUZXh0PXJhd1BlcmlU
ZXh0PXBlcmlSYW5nZS50ZXh0O3Bvc3RUZXh0PXJhd1Bvc3RUZXh0PXBvc3RSYW5n
ZS50ZXh0O2Rve2lmKCFwcmVGaW5pc2hlZCl7aWYocHJlUmFuZ2UuY29tcGFyZUVu
ZFBvaW50cygiU3RhcnRUb0VuZCIscHJlUmFuZ2UpPT0wKXtwcmVGaW5pc2hlZD10
cnVlO31lbHNle3ByZVJhbmdlLm1vdmVFbmQoImNoYXJhY3RlciIsLTEpCmlmKHBy
ZVJhbmdlLnRleHQ9PXByZVRleHQpe3Jhd1ByZVRleHQrPSJcclxuIjt9ZWxzZXtw
cmVGaW5pc2hlZD10cnVlO319fQppZighcGVyaUZpbmlzaGVkKXtpZihwZXJpUmFu
Z2UuY29tcGFyZUVuZFBvaW50cygiU3RhcnRUb0VuZCIscGVyaVJhbmdlKT09MCl7
cGVyaUZpbmlzaGVkPXRydWU7fWVsc2V7cGVyaVJhbmdlLm1vdmVFbmQoImNoYXJh
Y3RlciIsLTEpCmlmKHBlcmlSYW5nZS50ZXh0PT1wZXJpVGV4dCl7cmF3UGVyaVRl
eHQrPSJcclxuIjt9ZWxzZXtwZXJpRmluaXNoZWQ9dHJ1ZTt9fX0KaWYoIXBvc3RG
aW5pc2hlZCl7aWYocG9zdFJhbmdlLmNvbXBhcmVFbmRQb2ludHMoIlN0YXJ0VG9F
bmQiLHBvc3RSYW5nZSk9PTApe3Bvc3RGaW5pc2hlZD10cnVlO31lbHNle3Bvc3RS
YW5nZS5tb3ZlRW5kKCJjaGFyYWN0ZXIiLC0xKQppZihwb3N0UmFuZ2UudGV4dD09
cG9zdFRleHQpe3Jhd1Bvc3RUZXh0Kz0iXHJcbiI7fWVsc2V7cG9zdEZpbmlzaGVk
PXRydWU7fX19fXdoaWxlKCghcHJlRmluaXNoZWR8fCFwZXJpRmluaXNoZWR8fCFw
b3N0RmluaXNoZWQpKTtjYXJldFBvcz1yYXdQcmVUZXh0LnJlcGxhY2UoL1xyXG4v
ZywiXG4iKS5sZW5ndGg7ZW5kUG9zPWNhcmV0UG9zK3Jhd1BlcmlUZXh0LnJlcGxh
Y2UoL1xyXG4vZywiXG4iKS5sZW5ndGg7fWVsc2UgaWYoZS5zZWxlY3Rpb25TdGFy
dHx8ZS5zZWxlY3Rpb25TdGFydD09JzAnKXtjYXJldFBvcz1lLnNlbGVjdGlvblN0
YXJ0O2VuZFBvcz1lLnNlbGVjdGlvbkVuZDt9CnJldHVybiBvcHRpb25zLnN0YXJ0
QW5kRW5kP1tjYXJldFBvcyxlbmRQb3NdOmNhcmV0UG9zO30KcmV0dXJuIGdldENh
cmV0KHRoaXMuZ2V0KDApKTt9LHNldFNlbGVjdGlvbjpmdW5jdGlvbihvcHRpb25z
KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoJCh0aGlzKS5pcygnOmhp
ZGRlbicpKXt9ZWxzZSBpZih0aGlzLnNlbGVjdGlvblN0YXJ0fHx0aGlzLnNlbGVj
dGlvblN0YXJ0PT0nMCcpe2lmKG9wdGlvbnMuc3RhcnQ+dGhpcy5zZWxlY3Rpb25F
bmQpe3RoaXMuc2VsZWN0aW9uRW5kPW9wdGlvbnMuZW5kO3RoaXMuc2VsZWN0aW9u
U3RhcnQ9b3B0aW9ucy5zdGFydDt9ZWxzZXt0aGlzLnNlbGVjdGlvblN0YXJ0PW9w
dGlvbnMuc3RhcnQ7dGhpcy5zZWxlY3Rpb25FbmQ9b3B0aW9ucy5lbmQ7fX1lbHNl
IGlmKGRvY3VtZW50LmJvZHkuY3JlYXRlVGV4dFJhbmdlKXt2YXIgc2VsZWN0aW9u
PWRvY3VtZW50LmJvZHkuY3JlYXRlVGV4dFJhbmdlKCk7c2VsZWN0aW9uLm1vdmVU
b0VsZW1lbnRUZXh0KHRoaXMpO3ZhciBsZW5ndGg9dGhpcy52YWx1ZS5sZW5ndGg7
dmFyIG5ld0xpbmVzPXRoaXMudmFsdWUubWF0Y2goL1xuL2cpO2lmKG5ld0xpbmVz
KWxlbmd0aD1sZW5ndGgtbmV3TGluZXMubGVuZ3RoO3NlbGVjdGlvbi5tb3ZlU3Rh
cnQoJ2NoYXJhY3Rlcicsb3B0aW9ucy5zdGFydCk7c2VsZWN0aW9uLm1vdmVFbmQo
J2NoYXJhY3RlcicsLWxlbmd0aCtvcHRpb25zLmVuZCk7dHJ5e3NlbGVjdGlvbi5z
ZWxlY3QoKTt9Y2F0Y2goZSl7fX19KTt9LHNjcm9sbFRvQ2FyZXRQb3NpdGlvbjpm
dW5jdGlvbihvcHRpb25zKXtmdW5jdGlvbiBnZXRMaW5lTGVuZ3RoKGUpe3JldHVy
biBNYXRoLmZsb29yKGUuc2Nyb2xsV2lkdGgvKCQub3MubmFtZT09J2xpbnV4Jz83
OjgpKTt9CmZ1bmN0aW9uIGdldENhcmV0U2Nyb2xsUG9zaXRpb24oZSl7dmFyIHRl
eHQ9ZS52YWx1ZS5yZXBsYWNlKC9cci9nLCIiKTt2YXIgY2FyZXQ9JChlKS50ZXh0
U2VsZWN0aW9uKCdnZXRDYXJldFBvc2l0aW9uJyk7dmFyIGxpbmVMZW5ndGg9Z2V0
TGluZUxlbmd0aChlKTt2YXIgcm93PTA7dmFyIGNoYXJJbkxpbmU9MDt2YXIgbGFz
dFNwYWNlSW5MaW5lPTA7Zm9yKGk9MDtpPGNhcmV0O2krKyl7Y2hhckluTGluZSsr
O2lmKHRleHQuY2hhckF0KGkpPT0iICIpe2xhc3RTcGFjZUluTGluZT1jaGFySW5M
aW5lO31lbHNlIGlmKHRleHQuY2hhckF0KGkpPT0iXG4iKXtsYXN0U3BhY2VJbkxp
bmU9MDtjaGFySW5MaW5lPTA7cm93Kys7fQppZihjaGFySW5MaW5lPmxpbmVMZW5n
dGgpe2lmKGxhc3RTcGFjZUluTGluZT4wKXtjaGFySW5MaW5lPWNoYXJJbkxpbmUt
bGFzdFNwYWNlSW5MaW5lO2xhc3RTcGFjZUluTGluZT0wO3JvdysrO319fQp2YXIg
bmV4dFNwYWNlPTA7Zm9yKGo9Y2FyZXQ7ajxjYXJldCtsaW5lTGVuZ3RoO2orKyl7
aWYodGV4dC5jaGFyQXQoaik9PSIgInx8dGV4dC5jaGFyQXQoaik9PSJcbiJ8fGNh
cmV0PT10ZXh0Lmxlbmd0aCl7bmV4dFNwYWNlPWo7YnJlYWs7fX0KaWYobmV4dFNw
YWNlPmxpbmVMZW5ndGgmJmNhcmV0PD1saW5lTGVuZ3RoKXtjaGFySW5MaW5lPWNh
cmV0LWxhc3RTcGFjZUluTGluZTtyb3crKzt9CnJldHVybigkLm9zLm5hbWU9PSdt
YWMnPzEzOigkLm9zLm5hbWU9PSdsaW51eCc/MTU6MTYpKSpyb3c7fQpyZXR1cm4g
dGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoJCh0aGlzKS5pcygnOmhpZGRlbicpKXt9
ZWxzZSBpZih0aGlzLnNlbGVjdGlvblN0YXJ0fHx0aGlzLnNlbGVjdGlvblN0YXJ0
PT0nMCcpe3ZhciBzY3JvbGw9Z2V0Q2FyZXRTY3JvbGxQb3NpdGlvbih0aGlzKTtp
ZihvcHRpb25zLmZvcmNlfHxzY3JvbGw8JCh0aGlzKS5zY3JvbGxUb3AoKXx8c2Ny
b2xsPiQodGhpcykuc2Nyb2xsVG9wKCkrJCh0aGlzKS5oZWlnaHQoKSkKJCh0aGlz
KS5zY3JvbGxUb3Aoc2Nyb2xsKTt9ZWxzZSBpZihkb2N1bWVudC5zZWxlY3Rpb24m
JmRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSl7dmFyIHJhbmdlPWRvY3Vt
ZW50LmJvZHkuY3JlYXRlVGV4dFJhbmdlKCk7dmFyIHNhdmVkUmFuZ2U9ZG9jdW1l
bnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7dmFyIHBvcz0kKHRoaXMpLnRleHRT
ZWxlY3Rpb24oJ2dldENhcmV0UG9zaXRpb24nKTt2YXIgb2xkU2Nyb2xsVG9wPXRo
aXMuc2Nyb2xsVG9wO3JhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KHRoaXMpO3Jhbmdl
LmNvbGxhcHNlKCk7cmFuZ2UubW92ZSgnY2hhcmFjdGVyJyxwb3MrMSk7cmFuZ2Uu
c2VsZWN0KCk7aWYodGhpcy5zY3JvbGxUb3AhPW9sZFNjcm9sbFRvcCkKdGhpcy5z
Y3JvbGxUb3ArPXJhbmdlLm9mZnNldFRvcDtlbHNlIGlmKG9wdGlvbnMuZm9yY2Up
e3JhbmdlLm1vdmUoJ2NoYXJhY3RlcicsLTEpO3JhbmdlLnNlbGVjdCgpO30Kc2F2
ZWRSYW5nZS5zZWxlY3QoKTt9CiQodGhpcykudHJpZ2dlcignc2Nyb2xsVG9Qb3Np
dGlvbicpO30pO319O3N3aXRjaChjb21tYW5kKXtjYXNlJ2VuY2Fwc3VsYXRlU2Vs
ZWN0aW9uJzpvcHRpb25zPSQuZXh0ZW5kKHsncHJlJzonJywncGVyaSc6JycsJ3Bv
c3QnOicnLCdvd25saW5lJzpmYWxzZSwncmVwbGFjZSc6ZmFsc2UsJ3NlbGVjdFBl
cmknOnRydWV9LG9wdGlvbnMpO2JyZWFrO2Nhc2UnZ2V0Q2FyZXRQb3NpdGlvbic6
b3B0aW9ucz0kLmV4dGVuZCh7J3N0YXJ0QW5kRW5kJzpmYWxzZX0sb3B0aW9ucyk7
YnJlYWs7Y2FzZSdzZXRTZWxlY3Rpb24nOm9wdGlvbnM9JC5leHRlbmQoeydzdGFy
dCc6dW5kZWZpbmVkLCdlbmQnOnVuZGVmaW5lZCwnc3RhcnRDb250YWluZXInOnVu
ZGVmaW5lZCwnZW5kQ29udGFpbmVyJzp1bmRlZmluZWR9LG9wdGlvbnMpO2lmKG9w
dGlvbnMuZW5kPT09dW5kZWZpbmVkKQpvcHRpb25zLmVuZD1vcHRpb25zLnN0YXJ0
O2lmKG9wdGlvbnMuZW5kQ29udGFpbmVyPT11bmRlZmluZWQpCm9wdGlvbnMuZW5k
Q29udGFpbmVyPW9wdGlvbnMuc3RhcnRDb250YWluZXI7YnJlYWs7Y2FzZSdzY3Jv
bGxUb0NhcmV0UG9zaXRpb24nOm9wdGlvbnM9JC5leHRlbmQoeydmb3JjZSc6ZmFs
c2V9LG9wdGlvbnMpO2JyZWFrO30KdmFyIGNvbnRleHQ9JCh0aGlzKS5kYXRhKCd3
aWtpRWRpdG9yLWNvbnRleHQnKTt2YXIgaGFzSWZyYW1lPWNvbnRleHQhPT11bmRl
ZmluZWQmJmNvbnRleHQuJGlmcmFtZSE9PXVuZGVmaW5lZDt2YXIgbmVlZFNhdmU9
ZmFsc2U7aWYoaGFzSWZyYW1lJiZjb250ZXh0LnNhdmVkU2VsZWN0aW9uIT09bnVs
bCl7Y29udGV4dC5mbi5yZXN0b3JlU2VsZWN0aW9uKCk7bmVlZFNhdmU9dHJ1ZTt9
CnJldHZhbD0oaGFzSWZyYW1lP2NvbnRleHQuZm46Zm4pW2NvbW1hbmRdLmNhbGwo
dGhpcyxvcHRpb25zKTtpZihoYXNJZnJhbWUmJm5lZWRTYXZlKXtjb250ZXh0LmZu
LnNhdmVTZWxlY3Rpb24oKTt9CnJldHVybiByZXR2YWw7fTt9KShqUXVlcnkpOyhm
dW5jdGlvbigkKXskLndpa2lFZGl0b3I9eydtb2R1bGVzJzp7fSwnaW5zdGFuY2Vz
JzpbXSwnYnJvd3NlcnMnOnsnbHRyJzp7J21zaWUnOltbJz49Jyw3XV0sJ2ZpcmVm
b3gnOltbJz49JywyXV0sJ29wZXJhJzpbWyc+PScsOS42XV0sJ3NhZmFyaSc6W1sn
Pj0nLDNdXSwnY2hyb21lJzpbWyc+PScsM11dLCduZXRzY2FwZSc6W1snPj0nLDld
XSwnYmxhY2tiZXJyeSc6ZmFsc2UsJ2lwb2QnOmZhbHNlLCdpcGhvbmUnOmZhbHNl
fSwncnRsJzp7J21zaWUnOltbJz49Jyw4XV0sJ2ZpcmVmb3gnOltbJz49JywyXV0s
J29wZXJhJzpbWyc+PScsOS42XV0sJ3NhZmFyaSc6W1snPj0nLDNdXSwnY2hyb21l
JzpbWyc+PScsM11dLCduZXRzY2FwZSc6W1snPj0nLDldXSwnYmxhY2tiZXJyeSc6
ZmFsc2UsJ2lwb2QnOmZhbHNlLCdpcGhvbmUnOmZhbHNlfX0sJ2ltZ1BhdGgnOndn
U2NyaXB0UGF0aCsnL2V4dGVuc2lvbnMvVXNhYmlsaXR5SW5pdGlhdGl2ZS9pbWFn
ZXMvd2lraUVkaXRvci8nLCdpc1N1cHBvcnRlZCc6ZnVuY3Rpb24obW9kdWxlKXtp
Zihtb2R1bGUmJnR5cGVvZiBtb2R1bGUubmFtZSE9J3VuZGVmaW5lZCcmJihtb2R1
bGUubmFtZT09J3RvYyd8fG1vZHVsZS5uYW1lPT0naGlnaGxpZ2h0JykmJnR5cGVv
ZiB3Z1JlYWxseUdpdmVNZVRPQz09J3VuZGVmaW5lZCcpe3JldHVybiBtb2R1bGUu
c3VwcG9ydGVkPWZhbHNlO30KdmFyIG1vZD1tb2R1bGUmJidicm93c2VycydpbiBt
b2R1bGU/bW9kdWxlOiQud2lraUVkaXRvcjtpZih0eXBlb2YgbW9kLnN1cHBvcnRl
ZCE9PSd1bmRlZmluZWQnKXtyZXR1cm4gbW9kLnN1cHBvcnRlZDt9CnJldHVybiBt
b2Quc3VwcG9ydGVkPW13LnVzYWJpbGl0eS50ZXN0QnJvd3Nlcihtb2QuYnJvd3Nl
cnMpO30sJ2lzUmVxdWlyZWQnOmZ1bmN0aW9uKG1vZHVsZSxyZXF1aXJlbWVudCl7
aWYodHlwZW9mIG1vZHVsZVsncmVxJ10hPT0ndW5kZWZpbmVkJyl7Zm9yKHJlcSBp
biBtb2R1bGVbJ3JlcSddKXtpZihtb2R1bGVbJ3JlcSddW3JlcV09PXJlcXVpcmVt
ZW50KXtyZXR1cm4gdHJ1ZTt9fX0KcmV0dXJuIGZhbHNlO30sJ2F1dG9Nc2cnOmZ1
bmN0aW9uKG9iamVjdCxwcm9wZXJ0eSl7aWYodHlwZW9mIHByb3BlcnR5PT0nb2Jq
ZWN0Jyl7Zm9yKHZhciBpIGluIHByb3BlcnR5KXtpZihwcm9wZXJ0eVtpXWluIG9i
amVjdHx8cHJvcGVydHlbaV0rJ01zZydpbiBvYmplY3Qpe3Byb3BlcnR5PXByb3Bl
cnR5W2ldO2JyZWFrO319fQppZihwcm9wZXJ0eSBpbiBvYmplY3Qpe3JldHVybiBv
YmplY3RbcHJvcGVydHldO31lbHNlIGlmKHByb3BlcnR5KydNc2cnaW4gb2JqZWN0
KXtpZih0eXBlb2Ygb2JqZWN0W3Byb3BlcnR5KydNc2cnXT09J29iamVjdCcpe3Jl
dHVybiBtdy51c2FiaWxpdHkuZ2V0TXNnLmFwcGx5KG13LnVzYWJpbGl0eSxvYmpl
Y3RbcHJvcGVydHkrJ01zZyddKTt9ZWxzZXtyZXR1cm4gbXcudXNhYmlsaXR5Lmdl
dE1zZyhvYmplY3RbcHJvcGVydHkrJ01zZyddKTt9fWVsc2V7cmV0dXJuJyc7fX0s
J2F1dG9MYW5nJzpmdW5jdGlvbihvYmplY3QsbGFuZyl7cmV0dXJuIG9iamVjdFts
YW5nfHx3Z1VzZXJMYW5ndWFnZV18fG9iamVjdFsnZGVmYXVsdCddfHxvYmplY3Q7
fSwnYXV0b0ljb24nOmZ1bmN0aW9uKGljb24scGF0aCxsYW5nKXt2YXIgc3JjPSQu
d2lraUVkaXRvci5hdXRvTGFuZyhpY29uLGxhbmcpO3BhdGg9cGF0aHx8JC53aWtp
RWRpdG9yLmltZ1BhdGg7aWYoc3JjLnN1YnN0cigwLDcpIT0naHR0cDovLycmJnNy
Yy5zdWJzdHIoMCw4KSE9J2h0dHBzOi8vJyYmc3JjWzBdIT0nLycpe3NyYz1wYXRo
K3NyYzt9CnJldHVybiBzcmMrJz8nK3dnV2lraUVkaXRvckljb25WZXJzaW9uO30s
J2F1dG9JY29uT3JPZmZzZXQnOmZ1bmN0aW9uKGljb24sb2Zmc2V0LHBhdGgsbGFu
Zyl7bGFuZz1sYW5nfHx3Z1VzZXJMYW5ndWFnZTtpZih0eXBlb2Ygb2Zmc2V0PT0n
b2JqZWN0JyYmbGFuZyBpbiBvZmZzZXQpe3JldHVybiBvZmZzZXRbbGFuZ107fWVs
c2UgaWYodHlwZW9mIGljb249PSdvYmplY3QnJiZsYW5nIGluIGljb24pe3JldHVy
biAkLndpa2lFZGl0b3IuYXV0b0ljb24oaWNvbix1bmRlZmluZWQsbGFuZyk7fWVs
c2V7cmV0dXJuICQud2lraUVkaXRvci5hdXRvTGFuZyhvZmZzZXQsbGFuZyk7fX19
OyQuZm4ud2lraUVkaXRvcj1mdW5jdGlvbigpe2lmKCEkai53aWtpRWRpdG9yLmlz
U3VwcG9ydGVkKCkpe3JldHVybiAkKHRoaXMpO30KdmFyIGNvbnRleHQ9JCh0aGlz
KS5kYXRhKCd3aWtpRWRpdG9yLWNvbnRleHQnKTtpZighY29udGV4dHx8dHlwZW9m
IGNvbnRleHQ9PSd1bmRlZmluZWQnKXtjb250ZXh0PXsnJHRleHRhcmVhJzokKHRo
aXMpLCd2aWV3cyc6e30sJ21vZHVsZXMnOnt9LCdkYXRhJzp7fSwnaW5zdGFuY2Un
OiQud2lraUVkaXRvci5pbnN0YW5jZXMucHVzaCgkKHRoaXMpKS0xLCdvZmZzZXRz
JzpudWxsLCdodG1sVG9UZXh0TWFwJzp7fSwnb2xkSFRNTCc6bnVsbCwnb2xkRGVs
YXllZEhUTUwnOm51bGwsJ29sZERlbGF5ZWRTZWwnOm51bGwsJ3NhdmVkU2VsZWN0
aW9uJzpudWxsLCdoaXN0b3J5JzpbXSwnaGlzdG9yeVBvc2l0aW9uJzotMSwnb2xk
RGVsYXllZEhpc3RvcnlQb3NpdGlvbic6LTF9O2NvbnRleHQuYXBpPXsnYWRkTW9k
dWxlJzpmdW5jdGlvbihjb250ZXh0LGRhdGEpe3ZhciBtb2R1bGVzPXt9O2lmKHR5
cGVvZiBkYXRhPT0nc3RyaW5nJyl7bW9kdWxlc1tkYXRhXT17fTt9ZWxzZSBpZih0
eXBlb2YgZGF0YT09J29iamVjdCcpe21vZHVsZXM9ZGF0YTt9CmZvcih2YXIgbW9k
dWxlIGluIG1vZHVsZXMpe2lmKHR5cGVvZiBtb2R1bGU9PSdzdHJpbmcnJiYkLndp
a2lFZGl0b3IuaXNTdXBwb3J0ZWQoJC53aWtpRWRpdG9yLm1vZHVsZXNbbW9kdWxl
XSkpe2lmKCdhcGknaW4gJC53aWtpRWRpdG9yLm1vZHVsZXNbbW9kdWxlXSl7Zm9y
KHZhciBjYWxsIGluICQud2lraUVkaXRvci5tb2R1bGVzW21vZHVsZV0uYXBpKXtp
ZighKGNhbGwgaW4gY29udGV4dC5hcGkpKXtjb250ZXh0LmFwaVtjYWxsXT0kLndp
a2lFZGl0b3IubW9kdWxlc1ttb2R1bGVdLmFwaVtjYWxsXTt9fX0KaWYoJ2ZuJ2lu
ICQud2lraUVkaXRvci5tb2R1bGVzW21vZHVsZV0mJidjcmVhdGUnaW4gJC53aWtp
RWRpdG9yLm1vZHVsZXNbbW9kdWxlXS5mbil7Y29udGV4dC5tb2R1bGVzW21vZHVs
ZV09e307JC53aWtpRWRpdG9yLm1vZHVsZXNbbW9kdWxlXS5mbi5jcmVhdGUoY29u
dGV4dCxtb2R1bGVzW21vZHVsZV0pO319fX19O2NvbnRleHQuZXZ0PXsna2V5ZG93
bic6ZnVuY3Rpb24oZXZlbnQpe3N3aXRjaChldmVudC53aGljaCl7Y2FzZSA5Omlm
KGV2ZW50LmN0cmxLZXl8fGV2ZW50LmFsdEtleXx8ZXZlbnQuc2hpZnRLZXkpe3Jl
dHVybiB0cnVlO31lbHNle3ZhciAkdGFiaW5kZXhMaXN0PSRqKCdbdGFiaW5kZXhd
OnZpc2libGUnKS5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEudGFiSW5kZXgt
Yi50YWJJbmRleDt9KTtmb3IodmFyIGk9MDtpPCR0YWJpbmRleExpc3QubGVuZ3Ro
O2krKyl7aWYoJHRhYmluZGV4TGlzdC5lcShpKS5hdHRyKCdpZCcpPT1jb250ZXh0
LiRpZnJhbWUuYXR0cignaWQnKSl7JHRhYmluZGV4TGlzdC5nZXQoaSsxKS5mb2N1
cygpO2JyZWFrO319CnJldHVybiBmYWxzZTt9CmJyZWFrO2Nhc2UgODY6aWYoZXZl
bnQuY3RybEtleSYmJC5icm93c2VyLm1zaWUpe2NvbnRleHQuZXZ0LnBhc3RlKGV2
ZW50KTt9CmJyZWFrO30KcmV0dXJuIHRydWU7fSwnY2hhbmdlJzpmdW5jdGlvbihl
dmVudCl7ZXZlbnQuZGF0YS5zY29wZT0nZGl2aXNpb24nO3ZhciBuZXdIVE1MPWNv
bnRleHQuJGNvbnRlbnQuaHRtbCgpO2lmKGNvbnRleHQub2xkSFRNTCE9bmV3SFRN
TCl7Y29udGV4dC5mbi5wdXJnZU9mZnNldHMoKTtjb250ZXh0Lm9sZEhUTUw9bmV3
SFRNTDtldmVudC5kYXRhLnNjb3BlPSdyZWFsY2hhbmdlJzt9CmlmKGNvbnRleHQu
JGNvbnRlbnQuY2hpbGRyZW4oKS5sZW5ndGg9PTApe2NvbnRleHQuJGNvbnRlbnQu
YXBwZW5kKCc8cD48L3A+Jyk7fQpyZXR1cm4gdHJ1ZTt9LCdkZWxheWVkQ2hhbmdl
JzpmdW5jdGlvbihldmVudCl7ZXZlbnQuZGF0YS5zY29wZT0nZGl2aXNpb24nO3Zh
ciBuZXdIVE1MPWNvbnRleHQuJGNvbnRlbnQuaHRtbCgpO2lmKGNvbnRleHQub2xk
RGVsYXllZEhUTUwhPW5ld0hUTUwpe2NvbnRleHQub2xkRGVsYXllZEhUTUw9bmV3
SFRNTDtldmVudC5kYXRhLnNjb3BlPSdyZWFsY2hhbmdlJzt2YXIgY3Vyc29yUG9z
PWNvbnRleHQuZm4uZ2V0Q2FyZXRQb3NpdGlvbigpO3ZhciB0PWNvbnRleHQuZm4u
Z2V0T2Zmc2V0KGN1cnNvclBvc1swXSk7aWYoISQuYnJvd3Nlci5tc2llJiZ0JiZ0
Lm5vZGUubm9kZU5hbWU9PScjdGV4dCcmJnQubm9kZS5wYXJlbnROb2RlLm5vZGVO
YW1lLnRvTG93ZXJDYXNlKCk9PSdib2R5Jyl7JCh0Lm5vZGUpLndyYXAoIjxwPjwv
cD4iKTtjb250ZXh0LmZuLnB1cmdlT2Zmc2V0cygpO2NvbnRleHQuZm4uc2V0U2Vs
ZWN0aW9uKHtzdGFydDpjdXJzb3JQb3NbMF0sZW5kOmN1cnNvclBvc1sxXX0pO319
CmNvbnRleHQuZm4udXBkYXRlSGlzdG9yeShldmVudC5kYXRhLnNjb3BlPT0ncmVh
bGNoYW5nZScpO3JldHVybiB0cnVlO30sJ2N1dCc6ZnVuY3Rpb24oZXZlbnQpe3Nl
dFRpbWVvdXQoZnVuY3Rpb24oKXtjb250ZXh0LiRjb250ZW50LmZpbmQoJ2JyJyku
ZWFjaChmdW5jdGlvbigpe2lmKCQodGhpcykucGFyZW50KCkuaXMoJ2JvZHknKSl7
JCh0aGlzKS53cmFwKCQoJzxwPjwvcD4nKSk7fX0pO30sMTAwKTtyZXR1cm4gdHJ1
ZTt9LCdwYXN0ZSc6ZnVuY3Rpb24oZXZlbnQpe3ZhciBjdXJzb3JQb3M9Y29udGV4
dC5mbi5nZXRDYXJldFBvc2l0aW9uKCk7dmFyIG9mZnNldD0wO3ZhciBvbGRMZW5n
dGg9Y29udGV4dC5mbi5nZXRDb250ZW50cygpLmxlbmd0aDtjb250ZXh0LiRjb250
ZW50LmZpbmQoJyonKS5hZGRDbGFzcygnd2lraUVkaXRvcicpO2lmKCQubGF5b3V0
Lm5hbWUhPT0nd2Via2l0Jyl7Y29udGV4dC4kY29udGVudC5hZGRDbGFzcygncGFz
dGluZycpO30Kc2V0VGltZW91dChmdW5jdGlvbigpe2NvbnRleHQuJGNvbnRlbnQu
ZmluZCgnc2NyaXB0LHN0eWxlLGltZyxpbnB1dCxzZWxlY3QsdGV4dGFyZWEsaHIs
YnV0dG9uLGxpbmssbWV0YScpLnJlbW92ZSgpO3ZhciAkc2VsZWN0aW9uPWNvbnRl
eHQuJGNvbnRlbnQuZmluZCgnOm5vdCgud2lraUVkaXRvciknKTt2YXIgbm9kZVRv
RGVsZXRlPVtdO3ZhciBmaXJzdERpcnR5Tm9kZTtpZigkc2VsZWN0aW9uLmxlbmd0
aD09MCl7Zmlyc3REaXJ0eU5vZGU9Y29udGV4dC5mbi5nZXRPZmZzZXQoY3Vyc29y
UG9zWzBdKS5ub2RlO31lbHNle2ZpcnN0RGlydHlOb2RlPSRzZWxlY3Rpb24uZXEo
MClbMF07fQp3aGlsZShmaXJzdERpcnR5Tm9kZSE9bnVsbCl7d2hpbGUoZmlyc3RE
aXJ0eU5vZGUucGFyZW50Tm9kZS5ub2RlTmFtZSE9J0JPRFknJiYhJChmaXJzdERp
cnR5Tm9kZS5wYXJlbnROb2RlKS5oYXNDbGFzcygnd2lraUVkaXRvcicpKXtmaXJz
dERpcnR5Tm9kZT1maXJzdERpcnR5Tm9kZS5wYXJlbnROb2RlO30Kd2hpbGUoZmly
c3REaXJ0eU5vZGUucHJldmlvdXNTaWJsaW5nIT1udWxsJiYhJChmaXJzdERpcnR5
Tm9kZS5wcmV2aW91c1NpYmxpbmcpLmhhc0NsYXNzKCd3aWtpRWRpdG9yJykpe2lm
KCQoZmlyc3REaXJ0eU5vZGUucHJldmlvdXNTaWJsaW5nKS5oYXNDbGFzcygnI2Nv
bW1lbnQnKSl7JChmaXJzdERpcnR5Tm9kZSkucmVtb3ZlKCk7fWVsc2V7Zmlyc3RE
aXJ0eU5vZGU9Zmlyc3REaXJ0eU5vZGUucHJldmlvdXNTaWJsaW5nO319CnZhciAk
bGFzdERpcnR5Tm9kZT0kKGZpcnN0RGlydHlOb2RlKTt2YXIgY2M9bWFrZUNvbnRl
bnRDb2xsZWN0b3IoJC5icm93c2VyLG51bGwpO3doaWxlKGZpcnN0RGlydHlOb2Rl
IT1udWxsJiYhJChmaXJzdERpcnR5Tm9kZSkuaGFzQ2xhc3MoJ3dpa2lFZGl0b3In
KSl7Y2MuY29sbGVjdENvbnRlbnQoZmlyc3REaXJ0eU5vZGUpO2NjLm5vdGlmeU5l
eHROb2RlKGZpcnN0RGlydHlOb2RlLm5leHRTaWJsaW5nKTtwYXN0ZWRDb250ZW50
PWNjLmdldExpbmVzKCk7aWYoKHBhc3RlZENvbnRlbnQubGVuZ3RoPD0xfHxwYXN0
ZWRDb250ZW50W3Bhc3RlZENvbnRlbnQubGVuZ3RoLTFdIT09IiIpJiZmaXJzdERp
cnR5Tm9kZS5uZXh0U2libGluZyl7bm9kZVRvRGVsZXRlLnB1c2goZmlyc3REaXJ0
eU5vZGUpO2ZpcnN0RGlydHlOb2RlPWZpcnN0RGlydHlOb2RlLm5leHRTaWJsaW5n
O2NjLmNvbGxlY3RDb250ZW50KGZpcnN0RGlydHlOb2RlKTtjYy5ub3RpZnlOZXh0
Tm9kZShmaXJzdERpcnR5Tm9kZS5uZXh0U2libGluZyk7fQpub2RlVG9EZWxldGUu
cHVzaChmaXJzdERpcnR5Tm9kZSk7Zmlyc3REaXJ0eU5vZGU9Zmlyc3REaXJ0eU5v
ZGUubmV4dFNpYmxpbmc7fQp2YXIgY2NEYXRhPWNjLmZpbmlzaCgpO3ZhciBwYXN0
ZWRDb250ZW50PWNjRGF0YS5saW5lcztpZihwYXN0ZWRDb250ZW50Lmxlbmd0aD09
MCYmZmlyc3REaXJ0eU5vZGUpe29mZnNldCs9JChmaXJzdERpcnR5Tm9kZSkudGV4
dCgpLmxlbmd0aDt9CmlmKG5vZGVUb0RlbGV0ZS5sZW5ndGg+MCl7JGxhc3REaXJ0
eU5vZGU9JChub2RlVG9EZWxldGVbbm9kZVRvRGVsZXRlLmxlbmd0aC0xXSk7fQp2
YXIgdGVzdFZhbD0nJzt0ZXN0VmFsPSQobm9kZVRvRGVsZXRlWzBdKS50ZXh0KCk7
dmFyIHBhc3RlZFByZXR0eT0nJztmb3IodmFyIGk9MDtpPHBhc3RlZENvbnRlbnQu
bGVuZ3RoO2krKyl7cGFzdGVkUHJldHR5PXBhc3RlZENvbnRlbnRbaV0ucmVwbGFj
ZSgvJi9nLCcmYW1wOycpLnJlcGxhY2UoLzwvZywnJmx0OycpLnJlcGxhY2UoLz4v
ZywnJmd0OycpLnJlcGxhY2UoL1xyP1xuL2csJ1xcbicpO21hdGNoPXBhc3RlZENv
bnRlbnRbaV0ubWF0Y2goL15bXHNdK1teXHNdLyk7aWYobWF0Y2ghPW51bGwmJm1h
dGNoLmxlbmd0aD4wKXtpbmRleD1tYXRjaFswXS5sZW5ndGg7bGVhZGluZ1NwYWNl
PW1hdGNoWzBdLnJlcGxhY2UoL1tcc10vZywnJm5ic3A7Jyk7cGFzdGVkUHJldHR5
PWxlYWRpbmdTcGFjZStwYXN0ZWRQcmV0dHkuc3Vic3RyaW5nKGluZGV4LHBhc3Rl
ZFByZXR0eS5sZW5ndGgpO30KJG5ld0VsZW1lbnQ9JCgnPHAgY2xhc3M9Indpa2lF
ZGl0b3IiID48L3A+Jyk7aWYocGFzdGVkUHJldHR5KXskbmV3RWxlbWVudC5odG1s
KCc8c3BhbiBjbGFzcyA9ICJ3aWtpRWRpdG9yIj4nK3Bhc3RlZFByZXR0eSsnPC9z
cGFuPicpO31lbHNleyRuZXdFbGVtZW50Lmh0bWwoJzxiciBjbGFzcz0id2lraUVk
aXRvciI+Jyk7fQokbmV3RWxlbWVudC5pbnNlcnRBZnRlcigkbGFzdERpcnR5Tm9k
ZSk7b2Zmc2V0Kz1wYXN0ZWRQcmV0dHkubGVuZ3RoOyRsYXN0RGlydHlOb2RlPSRu
ZXdFbGVtZW50O30Kd2hpbGUobm9kZVRvRGVsZXRlLmxlbmd0aD4wKXskKG5vZGVU
b0RlbGV0ZS5wb3AoKSkucmVtb3ZlKCk7fQokc2VsZWN0aW9uPWNvbnRleHQuJGNv
bnRlbnQuZmluZCgnOm5vdCgud2lraUVkaXRvciknKTtpZigkc2VsZWN0aW9uLmxl
bmd0aD09MCl7Zmlyc3REaXJ0eU5vZGU9bnVsbDt9ZWxzZXtmaXJzdERpcnR5Tm9k
ZT0kc2VsZWN0aW9uLmVxKDApWzBdO319CmNvbnRleHQuJGNvbnRlbnQuZmluZCgn
Lndpa2lFZGl0b3InKS5yZW1vdmVDbGFzcygnd2lraUVkaXRvcicpO3ZhciByZXN0
b3JlVG89Y3Vyc29yUG9zWzFdK29mZnNldDtjb250ZXh0LmZuLnNldFNlbGVjdGlv
bih7c3RhcnQ6cmVzdG9yZVRvLGVuZDpyZXN0b3JlVG99KTt9LDApO3JldHVybiB0
cnVlO30sJ3JlYWR5JzpmdW5jdGlvbihldmVudCl7Y29udGV4dC5oaXN0b3J5LnB1
c2goeydodG1sJzpjb250ZXh0LiRjb250ZW50Lmh0bWwoKSwnc2VsJzpjb250ZXh0
LmZuLmdldENhcmV0UG9zaXRpb24oKX0pO3JldHVybiB0cnVlO319O2NvbnRleHQu
Zm49eyd0cmlnZ2VyJzpmdW5jdGlvbihuYW1lLGV2ZW50KXtpZih0eXBlb2YgZXZl
bnQ9PSd1bmRlZmluZWQnKXtldmVudD17J3R5cGUnOidjdXN0b20nfTt9CmlmKHR5
cGVvZiBldmVudC5kYXRhPT0ndW5kZWZpbmVkJyl7ZXZlbnQuZGF0YT17fTt9Cmlm
KG5hbWUgaW4gY29udGV4dC5ldnQpe2lmKCFjb250ZXh0LmV2dFtuYW1lXShldmVu
dCkpe3JldHVybiBmYWxzZTt9fQp2YXIgcmV0dXJuRnJvbU1vZHVsZXM9bnVsbDtm
b3IodmFyIG1vZHVsZSBpbiBjb250ZXh0Lm1vZHVsZXMpe2lmKG1vZHVsZSBpbiAk
Lndpa2lFZGl0b3IubW9kdWxlcyYmJ2V2dCdpbiAkLndpa2lFZGl0b3IubW9kdWxl
c1ttb2R1bGVdJiZuYW1lIGluICQud2lraUVkaXRvci5tb2R1bGVzW21vZHVsZV0u
ZXZ0KXt2YXIgcmV0PSQud2lraUVkaXRvci5tb2R1bGVzW21vZHVsZV0uZXZ0W25h
bWVdKGNvbnRleHQsZXZlbnQpO2lmKHJldCE9bnVsbCl7aWYocmV0dXJuRnJvbU1v
ZHVsZXM9PW51bGwpe3JldHVybkZyb21Nb2R1bGVzPXJldDt9ZWxzZXtyZXR1cm5G
cm9tTW9kdWxlcz1yZXR1cm5Gcm9tTW9kdWxlcyYmcmV0O319fX0KaWYocmV0dXJu
RnJvbU1vZHVsZXMhPW51bGwpe3JldHVybiByZXR1cm5Gcm9tTW9kdWxlczt9ZWxz
ZXtyZXR1cm4gdHJ1ZTt9fSwnYWRkQnV0dG9uJzpmdW5jdGlvbihvcHRpb25zKXtj
b250ZXh0LiRjb250cm9scy5zaG93KCk7Y29udGV4dC4kYnV0dG9ucy5zaG93KCk7
cmV0dXJuICQoJzxidXR0b24gLz4nKS50ZXh0KCQud2lraUVkaXRvci5hdXRvTXNn
KG9wdGlvbnMsJ2NhcHRpb24nKSkuY2xpY2sob3B0aW9ucy5hY3Rpb24pLmFwcGVu
ZFRvKGNvbnRleHQuJGJ1dHRvbnMpO30sJ2FkZFZpZXcnOmZ1bmN0aW9uKG9wdGlv
bnMpe2Z1bmN0aW9uIGFkZFRhYihvcHRpb25zKXtjb250ZXh0LiRjb250cm9scy5z
aG93KCk7Y29udGV4dC4kdGFicy5zaG93KCk7cmV0dXJuICQoJzxkaXY+PC9kaXY+
JykuYXR0cigncmVsJywnd2lraUVkaXRvci11aS12aWV3LScrb3B0aW9ucy5uYW1l
KS5hZGRDbGFzcyhjb250ZXh0LnZpZXc9PW9wdGlvbnMubmFtZT8nY3VycmVudCc6
bnVsbCkuYXBwZW5kKCQoJzxhPjwvYT4nKS5hdHRyKCdocmVmJywnIycpLm1vdXNl
ZG93bihmdW5jdGlvbigpe3JldHVybiBmYWxzZTt9KS5jbGljayhmdW5jdGlvbihl
dmVudCl7Y29udGV4dC4kdWkuZmluZCgnLndpa2lFZGl0b3ItdWktdmlldycpLmhp
ZGUoKTtjb250ZXh0LiR1aS5maW5kKCcuJyskKHRoaXMpLnBhcmVudCgpLmF0dHIo
J3JlbCcpKS5zaG93KCk7Y29udGV4dC4kdGFicy5maW5kKCdkaXYnKS5yZW1vdmVD
bGFzcygnY3VycmVudCcpOyQodGhpcykucGFyZW50KCkuYWRkQ2xhc3MoJ2N1cnJl
bnQnKTskKHRoaXMpLmJsdXIoKTtpZignaW5pdCdpbiBvcHRpb25zJiZ0eXBlb2Yg
b3B0aW9ucy5pbml0PT0nZnVuY3Rpb24nKXtvcHRpb25zLmluaXQoY29udGV4dCk7
fQpldmVudC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBmYWxzZTt9KS50ZXh0KCQu
d2lraUVkaXRvci5hdXRvTXNnKG9wdGlvbnMsJ3RpdGxlJykpKS5hcHBlbmRUbyhj
b250ZXh0LiR0YWJzKTt9CmlmKCFjb250ZXh0LiR0YWJzLmNoaWxkcmVuKCkuc2l6
ZSgpKXthZGRUYWIoeyduYW1lJzond2lraXRleHQnLCd0aXRsZU1zZyc6J3dpa2ll
ZGl0b3Itd2lraXRleHQtdGFiJ30pO30KYWRkVGFiKG9wdGlvbnMpO3JldHVybiAk
KCc8ZGl2PjwvZGl2PicpLmFkZENsYXNzKCd3aWtpRWRpdG9yLXVpLXZpZXcgd2lr
aUVkaXRvci11aS12aWV3LScrb3B0aW9ucy5uYW1lKS5oaWRlKCkuYXBwZW5kVG8o
Y29udGV4dC4kdWkpO30sJ2hpZ2hsaWdodExpbmUnOmZ1bmN0aW9uKCRlbGVtZW50
LG1vZGUpe2lmKCEkZWxlbWVudC5pcygncCcpKXskZWxlbWVudD0kZWxlbWVudC5j
bG9zZXN0KCdwJyk7fQokZWxlbWVudC5jc3MoJ2JhY2tncm91bmRDb2xvcicsJyNB
QUNDRkYnKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JGVsZW1lbnQuYW5pbWF0ZSh7
J2JhY2tncm91bmRDb2xvcic6J3doaXRlJ30sJ3Nsb3cnKTt9LDEwMCk7c2V0VGlt
ZW91dChmdW5jdGlvbigpeyRlbGVtZW50LmNzcygnYmFja2dyb3VuZENvbG9yJywn
d2hpdGUnKTt9LDEwMDApO30sJ2h0bWxUb1RleHQnOmZ1bmN0aW9uKGh0bWwpe2lm
KGh0bWwgaW4gY29udGV4dC5odG1sVG9UZXh0TWFwKXtyZXR1cm4gY29udGV4dC5o
dG1sVG9UZXh0TWFwW2h0bWxdO30KdmFyIG9yaWdIVE1MPWh0bWw7aHRtbD1odG1s
LnJlcGxhY2UoL1xyP1xuL2csIiIpLnJlcGxhY2UoLyZuYnNwOy9nLCIgIikucmVw
bGFjZSgvXDxiclteXD5dKlw+XDxcL3BcPi9naSwnPC9wPicpLnJlcGxhY2UoL1w8
XC9wXD5ccypcPHBbXlw+XSpcPi9naSwiXG4iKS5yZXBsYWNlKC9cPGJyW15cPl0q
XD4vZ2ksIlxuIikucmVwbGFjZSgvXDxcL3BcPihcbiopXDxwW15cPl0qXD4vZ2ks
IiQxXG4iKS5yZXBsYWNlKC9cPHBbXlw+XSpcPjxwW15cPl0qXD4vZ2ksJzxwPicp
LnJlcGxhY2UoL1w8XC9wXD48XC9wXD4vZ2ksJzwvcD4nKTt2YXIgbGVhZGluZz1o
dG1sLm1hdGNoKC9eXHMqLylbMF07dmFyIHRyYWlsaW5nPWh0bWwubWF0Y2goL1xz
KiQvKVswXTtodG1sPWh0bWwuc3Vic3RyKGxlYWRpbmcubGVuZ3RoLGh0bWwubGVu
Z3RoLWxlYWRpbmcubGVuZ3RoLXRyYWlsaW5nLmxlbmd0aCk7dmFyICRwcmU9JCgn
PHByZT4nK2h0bWwrJzwvcHJlPicpOyRwcmUuZmluZCgnLndpa2lFZGl0b3Itbm9p
bmNsdWRlJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykucmVtb3ZlKCk7fSk7JHBy
ZS5maW5kKCcud2lraUVkaXRvci10YWInKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlz
KS50ZXh0KCJcdCIpO30pOyRwcmUuZmluZCgnYnInKS5lYWNoKGZ1bmN0aW9uKCl7
JCh0aGlzKS5yZXBsYWNlV2l0aCgiXG4iKTt9KTskcHJlLmZpbmQoJ3AnKS5lYWNo
KGZ1bmN0aW9uKCl7dmFyIHRleHQ9JCh0aGlzKS50ZXh0KCk7dmFyIHQ9bmV3IGNv
bnRleHQuZm4ucmF3VHJhdmVyc2VyKHRoaXMuZmlyc3RDaGlsZCx0aGlzLCRwcmUu
Z2V0KDApLHRydWUpLnByZXYoKTt3aGlsZSh0JiZ0Lm5vZGUubm9kZU5hbWUhPScj
dGV4dCcmJnQubm9kZS5ub2RlTmFtZSE9J0JSJyYmdC5ub2RlLm5vZGVOYW1lIT0n
UCcpe3Q9dC5wcmV2KCk7fQppZih0KXt0ZXh0PSJcbiIrdGV4dDt9CnQ9bmV3IGNv
bnRleHQuZm4ucmF3VHJhdmVyc2VyKHRoaXMubGFzdENoaWxkLHRoaXMsJHByZS5n
ZXQoMCksdHJ1ZSkubmV4dCgpO3doaWxlKHQmJnQubm9kZS5ub2RlTmFtZSE9JyN0
ZXh0JyYmdC5ub2RlLm5vZGVOYW1lIT0nQlInJiZ0Lm5vZGUubm9kZU5hbWUhPSdQ
Jyl7dD10Lm5leHQoKTt9CmlmKHQmJiF0LmluUCYmdC5ub2RlLm5vZGVOYW1lPT0n
I3RleHQnJiZ0Lm5vZGUubm9kZVZhbHVlLmNoYXJBdCgwKSE9J1xuJyYmdC5ub2Rl
Lm5vZGVWYWx1ZS5jaGFyQXQoMCkhPSdccicpe3RleHQrPSJcbiI7fQokKHRoaXMp
LnRleHQodGV4dCk7fSk7dmFyIHJldHZhbDtpZigkLmJyb3dzZXIubXNpZSl7cmV0
dmFsPSQoJzxwcmU+JyskcHJlLmh0bWwoKSsnPC9wcmU+JykudGV4dCgpLnJlcGxh
Y2UoL1xyL2csJ1xuJyk7fWVsc2V7cmV0dmFsPSRwcmUudGV4dCgpO30KcmV0dXJu
IGNvbnRleHQuaHRtbFRvVGV4dE1hcFtvcmlnSFRNTF09bGVhZGluZytyZXR2YWwr
dHJhaWxpbmc7fSwnYmVmb3JlU2VsZWN0aW9uJzpmdW5jdGlvbihjbGFzc25hbWUs
c3RyaWN0KXtpZih0eXBlb2YgY2xhc3NuYW1lPT0ndW5kZWZpbmVkJyl7Y2xhc3Nu
YW1lPScnO30KdmFyIGU9bnVsbCxvZmZzZXQ9bnVsbDtpZihjb250ZXh0LiRpZnJh
bWVbMF0uY29udGVudFdpbmRvdy5nZXRTZWxlY3Rpb24pe3ZhciBzZWxlY3Rpb249
Y29udGV4dC4kaWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZ2V0U2VsZWN0aW9uKCk7
aWYoc2VsZWN0aW9uLmJhc2VOb2RlIT09bnVsbCl7ZT1zZWxlY3Rpb24uZ2V0UmFu
Z2VBdCgwKS5zdGFydENvbnRhaW5lcjtvZmZzZXQ9c2VsZWN0aW9uLmdldFJhbmdl
QXQoMCkuc3RhcnRPZmZzZXQ7fWVsc2V7cmV0dXJuIG51bGw7fQp2YXIgYm9keT1j
b250ZXh0LiRpZnJhbWVbMF0uY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5O2lm
KCQuYnJvd3Nlci5vcGVyYSYmZT09Ym9keSYmb2Zmc2V0PT0xKXtyZXR1cm4gbnVs
bDt9fQppZighZSYmY29udGV4dC4kaWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZG9j
dW1lbnQuc2VsZWN0aW9uKXt2YXIgcmFuZ2U9Y29udGV4dC4kaWZyYW1lWzBdLmNv
bnRlbnRXaW5kb3cuZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7dmFy
IHJhbmdlMj1jb250ZXh0LiRpZnJhbWVbMF0uY29udGVudFdpbmRvdy5kb2N1bWVu
dC5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpO3RyeXtyYW5nZTIuc2V0RW5kUG9pbnQo
J0VuZFRvU3RhcnQnLHJhbmdlKTt9Y2F0Y2goZXgpe3JldHVybiBudWxsO30KdmFy
IHNlZWtQb3M9Y29udGV4dC5mbi5odG1sVG9UZXh0KHJhbmdlMi5odG1sVGV4dCku
bGVuZ3RoO3ZhciBvZmZzZXQ9Y29udGV4dC5mbi5nZXRPZmZzZXQoc2Vla1Bvcyk7
ZT1vZmZzZXQ/b2Zmc2V0Lm5vZGU6bnVsbDtvZmZzZXQ9b2Zmc2V0P29mZnNldC5v
ZmZzZXQ6bnVsbDtpZighZSl7cmV0dXJuIG51bGw7fX0KaWYoZS5ub2RlTmFtZSE9
JyN0ZXh0Jyl7dmFyIG5ld0U9ZS5maXJzdENoaWxkO2Zvcih2YXIgaT0wO2k8b2Zm
c2V0LTEmJm5ld0U7aSsrKXtuZXdFPW5ld0UubmV4dFNpYmxpbmc7fQp3aGlsZShu
ZXdFJiZuZXdFLmxhc3RDaGlsZCl7bmV3RT1uZXdFLmxhc3RDaGlsZDt9CmU9bmV3
RXx8ZTt9CnZhciBjbGFzc1N0cj0nICcrY2xhc3NuYW1lKycgJzt3aGlsZShlKXtp
Zighc3RyaWN0JiYoIWNsYXNzbmFtZXx8KCcgJytlLmNsYXNzTmFtZSsnICcpLmlu
ZGV4T2YoY2xhc3NTdHIpIT0tMSkpe3JldHVybiAkKGUpO30KdmFyIG5leHQ9ZS5w
cmV2aW91c1NpYmxpbmc7d2hpbGUobmV4dCYmbmV4dC5sYXN0Q2hpbGQpe25leHQ9
bmV4dC5sYXN0Q2hpbGQ7fQplPW5leHR8fGUucGFyZW50Tm9kZTtzdHJpY3Q9ZmFs
c2U7fQpyZXR1cm4gJChbXSk7fSwncmF3VHJhdmVyc2VyJzpmdW5jdGlvbihub2Rl
LGluUCxhbmNlc3Rvcixza2lwTm9pbmNsdWRlKXt0aGlzLm5vZGU9bm9kZTt0aGlz
LmluUD1pblA7dGhpcy5hbmNlc3Rvcj1hbmNlc3Rvcjt0aGlzLnNraXBOb2luY2x1
ZGU9c2tpcE5vaW5jbHVkZTt0aGlzLm5leHQ9ZnVuY3Rpb24oKXt2YXIgcD10aGlz
Lm5vZGU7dmFyIG5leHRJblA9dGhpcy5pblA7d2hpbGUocCYmIXAubmV4dFNpYmxp
bmcpe3A9cC5wYXJlbnROb2RlO2lmKHA9PXRoaXMuYW5jZXN0b3Ipe3A9bnVsbDt9
CmlmKHAmJnAubm9kZU5hbWU9PSJQIil7bmV4dEluUD1udWxsO319CnA9cD9wLm5l
eHRTaWJsaW5nOm51bGw7aWYocCYmcC5ub2RlTmFtZT09IlAiKXtuZXh0SW5QPXA7
fQpkb3tpZih0aGlzLnNraXBOb2luY2x1ZGUpe3doaWxlKHAmJignICcrcC5jbGFz
c05hbWUrJyAnKS5pbmRleE9mKCcgd2lraUVkaXRvci1ub2luY2x1ZGUgJykhPS0x
KXtwPXAubmV4dFNpYmxpbmc7fX0KaWYocCYmcC5maXJzdENoaWxkKXtwPXAuZmly
c3RDaGlsZDtpZihwLm5vZGVOYW1lPT0iUCIpe25leHRJblA9cDt9fX13aGlsZShw
JiZwLmZpcnN0Q2hpbGQpO3JldHVybiBwP3snbm9kZSc6cCwnaW5QJzpuZXh0SW5Q
LCdhbmNlc3Rvcic6dGhpcy5hbmNlc3Rvciwnc2tpcE5vaW5jbHVkZSc6dGhpcy5z
a2lwTm9pbmNsdWRlLCduZXh0Jzp0aGlzLm5leHQsJ3ByZXYnOnRoaXMucHJldn06
bnVsbDt9O3RoaXMucHJldj1mdW5jdGlvbigpe3ZhciBwPXRoaXMubm9kZTt2YXIg
cHJldkluUD10aGlzLmluUDt3aGlsZShwJiYhcC5wcmV2aW91c1NpYmxpbmcpe3A9
cC5wYXJlbnROb2RlO2lmKHA9PXRoaXMuYW5jZXN0b3Ipe3A9bnVsbDt9CmlmKHAm
JnAubm9kZU5hbWU9PSJQIil7cHJldkluUD1udWxsO319CnA9cD9wLnByZXZpb3Vz
U2libGluZzpudWxsO2lmKHAmJnAubm9kZU5hbWU9PSJQIil7cHJldkluUD1wO30K
ZG97aWYodGhpcy5za2lwTm9pbmNsdWRlKXt3aGlsZShwJiYoJyAnK3AuY2xhc3NO
YW1lKycgJykuaW5kZXhPZignIHdpa2lFZGl0b3Itbm9pbmNsdWRlICcpIT0tMSl7
cD1wLnByZXZpb3VzU2libGluZzt9fQppZihwJiZwLmxhc3RDaGlsZCl7cD1wLmxh
c3RDaGlsZDtpZihwLm5vZGVOYW1lPT0iUCIpe3ByZXZJblA9cDt9fX13aGlsZShw
JiZwLmxhc3RDaGlsZCk7cmV0dXJuIHA/eydub2RlJzpwLCdpblAnOnByZXZJblAs
J2FuY2VzdG9yJzp0aGlzLmFuY2VzdG9yLCdza2lwTm9pbmNsdWRlJzp0aGlzLnNr
aXBOb2luY2x1ZGUsJ25leHQnOnRoaXMubmV4dCwncHJldic6dGhpcy5wcmV2fTpu
dWxsO307fSwndHJhdmVyc2VyJzpmdW5jdGlvbihzdGFydCl7dmFyIHN0YXJ0Tm9k
ZT1zdGFydC5qcXVlcnk/c3RhcnQuZ2V0KDApOnN0YXJ0O3ZhciBub2RlPXN0YXJ0
Tm9kZTt2YXIgaW5QPW5vZGUubm9kZU5hbWU9PSJQIj9ub2RlOm51bGw7ZG97d2hp
bGUobm9kZSYmKCcgJytub2RlLmNsYXNzTmFtZSsnICcpLmluZGV4T2YoJyB3aWtp
RWRpdG9yLW5vaW5jbHVkZSAnKSE9LTEpe25vZGU9bm9kZS5uZXh0U2libGluZzt9
CmlmKG5vZGUmJm5vZGUuZmlyc3RDaGlsZCl7bm9kZT1ub2RlLmZpcnN0Q2hpbGQ7
aWYobm9kZS5ub2RlTmFtZT09IlAiKXtpblA9bm9kZTt9fX13aGlsZShub2RlJiZu
b2RlLmZpcnN0Q2hpbGQpO3JldHVybiBuZXcgY29udGV4dC5mbi5yYXdUcmF2ZXJz
ZXIobm9kZSxpblAsc3RhcnROb2RlLHRydWUpO30sJ2dldE9mZnNldCc6ZnVuY3Rp
b24ob2Zmc2V0KXtpZighY29udGV4dC5vZmZzZXRzKXtjb250ZXh0LmZuLnJlZnJl
c2hPZmZzZXRzKCk7fQppZihvZmZzZXQgaW4gY29udGV4dC5vZmZzZXRzKXtyZXR1
cm4gY29udGV4dC5vZmZzZXRzW29mZnNldF07fQp2YXIgbG93ZXJCb3VuZD0tMTtm
b3IodmFyIG8gaW4gY29udGV4dC5vZmZzZXRzKXt2YXIgcmVhbE89cGFyc2VJbnQo
byk7aWYocmVhbE88b2Zmc2V0JiZyZWFsTz5sb3dlckJvdW5kKXtsb3dlckJvdW5k
PXJlYWxPO319CmlmKCEobG93ZXJCb3VuZCBpbiBjb250ZXh0Lm9mZnNldHMpKXty
ZXR1cm4gbnVsbDt9CnZhciBiYXNlPWNvbnRleHQub2Zmc2V0c1tsb3dlckJvdW5k
XTtyZXR1cm4gY29udGV4dC5vZmZzZXRzW29mZnNldF09eydub2RlJzpiYXNlLm5v
ZGUsJ29mZnNldCc6YmFzZS5vZmZzZXQrb2Zmc2V0LWxvd2VyQm91bmQsJ2xlbmd0
aCc6YmFzZS5sZW5ndGgsJ2xhc3RUZXh0Tm9kZSc6YmFzZS5sYXN0VGV4dE5vZGV9
O30sJ3B1cmdlT2Zmc2V0cyc6ZnVuY3Rpb24oKXtjb250ZXh0Lm9mZnNldHM9bnVs
bDt9LCdyZWZyZXNoT2Zmc2V0cyc6ZnVuY3Rpb24oKXtjb250ZXh0Lm9mZnNldHM9
W107dmFyIHQ9Y29udGV4dC5mbi50cmF2ZXJzZXIoY29udGV4dC4kY29udGVudCk7
dmFyIHBvcz0wLGxhc3RUZXh0Tm9kZT1udWxsO3doaWxlKHQpe2lmKHQubm9kZS5u
b2RlTmFtZSE9JyN0ZXh0JyYmdC5ub2RlLm5vZGVOYW1lIT0nQlInKXt0PXQubmV4
dCgpO2NvbnRpbnVlO30KdmFyIG5leHRQb3M9dC5ub2RlLm5vZGVOYW1lPT0nI3Rl
eHQnP3Bvcyt0Lm5vZGUubm9kZVZhbHVlLmxlbmd0aDpwb3MrMTt2YXIgbmV4dFQ9
dC5uZXh0KCk7dmFyIGxlYXZpbmdQPXQubm9kZS5ub2RlTmFtZT09JyN0ZXh0JyYm
dC5pblAmJm5leHRUJiYoIW5leHRULmluUHx8bmV4dFQuaW5QIT10LmluUCk7Y29u
dGV4dC5vZmZzZXRzW3Bvc109eydub2RlJzp0Lm5vZGUsJ29mZnNldCc6MCwnbGVu
Z3RoJzpuZXh0UG9zLXBvcysobGVhdmluZ1A/MTowKSwnbGFzdFRleHROb2RlJzps
YXN0VGV4dE5vZGV9O2lmKGxlYXZpbmdQKXtjb250ZXh0Lm9mZnNldHNbbmV4dFBv
c109eydub2RlJzp0Lm5vZGUsJ29mZnNldCc6bmV4dFBvcy1wb3MsJ2xlbmd0aCc6
bmV4dFBvcy1wb3MrMSwnbGFzdFRleHROb2RlJzpsYXN0VGV4dE5vZGV9O30KcG9z
PW5leHRQb3MrKGxlYXZpbmdQPzE6MCk7aWYodC5ub2RlLm5vZGVOYW1lPT0nI3Rl
eHQnKXtsYXN0VGV4dE5vZGU9dC5ub2RlO30KdD1uZXh0VDt9fSwnc2F2ZVNlbGVj
dGlvbic6ZnVuY3Rpb24oKXtpZighJC5icm93c2VyLm1zaWUpe3JldHVybjt9Cmlm
KHR5cGVvZiBjb250ZXh0LiRpZnJhbWUhPSd1bmRlZmluZWQnKXtjb250ZXh0LiRp
ZnJhbWVbMF0uY29udGVudFdpbmRvdy5mb2N1cygpO2NvbnRleHQuc2F2ZWRTZWxl
Y3Rpb249Y29udGV4dC4kaWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQu
c2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7fWVsc2V7Y29udGV4dC4kdGV4dGFyZWEu
Zm9jdXMoKTtjb250ZXh0LnNhdmVkU2VsZWN0aW9uPWRvY3VtZW50LnNlbGVjdGlv
bi5jcmVhdGVSYW5nZSgpO319LCdyZXN0b3JlU2VsZWN0aW9uJzpmdW5jdGlvbigp
e2lmKCEkLmJyb3dzZXIubXNpZXx8Y29udGV4dC5zYXZlZFNlbGVjdGlvbj09PW51
bGwpe3JldHVybjt9CmlmKHR5cGVvZiBjb250ZXh0LiRpZnJhbWUhPSd1bmRlZmlu
ZWQnKXtjb250ZXh0LiRpZnJhbWVbMF0uY29udGVudFdpbmRvdy5mb2N1cygpO31l
bHNle2NvbnRleHQuJHRleHRhcmVhLmZvY3VzKCk7fQpjb250ZXh0LnNhdmVkU2Vs
ZWN0aW9uLnNlbGVjdCgpO2NvbnRleHQuc2F2ZWRTZWxlY3Rpb249bnVsbDt9LCd1
cGRhdGVIaXN0b3J5JzpmdW5jdGlvbihodG1sQ2hhbmdlKXt2YXIgbmV3SFRNTD1j
b250ZXh0LiRjb250ZW50Lmh0bWwoKTt2YXIgbmV3U2VsPWNvbnRleHQuZm4uZ2V0
Q2FyZXRQb3NpdGlvbigpO2lmKGNvbnRleHQuaGlzdG9yeS5sZW5ndGg9PTB8fCho
dG1sQ2hhbmdlJiZjb250ZXh0Lm9sZERlbGF5ZWRIaXN0b3J5UG9zaXRpb249PWNv
bnRleHQuaGlzdG9yeVBvc2l0aW9uKSl7Y29udGV4dC5vbGREZWxheWVkU2VsPW5l
d1NlbDtpZihjb250ZXh0Lmhpc3RvcnlQb3NpdGlvbjwtMSl7Y29udGV4dC5oaXN0
b3J5LnNwbGljZShjb250ZXh0Lmhpc3RvcnkubGVuZ3RoK2NvbnRleHQuaGlzdG9y
eVBvc2l0aW9uKzEpO2NvbnRleHQuaGlzdG9yeVBvc2l0aW9uPS0xO30KY29udGV4
dC5oaXN0b3J5LnB1c2goeydodG1sJzpuZXdIVE1MLCdzZWwnOm5ld1NlbH0pO3do
aWxlKGNvbnRleHQuaGlzdG9yeS5sZW5ndGg+MTApe2NvbnRleHQuaGlzdG9yeS5z
aGlmdCgpO319ZWxzZSBpZihjb250ZXh0Lm9sZERlbGF5ZWRTZWwhPW5ld1NlbCl7
Y29udGV4dC5vbGREZWxheWVkU2VsPW5ld1NlbDtjb250ZXh0Lmhpc3RvcnlbY29u
dGV4dC5oaXN0b3J5Lmxlbmd0aCtjb250ZXh0Lmhpc3RvcnlQb3NpdGlvbl0uc2Vs
PW5ld1NlbDt9CmNvbnRleHQub2xkRGVsYXllZEhpc3RvcnlQb3NpdGlvbj1jb250
ZXh0Lmhpc3RvcnlQb3NpdGlvbjt9LCdzZXR1cElmcmFtZSc6ZnVuY3Rpb24oKXtj
b250ZXh0LiRpZnJhbWU9JCgnPGlmcmFtZT48L2lmcmFtZT4nKS5hdHRyKHsnZnJh
bWVCb3JkZXInOjAsJ2JvcmRlcic6MCwndGFiaW5kZXgnOjEsJ3NyYyc6d2dTY3Jp
cHRQYXRoKycvZXh0ZW5zaW9ucy9Vc2FiaWxpdHlJbml0aWF0aXZlL2pzL3BsdWdp
bnMvanF1ZXJ5Lndpa2lFZGl0b3IuaHRtbD8nKydpbnN0YW5jZT0nK2NvbnRleHQu
aW5zdGFuY2UrJyZ0cz0nKyhuZXcgRGF0ZSgpKS5nZXRUaW1lKCkrJyZpcz1jb250
ZW50JywnaWQnOid3aWtpRWRpdG9yLWlmcmFtZS0nK2NvbnRleHQuaW5zdGFuY2V9
KS5jc3MoeydiYWNrZ3JvdW5kQ29sb3InOid3aGl0ZScsJ3dpZHRoJzonMTAwJScs
J2hlaWdodCc6Y29udGV4dC4kdGV4dGFyZWEuaGVpZ2h0KCksJ2Rpc3BsYXknOidu
b25lJywnb3ZlcmZsb3cteSc6J3Njcm9sbCcsJ292ZXJmbG93LXgnOidoaWRkZW4n
fSkuaW5zZXJ0QWZ0ZXIoY29udGV4dC4kdGV4dGFyZWEpLmxvYWQoZnVuY3Rpb24o
KXtpZighdGhpcy5pc1NlY29uZFJ1bil7Y29udGV4dC4kaWZyYW1lWzBdLmNvbnRl
bnRXaW5kb3cuZG9jdW1lbnQuZGVzaWduTW9kZT0nb24nO2lmKCQuYnJvd3Nlci5t
c2llKXt0aGlzLmlzU2Vjb25kUnVuPXRydWU7cmV0dXJuO319CmNvbnRleHQuJGNv
bnRlbnQ9JChjb250ZXh0LiRpZnJhbWVbMF0uY29udGVudFdpbmRvdy5kb2N1bWVu
dC5ib2R5KTtmb3IobW9kdWxlIGluIGNvbnRleHQubW9kdWxlcyl7Y29udGV4dC4k
Y29udGVudC5hZGRDbGFzcygnd2lraUVkaXRvci0nK21vZHVsZSk7fQp2YXIgaHRt
bD1jb250ZXh0LiR0ZXh0YXJlYS52YWwoKS5yZXBsYWNlKC8mZXNjOy9nLCcmZXNj
O2VzYzsnKS5yZXBsYWNlKC9cPHBcPi9nLCcmZXNjOyZsdDtwJmd0OycpLnJlcGxh
Y2UoL1w8XC9wXD4vZywnJmVzYzsmbHQ7L3AmZ3Q7JykucmVwbGFjZSgvXDxzcGFu
IGNsYXNzPSJ3aWtpRWRpdG9yLXRhYiJcPlw8XC9zcGFuXD4vZywnJmVzYzsmbHQ7
c3BhbiZuYnNwO2NsYXNzPSZxdW90O3dpa2lFZGl0b3ItdGFiJnF1b3Q7Jmd0OyZs
dDsvc3BhbiZndDsnKS5yZXBsYWNlKC8mbmJzcDsvZywnJmVzYzsmYW1wO25ic3A7
Jyk7aWYoJC5icm93c2VyLm1zaWUpe2h0bWw9aHRtbC5yZXBsYWNlKC9cdC9nLCc8
c3BhbiBjbGFzcz0id2lraUVkaXRvci10YWIiPjwvc3Bhbj4nKTtpZigkLmJyb3dz
ZXIudmVyc2lvbk51bWJlcjw9Nyl7aHRtbD1odG1sLnJlcGxhY2UoLyAvZywiJm5i
c3A7Iik7fWVsc2V7aHRtbD1odG1sLnJlcGxhY2UoLyhefFxuKSAvZywiJDEmbmJz
cDsiKTt9fQpodG1sPSQoJzxkaXYgLz4nKS50ZXh0KCc8cD4nK2h0bWwucmVwbGFj
ZSgvXHI/XG4vZywnPC9wPjxwPicpKyc8L3A+JykuaHRtbCgpLnJlcGxhY2UoLyZh
bXA7bmJzcDsvZywnJm5ic3A7JykucmVwbGFjZSgvJmx0O3AmZ3Q7L2csJzxwPicp
LnJlcGxhY2UoLyZsdDtcL3AmZ3Q7L2csJzwvcD4nKS5yZXBsYWNlKC8mbHQ7c3Bh
biggfCZuYnNwOyljbGFzcz0oInwmcXVvdDspd2lraUVkaXRvci10YWIoInwmcXVv
dDspJmd0OyZsdDtcL3NwYW4mZ3Q7L2csJzxzcGFuIGNsYXNzPSJ3aWtpRWRpdG9y
LXRhYiI+PC9zcGFuPicpLnJlcGxhY2UoLzxwPjxcL3A+L2csJzxwPjxicj48L3A+
JykucmVwbGFjZSgvJmFtcDtlc2M7JmFtcDthbXA7bmJzcDsvZywnJmFtcDtuYnNw
OycpLnJlcGxhY2UoLyZhbXA7ZXNjOyZhbXA7bHQ7cCZhbXA7Z3Q7L2csJyZsdDtw
Jmd0OycpLnJlcGxhY2UoLyZhbXA7ZXNjOyZhbXA7bHQ7XC9wJmFtcDtndDsvZywn
Jmx0Oy9wJmd0OycpLnJlcGxhY2UoLyZhbXA7ZXNjOyZhbXA7bHQ7c3BhbiZhbXA7
bmJzcDtjbGFzcz0mYW1wO3F1b3Q7d2lraUVkaXRvci10YWImYW1wO3F1b3Q7JmFt
cDtndDsmYW1wO2x0O1wvc3BhbiZhbXA7Z3Q7L2csJyZsdDtzcGFuIGNsYXNzPSJ3
aWtpRWRpdG9yLXRhYiImZ3Q7Jmx0O1wvc3BhbiZndDsnKS5yZXBsYWNlKC8mYW1w
O2VzYztlc2M7L2csJyZhbXA7ZXNjOycpO2NvbnRleHQuJGNvbnRlbnQuaHRtbCho
dG1sKTtpZigkKCdib2R5JykuaXMoJy5ydGwnKSl7Y29udGV4dC4kY29udGVudC5h
ZGRDbGFzcygncnRsJykuYXR0cignZGlyJywncnRsJyk7fQpjb250ZXh0LiR0ZXh0
YXJlYS5hdHRyKCdkaXNhYmxlZCcsdHJ1ZSk7Y29udGV4dC4kdGV4dGFyZWEuaGlk
ZSgpO2NvbnRleHQuJGlmcmFtZS5zaG93KCk7Y29udGV4dC5mbi50cmlnZ2VyKCdy
ZWFkeScpO2NvbnRleHQub2xkSFRNTD1jb250ZXh0Lm9sZERlbGF5ZWRIVE1MPWNv
bnRleHQuJGNvbnRlbnQuaHRtbCgpOyQoY29udGV4dC4kaWZyYW1lWzBdLmNvbnRl
bnRXaW5kb3cuZG9jdW1lbnQpLmJpbmQoJ2tleWRvd24nLGZ1bmN0aW9uKGV2ZW50
KXtldmVudC5qUXVlcnlOb2RlPWNvbnRleHQuZm4uZ2V0RWxlbWVudEF0Q3Vyc29y
KCk7cmV0dXJuIGNvbnRleHQuZm4udHJpZ2dlcigna2V5ZG93bicsZXZlbnQpO30p
LmJpbmQoJ2tleXVwJyxmdW5jdGlvbihldmVudCl7ZXZlbnQualF1ZXJ5Tm9kZT1j
b250ZXh0LmZuLmdldEVsZW1lbnRBdEN1cnNvcigpO3JldHVybiBjb250ZXh0LmZu
LnRyaWdnZXIoJ2tleXVwJyxldmVudCk7fSkuYmluZCgna2V5cHJlc3MnLGZ1bmN0
aW9uKGV2ZW50KXtldmVudC5qUXVlcnlOb2RlPWNvbnRleHQuZm4uZ2V0RWxlbWVu
dEF0Q3Vyc29yKCk7cmV0dXJuIGNvbnRleHQuZm4udHJpZ2dlcigna2V5cHJlc3Mn
LGV2ZW50KTt9KS5iaW5kKCdwYXN0ZScsZnVuY3Rpb24oZXZlbnQpe3JldHVybiBj
b250ZXh0LmZuLnRyaWdnZXIoJ3Bhc3RlJyxldmVudCk7fSkuYmluZCgnY3V0Jyxm
dW5jdGlvbihldmVudCl7cmV0dXJuIGNvbnRleHQuZm4udHJpZ2dlcignY3V0Jyxl
dmVudCk7fSkuYmluZCgna2V5dXAgcGFzdGUgbW91c2V1cCBjdXQgZW5jYXBzdWxh
dGVTZWxlY3Rpb24nLGZ1bmN0aW9uKGV2ZW50KXtyZXR1cm4gY29udGV4dC5mbi50
cmlnZ2VyKCdjaGFuZ2UnLGV2ZW50KTt9KS5kZWxheWVkQmluZCgyNTAsJ2tleXVw
IHBhc3RlIG1vdXNldXAgY3V0IGVuY2Fwc3VsYXRlU2VsZWN0aW9uJyxmdW5jdGlv
bihldmVudCl7Y29udGV4dC5mbi50cmlnZ2VyKCdkZWxheWVkQ2hhbmdlJyxldmVu
dCk7fSk7fSk7Y29udGV4dC4kdGV4dGFyZWEuY2xvc2VzdCgnZm9ybScpLnN1Ym1p
dChmdW5jdGlvbigpe2NvbnRleHQuJHRleHRhcmVhLmF0dHIoJ2Rpc2FibGVkJyxm
YWxzZSk7Y29udGV4dC4kdGV4dGFyZWEudmFsKGNvbnRleHQuJHRleHRhcmVhLnRl
eHRTZWxlY3Rpb24oJ2dldENvbnRlbnRzJykpO30pO2NvbnRleHQuZmFsbGJhY2tX
aW5kb3dPbkJlZm9yZVVubG9hZD13aW5kb3cub25iZWZvcmV1bmxvYWQ7d2luZG93
Lm9uYmVmb3JldW5sb2FkPWZ1bmN0aW9uKCl7Y29udGV4dC4kdGV4dGFyZWEudmFs
KGNvbnRleHQuJHRleHRhcmVhLnRleHRTZWxlY3Rpb24oJ2dldENvbnRlbnRzJykp
O2lmKGNvbnRleHQuZmFsbGJhY2tXaW5kb3dPbkJlZm9yZVVubG9hZCl7cmV0dXJu
IGNvbnRleHQuZmFsbGJhY2tXaW5kb3dPbkJlZm9yZVVubG9hZCgpO319O30sJ2dl
dEVsZW1lbnRBdEN1cnNvcic6ZnVuY3Rpb24oKXtpZihjb250ZXh0LiRpZnJhbWVb
MF0uY29udGVudFdpbmRvdy5nZXRTZWxlY3Rpb24pe3ZhciBzZWxlY3Rpb249Y29u
dGV4dC4kaWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYo
c2VsZWN0aW9uLnJhbmdlQ291bnQ9PTApe3JldHVybiAkKFtdKTt9CnZhciBzYz1z
ZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5zdGFydENvbnRhaW5lcjtpZihzYy5ub2Rl
TmFtZT09IiN0ZXh0IilzYz1zYy5wYXJlbnROb2RlO3JldHVybiAkKHNjKTt9ZWxz
ZSBpZihjb250ZXh0LiRpZnJhbWVbMF0uY29udGVudFdpbmRvdy5kb2N1bWVudC5z
ZWxlY3Rpb24pe3ZhciBzZWxlY3Rpb249Y29udGV4dC4kaWZyYW1lWzBdLmNvbnRl
bnRXaW5kb3cuZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7cmV0dXJu
ICQoc2VsZWN0aW9uLnBhcmVudEVsZW1lbnQoKSk7fX0sJ2dldENvbnRlbnRzJzpm
dW5jdGlvbigpe3ZhciBodG1sO2lmKCQuYnJvd3Nlci5tc2llKXt2YXIgJGM9JChj
b250ZXh0LiRjb250ZW50LmdldCgwKS5jbG9uZU5vZGUodHJ1ZSkpOyRjLmZpbmQo
J3AnKS5lYWNoKGZ1bmN0aW9uKCl7aWYoJCh0aGlzKS5odG1sKCk9PScnKXskKHRo
aXMpLnJlcGxhY2VXaXRoKCc8cD48L3A+Jyk7fX0pO2h0bWw9JGMuaHRtbCgpO31l
bHNle2h0bWw9Y29udGV4dC4kY29udGVudC5odG1sKCk7fQpyZXR1cm4gY29udGV4
dC5mbi5odG1sVG9UZXh0KGh0bWwpO30sJ2dldFNlbGVjdGlvbic6ZnVuY3Rpb24o
KXt2YXIgcmV0dmFsO2lmKGNvbnRleHQuJGlmcmFtZVswXS5jb250ZW50V2luZG93
LmdldFNlbGVjdGlvbil7cmV0dmFsPWNvbnRleHQuJGlmcmFtZVswXS5jb250ZW50
V2luZG93LmdldFNlbGVjdGlvbigpO2lmKCQuYnJvd3Nlci5vcGVyYSl7aWYocmV0
dmFsLnJhbmdlQ291bnQ+MCl7cmV0dmFsPWNvbnRleHQuZm4uaHRtbFRvVGV4dCgk
KCc8cHJlIC8+JykuYXBwZW5kKHJldHZhbC5nZXRSYW5nZUF0KDApLmNsb25lQ29u
dGVudHMoKSkuaHRtbCgpKTt9ZWxzZXtyZXR2YWw9Jyc7fX19ZWxzZSBpZihjb250
ZXh0LiRpZnJhbWVbMF0uY29udGVudFdpbmRvdy5kb2N1bWVudC5zZWxlY3Rpb24p
e3JldHZhbD1jb250ZXh0LiRpZnJhbWVbMF0uY29udGVudFdpbmRvdy5kb2N1bWVu
dC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTt9CmlmKHR5cGVvZiByZXR2YWwudGV4
dCE9J3VuZGVmaW5lZCcpe3JldHZhbD1jb250ZXh0LmZuLmh0bWxUb1RleHQocmV0
dmFsLmh0bWxUZXh0KTt9ZWxzZSBpZih0eXBlb2YgcmV0dmFsLnRvU3RyaW5nIT0n
dW5kZWZpbmVkJyl7cmV0dmFsPXJldHZhbC50b1N0cmluZygpO30KcmV0dXJuIHJl
dHZhbDt9LCdlbmNhcHN1bGF0ZVNlbGVjdGlvbic6ZnVuY3Rpb24ob3B0aW9ucyl7
dmFyIHNlbFRleHQ9JCh0aGlzKS50ZXh0U2VsZWN0aW9uKCdnZXRTZWxlY3Rpb24n
KTt2YXIgc2VsVGV4dEFycjt2YXIgY29sbGFwc2VUb0VuZD1mYWxzZTt2YXIgc2Vs
ZWN0QWZ0ZXI9ZmFsc2U7dmFyIHNldFNlbGVjdGlvblRvPW51bGw7dmFyIHByZT1v
cHRpb25zLnByZSxwb3N0PW9wdGlvbnMucG9zdDtpZighc2VsVGV4dCl7c2VsVGV4
dD1vcHRpb25zLnBlcmk7c2VsZWN0QWZ0ZXI9dHJ1ZTt9ZWxzZSBpZihvcHRpb25z
LnBlcmk9PXNlbFRleHQucmVwbGFjZSgvXHMrJC8sJycpKXtzZWxUZXh0PXNlbFRl
eHQucmVwbGFjZSgvXHMrJC8sJycpO2NvbGxhcHNlVG9FbmQ9dHJ1ZTtzZWxlY3RB
ZnRlcj10cnVlO31lbHNlIGlmKG9wdGlvbnMucmVwbGFjZSl7c2VsVGV4dD1vcHRp
b25zLnBlcmk7fWVsc2UgaWYoc2VsVGV4dC5jaGFyQXQoc2VsVGV4dC5sZW5ndGgt
MSk9PScgJyl7c2VsVGV4dD1zZWxUZXh0LnN1YnN0cmluZygwLHNlbFRleHQubGVu
Z3RoLTEpO3Bvc3QrPScgJzt9CmlmKG9wdGlvbnMuc3BsaXRsaW5lcyl7c2VsVGV4
dEFycj1zZWxUZXh0LnNwbGl0KC9cbi8pO30KaWYoY29udGV4dC4kaWZyYW1lWzBd
LmNvbnRlbnRXaW5kb3cuZ2V0U2VsZWN0aW9uKXt2YXIgcmFuZ2U9Y29udGV4dC4k
aWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VB
dCgwKTtpZihjb2xsYXBzZVRvRW5kKXtpZihyYW5nZS5lbmRDb250YWluZXIubm9k
ZU5hbWU9PSdCUicpe3JhbmdlLnNldEVuZEJlZm9yZShyYW5nZS5lbmRDb250YWlu
ZXIpO30KcmFuZ2UuY29sbGFwc2UoZmFsc2UpO30KaWYob3B0aW9ucy5vd25saW5l
KXt2YXIgYXRTdGFydD1mYWxzZSxhdEVuZD1mYWxzZTt2YXIgYm9keT1jb250ZXh0
LiRjb250ZW50LmdldCgwKTtpZihyYW5nZS5zdGFydE9mZnNldD09MCl7YXRTdGFy
dD10cnVlO31lbHNlIGlmKHJhbmdlLnN0YXJ0Q29udGFpbmVyPT1ib2R5KXt2YXIg
bj1ib2R5LmZpcnN0Q2hpbGQ7Zm9yKHZhciBpPTA7aTxyYW5nZS5zdGFydE9mZnNl
dC0xJiZuO2krKyl7bj1uLm5leHRTaWJsaW5nO30KaWYobiYmbi5ub2RlTmFtZT09
J0JSJyl7YXRTdGFydD10cnVlO31lbHNle2F0RW5kPXRydWU7fX0KaWYoKHJhbmdl
LmVuZE9mZnNldD09MCYmcmFuZ2UuZW5kQ29udGFpbmVyLm5vZGVWYWx1ZT09bnVs
bCl8fChyYW5nZS5lbmRDb250YWluZXIubm9kZU5hbWU9PScjdGV4dCcmJnJhbmdl
LmVuZE9mZnNldD09cmFuZ2UuZW5kQ29udGFpbmVyLm5vZGVWYWx1ZS5sZW5ndGgp
fHwocmFuZ2UuZW5kQ29udGFpbmVyLm5vZGVOYW1lPT0nUCcmJnJhbmdlLmVuZENv
bnRhaW5lci5ub2RlVmFsdWU9PW51bGwpKXthdEVuZD10cnVlO30KaWYoIWF0U3Rh
cnQpe3ByZT0iXG4iK29wdGlvbnMucHJlO30KaWYoIWF0RW5kKXtwb3N0Kz0iXG4i
O319CnZhciBpbnNlcnRUZXh0PSIiO2lmKG9wdGlvbnMuc3BsaXRsaW5lcyl7Zm9y
KHZhciBqPTA7ajxzZWxUZXh0QXJyLmxlbmd0aDtqKyspe2luc2VydFRleHQ9aW5z
ZXJ0VGV4dCtwcmUrc2VsVGV4dEFycltqXStwb3N0O2lmKGohPXNlbFRleHRBcnIu
bGVuZ3RoLTEpe2luc2VydFRleHQrPSJcbiI7fX19ZWxzZXtpbnNlcnRUZXh0PXBy
ZStzZWxUZXh0K3Bvc3Q7fQp2YXIgaW5zZXJ0TGluZXM9aW5zZXJ0VGV4dC5zcGxp
dCgiXG4iKTtyYW5nZS5leHRyYWN0Q29udGVudHMoKTt2YXIgZmlyc3ROb2RlPW51
bGwsbGFzdE5vZGU9bnVsbDt2YXIgc2VsU0M9bnVsbCxzZWxFQz1udWxsLHNlbFNP
PW51bGwsc2VsRU89bnVsbCxvZmZzZXQ9MDtmb3IodmFyIGk9aW5zZXJ0TGluZXMu
bGVuZ3RoLTE7aT49MDtpLS0pe2ZpcnN0Tm9kZT1jb250ZXh0LiRpZnJhbWVbMF0u
Y29udGVudFdpbmRvdy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShpbnNlcnRMaW5l
c1tpXSk7cmFuZ2UuaW5zZXJ0Tm9kZShmaXJzdE5vZGUpO2xhc3ROb2RlPWxhc3RO
b2RlfHxmaXJzdE5vZGU7dmFyIG5ld09mZnNldD1vZmZzZXQraW5zZXJ0TGluZXNb
aV0ubGVuZ3RoO2lmKCFzZWxFQyYmcG9zdC5sZW5ndGg8PW5ld09mZnNldCl7c2Vs
RUM9Zmlyc3ROb2RlO3NlbEVPPXNlbEVDLm5vZGVWYWx1ZS5sZW5ndGgtKHBvc3Qu
bGVuZ3RoLW9mZnNldCk7fQppZihzZWxFQyYmIXNlbFNDJiZwcmUubGVuZ3RoPj1p
bnNlcnRUZXh0Lmxlbmd0aC1uZXdPZmZzZXQpe3NlbFNDPWZpcnN0Tm9kZTtzZWxT
Tz1wcmUubGVuZ3RoLShpbnNlcnRUZXh0Lmxlbmd0aC1uZXdPZmZzZXQpO30Kb2Zm
c2V0PW5ld09mZnNldDtpZihpPjApe2ZpcnN0Tm9kZT1jb250ZXh0LiRpZnJhbWVb
MF0uY29udGVudFdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdicicpO3Jh
bmdlLmluc2VydE5vZGUoZmlyc3ROb2RlKTtuZXdPZmZzZXQ9b2Zmc2V0KzE7aWYo
IXNlbEVDJiZwb3N0Lmxlbmd0aDw9bmV3T2Zmc2V0KXtzZWxFQz1maXJzdE5vZGU7
c2VsRU89MS0ocG9zdC5sZW5ndGgtb2Zmc2V0KTt9CmlmKHNlbEVDJiYhc2VsU0Mm
JnByZS5sZW5ndGg+PWluc2VydFRleHQubGVuZ3RoLW5ld09mZnNldCl7c2VsU0M9
Zmlyc3ROb2RlO3NlbFNPPXByZS5sZW5ndGgtKGluc2VydFRleHQubGVuZ3RoLW5l
d09mZnNldCk7fQpvZmZzZXQ9bmV3T2Zmc2V0O319CmlmKGZpcnN0Tm9kZSl7Y29u
dGV4dC5mbi5zY3JvbGxUb1RvcCgkKGZpcnN0Tm9kZS5wYXJlbnROb2RlKSk7fQpp
ZihzZWxlY3RBZnRlcil7c2V0U2VsZWN0aW9uVG89e3N0YXJ0Q29udGFpbmVyOnNl
bFNDLGVuZENvbnRhaW5lcjpzZWxFQyxzdGFydDpzZWxTTyxlbmQ6c2VsRU99O31l
bHNlIGlmKGxhc3ROb2RlKXtzZXRTZWxlY3Rpb25Ubz17c3RhcnRDb250YWluZXI6
bGFzdE5vZGUsZW5kQ29udGFpbmVyOmxhc3ROb2RlLHN0YXJ0Omxhc3ROb2RlLm5v
ZGVWYWx1ZS5sZW5ndGgsZW5kOmxhc3ROb2RlLm5vZGVWYWx1ZS5sZW5ndGh9O319
ZWxzZSBpZihjb250ZXh0LiRpZnJhbWVbMF0uY29udGVudFdpbmRvdy5kb2N1bWVu
dC5zZWxlY3Rpb24pe2NvbnRleHQuJGlmcmFtZVswXS5jb250ZW50V2luZG93LmZv
Y3VzKCk7dmFyIHJhbmdlPWNvbnRleHQuJGlmcmFtZVswXS5jb250ZW50V2luZG93
LmRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO2lmKG9wdGlvbnMub3du
bGluZSYmcmFuZ2UubW92ZVN0YXJ0KXt2YXIgcmFuZ2UyPWNvbnRleHQuJGlmcmFt
ZVswXS5jb250ZW50V2luZG93LmRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5n
ZSgpO3JhbmdlMi5jb2xsYXBzZSgpO3JhbmdlMi5tb3ZlU3RhcnQoJ2NoYXJhY3Rl
cicsLTEpO2lmKHJhbmdlMi50ZXh0IT0iXHIiJiZyYW5nZTIudGV4dCE9IlxuIiYm
cmFuZ2UyLnRleHQhPSIiKXtwcmU9IlxuIitwcmU7fQp2YXIgcmFuZ2UzPWNvbnRl
eHQuJGlmcmFtZVswXS5jb250ZW50V2luZG93LmRvY3VtZW50LnNlbGVjdGlvbi5j
cmVhdGVSYW5nZSgpO3JhbmdlMy5jb2xsYXBzZShmYWxzZSk7cmFuZ2UzLm1vdmVF
bmQoJ2NoYXJhY3RlcicsMSk7aWYocmFuZ2UzLnRleHQhPSJcciImJnJhbmdlMy50
ZXh0IT0iXG4iJiZyYW5nZTMudGV4dCE9IiIpe3Bvc3QrPSJcbiI7fX0KaWYoY29s
bGFwc2VUb0VuZCl7cmFuZ2UuY29sbGFwc2UoZmFsc2UpO30KdmFyIGluc2VydFRl
eHQ9IiI7aWYob3B0aW9ucy5zcGxpdGxpbmVzKXtmb3IodmFyIGo9MDtqPHNlbFRl
eHRBcnIubGVuZ3RoO2orKyl7aW5zZXJ0VGV4dD1pbnNlcnRUZXh0K3ByZStzZWxU
ZXh0QXJyW2pdK3Bvc3Q7aWYoaiE9c2VsVGV4dEFyci5sZW5ndGgtMSl7aW5zZXJ0
VGV4dCs9IlxuIjt9fX1lbHNle2luc2VydFRleHQ9cHJlK3NlbFRleHQrcG9zdDt9
CnJhbmdlLnBhc3RlSFRNTChpbnNlcnRUZXh0LnJlcGxhY2UoL1w8L2csJyZsdDsn
KS5yZXBsYWNlKC8+L2csJyZndDsnKS5yZXBsYWNlKC9ccj9cbi9nLCc8YnIgLz4n
KSk7aWYoc2VsZWN0QWZ0ZXIpe3JhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywt
cG9zdC5sZW5ndGgtc2VsVGV4dC5sZW5ndGgpO3JhbmdlLm1vdmVFbmQoJ2NoYXJh
Y3RlcicsLXBvc3QubGVuZ3RoKTtyYW5nZS5zZWxlY3QoKTt9fQppZihzZXRTZWxl
Y3Rpb25Ubyl7Y29udGV4dC5mbi5zZXRTZWxlY3Rpb24oc2V0U2VsZWN0aW9uVG8p
O30KJChjb250ZXh0LiRpZnJhbWVbMF0uY29udGVudFdpbmRvdy5kb2N1bWVudCku
dHJpZ2dlcignZW5jYXBzdWxhdGVTZWxlY3Rpb24nLFtwcmUsb3B0aW9ucy5wZXJp
LHBvc3Qsb3B0aW9ucy5vd25saW5lLG9wdGlvbnMucmVwbGFjZV0pO3JldHVybiBj
b250ZXh0LiR0ZXh0YXJlYTt9LCdnZXRDYXJldFBvc2l0aW9uJzpmdW5jdGlvbihv
cHRpb25zKXt2YXIgc3RhcnRQb3M9bnVsbCxlbmRQb3M9bnVsbDtpZihjb250ZXh0
LiRpZnJhbWVbMF0uY29udGVudFdpbmRvdy5nZXRTZWxlY3Rpb24pe3ZhciBzZWxl
Y3Rpb249Y29udGV4dC4kaWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZ2V0U2VsZWN0
aW9uKCk7aWYoc2VsZWN0aW9uLnJhbmdlQ291bnQ9PTApe3JldHVyblswLDBdO30K
dmFyIHNjPXNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLnN0YXJ0Q29udGFpbmVyLGVj
PXNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLmVuZENvbnRhaW5lcjt2YXIgc289c2Vs
ZWN0aW9uLmdldFJhbmdlQXQoMCkuc3RhcnRPZmZzZXQsZW89c2VsZWN0aW9uLmdl
dFJhbmdlQXQoMCkuZW5kT2Zmc2V0O2lmKHNjLm5vZGVOYW1lPT0nQk9EWScpe3Zh
ciBuPXNjLmZpcnN0Q2hpbGQ7Zm9yKHZhciBpPTA7aTxzby0xJiZuO2krKyl7bj1u
Lm5leHRTaWJsaW5nO30Kc2M9bjtzbz0wO30KaWYoZWMubm9kZU5hbWU9PSdCT0RZ
Jyl7dmFyIG49ZWMuZmlyc3RDaGlsZDtmb3IodmFyIGk9MDtpPGVvLTEmJm47aSsr
KXtuPW4ubmV4dFNpYmxpbmc7fQplYz1uO2VvPTA7fQp3aGlsZShzYy5maXJzdENo
aWxkKXtzYz1zYy5maXJzdENoaWxkO30Kd2hpbGUoZWMuZmlyc3RDaGlsZCl7ZWM9
ZWMuZmlyc3RDaGlsZDt9CmNvbnRleHQuZm4uZ2V0T2Zmc2V0KDApO3ZhciBvO2Zv
cihvIGluIGNvbnRleHQub2Zmc2V0cyl7aWYoc3RhcnRQb3M9PT1udWxsJiZjb250
ZXh0Lm9mZnNldHNbb10ubm9kZT09c2Mpe3N0YXJ0UG9zPX5+bytzby1jb250ZXh0
Lm9mZnNldHNbb10ub2Zmc2V0O30KaWYoc3RhcnRQb3MhPT1udWxsJiZjb250ZXh0
Lm9mZnNldHNbb10ubm9kZT09ZWMpe2VuZFBvcz1+fm8rZW8tY29udGV4dC5vZmZz
ZXRzW29dLm9mZnNldDticmVhazt9fX1lbHNlIGlmKGNvbnRleHQuJGlmcmFtZVsw
XS5jb250ZW50V2luZG93LmRvY3VtZW50LnNlbGVjdGlvbil7dmFyIGQ9Y29udGV4
dC4kaWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7dmFyIHBvc3RGaW5p
c2hlZD1mYWxzZTt2YXIgcGVyaUZpbmlzaGVkPWZhbHNlO3ZhciBwb3N0RmluaXNo
ZWQ9ZmFsc2U7dmFyIHByZVRleHQscmF3UHJlVGV4dCxwZXJpVGV4dDt2YXIgcmF3
UGVyaVRleHQscG9zdFRleHQscmF3UG9zdFRleHQ7dHJ5e3ZhciBwZXJpUmFuZ2U9
ZC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKS5kdXBsaWNhdGUoKTt2YXIgcHJlUmFu
Z2U9ZC5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpO3ByZVJhbmdlLnNldEVuZFBvaW50
KCJFbmRUb1N0YXJ0IixwZXJpUmFuZ2UpO3ZhciBwb3N0UmFuZ2U9ZC5ib2R5LmNy
ZWF0ZVRleHRSYW5nZSgpO3Bvc3RSYW5nZS5zZXRFbmRQb2ludCgiU3RhcnRUb0Vu
ZCIscGVyaVJhbmdlKTtwcmVUZXh0PXJhd1ByZVRleHQ9cHJlUmFuZ2UudGV4dDtw
ZXJpVGV4dD1yYXdQZXJpVGV4dD1wZXJpUmFuZ2UudGV4dDtwb3N0VGV4dD1yYXdQ
b3N0VGV4dD1wb3N0UmFuZ2UudGV4dDtkb3tpZighcG9zdEZpbmlzaGVkKXtpZihw
cmVSYW5nZS5jb21wYXJlRW5kUG9pbnRzKCJTdGFydFRvRW5kIixwcmVSYW5nZSk9
PTApe3Bvc3RGaW5pc2hlZD10cnVlO31lbHNle3ByZVJhbmdlLm1vdmVFbmQoImNo
YXJhY3RlciIsLTEpCmlmKHByZVJhbmdlLnRleHQ9PXByZVRleHQpe3Jhd1ByZVRl
eHQrPSJcclxuIjt9ZWxzZXtwb3N0RmluaXNoZWQ9dHJ1ZTt9fX0KaWYoIXBlcmlG
aW5pc2hlZCl7aWYocGVyaVJhbmdlLmNvbXBhcmVFbmRQb2ludHMoIlN0YXJ0VG9F
bmQiLHBlcmlSYW5nZSk9PTApe3BlcmlGaW5pc2hlZD10cnVlO31lbHNle3BlcmlS
YW5nZS5tb3ZlRW5kKCJjaGFyYWN0ZXIiLC0xKQppZihwZXJpUmFuZ2UudGV4dD09
cGVyaVRleHQpe3Jhd1BlcmlUZXh0Kz0iXHJcbiI7fWVsc2V7cGVyaUZpbmlzaGVk
PXRydWU7fX19CmlmKCFwb3N0RmluaXNoZWQpe2lmKHBvc3RSYW5nZS5jb21wYXJl
RW5kUG9pbnRzKCJTdGFydFRvRW5kIixwb3N0UmFuZ2UpPT0wKXtwb3N0RmluaXNo
ZWQ9dHJ1ZTt9ZWxzZXtwb3N0UmFuZ2UubW92ZUVuZCgiY2hhcmFjdGVyIiwtMSkK
aWYocG9zdFJhbmdlLnRleHQ9PXBvc3RUZXh0KXtyYXdQb3N0VGV4dCs9IlxyXG4i
O31lbHNle3Bvc3RGaW5pc2hlZD10cnVlO319fX13aGlsZSgoIXBvc3RGaW5pc2hl
ZHx8IXBlcmlGaW5pc2hlZHx8IXBvc3RGaW5pc2hlZCkpO3N0YXJ0UG9zPXJhd1By
ZVRleHQucmVwbGFjZSgvXHJcbi9nLCJcbiIpLmxlbmd0aDtlbmRQb3M9c3RhcnRQ
b3MrcmF3UGVyaVRleHQucmVwbGFjZSgvXHJcbi9nLCJcbiIpLmxlbmd0aDt9Y2F0
Y2goZSl7c3RhcnRQb3M9ZW5kUG9zPTA7fX0KcmV0dXJuW3N0YXJ0UG9zLGVuZFBv
c107fSwnc2V0U2VsZWN0aW9uJzpmdW5jdGlvbihvcHRpb25zKXt2YXIgc2M9b3B0
aW9ucy5zdGFydENvbnRhaW5lcixlYz1vcHRpb25zLmVuZENvbnRhaW5lcjtzYz1z
YyYmc2MuanF1ZXJ5P3NjWzBdOnNjO2VjPWVjJiZlYy5qcXVlcnk/ZWNbMF06ZWM7
aWYoY29udGV4dC4kaWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZ2V0U2VsZWN0aW9u
KXt2YXIgc3RhcnQ9b3B0aW9ucy5zdGFydCxlbmQ9b3B0aW9ucy5lbmQ7aWYoIXNj
fHwhZWMpe3ZhciBzPWNvbnRleHQuZm4uZ2V0T2Zmc2V0KHN0YXJ0KTt2YXIgZT1j
b250ZXh0LmZuLmdldE9mZnNldChlbmQpO3NjPXM/cy5ub2RlOm51bGw7ZWM9ZT9l
Lm5vZGU6bnVsbDtzdGFydD1zP3Mub2Zmc2V0Om51bGw7ZW5kPWU/ZS5vZmZzZXQ6
bnVsbDtpZihzYyE9bnVsbCYmc2Mubm9kZU5hbWU9PScjdGV4dCcmJnN0YXJ0PnNj
Lm5vZGVWYWx1ZS5sZW5ndGgpe3N0YXJ0PXNjLm5vZGVWYWx1ZS5sZW5ndGgtMTt9
CmlmKGVjIT1udWxsJiZlYy5ub2RlTmFtZT09JyN0ZXh0JyYmZW5kPmVjLm5vZGVW
YWx1ZS5sZW5ndGgpe2VuZD1lYy5ub2RlVmFsdWUubGVuZ3RoLTE7fX0KaWYoIXNj
fHwhZWMpe3JldHVybiBjb250ZXh0LiR0ZXh0YXJlYTt9CnZhciBzZWw9Y29udGV4
dC4kaWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZ2V0U2VsZWN0aW9uKCk7d2hpbGUo
c2MuZmlyc3RDaGlsZCYmc2Mubm9kZU5hbWUhPScjdGV4dCcpe3NjPXNjLmZpcnN0
Q2hpbGQ7fQp3aGlsZShlYy5maXJzdENoaWxkJiZlYy5ub2RlTmFtZSE9JyN0ZXh0
Jyl7ZWM9ZWMuZmlyc3RDaGlsZDt9CnZhciByYW5nZT1jb250ZXh0LiRpZnJhbWVb
MF0uY29udGVudFdpbmRvdy5kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3JhbmdlLnNl
dFN0YXJ0KHNjLHN0YXJ0KTtyYW5nZS5zZXRFbmQoZWMsZW5kKTtzZWwucmVtb3Zl
QWxsUmFuZ2VzKCk7c2VsLmFkZFJhbmdlKHJhbmdlKTtjb250ZXh0LiRpZnJhbWVb
MF0uY29udGVudFdpbmRvdy5mb2N1cygpO31lbHNlIGlmKGNvbnRleHQuJGlmcmFt
ZVswXS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuY3JlYXRlVGV4dFJhbmdl
KXt2YXIgcmFuZ2U9Y29udGV4dC4kaWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZG9j
dW1lbnQuYm9keS5jcmVhdGVUZXh0UmFuZ2UoKTtpZihzYyl7cmFuZ2UubW92ZVRv
RWxlbWVudFRleHQoc2MpO30KcmFuZ2UuY29sbGFwc2UoKTtyYW5nZS5tb3ZlRW5k
KCdjaGFyYWN0ZXInLG9wdGlvbnMuc3RhcnQpO3ZhciByYW5nZTI9Y29udGV4dC4k
aWZyYW1lWzBdLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuYm9keS5jcmVhdGVUZXh0
UmFuZ2UoKTtpZihlYyl7cmFuZ2UyLm1vdmVUb0VsZW1lbnRUZXh0KGVjKTt9CnJh
bmdlMi5jb2xsYXBzZSgpO3JhbmdlMi5tb3ZlRW5kKCdjaGFyYWN0ZXInLG9wdGlv
bnMuZW5kKTt2YXIgbWF0Y2hlcyxjb3VudGVkPTA7d2hpbGUobWF0Y2hlcz1yYW5n
ZS5odG1sVGV4dC5tYXRjaCgvXDxcL3BcPihcPGJyW15cPl0qXD4pK1w8cFw+L2dp
KSl7aWYobWF0Y2hlcy5sZW5ndGg8PWNvdW50ZWQpCmJyZWFrO3JhbmdlLm1vdmVF
bmQoJ2NoYXJhY3RlcicsbWF0Y2hlcy5sZW5ndGgpO2NvdW50ZWQrPW1hdGNoZXMu
bGVuZ3RoO30KcmFuZ2UyLm1vdmVFbmQoJ2NoYXJhY3RlcicsY291bnRlZCk7d2hp
bGUobWF0Y2hlcz1yYW5nZTIuaHRtbFRleHQubWF0Y2goL1w8XC9wXD4oXDxiclte
XD5dKlw+KStcPHBcPi9naSkpe2lmKG1hdGNoZXMubGVuZ3RoPD1jb3VudGVkKQpi
cmVhaztyYW5nZTIubW92ZUVuZCgnY2hhcmFjdGVyJyxtYXRjaGVzLmxlbmd0aCk7
Y291bnRlZCs9bWF0Y2hlcy5sZW5ndGg7fQpyYW5nZTIuc2V0RW5kUG9pbnQoJ1N0
YXJ0VG9FbmQnLHJhbmdlKTtyYW5nZTIuc2VsZWN0KCk7fQpyZXR1cm4gY29udGV4
dC4kdGV4dGFyZWE7fSwnc2Nyb2xsVG9DYXJldFBvc2l0aW9uJzpmdW5jdGlvbihv
cHRpb25zKXtjb250ZXh0LmZuLnNjcm9sbFRvVG9wKGNvbnRleHQuZm4uZ2V0RWxl
bWVudEF0Q3Vyc29yKCksdHJ1ZSk7fSwnc2Nyb2xsVG9Ub3AnOmZ1bmN0aW9uKCRl
bGVtZW50LGZvcmNlKXt2YXIgaHRtbD1jb250ZXh0LiRjb250ZW50LmNsb3Nlc3Qo
J2h0bWwnKSxib2R5PWNvbnRleHQuJGNvbnRlbnQuY2xvc2VzdCgnYm9keScpLHBh
cmVudEh0bWw9JCgnaHRtbCcpLHBhcmVudEJvZHk9JCgnYm9keScpO3ZhciB5PSRl
bGVtZW50Lm9mZnNldCgpLnRvcDtpZighJC5icm93c2VyLm1zaWUmJiEkZWxlbWVu
dC5pcygnYm9keScpKXt5PXBhcmVudEh0bWwuc2Nyb2xsVG9wKCk+MD95K2h0bWwu
c2Nyb2xsVG9wKCktcGFyZW50SHRtbC5zY3JvbGxUb3AoKTp5O3k9cGFyZW50Qm9k
eS5zY3JvbGxUb3AoKT4wP3krYm9keS5zY3JvbGxUb3AoKS1wYXJlbnRCb2R5LnNj
cm9sbFRvcCgpOnk7fQp2YXIgdG9wQm91bmQ9aHRtbC5zY3JvbGxUb3AoKT5ib2R5
LnNjcm9sbFRvcCgpP2h0bWwuc2Nyb2xsVG9wKCk6Ym9keS5zY3JvbGxUb3AoKSxi
b3R0b21Cb3VuZD10b3BCb3VuZCtjb250ZXh0LiRpZnJhbWUuaGVpZ2h0KCk7aWYo
Zm9yY2V8fHk8dG9wQm91bmR8fHk+Ym90dG9tQm91bmQpe2h0bWwuc2Nyb2xsVG9w
KHkpO2JvZHkuc2Nyb2xsVG9wKHkpO30KJGVsZW1lbnQudHJpZ2dlcignc2Nyb2xs
VG9Ub3AnKTt9LCdzYXZlU3R1ZmZGb3JJRSc6ZnVuY3Rpb24oKXtpZighJC5icm93
c2VyLm1zaWV8fGNvbnRleHQuJGlmcmFtZSkKcmV0dXJuO3ZhciBJSGF0ZUlFPXsn
c2Nyb2xsVG9wJzpjb250ZXh0LiR0ZXh0YXJlYS5zY3JvbGxUb3AoKSwncG9zJzpj
b250ZXh0LiR0ZXh0YXJlYS50ZXh0U2VsZWN0aW9uKCdnZXRDYXJldFBvc2l0aW9u
Jyx7c3RhcnRBbmRFbmQ6dHJ1ZX0pfTtjb250ZXh0LiR0ZXh0YXJlYS5kYXRhKCdJ
SGF0ZUlFJyxJSGF0ZUlFKTt9LCdyZXN0b3JlU3R1ZmZGb3JJRSc6ZnVuY3Rpb24o
KXtpZighJC5icm93c2VyLm1zaWV8fGNvbnRleHQuJGlmcmFtZSkKcmV0dXJuO3Zh
ciBJSGF0ZUlFPWNvbnRleHQuJHRleHRhcmVhLmRhdGEoJ0lIYXRlSUUnKTtpZigh
SUhhdGVJRSkKcmV0dXJuO2NvbnRleHQuJHRleHRhcmVhLnNjcm9sbFRvcChJSGF0
ZUlFLnNjcm9sbFRvcCk7Y29udGV4dC4kdGV4dGFyZWEudGV4dFNlbGVjdGlvbign
c2V0U2VsZWN0aW9uJyx7c3RhcnQ6SUhhdGVJRS5wb3NbMF0sZW5kOklIYXRlSUUu
cG9zWzFdfSk7Y29udGV4dC4kdGV4dGFyZWEuZGF0YSgnSUhhdGVJRScsbnVsbCk7
fX07Y29udGV4dC4kdGV4dGFyZWEud3JhcEFsbCgkKCc8ZGl2PjwvZGl2PicpLmFk
ZENsYXNzKCd3aWtpRWRpdG9yLXVpJykpLndyYXBBbGwoJCgnPGRpdj48L2Rpdj4n
KS5hZGRDbGFzcygnd2lraUVkaXRvci11aS12aWV3IHdpa2lFZGl0b3ItdWktdmll
dy13aWtpdGV4dCcpKS53cmFwQWxsKCQoJzxkaXY+PC9kaXY+JykuYWRkQ2xhc3Mo
J3dpa2lFZGl0b3ItdWktbGVmdCcpKS53cmFwQWxsKCQoJzxkaXY+PC9kaXY+Jyku
YWRkQ2xhc3MoJ3dpa2lFZGl0b3ItdWktYm90dG9tJykpLndyYXBBbGwoJCgnPGRp
dj48L2Rpdj4nKS5hZGRDbGFzcygnd2lraUVkaXRvci11aS10ZXh0JykpO2NvbnRl
eHQuJHVpPWNvbnRleHQuJHRleHRhcmVhLnBhcmVudCgpLnBhcmVudCgpLnBhcmVu
dCgpLnBhcmVudCgpLnBhcmVudCgpO2NvbnRleHQuJHdpa2l0ZXh0PWNvbnRleHQu
JHRleHRhcmVhLnBhcmVudCgpLnBhcmVudCgpLnBhcmVudCgpLnBhcmVudCgpO2Nv
bnRleHQuJHdpa2l0ZXh0LmJlZm9yZSgkKCc8ZGl2PjwvZGl2PicpLmFkZENsYXNz
KCd3aWtpRWRpdG9yLXVpLWNvbnRyb2xzJykuYXBwZW5kKCQoJzxkaXY+PC9kaXY+
JykuYWRkQ2xhc3MoJ3dpa2lFZGl0b3ItdWktdGFicycpLmhpZGUoKSkuYXBwZW5k
KCQoJzxkaXY+PC9kaXY+JykuYWRkQ2xhc3MoJ3dpa2lFZGl0b3ItdWktYnV0dG9u
cycpKSkuYmVmb3JlKCQoJzxkaXYgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2Rpdj4n
KSk7Y29udGV4dC4kY29udHJvbHM9Y29udGV4dC4kdWkuZmluZCgnLndpa2lFZGl0
b3ItdWktYnV0dG9ucycpLmhpZGUoKTtjb250ZXh0LiRidXR0b25zPWNvbnRleHQu
JHVpLmZpbmQoJy53aWtpRWRpdG9yLXVpLWJ1dHRvbnMnKTtjb250ZXh0LiR0YWJz
PWNvbnRleHQuJHVpLmZpbmQoJy53aWtpRWRpdG9yLXVpLXRhYnMnKTtjb250ZXh0
LiR1aS5hZnRlcigkKCc8ZGl2IHN0eWxlPSJjbGVhcjpib3RoOyI+PC9kaXY+Jykp
O2NvbnRleHQuJHdpa2l0ZXh0LmFwcGVuZCgkKCc8ZGl2PjwvZGl2PicpLmFkZENs
YXNzKCd3aWtpRWRpdG9yLXVpLXJpZ2h0JykpO2NvbnRleHQuJHdpa2l0ZXh0LmZp
bmQoJy53aWtpRWRpdG9yLXVpLWxlZnQnKS5wcmVwZW5kKCQoJzxkaXY+PC9kaXY+
JykuYWRkQ2xhc3MoJ3dpa2lFZGl0b3ItdWktdG9wJykpO2NvbnRleHQudmlldz0n
d2lraXRleHQnOyQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oZXZlbnQpe2NvbnRl
eHQuZm4udHJpZ2dlcigncmVzaXplJyxldmVudCk7fSk7fQp2YXIgYXJncz0kLm1h
a2VBcnJheShhcmd1bWVudHMpO2lmKHR5cGVvZiBjb250ZXh0LiRpZnJhbWU9PT0n
dW5kZWZpbmVkJyYmYXJnc1swXT09J2FkZE1vZHVsZScmJnR5cGVvZiBhcmdzWzFd
IT0ndW5kZWZpbmVkJyl7dmFyIG1vZHVsZXM9YXJnc1sxXTtpZih0eXBlb2YgbW9k
dWxlcyE9Im9iamVjdCIpe21vZHVsZXM9e307bW9kdWxlc1thcmdzWzFdXT0nJzt9
CmZvcihtb2R1bGUgaW4gbW9kdWxlcyl7aWYobW9kdWxlIGluICQud2lraUVkaXRv
ci5tb2R1bGVzJiYkLndpa2lFZGl0b3IuaXNTdXBwb3J0ZWQoJC53aWtpRWRpdG9y
Lm1vZHVsZXNbbW9kdWxlXSkmJiQud2lraUVkaXRvci5pc1JlcXVpcmVkKCQud2lr
aUVkaXRvci5tb2R1bGVzW21vZHVsZV0sJ2lmcmFtZScpKXtjb250ZXh0LmZuLnNl
dHVwSWZyYW1lKCk7YnJlYWs7fX19CmlmKGFyZ3MubGVuZ3RoPjApe3ZhciBjYWxs
PWFyZ3Muc2hpZnQoKTtpZihjYWxsIGluIGNvbnRleHQuYXBpKXtjb250ZXh0LmFw
aVtjYWxsXShjb250ZXh0LHR5cGVvZiBhcmdzWzBdPT0ndW5kZWZpbmVkJz97fTph
cmdzWzBdKTt9fQpyZXR1cm4gJCh0aGlzKS5kYXRhKCd3aWtpRWRpdG9yLWNvbnRl
eHQnLGNvbnRleHQpO307fSkoalF1ZXJ5KTtSZWdFeHAuZXNjYXBlPWZ1bmN0aW9u
KHMpe3JldHVybiBzLnJlcGxhY2UoLyhbLiorP14ke30oKXxcL1xcW1xdXSkvZywn
XFwkMScpO307KGZ1bmN0aW9uKCQpeyQud2lraUVkaXRvci5tb2R1bGVzLmRpYWxv
Z3M9eydicm93c2Vycyc6eydsdHInOnsnbXNpZSc6W1snPj0nLDddXSwnZmlyZWZv
eCc6W1snPj0nLDJdLFsnIT0nLCcyLjAnXSxbJyE9JywnMi4wLjAuMSddLFsnIT0n
LCcyLjAuMC4yJ10sWychPScsJzIuMC4wLjMnXSxbJyE9JywnMi4wLjAuNCddXSwn
b3BlcmEnOltbJz49Jyw5LjZdXSwnc2FmYXJpJzpbWyc+PScsM11dLCdjaHJvbWUn
OltbJz49JywzXV19LCdydGwnOnsnbXNpZSc6W1snPj0nLDddXSwnZmlyZWZveCc6
W1snPj0nLDJdLFsnIT0nLCcyLjAnXSxbJyE9JywnMi4wLjAuMSddLFsnIT0nLCcy
LjAuMC4yJ10sWychPScsJzIuMC4wLjMnXSxbJyE9JywnMi4wLjAuNCddXSwnb3Bl
cmEnOltbJz49Jyw5LjZdXSwnc2FmYXJpJzpbWyc+PScsM11dLCdjaHJvbWUnOltb
Jz49JywzXV19fSxhcGk6e2FkZERpYWxvZzpmdW5jdGlvbihjb250ZXh0LGRhdGEp
eyQud2lraUVkaXRvci5tb2R1bGVzLmRpYWxvZ3MuZm4uY3JlYXRlKGNvbnRleHQs
ZGF0YSl9LG9wZW5EaWFsb2c6ZnVuY3Rpb24oY29udGV4dCxtb2R1bGUpe213LnVz
YWJpbGl0eS5sb2FkKFsnJGoudWknLCckai51aS5kaWFsb2cnLCckai51aS5kcmFn
Z2FibGUnLCckai51aS5yZXNpemFibGUnXSxmdW5jdGlvbigpe2lmKG1vZHVsZSBp
biAkLndpa2lFZGl0b3IubW9kdWxlcy5kaWFsb2dzLm1vZHVsZXMpe3ZhciBtb2Q9
JC53aWtpRWRpdG9yLm1vZHVsZXMuZGlhbG9ncy5tb2R1bGVzW21vZHVsZV07dmFy
ICRkaWFsb2c9JCgnIycrbW9kLmlkKTtpZigkZGlhbG9nLmxlbmd0aD09MCl7JC53
aWtpRWRpdG9yLm1vZHVsZXMuZGlhbG9ncy5mbi5yZWFsbHlDcmVhdGUoY29udGV4
dCxtb2QpOyRkaWFsb2c9JCgnIycrbW9kLmlkKTt9CiRkaWFsb2cuY2xvc2VzdCgn
LnVpLWRpYWxvZycpLmZpbmQoJy51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UnKS5y
ZW1vdmVDbGFzcygndWktc3RhdGUtZm9jdXMnKTskZGlhbG9nLmRpYWxvZygnb3Bl
bicpO319KTt9LGNsb3NlRGlhbG9nOmZ1bmN0aW9uKGNvbnRleHQsbW9kdWxlKXtp
Zihtb2R1bGUgaW4gJC53aWtpRWRpdG9yLm1vZHVsZXMuZGlhbG9ncy5tb2R1bGVz
KXskKCcjJyskLndpa2lFZGl0b3IubW9kdWxlcy5kaWFsb2dzLm1vZHVsZXNbbW9k
dWxlXS5pZCkuZGlhbG9nKCdjbG9zZScpO319fSxmbjp7Y3JlYXRlOmZ1bmN0aW9u
KGNvbnRleHQsY29uZmlnKXtmb3IobW9kIGluIGNvbmZpZyl7dmFyIG1vZHVsZT1j
b25maWdbbW9kXTt2YXIgZmlsdGVyZWQ9ZmFsc2U7aWYodHlwZW9mIG1vZHVsZS5m
aWx0ZXJzIT0ndW5kZWZpbmVkJyl7Zm9yKHZhciBpPTA7aTxtb2R1bGUuZmlsdGVy
cy5sZW5ndGg7aSsrKXtpZigkKG1vZHVsZS5maWx0ZXJzW2ldKS5sZW5ndGg9PTAp
e2ZpbHRlcmVkPXRydWU7YnJlYWs7fX19CmlmKCFmaWx0ZXJlZCYmJC53aWtpRWRp
dG9yLmlzU3VwcG9ydGVkKG1vZHVsZSkmJiQoJyMnK21vZHVsZS5pZCkuc2l6ZSgp
PT0wKXskLndpa2lFZGl0b3IubW9kdWxlcy5kaWFsb2dzLm1vZHVsZXNbbW9kXT1t
b2R1bGU7aWYodHlwZW9mIGNvbnRleHQuJGlmcmFtZT09J3VuZGVmaW5lZCcmJiQu
d2lraUVkaXRvci5pc1JlcXVpcmVkKG1vZHVsZSwnaWZyYW1lJykpe2NvbnRleHQu
Zm4uc2V0dXBJZnJhbWUoKTt9CmNvbnRleHQuJHRleHRhcmVhLnRyaWdnZXIoJ3dp
a2lFZGl0b3ItZGlhbG9ncy1zZXR1cC0nK21vZCk7fX19LHJlYWxseUNyZWF0ZTpm
dW5jdGlvbihjb250ZXh0LG1vZHVsZSl7dmFyIGNvbmZpZ3VyYXRpb249bW9kdWxl
LmRpYWxvZztjb25maWd1cmF0aW9uLmJnaWZyYW1lPXRydWU7Y29uZmlndXJhdGlv
bi5hdXRvT3Blbj1mYWxzZTtjb25maWd1cmF0aW9uLm1vZGFsPXRydWU7Y29uZmln
dXJhdGlvbi50aXRsZT0kLndpa2lFZGl0b3IuYXV0b01zZyhtb2R1bGUsJ3RpdGxl
Jyk7Y29uZmlndXJhdGlvbi5uZXdCdXR0b25zPXt9O2Zvcihtc2cgaW4gY29uZmln
dXJhdGlvbi5idXR0b25zKQpjb25maWd1cmF0aW9uLm5ld0J1dHRvbnNbbXcudXNh
YmlsaXR5LmdldE1zZyhtc2cpXT1jb25maWd1cmF0aW9uLmJ1dHRvbnNbbXNnXTtj
b25maWd1cmF0aW9uLmJ1dHRvbnM9Y29uZmlndXJhdGlvbi5uZXdCdXR0b25zO3Zh
ciBkaWFsb2dEaXY9JCgnPGRpdiAvPicpLmF0dHIoJ2lkJyxtb2R1bGUuaWQpLmh0
bWwobW9kdWxlLmh0bWwpLmRhdGEoJ2NvbnRleHQnLGNvbnRleHQpLmFwcGVuZFRv
KCQoJ2JvZHknKSkuZWFjaChtb2R1bGUuaW5pdCkuZGlhbG9nKGNvbmZpZ3VyYXRp
b24pOyQud2lraUVkaXRvci5tb2R1bGVzLmRpYWxvZ3MuZm4uc2V0VGFiaW5kZXhl
cyhkaWFsb2dEaXYuY2xvc2VzdCgnLnVpLWRpYWxvZycpLmZpbmQoJ2J1dHRvbicp
Lm5vdCgnW3RhYmluZGV4XScpKTtpZighKCdyZXNpemVtZSdpbiBtb2R1bGUpfHxt
b2R1bGUucmVzaXplbWUpe2RpYWxvZ0Rpdi5iaW5kKCdkaWFsb2dvcGVuJywkLndp
a2lFZGl0b3IubW9kdWxlcy5kaWFsb2dzLmZuLnJlc2l6ZSkuZmluZCgnLnVpLXRh
YnMnKS5iaW5kKCd0YWJzc2hvdycsZnVuY3Rpb24oKXskKHRoaXMpLmNsb3Nlc3Qo
Jy51aS1kaWFsb2ctY29udGVudCcpLmVhY2goJC53aWtpRWRpdG9yLm1vZHVsZXMu
ZGlhbG9ncy5mbi5yZXNpemUpO30pO30KZGlhbG9nRGl2LmJpbmQoJ2RpYWxvZ2Ns
b3NlJyxmdW5jdGlvbigpe2NvbnRleHQuZm4ucmVzdG9yZVNlbGVjdGlvbigpO30p
O2NvbnRleHQuJHRleHRhcmVhLnRyaWdnZXIoJ3dpa2lFZGl0b3ItZGlhbG9ncy1s
b2FkZWQtJyttb2QpO30scmVzaXplOmZ1bmN0aW9uKCl7dmFyIHdyYXBwZXI9JCh0
aGlzKS5jbG9zZXN0KCcudWktZGlhbG9nJyk7dmFyIG9sZFdpZHRoPXdyYXBwZXIu
d2lkdGgoKTt2YXIgb2xkSGlkZGVuPSQodGhpcykuZmluZCgnKicpLm5vdCgnOnZp
c2libGUnKTtvbGRIaWRkZW4uZWFjaChmdW5jdGlvbigpeyQodGhpcykuZGF0YSgn
b2xkc3R5bGUnLCQodGhpcykuYXR0cignc3R5bGUnKSk7fSk7b2xkSGlkZGVuLnNo
b3coKTt2YXIgb2xkV1M9JCh0aGlzKS5jc3MoJ3doaXRlLXNwYWNlJyk7JCh0aGlz
KS5jc3MoJ3doaXRlLXNwYWNlJywnbm93cmFwJyk7aWYod3JhcHBlci53aWR0aCgp
PD0kKHRoaXMpLmdldCgwKS5zY3JvbGxXaWR0aCl7dmFyIHRoaXNXaWR0aD0kKHRo
aXMpLmRhdGEoJ3RoaXNXaWR0aCcpPyQodGhpcykuZGF0YSgndGhpc1dpZHRoJyk6
MDt0aGlzV2lkdGg9TWF0aC5tYXgoJCh0aGlzKS5nZXQoMCkuc2Nyb2xsV2lkdGgs
dGhpc1dpZHRoKTskKHRoaXMpLndpZHRoKHRoaXNXaWR0aCk7JCh0aGlzKS5kYXRh
KCd0aGlzV2lkdGgnLHRoaXNXaWR0aCk7dmFyIHdyYXBwZXJXaWR0aD0kKHRoaXMp
LmRhdGEoJ3dyYXBwZXJXaWR0aCcpPyQodGhpcykuZGF0YSgnd3JhcHBlcldpZHRo
Jyk6MDt3cmFwcGVyV2lkdGg9TWF0aC5tYXgod3JhcHBlci5nZXQoMCkuc2Nyb2xs
V2lkdGgsd3JhcHBlcldpZHRoKTt3cmFwcGVyLndpZHRoKHdyYXBwZXJXaWR0aCk7
JCh0aGlzKS5kYXRhKCd3cmFwcGVyV2lkdGgnLHdyYXBwZXJXaWR0aCk7JCh0aGlz
KS5kaWFsb2coeyd3aWR0aCc6d3JhcHBlci53aWR0aCgpfSk7d3JhcHBlci5jc3Mo
J2xlZnQnLHBhcnNlSW50KHdyYXBwZXIuY3NzKCdsZWZ0JykpLSh3cmFwcGVyLndp
ZHRoKCktb2xkV2lkdGgpLzIpO30KJCh0aGlzKS5jc3MoJ3doaXRlLXNwYWNlJyxv
bGRXUyk7b2xkSGlkZGVuLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoJ3N0
eWxlJywkKHRoaXMpLmRhdGEoJ29sZHN0eWxlJykpO30pO30sc2V0VGFiaW5kZXhl
czpmdW5jdGlvbigkZWxlbWVudHMpe3ZhciB0YWJJbmRleD1tdy51c2FiaWxpdHku
Z2V0TWF4VGFiSW5kZXgoKSsxOyRlbGVtZW50cy5lYWNoKGZ1bmN0aW9uKCl7JGoo
dGhpcykuYXR0cigndGFiaW5kZXgnLHRhYkluZGV4KyspO30pO319LG1vZHVsZXM6
e30scXVpY2tEaWFsb2c6ZnVuY3Rpb24oYm9keSxzZXR0aW5ncyl7JCgnPGRpdiAv
PicpLnRleHQoYm9keSkuYXBwZW5kVG8oJCgnYm9keScpKS5kaWFsb2coJC5leHRl
bmQoe2JnaWZyYW1lOnRydWUsbW9kYWw6dHJ1ZX0sc2V0dGluZ3MpKS5kaWFsb2co
J29wZW4nKTt9fTt9KShqUXVlcnkpOyhmdW5jdGlvbigkKXskLndpa2lFZGl0b3Iu
bW9kdWxlcy50b29sYmFyPXthcGk6e2FkZFRvVG9vbGJhcjpmdW5jdGlvbihjb250
ZXh0LGRhdGEpe2Zvcih0eXBlIGluIGRhdGEpe3N3aXRjaCh0eXBlKXtjYXNlJ3Nl
Y3Rpb25zJzp2YXIgJHNlY3Rpb25zPWNvbnRleHQubW9kdWxlcy50b29sYmFyLiR0
b29sYmFyLmZpbmQoJ2Rpdi5zZWN0aW9ucycpO3ZhciAkdGFicz1jb250ZXh0Lm1v
ZHVsZXMudG9vbGJhci4kdG9vbGJhci5maW5kKCdkaXYudGFicycpO2ZvcihzZWN0
aW9uIGluIGRhdGFbdHlwZV0pe2lmKHNlY3Rpb249PSdtYWluJyl7Y29udGV4dC5t
b2R1bGVzLnRvb2xiYXIuJHRvb2xiYXIucHJlcGVuZCgkLndpa2lFZGl0b3IubW9k
dWxlcy50b29sYmFyLmZuLmJ1aWxkU2VjdGlvbihjb250ZXh0LHNlY3Rpb24sZGF0
YVt0eXBlXVtzZWN0aW9uXSkpO2NvbnRpbnVlO30KJHNlY3Rpb25zLmFwcGVuZCgk
Lndpa2lFZGl0b3IubW9kdWxlcy50b29sYmFyLmZuLmJ1aWxkU2VjdGlvbihjb250
ZXh0LHNlY3Rpb24sZGF0YVt0eXBlXVtzZWN0aW9uXSkpOyR0YWJzLmFwcGVuZCgk
Lndpa2lFZGl0b3IubW9kdWxlcy50b29sYmFyLmZuLmJ1aWxkVGFiKGNvbnRleHQs
c2VjdGlvbixkYXRhW3R5cGVdW3NlY3Rpb25dKSk7JHNlY3Rpb249JHNlY3Rpb25z
LmZpbmQoJy5zZWN0aW9uOnZpc2libGUnKTtpZigkc2VjdGlvbi5zaXplKCkpeyRz
ZWN0aW9ucy5hbmltYXRlKHsnaGVpZ2h0Jzokc2VjdGlvbi5vdXRlckhlaWdodCgp
fSwnZmFzdCcpO319CmJyZWFrO2Nhc2UnZ3JvdXBzJzppZighKCdzZWN0aW9uJ2lu
IGRhdGEpKXtjb250aW51ZTt9CnZhciAkc2VjdGlvbj1jb250ZXh0Lm1vZHVsZXMu
dG9vbGJhci4kdG9vbGJhci5maW5kKCdkaXZbcmVsPScrZGF0YS5zZWN0aW9uKydd
LnNlY3Rpb24nKTtmb3IoZ3JvdXAgaW4gZGF0YVt0eXBlXSl7JHNlY3Rpb24uYXBw
ZW5kKCQud2lraUVkaXRvci5tb2R1bGVzLnRvb2xiYXIuZm4uYnVpbGRHcm91cChj
b250ZXh0LGdyb3VwLGRhdGFbdHlwZV1bZ3JvdXBdKSk7fQpicmVhaztjYXNlJ3Rv
b2xzJzppZighKCdzZWN0aW9uJ2luIGRhdGEmJidncm91cCdpbiBkYXRhKSl7Y29u
dGludWU7fQp2YXIgJGdyb3VwPWNvbnRleHQubW9kdWxlcy50b29sYmFyLiR0b29s
YmFyLmZpbmQoJ2RpdltyZWw9JytkYXRhLnNlY3Rpb24rJ10uc2VjdGlvbiAnKydk
aXZbcmVsPScrZGF0YS5ncm91cCsnXS5ncm91cCcpO2Zvcih0b29sIGluIGRhdGFb
dHlwZV0peyRncm91cC5hcHBlbmQoJC53aWtpRWRpdG9yLm1vZHVsZXMudG9vbGJh
ci5mbi5idWlsZFRvb2woY29udGV4dCx0b29sLGRhdGFbdHlwZV1bdG9vbF0pKTt9
CmlmKCRncm91cC5jaGlsZHJlbigpLmxlbmd0aCl7JGdyb3VwLnNob3coKTt9CmJy
ZWFrO2Nhc2UncGFnZXMnOmlmKCEoJ3NlY3Rpb24naW4gZGF0YSkpe2NvbnRpbnVl
O30KdmFyICRwYWdlcz1jb250ZXh0Lm1vZHVsZXMudG9vbGJhci4kdG9vbGJhci5m
aW5kKCdkaXZbcmVsPScrZGF0YS5zZWN0aW9uKyddLnNlY3Rpb24gLnBhZ2VzJyk7
dmFyICRpbmRleD1jb250ZXh0Lm1vZHVsZXMudG9vbGJhci4kdG9vbGJhci5maW5k
KCdkaXZbcmVsPScrZGF0YS5zZWN0aW9uKyddLnNlY3Rpb24gLmluZGV4Jyk7Zm9y
KHBhZ2UgaW4gZGF0YVt0eXBlXSl7JHBhZ2VzLmFwcGVuZCgkLndpa2lFZGl0b3Iu
bW9kdWxlcy50b29sYmFyLmZuLmJ1aWxkUGFnZShjb250ZXh0LHBhZ2UsZGF0YVt0
eXBlXVtwYWdlXSkpOyRpbmRleC5hcHBlbmQoJC53aWtpRWRpdG9yLm1vZHVsZXMu
dG9vbGJhci5mbi5idWlsZEJvb2ttYXJrKGNvbnRleHQscGFnZSxkYXRhW3R5cGVd
W3BhZ2VdKSk7fQokLndpa2lFZGl0b3IubW9kdWxlcy50b29sYmFyLmZuLnVwZGF0
ZUJvb2tsZXRTZWxlY3Rpb24oY29udGV4dCxwYWdlLCRwYWdlcywkaW5kZXgpO2Jy
ZWFrO2Nhc2Uncm93cyc6aWYoISgnc2VjdGlvbidpbiBkYXRhJiYncGFnZSdpbiBk
YXRhKSl7Y29udGludWU7fQp2YXIgJHRhYmxlPWNvbnRleHQubW9kdWxlcy50b29s
YmFyLiR0b29sYmFyLmZpbmQoJ2RpdltyZWw9JytkYXRhLnNlY3Rpb24rJ10uc2Vj
dGlvbiAnKydkaXZbcmVsPScrZGF0YS5wYWdlKyddLnBhZ2UgdGFibGUnKTtmb3Io
cm93IGluIGRhdGFbdHlwZV0peyR0YWJsZS5hcHBlbmQoJC53aWtpRWRpdG9yLm1v
ZHVsZXMudG9vbGJhci5mbi5idWlsZFJvdyhjb250ZXh0LGRhdGFbdHlwZV1bcm93
XSkpO30KYnJlYWs7Y2FzZSdjaGFyYWN0ZXJzJzppZighKCdzZWN0aW9uJ2luIGRh
dGEmJidwYWdlJ2luIGRhdGEpKXtjb250aW51ZTt9CiRjaGFyYWN0ZXJzPWNvbnRl
eHQubW9kdWxlcy50b29sYmFyLiR0b29sYmFyLmZpbmQoJ2RpdltyZWw9JytkYXRh
LnNlY3Rpb24rJ10uc2VjdGlvbiAnKydkaXZbcmVsPScrZGF0YS5wYWdlKyddLnBh
Z2UgZGl2Jyk7dmFyIGFjdGlvbnM9JGNoYXJhY3RlcnMuZGF0YSgnYWN0aW9ucycp
O2ZvcihjaGFyYWN0ZXIgaW4gZGF0YVt0eXBlXSl7JGNoYXJhY3RlcnMuYXBwZW5k
KCQoJC53aWtpRWRpdG9yLm1vZHVsZXMudG9vbGJhci5mbi5idWlsZENoYXJhY3Rl
cihkYXRhW3R5cGVdW2NoYXJhY3Rlcl0sYWN0aW9ucykpLm1vdXNlZG93bihmdW5j
dGlvbihlKXtjb250ZXh0LmZuLnNhdmVTdHVmZkZvcklFKCk7ZS5wcmV2ZW50RGVm
YXVsdCgpO3JldHVybiBmYWxzZTt9KS5jbGljayhmdW5jdGlvbihlKXskLndpa2lF
ZGl0b3IubW9kdWxlcy50b29sYmFyLmZuLmRvQWN0aW9uKCQodGhpcykucGFyZW50
KCkuZGF0YSgnY29udGV4dCcpLCQodGhpcykucGFyZW50KCkuZGF0YSgnYWN0aW9u
cycpWyQodGhpcykuYXR0cigncmVsJyldKTtlLnByZXZlbnREZWZhdWx0KCk7cmV0
dXJuIGZhbHNlO30pKTt9CmJyZWFrO2RlZmF1bHQ6YnJlYWs7fX19LHJlbW92ZUZy
b21Ub29sYmFyOmZ1bmN0aW9uKGNvbnRleHQsZGF0YSl7aWYodHlwZW9mIGRhdGEu
c2VjdGlvbj09J3N0cmluZycpe3ZhciB0YWI9J2Rpdi50YWJzIHNwYW5bcmVsPScr
ZGF0YS5zZWN0aW9uKyddLnRhYic7dmFyIHRhcmdldD0nZGl2W3JlbD0nK2RhdGEu
c2VjdGlvbisnXS5zZWN0aW9uJzt2YXIgZ3JvdXA9bnVsbDtpZih0eXBlb2YgZGF0
YS5ncm91cD09J3N0cmluZycpe3RhcmdldCs9JyBkaXZbcmVsPScrZGF0YS5ncm91
cCsnXS5ncm91cCc7aWYodHlwZW9mIGRhdGEudG9vbD09J3N0cmluZycpe2dyb3Vw
PXRhcmdldDt0YXJnZXQrPScgZGl2W3JlbD0nK2RhdGEudG9vbCsnXS50b29sJzt9
fWVsc2UgaWYodHlwZW9mIGRhdGEucGFnZT09J3N0cmluZycpe3ZhciBpbmRleD10
YXJnZXQrJyBkaXYuaW5kZXggZGl2W3JlbD0nK2RhdGEucGFnZSsnXSc7dGFyZ2V0
Kz0nIGRpdi5wYWdlcyBkaXZbcmVsPScrZGF0YS5wYWdlKyddLnBhZ2UnO2lmKHR5
cGVvZiBkYXRhLmNoYXJhY3Rlcj09J3N0cmluZycpe3RhcmdldCs9JyBhW3JlbD0n
K2RhdGEuY2hhcmFjdGVyKyddJzt9ZWxzZSBpZih0eXBlb2YgZGF0YS5yb3c9PSdu
dW1iZXInKXt0YXJnZXQrPScgdGFibGUgdHI6bm90KDpoYXModGgpKTplcSgnK2Rh
dGEucm93KycpJzt9ZWxzZXtjb250ZXh0Lm1vZHVsZXMudG9vbGJhci4kdG9vbGJh
ci5maW5kKGluZGV4KS5yZW1vdmUoKTskLndpa2lFZGl0b3IubW9kdWxlcy50b29s
YmFyLmZuLnVwZGF0ZUJvb2tsZXRTZWxlY3Rpb24oY29udGV4dCxudWxsLGNvbnRl
eHQubW9kdWxlcy50b29sYmFyLiR0b29sYmFyLmZpbmQodGFyZ2V0KSxjb250ZXh0
Lm1vZHVsZXMudG9vbGJhci4kdG9vbGJhci5maW5kKGluZGV4KSk7fX1lbHNle2Nv
bnRleHQubW9kdWxlcy50b29sYmFyLiR0b29sYmFyLmZpbmQodGFiKS5yZW1vdmUo
KTt9CmNvbnRleHQubW9kdWxlcy50b29sYmFyLiR0b29sYmFyLmZpbmQodGFyZ2V0
KS5yZW1vdmUoKTtpZihncm91cCl7JGdyb3VwPWNvbnRleHQubW9kdWxlcy50b29s
YmFyLiR0b29sYmFyLmZpbmQoZ3JvdXApO2lmKCRncm91cC5jaGlsZHJlbigpLmxl
bmd0aD09MCl7JGdyb3VwLmhpZGUoKTt9fX19fSxldnQ6e3Jlc2l6ZTpmdW5jdGlv
bihjb250ZXh0LGV2ZW50KXtjb250ZXh0LiR1aS5maW5kKCcuc2VjdGlvbnMnKS5o
ZWlnaHQoY29udGV4dC4kdWkuZmluZCgnLnNlY3Rpb25zIC5zZWN0aW9uLXZpc2li
bGUnKS5vdXRlckhlaWdodCgpKTt9LHRvY0NvbGxhcHNlOmZ1bmN0aW9uKGNvbnRl
eHQsZXZlbnQpeyQud2lraUVkaXRvci5tb2R1bGVzLnRvb2xiYXIuZXZ0LnJlc2l6
ZShjb250ZXh0LGV2ZW50KTt9LHRvY0V4cGFuZDpmdW5jdGlvbihjb250ZXh0LGV2
ZW50KXskLndpa2lFZGl0b3IubW9kdWxlcy50b29sYmFyLmV2dC5yZXNpemUoY29u
dGV4dCxldmVudCk7fX0sZm46e2NyZWF0ZTpmdW5jdGlvbihjb250ZXh0LGNvbmZp
Zyl7aWYoJyR0b29sYmFyJ2luIGNvbnRleHQubW9kdWxlcy50b29sYmFyKXtyZXR1
cm47fQpjb250ZXh0Lm1vZHVsZXMudG9vbGJhci4kdG9vbGJhcj0kKCc8ZGl2IC8+
JykuYWRkQ2xhc3MoJ3dpa2lFZGl0b3ItdWktdG9vbGJhcicpLmF0dHIoJ2lkJywn
d2lraUVkaXRvci11aS10b29sYmFyJyk7JC53aWtpRWRpdG9yLm1vZHVsZXMudG9v
bGJhci5mbi5idWlsZChjb250ZXh0LGNvbmZpZyk7Y29udGV4dC4kdWkuZmluZCgn
Lndpa2lFZGl0b3ItdWktdG9wJykuYXBwZW5kKGNvbnRleHQubW9kdWxlcy50b29s
YmFyLiR0b29sYmFyKTt9LGRvQWN0aW9uOmZ1bmN0aW9uKGNvbnRleHQsYWN0aW9u
LHNvdXJjZSl7aWYoJC50cmFja0FjdGlvbiE9dW5kZWZpbmVkJiZzb3VyY2UuY2xv
c2VzdCgnLndpa2lFZGl0b3ItdWktdG9vbGJhcicpLnNpemUoKSl7dmFyIHJlbHM9
W107dmFyIHN0ZXA9c291cmNlO3ZhciBpPTA7d2hpbGUoIXN0ZXAuaGFzQ2xhc3Mo
J3dpa2lFZGl0b3ItdWktdG9vbGJhcicpKXtpZihpPjI1KXticmVhazt9CmkrKzt2
YXIgcmVsPXN0ZXAuYXR0cigncmVsJyk7aWYocmVsKXtyZWxzLnB1c2goc3RlcC5h
dHRyKCdyZWwnKSk7fQpzdGVwPXN0ZXAucGFyZW50KCk7fQpyZWxzLnJldmVyc2Uo
KTt2YXIgaWQ9cmVscy5qb2luKCcuJyk7JC50cmFja0FjdGlvbihpZCk7fQpzd2l0
Y2goYWN0aW9uLnR5cGUpe2Nhc2UncmVwbGFjZSc6Y2FzZSdlbmNhcHN1bGF0ZSc6
dmFyIHBhcnRzPXsncHJlJzokLndpa2lFZGl0b3IuYXV0b01zZyhhY3Rpb24ub3B0
aW9ucywncHJlJyksJ3BlcmknOiQud2lraUVkaXRvci5hdXRvTXNnKGFjdGlvbi5v
cHRpb25zLCdwZXJpJyksJ3Bvc3QnOiQud2lraUVkaXRvci5hdXRvTXNnKGFjdGlv
bi5vcHRpb25zLCdwb3N0Jyl9O3ZhciByZXBsYWNlPWFjdGlvbi50eXBlPT0ncmVw
bGFjZSc7aWYoJ3JlZ2V4J2luIGFjdGlvbi5vcHRpb25zJiYncmVnZXhSZXBsYWNl
J2luIGFjdGlvbi5vcHRpb25zKXt2YXIgc2VsZWN0aW9uPWNvbnRleHQuJHRleHRh
cmVhLnRleHRTZWxlY3Rpb24oJ2dldFNlbGVjdGlvbicpO2lmKHNlbGVjdGlvbiE9
JycmJnNlbGVjdGlvbi5tYXRjaChhY3Rpb24ub3B0aW9ucy5yZWdleCkpe3BhcnRz
LnBlcmk9c2VsZWN0aW9uLnJlcGxhY2UoYWN0aW9uLm9wdGlvbnMucmVnZXgsYWN0
aW9uLm9wdGlvbnMucmVnZXhSZXBsYWNlKTtwYXJ0cy5wcmU9cGFydHMucG9zdD0n
JztyZXBsYWNlPXRydWU7fX0KY29udGV4dC4kdGV4dGFyZWEudGV4dFNlbGVjdGlv
bignZW5jYXBzdWxhdGVTZWxlY3Rpb24nLCQuZXh0ZW5kKHt9LGFjdGlvbi5vcHRp
b25zLHBhcnRzLHsncmVwbGFjZSc6cmVwbGFjZX0pKTtpZih0eXBlb2YgY29udGV4
dC4kaWZyYW1lIT09J3VuZGVmaW5lZCcpe2NvbnRleHQuJGlmcmFtZVswXS5jb250
ZW50V2luZG93LmZvY3VzKCk7fQpicmVhaztjYXNlJ2NhbGxiYWNrJzppZih0eXBl
b2YgYWN0aW9uLmV4ZWN1dGU9PSdmdW5jdGlvbicpe2FjdGlvbi5leGVjdXRlKGNv
bnRleHQpO30KYnJlYWs7Y2FzZSdkaWFsb2cnOmNvbnRleHQuZm4uc2F2ZVNlbGVj
dGlvbigpO2NvbnRleHQuJHRleHRhcmVhLndpa2lFZGl0b3IoJ29wZW5EaWFsb2cn
LGFjdGlvbi5tb2R1bGUpO2JyZWFrO2RlZmF1bHQ6YnJlYWs7fX0sYnVpbGRHcm91
cDpmdW5jdGlvbihjb250ZXh0LGlkLGdyb3VwKXt2YXIgJGdyb3VwPSQoJzxkaXYg
Lz4nKS5hdHRyKHsnY2xhc3MnOidncm91cCBncm91cC0nK2lkLCdyZWwnOmlkfSk7
dmFyIGxhYmVsPSQud2lraUVkaXRvci5hdXRvTXNnKGdyb3VwLCdsYWJlbCcpO2lm
KGxhYmVsKXskZ3JvdXAuYXBwZW5kKCc8ZGl2IGNsYXNzPSJsYWJlbCI+JytsYWJl
bCsnPC9kaXY+Jyl9CnZhciBlbXB0eT10cnVlO2lmKCd0b29scydpbiBncm91cCl7
Zm9yKHRvb2wgaW4gZ3JvdXAudG9vbHMpe3ZhciB0b29sPSQud2lraUVkaXRvci5t
b2R1bGVzLnRvb2xiYXIuZm4uYnVpbGRUb29sKGNvbnRleHQsdG9vbCxncm91cC50
b29sc1t0b29sXSk7aWYodG9vbCl7ZW1wdHk9ZW1wdHkmJnRvb2wuY3NzKCdkaXNw
bGF5Jyk9PSdub25lJzskZ3JvdXAuYXBwZW5kKHRvb2wpO319fQppZihlbXB0eSl7
JGdyb3VwLmhpZGUoKTt9CnJldHVybiAkZ3JvdXA7fSxidWlsZFRvb2w6ZnVuY3Rp
b24oY29udGV4dCxpZCx0b29sKXtpZignZmlsdGVycydpbiB0b29sKXtmb3IoZmls
dGVyIGluIHRvb2wuZmlsdGVycyl7aWYoJCh0b29sLmZpbHRlcnNbZmlsdGVyXSku
c2l6ZSgpPT0wKXtyZXR1cm4gbnVsbDt9fX0KdmFyIGxhYmVsPSQud2lraUVkaXRv
ci5hdXRvTXNnKHRvb2wsJ2xhYmVsJyk7c3dpdGNoKHRvb2wudHlwZSl7Y2FzZSdi
dXR0b24nOnZhciBzcmM9JC53aWtpRWRpdG9yLmF1dG9JY29uKHRvb2wuaWNvbiwk
Lndpa2lFZGl0b3IuaW1nUGF0aCsndG9vbGJhci8nKTt2YXIgJGJ1dHRvbj1udWxs
O2lmKCdvZmZzZXQnaW4gdG9vbCl7dmFyIG9mZnNldE9ySWNvbj0kLndpa2lFZGl0
b3IuYXV0b0ljb25Pck9mZnNldCh0b29sLmljb24sdG9vbC5vZmZzZXQsJC53aWtp
RWRpdG9yLmltZ1BhdGgrJ3Rvb2xiYXIvJyk7aWYodHlwZW9mIG9mZnNldE9ySWNv
bj09J29iamVjdCcpeyRidXR0b249JCgnPHNwYW4gLz4nKS5hdHRyKHsnYWx0Jzps
YWJlbCwndGl0bGUnOmxhYmVsLCdyZWwnOmlkLCdjbGFzcyc6J3dpa2lFZGl0b3It
dG9vbGJhci1zcHJpdGVkQnV0dG9uJ30pLnRleHQobGFiZWwpLmNzcygnYmFja2dy
b3VuZFBvc2l0aW9uJyxvZmZzZXRPckljb25bMF0rJ3B4ICcrb2Zmc2V0T3JJY29u
WzFdKydweCcpO319CmlmKCEkYnV0dG9uKXskYnV0dG9uPSQoJzxpbWcgLz4nKS5h
dHRyKHsnc3JjJzpzcmMsJ3dpZHRoJzoyMiwnaGVpZ2h0JzoyMiwnYWx0JzpsYWJl
bCwndGl0bGUnOmxhYmVsLCdyZWwnOmlkLCdjbGFzcyc6J3Rvb2wgdG9vbC1idXR0
b24nfSk7fQppZignYWN0aW9uJ2luIHRvb2wpeyRidXR0b24uZGF0YSgnYWN0aW9u
Jyx0b29sLmFjdGlvbikuZGF0YSgnY29udGV4dCcsY29udGV4dCkubW91c2Vkb3du
KGZ1bmN0aW9uKGUpe2NvbnRleHQuZm4uc2F2ZVN0dWZmRm9ySUUoKTtlLnByZXZl
bnREZWZhdWx0KCk7cmV0dXJuIGZhbHNlO30pLmNsaWNrKGZ1bmN0aW9uKGUpeyQu
d2lraUVkaXRvci5tb2R1bGVzLnRvb2xiYXIuZm4uZG9BY3Rpb24oJCh0aGlzKS5k
YXRhKCdjb250ZXh0JyksJCh0aGlzKS5kYXRhKCdhY3Rpb24nKSwkKHRoaXMpKTtl
LnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGZhbHNlO30pO2lmKHRvb2wuYWN0aW9u
LnR5cGU9PSdkaWFsb2cnJiYhKHRvb2wuYWN0aW9uLm1vZHVsZSBpbiAkLndpa2lF
ZGl0b3IubW9kdWxlcy5kaWFsb2dzLm1vZHVsZXMpKXskYnV0dG9uLmhpZGUoKTtj
b250ZXh0LiR0ZXh0YXJlYS5iaW5kKCd3aWtpRWRpdG9yLWRpYWxvZ3Mtc2V0dXAt
Jyt0b29sLmFjdGlvbi5tb2R1bGUse2J1dHRvbjokYnV0dG9ufSxmdW5jdGlvbihl
dmVudCl7ZXZlbnQuZGF0YS5idXR0b24uc2hvdygpLnBhcmVudCgpLnNob3coKTt9
KTt9fQpyZXR1cm4gJGJ1dHRvbjtjYXNlJ3NlbGVjdCc6dmFyICRzZWxlY3Q9JCgn
PGRpdiAvPicpLmF0dHIoeydyZWwnOmlkLCdjbGFzcyc6J3Rvb2wgdG9vbC1zZWxl
Y3QnfSk7dmFyICRvcHRpb25zPSQoJzxkaXYgLz4nKS5hZGRDbGFzcygnb3B0aW9u
cycpO2lmKCdsaXN0J2luIHRvb2wpe2ZvcihvcHRpb24gaW4gdG9vbC5saXN0KXt2
YXIgb3B0aW9uTGFiZWw9JC53aWtpRWRpdG9yLmF1dG9Nc2codG9vbC5saXN0W29w
dGlvbl0sJ2xhYmVsJyk7JG9wdGlvbnMuYXBwZW5kKCQoJzxhIC8+JykuZGF0YSgn
YWN0aW9uJyx0b29sLmxpc3Rbb3B0aW9uXS5hY3Rpb24pLmRhdGEoJ2NvbnRleHQn
LGNvbnRleHQpLm1vdXNlZG93bihmdW5jdGlvbihlKXtjb250ZXh0LmZuLnNhdmVT
dHVmZkZvcklFKCk7ZS5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBmYWxzZTt9KS5j
bGljayhmdW5jdGlvbihlKXskLndpa2lFZGl0b3IubW9kdWxlcy50b29sYmFyLmZu
LmRvQWN0aW9uKCQodGhpcykuZGF0YSgnY29udGV4dCcpLCQodGhpcykuZGF0YSgn
YWN0aW9uJyksJCh0aGlzKSk7aWYoJCh0aGlzKS5wYXJlbnQoKS5pcygnOnZpc2li
bGUnKSl7JCh0aGlzKS5wYXJlbnQoKS5hbmltYXRlKHsnb3BhY2l0eSc6J3RvZ2ds
ZSd9LCdmYXN0Jyk7fQplLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGZhbHNlO30p
LnRleHQob3B0aW9uTGFiZWwpLmFkZENsYXNzKCdvcHRpb24nKS5hdHRyKHsncmVs
JzpvcHRpb24sJ2hyZWYnOicjJ30pKTt9fQokc2VsZWN0LmFwcGVuZCgkKCc8ZGl2
IC8+JykuYWRkQ2xhc3MoJ21lbnUnKS5hcHBlbmQoJG9wdGlvbnMpKTskc2VsZWN0
LmFwcGVuZCgkKCc8YSAvPicpLmFkZENsYXNzKCdsYWJlbCcpLnRleHQobGFiZWwp
LmRhdGEoJ29wdGlvbnMnLCRvcHRpb25zKS5hdHRyKCdocmVmJywnIycpLm1vdXNl
ZG93bihmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGZhbHNl
O30pLmNsaWNrKGZ1bmN0aW9uKGUpeyQodGhpcykuZGF0YSgnb3B0aW9ucycpLmFu
aW1hdGUoeydvcGFjaXR5JzondG9nZ2xlJ30sJ2Zhc3QnKTtlLnByZXZlbnREZWZh
dWx0KCk7cmV0dXJuIGZhbHNlO30pKTtyZXR1cm4gJHNlbGVjdDtkZWZhdWx0OnJl
dHVybiBudWxsO319LGJ1aWxkQm9va21hcms6ZnVuY3Rpb24oY29udGV4dCxpZCxw
YWdlKXt2YXIgbGFiZWw9JC53aWtpRWRpdG9yLmF1dG9Nc2cocGFnZSwnbGFiZWwn
KTtyZXR1cm4gJCgnPGRpdiAvPicpLnRleHQobGFiZWwpLmF0dHIoJ3JlbCcsaWQp
LmRhdGEoJ2NvbnRleHQnLGNvbnRleHQpLm1vdXNlZG93bihmdW5jdGlvbihlKXtl
LnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGZhbHNlO30pLmNsaWNrKGZ1bmN0aW9u
KGV2ZW50KXskKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpLmZpbmQoJy5wYWdlJyku
aGlkZSgpOyQodGhpcykucGFyZW50KCkucGFyZW50KCkuZmluZCgnLnBhZ2UtJysk
KHRoaXMpLmF0dHIoJ3JlbCcpKS5zaG93KCk7JCh0aGlzKS5zaWJsaW5ncygpLnJl
bW92ZUNsYXNzKCdjdXJyZW50Jyk7JCh0aGlzKS5hZGRDbGFzcygnY3VycmVudCcp
O3ZhciBzZWN0aW9uPSQodGhpcykucGFyZW50KCkucGFyZW50KCkuYXR0cigncmVs
Jyk7JC5jb29raWUoJ3dpa2lFZGl0b3ItJyskKHRoaXMpLmRhdGEoJ2NvbnRleHQn
KS5pbnN0YW5jZSsnLWJvb2tsZXQtJytzZWN0aW9uKyctcGFnZScsJCh0aGlzKS5h
dHRyKCdyZWwnKSx7ZXhwaXJlczozMCxwYXRoOicvJ30pO2lmKCQudHJhY2tBY3Rp
b24hPXVuZGVmaW5lZCl7JC50cmFja0FjdGlvbihzZWN0aW9uKycuJyskKHRoaXMp
LmF0dHIoJ3JlbCcpKTt9CmV2ZW50LnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGZh
bHNlO30pfSxidWlsZFBhZ2U6ZnVuY3Rpb24oY29udGV4dCxpZCxwYWdlKXt2YXIg
JHBhZ2U9JCgnPGRpdiAvPicpLmF0dHIoeydjbGFzcyc6J3BhZ2UgcGFnZS0nK2lk
LCdyZWwnOmlkfSk7c3dpdGNoKHBhZ2UubGF5b3V0KXtjYXNlJ3RhYmxlJzokcGFn
ZS5hZGRDbGFzcygncGFnZS10YWJsZScpO3ZhciBodG1sPSc8dGFibGUgY2VsbHBh
ZGRpbmc9MCBjZWxsc3BhY2luZz0wICcrJ2JvcmRlcj0wIHdpZHRoPSIxMDAlIiBj
bGFzcz0idGFibGUgdGFibGUtJytpZCsnIj4nO2lmKCdoZWFkaW5ncydpbiBwYWdl
KXtodG1sKz0kLndpa2lFZGl0b3IubW9kdWxlcy50b29sYmFyLmZuLmJ1aWxkSGVh
ZGluZyhjb250ZXh0LHBhZ2UuaGVhZGluZ3MpfQppZigncm93cydpbiBwYWdlKXtm
b3Iocm93IGluIHBhZ2Uucm93cyl7aHRtbCs9JC53aWtpRWRpdG9yLm1vZHVsZXMu
dG9vbGJhci5mbi5idWlsZFJvdyhjb250ZXh0LHBhZ2Uucm93c1tyb3ddKX19CiRw
YWdlLmh0bWwoaHRtbCk7YnJlYWs7Y2FzZSdjaGFyYWN0ZXJzJzokcGFnZS5hZGRD
bGFzcygncGFnZS1jaGFyYWN0ZXJzJyk7JGNoYXJhY3RlcnM9JCgnPGRpdiAvPicp
LmRhdGEoJ2NvbnRleHQnLGNvbnRleHQpLmRhdGEoJ2FjdGlvbnMnLHt9KTt2YXIg
YWN0aW9ucz0kY2hhcmFjdGVycy5kYXRhKCdhY3Rpb25zJyk7aWYoJ2xhbmd1YWdl
J2luIHBhZ2UpeyRjaGFyYWN0ZXJzLmF0dHIoJ2xhbmcnLHBhZ2UubGFuZ3VhZ2Up
O30KaWYoJ2RpcmVjdGlvbidpbiBwYWdlKXskY2hhcmFjdGVycy5hdHRyKCdkaXIn
LHBhZ2UuZGlyZWN0aW9uKTt9CmlmKCdjaGFyYWN0ZXJzJ2luIHBhZ2Upe3ZhciBo
dG1sPScnO2Zvcih2YXIgaT0wO2k8cGFnZS5jaGFyYWN0ZXJzLmxlbmd0aDtpKysp
e2h0bWwrPSQud2lraUVkaXRvci5tb2R1bGVzLnRvb2xiYXIuZm4uYnVpbGRDaGFy
YWN0ZXIocGFnZS5jaGFyYWN0ZXJzW2ldLGFjdGlvbnMpO30KJGNoYXJhY3RlcnMu
aHRtbChodG1sKS5jaGlsZHJlbigpLm1vdXNlZG93bihmdW5jdGlvbihlKXtjb250
ZXh0LmZuLnNhdmVTdHVmZkZvcklFKCk7ZS5wcmV2ZW50RGVmYXVsdCgpO3JldHVy
biBmYWxzZTt9KS5jbGljayhmdW5jdGlvbihlKXskLndpa2lFZGl0b3IubW9kdWxl
cy50b29sYmFyLmZuLmRvQWN0aW9uKCQodGhpcykucGFyZW50KCkuZGF0YSgnY29u
dGV4dCcpLCQodGhpcykucGFyZW50KCkuZGF0YSgnYWN0aW9ucycpWyQodGhpcyku
YXR0cigncmVsJyldLCQodGhpcykpO2UucHJldmVudERlZmF1bHQoKTtyZXR1cm4g
ZmFsc2U7fSk7fQokcGFnZS5hcHBlbmQoJGNoYXJhY3RlcnMpO2JyZWFrO30KcmV0
dXJuICRwYWdlO30sYnVpbGRIZWFkaW5nOmZ1bmN0aW9uKGNvbnRleHQsaGVhZGlu
Z3Mpe3ZhciBodG1sPSc8dHI+Jztmb3IoaGVhZGluZyBpbiBoZWFkaW5ncyl7aHRt
bCs9Jzx0aD4nKyQud2lraUVkaXRvci5hdXRvTXNnKGhlYWRpbmdzW2hlYWRpbmdd
LFsnaHRtbCcsJ3RleHQnXSkrJzwvdGg+Jzt9CnJldHVybiBodG1sO30sYnVpbGRS
b3c6ZnVuY3Rpb24oY29udGV4dCxyb3cpe3ZhciBodG1sPSc8dHI+Jztmb3IoY2Vs
bCBpbiByb3cpe2h0bWwrPSc8dGQgY2xhc3M9ImNlbGwgY2VsbC0nK2NlbGwrJyIg
dmFsaWduPSJ0b3AiPjxzcGFuPicrCiQud2lraUVkaXRvci5hdXRvTXNnKHJvd1tj
ZWxsXSxbJ2h0bWwnLCd0ZXh0J10pKyc8L3NwYW4+PC90ZD4nO30KaHRtbCs9Jzwv
dHI+JztyZXR1cm4gaHRtbDt9LGJ1aWxkQ2hhcmFjdGVyOmZ1bmN0aW9uKGNoYXJh
Y3RlcixhY3Rpb25zKXtpZih0eXBlb2YgY2hhcmFjdGVyPT0nc3RyaW5nJyl7Y2hh
cmFjdGVyPXsnbGFiZWwnOmNoYXJhY3RlciwnYWN0aW9uJzp7J3R5cGUnOidyZXBs
YWNlJywnb3B0aW9ucyc6eydwZXJpJzpjaGFyYWN0ZXIsJ3NlbGVjdFBlcmknOmZh
bHNlfX19O31lbHNlIGlmKDAgaW4gY2hhcmFjdGVyJiYxIGluIGNoYXJhY3Rlcil7
Y2hhcmFjdGVyPXsnbGFiZWwnOmNoYXJhY3RlclswXSwnYWN0aW9uJzp7J3R5cGUn
OidyZXBsYWNlJywnb3B0aW9ucyc6eydwZXJpJzpjaGFyYWN0ZXJbMV0sJ3NlbGVj
dFBlcmknOmZhbHNlfX19O30KaWYoJ2FjdGlvbidpbiBjaGFyYWN0ZXImJidsYWJl
bCdpbiBjaGFyYWN0ZXIpe2FjdGlvbnNbY2hhcmFjdGVyLmxhYmVsXT1jaGFyYWN0
ZXIuYWN0aW9uO3JldHVybic8c3BhbiByZWw9IicrY2hhcmFjdGVyLmxhYmVsKyci
PicrY2hhcmFjdGVyLmxhYmVsKyc8L3NwYW4+Jzt9fSxidWlsZFRhYjpmdW5jdGlv
bihjb250ZXh0LGlkLHNlY3Rpb24pe3ZhciBzZWxlY3RlZD0kLmNvb2tpZSgnd2lr
aUVkaXRvci0nK2NvbnRleHQuaW5zdGFuY2UrJy10b29sYmFyLXNlY3Rpb24nKTtp
ZihzZWxlY3RlZCE9bnVsbCl7JC5jb29raWUoJ3dpa2lFZGl0b3ItJytjb250ZXh0
Lmluc3RhbmNlKyctdG9vbGJhci1zZWN0aW9uJyxzZWxlY3RlZCx7ZXhwaXJlczoz
MCxwYXRoOicvJ30pO30KcmV0dXJuICQoJzxzcGFuIC8+JykuYXR0cih7J2NsYXNz
JzondGFiIHRhYi0nK2lkLCdyZWwnOmlkfSkuYXBwZW5kKCQoJzxhIC8+JykuYWRk
Q2xhc3Moc2VsZWN0ZWQ9PWlkPydjdXJyZW50JzpudWxsKS5hdHRyKCdocmVmJywn
IycpLnRleHQoJC53aWtpRWRpdG9yLmF1dG9Nc2coc2VjdGlvbiwnbGFiZWwnKSku
ZGF0YSgnY29udGV4dCcsY29udGV4dCkubW91c2V1cChmdW5jdGlvbihlKXskKHRo
aXMpLmJsdXIoKTt9KS5tb3VzZWRvd24oZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVm
YXVsdCgpO3JldHVybiBmYWxzZTt9KS5jbGljayhmdW5jdGlvbihlKXt2YXIgJHNl
Y3Rpb25zPSQodGhpcykuZGF0YSgnY29udGV4dCcpLiR1aS5maW5kKCcuc2VjdGlv
bnMnKTt2YXIgJHNlY3Rpb249JCh0aGlzKS5kYXRhKCdjb250ZXh0JykuJHVpLmZp
bmQoJy5zZWN0aW9uLScrJCh0aGlzKS5wYXJlbnQoKS5hdHRyKCdyZWwnKSk7dmFy
IHNob3c9JHNlY3Rpb24uY3NzKCdkaXNwbGF5Jyk9PSdub25lJzskcHJldmlvdXNT
ZWN0aW9ucz0kc2VjdGlvbi5wYXJlbnQoKS5maW5kKCcuc2VjdGlvbi12aXNpYmxl
Jyk7JHByZXZpb3VzU2VjdGlvbnMuY3NzKCdwb3NpdGlvbicsJ2Fic29sdXRlJyk7
JHByZXZpb3VzU2VjdGlvbnMucmVtb3ZlQ2xhc3MoJ3NlY3Rpb24tdmlzaWJsZScp
OyRwcmV2aW91c1NlY3Rpb25zLmZhZGVPdXQoJ2Zhc3QnLGZ1bmN0aW9uKCl7JCh0
aGlzKS5jc3MoJ3Bvc2l0aW9uJywncmVsYXRpdmUnKTt9KTskKHRoaXMpLnBhcmVu
dCgpLnBhcmVudCgpLmZpbmQoJ2EnKS5yZW1vdmVDbGFzcygnY3VycmVudCcpOyRz
ZWN0aW9ucy5jc3MoJ292ZXJmbG93JywnaGlkZGVuJyk7ZnVuY3Rpb24gYW5pbWF0
ZSgkdGhpcyl7JHNlY3Rpb25zLmNzcygnZGlzcGxheScsJ2Jsb2NrJykuYW5pbWF0
ZSh7J2hlaWdodCc6JHNlY3Rpb24ub3V0ZXJIZWlnaHQoKX0sJHNlY3Rpb24ub3V0
ZXJIZWlnaHQoKSoyLGZ1bmN0aW9uKCl7JCh0aGlzKS5jc3MoJ292ZXJmbG93Jywn
dmlzaWJsZScpLmNzcygnaGVpZ2h0JywnYXV0bycpO2NvbnRleHQuZm4udHJpZ2dl
cigncmVzaXplJyk7fSk7fQppZihzaG93KXskc2VjdGlvbi5hZGRDbGFzcygnc2Vj
dGlvbi12aXNpYmxlJyk7JHNlY3Rpb24uZmFkZUluKCdmYXN0Jyk7aWYoJHNlY3Rp
b24uaGFzQ2xhc3MoJ2xvYWRpbmcnKSl7dmFyICR0aGlzPSQodGhpcyk7JHRoaXMu
YWRkQ2xhc3MoJ2N1cnJlbnQgbG9hZGluZycpO3NldFRpbWVvdXQoZnVuY3Rpb24o
KXskc2VjdGlvbi50cmlnZ2VyKCdsb2FkU2VjdGlvbicpO2FuaW1hdGUoJCh0aGlz
KSk7JHRoaXMucmVtb3ZlQ2xhc3MoJ2xvYWRpbmcnKTt9LDEwMDApO31lbHNle2Fu
aW1hdGUoJCh0aGlzKSk7JCh0aGlzKS5hZGRDbGFzcygnY3VycmVudCcpO319ZWxz
ZXskc2VjdGlvbnMuY3NzKCdoZWlnaHQnLCRzZWN0aW9uLm91dGVySGVpZ2h0KCkp
LmFuaW1hdGUoeydoZWlnaHQnOidoaWRlJ30sJHNlY3Rpb24ub3V0ZXJIZWlnaHQo
KSoyLGZ1bmN0aW9uKCl7JCh0aGlzKS5jc3MoeydvdmVyZmxvdyc6J3Zpc2libGUn
LCdoZWlnaHQnOjB9KTtjb250ZXh0LmZuLnRyaWdnZXIoJ3Jlc2l6ZScpO30pO30K
aWYoJC50cmFja0FjdGlvbiE9dW5kZWZpbmVkKXskLnRyYWNrQWN0aW9uKCRzZWN0
aW9uLmF0dHIoJ3JlbCcpKycuJysoc2hvdz8nc2hvdyc6J2hpZGUnKSk7fQokLmNv
b2tpZSgnd2lraUVkaXRvci0nKyQodGhpcykuZGF0YSgnY29udGV4dCcpLmluc3Rh
bmNlKyctdG9vbGJhci1zZWN0aW9uJyxzaG93PyRzZWN0aW9uLmF0dHIoJ3JlbCcp
Om51bGwse2V4cGlyZXM6MzAscGF0aDonLyd9KTtlLnByZXZlbnREZWZhdWx0KCk7
cmV0dXJuIGZhbHNlO30pKTt9LGJ1aWxkU2VjdGlvbjpmdW5jdGlvbihjb250ZXh0
LGlkLHNlY3Rpb24pe3ZhciAkc2VjdGlvbj0kKCc8ZGl2IC8+JykuYXR0cih7J2Ns
YXNzJzpzZWN0aW9uLnR5cGUrJyBzZWN0aW9uIHNlY3Rpb24tJytpZCwncmVsJzpp
ZH0pO3ZhciBzZWxlY3RlZD0kLmNvb2tpZSgnd2lraUVkaXRvci0nK2NvbnRleHQu
aW5zdGFuY2UrJy10b29sYmFyLXNlY3Rpb24nKTt2YXIgc2hvdz1zZWxlY3RlZD09
aWQ7aWYodHlwZW9mIHNlY3Rpb24uZGVmZXJMb2FkIT0ndW5kZWZpbmVkJyYmc2Vj
dGlvbi5kZWZlckxvYWQmJmlkIT09J21haW4nJiYhc2hvdyl7JHNlY3Rpb24uYWRk
Q2xhc3MoJ2xvYWRpbmcnKS5hcHBlbmQoJCgnPGRpdiAvPicpLmFkZENsYXNzKCdz
cGlubmVyJykpOyRzZWN0aW9uLmJpbmQoJ2xvYWRTZWN0aW9uJyxmdW5jdGlvbigp
eyQud2lraUVkaXRvci5tb2R1bGVzLnRvb2xiYXIuZm4ucmVhbGx5QnVpbGRTZWN0
aW9uKGNvbnRleHQsaWQsc2VjdGlvbiwkc2VjdGlvbik7JHNlY3Rpb24ucmVtb3Zl
Q2xhc3MoJ2xvYWRpbmcnKTt9KTt9ZWxzZXskLndpa2lFZGl0b3IubW9kdWxlcy50
b29sYmFyLmZuLnJlYWxseUJ1aWxkU2VjdGlvbihjb250ZXh0LGlkLHNlY3Rpb24s
JHNlY3Rpb24pO30KaWYoaWQhPT0nbWFpbicpeyRzZWN0aW9uLmNzcygnZGlzcGxh
eScsc2hvdz8nYmxvY2snOidub25lJyk7aWYoc2hvdykKJHNlY3Rpb24uYWRkQ2xh
c3MoJ3NlY3Rpb24tdmlzaWJsZScpO30KcmV0dXJuICRzZWN0aW9uO30scmVhbGx5
QnVpbGRTZWN0aW9uOmZ1bmN0aW9uKGNvbnRleHQsaWQsc2VjdGlvbiwkc2VjdGlv
bil7Y29udGV4dC4kdGV4dGFyZWEudHJpZ2dlcignd2lraUVkaXRvci10b29sYmFy
LWJ1aWxkU2VjdGlvbi0nKyRzZWN0aW9uLmF0dHIoJ3JlbCcpLFtzZWN0aW9uXSk7
c3dpdGNoKHNlY3Rpb24udHlwZSl7Y2FzZSd0b29sYmFyJzppZignZ3JvdXBzJ2lu
IHNlY3Rpb24pe2Zvcihncm91cCBpbiBzZWN0aW9uLmdyb3Vwcyl7JHNlY3Rpb24u
YXBwZW5kKCQud2lraUVkaXRvci5tb2R1bGVzLnRvb2xiYXIuZm4uYnVpbGRHcm91
cChjb250ZXh0LGdyb3VwLHNlY3Rpb24uZ3JvdXBzW2dyb3VwXSkpO319CmJyZWFr
O2Nhc2UnYm9va2xldCc6dmFyICRwYWdlcz0kKCc8ZGl2IC8+JykuYWRkQ2xhc3Mo
J3BhZ2VzJyk7dmFyICRpbmRleD0kKCc8ZGl2IC8+JykuYWRkQ2xhc3MoJ2luZGV4
Jyk7aWYoJ3BhZ2VzJ2luIHNlY3Rpb24pe2ZvcihwYWdlIGluIHNlY3Rpb24ucGFn
ZXMpeyRwYWdlcy5hcHBlbmQoJC53aWtpRWRpdG9yLm1vZHVsZXMudG9vbGJhci5m
bi5idWlsZFBhZ2UoY29udGV4dCxwYWdlLHNlY3Rpb24ucGFnZXNbcGFnZV0pKTsk
aW5kZXguYXBwZW5kKCQud2lraUVkaXRvci5tb2R1bGVzLnRvb2xiYXIuZm4uYnVp
bGRCb29rbWFyayhjb250ZXh0LHBhZ2Usc2VjdGlvbi5wYWdlc1twYWdlXSkpO319
CiRzZWN0aW9uLmFwcGVuZCgkaW5kZXgpLmFwcGVuZCgkcGFnZXMpOyQud2lraUVk
aXRvci5tb2R1bGVzLnRvb2xiYXIuZm4udXBkYXRlQm9va2xldFNlbGVjdGlvbihj
b250ZXh0LGlkLCRwYWdlcywkaW5kZXgpO2JyZWFrO319LHVwZGF0ZUJvb2tsZXRT
ZWxlY3Rpb246ZnVuY3Rpb24oY29udGV4dCxpZCwkcGFnZXMsJGluZGV4KXt2YXIg
Y29va2llPSd3aWtpRWRpdG9yLScrY29udGV4dC5pbnN0YW5jZSsnLWJvb2tsZXQt
JytpZCsnLXBhZ2UnO3ZhciBzZWxlY3RlZD0kLmNvb2tpZShjb29raWUpO2lmKHNl
bGVjdGVkIT1udWxsKXskLmNvb2tpZShjb29raWUsc2VsZWN0ZWQse2V4cGlyZXM6
MzAscGF0aDonLyd9KTt9CnZhciAkc2VsZWN0ZWRJbmRleD0kaW5kZXguZmluZCgn
KltyZWw9JytzZWxlY3RlZCsnXScpO2lmKCRzZWxlY3RlZEluZGV4LnNpemUoKT09
MCl7c2VsZWN0ZWQ9JGluZGV4LmNoaWxkcmVuKCkuZXEoMCkuYXR0cigncmVsJyk7
JC5jb29raWUoY29va2llLHNlbGVjdGVkLHtleHBpcmVzOjMwLHBhdGg6Jy8nfSk7
fQokcGFnZXMuY2hpbGRyZW4oKS5oaWRlKCk7JHBhZ2VzLmZpbmQoJypbcmVsPScr
c2VsZWN0ZWQrJ10nKS5zaG93KCk7JGluZGV4LmNoaWxkcmVuKCkucmVtb3ZlQ2xh
c3MoJ2N1cnJlbnQnKTskc2VsZWN0ZWRJbmRleC5hZGRDbGFzcygnY3VycmVudCcp
O30sYnVpbGQ6ZnVuY3Rpb24oY29udGV4dCxjb25maWcpe3ZhciAkdGFicz0kKCc8
ZGl2IC8+JykuYWRkQ2xhc3MoJ3RhYnMnKS5hcHBlbmRUbyhjb250ZXh0Lm1vZHVs
ZXMudG9vbGJhci4kdG9vbGJhcik7dmFyICRzZWN0aW9ucz0kKCc8ZGl2IC8+Jyku
YWRkQ2xhc3MoJ3NlY3Rpb25zJykuYXBwZW5kVG8oY29udGV4dC5tb2R1bGVzLnRv
b2xiYXIuJHRvb2xiYXIpO2NvbnRleHQubW9kdWxlcy50b29sYmFyLiR0b29sYmFy
LmFwcGVuZCgkKCc8ZGl2IC8+JykuY3NzKCdjbGVhcicsJ2JvdGgnKSk7dmFyIHNl
Y3Rpb25RdWV1ZT1bXTtmb3Ioc2VjdGlvbiBpbiBjb25maWcpe2lmKHNlY3Rpb249
PSdtYWluJyl7Y29udGV4dC5tb2R1bGVzLnRvb2xiYXIuJHRvb2xiYXIucHJlcGVu
ZCgkLndpa2lFZGl0b3IubW9kdWxlcy50b29sYmFyLmZuLmJ1aWxkU2VjdGlvbihj
b250ZXh0LHNlY3Rpb24sY29uZmlnW3NlY3Rpb25dKSk7fWVsc2V7c2VjdGlvblF1
ZXVlLnB1c2goeyckc2VjdGlvbnMnOiRzZWN0aW9ucywnY29udGV4dCc6Y29udGV4
dCwnaWQnOnNlY3Rpb24sJ2NvbmZpZyc6Y29uZmlnW3NlY3Rpb25dfSk7JHRhYnMu
YXBwZW5kKCQud2lraUVkaXRvci5tb2R1bGVzLnRvb2xiYXIuZm4uYnVpbGRUYWIo
Y29udGV4dCxzZWN0aW9uLGNvbmZpZ1tzZWN0aW9uXSkpO319CiQuZWFjaEFzeW5j
KHNlY3Rpb25RdWV1ZSx7J2J1bGsnOjAsJ2VuZCc6ZnVuY3Rpb24oKXt2YXIgb2xk
VmFsdWU9JCgnYm9keScpLmNzcygncG9zaXRpb24nKTskKCdib2R5JykuY3NzKCdw
b3NpdGlvbicsJ3N0YXRpYycpOyQoJ2JvZHknKS5jc3MoJ3Bvc2l0aW9uJyxvbGRW
YWx1ZSk7fSwnbG9vcCc6ZnVuY3Rpb24oaSxzKXtzLiRzZWN0aW9ucy5hcHBlbmQo
JC53aWtpRWRpdG9yLm1vZHVsZXMudG9vbGJhci5mbi5idWlsZFNlY3Rpb24ocy5j
b250ZXh0LHMuaWQscy5jb25maWcpKTt2YXIgJHNlY3Rpb249cy4kc2VjdGlvbnMu
ZmluZCgnLnNlY3Rpb246dmlzaWJsZScpO2lmKCRzZWN0aW9uLnNpemUoKSl7JHNl
Y3Rpb25zLmFuaW1hdGUoeydoZWlnaHQnOiRzZWN0aW9uLm91dGVySGVpZ2h0KCl9
LCRzZWN0aW9uLm91dGVySGVpZ2h0KCkqMixmdW5jdGlvbigpe2NvbnRleHQuZm4u
dHJpZ2dlcigncmVzaXplJyk7fSk7fX19KTt9fX07fSkoalF1ZXJ5KTs=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=Vector.combined.min.js
Content-Type: application/x-javascript; charset=UTF-8; name=Vector.combined.min.
js
Content-Location: http://bits.wikimedia.org/w/extensions/UsabilityInitiative/Vec
tor/Vector.combined.min.js?283u
Content-Transfer-Encoding: Base64
CiRqKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2lmKCF3Z1ZlY3RvckVuYWJs
ZWRNb2R1bGVzLmNvbGxhcHNpYmxlbmF2KXtyZXR1cm4gdHJ1ZTt9CnZhciBtYXA9
eydsdHInOnsnbXNpZSc6W1snPj0nLDddXSwnb3BlcmEnOltbJz49Jyw5LjZdXSwn
a29ucXVlcm9yJzpbWyc+PScsNC4wXV0sJ2JsYWNrYmVycnknOmZhbHNlLCdpcG9k
JzpmYWxzZSwnaXBob25lJzpmYWxzZSwncHMzJzpmYWxzZX0sJ3J0bCc6eydtc2ll
JzpbWyc+PScsN11dLCdvcGVyYSc6W1snPj0nLDkuNl1dLCdrb25xdWVyb3InOltb
Jz49Jyw0LjBdXSwnYmxhY2tiZXJyeSc6ZmFsc2UsJ2lwb2QnOmZhbHNlLCdpcGhv
bmUnOmZhbHNlLCdwczMnOmZhbHNlfX07aWYoIW13LnVzYWJpbGl0eS50ZXN0QnJv
d3NlcihtYXApKXtyZXR1cm4gdHJ1ZTt9CnZhciB2ZXJzaW9uPTE7aWYod2dDb2xs
YXBzaWJsZU5hdkZvcmNlTmV3VmVyc2lvbil7dmVyc2lvbj0yO31lbHNle2lmKHdn
Q29sbGFwc2libGVOYXZCdWNrZXRUZXN0KXt2ZXJzaW9uPSRqLmNvb2tpZSgndmVj
dG9yLW5hdi1wcmVmLXZlcnNpb24nKTtpZih2ZXJzaW9uPT1udWxsKXt2ZXJzaW9u
PU1hdGgucm91bmQoTWF0aC5yYW5kb20oKSsxKTskai5jb29raWUoJ3ZlY3Rvci1u
YXYtcHJlZi12ZXJzaW9uJyx2ZXJzaW9uLHsnZXhwaXJlcyc6MzAsJ3BhdGgnOicv
J30pO319fQppZih2ZXJzaW9uPT0yKXt2YXIgbGltaXQ9NTt2YXIgdGhyZXNob2xk
PTM7JGooJyNwLWxhbmcgdWwnKS5hZGRDbGFzcygnc2Vjb25kYXJ5JykuYmVmb3Jl
KCc8dWwgY2xhc3M9InByaW1hcnkiPjwvdWw+Jyk7dmFyIGxhbmd1YWdlcz1bJ2Vu
JywnZnInLCdkZScsJ2VzJywncHQnLCdpdCcsJ3J1JywnamEnLCdubCcsJ3BsJywn
emgnLCdzdicsJ2FyJywndHInLCd1aycsJ2ZpJywnbm8nLCdjYScsJ3JvJywnaHUn
LCdrc2gnLCdpZCcsJ2hlJywnY3MnLCd2aScsJ2tvJywnc3InLCdmYScsJ2RhJywn
ZW8nLCdzaycsJ3RoJywnbHQnLCd2bycsJ2JnJywnc2wnLCdocicsJ2hpJywnZXQn
LCdtaycsJ3NpbXBsZScsJ25ldycsJ21zJywnbm4nLCdnbCcsJ2VsJywnZXUnLCdr
YScsJ3RsJywnYm4nLCdsdicsJ21sJywnYnMnLCd0ZScsJ2xhJywnYXonLCdzaCcs
J3dhcicsJ2JyJywnaXMnLCdtcicsJ2JlLXgtb2xkJywnc3EnLCdjeScsJ2xiJywn
dGEnLCd6aC1jbGFzc2ljYWwnLCdhbicsJ2p2JywnaHQnLCdvYycsJ2JweScsJ2Nl
YicsJ3VyJywnemgteXVlJywncG1zJywnc2NuJywnYmUnLCdyb2EtcnVwJywncXUn
LCdhZicsJ3N3JywnbmRzJywnZnknLCdsbW8nLCd3YScsJ2t1JywnaHknLCdzdScs
J3lpJywnaW8nLCdvcycsJ2dhJywnYXN0JywnbmFwJywndmVjJywnZ3UnLCdjdics
J2JhdC1zbWcnLCdrbicsJ3V6JywnemgtbWluLW5hbicsJ3NpJywnYWxzJywneW8n
LCdsaScsJ2dhbicsJ2FyeicsJ3NhaCcsJ3R0JywnYmFyJywnZ2QnLCd0ZycsJ2tr
JywncGFtJywnaHNiJywncm9hLXRhcmEnLCduYWgnLCdtbicsJ3ZscycsJ2d2Jywn
bWknLCdhbScsJ2lhJywnY28nLCduZScsJ2ZvJywnbmRzLW5sJywnZ2xrJywnbXQn
LCdhbmcnLCd3dXUnLCdkdicsJ2ttJywnc2NvJywnYmNsJywnbWcnLCdteScsJ2Rp
cScsJ3RrJywnc3psJywndWcnLCdmaXUtdnJvJywnc2MnLCdybScsJ25ybScsJ3Bz
JywnbnYnLCdoaWYnLCdibycsJ3NlJywnc2EnLCdwbmInLCdtYXAtYm1zJywnbGFk
JywnbGlqJywnY3JoJywnZnVyJywna3cnLCd0bycsJ3BhJywnamJvJywnYmEnLCdp
bG8nLCdjc2InLCd3bycsJ3hhbCcsJ2tyYycsJ2NrYicsJ3BhZycsJ2xuJywnZnJw
JywnbXpuJywnY2UnLCdub3YnLCdrdicsJ2VtbCcsJ2duJywna3knLCdwZGMnLCds
bycsJ2hhdycsJ21ocicsJ2RzYicsJ3N0cScsJ3RwaScsJ2FyYycsJ2hhaycsJ2ll
Jywnc28nLCdiaCcsJ2V4dCcsJ213bCcsJ3NkJywnaWcnLCdteXYnLCdheScsJ2l1
JywnbmEnLCdjdScsJ3BpJywna2wnLCd0eScsJ2xiZScsJ2FiJywnZ290Jywnc20n
LCdhcycsJ21vJywnZWUnLCd6ZWEnLCdhdicsJ2FjZScsJ2tnJywnYm0nLCdjZG8n
LCdjYmstemFtJywna2FiJywnb20nLCdjaHInLCdwYXAnLCd1ZG0nLCdrcycsJ3p1
Jywncm15JywnY3InLCdjaCcsJ3N0JywnaWsnLCdtZGYnLCdrYWEnLCdhYScsJ2Zq
Jywnc3JuJywndGV0Jywnb3InLCdwbnQnLCdidWcnLCdzcycsJ3RzJywncGNkJywn
cGloJywnemEnLCdzZycsJ2xnJywnYnhyJywneGgnLCdhaycsJ2hhJywnYmknLCd2
ZScsJ3RuJywnZmYnLCdkeicsJ3RpJywna2knLCdueScsJ3J3JywnY2h5JywndHcn
LCdzbicsJ3R1bScsJ25nJywncm4nLCdtaCcsJ2lpJywnY2hvJywnaHonLCdrcics
J2hvJywnbXVzJywna2onXTt2YXIgYWNjZXB0TGFuZ0Nvb2tpZT0kai5jb29raWUo
J2FjY2VwdC1sYW5ndWFnZScpO2lmKGFjY2VwdExhbmdDb29raWUhPW51bGwpe2lm
KGFjY2VwdExhbmdDb29raWUhPScnKXtsYW5ndWFnZXM9YWNjZXB0TGFuZ0Nvb2tp
ZS5zcGxpdCgnLCcpLmNvbmNhdChsYW5ndWFnZXMpO319ZWxzZXskai5nZXRKU09O
KHdnU2NyaXB0UGF0aCsnL2FwaS5waHA/YWN0aW9uPXF1ZXJ5Jm1ldGE9dXNlcmlu
Zm8mdWlwcm9wPWFjY2VwdGxhbmcmZm9ybWF0PWpzb24nLGZ1bmN0aW9uKGRhdGEp
e3ZhciBsYW5ncz1bXTtpZih0eXBlb2YgZGF0YS5xdWVyeSE9J3VuZGVmaW5lZCcm
JnR5cGVvZiBkYXRhLnF1ZXJ5LnVzZXJpbmZvIT0ndW5kZWZpbmVkJyYmdHlwZW9m
IGRhdGEucXVlcnkudXNlcmluZm8uYWNjZXB0bGFuZyE9J3VuZGVmaW5lZCcpe2Zv
cih2YXIgaj0wO2o8ZGF0YS5xdWVyeS51c2VyaW5mby5hY2NlcHRsYW5nLmxlbmd0
aDtqKyspe2lmKGRhdGEucXVlcnkudXNlcmluZm8uYWNjZXB0bGFuZ1tqXS5xIT0w
KXtsYW5ncy5wdXNoKGRhdGEucXVlcnkudXNlcmluZm8uYWNjZXB0bGFuZ1tqXVsn
KiddKTt9fX0KJGouY29va2llKCdhY2NlcHQtbGFuZ3VhZ2UnLGxhbmdzLmpvaW4o
JywnKSx7J3BhdGgnOicvJywnZXhwaXJlcyc6MzB9KTt9KTt9CnZhciAkcHJpbWFy
eT0kaignI3AtbGFuZyB1bC5wcmltYXJ5Jyk7dmFyICRzZWNvbmRhcnk9JGooJyNw
LWxhbmcgdWwuc2Vjb25kYXJ5Jyk7aWYoJHNlY29uZGFyeS5jaGlsZHJlbigpLmxl
bmd0aDxsaW1pdCt0aHJlc2hvbGQpe2xpbWl0Kz10aHJlc2hvbGQ7fQp2YXIgY291
bnQ9MDtmb3IodmFyIGk9MDtpPGxhbmd1YWdlcy5sZW5ndGg7aSsrKXt2YXIgJGxp
bms9JHNlY29uZGFyeS5maW5kKCcuaW50ZXJ3aWtpLScrbGFuZ3VhZ2VzW2ldKTtp
ZigkbGluay5sZW5ndGgpe2lmKGNvdW50Kys8bGltaXQpeyRsaW5rLmFwcGVuZFRv
KCRwcmltYXJ5KTt9ZWxzZXticmVhazt9fX0KaWYoY291bnQ8bGltaXQpeyRzZWNv
bmRhcnkuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCl7aWYoY291bnQrKzxsaW1p
dCl7JGoodGhpcykuYXBwZW5kVG8oJHByaW1hcnkpO31lbHNle3JldHVybiBmYWxz
ZTt9fSk7fQppZigkc2Vjb25kYXJ5LmNoaWxkcmVuKCkubGVuZ3RoPT0wKXskc2Vj
b25kYXJ5LnJlbW92ZSgpO31lbHNleyRqKCcjcC1sYW5nJykuYWZ0ZXIoJzxkaXYg
aWQ9InAtbGFuZy1tb3JlIiBjbGFzcz0icG9ydGFsIj48aDU+PC9oNT48ZGl2IGNs
YXNzPSJib2R5Ij48L2Rpdj48L2Rpdj4nKTskaignI3AtbGFuZy1tb3JlIGg1Jyku
dGV4dChtdy51c2FiaWxpdHkuZ2V0TXNnKCd2ZWN0b3ItY29sbGFwc2libGVuYXYt
bW9yZScpKTskc2Vjb25kYXJ5LmFwcGVuZFRvKCRqKCcjcC1sYW5nLW1vcmUgZGl2
LmJvZHknKSk7fQokaignI3AtbGFuZycpLmFkZENsYXNzKCdwZXJzaXN0ZW50Jyk7
fQokaignI213LXBhbmVsID4gZGl2LnBvcnRhbDpmaXJzdCcpLmFkZENsYXNzKCdm
aXJzdCBwZXJzaXN0ZW50Jyk7JGooJyNtdy1wYW5lbCcpLmFkZENsYXNzKCdjb2xs
YXBzaWJsZS1uYXYnKTskaignI213LXBhbmVsID4gZGl2LnBvcnRhbDpub3QoLnBl
cnNpc3RlbnQpJykuZWFjaChmdW5jdGlvbihpKXt2YXIgaWQ9JGoodGhpcykuYXR0
cignaWQnKTt2YXIgc3RhdGU9JGouY29va2llKCd2ZWN0b3ItbmF2LScraWQpO2lm
KHN0YXRlPT0ndHJ1ZSd8fChzdGF0ZT09bnVsbCYmaTwxKXx8KHN0YXRlPT1udWxs
JiZ2ZXJzaW9uPT0xJiZpZD09J3AtbGFuZycpKXskaih0aGlzKS5hZGRDbGFzcygn
ZXhwYW5kZWQnKS5maW5kKCdkaXYuYm9keScpLnNob3coKTt9ZWxzZXskaih0aGlz
KS5hZGRDbGFzcygnY29sbGFwc2VkJyk7fQppZihzdGF0ZSE9bnVsbCl7JGouY29v
a2llKCd2ZWN0b3ItbmF2LScrJGoodGhpcykuYXR0cignaWQnKSxzdGF0ZSx7J2V4
cGlyZXMnOjMwLCdwYXRoJzonLyd9KTt9fSk7ZnVuY3Rpb24gdG9nZ2xlKCRlbGVt
ZW50KXskai5jb29raWUoJ3ZlY3Rvci1uYXYtJyskZWxlbWVudC5wYXJlbnQoKS5h
dHRyKCdpZCcpLCRlbGVtZW50LnBhcmVudCgpLmlzKCcuY29sbGFwc2VkJykseydl
eHBpcmVzJzozMCwncGF0aCc6Jy8nfSk7JGVsZW1lbnQucGFyZW50KCkudG9nZ2xl
Q2xhc3MoJ2V4cGFuZGVkJykudG9nZ2xlQ2xhc3MoJ2NvbGxhcHNlZCcpLmZpbmQo
J2Rpdi5ib2R5Jykuc2xpZGVUb2dnbGUoJ2Zhc3QnKTt9CnZhciAkaGVhZGluZ3M9
JGooJyNtdy1wYW5lbCA+IGRpdi5wb3J0YWw6bm90KC5wZXJzaXN0ZW50KSA+IGg1
Jyk7dmFyIHRhYkluZGV4PW13LnVzYWJpbGl0eS5nZXRNYXhUYWJJbmRleCgpKzE7
JGooJyNzZWFyY2hJbnB1dCcpLmF0dHIoJ3RhYmluZGV4Jyx0YWJJbmRleCsrKTsk
aGVhZGluZ3MuZWFjaChmdW5jdGlvbigpeyRqKHRoaXMpLmF0dHIoJ3RhYmluZGV4
Jyx0YWJJbmRleCsrKTt9KTskaGVhZGluZ3Mua2V5ZG93bihmdW5jdGlvbihldmVu
dCl7aWYoZXZlbnQud2hpY2g9PTEzfHxldmVudC53aGljaD09MzIpe3RvZ2dsZSgk
aih0aGlzKSk7fX0pLm1vdXNlZG93bihmdW5jdGlvbigpe3RvZ2dsZSgkaih0aGlz
KSk7JGoodGhpcykuYmx1cigpO3JldHVybiBmYWxzZTt9KTt9KTskaihkb2N1bWVu
dCkucmVhZHkoZnVuY3Rpb24oKXtpZighd2dWZWN0b3JFbmFibGVkTW9kdWxlcy5j
b2xsYXBzaWJsZXRhYnMpe3JldHVybiB0cnVlO30KdmFyIHJ0bD0kaignYm9keScp
LmlzKCcucnRsJyk7JGouY29sbGFwc2libGVUYWJzLm1vdmVUb0NvbGxhcHNlZD1m
dW5jdGlvbihlbGUpe3ZhciAkbW92aW5nPSRqKGVsZSk7JGouY29sbGFwc2libGVU
YWJzLmdldFNldHRpbmdzKCRqKCRqLmNvbGxhcHNpYmxlVGFicy5nZXRTZXR0aW5n
cygkbW92aW5nKS5leHBhbmRlZENvbnRhaW5lcikpLnNoaWZ0aW5nPXRydWU7dmFy
IGRhdGE9JGouY29sbGFwc2libGVUYWJzLmdldFNldHRpbmdzKCRtb3ZpbmcpO3Zh
ciB0YXJnZXQ9ZGF0YS5jb2xsYXBzZWRDb250YWluZXI7JG1vdmluZy5jc3MoInBv
c2l0aW9uIiwicmVsYXRpdmUiKS5jc3MoKHJ0bD8nbGVmdCc6J3JpZ2h0JyksMCku
YW5pbWF0ZSh7d2lkdGg6JzFweCd9LCJub3JtYWwiLGZ1bmN0aW9uKCl7JGoodGhp
cykuaGlkZSgpOyRqKCc8c3BhbiBjbGFzcz0icGxhY2Vob2xkZXIiIHN0eWxlPSJk
aXNwbGF5Om5vbmU7Ij48L3NwYW4+JykuaW5zZXJ0QWZ0ZXIodGhpcyk7JGoodGhp
cykucmVtb3ZlKCkucHJlcGVuZFRvKHRhcmdldCkuZGF0YSgnY29sbGFwc2libGVU
YWJzU2V0dGluZ3MnLGRhdGEpOyRqKHRoaXMpLmF0dHIoJ3N0eWxlJywnZGlzcGxh
eTpsaXN0LWl0ZW07Jyk7JGouY29sbGFwc2libGVUYWJzLmdldFNldHRpbmdzKCRq
KCRqLmNvbGxhcHNpYmxlVGFicy5nZXRTZXR0aW5ncygkaihlbGUpKS5leHBhbmRl
ZENvbnRhaW5lcikpLnNoaWZ0aW5nPWZhbHNlOyRqLmNvbGxhcHNpYmxlVGFicy5o
YW5kbGVSZXNpemUoKTt9KTt9OyRqLmNvbGxhcHNpYmxlVGFicy5tb3ZlVG9FeHBh
bmRlZD1mdW5jdGlvbihlbGUpe3ZhciAkbW92aW5nPSRqKGVsZSk7JGouY29sbGFw
c2libGVUYWJzLmdldFNldHRpbmdzKCRqKCRqLmNvbGxhcHNpYmxlVGFicy5nZXRT
ZXR0aW5ncygkbW92aW5nKS5leHBhbmRlZENvbnRhaW5lcikpLnNoaWZ0aW5nPXRy
dWU7dmFyIGRhdGE9JGouY29sbGFwc2libGVUYWJzLmdldFNldHRpbmdzKCRtb3Zp
bmcpO3ZhciAkdGFyZ2V0PSRqKGRhdGEuZXhwYW5kZWRDb250YWluZXIpLmZpbmQo
J3NwYW4ucGxhY2Vob2xkZXI6Zmlyc3QnKTt2YXIgZXhwYW5kZWRXaWR0aD1kYXRh
LmV4cGFuZGVkV2lkdGg7JG1vdmluZy5jc3MoInBvc2l0aW9uIiwicmVsYXRpdmUi
KS5jc3MoKHJ0bD8ncmlnaHQnOidsZWZ0JyksMCkuY3NzKCd3aWR0aCcsJzFweCcp
OyR0YXJnZXQucmVwbGFjZVdpdGgoJG1vdmluZy5yZW1vdmUoKS5jc3MoJ3dpZHRo
JywnMXB4JykuZGF0YSgnY29sbGFwc2libGVUYWJzU2V0dGluZ3MnLGRhdGEpLmFu
aW1hdGUoe3dpZHRoOmV4cGFuZGVkV2lkdGgrInB4In0sIm5vcm1hbCIsZnVuY3Rp
b24oKXskaih0aGlzKS5hdHRyKCdzdHlsZScsJ2Rpc3BsYXk6YmxvY2s7Jyk7JGou
Y29sbGFwc2libGVUYWJzLmdldFNldHRpbmdzKCRqKCRqLmNvbGxhcHNpYmxlVGFi
cy5nZXRTZXR0aW5ncygkbW92aW5nKS5leHBhbmRlZENvbnRhaW5lcikpLnNoaWZ0
aW5nPWZhbHNlOyRqLmNvbGxhcHNpYmxlVGFicy5oYW5kbGVSZXNpemUoKTt9KSk7
fTskaignI3Atdmlld3MgdWwnKS5iaW5kKCJiZWZvcmVUYWJDb2xsYXBzZSIsZnVu
Y3Rpb24oKXtpZigkaignI3AtY2FjdGlvbnMnKS5jc3MoJ2Rpc3BsYXknKT09J25v
bmUnKQokaigiI3AtY2FjdGlvbnMiKS5hZGRDbGFzcygiZmlsbGVkUG9ydGxldCIp
LnJlbW92ZUNsYXNzKCJlbXB0eVBvcnRsZXQiKS5maW5kKCdoNScpLmNzcygnd2lk
dGgnLCcxcHgnKS5hbmltYXRlKHsnd2lkdGgnOicyNnB4J30sMzkwKTt9KS5iaW5k
KCJiZWZvcmVUYWJFeHBhbmQiLGZ1bmN0aW9uKCl7aWYoJGooJyNwLWNhY3Rpb25z
IGxpJykubGVuZ3RoPT0xKQokaigiI3AtY2FjdGlvbnMgaDUiKS5hbmltYXRlKHsn
d2lkdGgnOicxcHgnfSwzNzAsZnVuY3Rpb24oKXskaih0aGlzKS5hdHRyKCdzdHls
ZScsJycpLnBhcmVudCgpLmFkZENsYXNzKCJlbXB0eVBvcnRsZXQiKS5yZW1vdmVD
bGFzcygiZmlsbGVkUG9ydGxldCIpO30pO30pLmNvbGxhcHNpYmxlVGFicyh7ZXhw
YW5kQ29uZGl0aW9uOmZ1bmN0aW9uKGVsZVdpZHRoKXtpZihydGwpe3JldHVybigk
aignI3JpZ2h0LW5hdmlnYXRpb24nKS5wb3NpdGlvbigpLmxlZnQrJGooJyNyaWdo
dC1uYXZpZ2F0aW9uJykud2lkdGgoKSsxKTwoJGooJyNsZWZ0LW5hdmlnYXRpb24n
KS5wb3NpdGlvbigpLmxlZnQtZWxlV2lkdGgpO31lbHNle3JldHVybigkaignI2xl
ZnQtbmF2aWdhdGlvbicpLnBvc2l0aW9uKCkubGVmdCskaignI2xlZnQtbmF2aWdh
dGlvbicpLndpZHRoKCkrMSk8KCRqKCcjcmlnaHQtbmF2aWdhdGlvbicpLnBvc2l0
aW9uKCkubGVmdC1lbGVXaWR0aCk7fX0sY29sbGFwc2VDb25kaXRpb246ZnVuY3Rp
b24oKXtpZihydGwpe3JldHVybigkaignI3JpZ2h0LW5hdmlnYXRpb24nKS5wb3Np
dGlvbigpLmxlZnQrJGooJyNyaWdodC1uYXZpZ2F0aW9uJykud2lkdGgoKSk+JGoo
JyNsZWZ0LW5hdmlnYXRpb24nKS5wb3NpdGlvbigpLmxlZnQ7fWVsc2V7cmV0dXJu
KCRqKCcjbGVmdC1uYXZpZ2F0aW9uJykucG9zaXRpb24oKS5sZWZ0KyRqKCcjbGVm
dC1uYXZpZ2F0aW9uJykud2lkdGgoKSk+JGooJyNyaWdodC1uYXZpZ2F0aW9uJyku
cG9zaXRpb24oKS5sZWZ0O319fSk7fSk7JGooZG9jdW1lbnQpLnJlYWR5KGZ1bmN0
aW9uKCl7aWYoIXdnVmVjdG9yRW5hYmxlZE1vZHVsZXMuZWRpdHdhcm5pbmd8fCRq
KCcjd3BUZXh0Ym94MScpLnNpemUoKT09MCl7cmV0dXJuIHRydWU7fQokaignI3dw
VGV4dGJveDEsICN3cFN1bW1hcnknKS5lYWNoKGZ1bmN0aW9uKCl7JGoodGhpcyku
ZGF0YSgnb3JpZ3RleHQnLCRqKHRoaXMpLnZhbCgpKTt9KTt2YXIgZmFsbGJhY2tX
aW5kb3dPbkJlZm9yZVVubG9hZD13aW5kb3cub25iZWZvcmV1bmxvYWQ7dmFyIG91
cldpbmRvd09uQmVmb3JlVW5sb2FkPWZ1bmN0aW9uKCl7dmFyIGZhbGxiYWNrUmVz
dWx0PXVuZGVmaW5lZDt2YXIgcmV0dmFsPXVuZGVmaW5lZDt2YXIgdGhpc0Z1bmM9
YXJndW1lbnRzLmNhbGxlZTtpZihmYWxsYmFja1dpbmRvd09uQmVmb3JlVW5sb2Fk
KXtmYWxsYmFja1Jlc3VsdD1mYWxsYmFja1dpbmRvd09uQmVmb3JlVW5sb2FkKCk7
fQppZihmYWxsYmFja1Jlc3VsdCE9PXVuZGVmaW5lZCl7cmV0dmFsPWZhbGxiYWNr
UmVzdWx0O31lbHNle2lmKHdnQWN0aW9uPT0nc3VibWl0J3x8JGooJyN3cFRleHRi
b3gxJykuZGF0YSgnb3JpZ3RleHQnKSE9JGooJyN3cFRleHRib3gxJykudmFsKCl8
fCRqKCcjd3BTdW1tYXJ5JykuZGF0YSgnb3JpZ3RleHQnKSE9JGooJyN3cFN1bW1h
cnknKS52YWwoKSl7cmV0dmFsPW13LnVzYWJpbGl0eS5nZXRNc2coJ3ZlY3Rvci1l
ZGl0d2FybmluZy13YXJuaW5nJyk7fX0Kd2luZG93Lm9uYmVmb3JldW5sb2FkPW51
bGw7aWYocmV0dmFsIT09dW5kZWZpbmVkKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7
d2luZG93Lm9uYmVmb3JldW5sb2FkPXRoaXNGdW5jO30pO3JldHVybiByZXR2YWw7
fX07dmFyIHBhZ2VTaG93SGFuZGxlcj1mdW5jdGlvbigpe3dpbmRvdy5vbmJlZm9y
ZXVubG9hZD1vdXJXaW5kb3dPbkJlZm9yZVVubG9hZDt9O3BhZ2VTaG93SGFuZGxl
cigpO2lmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKXt3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigncGFnZXNob3cnLHBhZ2VTaG93SGFuZGxlcixmYWxzZSk7fWVsc2Ug
aWYod2luZG93LmF0dGFjaEV2ZW50KXt3aW5kb3cuYXR0YWNoRXZlbnQoJ3BhZ2Vz
aG93JyxwYWdlU2hvd0hhbmRsZXIpO30KJGooJ2Zvcm0nKS5zdWJtaXQoZnVuY3Rp
b24oKXt3aW5kb3cub25iZWZvcmV1bmxvYWQ9ZmFsbGJhY2tXaW5kb3dPbkJlZm9y
ZVVubG9hZDt9KTt9KTt2YXIgZmFsbGJhY2tXaW5kb3dPbkJlZm9yZVVubG9hZD1u
dWxsO2lmKHdnVmVjdG9yRW5hYmxlZE1vZHVsZXMuc2ltcGxlc2VhcmNoJiZza2lu
PT0ndmVjdG9yJyYmdHlwZW9mIG9zX2F1dG9sb2FkX2lucHV0cyE9PSd1bmRlZmlu
ZWQnJiZvc19hdXRvbG9hZF9mb3JtcyE9PSd1bmRlZmluZWQnKXtvc19hdXRvbG9h
ZF9pbnB1dHM9W107b3NfYXV0b2xvYWRfZm9ybXM9W107fQokaihkb2N1bWVudCku
cmVhZHkoZnVuY3Rpb24oKXtpZighd2dWZWN0b3JFbmFibGVkTW9kdWxlcy5zaW1w
bGVzZWFyY2h8fHdnVmVjdG9yUHJlZmVyZW5jZXMuc2ltcGxlc2VhcmNoLmRpc2Fi
bGVzdWdnZXN0fHxza2luIT0ndmVjdG9yJyl7cmV0dXJuIHRydWU7fQp2YXIgbW9k
PXsnYnJvd3NlcnMnOnsnbHRyJzp7J29wZXJhJzpbWyc+PScsOS42XV0sJ2RvY29t
byc6ZmFsc2UsJ2JsYWNrYmVycnknOmZhbHNlLCdpcG9kJzpmYWxzZSwnaXBob25l
JzpmYWxzZX0sJ3J0bCc6eydvcGVyYSc6W1snPj0nLDkuNl1dLCdkb2NvbW8nOmZh
bHNlLCdibGFja2JlcnJ5JzpmYWxzZSwnaXBvZCc6ZmFsc2UsJ2lwaG9uZSc6ZmFs
c2V9fX07aWYoISRqLndpa2lFZGl0b3IuaXNTdXBwb3J0ZWQobW9kKSl7cmV0dXJu
IHRydWU7fQppZigncGxhY2Vob2xkZXInaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaW5wdXQnKSl7JGooJ2RpdiNzaW1wbGVTZWFyY2ggPiBpbnB1dCNzZWFyY2hJ
bnB1dCcpLmF0dHIoJ3BsYWNlaG9sZGVyJyxtdy51c2FiaWxpdHkuZ2V0TXNnKCd2
ZWN0b3Itc2ltcGxlc2VhcmNoLXNlYXJjaCcpKTt9ZWxzZXskaignZGl2I3NpbXBs
ZVNlYXJjaCA+IGlucHV0I3NlYXJjaElucHV0JykuZWFjaChmdW5jdGlvbigpe3Zh
ciAkaW5wdXQ9JGoodGhpcyk7JGlucHV0LmJpbmQoJ2JsdXInLGZ1bmN0aW9uKCl7
aWYoJGlucHV0LnZhbCgpLmxlbmd0aD09MCl7JGlucHV0LnZhbChtdy51c2FiaWxp
dHkuZ2V0TXNnKCd2ZWN0b3Itc2ltcGxlc2VhcmNoLXNlYXJjaCcpKS5hZGRDbGFz
cygncGxhY2Vob2xkZXInKTt9fSkuYmluZCgnZm9jdXMnLGZ1bmN0aW9uKCl7aWYo
JGlucHV0Lmhhc0NsYXNzKCdwbGFjZWhvbGRlcicpKXskaW5wdXQudmFsKCcnKS5y
ZW1vdmVDbGFzcygncGxhY2Vob2xkZXInKTt9fSkucGFyZW50cygnZm9ybScpLmJp
bmQoJ3N1Ym1pdCcsZnVuY3Rpb24oKXskaW5wdXQudHJpZ2dlcignZm9jdXMnKTt9
KTtpZigkaW5wdXQudmFsKCk9PScnKXskaW5wdXQudHJpZ2dlcignYmx1cicpO319
KTt9CiRqKCcjc2VhcmNoSW5wdXQsICNzZWFyY2hJbnB1dDIsICNwb3dlclNlYXJj
aFRleHQsICNzZWFyY2hUZXh0Jykuc3VnZ2VzdGlvbnMoe2ZldGNoOmZ1bmN0aW9u
KHF1ZXJ5KXt2YXIgJHRoaXM9JGoodGhpcyk7dmFyIHJlcXVlc3Q9JGouYWpheCh7
dXJsOndnU2NyaXB0UGF0aCsnL2FwaS5waHAnLGRhdGE6eydhY3Rpb24nOidvcGVu
c2VhcmNoJywnc2VhcmNoJzpxdWVyeSwnbmFtZXNwYWNlJzowLCdzdWdnZXN0Jzon
J30sZGF0YVR5cGU6J2pzb24nLHN1Y2Nlc3M6ZnVuY3Rpb24oZGF0YSl7JHRoaXMu
c3VnZ2VzdGlvbnMoJ3N1Z2dlc3Rpb25zJyxkYXRhWzFdKTt9fSk7JGoodGhpcyku
ZGF0YSgncmVxdWVzdCcscmVxdWVzdCk7fSxjYW5jZWw6ZnVuY3Rpb24oKXt2YXIg
cmVxdWVzdD0kaih0aGlzKS5kYXRhKCdyZXF1ZXN0Jyk7aWYocmVxdWVzdCYmdHlw
ZW9mIHJlcXVlc3QuYWJvcnQ9PSdmdW5jdGlvbicpe3JlcXVlc3QuYWJvcnQoKTsk
aih0aGlzKS5yZW1vdmVEYXRhKCdyZXF1ZXN0Jyk7fX0scmVzdWx0OntzZWxlY3Q6
ZnVuY3Rpb24oJHRleHRib3gpeyR0ZXh0Ym94LmNsb3Nlc3QoJ2Zvcm0nKS5zdWJt
aXQoKTt9fSxkZWxheToxMjAscG9zaXRpb25Gcm9tTGVmdDokaignYm9keScpLmlz
KCcucnRsJyksaGlnaGxpZ2h0SW5wdXQ6dHJ1ZX0pLmJpbmQoJ3Bhc3RlIGN1dCcs
ZnVuY3Rpb24oZSl7JGoodGhpcykudHJpZ2dlcigna2V5cHJlc3MnKTt9KTskaign
I3NlYXJjaElucHV0Jykuc3VnZ2VzdGlvbnMoe3Jlc3VsdDp7c2VsZWN0OmZ1bmN0
aW9uKCR0ZXh0Ym94KXskdGV4dGJveC5jbG9zZXN0KCdmb3JtJykuc3VibWl0KCk7
fX0sc3BlY2lhbDp7cmVuZGVyOmZ1bmN0aW9uKHF1ZXJ5KXtpZigkaih0aGlzKS5j
aGlsZHJlbigpLnNpemUoKT09MCl7JGoodGhpcykuc2hvdygpCiRsYWJlbD0kaign
PGRpdiAvPicpLmFkZENsYXNzKCdzcGVjaWFsLWxhYmVsJykudGV4dChtdy51c2Fi
aWxpdHkuZ2V0TXNnKCd2ZWN0b3Itc2ltcGxlc2VhcmNoLWNvbnRhaW5pbmcnKSku
YXBwZW5kVG8oJGoodGhpcykpOyRxdWVyeT0kaignPGRpdiAvPicpLmFkZENsYXNz
KCdzcGVjaWFsLXF1ZXJ5JykudGV4dChxdWVyeSkuYXBwZW5kVG8oJGoodGhpcykp
OyRxdWVyeS5hdXRvRWxsaXBzaXMoKTt9ZWxzZXskaih0aGlzKS5maW5kKCcuc3Bl
Y2lhbC1xdWVyeScpLmVtcHR5KCkudGV4dChxdWVyeSkuYXV0b0VsbGlwc2lzKCk7
fX0sc2VsZWN0OmZ1bmN0aW9uKCR0ZXh0Ym94KXskdGV4dGJveC5jbG9zZXN0KCdm
b3JtJykuYXBwZW5kKCRqKCc8aW5wdXQgLz4nKS5hdHRyKHsndHlwZSc6J2hpZGRl
bicsJ25hbWUnOidmdWxsdGV4dCcsJ3ZhbHVlJzoxfSkpOyR0ZXh0Ym94LmNsb3Nl
c3QoJ2Zvcm0nKS5zdWJtaXQoKTt9fSwkcmVnaW9uOiRqKCcjc2ltcGxlU2VhcmNo
Jyl9KTt9KTs=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=BannerController.js
Content-Type: text/javascript; charset=utf-8; name=BannerController.js
Content-Location: http://en.wikipedia.org/wiki/Special:BannerController?283u
Content-Transfer-Encoding: 8bit

function insertBanner(bannerJson) {
jQuery('div#centralNotice').prepend( bannerJson.banner );
}
function toggleNotice() {
var notice = document.getElementById('centralNotice');
if (!wgNoticeToggleState) {
notice.className = notice.className.replace('collapsed', 'expand
ed');
toggleNoticeCookie('0');
} else {
notice.className = notice.className.replace('expanded', 'collaps
ed');
toggleNoticeCookie('1');
}
wgNoticeToggleState = !wgNoticeToggleState;
}
function toggleNoticeStyle(elems, display) {
if(elems)
for(var i=0;i<elems.length;i++)
elems[i].style.display = display;
}
function toggleNoticeCookie(state) {
var e = new Date();
e.setTime( e.getTime() + (7*24*60*60*1000) ); // one week
var work='hidesnmessage='+state+'; expires=' + e.toGMTString() + '; path
=/';
document.cookie = work;
}
var wgNoticeToggleState = (document.cookie.indexOf('hidesnmessage=1')==-1);
document.writeln("\x3cstyle type=\"text/css\"\x3e\n#centralNotice .siteNoticeSma
ll {display:none;}\n#centralNotice.collapsed .siteNoticeBig {display:none;}\n#ce
ntralNotice.collapsed .siteNoticeSmall {display:block;}\n\x3c/style\x3e");
( function( $ ) {
$.ajaxSetup({ cache: true });
$.centralNotice = {
'data': {
'getVars': {}
},
'fn': {
'loadBanner': function( bannerName ) {
// Get the requested banner
var bannerPage = 'Special:BannerLoader?banner='+
bannerName+'&userlang='+wgUserLanguage+'&db='+wgDBname+'&sitename='+wgSiteName+'
&country='+Geo.country;
var bannerScript = '<script type="text/javascrip
t" src="http://meta.wikimedia.org/wiki/' + bannerPage + '"></script>';
$( '#siteNotice' ).prepend( '<div id="centralNot
ice" class="' + ( wgNoticeToggleState ? 'expanded' : 'collapsed' ) + '">'+banner
Script+'</div>' );
},
'loadBannerList': function( geoOverride ) {
var bannerListURL;
if ( geoOverride ) {
var geoLocation = geoOverride; // overri
de the geo info
} else {
var geoLocation = Geo.country; // pull t
he geo info
}
var bannerListPage = 'Special:BannerListLoader?l
anguage='+wgContentLanguage+'&project='+wgNoticeProject+'&country='+geoLocation;
bannerListURL = wgArticlePath.replace( '$1', ban
nerListPage );
var request = $.ajax( {
url: bannerListURL,
dataType: 'json',
success: $.centralNotice.fn.chooseBanner
} );
},
'chooseBanner': function( bannerList ) {
// Convert the json object to a true array
bannerList = Array.prototype.slice.call( bannerL
ist );
// Make sure there are some banners to choose fr
om
if ( bannerList.length == 0 ) return false;
var totalWeight = 0;
// run through the bannerlist and sum the weight
s of all banners
for( var i = 0; i < bannerList.length; i++ ) {
totalWeight += bannerList[i].weight;
}
// Select a random integer between 0 and our tot
al weight
var pointer = Math.floor( Math.random() * totalW
eight ),
selectedBanner = bannerList[0],
w = 0;
// Run through the banner list and start accumul
ating weights
for( var i = 0; i < bannerList.length; i++ ) {
w += bannerList[i].weight;
// when the weight tally exceeds the ran
dom integer, return the banner and stop the loop
if( w > pointer ) {
selectedBanner = bannerList[i];
break;
}
}
// Return our selected banner
$.centralNotice.fn.loadBanner(
selectedBanner.name
);
},
'getQueryStringVariables': function() {
document.location.search.replace( /\??(?:([^=]+)
=([^&]*)&?)/g, function () {
function decode( s ) {
return decodeURIComponent( s.spl
it( "+" ).join( " " ) );
}
$.centralNotice.data.getVars[decode( arg
uments[1] )] = decode( arguments[2] );
} );
}
}
}
$( document ).ready( function () {
// Initialize the query string vars
$.centralNotice.fn.getQueryStringVariables();
if( $.centralNotice.data.getVars['banner'] ) {
// if we're forcing one banner
$.centralNotice.fn.loadBanner( $.centralNotice.data.getV
ars['banner'] );
} else {
// Look for banners ready to go NOW
$.centralNotice.fn.loadBannerList( $.centralNotice.data.
getVars['country'] );
}
} ); //document ready
} )( jQuery );
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=index.js
Content-Type: text/javascript; charset=UTF-8; name=index.js
Content-Location: http://en.wikipedia.org/w/index.php?title=-&action=raw&gen=js&
useskin=vector&283u
Content-Transfer-Encoding: 8bit
/* generated javascript */
var skin = 'vector';
var stylepath = 'http://bits.wikimedia.org/skins-1.5';
/* MediaWiki:Common.js */
//<source lang="javascript">
/*
* Description: Redirects from /User:UserName/skin.js or .css to the user's actu
al skin page
* Maintainer: Cacycle
*/
if (wgArticleId == 0 && wgUserName) {
var slash = wgPageName.indexOf('/');
var norm = wgPageName.substr(0, slash) + wgPageName.substr(slash).toLowerCase(
);
var test = 'User:' + wgUserName.replace(/ /g, '_') + '/skin.';
var ext = null;
if (norm == test + 'js') ext = 'js';
else if (norm == test + 'css') ext = 'css';
if (ext != null) window.location.href = window.location.href.replace(/\/skin.(
css|js)/i, '/' + skin + '.' + ext);
}
/** extract a URL parameter from the current URL **********
* From [[en:User:Lupin/autoedit.js]]
*
* paramName : the name of the parameter to extract
*/
function getURLParamValue( paramName, url)
{
if (typeof (url) == 'undefined' || url === null) url = document.location.href;
var cmdRe=RegExp( '[&?]' + paramName + '=([^&#]*)' ); // Stop at hash
var m=cmdRe.exec(url);
if (m && m.length > 1) return decodeURIComponent(m[1]);
return null;
}
/** &withJS= URL parameter *******
* Allow to try custom scripts from MediaWiki space
* without editing [[Special:Mypage/monobook.js]]
*/
var extraJS = getURLParamValue("withJS");
if ( extraJS && extraJS.match("^MediaWiki:[^&<>=%]*\.js$") ) {
importScript(extraJS);
}
/* Import more specific scripts if necessary */
if (wgAction == "edit" || wgAction == "submit" || wgPageName == "Special:Upload"
) //scripts specific to editing pages
{
importScript("MediaWiki:Common.js/edit.js")
}
else if (wgPageName == "Special:Watchlist") //watchlist scripts
{
importScript("MediaWiki:Common.js/watchlist.js")
}
if( wgNamespaceNumber == 6 ) {
importScript('MediaWiki:Common.js/file.js');
}
/** For sysops and accountcreators *****************************************
*
* Description: Allows for sysop-specific Javascript at [[MediaWiki:Sysop.js]],
* and accountcreator-specific CSS at [[MediaWiki:Accountcreator.c
ss]].
*/
if ( wgUserGroups ) {
for ( var g = 0; g < wgUserGroups.length; ++g ) {
if ( wgUserGroups[g] == "sysop" ) {
importStylesheet("MediaWiki:Sysop.css");
addOnloadHook( function() {
if ( !window.disableSysopJS ) {
importScript("MediaWiki:Sysop.js");
}
} );
}
else if ( wgUserGroups[g] == "accountcreator" ) {
importStylesheet("MediaWiki:Accountcreator.css");
}
}
}

/** WikiMiniAtlas *******************************************************


*
* Description: WikiMiniAtlas is a popup click and drag world map.
* This script causes all of our coordinate links to display the
WikiMiniAtlas popup button.
* The script itself is located on meta because it is used by man
y projects.
* See [[Meta:WikiMiniAtlas]] for more information.
* Maintainers: [[User:Dschwen]]
*/
if (wgServer == "https://secure.wikimedia.org") {
var metaBase = "https://secure.wikimedia.org/wikipedia/meta";
} else {
var metaBase = "http://meta.wikimedia.org";
}
importScriptURI(metaBase+"/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=r
aw&ctype=text/javascript&smaxage=21600&maxage=86400")
/* Scripts specific to Internet Explorer */
if (navigator.appName == "Microsoft Internet Explorer")
{
/** Internet Explorer bug fix **********************************************
****
*
* Description: Fixes IE horizontal scrollbar bug
* Maintainers: [[User:Tom-]]?
*/
var oldWidth;
var docEl = document.documentElement;
function fixIEScroll()
{
if (!oldWidth || docEl.clientWidth > oldWidth)
doFixIEScroll();
else
setTimeout(doFixIEScroll, 1);
oldWidth = docEl.clientWidth;
}
function doFixIEScroll() {
docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "h
idden" : "";
}
document.attachEvent("onreadystatechange", fixIEScroll);
document.attachEvent("onresize", fixIEScroll);
// In print IE (7?) does not like line-height
appendCSS( '@media print { sup, sub, p, .documentDescription { line-height:
normal; }}');
// IE overflow bug
appendCSS('div.overflowbugx { overflow-x: scroll !important; overflow-y: hid
den !important; } div.overflowbugy { overflow-y: scroll !important; overflow-x:
hidden !important; }');
// IE zoomfix
//Use to fix right floating div/table inside tables.
appendCSS('.iezoomfix div, .iezoomfix table { zoom: 1;}' );
//Import scripts specific to Internet Explorer 6
if (navigator.appVersion.substr(22, 1) == "6") {
importScript("MediaWiki:Common.js/IE60Fixes.js")
}
}
/* Load fixes for Windows font rendering */
if( navigator.platform.indexOf( "Win" ) != -1 ) {
importStylesheet( 'MediaWiki:Common.css/WinFixes.css' );
}
/* Test if an element has a certain class **************************************
*
* Description: Uses regular expressions and caching for better performance.
* Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
*/
var hasClass = (function () {
var reCache = {};
return function (element, className) {
return (reCache[className] ? reCache[className] : (reCache[className] =
new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
};
})();

/** Interwiki links to featured articles ***************************************


*
* Description: Highlights interwiki links to featured articles (or
* equivalents) by changing the bullet before the interwiki link
* into a star.
* Maintainers: [[User:R. Koot]]
*/
function LinkFA()
{
if ( document.getElementById( "p-lang" ) ) {
var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTa
gName( "li" );
for ( var i = 0; i < InterwikiLinks.length; i++ ) {
if ( document.getElementById( InterwikiLinks[i].className + "-fa" )
) {
InterwikiLinks[i].className += " FA"
InterwikiLinks[i].title = "This is a featured article in another
language.";
} else if ( document.getElementById( InterwikiLinks[i].className + "
-ga" ) ) {
InterwikiLinks[i].className += " GA"
InterwikiLinks[i].title = "This is a good article in another lan
guage.";
}
}
}
}
addOnloadHook( LinkFA );

/** Collapsible tables *********************************************************


*
* Description: Allows tables to be collapsed, showing only the header. See
* [[Wikipedia:NavFrame]].
* Maintainers: [[User:R. Koot]]
*/
var autoCollapse = 2;
var collapseCaption = "hide";
var expandCaption = "show";
function collapseTable( tableIndex )
{
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.rows;
if ( Button.firstChild.data == collapseCaption ) {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = "none";
}
Button.firstChild.data = expandCaption;
} else {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
function createCollapseButtons()
{
var tableIndex = 0;
var NavigationBoxes = new Object();
var Tables = document.getElementsByTagName( "table" );
for ( var i = 0; i < Tables.length; i++ ) {
if ( hasClass( Tables[i], "collapsible" ) ) {
/* only add button and increment count if there is a header row to w
ork with */
var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
if (!HeaderRow) continue;
var Header = HeaderRow.getElementsByTagName( "th" )[0];
if (!Header) continue;
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
var Button = document.createElement( "span" );
var ButtonLink = document.createElement( "a" );
var ButtonText = document.createTextNode( collapseCaption );
Button.className = "collapseButton"; //Styles are declared in Commo
n.css
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
ButtonLink.setAttribute( "href", "#" );
addHandler( ButtonLink, "click", new Function( "evt", "collapseTabl
e(" + tableIndex + " ); return killEvt( evt );") );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( "[" ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( "]" ) );
Header.insertBefore( Button, Header.childNodes[0] );
tableIndex++;
}
}
for ( var i = 0; i < tableIndex; i++ ) {
if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= auto
Collapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
collapseTable( i );
}
else if ( hasClass( NavigationBoxes[i], "innercollapse" ) ) {
var element = NavigationBoxes[i];
while (element = element.parentNode) {
if ( hasClass( element, "outercollapse" ) ) {
collapseTable ( i );
break;
}
}
}
}
}
addOnloadHook( createCollapseButtons );
/** Dynamic Navigation Bars (experimental) *************************************
*
* Description: See [[Wikipedia:NavFrame]].
* Maintainers: UNMAINTAINED
*/
// set up the words in your language
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
// shows and hides content and picture (if available) of navigation bars
// Parameters:
// indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar)
{
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
if (!NavFrame || !NavToggle) {
return false;
}
// if shown now
if (NavToggle.firstChild.data == NavigationBarHide) {
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = Na
vChild.nextSibling) {
if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')
) {
NavChild.style.display = 'none';
}
}
NavToggle.firstChild.data = NavigationBarShow;
// if hidden now
} else if (NavToggle.firstChild.data == NavigationBarShow) {
for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = Na
vChild.nextSibling) {
if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')
) {
NavChild.style.display = 'block';
}
}
NavToggle.firstChild.data = NavigationBarHide;
}
}
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
var indexNavigationBar = 0;
// iterate over all < div >-elements
var divs = document.getElementsByTagName("div");
for (var i = 0; NavFrame = divs[i]; i++) {
// if found a navigation bar
if (hasClass(NavFrame, "NavFrame")) {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + i
ndexNavigationBar + ');');
var isCollapsed = hasClass( NavFrame, "collapsed" );
/*
* Check if any children are already hidden. This loop is here for
backwards compatibility:
* the old way of making NavFrames start out collapsed was to manual
ly add style="display:none"
* to all the NavPic/NavContent elements. Since this was bad for ac
cessibility (no way to make
* the content visible without JavaScript support), the new recommen
ded way is to add the class
* "collapsed" to the NavFrame itself, just like with collapsible ta
bles.
*/
for (var NavChild = NavFrame.firstChild; NavChild != null && !isColl
apsed; NavChild = NavChild.nextSibling) {
if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavC
ontent' ) ) {
if ( NavChild.style.display == 'none' ) {
isCollapsed = true;
}
}
}
if (isCollapsed) {
for (var NavChild = NavFrame.firstChild; NavChild != null; NavCh
ild = NavChild.nextSibling) {
if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, '
NavContent' ) ) {
NavChild.style.display = 'none';
}
}
}
var NavToggleText = document.createTextNode(isCollapsed ? Navigation
BarShow : NavigationBarHide);
NavToggle.appendChild(NavToggleText);
// Find the NavHead and attach the toggle link (Must be this complic
ated because Moz's firstChild handling is borked)
for(var j=0; j < NavFrame.childNodes.length; j++) {
if (hasClass(NavFrame.childNodes[j], "NavHead")) {
NavToggle.style.color = NavFrame.childNodes[j].style.color;
NavFrame.childNodes[j].appendChild(NavToggle);
}
}
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
}
addOnloadHook( createNavigationBarToggleButton );

/** Main Page layout fixes *****************************************************


****
*
* Description: Adds an additional link to the complete list of languages avail
able.
* Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
*/
if (wgPageName == 'Main_Page' || wgPageName == 'Talk:Main_Page')
addOnloadHook(function () {
addPortletLink('p-lang', 'http://meta.wikimedia.org/wiki/List_of_Wikiped
ias',
'Complete list', 'interwiki-completelist', 'Complete list of Wi
kipedias')
var nstab = document.getElementById('ca-nstab-main')
if (nstab && wgUserLanguage=='en') {
while (nstab.firstChild) nstab = nstab.firstChild
nstab.nodeValue = 'Main Page'
}
}
)

/** Table sorting fixes ************************************************


*
* Description: Disables code in table sorting routine to set classes on even/
odd rows
* Maintainers: [[User:Random832]]
*/
ts_alternate_row_colors = false;

/***** uploadwizard_newusers ********


* Switches in a message for non-autoconfirmed users at [[Wikipedia:Upload]]
*
* Maintainers: [[User:Krimpet]]
****/
function uploadwizard_newusers() {
if (wgNamespaceNumber == 4 && wgTitle == "Upload" && wgAction == "view") {
var oldDiv = document.getElementById("autoconfirmedusers"),
newDiv = document.getElementById("newusers");
if (oldDiv && newDiv) {
if (typeof wgUserGroups == "object" && wgUserGroups) {
for (i = 0; i < wgUserGroups.length; i++) {
if (wgUserGroups[i] == "autoconfirmed") {
oldDiv.style.display = "block";
newDiv.style.display = "none";
return;
}
}
}
oldDiv.style.display = "none";
newDiv.style.display = "block";
return;
}
}
}
addOnloadHook(uploadwizard_newusers);

/** IPv6 AAAA connectivity testing **/


var __ipv6wwwtest_factor = 100;
var __ipv6wwwtest_done = 0;
if ((wgServer != "https://secure.wikimedia.org") && (Math.floor(Math.random()*__
ipv6wwwtest_factor)==42)) {
importScript("MediaWiki:Common.js/IPv6.js");
}
/** Magic editintros ****************************************************
*
* Description: Adds editintros on disambiguation pages and BLP pages.
* Maintainers: [[User:RockMFR]]
*/
function addEditIntro(name)
{
var el = document.getElementById('ca-edit');
if (!el)
return;
el = el.getElementsByTagName('a')[0];
if (el)
el.href += '&editintro=' + name;
}

if (wgNamespaceNumber == 0) {
addOnloadHook(function(){
if (document.getElementById('disambigbox'))
addEditIntro('Template:Disambig_editintro');
});
addOnloadHook(function(){
var cats = document.getElementById('mw-normal-catlinks');
if (!cats)
return;
cats = cats.getElementsByTagName('a');
for (var i = 0; i < cats.length; i++) {
if (cats[i].title == 'Category:Living people' || cats[i].title == 'Categor
y:Possibly living people') {
addEditIntro('Template:BLP_editintro');
break;
}
}
});
}
/*
* Description: Stay on the secure server as much as possible
* Maintainers: [[User:TheDJ]]
*/
if(wgServer == 'https://secure.wikimedia.org') {
importScript( 'MediaWiki:Common.js/secure.js');
}
// Define ta for now. Bugzilla 23175
window.ta = [];
//</source>
/* MediaWiki:Vector.js */
/* Any JavaScript here will be loaded for users using the Vector skin */
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=50px-Question_book-new.svg.png
Content-Type: image/png; name=50px-Question_book-new.svg.png
Content-Location: http://upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_b
ook-new.svg/50px-Question_book-new.svg.png
Content-Transfer-Encoding: Base64
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
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=40px-Edit-clear.svg.png
Content-Type: image/png; name=40px-Edit-clear.svg.png
Content-Location: http://upload.wikimedia.org/wikipedia/en/thumb/f/f2/Edit-clear
.svg/40px-Edit-clear.svg.png
Content-Transfer-Encoding: Base64
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
BGAAAAAASUVORK5CYII=
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=search-ltr.png
Content-Type: image/png; name=search-ltr.png
Content-Location: http://bits.wikimedia.org/skins-1.5/vector/images/search-ltr.p
ng?283u
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAAwAAAANCAAAAAC4QtCeAAAAGXRFWHRTb2Z0d2Fy
ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAP9bkSK1AAAAaklEQVQI12P4
///u3NrauXf/AwHD//05YLAfxLmbl7/n48c9+Xn3gZxJYDGg/BQgpyznC4jzJacM
mVOMrgxowMFPnw5CDIAZnbMLxAFaWl09txrEY/gPAe87gTwY5//PmTmr4Jz/f699
BgAmIHmp1XxJagAAAABJRU5ErkJggg==
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://upload.wikimedia.org/wikipedia/commons/d/d6/Wikipedia-l
ogo-v2-en.png
Content-Transfer-Encoding: Base64
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
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=poweredby_mediawiki_88x31.png
Content-Type: image/png; name=poweredby_mediawiki_88x31.png
Content-Location: http://bits.wikimedia.org/skins-1.5/common/images/poweredby_me
diawiki_88x31.png
Content-Transfer-Encoding: Base64
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
RU5ErkJggg==
------------qul3UheKKhU3PWRTmp2eKg
Content-Disposition: inline; filename=wikimedia-button.png
Content-Type: image/png; name=wikimedia-button.png
Content-Location: http://en.wikipedia.org/images/wikimedia-button.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAFgAAAAfCAMAAABUFvrSAAAAA3NCSVQICAjb4U/g
AAAAilBMVEVjZGeGh4nn6+yZmZni5uTW1taAgYNtbnGkpKYBhbLd3t1svZdCroKt
rq/Cv79ztMs7ncDMzMy5t7enzL3Hx8h6e37l5eXw8PDK0dOVwtOozdsfkrnKk47E
1tUNiba8RjxKs4bN3eKawM2SybIslr5Yp8TV4N+80dbY5Oek08O5zNJ+wqW20cf2
9vZ09tAFAAAACXBIWXMAAArwAAAK8AFCrDSYAAACh0lEQVR4Xs3RiZKbMAwGYMu3
zX2T+072fP/XqwSUppM0bLfdmf1DxlhmvhGCRV8UFmVfkm8Ig/0beLnZbJYfcuNK
T8Htr6BLcvuBCAv5o/Pf4HjTJ/4AbCyICVhRXk6JUssBXiqVpK16FCvyXJcPHvgJ
n5xLVD7CydqdHsKEWjsN7x3B2QC3Kun2k5mE29Rhh4eiH3JcHOgN1vt/h/fIXN7C
bZEtl8us2IbFauH6YRirFBO0Wqa6K1bM5gzLQDvGtNKMGdEqrcmrRth7fyIlCMPt
M26et2EYUGlxwZ0w3jKDz2WWeVSZ9Z5glltGBY8B8LERtHgwLPeUHsZJ7FfoYc/o
0vq2X+Ms8Chj1gD+he/gCjzBMasMq6hgbdSJwtCSsaiCK3jh1i8FgWFwfg0pxQXh
mceAYZkwLO5hMGUPx2DtLWxZLlg2wFJKhC9FBwZ+gFcES0zOhGxZJaVleKmqUrKD
VV+QGACJo6ClqgDwDjPC87cRHjveS0rVSimiAZalAdXBQ4ExkEAfTyGcd2WjRhhn
PDv3o5AdvN3N6OPJT4fguq4T51J5uIJf65RK9efTw3Pn3PwcjHBwnq+dS+qHiadg
zvkT9nc8o9zDwWp3xEns+MOU412W3Z72MKcG0119CF7lITjIXepw6nesSliuhS0B
Ig48ByEzDaXW+Z9gnqC0QOoJf3x+xN3pXpMRt23FJXAuFHBdRpFQXEbl3Y4bCj85
TJrMZrMkXXduc5syaoSHpsGLVl2WStRNE5XNTQjuQj1TEKUk5N7CGiypNApcc4BY
aVClju7CQ+bY6YCn8+ZusmsArk8ewEQn6WKxOCZz3kzDXEzB71fhT7sn/v4/QvBN
vjv8RfkBEHe0Bwh42FAAAAAASUVORK5CYII=
------------qul3UheKKhU3PWRTmp2eKg--

Das könnte Ihnen auch gefallen